[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