Skip to content

Commit d8f9c05

Browse files
committed
remove checks for using reserved register since there is no such restrictions listed in the doc.
1 parent 3e69e23 commit d8f9c05

File tree

7 files changed

+27
-19
lines changed

7 files changed

+27
-19
lines changed

llvm/lib/Target/PowerPC/PPCISelLowering.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17383,8 +17383,8 @@ Register PPCTargetLowering::getRegisterByName(const char *RegName, LLT VT,
1738317383
report_fatal_error(
1738417384
Twine("Invalid global name register \"" + StringRef(RegName) + "\"."));
1738517385

17386-
// FIXME: These registers are not flagged as reserved and we can generate
17387-
// code for `-O0` but not for `-O2`. Need followup investigation as to why.
17386+
// FIXME: Unable to generate code for `-O2` but okay for `-O0`.
17387+
// Need followup investigation as to why.
1738817388
if ((IsPPC64 && Reg == PPC::R2) || Reg == PPC::R0)
1738917389
report_fatal_error(Twine("Trying to reserve an invalid register \"" +
1739017390
StringRef(RegName) + "\"."));
@@ -17393,9 +17393,6 @@ Register PPCTargetLowering::getRegisterByName(const char *RegName, LLT VT,
1739317393
if (Is64Bit && StringRef(RegName).starts_with_insensitive("r"))
1739417394
Reg = Reg.id() - PPC::R0 + PPC::X0;
1739517395

17396-
if (Subtarget.getRegisterInfo()->getReservedRegs(MF).test(Reg))
17397-
report_fatal_error(Twine("Trying to obtain a reserved register \"" +
17398-
StringRef(RegName) + "\"."));
1739917396
return Reg;
1740017397
}
1740117398

llvm/test/CodeGen/PowerPC/named-reg-alloc-r0.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: not --crash llc -O0 < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
2-
; RUN: not --crash llc -O0 < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
1+
; RUN: not --crash llc < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
2+
; RUN: not --crash llc < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
33

44
define i32 @get_reg() nounwind {
55
entry:

llvm/test/CodeGen/PowerPC/named-reg-alloc-r1-64.ll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
; RUN: not --crash llc < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
1+
; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
22

33
define i64 @get_reg() nounwind {
4-
; CHECK: Trying to obtain a reserved register "r1".
54
entry:
65
%reg = call i64 @llvm.read_register.i64(metadata !0)
76
ret i64 %reg
7+
8+
; CHECK-LABEL: get_reg
9+
; CHECK: mr 3, 1
810
}
911

1012
declare i64 @llvm.read_register.i64(metadata) nounwind

llvm/test/CodeGen/PowerPC/named-reg-alloc-r1.ll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
; RUN: not --crash llc < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
2-
; RUN: not --crash llc < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
1+
; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
2+
; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
33

44
define i32 @get_reg() nounwind {
5-
; CHECK: Trying to obtain a reserved register "r1".
65
entry:
76
%reg = call i32 @llvm.read_register.i32(metadata !0)
87
ret i32 %reg
8+
9+
; CHECK-LABEL: @get_reg
10+
; CHECK: mr 3, 1
11+
912
}
1013

1114
declare i32 @llvm.read_register.i32(metadata) nounwind

llvm/test/CodeGen/PowerPC/named-reg-alloc-r13-64.ll

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
; RUN: not --crash llc < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
1+
; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
22

33
define i64 @get_reg() nounwind {
4-
; CHECK: Trying to obtain a reserved register "r13".
54
entry:
65
%reg = call i64 @llvm.read_register.i64(metadata !0)
76
ret i64 %reg
7+
8+
; CHECK-LABEL: @get_reg
9+
; CHECK: mr 3, 13
10+
811
}
912

1013
declare i64 @llvm.read_register.i64(metadata) nounwind

llvm/test/CodeGen/PowerPC/named-reg-alloc-r13.ll

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
; RUN: not --crash llc < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
2-
; RUN: not --crash llc < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
1+
; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
2+
; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s
33

44
define i32 @get_reg() nounwind {
5-
; CHECK: Trying to obtain a reserved register "r13".
65
entry:
76
%reg = call i32 @llvm.read_register.i32(metadata !0)
87
ret i32 %reg
8+
9+
; CHECK-LABEL: @get_reg
10+
; CHECK: mr 3, 13
911
}
1012

1113
declare i32 @llvm.read_register.i32(metadata) nounwind

llvm/test/CodeGen/PowerPC/named-reg-alloc-r2.ll

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
; RUN: not --crash llc < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
1+
; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu 2>&1 | FileCheck %s
22
; RUN: not --crash llc < %s -mtriple=powerpc64-unknown-linux-gnu 2>&1 | FileCheck %s --check-prefix=CHECK-NOTPPC32
33

44
define i32 @get_reg() nounwind {
55
entry:
66
; CHECK-NOTPPC32: Trying to reserve an invalid register "r2".
7-
; CHECK: Trying to obtain a reserved register "r2".
87
%reg = call i32 @llvm.read_register.i32(metadata !0)
98
ret i32 %reg
9+
; CHECK-LABEL: @get_reg
10+
; CHECK: mr 3, 2
1011
}
1112

1213
declare i32 @llvm.read_register.i32(metadata) nounwind

0 commit comments

Comments
 (0)