Miscellaneous performance fixes for Crossgen2 (#758)
authorAnubhav Srivastava <SrivastavaAnubhav@users.noreply.github.com>
Fri, 13 Dec 2019 03:14:19 +0000 (19:14 -0800)
committerFadi Hanna <fadim@microsoft.com>
Fri, 13 Dec 2019 03:14:19 +0000 (22:14 -0500)
commitd850517b5e525e88f2d2400fbbc2922b624efb2a
tree2a39ce7750f4c84735821cdddc41e571e20746ab
parentb65649eb8e28c9a58bb561059363869b9fd84748
Miscellaneous performance fixes for Crossgen2 (#758)

* Miscellaneous performance fixes.
Create comparison functions for Enum (Enum.CompareTo boxes since it takes an Object).
In ModuleToken, use the existing MetadataReader instead of making a new one each time.
Use Dictionary instead of ImmutableDictionary in CoreRTNameMangler to reduce allocations.
In CopiedFieldRvaNode, only read as much of the section as we need to copy.
13 files changed:
src/coreclr/src/tools/Common/Compiler/CoreRTNameMangler.cs
src/coreclr/src/tools/ReadyToRun.SuperIlc/BuildOptions.cs
src/coreclr/src/tools/ReadyToRun.SuperIlc/CommandLineOptions.cs
src/coreclr/src/tools/ReadyToRun.SuperIlc/CpaotRunner.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/CopiedFieldRvaNode.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/FieldFixupSignature.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GenericLookupSignature.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ImportThunk.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/ModuleToken.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs
src/coreclr/src/tools/crossgen2/crossgen2/CommandLineOptions.cs
src/coreclr/src/tools/crossgen2/crossgen2/Program.cs