Skip to content

Commit 48edd27

Browse files
authored
JIT: Fix switch peeling flags propagation (#79748)
Otherwise we could propagate overlapping flags that change meaning. Extracted from early liveness PR.
1 parent a2b7cd1 commit 48edd27

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/coreclr/jit/fgopt.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4321,9 +4321,9 @@ bool Compiler::fgOptimizeSwitchJumps()
43214321

43224322
// Update flags
43234323
//
4324-
switchTree->gtFlags = switchTree->AsOp()->gtOp1->gtFlags;
4325-
dominantCaseCompare->gtFlags |= dominantCaseCompare->AsOp()->gtOp1->gtFlags;
4326-
jmpTree->gtFlags |= dominantCaseCompare->gtFlags;
4324+
switchTree->gtFlags = switchTree->AsOp()->gtOp1->gtFlags & GTF_ALL_EFFECT;
4325+
dominantCaseCompare->gtFlags |= dominantCaseCompare->AsOp()->gtOp1->gtFlags & GTF_ALL_EFFECT;
4326+
jmpTree->gtFlags |= dominantCaseCompare->gtFlags & GTF_ALL_EFFECT;
43274327
dominantCaseCompare->gtFlags |= GTF_RELOP_JMP_USED | GTF_DONT_CSE;
43284328

43294329
// Wire up the new control flow.

0 commit comments

Comments
 (0)