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.