logo       

[GHC] #701: Better CSE optimisation: msg#00052

lang.haskell.glasgow.bugs

Subject: [GHC] #701: Better CSE optimisation

#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_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@xxxxxxxxxxx
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise