[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Chris Lattner
lattner at cs.uiuc.edu
Fri Apr 8 20:30:43 PDT 2005
Changes in directory llvm/lib/CodeGen/SelectionDAG:
SelectionDAGISel.cpp updated: 1.39 -> 1.40
---
Log message:
Emit BRCONDTWOWAY when possible.
---
Diffs of the changes: (+6 -7)
SelectionDAGISel.cpp | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.39 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.40
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.39 Fri Apr 1 23:26:53 2005
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Fri Apr 8 22:30:29 2005
@@ -430,7 +430,6 @@
MachineBasicBlock *Succ1MBB = FuncInfo.MBBMap[I.getSuccessor(1)];
SDOperand Cond = getValue(I.getCondition());
-
if (Succ1MBB == NextBlock) {
// If the condition is false, fall through. This means we should branch
// if the condition is true to Succ #0.
@@ -444,12 +443,12 @@
DAG.setRoot(DAG.getNode(ISD::BRCOND, MVT::Other, getRoot(),
Cond, DAG.getBasicBlock(Succ1MBB)));
} else {
- // Neither edge is a fall through. If the comparison is true, jump to
- // Succ#0, otherwise branch unconditionally to succ #1.
- DAG.setRoot(DAG.getNode(ISD::BRCOND, MVT::Other, getRoot(),
- Cond, DAG.getBasicBlock(Succ0MBB)));
- DAG.setRoot(DAG.getNode(ISD::BR, MVT::Other, getRoot(),
- DAG.getBasicBlock(Succ1MBB)));
+ std::vector<SDOperand> Ops;
+ Ops.push_back(getRoot());
+ Ops.push_back(Cond);
+ Ops.push_back(DAG.getBasicBlock(Succ0MBB));
+ Ops.push_back(DAG.getBasicBlock(Succ1MBB));
+ DAG.setRoot(DAG.getNode(ISD::BRCONDTWOWAY, MVT::Other, Ops));
}
}
}
More information about the llvm-commits
mailing list