[Bug target/70359] [6/7/8 Regression] Code size increase for ARM compared to gcc-5.3.0
aldyh at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 2 17:37:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70359
--- Comment #28 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #25)
> What usually makes things complicated in the end is when for an IV
> we get overlapping life-ranges for the before and after value because
> that inhibits coalescing. Is this what happens here?
...
...
> So we indeed have p_20 and p_9 live as p_9 is used after the loop.
> Originally
> this wasn't the case but fold_stmt in the first forwprop pass does this
> by means of following use-def chains.
I'm a bit confused.
Where are you looking, after the forprop1 pass? Because after forwprop1 I see:
<bb 5> :
p_22 = p_8 + 4294967294;
MEM[(char *)p_19 + 4294967295B] = 45;
<bb 6> :
# p_9 = PHI <p_19(4), p_22(5)>
return p_9;
Which as I understand has:
p_8 being the IV at the beginning of the last iteration.
p_19 being the IV at the end of the last iteration.
p_22 being the IV at the end of the last iteration MINUS 1.
I don't see a p_20 anywhere. Did you mean that p_8 and p_19 where both live at
the end of the loop?
Thanks for all the feedback BTW.
More information about the Gcc-bugs
mailing list