https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113933
John David Anglin <danglin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #59163|0 |1 is obsolete| | --- Comment #7 from John David Anglin <danglin at gcc dot gnu.org> --- Created attachment 59178 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59178&action=edit Patch This patch gets us to bootstrap on hppa-unknown-linux-gnu and hppa64-hp-hpux11.11. For the most part, I fixed the LRA crashes by adjusting pa_secondary_reload to prevent pa_emit_move_sequence from being called in situations where it just emitted an unmodified set. Without reg_equiv_mem, the operands were not being adjusted and the reload failed. I was not able to get SECONDARY_MEMORY_NEEDED to work properly on hppa64 target with lra. It never did copy via memory between general and floating-point registers. We ended up with an unrecognized insn if I allowed reloading pseudos during LRA. If I didn't allow them, we got a secondary reload overflow. So, I modified 64-bit SImode, SFmode, DImode and DFmode to do copy using the SP-40 slot in the frame marker. We have a bunch of regressions. For example, FAIL: gcc.dg/enum-alias-3.c (test for excess errors) FAIL: gcc.dg/non-local-goto-1.c execution test FAIL: gcc.dg/non-local-goto-2.c execution test FAIL: gcc.dg/pr49994-1.c (internal compiler error: in add_stores, at var-tracking.cc:5966) FAIL: gcc.dg/pr49994-1.c (test for excess errors) Don't know if the changes to pa_secondary_reload will work with legacy reload.