projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
31ce12f
)
Handle CopyToReg nodes with flag operands correctly
author
Chris Lattner
<sabre@nondot.org>
Tue, 30 Aug 2005 01:57:23 +0000
(
01:57
+0000)
committer
Chris Lattner
<sabre@nondot.org>
Tue, 30 Aug 2005 01:57:23 +0000
(
01:57
+0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23144
91177308
-0d34-0410-b5e6-
96231b3b80d8
lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
patch
|
blob
|
history
diff --git
a/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
b/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
index af751edcbf514c2fe8d0268d95bf2f4b69638b03..8fac71c372cd2d27c21e03bfbb4a7310a1e9369a 100644
(file)
--- a/
lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
+++ b/
lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
@@
-205,8
+205,13
@@
unsigned SimpleSched::Emit(SDOperand Op) {
Emit(Op.getOperand(i));
break;
case ISD::CopyToReg: {
- Emit(Op.getOperand(0)); // Emit the chain.
+ SDOperand ChainOp;
+ if (Op.getNumOperands() == 4)
+ ChainOp = Op.getOperand(3);
+ if (Op.getOperand(0).Val != ChainOp.Val)
+ Emit(Op.getOperand(0)); // Emit the chain.
unsigned Val = Emit(Op.getOperand(2));
+ if (ChainOp.Val) Emit(ChainOp);
MRI.copyRegToReg(*BB, BB->end(),
cast<RegisterSDNode>(Op.getOperand(1))->getReg(), Val,
RegMap->getRegClass(Val));