[PATCH] D93828: [CGSCC][Coroutine][NewPM] Properly support function splitting/outlining

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 29 18:40:36 PST 2020


aeubanks added inline comments.


================
Comment at: llvm/lib/Analysis/LazyCallGraph.cpp:1716
+    // There is no reference from the new function back to the original
+    // function, so the new node is in its own SCC/RefSCC.
+    NewRC = createRefSCC(*this);
----------------
lxfind wrote:
> Could NewN be able to reach OriginalN by calling other functions?
> For example, before CoroSplit, say A is the coroutine. A calls B, and B calls A.
> After split, A references A.resume, A.resume calls B, and B calls A. In this case, they will still be in the same RefSCC?
You're completely right, I totally missed that case. Updated the code to handle that (and it's a bit simpler now too which is nice).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D93828/new/

https://reviews.llvm.org/D93828



More information about the llvm-commits mailing list