aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2021-03-10 14:57:01 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2021-03-10 14:59:49 +0000
commitcb33c7276a6bbf8dd1ffba13d358f49b933d9cc8 (patch)
treee9ba4d3ef4fc12b60465452d81f95d259d18c25a
parent46b52b4ae118e4d682beb0bef4f51396cd40ebfe (diff)
downloadgcc-cb33c7276a6bbf8dd1ffba13d358f49b933d9cc8.zip
gcc-cb33c7276a6bbf8dd1ffba13d358f49b933d9cc8.tar.gz
gcc-cb33c7276a6bbf8dd1ffba13d358f49b933d9cc8.tar.bz2
Add LRA target selector.
gcc/ChangeLog: * doc/sourcebuild.texi: Document LRA target selector. gcc/testsuite/ChangeLog: PR testsuite/99292 * lib/target-supports.exp (check_effective_target_lra): New. * gcc.c-torture/compile/asmgoto-2.c: Use LRA target selector. * gcc.c-torture/compile/asmgoto-5.c: Likewise. * gcc.c-torture/compile/pr98096.c: Likewise. * gcc.dg/pr97954.c: Likewise.
-rw-r--r--gcc/doc/sourcebuild.texi3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/asmgoto-2.c3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr98096.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr97954.c2
-rw-r--r--gcc/testsuite/lib/target-supports.exp10
6 files changed, 17 insertions, 6 deletions
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index cbb7a5b..1fa3656 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2525,6 +2525,9 @@ Target keeps null pointer checks, either due to the use of
@item llvm_binutils
Target is using an LLVM assembler and/or linker, instead of GNU Binutils.
+@item lra
+Target supports local register allocator (LRA).
+
@item lto
Compiler has been configured to support link-time optimization (LTO).
diff --git a/gcc/testsuite/gcc.c-torture/compile/asmgoto-2.c b/gcc/testsuite/gcc.c-torture/compile/asmgoto-2.c
index d2d2ac5..43e597b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/asmgoto-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/asmgoto-2.c
@@ -1,6 +1,5 @@
/* This test should be switched off for a new target with less than 4 allocatable registers */
-/* { dg-do compile } */
-/* { dg-skip-if "Reload target" { hppa*-*-* } } */
+/* { dg-do compile { target lra } } */
int
foo (void)
{
diff --git a/gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c b/gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c
index ce751ce..e1574a2 100644
--- a/gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c
+++ b/gcc/testsuite/gcc.c-torture/compile/asmgoto-5.c
@@ -1,7 +1,6 @@
/* Test to generate output reload in asm goto on x86_64. */
-/* { dg-do compile } */
+/* { dg-do compile { target lra } } */
/* { dg-skip-if "no O0" { { i?86-*-* x86_64-*-* } && { ! ia32 } } { "-O0" } { "" } } */
-/* { dg-skip-if "Reload target" { hppa*-*-* } } */
#if defined __x86_64__
#define ASM(s) asm (s)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr98096.c b/gcc/testsuite/gcc.c-torture/compile/pr98096.c
index 95ad55c..bba3fa5 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr98096.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr98096.c
@@ -1,6 +1,6 @@
/* Test for correct naming of label operands in asm goto in case of presence of
input/output operands. */
-/* { dg-do compile } */
+/* { dg-do compile { target lra } } */
int i, j;
int f(void) {
asm goto ("# %0 %2" : "+r" (i) ::: jmp);
diff --git a/gcc/testsuite/gcc.dg/pr97954.c b/gcc/testsuite/gcc.dg/pr97954.c
index 178e1d2..0be60f5 100644
--- a/gcc/testsuite/gcc.dg/pr97954.c
+++ b/gcc/testsuite/gcc.dg/pr97954.c
@@ -1,5 +1,5 @@
/* PR rtl-optimization/97954 */
-/* { dg-do compile } */
+/* { dg-do compile { target lra } } */
/* { dg-options "-O2" } */
int
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 52d3d03..a90c375 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -11005,3 +11005,13 @@ proc check_effective_target_o_flag_in_section { } {
}
}]
}
+
+# return 1 if LRA is supported.
+
+proc check_effective_target_lra { } {
+ if { [istarget hppa*-*-*] } {
+ return 0
+ }
+ return 1
+}
+