#2325: Compile-time computations
-----------------------------------------+----------------------------------
Reporter: ajd | Owner:
Type: run-time performance bug | Status: new
Priority: normal | Component: Compiler
Version: 6.8.2 | Severity: normal
Keywords: | Testcase:
Architecture: Unknown | Os: Unknown
-----------------------------------------+----------------------------------
{{{
$ cat Reduce3.hs
module Reduce3
where
foo = 1 + 2
$ cat Reduce4.hs
module Reduce4
where
foo = 3
$ ghc -c -O2 -fforce-recomp -ddump-simpl Reduce3.hs
==================== Tidy Core ====================
Reduce3.lvl :: GHC.Num.Integer
[GlobalId]
[NoCafRefs]
Reduce3.lvl = GHC.Num.S# 1
Reduce3.lvl1 :: GHC.Num.Integer
[GlobalId]
[NoCafRefs]
Reduce3.lvl1 = GHC.Num.S# 2
Reduce3.foo :: GHC.Num.Integer
[GlobalId]
[Str: DmdType]
Reduce3.foo = GHC.Num.plusInteger Reduce3.lvl Reduce3.lvl1
==================== Tidy Core Rules ====================
$ ghc -c -O2 -fforce-recomp -ddump-simpl Reduce4.hs
==================== Tidy Core ====================
Reduce4.foo :: GHC.Num.Integer
[GlobalId]
[NoCafRefs
Str: DmdType]
Reduce4.foo = GHC.Num.S# 3
==================== Tidy Core Rules ====================
}}}
It would be nice if GHC could do the addition at compile time (since,
after all, the result will always be the same) instead of at runtime.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2325>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs