------- 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

Reply via email to