aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Analysis/LazyCallGraphTest.cpp
diff options
context:
space:
mode:
authorArthur Eubanks <aeubanks@google.com>2025-02-14 16:42:28 -0800
committerGitHub <noreply@github.com>2025-02-14 16:42:28 -0800
commitcaaa288fa3658b40a35a8e327bf140921ecfaaf9 (patch)
tree82b5fe8a9939151a6e43a74aee77f7729e9b2d69 /llvm/unittests/Analysis/LazyCallGraphTest.cpp
parent28c52edbe33e671ace58309e60598f3342e9ca73 (diff)
downloadllvm-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.cpp54
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);
-}
}