# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: package/*/gcc/ia64-lra-impl.patch # Copyright (C) 2024 The T2 SDE Project # # This Copyright note is generated by scripts/Create-CopyPatch, # more information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License version 2 as used by the T2 SDE. # --- T2-COPYRIGHT-NOTE-END --- Switch IA-64 to LRA to avoid deprecation and deletion: https://inbox.sourceware.org/gcc-bugs/bug-90785-4-X7KYh6SLIg@http.gcc.gnu.org%2Fbugzilla%2F/T/ https://gcc.gnu.org/wiki/LRAIsDefault --- gcc-14-20240225/gcc/config/ia64/ia64.cc.vanilla 2024-02-26 22:16:41.779058476 +0100 +++ gcc-14-20240225/gcc/config/ia64/ia64.cc 2024-02-26 22:19:36.366049682 +0100 @@ -618,9 +618,6 @@ #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 @@ -1329,7 +1326,7 @@ { 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)) @@ -1776,7 +1773,7 @@ } } - if (!reload_in_progress && !reload_completed) + if (!lra_in_progress && !reload_completed) { operands[1] = spill_xfmode_rfmode_operand (operands[1], 0, mode); --- gcc-14-20240225/gcc/config/ia64/ia64.md.vanilla 2024-02-26 22:16:29.875059075 +0100 +++ gcc-14-20240225/gcc/config/ia64/ia64.md 2024-02-26 22:17:19.414056580 +0100 @@ -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)) --- gcc-14-20240225/gcc/config/ia64/predicates.md.vanilla 2024-02-26 22:16:24.994059321 +0100 +++ gcc-14-20240225/gcc/config/ia64/predicates.md 2024-02-26 22:17:19.415056580 +0100 @@ -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. */