summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-07-10 17:52:20 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-07-10 17:52:20 +0000
commit5e9084207fb95ba935b448dc1107f4a60f1368ce (patch)
tree0c2ab7293633d84857046a52fb19f540e11d1dd1 /llvm/lib/CodeGen
parentfbc73099dc28e8c5cdbf441ef964984c06c9ab7b (diff)
downloadbcm5719-llvm-5e9084207fb95ba935b448dc1107f4a60f1368ce.tar.gz
bcm5719-llvm-5e9084207fb95ba935b448dc1107f4a60f1368ce.zip
If the operand is marked M_OPTIONAL_DEF_OPERAND, then it's a def.
llvm-svn: 38496
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
index a1cb244e6b9..2252e7dcd79 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
@@ -323,7 +323,10 @@ void ScheduleDAG::AddOperand(MachineInstr *MI, SDOperand Op,
// Get/emit the operand.
unsigned VReg = getVR(Op, VRBaseMap);
- MI->addRegOperand(VReg, false);
+ const TargetInstrDescriptor *TID = MI->getInstrDescriptor();
+ bool isOptDef = (IIOpNum < TID->numOperands)
+ ? (TID->OpInfo[IIOpNum].Flags & M_OPTIONAL_DEF_OPERAND) : false;
+ MI->addRegOperand(VReg, isOptDef);
// Verify that it is right.
assert(MRegisterInfo::isVirtualRegister(VReg) && "Not a vreg?");
OpenPOWER on IntegriCloud