[GHC] #701: Better CSE optimisation

GHC trac at galois.com
Mon Feb 20 08:58:06 EST 2006


#701: Better CSE optimisation
-------------------------+--------------------------------------------------
    Reporter:  simonmar  |        Owner:                    
        Type:  task      |       Status:  new               
    Priority:  normal    |    Milestone:                    
   Component:  Compiler  |      Version:  6.4.1             
    Severity:  normal    |     Keywords:                    
          Os:  Unknown   |   Difficulty:  Difficult (1 week)
Architecture:  Unknown   |  
-------------------------+--------------------------------------------------
GHC's CSE optimisation is pretty weedy.  It looks for expressions like
 this:
 {{{
    let x = e1 in e2
 }}}
 and replaces all occurrences of e1 in e2 with x.  This doesn't do full
 CSE, but it does catch some cases.  There have been case where full CSE
 would be significantly beneficial, though.

 One possible way forward is to have a separate CSE pass that transformed
 expressions containing common subexpressions into the let-form above, and
 let the existing CSE pass do the final replacement.

 We must be cautious, though: increasing sharing can introduce space leaks.
 Sometimes we can prove that this cannot happen, for example when the
 shared object is primitive, or has a bounded size.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/701>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list