Peyton-Jones; glasgow-haskell-bugs@haskell.org
| Subject: Re: object code blow up by optimization
|
| Hi,
|
| we generate a couple of source files with orphaned instances for the
| classes Typeable and ShATermConvertible.
|
| Only adding {-# OPTIONS -O0 #-} made my code bloat problem go away
Simon Peyton-Jones wrote:
Just to let you know, I can reproduce this problem nicely (thank you for
setting up the repro case). It turns out to be caused by the
simplifier's inlining policy which goes if not exponential then
something very like it. It's made dramatically worse by the fact that
Sorry, I forgot to save my changes. The numbers are much better with infixr:
Linking ...
real5m30.666s
user4m56.950s
sys 0m9.262s
[EMAIL PROTECTED]:~/haskell/examples ll a.out HasCASL/PrintLe.o
-rwxr-xr-x 1 maeder wimi 4812378 2006-01-26 20:01 a.out
-rw-r--r-- 1 maeder wimi
When I also swap the corresponding equations the code bloat comes back:
above_ p _ Empty = p
above_ Empty _ q = q
beside_ p _ Empty = p
beside_ Empty _ q = q
Linking ...
real7m10.727s
user6m25.456s
sys 0m10.698s
[EMAIL PROTECTED]:~/haskell/examples ll a.out HasCASL/PrintLe.o