On February 17, 2009 19:24:44 Max Bolingbroke wrote: > 2009/2/17 Tyson Whitehead <twhiteh...@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) Cheers! -Tyson
Description: This is a digitally signed message part.
_______________________________________________ Glasgow-haskell-users mailing list Glasgowfirstname.lastname@example.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users