IBC fixes (dotnet/coreclr#26738)
authorDavid Wrighton <davidwr@microsoft.com>
Tue, 17 Sep 2019 01:53:47 +0000 (18:53 -0700)
committerGitHub <noreply@github.com>
Tue, 17 Sep 2019 01:53:47 +0000 (18:53 -0700)
commit7cd20a88cc7f7c94eff35a062af677e8d0f4dc9c
treea791f9a02f84683ba750ebe1a2c4fd25f214ea0d
parentfcbace6643b68782ce78c4d02e9d9fb57990e92c
IBC fixes (dotnet/coreclr#26738)

* IBC fixes
- Support IntPtr and UIntPtr element types in IBC data
- More defensive coding against structurally incorrect IBC data
- Skip compilation of open method definitions
- Generate IBC data without crashing when the first logged item is an InstantiatedMethod and not a token
- Safely shutdown and emit IBC data from a thread that hasn't been given a Thread object

Commit migrated from https://github.com/dotnet/coreclr/commit/d31557c467fb4eb3fa66481c3a81e63fb2c8eb94
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/ReadyToRunLibraryRootProvider.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/IBC/IBCProfileParser.cs
src/coreclr/src/vm/ceeload.cpp
src/coreclr/src/vm/ceemain.cpp