On Sat, Feb 16, 2008 at 12:45 AM, John Meacham <[EMAIL PROTECTED]> wrote: > On Fri, Feb 15, 2008 at 03:34:59PM +0100, Lemmih wrote: > > > > The attached patch is a two-step optimization: > > 1) Only call 'getType' 100,000,000 times instead of 600,000,000 times. > > 2) Greatly simplify the actual loop. > > > > Without this patch, compiling base-1.0.hl takes 19 minutes. With this > > patch, compile time is down to 11 minutes. > > Feedback would be greatly appreciated. > > I am confused, what in the patch causes getType to be called less? As > far as I can tell it is just replacing equality checks with 'isFoo' > predicates.
E.Values.isCheap checks whether its argument is atomic. The 'isAtomic' function is very expensive so I moved it down below the four static checks. -- Cheers, Lemmih _______________________________________________ jhc mailing list [email protected] http://www.haskell.org/mailman/listinfo/jhc
