Remove CHK_FLOW_UPDATE stress mode#122970
Conversation
Co-authored-by: jakobbotsch <7887810+jakobbotsch@users.noreply.github.com>
Per feedback from @jakobbotsch, the fgDebugCheckUpdate function is now always executed in debug builds instead of being gated by the STRESS_CHK_FLOW_UPDATE stress mode. Co-authored-by: jakobbotsch <7887810+jakobbotsch@users.noreply.github.com>
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
|
/azp run runtime-coreclr jitstress |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
PTAL @dotnet/jit-contrib This stress mode controlled whether we do some basic block validation, but that validation does not look expensive enough to warrant being under a stress mode. |
There was a problem hiding this comment.
Pull request overview
This PR removes the CHK_FLOW_UPDATE stress mode from the JIT compiler, making the fgDebugCheckUpdate() function run unconditionally in all debug builds instead of being gated by a stress mode check. This provides better flow graph validation coverage during development.
Changes:
- Removed
STRESS_MODE(CHK_FLOW_UPDATE)from the stress modes enumeration in compiler.h - Removed the stress mode check from
fgDebugCheckUpdate()in fgdiagnostic.cpp, allowing the function to run unconditionally in debug builds
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/coreclr/jit/compiler.h | Removed STRESS_MODE(CHK_FLOW_UPDATE) from the stress modes macro list |
| src/coreclr/jit/fgdiagnostic.cpp | Removed the compStressCompile(STRESS_CHK_FLOW_UPDATE, 30) conditional check, allowing flow graph validation to run unconditionally in debug builds |
|
/ba-g Known arm64 queue issues |
Remove CHK_FLOW_UPDATE stress mode
STRESS_MODE(CHK_FLOW_UPDATE)from compiler.hfgDebugCheckUpdate()functionfgDebugCheckUpdate()function to run always in debug buildsfgDebugCheckUpdate()in fgopt.cppSummary
Removed the CHK_FLOW_UPDATE stress mode. The
fgDebugCheckUpdate()function now runs unconditionally in all debug builds instead of being gated by the stress mode. This provides better flow graph validation coverage during development.Changes Made:
STRESS_MODE(CHK_FLOW_UPDATE)from the stress modes enumeration incompiler.hif (!compStressCompile(STRESS_CHK_FLOW_UPDATE, 30))check fromfgDebugCheckUpdate()infgdiagnostic.cppThe function continues to validate flow graph invariants including no unreachable blocks, empty blocks, un-imported blocks, un-compacted blocks, unnecessary jumps, and proper BBJ_CALLFINALLY block structure.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.