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

Arthur Eubanks via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 14 15:47:30 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
----------------
aeubanks wrote:

As long as the new functions are a RefSCC when we call `addSplitRefRecursiveFunctions()`, it's fine if they stop being a RefSCC as long as we call `updateCGAndAnalysisManagerForCGSCCPass()` after making those changes (e.g. simplify-cfg). `updateCGAndAnalysisManagerForCGSCCPass()` should handle all possible call graph changes that are legal in an SCC pass (including updating the LazyCallGraph to reflect that), and if it doesn't that's a bug in `updateCGAndAnalysisManagerForCGSCCPass()`

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


More information about the llvm-commits mailing list