Skip to content

Commit b9b1cf4

Browse files
committed
Address review comments
- remove hasNoSchedulingInfo in Mips32r6InstrInfo.td - define BufferSize to 0 for all resources - remove timeline test in llvm-mca testcase
1 parent e1a086e commit b9b1cf4

File tree

3 files changed

+23
-34
lines changed

3 files changed

+23
-34
lines changed

llvm/lib/Target/Mips/Mips32r6InstrInfo.td

+3-8
Original file line numberDiff line numberDiff line change
@@ -983,10 +983,7 @@ let AdditionalPredicates = [NotInMicroMips] in {
983983
def SEL_S : R6MMR6Rel, SEL_S_ENC, SEL_S_DESC, ISA_MIPS32R6, HARDFLOAT;
984984
def SDC2_R6 : SDC2_R6_ENC, SDC2_R6_DESC, ISA_MIPS32R6;
985985
def SWC2_R6 : SWC2_R6_ENC, SWC2_R6_DESC, ISA_MIPS32R6;
986-
987-
let hasNoSchedulingInfo = true in {
988-
def SIGRIE : SIGRIE_ENC, SIGRIE_DESC, ISA_MIPS32R6;
989-
}
986+
def SIGRIE : SIGRIE_ENC, SIGRIE_DESC, ISA_MIPS32R6;
990987
}
991988

992989
let AdditionalPredicates = [NotInMicroMips] in {
@@ -999,10 +996,8 @@ let AdditionalPredicates = [NotInMicroMips] in {
999996
}
1000997

1001998
let AdditionalPredicates = [NotInMicroMips] in {
1002-
let hasNoSchedulingInfo = true in {
1003-
def GINVI : R6MMR6Rel, GINVI_ENC, GINVI_DESC, ISA_MIPS32R6, ASE_GINV;
1004-
def GINVT : R6MMR6Rel, GINVT_ENC, GINVT_DESC, ISA_MIPS32R6, ASE_GINV;
1005-
}
999+
def GINVI : R6MMR6Rel, GINVI_ENC, GINVI_DESC, ISA_MIPS32R6, ASE_GINV;
1000+
def GINVT : R6MMR6Rel, GINVT_ENC, GINVT_DESC, ISA_MIPS32R6, ASE_GINV;
10061001
}
10071002

10081003
//===----------------------------------------------------------------------===//

llvm/lib/Target/Mips/MipsScheduleI6400.td

+20-15
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def MipsI6400Model : SchedMachineModel {
1212
int LoadLatency = 3;
1313
int MispredictPenalty = 8;
1414

15-
let CompleteModel = 1;
15+
let CompleteModel = 0;
1616
let FullInstRWOverlapCheck = 1;
1717

1818
list<Predicate> UnsupportedFeatures = [HasMips64r5, HasMips32r5,
@@ -24,12 +24,27 @@ def MipsI6400Model : SchedMachineModel {
2424

2525
let SchedModel = MipsI6400Model in {
2626

27+
// I6400 Resources
28+
// ===============
29+
let BufferSize = 0 in {
30+
31+
def I6400AGEN : ProcResource<1>;
32+
def I6400IssueLSU : ProcResource<1> { let Super = I6400AGEN; }
33+
def I6400IssueALU1 : ProcResource<1> { let Super = I6400AGEN; }
34+
def I6400CTRL : ProcResource<1>;
35+
def I6400IssueCTU : ProcResource<1> { let Super = I6400CTRL; }
36+
def I6400IssueALU0 : ProcResource<1> { let Super = I6400CTRL; }
37+
def I6400MDU : ProcResource<1>;
38+
def I6400FPU : ProcResource<3>;
39+
def I6400FPUShort : ProcResource<1> { let Super = I6400FPU; }
40+
def I6400FPULong : ProcResource<1> { let Super = I6400FPU; }
41+
def I6400FPUApu : ProcResource<1>;
42+
def I6400FPUFloatL : ProcResource<1>;
43+
def I6400Atomic : ProcResource<1>;
44+
}
45+
2746
// AGEN Pipelines
2847
// ==============
29-
def I6400AGEN : ProcResource<1> { let BufferSize = 0; }
30-
def I6400IssueLSU : ProcResource<1> { let Super = I6400AGEN; }
31-
def I6400IssueALU1 : ProcResource<1> { let Super = I6400AGEN; }
32-
3348
def I6400WriteLSUStore : SchedWriteRes<[I6400IssueLSU]>;
3449
def I6400WriteLSUStore2 : SchedWriteRes<[I6400IssueLSU]> {
3550
let Latency = 8;
@@ -60,9 +75,6 @@ let SchedModel = MipsI6400Model in {
6075

6176
// CONTROL Pipelines
6277
// =================
63-
def I6400CTRL : ProcResource<1> { let BufferSize = 0; }
64-
def I6400IssueCTU : ProcResource<1> { let Super = I6400CTRL; }
65-
def I6400IssueALU0 : ProcResource<1> { let Super = I6400CTRL; }
6678

6779
def I6400WriteALU0 : SchedWriteRes<[I6400IssueALU0]>;
6880
def I6400WriteALU1 : SchedWriteRes<[I6400IssueALU1]>;
@@ -120,7 +132,6 @@ let SchedModel = MipsI6400Model in {
120132

121133
// MDU pipelines
122134
// =============
123-
def I6400MDU : ProcResource<1>;
124135
def I6400GPMUL : SchedWriteRes<[I6400MDU]> { let Latency = 4; }
125136
def : InstRW<[I6400GPMUL], (instrs MUL_R6, MULU, MUH, MUHU, DMUL_R6, DMUH,
126137
DMULU, DMUHU)>;
@@ -132,11 +143,6 @@ let SchedModel = MipsI6400Model in {
132143

133144
// FPU pipelines
134145
// =============
135-
def I6400FPU : ProcResource<3> { let BufferSize = 0; }
136-
def I6400FPUShort : ProcResource<1> { let Super = I6400FPU; }
137-
def I6400FPULong : ProcResource<1> { let Super = I6400FPU; }
138-
def I6400FPUApu : ProcResource<1>;
139-
def I6400FPUFloatL : ProcResource<1>;
140146

141147
def I6400FPUFabs : SchedWriteRes<[I6400FPUShort]>;
142148
def : InstRW<[I6400FPUFabs], (instrs FABS_S, FNEG_S, FMOV_S,
@@ -434,7 +440,6 @@ let SchedModel = MipsI6400Model in {
434440
// attach it to the Atomic2OpsPostRA, AtomicCmpSwapPostRA, ...
435441
// classes. Then just define resources for the `WriteAtomic` in each
436442
// machine models.
437-
def I6400Atomic : ProcResource<1> { let BufferSize = 0; }
438443
def I6400WriteAtomic : SchedWriteRes<[I6400Atomic]> { let Latency = 2; }
439444

440445
def : InstRW<[I6400WriteAtomic],

llvm/test/tools/llvm-mca/Mips/i6400.s

-11
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,6 @@ i6400:
7575
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 div $2, $1
7676
# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - sw $2, 0($sp)
7777

78-
# CHECK: Timeline view:
79-
# CHECK-NEXT: 0123456789 0123456789
80-
# CHECK-NEXT: Index 0123456789 0123456789 01
81-
# CHECK: [0,0] DeeE . . . . . . . .. lw $1, 0($sp)
82-
# CHECK-NEXT: [0,1] .DeeE. . . . . . . .. lw $2, 8($sp)
83-
# CHECK-NEXT: [0,2] . DE. . . . . . . .. move $3, $1
84-
# CHECK-NEXT: [0,3] . DeeeE . . . . . . .. mul $3, $2, $3
85-
# CHECK-NEXT: [0,4] . . DE. . . . . . .. sw $3, 8($sp)
86-
# CHECK-NEXT: [0,5] . . DeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeE. div $2, $1
87-
# CHECK-NEXT: [0,6] . . . . . . . . DE sw $2, 0($sp)
88-
8978
# CHECK: Average Wait times (based on the timeline view):
9079
# CHECK-NEXT: [0]: Executions
9180
# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue

0 commit comments

Comments
 (0)