Compiler optimizations questions for ghc 6.10...
twhitehead at gmail.com
Tue Feb 17 23:51:26 EST 2009
On February 17, 2009 19:24:44 Max Bolingbroke wrote:
> 2009/2/17 Tyson Whitehead <twhitehead at gmail.com>:
> > It also seems the extra levels of indirection are defeating the
> > strictness analyzer on eta_s1CN in a_s1Gv as all code branches either
> > directly force it or ultimately pass it to digit_s1l3 as in the included
> > branch.
> > Also, why isn't digit_s1l3 optimized to take its first parameter unboxed?
> > It is strict in its first argument, and grepping the core shows that it
> > is only ever used like in lvl_s1mF (i.e., passed things like lvl_s1mG).
> Yeah, that's weird. I don't know the answer to this. Have you actually
> got to the worker-wrapper stage at the point you copied this core?
Yes. You are right. Contrary to what the top of the email said, I created
that output with -ddump-stranal, and -dshow-passes indicates that the worker-
wrapper stage comes next. If I dump it (or just the final core with -ddump-
simpl), digit* is entirely replaced with a first-argument-unboxed $wdigit*.
The inner lambdas (i.e., the second and third arguments) remain boxed.
It seems I should have just used the -ddump-simpl output instead of the -
ddump-stranal output. I had just got thinking the the -ddump-simpl output did
not include strictness analysis because I didn't see it on a bunch of the code
(in retrospect, that was because that code was created by later stages)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20090217/35d219ef/attachment.bin
More information about the Glasgow-haskell-users