This is an archive of the discontinued LLVM Phabricator instance.

[Coroutines][new pass manager] Move CoroElide pass to right position
ClosedPublic

Authored by junparser on Feb 28 2020, 5:25 AM.

Details

Summary

When test coroutines under new pass manager, we find that it is less powerful than legacy in coroutine frame elision.
That's because CoroElide executed right after CoroSplit instead of after series of optimization passes.

This patch move CoroElide same position as legacy

TestPlan: check-llvm, cppcoro check-clang

Diff Detail

Event Timeline

junparser created this revision.Feb 28 2020, 5:25 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 28 2020, 5:25 AM
modocache accepted this revision.Feb 28 2020, 1:15 PM

Nice catch, thanks!

This revision is now accepted and ready to land.Feb 28 2020, 1:15 PM

Thanks for the patch, @junparser! Curious how did you notice this - was it causing performance regression for your workload?

Thanks for the patch, @junparser! Curious how did you notice this - was it causing performance regression for your workload?

yep, Since the coroutine flow of our wrokloads are to sensitive to time and memory usage, we have a statistical system

This revision was automatically updated to reflect the committed changes.
junparser updated this revision to Diff 247498.Mar 1 2020, 5:50 AM
junparser edited the summary of this revision. (Show Details)

Update clang testcase to avoid check-clang failure