[Bug ipa/60243] IPA is slow on large cgraph tree
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Nov 17 12:34:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60243
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |memory-hog
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-11-17
Ever confirmed|0 |1
Known to fail| |7.2.1
--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> ---
Not by this commit. Jakubs testcase is still slow in GCC 7 (and uses >28GB
memory - ick, didn't even finish compiling).
We seem to blow up during early inlining here, because we get BBs with
millions of
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
__asm__ __volatile__("" : : : "memory");
...
counting those as zero size probably isn't wise if we don't "optimize"
them during inlining...
This issue likely hides the underlying old issue.
case GIMPLE_ASM:
{
int count = asm_str_count (gimple_asm_string (as_a <gasm *> (stmt)));
/* 1000 means infinity. This avoids overflows later
with very long asm statements. */
if (count > 1000)
count = 1000;
return count;
}
should return MIN (1, count) even if in this case the asm doesn't generate
any code.
More information about the Gcc-bugs
mailing list