This is an archive of the discontinued LLVM Phabricator instance.

[Coroutines][3/6] New pass manager: coro-elide
ClosedPublic

Authored by modocache on Dec 26 2019, 6:25 AM.

Details

Summary

Depends on https://reviews.llvm.org/D71899.

The third in a series of patches that ports the LLVM coroutines passes
to the new pass manager infrastructure. This patch implements 'coro-elide'.

The new pass manager infrastructure does not implicitly repeat CGSCC
pass pipelines when a function is devirtualized, and so the tests
for the new pass manager that rely on that behavior now explicitly
specify repeat<2>.

Diff Detail

Event Timeline

modocache created this revision.Dec 26 2019, 6:25 AM
Herald added a project: Restricted Project. · View Herald Transcript
modocache updated this revision to Diff 235812.Jan 1 2020, 7:08 PM

As per one of the review comments on D71899, I split out the trivial parts of this patch, such as the 'legacy' pass renaming, and committed them separately. Here's an updated version of this patch without those 'NFC' changes.

wenlei added a subscriber: wenlei.Jan 2 2020, 8:22 AM
modocache updated this revision to Diff 236242.Jan 5 2020, 5:44 AM
modocache edited the summary of this revision. (Show Details)
modocache removed a subscriber: wenlei.

Addressed review comments from D71899.

wenlei accepted this revision.Feb 17 2020, 8:22 PM

Comment needs to be updated, otherwise LGTM.

llvm/test/Transforms/Coroutines/coro-elide.ll
8–9

Update this comment now that we rely on CallGraphUpdater instead of devirt for newPM?

This revision is now accepted and ready to land.Feb 17 2020, 8:22 PM
modocache updated this revision to Diff 245078.Feb 17 2020, 8:41 PM

Thanks for the review! Yeah, you're right. I think the comment at the top of the file explains both the legacy and new pass manager just fine, so I removed the extra comment I'd added.

This revision was automatically updated to reflect the committed changes.