]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Enable LRA for ia64
authorRené Rebe <rene@exactcode.de>
Wed, 12 Jun 2024 10:42:00 +0000 (12:42 +0200)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 9 Oct 2024 09:28:33 +0000 (11:28 +0200)
This was tested by bootstrapping GCC natively on ia64-t2-linux-gnu and
running the testsuite (based on
236116068151bbc72aaaf53d0f223fe06f7e3bac):

https://gcc.gnu.org/pipermail/gcc-testresults/2024-June/817268.html

For comparison, the same with just
236116068151bbc72aaaf53d0f223fe06f7e3bac:

https://gcc.gnu.org/pipermail/gcc-testresults/2024-June/817267.html

gcc/
* config/ia64/ia64.cc: Enable LRA for ia64.
* config/ia64/ia64.md: Likewise.
* config/ia64/predicates.md: Likewise.

Signed-off-by: René Rebe <rene@exactcode.de>
gcc/config/ia64/ia64.cc
gcc/config/ia64/ia64.md
gcc/config/ia64/predicates.md

index cd6ed8952114647a3188eaadd4340dcacfcc90e3..54706da33364fd2850fd75ad2ed801ab8c9f487e 100644 (file)
@@ -619,9 +619,6 @@ static const scoped_attribute_specs *const ia64_attribute_table[] =
 #undef TARGET_LEGITIMATE_ADDRESS_P
 #define TARGET_LEGITIMATE_ADDRESS_P ia64_legitimate_address_p
 
-#undef TARGET_LRA_P
-#define TARGET_LRA_P hook_bool_void_false
-
 #undef TARGET_CANNOT_FORCE_CONST_MEM
 #define TARGET_CANNOT_FORCE_CONST_MEM ia64_cannot_force_const_mem
 
@@ -1333,7 +1330,7 @@ ia64_expand_move (rtx op0, rtx op1)
 {
   machine_mode mode = GET_MODE (op0);
 
-  if (!reload_in_progress && !reload_completed && !ia64_move_ok (op0, op1))
+  if (!lra_in_progress && !reload_completed && !ia64_move_ok (op0, op1))
     op1 = force_reg (mode, op1);
 
   if ((mode == Pmode || mode == ptr_mode) && symbolic_operand (op1, VOIDmode))
@@ -1780,7 +1777,7 @@ ia64_expand_movxf_movrf (machine_mode mode, rtx operands[])
        }
     }
 
-  if (!reload_in_progress && !reload_completed)
+  if (!lra_in_progress && !reload_completed)
     {
       operands[1] = spill_xfmode_rfmode_operand (operands[1], 0, mode);
 
index 698e302081e75674245b30940c8135ecf0008766..d485acc0ea864d2beca8a01febaaf6abc1ba1b4b 100644 (file)
                          (match_operand:DI 3 "register_operand" "f"))
                 (match_operand:DI 4 "nonmemory_operand" "rI")))
    (clobber (match_scratch:DI 5 "=f"))]
-  "reload_in_progress"
+  "lra_in_progress"
   "#"
   [(set_attr "itanium_class" "unknown")])
 
                                   (match_operand:DI 2 "shladd_operand" "n"))
                          (match_operand:DI 3 "nonmemory_operand" "r"))
                 (match_operand:DI 4 "nonmemory_operand" "rI")))]
-  "reload_in_progress"
+  "lra_in_progress"
   "* gcc_unreachable ();"
   "reload_completed"
   [(set (match_dup 0) (plus:DI (mult:DI (match_dup 1) (match_dup 2))
index 01a4effd339624bc9d4afcb593b3206d3f0efbef..85f5380e7344cc5d8201f73d0a8046f7d73c78bd 100644 (file)
           allows reload the opportunity to avoid spilling addresses to
           the stack, and instead simply substitute in the value from a
           REG_EQUIV.  We'll split this up again when splitting the insn.  */
-       if (reload_in_progress || reload_completed)
+       if (lra_in_progress || reload_completed)
          return true;
 
        /* Some symbol types we allow to use with any offset.  */