[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
Evan Cheng
evan.cheng at apple.com
Fri Jan 5 12:59:21 PST 2007
Changes in directory llvm/lib/CodeGen/SelectionDAG:
ScheduleDAG.cpp updated: 1.112 -> 1.113
---
Log message:
CopyToReg source operand can be a register as well. e.g. Copy from GlobalBaseReg.
---
Diffs of the changes: (+6 -2)
ScheduleDAG.cpp | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.112 llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.113
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.112 Thu Dec 7 14:04:42 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp Fri Jan 5 14:59:06 2007
@@ -307,7 +307,7 @@
} else if (ConstantSDNode *C =
dyn_cast<ConstantSDNode>(Op)) {
MI->addImmOperand(C->getValue());
- } else if (RegisterSDNode*R =
+ } else if (RegisterSDNode *R =
dyn_cast<RegisterSDNode>(Op)) {
MI->addRegOperand(R->getReg(), false);
} else if (GlobalAddressSDNode *TGA =
@@ -457,7 +457,11 @@
case ISD::TokenFactor:
break;
case ISD::CopyToReg: {
- unsigned InReg = getVR(Node->getOperand(2), VRBaseMap);
+ unsigned InReg;
+ if (RegisterSDNode *R = dyn_cast<RegisterSDNode>(Node->getOperand(2)))
+ InReg = R->getReg();
+ else
+ InReg = getVR(Node->getOperand(2), VRBaseMap);
unsigned DestReg = cast<RegisterSDNode>(Node->getOperand(1))->getReg();
if (InReg != DestReg) // Coalesced away the copy?
MRI->copyRegToReg(*BB, BB->end(), DestReg, InReg,
More information about the llvm-commits
mailing list