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