This is an archive of the discontinued LLVM Phabricator instance.

[PM] WIP: Port ArgumentPromotion to the new pass manager.
AbandonedPublic

Authored by chandlerc on Feb 1 2017, 2:25 PM.

Details

Reviewers
davide
Summary

This is a fresh attempt to port ArgumentPromotion to the new pass manager. The
key difference is that we now handle the deletion of reference edges when
promoting calls. This requires re-scanning the callers to compute the set of
*removed* references which turns this whole thing quadratic.

I'm not sure we want to go this route long term, and not even sure if this will
be an acceptable short-term direction, but sending out the work in progress to
aid discussions and experiments with others.

Note that this will crash if we end up deleting an edge in a way that
decomposes a RefSCC into multiple new RefSCCs. Code for that hasn't been added.

Event Timeline

chandlerc created this revision.Feb 1 2017, 2:25 PM
davide edited edge metadata.Feb 6 2017, 6:59 PM

I assume this is superseded by the new approach. If so, can you abandon/close this one?

chandlerc abandoned this revision.Feb 6 2017, 7:15 PM

Yes, sorry. I thought I had abandoned all of the ones superseded but I missed this one.