Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Chen <jochen@microsoft.com>2015-12-16 01:14:19 +0300
committerJohn Chen <jochen@microsoft.com>2015-12-16 01:14:19 +0300
commit8b4cc0563c0e26500326a03c0f8f0d8f028dd68f (patch)
treeb71fe8c471f2fbb91c249512d96c36bc93278649 /src/ILCompiler.Compiler
parented8a19c4c4741659df0212efad2ee0b371692901 (diff)
parent3d67d94d0c1e4067340dd473015e3b72eaf57b03 (diff)
Merge pull request #355 from JohnChen0/jitinterface
Add JIT-EE interface wrappers to handle exceptions
Diffstat (limited to 'src/ILCompiler.Compiler')
-rw-r--r--src/ILCompiler.Compiler/src/Compiler/Compilation.cs27
1 files changed, 1 insertions, 26 deletions
diff --git a/src/ILCompiler.Compiler/src/Compiler/Compilation.cs b/src/ILCompiler.Compiler/src/Compiler/Compilation.cs
index bc161052e..0147987dc 100644
--- a/src/ILCompiler.Compiler/src/Compiler/Compilation.cs
+++ b/src/ILCompiler.Compiler/src/Compiler/Compilation.cs
@@ -235,25 +235,6 @@ namespace ILCompiler
}
}
- // List of methods that are known to throw an exception during compilation.
- // On Windows it's fine to throw it because we have a catchall block.
- // On Linux, throwing a managed exception to native code will bring down the process.
- // https://github.com/dotnet/corert/issues/162
- private HashSet<TypeAndMethod> _skipJitList = new HashSet<TypeAndMethod>
- {
- new TypeAndMethod("System.SR", "GetResourceString"),
- new TypeAndMethod("System.Text.StringBuilder", "AppendFormatHelper"),
- new TypeAndMethod("System.Collections.Concurrent.ConcurrentUnifier`2", "GetOrAdd"),
- new TypeAndMethod("System.Globalization.NumberFormatInfo", "GetInstance"),
- new TypeAndMethod("System.Collections.Concurrent.ConcurrentUnifierW`2", "GetOrAdd"),
- new TypeAndMethod("System.Collections.Generic.LowLevelDictionary`2", "Find"),
- new TypeAndMethod("System.Collections.Generic.LowLevelDictionary`2", "GetBucket"),
- new TypeAndMethod("System.Collections.Generic.ArraySortHelper`1", "InternalBinarySearch"),
- new TypeAndMethod("System.RuntimeExceptionHelpers", "SerializeExceptionsForDump"),
- new TypeAndMethod("System.InvokeUtils", "CheckArgument"),
- new TypeAndMethod("System.Runtime.InteropServices.ExceptionHelpers", "GetMappingExceptionForHR"),
- };
-
private void ComputeDependencyNodeDependencies(List<DependencyNodeCore<NodeFactory>> obj)
{
foreach (MethodCodeNode methodCodeNodeNeedingCode in obj)
@@ -268,17 +249,11 @@ namespace ILCompiler
try
{
- MetadataType owningType = method.OwningType as MetadataType;
- if (owningType != null && Path.DirectorySeparatorChar != '\\' && _skipJitList.Contains(new TypeAndMethod(owningType.GetFullName(), method.Name)))
- {
- throw new NotImplementedException("SkipJIT");
- }
-
_corInfo.CompileMethod(methodCodeNodeNeedingCode);
}
catch (Exception e)
{
- Log.WriteLine("*** " + e.Message + " (" + method + ")");
+ Log.WriteLine("*** " + method + ": " + e.Message);
// Call the __not_yet_implemented method
DependencyAnalysis.X64.X64Emitter emit = new DependencyAnalysis.X64.X64Emitter(_nodeFactory);