[Bug tree-optimization/86214] [8/9 Regression] Strongly increased stack usage
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Dec 20 12:46:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86214
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
CC| |matz at gcc dot gnu.org,
| |rguenth at gcc dot gnu.org
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue with Alex testcase is that inlining when faced with
ff ()
{
charD.10 cD.2379[1000];
<bb 2> :
f (&cD.2379);
<bb 3> :
cD.2379 ={v} {CLOBBER};
return;
<bb 4> :
<L0>:
cD.2379 ={v} {CLOBBER};
resx 1
}
ends up unifying the resx 1 parts, making the lifetime of the two instances
overlap:
g (intD.9 nD.2380)
{
charD.10 cD.2411[1000];
charD.10 cD.2410[1000];
...
<bb 4> :
f (&cD.2410);
<bb 5> :
cD.2410 ={v} {CLOBBER};
f (&cD.2411);
<bb 6> :
cD.2411 ={v} {CLOBBER};
... all fine up to here
<bb 9> :
<L4>:
sD.2383 ={v} {CLOBBER};
cD.2399 ={v} {CLOBBER};
resx 1
oops. When analyzing lifetime of variables during RTL expansion we might
want to not consider blocks where only the clobbers mention the vars thus
virtually move those up as far as possible.
More information about the Gcc-bugs
mailing list