------- Comment #7 from rguenth at gcc dot gnu dot org 2010-02-27 19:52 ------- (In reply to comment #6) > Thanks! But it still does not work when "a < 3" is replaced by "a < 4". Also, > the original testcase requires much time to compile.
Well, it really only requires much time and memory to compile, it's not never ending ;) What you get is in the original testcase 8 times inlining of foo and all the loop nest completely unrolled (without any intermediate optimization). The first patch added some intermediate optimization that reduces the amount of CFG left to further unrollings. Honza, can we restrict recursive inlining if that increases the loop nest depth (also for profile guess reasons)? I realize that manually doing the 8-fold inlining still would leave us with a slow complete unrolling. We could restrict us to unroll say a maximum loop nest depth of 3. Or what we really would need is constant propagation and dead code elimination for the unrolled BBs after each iteration. I'm adding the restriction on unrolling. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu dot | |org Status|REOPENED |ASSIGNED Keywords| |compile-time-hog, memory-hog Last reconfirmed|2010-02-26 11:38:39 |2010-02-27 19:52:12 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43186