This is an archive of the discontinued LLVM Phabricator instance.

MemorySSA: Revert r269678 and r268068; replace with special casing in MemorySSA.
ClosedPublic

Authored by pcc on May 25 2016, 6:52 PM.

Details

Summary

It turns out that too many passes are relying on alias analysis results
for control dependencies. Until we fix that by introducing a more accurate
modelling of control dependencies, special case assume in MemorySSA instead.

Also introduce tests to ensure we don't regress the FunctionAttrs or LICM
passes.

Diff Detail

Repository
rL LLVM

Event Timeline

pcc updated this revision to Diff 58553.May 25 2016, 6:52 PM
pcc retitled this revision from to MemorySSA: Revert r269678 and r268068; replace with special casing in MemorySSA..
pcc updated this object.
pcc added a subscriber: llvm-commits.
dberlin edited edge metadata.May 25 2016, 8:22 PM
dberlin added a subscriber: dberlin.

LGTM

(and thanks for taking the time to do this)

This revision was automatically updated to reflect the committed changes.
aaboud added a subscriber: aaboud.May 31 2016, 3:59 AM
aaboud added inline comments.
llvm/trunk/test/Transforms/LICM/assume.ll
17

I am not sure what this test it checking?
Can you explain it ?

Thanks

pcc added inline comments.May 31 2016, 4:53 PM
llvm/trunk/test/Transforms/LICM/assume.ll
17

This test is checking that the licm pass does not remove calls to llvm.assume when hoisting code out of a loop. This was one of the regressions caused by r268068.