aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/TailDuplication.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-06-24 15:50:56 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-06-24 15:50:56 +0000
commit40179bf8748b2729d6c733022428dfa1061325c9 (patch)
tree5191d6f7a1d04b456362971c9e4eeae30ca5607a /lib/CodeGen/TailDuplication.cpp
parentd7f35fa824165eea799a583ff5af678f2d842b87 (diff)
Simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133798 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/TailDuplication.cpp')
-rw-r--r--lib/CodeGen/TailDuplication.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/lib/CodeGen/TailDuplication.cpp b/lib/CodeGen/TailDuplication.cpp
index c798dd2049..906a6f58ca 100644
--- a/lib/CodeGen/TailDuplication.cpp
+++ b/lib/CodeGen/TailDuplication.cpp
@@ -97,7 +97,7 @@ namespace {
bool shouldTailDuplicate(const MachineFunction &MF,
bool IsSimple, MachineBasicBlock &TailBB);
bool isSimpleBB(MachineBasicBlock *TailBB);
- bool canCompletelyDuplicateBB(MachineBasicBlock &BB, bool IsSimple);
+ bool canCompletelyDuplicateBB(MachineBasicBlock &BB);
bool duplicateSimpleBB(MachineBasicBlock *TailBB,
SmallVector<MachineBasicBlock*, 8> &TDBBs,
const DenseSet<unsigned> &RegsUsedByPhi,
@@ -573,7 +573,7 @@ TailDuplicatePass::shouldTailDuplicate(const MachineFunction &MF,
if (!PreRegAlloc)
return true;
- return canCompletelyDuplicateBB(TailBB, IsSimple);
+ return canCompletelyDuplicateBB(TailBB);
}
/// isSimpleBB - True if this BB has only one unconditional jump.
@@ -606,30 +606,22 @@ bothUsedInPHI(const MachineBasicBlock &A,
}
bool
-TailDuplicatePass::canCompletelyDuplicateBB(MachineBasicBlock &BB,
- bool isSimple) {
+TailDuplicatePass::canCompletelyDuplicateBB(MachineBasicBlock &BB) {
SmallPtrSet<MachineBasicBlock*, 8> Succs(BB.succ_begin(), BB.succ_end());
for (MachineBasicBlock::pred_iterator PI = BB.pred_begin(),
PE = BB.pred_end(); PI != PE; ++PI) {
MachineBasicBlock *PredBB = *PI;
- if (isSimple) {
- if (PredBB->getLandingPadSuccessor())
- return false;
- if (bothUsedInPHI(*PredBB, Succs))
- return false;
- } else {
- if (PredBB->succ_size() > 1)
- return false;
- }
+ if (PredBB->succ_size() > 1)
+ return false;
MachineBasicBlock *PredTBB = NULL, *PredFBB = NULL;
SmallVector<MachineOperand, 4> PredCond;
if (TII->AnalyzeBranch(*PredBB, PredTBB, PredFBB, PredCond, true))
return false;
- if (!isSimple && !PredCond.empty())
+ if (!PredCond.empty())
return false;
}
return true;