Streamline LSRA for non-enregistered lclVars
authorCarol Eidt <carol.eidt@microsoft.com>
Tue, 16 May 2017 23:56:05 +0000 (16:56 -0700)
committerCarol Eidt <carol.eidt@microsoft.com>
Wed, 7 Jun 2017 00:28:47 +0000 (17:28 -0700)
commit3ae888bcbe8733d07961baf78a4ac15f55a14b0f
tree14080eba91490ae03090e1982bbaa2f9c7b80a8e
parent6d61e8d3e3523724aba08214872fa9f3369d24f6
Streamline LSRA for non-enregistered lclVars

- Don't create any lclVar intervals if no lclVars are ever enregistered.
- Don't create intervals for tracked lclVars that are not register candidates.
- Don't create any `RegToVarMap`s when no lclVars are ever enregistered.
- Don't do edge resolution if no lclVars are enregistered.
- Eliminate non-candidate lclVars from the sets used by LSRA.

Also:
- Change VarToRegMap to use regNumberSmall.
- Enhance `COMPLus_JitLsraStats` and `COMPlus_JitTimeLogCsv` dumping.

Commit migrated from https://github.com/dotnet/coreclr/commit/47050655f1ce630ddcdd999bcde9a535d9b3b9dd
src/coreclr/src/jit/compiler.cpp
src/coreclr/src/jit/compphases.h
src/coreclr/src/jit/lsra.cpp
src/coreclr/src/jit/lsra.h