[PATCH] Fix wrong code on aarch64 due to paradoxical subreg
Segher Boessenkool
segher@kernel.crashing.org
Mon Aug 1 23:31:00 GMT 2016
Hi,
On Mon, Aug 01, 2016 at 06:52:54PM +0000, Bernd Edlinger wrote:
> On 08/01/16 19:54, Jeff Law wrote:
> > Looks like you've probably nailed it. It'll be interesting see if
> > there's any fallout (though our RTL optimizer testing is pretty weak, so
> > even if there were, I doubt we'd catch it).
>
> If there is, it will probably a performance regression...
I tested building Linux with and without the patch, on many archs.
The few that show differences are:
alpha 6148872 6148776
ia64 16946958 16946670
s390 12345770 12345850
tile 12016086 12016070
(left before, right after; arm and aarch64 did not build, kernel problems).
So all except s390 generate smaller code even.
> However I think there are more paradoxical subregs generated all over,
> but the aarch64 insv code pattern did trigger more hidden bugs than
> any other port. It is certainly unfortunate that the major source
> of paradoxical subreg is in a target-dependent code path :(
It is certainly unfortunate that paradoxical subregs exist at all! :-)
Segher
More information about the Gcc-patches
mailing list