From: John David Anglin Date: Wed, 10 Mar 2021 14:57:01 +0000 (+0000) Subject: Add LRA target selector. X-Git-Tag: basepoints/gcc-12~656 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cb33c7276a6bbf8dd1ffba13d358f49b933d9cc8;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index cbb7a5b153da..1fa36566453b 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 d2d2ac536bd6..43e597bc59f8 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 ce751ced90cc..e1574a2903af 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 95ad55c81aa1..bba3fa5c6190 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 178e1d2e965e..0be60f500b66 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 52d3d036d3c5..a90c375b8fe2 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 +} +