This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/26854] [4.3/4.4 Regression] Inordinate compile times on large routines



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]