JIT: rework phase objects so we can use them more widely (#31808)
authorAndy Ayers <andya@microsoft.com>
Thu, 6 Feb 2020 02:34:15 +0000 (18:34 -0800)
committerGitHub <noreply@github.com>
Thu, 6 Feb 2020 02:34:15 +0000 (18:34 -0800)
commit5040afeb94855b630ba822a9d62162c3652fe392
tree59ea5d0f8eb7ba8cef75fd9bcd75acb3777d2c74
parentfb64ec5f14b9909dba8f91409e57217df17613ea
JIT: rework phase objects so we can use them more widely (#31808)

Next part of #2109.

Add support for phases that are simply compiler methods or lambdas. These are
not used yet -- the plan is to introduce new phases gradually, cleaning up
redundant checking and dumping along the way. This will happen in subsequent
changes.

Remove a bit of now-redundant post-phase dumping and checking from lower.

Add the active phase to the assertion text, so we have some context.
15 files changed:
src/coreclr/src/jit/CMakeLists.txt
src/coreclr/src/jit/compiler.cpp
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/compiler.hpp
src/coreclr/src/jit/error.cpp
src/coreclr/src/jit/jit.settings.targets
src/coreclr/src/jit/jittelemetry.cpp
src/coreclr/src/jit/lower.cpp
src/coreclr/src/jit/lower.h
src/coreclr/src/jit/objectalloc.h
src/coreclr/src/jit/phase.cpp [new file with mode: 0644]
src/coreclr/src/jit/phase.h
src/coreclr/src/jit/rationalize.h
src/coreclr/src/jit/stacklevelsetter.cpp
src/coreclr/src/jit/stacklevelsetter.h