[GHC] #3138: Returning a known constructor: GHC generates
terrible code for cmonad
GHC
trac at galois.com
Mon Jun 1 07:28:08 EDT 2009
#3138: Returning a known constructor: GHC generates terrible code for cmonad
-----------------------------------------+----------------------------------
Reporter: simonpj | Owner:
Type: run-time performance bug | Status: new
Priority: normal | Milestone: 6.12 branch
Component: Compiler | Version: 6.10.1
Severity: normal | Resolution:
Keywords: | Difficulty: Unknown
Testcase: | Os: Unknown/Multiple
Architecture: Unknown/Multiple |
-----------------------------------------+----------------------------------
Comment (by augustss):
A first thing to look at is the fact that there's still dictionaries in
the code.
There's no unresolved overloading in Inf.hs, so all dictionaries should be
gone.
To avoid the disturbing recursive while function, try this code instead:
{{{
inf = runE $ do
s <- auto 0
i <- auto 0
i =: 1
if1 ((i :: E m Double) <= 1e3) $ do
s += 1/i
i += 1
retrn s
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3138#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list