This is an archive of the discontinued LLVM Phabricator instance.

[PM][DA] Port of the DependenceAnalysis to the new PM
ClosedPublic

Authored by philip.pfaffe on Apr 6 2016, 10:53 AM.

Details

Summary

Ported DA to the new PM by splitting the former DependenceAnalysis Pass into a DependenceInfo result type and DependenceAnalysisWrapperPass type and adding a new PM-style DependenceAnalysis analysis pass returning the DependenceInfo.

[Resubmitting this because I forgot to add llvm-commits as a subscriber]

Diff Detail

Repository
rL LLVM

Event Timeline

philip.pfaffe retitled this revision from to [PM][DA] Port of the DependenceAnalysis to the new PM.
philip.pfaffe updated this object.
philip.pfaffe added reviewers: bogner, chandlerc.
philip.pfaffe set the repository for this revision to rL LLVM.
philip.pfaffe added a subscriber: llvm-commits.

Fixed bogner's nits and clang-formatted the patch.

Regarding the DependenceInfo and DependenceInfo::Constraint pointer members: I, too, think they should be references, but the patch is quite big, so I'll submit it seperately.

Turned the check whether the Wrapper Pass has been run correctly into an assert.

Side Note: Other Analysis Wrapper Passes even completely omit this check (e.g. scev), so it might be worth consideration to either omit the check entirely or to update other Wrapper Passes to perform the check as well.

Dropped info object checks to be consistent with other analysis wrapper passes and added a releaseMemory implementation.

This revision was automatically updated to reflect the committed changes.
chandlerc edited edge metadata.May 12 2016, 3:26 PM
chandlerc added a subscriber: chandlerc.

Thanks Philip, landed it r269370 for you!