[llvm] [Coroutines][LazyCallGraph] resumes are not really SCC (PR #116285)

Tyler Nowicki via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 10 10:14:06 PST 2025


================
@@ -1720,6 +1720,7 @@ void LazyCallGraph::addSplitRefRecursiveFunctions(
   for (Function *NewFunction : NewFunctions) {
     Node &NewN = initNode(*NewFunction);
 
+    // Make the original function reference each new function
----------------
TylerNowicki wrote:

Identifying the RefSCCs and SCCs here may not be the right thing to do. I wanted to point out John's early comment 

> Yeah, it's probably not trivial to get that information right during splitting because the cloned functions can end up containing arbitrary subsets of the original function.

I am worried about doing this right. And also consider that the refs are not yet finalized when addSplitRefRecursiveFunctions() is called. There is some clean-up still to do, i.e. removing unreachable blocks / simplify-cfg.

https://github.com/llvm/llvm-project/pull/116285


More information about the llvm-commits mailing list