This is an archive of the discontinued LLVM Phabricator instance.

[PM/AA] Completely remove the AliasAnalysis::copyValue interface.
ClosedPublic

Authored by chandlerc on Jul 1 2015, 8:37 PM.

Details

Summary

No in-tree alias analysis used this facility, and it was not called in
any particularly rigorous way, so it seems unlikely to be correct.

Note that one of the only stateful AA implementations in-tree,
GlobalsModRef is completely broken currently (and any AA passes like it
are equally broken) because Module AA passes are not effectively
invalidated when a function pass that fails to update the AA stack runs.

Ultimately, it doesn't seem like we know how we want to build stateful
AA, and until then trying to support and maintain correctness for an
untested API is essentially impossible. To that end, I'm planning to rip
out all of the update API. It can return if and when we need it and know
how to build it on top of the new pass manager and as part of *tested*
stateful AA implementations in the tree.

Diff Detail

Event Timeline

chandlerc updated this revision to Diff 28931.Jul 1 2015, 8:37 PM
chandlerc retitled this revision from to [PM/AA] Completely remove the AliasAnalysis::copyValue interface..
chandlerc updated this object.
chandlerc edited the test plan for this revision. (Show Details)
chandlerc added a subscriber: Unknown Object (MLST).
pete added a subscriber: pete.Jul 2 2015, 10:11 AM
hfinkel accepted this revision.Jul 2 2015, 4:14 PM
hfinkel added a reviewer: hfinkel.
hfinkel added a subscriber: hfinkel.

There seems to be no objection on the list, and I agree that we should have this functionality only if it can be tested. LGTM.

This revision is now accepted and ready to land.Jul 2 2015, 4:14 PM
This revision was automatically updated to reflect the committed changes.