[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Chris Lattner
lattner at cs.uiuc.edu
Wed Jan 19 11:11:08 PST 2005
Changes in directory llvm/lib/CodeGen/SelectionDAG:
LegalizeDAG.cpp updated: 1.45 -> 1.46
---
Log message:
Fold single use token factor nodes into other token factor nodes.
---
Diffs of the changes: (+10 -2)
Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.45 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.46
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.45 Wed Jan 19 12:02:17 2005
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Wed Jan 19 13:10:54 2005
@@ -264,8 +264,16 @@
std::vector<SDOperand> Ops;
bool Changed = false;
for (unsigned i = 0, e = Node->getNumOperands(); i != e; ++i) {
- Ops.push_back(LegalizeOp(Node->getOperand(i))); // Legalize the operands
- Changed |= Ops[i] != Node->getOperand(i);
+ SDOperand Op = Node->getOperand(i);
+ // Fold single-use TokenFactor nodes into this token factor as we go.
+ if (Op.getOpcode() == ISD::TokenFactor && Op.hasOneUse()) {
+ Changed = true;
+ for (unsigned j = 0, e = Op.getNumOperands(); j != e; ++j)
+ Ops.push_back(LegalizeOp(Op.getOperand(j)));
+ } else {
+ Ops.push_back(LegalizeOp(Op)); // Legalize the operands
+ Changed |= Ops[i] != Op;
+ }
}
if (Changed)
Result = DAG.getNode(ISD::TokenFactor, MVT::Other, Ops);
More information about the llvm-commits
mailing list