diff options
author | Kyle Butt <kyle+llvm@iteratee.net> | 2016-07-20 00:01:51 +0000 |
---|---|---|
committer | Kyle Butt <kyle+llvm@iteratee.net> | 2016-07-20 00:01:51 +0000 |
commit | d2b886e569fb6c8621cc2b58873fa9e046d47d60 (patch) | |
tree | 95ef31bebf791af241628411200832bdc20427eb /llvm/lib/CodeGen/TailDuplicator.cpp | |
parent | 1d2e609b0180a376b5473cc4bae5c75a82e27a01 (diff) | |
download | bcm5719-llvm-d2b886e569fb6c8621cc2b58873fa9e046d47d60.tar.gz bcm5719-llvm-d2b886e569fb6c8621cc2b58873fa9e046d47d60.zip |
Codegen: Tail Duplication: Only duplicate into layout pred if it is a CFG Pred.
Add a check that the layout predecessor of a block is an actual CFG
predecssor of the block as well. No current code fails this check, but
upcoming patches can trigger this, and it makes sense to separate it
out.
llvm-svn: 276066
Diffstat (limited to 'llvm/lib/CodeGen/TailDuplicator.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TailDuplicator.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/TailDuplicator.cpp b/llvm/lib/CodeGen/TailDuplicator.cpp index f2349f28243..059c1dc5483 100644 --- a/llvm/lib/CodeGen/TailDuplicator.cpp +++ b/llvm/lib/CodeGen/TailDuplicator.cpp @@ -824,6 +824,8 @@ bool TailDuplicator::tailDuplicate(MachineFunction &MF, bool IsSimple, // This has to check PrevBB->succ_size() because EH edges are ignored by // AnalyzeBranch. if (PrevBB->succ_size() == 1 && + // Layout preds are not always CFG preds. Check. + *PrevBB->succ_begin() == TailBB && !TII->analyzeBranch(*PrevBB, PriorTBB, PriorFBB, PriorCond, true) && PriorCond.empty() && !PriorTBB && TailBB->pred_size() == 1 && !TailBB->hasAddressTaken()) { |