Repository navigation
JIT: Refactor post phase checks - #80194
Conversation
Add finer-grained notions of what post-phase checks are enabled. Start checking some IR and FG invariants earlier than we did before. This is largely done in anticipation of moving pred list building earlier (dotnet#80193). We should also consider moving some of the IR checking earlier as well.
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsAdd finer-grained notions of what post-phase checks are enabled. Start checking some IR and FG invariants earlier than we did before. This is largely done in anticipation of moving pred list building earlier (#80193). We should also consider moving some of the IR checking earlier as well.
|
|
@BruceForstall PTAL |
|
Looks like |
|
|
||
| fgInit(); | ||
| lvaInit(); | ||
| optInit(); |
There was a problem hiding this comment.
Seems fine, but presumably none of the optimizer phases run in the inliner-only Compiler, right? Was the new checking invoking checks related to optimizer data, during inlining?
There was a problem hiding this comment.
The loop table checker is enabled after all phases and is supposed to decide when it should run. To do this It was reading optLoopCount which was not initialized for inlinee compilers.
Seemed like a good idea to just initialize it always.
There was a problem hiding this comment.
While we're on the topic, I wondered if I should just make all check enablement explicit and not rely on the the checks themselves to internally decide when they should run. Or convert the currently guarded checks to run always and internally decide when they actually checked things. So I left them both as is ....
There was a problem hiding this comment.
Atleast these checks which are always on?
PhaseChecks::CHECK_EH | PhaseChecks::CHECK_LOOPS | PhaseChecks::CHECK_UNIQUE | PhaseChecks::CHECK_PROFILE;
|
Failure on linux arm64 checked looks like #70486. Am going to rerun. |
Add finer-grained notions of what post-phase checks are enabled. Start checking some IR and FG invariants earlier than we did before.
This is largely done in anticipation of moving pred list building earlier (#80193). We should also consider moving some of the IR checking earlier as well.