[PATCH] D71899: [Coroutines][2/6] New pass manager: coro-split
Wenlei He via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 7 16:49:07 PST 2020
wenlei added inline comments.
================
Comment at: llvm/lib/Transforms/Coroutines/CoroSplit.cpp:1597
+ // worklist.
+ UR.RCWorklist.insert(&C.getOuterRefSCC());
+ F.addFnAttr(CORO_PRESPLIT_ATTR, PREPARED_FOR_SPLIT);
----------------
modocache wrote:
> modocache wrote:
> > wenlei wrote:
> > > Is it necessary to request RefSCC to be reprocessed? I thought `UR.CWorklist.insert(&C)` should be enough..
> > Will do! I was trying to do whatever seemed most similar to the legacy pass manager's repeater, I wasn't sure whether that was the outer repeating loop over RefSCCs, or the inner SCC loop.
> @wenlei Now that I've updated D72226 to outline the funclets into the same RefSCC (so, *not* the same SCC) as the coroutine, I think we now may actually want to re-enqueue the entire RefSCC. Thoughts?
Re-enqueue is for rerun the 2nd coro-split pass, which I though is orthogonal to the actual outlining where funclet is now created as new SCC in the same RefSCC. So as long as we get to rerun 2nd coro-split on those functions I think we should be fine, and re-enqueue SCC does that. But if we re-enqueue the RefSCC, it's functionally correct as well, just we might rerun pipeline for some extra SCCs in the same RefSCC while it's not really needed..
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71899/new/
https://reviews.llvm.org/D71899
More information about the llvm-commits
mailing list