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.