Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
re: Issues with native build of -10 on VAX
> I *think* I've worked out what the 'reload' pass has done when compiling
> this test case, though I'm not sure that I understand it well enough to
> be able to explain it properly.
nice!
> What seems to have happened is that the instructions to push argument 3
> have inherited the output reload of --%sp into %r1 from the instructions
> pushing argument 5, but GCC hasn't noted that the pushl $0 for argument
> 4 has also changed %sp so the output reload can't be reused.
>
> There's a block of code in gcc/reload1.c which does invalidate old
> output reloads; the attached patch adds to this block to invalidate a
> reload of an output register if the output register is a reference to
> memory using an autoincrement or autodecrement addressing mode.
>
> With the patch applied, I've been able to compile the test case using
> the resulting native compiler, and a native build of NetBSD hasn't
> failed yet, which is promising. I have not applied any workarounds to
> sancov.c or to tree-switch-conversion.c, and I'm also compiling GCC with
> the default optimisation level (-O2; I haven't applied any of Matthew's
> changes mentioned earlier).
i think i actually understand what you're fixing and my review of
this change says i don't see anything obvious wrong about it (but
i'm not going to claim i understand it fully. :)
> I've also applied this change to a copy of GCC 10.5.0 from upstream and
> on amd64 at least there was no change to the regression test results so
> I don't think this introduces any regressions.
FWIW, it doesn't seem to affect x86 because it doesn't end up
having AUTO_INC_DEC set, so not compiled there. looks like for
netbsd targets, that set that will be aarch64, arm, ia64, m68k,
pa, rs6000, sh, and vax. (i confirmed x86 with a real test,
but this list is a grep-based one.)
this makes me wonder if we can trigger this failure mode on
these other cpus if we try hard, and this fixes for all..
> I'm curious to know if this will work for anyone else.
my netbsd-10 vax simh hung during the install phase of
build.sh release, using the -O1 hacked version, so for
now i've switched to a -current GCC 10 system, with your
this patch applied and no -O1s for cc1plus. will be a
couple days, but i should have a result soon :)
.mrg.
Home |
Main Index |
Thread Index |
Old Index