Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
JIT: Allow jump-to-next-block removal for blocks with alignment (#97011)
Fixes #96998. The jump-to-next-block removal optimization currently passes on jumps with alignment padding behind them (see BasicBlock::CanRemoveJumpToNext). While our alignment placement strategy does not consider blocks with jumps that will be removed, it is possible for such a block to be chosen if it precedes the start of the loop being aligned. This alignment decision blocks the jump from being removed. Under normal circumstances, it should be fine to remove such jumps, and just fall through the alignment padding into the next block, but JitStress might decide to place breakpoint instructions in these alignment areas if behind a jump. So in debug builds, we now tell emitter::emitLoopAlignment if the jump was removed so JitStress does not consider placing breakpoints in the alignment padding.
- Loading branch information