summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TargetSchedule.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-09-25 18:14:12 +0000
committerAndrew Trick <atrick@apple.com>2013-09-25 18:14:12 +0000
commitb6854d80e36520b9471e88bf8d241279d7cd6dce (patch)
tree47af490994fc55ea114613382c86d51a540bfe0d /llvm/lib/CodeGen/TargetSchedule.cpp
parent1d073feee0b8679f083e952b6f832d6d35cf3cad (diff)
downloadbcm5719-llvm-b6854d80e36520b9471e88bf8d241279d7cd6dce.tar.gz
bcm5719-llvm-b6854d80e36520b9471e88bf8d241279d7cd6dce.zip
Mark the x86 machine model as incomplete. PR17367.
Ideally, the machinel model is added at the time the instructions are defined. But many instructions in X86InstrSSE.td still need a model. Without this workaround the scheduler asserts because x86 already has itinerary classes for these instructions, indicating they should be modeled by the scheduler. Since we use the new machine model for other instructions, it expects a new machine model for these too. llvm-svn: 191391
Diffstat (limited to 'llvm/lib/CodeGen/TargetSchedule.cpp')
-rw-r--r--llvm/lib/CodeGen/TargetSchedule.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/TargetSchedule.cpp b/llvm/lib/CodeGen/TargetSchedule.cpp
index 64ee9d1c464..fd3f49657b0 100644
--- a/llvm/lib/CodeGen/TargetSchedule.cpp
+++ b/llvm/lib/CodeGen/TargetSchedule.cpp
@@ -210,7 +210,8 @@ unsigned TargetSchedModel::computeOperandLatency(
// unit latency (defaultDefLatency may be too conservative).
#ifndef NDEBUG
if (SCDesc->isValid() && !DefMI->getOperand(DefOperIdx).isImplicit()
- && !DefMI->getDesc().OpInfo[DefOperIdx].isOptionalDef()) {
+ && !DefMI->getDesc().OpInfo[DefOperIdx].isOptionalDef()
+ && SchedModel.isComplete()) {
std::string Err;
raw_string_ostream ss(Err);
ss << "DefIdx " << DefIdx << " exceeds machine model writes for "
OpenPOWER on IntegriCloud