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.

Reply via email to