On 10/20/2015 01:40 PM, Segher Boessenkool wrote:
On Tue, Oct 20, 2015 at 12:01:26PM -0600, Jeff Law wrote:
On 10/20/2015 11:11 AM, Segher Boessenkool wrote:
On Tue, Oct 20, 2015 at 10:22:53AM -0600, Jeff Law wrote:
bz21182 has a testcase that's still helped by local register variables.
I tried it out, and it now is much worse *with* the reg vars than
without (and -O2 vs. -O3 makes no difference at all). It doesn't look
to have used the pre-determined allocation at all. The difference at
expand time is huge already; maybe some things weren't optimised at
tree level with the register vars? It's a bit big to really look into ;-)
We must be evaluating different things. I review the state of that bug
each release. While the amount of stack slot shuffling has improved over
time it still looked better with the register variables during the gcc-5
release cycle.
The "#if 0" variant (no reg vars) results in 3597 bytes text, "esp"
mentioned 29 times.
The "#if 1" version is 3886 bytes, "esp" mentioned 87 times.
This is a GCC 6 compiler, a week or so old.
Cool. I'll do a final review during stage3/stage4 and assuming we don't
go backwards between now and then we'll be able to cross that one off
the regression list for gcc6!
Jeff