summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SystemZ
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-03-18 19:56:15 +0000
committerCraig Topper <craig.topper@intel.com>2018-03-18 19:56:15 +0000
commite1d6a4df1cb48da825346a407134cd14120a1b45 (patch)
treef3702ea82c7f828a9714495782b79fde5b75739a /llvm/lib/Target/SystemZ
parent203876f104c6f45262c70ddf4c9b77ea2b9523c7 (diff)
downloadbcm5719-llvm-e1d6a4df1cb48da825346a407134cd14120a1b45.tar.gz
bcm5719-llvm-e1d6a4df1cb48da825346a407134cd14120a1b45.zip
[TableGen] When trying to reuse a scheduler class for instructions from an InstRW, make sure we haven't already seen another InstRW containing this instruction on this CPU.
This is similar to the check later when we remap some of the instructions from one class to a new one. But if we reuse the class we don't get to do that check. So many CPUs have violations of this check that I had to add a flag to the SchedMachineModel to allow it to be disabled. Hopefully we can get those cleaned up quickly and remove this flag. A lot of the violations are due to overlapping regular expressions, but that's not the only kind of issue it found. llvm-svn: 327808
Diffstat (limited to 'llvm/lib/Target/SystemZ')
-rw-r--r--llvm/lib/Target/SystemZ/SystemZScheduleZ13.td3
-rw-r--r--llvm/lib/Target/SystemZ/SystemZScheduleZ14.td3
-rw-r--r--llvm/lib/Target/SystemZ/SystemZScheduleZ196.td3
-rw-r--r--llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td3
4 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td b/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
index 72543c1eaee..ab835f634e6 100644
--- a/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
+++ b/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
@@ -24,6 +24,9 @@ def Z13Model : SchedMachineModel {
// Extra cycles for a mispredicted branch.
let MispredictPenalty = 20;
+
+ // FIXME: Remove when all errors have been fixed.
+ let FullInstRWOverlapCheck = 0;
}
let SchedModel = Z13Model in {
diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td b/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td
index 698eb5627d1..e60e5583b50 100644
--- a/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td
+++ b/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td
@@ -24,6 +24,9 @@ def Z14Model : SchedMachineModel {
// Extra cycles for a mispredicted branch.
let MispredictPenalty = 20;
+
+ // FIXME: Remove when all errors have been fixed.
+ let FullInstRWOverlapCheck = 0;
}
let SchedModel = Z14Model in {
diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td b/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
index 4d986e8391c..43d18aa54a5 100644
--- a/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
+++ b/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
@@ -24,6 +24,9 @@ def Z196Model : SchedMachineModel {
// Extra cycles for a mispredicted branch.
let MispredictPenalty = 16;
+
+ // FIXME: Remove when all errors have been fixed.
+ let FullInstRWOverlapCheck = 0;
}
let SchedModel = Z196Model in {
diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td b/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
index a0f2115eb9d..c7f9a6e7cb6 100644
--- a/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
+++ b/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
@@ -24,6 +24,9 @@ def ZEC12Model : SchedMachineModel {
// Extra cycles for a mispredicted branch.
let MispredictPenalty = 16;
+
+ // FIXME: Remove when all errors have been fixed.
+ let FullInstRWOverlapCheck = 0;
}
let SchedModel = ZEC12Model in {
OpenPOWER on IntegriCloud