Hi, > On Jun 12, 2024, at 13:01, Richard Biener <rguent...@suse.de> wrote: > > On Wed, 12 Jun 2024, Rene Rebe wrote: >> >> gcc/ >> * config/ia64/ia64.cc: Enable LRA for ia64. >> * config/ia64/ia64.md: Likewise. >> * config/ia64/predicates.md: Likewise. > > That looks simple enough. I cannot find any copyright assignment on > file with the FSF so you probably want to contribute to GCC under > the DCO (see https://gcc.gnu.org/dco.html), in that case please post > patches with Signed-off-by: tags.
If it helps for the future, I can apply for copyright assignment, too. > For this patch please state how you tested it, I assume you > bootstrapped GCC natively on ia64-linux and ran the testsuite. > I can find two gcc-testresult postings, one appearantly with LRA > and one without? Both from May: > > https://sourceware.org/pipermail/gcc-testresults/2024-May/816422.html > https://sourceware.org/pipermail/gcc-testresults/2024-May/816346.html Yes, that are the two I quoted in the patch cover letter. https://gcc.gnu.org/pipermail/gcc-patches/2024-June/654321.html > somehow for example libstdc++ summaries were not merged, it might > be you do not have recent python installed on the system? Or you > didn't use contrib/test_summary to create those mails. It would be > nice to see the difference between LRA and not LRA in the testresults, > can you quote that? We usually cross-compile gcc, but also ran natively for the testsuite. Given the tests run quite long natively on the hardware we currently have, I summed the results them up in the cover letter. I would assume that shoudl be enough to include with a note the resulting kernel and user-space world was booted and worked without issues? If so, I’ll just resend with the additional information added. Thank you so much, René > Thanks, > Richard. > >> --- >> gcc/config/ia64/ia64.cc | 7 ++----- >> gcc/config/ia64/ia64.md | 4 ++-- >> gcc/config/ia64/predicates.md | 2 +- >> 3 files changed, 5 insertions(+), 8 deletions(-) >> >> diff --git a/gcc/config/ia64/ia64.cc b/gcc/config/ia64/ia64.cc >> index ac3d56073ac..d189bfb2cb4 100644 >> --- a/gcc/config/ia64/ia64.cc >> +++ b/gcc/config/ia64/ia64.cc >> @@ -618,9 +618,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 >> >> @@ -1329,7 +1326,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)) >> @@ -1776,7 +1773,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); >> >> diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md >> index 698e302081e..d485acc0ea8 100644 >> --- a/gcc/config/ia64/ia64.md >> +++ b/gcc/config/ia64/ia64.md >> @@ -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)) >> diff --git a/gcc/config/ia64/predicates.md b/gcc/config/ia64/predicates.md >> index 01a4effd339..85f5380e734 100644 >> --- a/gcc/config/ia64/predicates.md >> +++ b/gcc/config/ia64/predicates.md >> @@ -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. */ >> > > -- > Richard Biener <rguent...@suse.de> > SUSE Software Solutions Germany GmbH, > Frankenstrasse 146, 90461 Nuernberg, Germany; > GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg) -- ExactCODE GmbH, Lietzenburger Str. 42, DE-10789 Berlin http://exactcode.com | http://exactscan.com | http://ocrkit.com