mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-02 16:56:39 +00:00
[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
This commit is contained in:
parent
27deee6413
commit
a0250a0ae6
@ -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
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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<BasicBlock *, 16> 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<DominatorTree::UpdateType> 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.
|
||||
|
@ -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());
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user