JIT: Add missing lvTracked
check in optLocalHasNonLoopUses
#109505
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
optLocalHasNonLoopUses
checks if a local might be used after a loop by making use of its liveness information, but it does not checklvTracked
before doing so. This is generally not a problem as there are other checks that the local is in SSA, and normally SSA implieslvTracked
, but that's not the case for locals put into SSA by CSE.Since it is possible to have CSE defs in a loop with uses outside the loop, this check is necessary for correctness. It is expected to regress a bunch of IV opts cases, but in the future we can get those back by computing the necessary liveness when we insert into SSA.