Add performance measurement to crossgen2/SuperILC (dotnet/coreclr#26742)
Crossgen2 changes
- Add PerfEventSource classes to log performance-related events (average time taken to compile, loading time, graph processing time, emitting time, number of nodes added to graph, and number of methods JITed)
SuperILC changes
- Add MeasurePerf flag to measure performance (with 2 warmup runs and averaged over 5 real runs)
- Add PerfEventSourceListener class to listen to PerfEventSource events from crossgen2 and record statistics.
- Add InputFileSearchString flag to select an input file to compile (instead of requiring a folder)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8cb1ac8f47c8247e3944b44f10b0ce68594e071b