Enable LRA for ia64
This was tested by bootstrapping GCC natively on ia64-t2-linux-gnu and running the testsuite (based on2361160681
): https://gcc.gnu.org/pipermail/gcc-testresults/2024-June/817268.html For comparison, the same with just2361160681
: 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>
This commit is contained in:
parent
452b12cea8
commit
68afc7acf6
3 changed files with 5 additions and 8 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -2318,7 +2318,7 @@
|
|||
(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")])
|
||||
|
||||
|
@ -3407,7 +3407,7 @@
|
|||
(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))
|
||||
|
|
|
@ -347,7 +347,7 @@
|
|||
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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue