diff options
Diffstat (limited to 'llvm/lib/CodeGen/ScheduleDAGInstrs.cpp')
-rw-r--r-- | llvm/lib/CodeGen/ScheduleDAGInstrs.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp b/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp index 96a1f86c3e0..d11406cc330 100644 --- a/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp +++ b/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp @@ -270,8 +270,13 @@ void ScheduleDAGInstrs::addPhysRegDataDeps(SUnit *SU, unsigned OperIdx) { Dep.setLatency(SchedModel.computeOperandLatency(SU->getInstr(), OperIdx, RegUse, UseOp)); ST.adjustSchedDependency(SU, UseSU, Dep); - } else + } else { Dep.setLatency(0); + // FIXME: We could always let target to adjustSchedDependency(), and + // remove this condition, but that currently asserts in Hexagon BE. + if (SU->getInstr()->isBundle() || (RegUse && RegUse->isBundle())) + ST.adjustSchedDependency(SU, UseSU, Dep); + } UseSU->addPred(Dep); } |