Skip to content

Commit 0680a3d

Browse files
author
QingShan Zhang
committed
[Power10] Enable the heuristic for Power10 and switch the sched model
with P9 Model Enable the pre-ra and post-ra scheduler strategy for Power10 as we want to customize the heuristic later. And switch the scheduler model with P9 model before P10 Model is available. The NoSchedModel is modelled as in-order cpu and the pre-ra scheduler is not bi-directional which will have big impact on the scheduler. Reviewed By: jji Differential Revision: https://reviews.llvm.org/D86865
1 parent 528554c commit 0680a3d

File tree

4 files changed

+20
-20
lines changed

4 files changed

+20
-20
lines changed

llvm/lib/Target/PowerPC/PPC.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,8 @@ def ProcessorFeatures {
325325
[DirectivePwr9,
326326
FeatureP9Altivec,
327327
FeatureP9Vector,
328+
FeaturePPCPreRASched,
329+
FeaturePPCPostRASched,
328330
FeatureISA3_0,
329331
FeaturePredictableSelectIsExpensive
330332
];
@@ -334,9 +336,7 @@ def ProcessorFeatures {
334336
// dispatch for vector operations than scalar ones. For the time being,
335337
// this list also includes scheduling-related features since we do not have
336338
// enough info to create custom scheduling strategies for future CPUs.
337-
list<SubtargetFeature> P9SpecificFeatures = [FeatureVectorsUseTwoUnits,
338-
FeaturePPCPreRASched,
339-
FeaturePPCPostRASched];
339+
list<SubtargetFeature> P9SpecificFeatures = [FeatureVectorsUseTwoUnits];
340340
list<SubtargetFeature> P9InheritableFeatures =
341341
!listconcat(P8InheritableFeatures, P9AdditionalFeatures);
342342
list<SubtargetFeature> P9Features =
@@ -559,7 +559,7 @@ def : ProcessorModel<"pwr7", P7Model, ProcessorFeatures.P7Features>;
559559
def : ProcessorModel<"pwr8", P8Model, ProcessorFeatures.P8Features>;
560560
def : ProcessorModel<"pwr9", P9Model, ProcessorFeatures.P9Features>;
561561
// No scheduler model yet.
562-
def : ProcessorModel<"pwr10", NoSchedModel, ProcessorFeatures.P10Features>;
562+
def : ProcessorModel<"pwr10", P9Model, ProcessorFeatures.P10Features>;
563563
// No scheduler model for future CPU.
564564
def : ProcessorModel<"future", NoSchedModel,
565565
ProcessorFeatures.FutureFeatures>;

llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ define dso_local signext i32 @AsmClobberX2WithTOC(i32 signext %a, i32 signext %b
4545
; CHECK-LARGE: ld r2, .Lfunc_toc2-.Lfunc_gep2(r12)
4646
; CHECK-LARGE: add r2, r2, r12
4747
; CHECK-S: .localentry AsmClobberX2WithTOC
48-
; CHECK-S: #APP
48+
; CHECK-S: add r3, r4, r3
49+
; CHECK-S-NEXT: #APP
4950
; CHECK-S-NEXT: li r2, 0
5051
; CHECK-S-NEXT: #NO_APP
51-
; CHECK-S-NEXT: plwz r5, global_int@PCREL(0), 1
52-
; CHECK-S-NEXT: add r3, r4, r3
53-
; CHECK-S-NEXT: add r3, r3, r5
52+
; CHECK-S-NEXT: plwz r4, global_int@PCREL(0), 1
53+
; CHECK-S-NEXT: add r3, r3, r4
5454
; CHECK-S-NEXT: extsw r3, r3
5555
; CHECK-S-NEXT: blr
5656
entry:
@@ -67,10 +67,10 @@ define dso_local signext i32 @AsmClobberX5(i32 signext %a, i32 signext %b) local
6767
; CHECK-P9-NOT: .localentry
6868
; CHECK-ALL: # %bb.0: # %entry
6969
; CHECK-S-NEXT: add r3, r4, r3
70-
; CHECK-S-NEXT: extsw r3, r3
7170
; CHECK-S-NEXT: #APP
7271
; CHECK-S-NEXT: nop
7372
; CHECK-S-NEXT: #NO_APP
73+
; CHECK-S-NEXT: extsw r3, r3
7474
; CHECK-S-NEXT: blr
7575
entry:
7676
%add = add nsw i32 %b, %a
@@ -109,24 +109,24 @@ define dso_local signext i32 @X2IsCallerSaved(i32 signext %a, i32 signext %b, i3
109109
; CHECK-S-NEXT: add r9, r10, r9
110110
; CHECK-S-NEXT: sub r10, r10, r3
111111
; CHECK-S-NEXT: mullw r3, r4, r3
112+
; CHECK-S-NEXT: sub r12, r4, r5
113+
; CHECK-S-NEXT: add r0, r6, r5
114+
; CHECK-S-NEXT: sub r2, r6, r7
115+
; CHECK-S-NEXT: std r30, -16(r1) # 8-byte Folded Spill
116+
; CHECK-S-NEXT: add r30, r8, r7
112117
; CHECK-S-NEXT: mullw r3, r3, r11
113118
; CHECK-S-NEXT: mullw r3, r3, r5
114-
; CHECK-S-NEXT: sub r12, r4, r5
115119
; CHECK-S-NEXT: mullw r3, r3, r6
116-
; CHECK-S-NEXT: add r0, r6, r5
117120
; CHECK-S-NEXT: mullw r3, r3, r12
118121
; CHECK-S-NEXT: mullw r3, r3, r0
119122
; CHECK-S-NEXT: mullw r3, r3, r7
120-
; CHECK-S-NEXT: sub r2, r6, r7
121123
; CHECK-S-NEXT: mullw r3, r3, r8
122-
; CHECK-S-NEXT: std r30, -16(r1) # 8-byte Folded Spill
123-
; CHECK-S-NEXT: add r30, r8, r7
124124
; CHECK-S-NEXT: mullw r3, r3, r2
125125
; CHECK-S-NEXT: mullw r3, r3, r30
126-
; CHECK-S-NEXT: mullw r3, r3, r29
127-
; CHECK-S-NEXT: mullw r3, r3, r9
128126
; CHECK-S-NEXT: ld r30, -16(r1) # 8-byte Folded Reload
127+
; CHECK-S-NEXT: mullw r3, r3, r29
129128
; CHECK-S-NEXT: ld r29, -24(r1) # 8-byte Folded Reload
129+
; CHECK-S-NEXT: mullw r3, r3, r9
130130
; CHECK-S-NEXT: mullw r3, r3, r10
131131
; CHECK-S-NEXT: extsw r3, r3
132132
; CHECK-S-NEXT: blr

llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,10 @@ define dso_local signext i32 @IndirectCall3(i32 signext %a, i32 signext %b, i32
353353
; CHECK-S-NEXT: stdu r1, -32(r1)
354354
; CHECK-S-NEXT: .cfi_def_cfa_offset 32
355355
; CHECK-S-NEXT: .cfi_offset lr, 16
356-
; CHECK-S-NEXT: add r3, r4, r3
357-
; CHECK-S-NEXT: extsw r3, r3
358356
; CHECK-S-NEXT: mtctr r5
357+
; CHECK-S-NEXT: add r3, r4, r3
359358
; CHECK-S-NEXT: mr r12, r5
359+
; CHECK-S-NEXT: extsw r3, r3
360360
; CHECK-S-NEXT: bctrl
361361
; CHECK-S-NEXT: plwz r4, globalVar@PCREL(0), 1
362362
; CHECK-S-NEXT: mullw r3, r4, r3

llvm/test/CodeGen/PowerPC/pcrel-tail-calls.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ define dso_local signext i32 @TailCallAbs() local_unnamed_addr {
185185
; CHECK: .localentry TailCallAbs, 1
186186
; CHECK-NEXT: # %bb.0: # %entry
187187
; CHECK-NEXT: li r3, 400
188-
; CHECK-NEXT: mtctr r3
189188
; CHECK-NEXT: li r12, 400
189+
; CHECK-NEXT: mtctr r3
190190
; CHECK-NEXT: bctr
191191
; CHECK-NEXT: #TC_RETURNr8 ctr 0
192192
entry:
@@ -207,8 +207,8 @@ define dso_local signext i32 @NoTailCallAbs(i32 signext %a) local_unnamed_addr {
207207
; CHECK-NEXT: stdu r1, -48(r1)
208208
; CHECK-NEXT: mr r30, r3
209209
; CHECK-NEXT: li r3, 400
210-
; CHECK-NEXT: mtctr r3
211210
; CHECK-NEXT: li r12, 400
211+
; CHECK-NEXT: mtctr r3
212212
; CHECK-NEXT: bctrl
213213
; CHECK-NEXT: add r3, r3, r30
214214
; CHECK-NEXT: extsw r3, r3

0 commit comments

Comments
 (0)