Skip to content

Commit d6aef86

Browse files
author
Chen Zheng
authored
[PowerPC] make LR/LR8 CTR/CTR8 aliased (#76926)
fixes #47156 fixes #47155
1 parent c7cae61 commit d6aef86

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

llvm/lib/Target/PowerPC/PPCRegisterInfo.td

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,12 +270,15 @@ def CR7 : CR<7, "cr7", [CR7LT, CR7GT, CR7EQ, CR7UN]>, DwarfRegNum<[75, 75]>;
270270

271271
// Link register
272272
def LR : SPR<8, "lr">, DwarfRegNum<[-2, 65]>;
273-
//let Aliases = [LR] in
274-
def LR8 : SPR<8, "lr">, DwarfRegNum<[65, -2]>;
273+
def LR8 : SPR<8, "lr">, DwarfRegNum<[65, -2]> {
274+
let Aliases = [LR];
275+
}
275276

276277
// Count register
277278
def CTR : SPR<9, "ctr">, DwarfRegNum<[-2, 66]>;
278-
def CTR8 : SPR<9, "ctr">, DwarfRegNum<[66, -2]>;
279+
def CTR8 : SPR<9, "ctr">, DwarfRegNum<[66, -2]> {
280+
let Aliases = [CTR];
281+
}
279282

280283
// VRsave register
281284
def VRSAVE: SPR<256, "vrsave">, DwarfRegNum<[109]>;

llvm/test/CodeGen/PowerPC/pr47155-47156.ll

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ define void @pr47155() {
99
; CHECK-NEXT: pr47155:%bb.0 entry
1010
; CHECK: SU(0): INLINEASM &"mtlr 31"{{.*}}implicit-def early-clobber $lr
1111
; CHECK: Successors:
12+
; CHECK-NEXT: SU(1): Out Latency=0
1213
; CHECK-NEXT: SU(1): Ord Latency=0 Barrier
1314
; CHECK-NEXT: SU(1): INLINEASM &"mtlr 31"{{.*}}implicit-def early-clobber $lr8
1415
; CHECK: Predecessors:
16+
; CHECK-NEXT: SU(0): Out Latency=0
1517
; CHECK-NEXT: SU(0): Ord Latency=0 Barrier
1618
; CHECK-NEXT: ExitSU:
1719
entry:
@@ -25,11 +27,13 @@ define void @pr47156(ptr %fn) {
2527
; CHECK: ********** MI Scheduling **********
2628
; CHECK-NEXT: pr47156:%bb.0 entry
2729
; CHECK: SU(0): INLINEASM &"mtctr 31"{{.*}}implicit-def early-clobber $ctr
28-
; CHECK-NOT: Successors:
29-
; CHECK-NOT: Predecessors:
30-
; CHECK: SU(1): MTCTR8 renamable $x3, implicit-def $ctr8
3130
; CHECK: Successors:
32-
; CHECK-NEXT: ExitSU:
31+
; CHECK-NEXT: SU(1): Out Latency=0
32+
; CHECK-NEXT: SU(1): MTCTR8 renamable $x3, implicit-def $ctr8
33+
; CHECK: Predecessors:
34+
; CHECK-NEXT: SU(0): Out Latency=0
35+
; CHECK-NEXT: Successors:
36+
; CHECK-NEXT: ExitSU:
3337
; CHECK-NEXT: SU(2):
3438
entry:
3539
call void asm sideeffect "mtctr 31", "~{ctr}"()

0 commit comments

Comments
 (0)