You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for the test case. Looks like makeLoopInvariant moves operands recursively, but we only invalidate block & loop dispositions for the original instruction. Looking into a fix.
makeLoopInvariant may recursively move its operands to make them
invariant, before moving the passed in instruction. Those recursively
moved instructions are currently missed when invalidating block and loop
dispositions.
To address this, move the invalidation code to Loop::makeLoopInvariant.
Fixesllvm#58314.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D135909
llvm commit:
Reproduce with:
opt -passes="indvars,loop-deletion" bbi-74655.ll -o /dev/null -verify-scev
Result:
bbi-74655.ll.gz
The text was updated successfully, but these errors were encountered: