This is an archive of the discontinued LLVM Phabricator instance.

[MemorySSA] Remove optimized value when reseting optimized.
ClosedPublic

Authored by asbirlea on Jan 8 2019, 5:15 PM.

Details

Summary

If we don't reset the optimized value O for access A, even though A is no longer optimized to O, A will still show up in that O's users list.
This fails verification when hoisting a Def outside a loop, even though the updates are correct.
The reason is that the phi in the loop header still find as user the hoisted def, because the Def has a pointer to the Phi in its optimized operand.

Diff Detail

Repository
rL LLVM

Event Timeline

asbirlea created this revision.Jan 8 2019, 5:15 PM
This revision is now accepted and ready to land.Jan 8 2019, 7:26 PM
This revision was automatically updated to reflect the committed changes.