[llvm-commits] CVS: llvm/lib/CodeGen/IfConversion.cpp
Evan Cheng
evan.cheng at apple.com
Tue May 29 16:37:49 PDT 2007
Changes in directory llvm/lib/CodeGen:
IfConversion.cpp updated: 1.14 -> 1.15
---
Log message:
Don't merge in tail block of a diamond if it has more than one predecessors after if-conversion.
---
Diffs of the changes: (+4 -2)
IfConversion.cpp | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
Index: llvm/lib/CodeGen/IfConversion.cpp
diff -u llvm/lib/CodeGen/IfConversion.cpp:1.14 llvm/lib/CodeGen/IfConversion.cpp:1.15
--- llvm/lib/CodeGen/IfConversion.cpp:1.14 Tue May 29 17:31:16 2007
+++ llvm/lib/CodeGen/IfConversion.cpp Tue May 29 18:37:20 2007
@@ -555,9 +555,11 @@
} else
InsertUncondBranch(BBI.BB, CvtBBI->BB, TII);
- // If the if-converted block fallthrough into the tail block, then
+ // If the if-converted block fallthrough or unconditionally branch into the
+ // tail block, and the tail block does not have other predecessors, then
// fold the tail block in as well.
- if (BBI.TailBB && CvtBBI->BB->succ_size() == 1) {
+ if (BBI.TailBB &&
+ BBI.TailBB->succ_size() == 1 && CvtBBI->BB->succ_size() == 1) {
CvtBBI->NonPredSize -= TII->RemoveBranch(*CvtBBI->BB);
BBInfo TailBBI = BBAnalysis[BBI.TailBB->getNumber()];
MergeBlocks(*CvtBBI, TailBBI);
More information about the llvm-commits
mailing list