summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2018-06-13 09:41:49 +0000
committerClement Courbet <courbet@google.com>2018-06-13 09:41:49 +0000
commit5eeed77f87c4e63a80c42da66d635537f72e5d11 (patch)
tree99c82b12c7e0d73832f2bb75688adf3831322256 /llvm/lib
parentb10ef47a68c64e865b02ba6e2eb4e0b7d53caf0c (diff)
downloadbcm5719-llvm-5eeed77f87c4e63a80c42da66d635537f72e5d11.tar.gz
bcm5719-llvm-5eeed77f87c4e63a80c42da66d635537f72e5d11.zip
[TableGen] Emit a fatal error on inconsistencies in resource units vs cycles.
Summary: For targets I'm not familiar with, I've automatically made the "default to 1 for each resource" behaviour explicit in the td files. For more obvious cases, I've ventured a fix. Some notes: - Exynos is especially fishy. - AArch64SchedThunderX2T99.td had some truncated entries. If I understand correctly, the person who wrote that interpreted the ResourceCycle as a range. I made the decision to use the upper/lower bound for consistency with the 'Latency' value. I'm sure there is a better choice. - The change to X86ScheduleBtVer2.td is an NFC, it just makes values more explicit. Also see PR37310. Reviewers: RKSimon, craig.topper, javed.absar Subscribers: kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D46356 llvm-svn: 334586
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td12
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td b/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td
index 44a8d30a2c1..bee3392b6d3 100644
--- a/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+++ b/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td
@@ -416,7 +416,7 @@ def : InstRW<[THX2T99Write_1Cyc_I2],
// Address generation
def : WriteRes<WriteI, [THX2T99I012]> {
let Latency = 1;
- let ResourceCycles = [1, 3];
+ let ResourceCycles = [1];
let NumMicroOps = 2;
}
@@ -438,7 +438,7 @@ def : InstRW<[WriteI], (instrs COPY)>;
// ALU, extend and/or shift
def : WriteRes<WriteISReg, [THX2T99I012]> {
let Latency = 2;
- let ResourceCycles = [2, 3];
+ let ResourceCycles = [2];
let NumMicroOps = 2;
}
@@ -457,7 +457,7 @@ def : InstRW<[WriteISReg],
def : WriteRes<WriteIEReg, [THX2T99I012]> {
let Latency = 1;
- let ResourceCycles = [1, 3];
+ let ResourceCycles = [1];
let NumMicroOps = 2;
}
@@ -500,14 +500,14 @@ def : WriteRes<WriteIS, [THX2T99I012]> {
// Latency range of 13-23/13-39.
def : WriteRes<WriteID32, [THX2T99I1]> {
let Latency = 39;
- let ResourceCycles = [13, 39];
+ let ResourceCycles = [39];
let NumMicroOps = 4;
}
// Divide, X-form
def : WriteRes<WriteID64, [THX2T99I1]> {
let Latency = 23;
- let ResourceCycles = [13, 23];
+ let ResourceCycles = [23];
let NumMicroOps = 4;
}
@@ -1252,7 +1252,7 @@ def : InstRW<[THX2T99Write_5Cyc_F01], (instrs FMOVXDHighr, FMOVDXHighr)>;
def : WriteRes<WriteV, [THX2T99F01]> {
let Latency = 7;
let NumMicroOps = 4;
- let ResourceCycles = [4, 23];
+ let ResourceCycles = [4];
}
// ASIMD arith, reduce, 4H/4S
OpenPOWER on IntegriCloud