[Bug tree-optimization/56610] New: IPA(-CP) clone materialization fails to cleanup the CFG
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Mar 13 09:47:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56610
Bug #: 56610
Summary: IPA(-CP) clone materialization fails to cleanup the
CFG
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: rguenth@gcc.gnu.org
CC: hubicka@gcc.gnu.org
__attribute__((noinline)) static int
foo (int x)
{
int i = 1;
if (x > 1)
do
bar (i);
while (++i != x);
}
void
baz (void)
{
foo (1);
foo (1);
foo (1);
}
We can see a
if (1 == 0)
survive for a long time. When IPA-CP get's the chance to look at the
clones body in ipcp_transform_function there is nothing that changes
the CFG and thus it doesn't queue a cfg-cleanup to fix up the above
(which is created by clone materialization itself).
Now we can just unconditionally schedule a cfg-cleanup after IPA-CP,
but really all those "todo"s should queue up for all IPA transforms
(including fixup-cfg, which should be a IPA transform-only pass in the
IPA pipeline).
More information about the Gcc-bugs
mailing list