1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

[NFC] Rename DontDeleteUselessPHIs --> KeepOneInputPHIs

llvm-svn: 353801
This commit is contained in:
Max Kazantsev 2019-02-12 07:09:29 +00:00
parent 14f513ef20
commit 32ede157ac
9 changed files with 29 additions and 29 deletions

View File

@ -362,7 +362,7 @@ public:
/// This is actually not used to update the Predecessor list, but is actually
/// used to update the PHI nodes that reside in the block. Note that this
/// should be called while the predecessor still refers to this block.
void removePredecessor(BasicBlock *Pred, bool DontDeleteUselessPHIs = false);
void removePredecessor(BasicBlock *Pred, bool KeepOneInputPHIs = false);
bool canSplitPredecessors() const;

View File

@ -41,25 +41,25 @@ class Value;
/// Replace contents of every block in \p BBs with single unreachable
/// instruction. If \p Updates is specified, collect all necessary DT updates
/// into this vector. If \p DontDeleteUselessPHIs is true, one-input Phis in
/// into this vector. If \p KeepOneInputPHIs is true, one-input Phis in
/// successors of blocks being deleted will be preserved.
void DetatchDeadBlocks(ArrayRef <BasicBlock *> BBs,
SmallVectorImpl<DominatorTree::UpdateType> *Updates,
bool DontDeleteUselessPHIs = false);
bool KeepOneInputPHIs = false);
/// Delete the specified block, which must have no predecessors.
void DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU = nullptr,
bool DontDeleteUselessPHIs = false);
bool KeepOneInputPHIs = false);
/// Delete the specified blocks from \p BB. The set of deleted blocks must have
/// no predecessors that are not being deleted themselves. \p BBs must have no
/// duplicating blocks. If there are loops among this set of blocks, all
/// relevant loop info updates should be done before this function is called.
/// If \p DontDeleteUselessPHIs is true, one-input Phis in successors of blocks
/// If \p KeepOneInputPHIs is true, one-input Phis in successors of blocks
/// being deleted will be preserved.
void DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs,
DomTreeUpdater *DTU = nullptr,
bool DontDeleteUselessPHIs = false);
bool KeepOneInputPHIs = false);
/// We know that BB has one predecessor. If there are any single-entry PHI nodes
/// in it, fold them away. This handles the case when all entries to the PHI
@ -106,7 +106,7 @@ struct CriticalEdgeSplittingOptions {
LoopInfo *LI;
MemorySSAUpdater *MSSAU;
bool MergeIdenticalEdges = false;
bool DontDeleteUselessPHIs = false;
bool KeepOneInputPHIs = false;
bool PreserveLCSSA = false;
CriticalEdgeSplittingOptions(DominatorTree *DT = nullptr,
@ -119,8 +119,8 @@ struct CriticalEdgeSplittingOptions {
return *this;
}
CriticalEdgeSplittingOptions &setDontDeleteUselessPHIs() {
DontDeleteUselessPHIs = true;
CriticalEdgeSplittingOptions &setKeepOneInputPHIs() {
KeepOneInputPHIs = true;
return *this;
}

View File

@ -299,7 +299,7 @@ iterator_range<BasicBlock::phi_iterator> BasicBlock::phis() {
/// called while the predecessor still refers to this block.
///
void BasicBlock::removePredecessor(BasicBlock *Pred,
bool DontDeleteUselessPHIs) {
bool KeepOneInputPHIs) {
assert((hasNUsesOrMore(16)||// Reduce cost of this assertion for complex CFGs.
find(pred_begin(this), pred_end(this), Pred) != pred_end(this)) &&
"removePredecessor: BB is not a predecessor!");
@ -330,11 +330,11 @@ void BasicBlock::removePredecessor(BasicBlock *Pred,
}
// <= Two predecessors BEFORE I remove one?
if (max_idx <= 2 && !DontDeleteUselessPHIs) {
if (max_idx <= 2 && !KeepOneInputPHIs) {
// Yup, loop through and nuke the PHI nodes
while (PHINode *PN = dyn_cast<PHINode>(&front())) {
// Remove the predecessor first.
PN->removeIncomingValue(Pred, !DontDeleteUselessPHIs);
PN->removeIncomingValue(Pred, !KeepOneInputPHIs);
// If the PHI _HAD_ two uses, replace PHI node with its now *single* value
if (max_idx == 2) {
@ -359,7 +359,7 @@ void BasicBlock::removePredecessor(BasicBlock *Pred,
// If all incoming values to the Phi are the same, we can replace the Phi
// with that value.
Value* PNV = nullptr;
if (!DontDeleteUselessPHIs && (PNV = PN->hasConstantValue()))
if (!KeepOneInputPHIs && (PNV = PN->hasConstantValue()))
if (PNV != PN) {
PN->replaceAllUsesWith(PNV);
PN->eraseFromParent();

View File

@ -5292,7 +5292,7 @@ void LSRInstance::RewriteForPHI(
NewBB = SplitCriticalEdge(BB, Parent,
CriticalEdgeSplittingOptions(&DT, &LI)
.setMergeIdenticalEdges()
.setDontDeleteUselessPHIs());
.setKeepOneInputPHIs());
} else {
SmallVector<BasicBlock*, 2> NewBBs;
SplitLandingPadPredecessors(Parent, BB, "", "", NewBBs, &DT, &LI);

View File

@ -761,7 +761,7 @@ static bool unswitchTrivialSwitch(Loop &L, SwitchInst &SI, DominatorTree &DT,
continue;
}
CommonSuccBB->removePredecessor(BB,
/*DontDeleteUselessPHIs*/ true);
/*KeepOneInputPHIs*/ true);
}
// Now nuke the switch and replace it with a direct branch.
SI.eraseFromParent();
@ -1069,7 +1069,7 @@ static BasicBlock *buildClonedLoopBlocks(
continue;
ClonedSuccBB->removePredecessor(ClonedParentBB,
/*DontDeleteUselessPHIs*/ true);
/*KeepOneInputPHIs*/ true);
}
// Replace the cloned branch with an unconditional branch to the cloned
@ -2078,7 +2078,7 @@ static void unswitchNontrivialInvariants(
"Only one possible unswitched block for a branch!");
BasicBlock *UnswitchedSuccBB = *UnswitchedSuccBBs.begin();
UnswitchedSuccBB->removePredecessor(ParentBB,
/*DontDeleteUselessPHIs*/ true);
/*KeepOneInputPHIs*/ true);
DTUpdates.push_back({DominatorTree::Delete, ParentBB, UnswitchedSuccBB});
} else {
// Note that we actually want to remove the parent block as a predecessor
@ -2093,7 +2093,7 @@ static void unswitchNontrivialInvariants(
for (auto &Case : NewSI->cases())
Case.getCaseSuccessor()->removePredecessor(
ParentBB,
/*DontDeleteUselessPHIs*/ true);
/*KeepOneInputPHIs*/ true);
// We need to use the set to populate domtree updates as even when there
// are multiple cases pointing at the same successor we only want to

View File

@ -50,13 +50,13 @@ using namespace llvm;
void llvm::DetatchDeadBlocks(
ArrayRef<BasicBlock *> BBs,
SmallVectorImpl<DominatorTree::UpdateType> *Updates,
bool DontDeleteUselessPHIs) {
bool KeepOneInputPHIs) {
for (auto *BB : BBs) {
// Loop through all of our successors and make sure they know that one
// of their predecessors is going away.
SmallPtrSet<BasicBlock *, 4> UniqueSuccessors;
for (BasicBlock *Succ : successors(BB)) {
Succ->removePredecessor(BB, DontDeleteUselessPHIs);
Succ->removePredecessor(BB, KeepOneInputPHIs);
if (Updates && UniqueSuccessors.insert(Succ).second)
Updates->push_back({DominatorTree::Delete, BB, Succ});
}
@ -82,12 +82,12 @@ void llvm::DetatchDeadBlocks(
}
void llvm::DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU,
bool DontDeleteUselessPHIs) {
DeleteDeadBlocks({BB}, DTU, DontDeleteUselessPHIs);
bool KeepOneInputPHIs) {
DeleteDeadBlocks({BB}, DTU, KeepOneInputPHIs);
}
void llvm::DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, DomTreeUpdater *DTU,
bool DontDeleteUselessPHIs) {
bool KeepOneInputPHIs) {
#ifndef NDEBUG
// Make sure that all predecessors of each dead block is also dead.
SmallPtrSet<BasicBlock *, 4> Dead(BBs.begin(), BBs.end());
@ -98,7 +98,7 @@ void llvm::DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, DomTreeUpdater *DTU,
#endif
SmallVector<DominatorTree::UpdateType, 4> Updates;
DetatchDeadBlocks(BBs, DTU ? &Updates : nullptr, DontDeleteUselessPHIs);
DetatchDeadBlocks(BBs, DTU ? &Updates : nullptr, KeepOneInputPHIs);
if (DTU)
DTU->applyUpdates(Updates, /*ForceRemoveDuplicates*/ true);

View File

@ -192,7 +192,7 @@ llvm::SplitCriticalEdge(Instruction *TI, unsigned SuccNum,
if (TI->getSuccessor(i) != DestBB) continue;
// Remove an entry for TIBB from DestBB phi nodes.
DestBB->removePredecessor(TIBB, Options.DontDeleteUselessPHIs);
DestBB->removePredecessor(TIBB, Options.KeepOneInputPHIs);
// We found another edge to DestBB, go to NewBB instead.
TI->setSuccessor(i, NewBB);

View File

@ -662,9 +662,9 @@ ReprocessLoop:
DT->eraseNode(ExitingBlock);
BI->getSuccessor(0)->removePredecessor(
ExitingBlock, /* DontDeleteUselessPHIs */ PreserveLCSSA);
ExitingBlock, /* KeepOneInputPHIs */ PreserveLCSSA);
BI->getSuccessor(1)->removePredecessor(
ExitingBlock, /* DontDeleteUselessPHIs */ PreserveLCSSA);
ExitingBlock, /* KeepOneInputPHIs */ PreserveLCSSA);
ExitingBlock->eraseFromParent();
}
}

View File

@ -3436,7 +3436,7 @@ static bool SimplifyTerminatorOnSelect(Instruction *OldTerm, Value *Cond,
KeepEdge2 = nullptr;
else
Succ->removePredecessor(OldTerm->getParent(),
/*DontDeleteUselessPHIs=*/true);
/*KeepOneInputPHIs=*/true);
}
IRBuilder<> Builder(OldTerm);
@ -5433,7 +5433,7 @@ static bool SwitchToLookupTable(SwitchInst *SI, IRBuilder<> &Builder,
// We cached PHINodes in PHIs. To avoid accessing deleted PHINodes later,
// do not delete PHINodes here.
SI->getDefaultDest()->removePredecessor(SI->getParent(),
/*DontDeleteUselessPHIs=*/true);
/*KeepOneInputPHIs=*/true);
}
bool ReturnedEarly = false;