This is an archive of the discontinued LLVM Phabricator instance.

[PM] Introduce an abstraction for all the analyses over a particular IR unit for use in the PreservedAnalyses set.
ClosedPublic

Authored by chandlerc on Aug 18 2016, 12:58 PM.

Details

Summary

This doesn't have any important functional change yet but it cleans
things up and makes the analysis substantially more efficient by
avoiding querying through the type erasure for every analysis.

I also think it makes it much easier to reason about how analyses are
preserved when walking across pass managers and across IR unit
abstractions.

Suggestions on a better name for this set would be very, very welcome.
I don't particularly like this name but had no significant better ideas.

Diff Detail

Repository
rL LLVM

Event Timeline

chandlerc updated this revision to Diff 68595.Aug 18 2016, 12:58 PM
chandlerc retitled this revision from to [PM] Introduce an abstraction for all the analyses over a particular IR unit for use in the PreservedAnalyses set..
chandlerc updated this object.
chandlerc added a subscriber: llvm-commits.
silvas added a subscriber: silvas.Aug 19 2016, 6:56 PM

So right now the main functional change here is to allow an early exit when you have multiple nested PassManager's of the same IRUnitT? This seems reasonable for that (LGTM).

The Inner proxies could benefit from being aware of this to avoid clearing too.

As far as the name I don't really have any better ideas either.

This revision was automatically updated to reflect the committed changes.