This is an archive of the discontinued LLVM Phabricator instance.

Merge metadata in the AliasSetTracker (and refactor merging)
Needs ReviewPublic

Authored by hfinkel on Apr 30 2015, 9:13 AM.

Details

Summary

Refactor how AA metadata merging is done, and allow the AliasSetTracker to merge non-equal metadata when merging access sets instead of just dropping all AA metadata when unequal.

I no longer have an in-tree test case for this change, so I'll need to try making one.

Diff Detail

Event Timeline

hfinkel updated this revision to Diff 24735.Apr 30 2015, 9:13 AM
hfinkel retitled this revision from to Merge metadata in the AliasSetTracker (and refactor merging).
hfinkel updated this object.
hfinkel edited the test plan for this revision. (Show Details)
hfinkel added reviewers: dberlin, chandlerc.
hfinkel added a subscriber: Unknown Object (MLST).
reames added a subscriber: reames.May 6 2015, 5:28 PM
reames added inline comments.
include/llvm/IR/Metadata.h
549

Documentation?

lib/Analysis/TypeBasedAliasAnalysis.cpp
626

Given the implementation, I'd be tempted to have this return a new merged AAMDNodes structure. e.g.
AAMDNodes merge(const AAMDNodes &LHS, const AAMDNodes& RHS) { .. }