From: Florian Hahn Date: Wed, 2 Oct 2019 16:58:13 +0000 (+0000) Subject: [Local] Remove unused LazyValueInfo pointer from removeUnreachableBlock. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a0250a0ae6f34d0c4ea5d1bfaec645b97f1f75d3;p=llvm [Local] Remove unused LazyValueInfo pointer from removeUnreachableBlock. There are no users that pass in LazyValueInfo, so we can simplify the function a bit. Reviewers: brzycki, asbirlea, davide Reviewed By: davide Differential Revision: https://reviews.llvm.org/D68297 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373488 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Transforms/Utils/Local.h b/include/llvm/Transforms/Utils/Local.h index 5c5e0aef34c..9fcb2f64d79 100644 --- a/include/llvm/Transforms/Utils/Local.h +++ b/include/llvm/Transforms/Utils/Local.h @@ -412,8 +412,7 @@ void removeUnwindEdge(BasicBlock *BB, DomTreeUpdater *DTU = nullptr); /// Remove all blocks that can not be reached from the function's entry. /// /// Returns true if any basic block was removed. -bool removeUnreachableBlocks(Function &F, LazyValueInfo *LVI = nullptr, - DomTreeUpdater *DTU = nullptr, +bool removeUnreachableBlocks(Function &F, DomTreeUpdater *DTU = nullptr, MemorySSAUpdater *MSSAU = nullptr); /// Combine the metadata of two instructions so that K can replace J. Some diff --git a/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index 47d226f83a4..48bbdd8d1b3 100644 --- a/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -2530,7 +2530,7 @@ bool RewriteStatepointsForGC::runOnFunction(Function &F, DominatorTree &DT, // statepoints surviving this pass. This makes testing easier and the // resulting IR less confusing to human readers. DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy); - bool MadeChange = removeUnreachableBlocks(F, nullptr, &DTU); + bool MadeChange = removeUnreachableBlocks(F, &DTU); // Flush the Dominator Tree. DTU.getDomTree(); diff --git a/lib/Transforms/Utils/Local.cpp b/lib/Transforms/Utils/Local.cpp index eabf4bfa422..3a6b7a6a655 100644 --- a/lib/Transforms/Utils/Local.cpp +++ b/lib/Transforms/Utils/Local.cpp @@ -2210,10 +2210,8 @@ void llvm::removeUnwindEdge(BasicBlock *BB, DomTreeUpdater *DTU) { /// removeUnreachableBlocks - Remove blocks that are not reachable, even /// if they are in a dead cycle. Return true if a change was made, false -/// otherwise. If `LVI` is passed, this function preserves LazyValueInfo -/// after modifying the CFG. -bool llvm::removeUnreachableBlocks(Function &F, LazyValueInfo *LVI, - DomTreeUpdater *DTU, +/// otherwise. +bool llvm::removeUnreachableBlocks(Function &F, DomTreeUpdater *DTU, MemorySSAUpdater *MSSAU) { SmallPtrSet Reachable; bool Changed = markAliveBlocks(F, Reachable, DTU); @@ -2237,7 +2235,7 @@ bool llvm::removeUnreachableBlocks(Function &F, LazyValueInfo *LVI, MSSAU->removeBlocks(DeadBlockSet); // Loop over all of the basic blocks that are not reachable, dropping all of - // their internal references. Update DTU and LVI if available. + // their internal references. Update DTU if available. std::vector Updates; for (auto *BB : DeadBlockSet) { for (BasicBlock *Successor : successors(BB)) { @@ -2246,8 +2244,6 @@ bool llvm::removeUnreachableBlocks(Function &F, LazyValueInfo *LVI, if (DTU) Updates.push_back({DominatorTree::Delete, BB, Successor}); } - if (LVI) - LVI->eraseBlock(BB); BB->dropAllReferences(); if (DTU) { // Remove the terminator of BB to clear the successor list of BB. diff --git a/unittests/Transforms/Utils/LocalTest.cpp b/unittests/Transforms/Utils/LocalTest.cpp index 55f04e98d77..ff2eda1cec0 100644 --- a/unittests/Transforms/Utils/LocalTest.cpp +++ b/unittests/Transforms/Utils/LocalTest.cpp @@ -872,7 +872,7 @@ TEST(Local, RemoveUnreachableBlocks) { auto runEager = [&](Function &F, DominatorTree *DT) { PostDominatorTree PDT = PostDominatorTree(F); DomTreeUpdater DTU(*DT, PDT, DomTreeUpdater::UpdateStrategy::Eager); - removeUnreachableBlocks(F, nullptr, &DTU); + removeUnreachableBlocks(F, &DTU); EXPECT_TRUE(DTU.getDomTree().verify()); EXPECT_TRUE(DTU.getPostDomTree().verify()); }; @@ -880,7 +880,7 @@ TEST(Local, RemoveUnreachableBlocks) { auto runLazy = [&](Function &F, DominatorTree *DT) { PostDominatorTree PDT = PostDominatorTree(F); DomTreeUpdater DTU(*DT, PDT, DomTreeUpdater::UpdateStrategy::Lazy); - removeUnreachableBlocks(F, nullptr, &DTU); + removeUnreachableBlocks(F, &DTU); EXPECT_TRUE(DTU.getDomTree().verify()); EXPECT_TRUE(DTU.getPostDomTree().verify()); }; @@ -909,8 +909,8 @@ TEST(Local, RemoveUnreachableBlocks) { auto checkRUBlocksRetVal = [&](Function &F, DominatorTree *DT) { DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy); - EXPECT_TRUE(removeUnreachableBlocks(F, nullptr, &DTU)); - EXPECT_FALSE(removeUnreachableBlocks(F, nullptr, &DTU)); + EXPECT_TRUE(removeUnreachableBlocks(F, &DTU)); + EXPECT_FALSE(removeUnreachableBlocks(F, &DTU)); EXPECT_TRUE(DTU.getDomTree().verify()); };