[GHC] #609: Useful optimisation for set-cost-centre
GHC
trac at galois.com
Thu Dec 15 06:02:41 EST 2005
#609: Useful optimisation for set-cost-centre
-------------------------------+--------------------------------------------
Reporter: simonpj | Owner:
Type: task | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: None
Severity: normal | Resolution: None
Keywords: | Os: Unknown
Difficulty: Moderate (1 day) | Architecture: Unknown
-------------------------------+--------------------------------------------
Changes (by simonmar):
* architecture: => Unknown
* difficulty: => Moderate (1 day)
* os: => Unknown
Old description:
> {{{
> If you compile, for example, drvrun014 with -prof -auto-all, you'll see
> stuff like
>
> (scc "c" (dataToTag#)) y
>
> This generates bad code, because we end up eta-expaning dataToTag, which
> allocates an extra function closure.
>
> We think that in general
>
> (scc "c" e) y = scc "c" (e y)
>
> to within a small constant factor. So maybe the simplifier, or CorePrep,
> or both, should do this transformation.
> }}}
New description:
{{{
If you compile, for example, drvrun014 with -prof -auto-all, you'll see
stuff like
(scc "c" (dataToTag#)) y
This generates bad code, because we end up eta-expaning dataToTag, which
allocates an extra function closure.
We think that in general
(scc "c" e) y = scc "c" (e y)
to within a small constant factor. So maybe the simplifier, or CorePrep,
or both, should do this transformation.
}}}
--
Ticket URL: <http://cvs.haskell.org/trac/ghc/ticket/609>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list