diff options
author | Arthur Eubanks <aeubanks@google.com> | 2025-02-14 16:42:28 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-14 16:42:28 -0800 |
commit | caaa288fa3658b40a35a8e327bf140921ecfaaf9 (patch) | |
tree | 82b5fe8a9939151a6e43a74aee77f7729e9b2d69 /llvm/unittests/Analysis/LazyCallGraphTest.cpp | |
parent | 28c52edbe33e671ace58309e60598f3342e9ca73 (diff) | |
download | llvm-caaa288fa3658b40a35a8e327bf140921ecfaaf9.zip llvm-caaa288fa3658b40a35a8e327bf140921ecfaaf9.tar.gz llvm-caaa288fa3658b40a35a8e327bf140921ecfaaf9.tar.bz2 |
Revert "[Coroutines][LazyCallGraph] addSplitRefRecursiveFunctions allows spurious ref edges between new functions." (#127285)
Reverts llvm/llvm-project#116285
Breaks expensive checks build, e.g.
https://lab.llvm.org/buildbot/#/builders/16/builds/13821
Diffstat (limited to 'llvm/unittests/Analysis/LazyCallGraphTest.cpp')
-rw-r--r-- | llvm/unittests/Analysis/LazyCallGraphTest.cpp | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/llvm/unittests/Analysis/LazyCallGraphTest.cpp b/llvm/unittests/Analysis/LazyCallGraphTest.cpp index 311c5d4..6ca233a 100644 --- a/llvm/unittests/Analysis/LazyCallGraphTest.cpp +++ b/llvm/unittests/Analysis/LazyCallGraphTest.cpp @@ -3027,58 +3027,4 @@ TEST(LazyCallGraphTest, AddSplitFunctions5) { EXPECT_EQ(RC, CG.lookupRefSCC(F2N)); EXPECT_EQ(CG.postorder_ref_scc_end(), I); } - -TEST(LazyCallGraphTest, AddSplitFunctions6) { - LLVMContext Context; - std::unique_ptr<Module> M = parseAssembly(Context, "define void @f() {\n" - " ret void\n" - "}\n"); - LazyCallGraph CG = buildCG(*M); - - Function &F = lookupFunction(*M, "f"); - LazyCallGraph::Node &FN = CG.get(F); - - // Force the graph to be fully expanded. - CG.buildRefSCCs(); - auto I = CG.postorder_ref_scc_begin(); - LazyCallGraph::RefSCC *ORC = &*I++; - EXPECT_EQ(CG.postorder_ref_scc_end(), I); - - auto *G1 = Function::Create(F.getFunctionType(), F.getLinkage(), - F.getAddressSpace(), "g1", F.getParent()); - auto *G2 = Function::Create(F.getFunctionType(), F.getLinkage(), - F.getAddressSpace(), "g2", F.getParent()); - BasicBlock *G1BB = BasicBlock::Create(Context, "", G1); - BasicBlock *G2BB = BasicBlock::Create(Context, "", G2); - // Create g1 -ref-> g2 and g2 has no references. - (void)CastInst::CreatePointerCast(G2, PointerType::getUnqual(Context), "", - G1BB); - (void)ReturnInst::Create(Context, G1BB); - (void)ReturnInst::Create(Context, G2BB); - - // Create f -ref-> g1 and f -ref-> g2. - (void)CastInst::CreatePointerCast(G1, PointerType::getUnqual(Context), "", - F.getEntryBlock().begin()); - (void)CastInst::CreatePointerCast(G2, PointerType::getUnqual(Context), "", - F.getEntryBlock().begin()); - - EXPECT_FALSE(verifyModule(*M, &errs())); - - CG.addSplitRefRecursiveFunctions(F, SmallVector<Function *, 1>({G1, G2})); - - LazyCallGraph::Node *G1N = CG.lookup(*G1); - EXPECT_TRUE(G1N); - LazyCallGraph::Node *G2N = CG.lookup(*G2); - EXPECT_TRUE(G2N); - - I = CG.postorder_ref_scc_begin(); - LazyCallGraph::RefSCC *RC1 = &*I++; - EXPECT_EQ(2, RC1->size()); - EXPECT_EQ(RC1, CG.lookupRefSCC(*G1N)); - EXPECT_EQ(RC1, CG.lookupRefSCC(*G2N)); - LazyCallGraph::RefSCC *RC2 = &*I++; - EXPECT_EQ(RC2, ORC); - EXPECT_EQ(RC2, CG.lookupRefSCC(FN)); - EXPECT_EQ(CG.postorder_ref_scc_end(), I); -} } |