summaryrefslogtreecommitdiff
path: root/lib/CodeGen/ScheduleDAGInstrs.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-02-22 22:52:52 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-02-22 22:52:52 +0000
commit02634be4d4c8a72b652ae3e76b327a12593b03d4 (patch)
treea6f15c2e39a29052887e7b55b251ea9c2f2432ee /lib/CodeGen/ScheduleDAGInstrs.cpp
parentbe2af7ee781cd0083124514f497b8cf3070776ec (diff)
downloadllvm-02634be4d4c8a72b652ae3e76b327a12593b03d4.tar.gz
llvm-02634be4d4c8a72b652ae3e76b327a12593b03d4.tar.bz2
llvm-02634be4d4c8a72b652ae3e76b327a12593b03d4.tar.xz
Don't compute latencies for regmask operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151211 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/ScheduleDAGInstrs.cpp')
-rw-r--r--lib/CodeGen/ScheduleDAGInstrs.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/CodeGen/ScheduleDAGInstrs.cpp b/lib/CodeGen/ScheduleDAGInstrs.cpp
index 61bca5294e..5c1247f987 100644
--- a/lib/CodeGen/ScheduleDAGInstrs.cpp
+++ b/lib/CodeGen/ScheduleDAGInstrs.cpp
@@ -737,7 +737,9 @@ void ScheduleDAGInstrs::ComputeOperandLatency(SUnit *Def, SUnit *Use,
// %Q1<def> = VMULv8i16 %Q1<kill>, %Q3<kill>, ...
// What we want is to compute latency between def of %D6/%D7 and use of
// %Q3 instead.
- DefIdx = DefMI->findRegisterDefOperandIdx(Reg, false, true, TRI);
+ unsigned Op2 = DefMI->findRegisterDefOperandIdx(Reg, false, true, TRI);
+ if (DefMI->getOperand(Op2).isReg())
+ DefIdx = Op2;
}
MachineInstr *UseMI = Use->getInstr();
// For all uses of the register, calculate the maxmimum latency