------- Comment #96 from dberlin at gcc dot gnu dot org  2009-02-16 02:07 
-------
Subject: Re:  [4.3/4.4 Regression] Inordinate 
        compile times on large routines

Uh, it's most certainly disabled on testcases like his.
look at is_too_expensive in gcse.c

This is in fact done because LCM iteration takes too long on
flowgraphs like that, because of it's iteration order.




On Sun, Feb 15, 2009 at 6:26 AM, stevenb dot gcc at gmail dot com
<gcc-bugzi...@gcc.gnu.org> wrote:
>
>
> ------- Comment #95 from stevenb dot gcc at gmail dot com  2009-02-15 11:26 
> -------
> Subject: Re:  [4.3/4.4 Regression] Inordinate
>        compile times on large routines
>
> Re: Comment #94
> The trouble with LCM in RTL (i.e. GCSE-PRE) is not that it is slow (or
> that it is disabled -- istr it is enabled at -O2), and also not that
> it is edge based. The problem is that it doesn't handle cascading
> expressions, because that just doesn't fit in the LCM framework. You
> have to iterate RTL GCSE-PRE to move the same invariants as what RTL
> LICM (i.e. loop-invariant.c) can achieve.
>
> (GCSE-PRE is old code from a time when GCC didn't really have a proper
> CFG. It is edge based because for block based you need critical edge
> splitting, which was was prohibitively expensive in the Old Days.
> Nowadays, gcse.c+lcm.c works in cfglayout mode and pre-splitting
> critical edges would be cheap, so it would be a good idea to
> experiment with a block based GCSE-PRE rewrite...)
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
>
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854

Reply via email to