This is an archive of the discontinued LLVM Phabricator instance.

[MemorySSA] Additional handling of unreachable blocks.
ClosedPublic

Authored by asbirlea on Oct 10 2019, 9:34 AM.

Details

Summary

Whenever we get the previous definition, the assumption is that the
recursion starts ina reachable block.
If the recursion starts in an unreachable block, we may recurse
indefinitely. Handle this case by returning LoE if the block is
unreachable.

Resolves PR43426.

Diff Detail

Event Timeline

asbirlea created this revision.Oct 10 2019, 9:34 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 10 2019, 9:34 AM

Thanks!

test/Analysis/MemorySSA/pr43426.ll
1 ↗(On Diff #224388)

; REQUIRES: asserts?

This revision is now accepted and ready to land.Oct 10 2019, 1:00 PM
asbirlea marked 2 inline comments as done.Oct 10 2019, 1:30 PM

Thank you for the review!

test/Analysis/MemorySSA/pr43426.ll
1 ↗(On Diff #224388)

This occurs without asserts as well. It's an infinite loop.

This revision was automatically updated to reflect the committed changes.
asbirlea marked an inline comment as done.