Fri Feb 22 12:59:49 CET 2008  Lemmih <[EMAIL PROTECTED]>
  * Cache a few items, this gives a 20% speed bump.
New patches:

[Cache a few items, this gives a 20% speed bump.
Lemmih <[EMAIL PROTECTED]>**20080222115949] {
hunk ./E/SSimplify.hs 3
+    cacheSimpOpts,
hunk ./E/SSimplify.hs 283
+    so_boundVarsCache :: IdSet,
+    so_cachedScope :: Env,
hunk ./E/SSimplify.hs 289
+cacheSimpOpts opts
+    = opts { so_boundVarsCache = idMapToIdSet (so_boundVars opts)
+           , so_cachedScope = cacheSubst (extendScope initScope mempty { envSubst = mapMaybeIdMap bb  (so_boundVars opts) })
+           }
+    where bb (_,e) | isFullyConst e = Just (Done e)
+          bb _ = Nothing
+          initScope = fmap (\ (t,e) -> fixInline (so_finalPhase opts) t $ isBoundTo noUseInfo e) (so_boundVars opts)
+
hunk ./E/SSimplify.hs 460
-        let ((dsOut,_),stats) = runSM initialB doit
+        let ((dsOut,_),stats) = runSM (so_cachedScope sopts) doit
hunk ./E/SSimplify.hs 465
-    initialB = let
-            bb (t,(_,e)) | isFullyConst e = [(t,Done e)]
-            bb _ = []
-            initScope = fmap (\ (t,e) -> fixInline finalPhase t $ isBoundTo noUseInfo e) (so_boundVars sopts)
-        in cacheSubst (extendScope initScope mempty { envSubst = fromList $ concatMap bb  (massocs $ so_boundVars sopts) })
hunk ./E/SSimplify.hs 468
-        smAddBoundNamesIdMap (so_boundVars sopts)
+        smAddBoundNamesIdSet (so_boundVarsCache sopts)
hunk ./E/SSimplify.hs 1068
-smAddBoundNamesIdMap nmap = do
-    modifyIds (\ (used,bound) -> (nset `union` used, nset `union` bound) ) where
-        nset = idMapToIdSet nmap
+smAddBoundNamesIdMap = smAddNamesIdSet . idMapToIdSet
hunk ./Main.hs 298
-    let sopt = mempty {
+    let sopt = SS.cacheSimpOpts mempty {
hunk ./Main.hs 378
-            sopt = mempty {  SS.so_boundVars = smap, SS.so_dataTable = progDataTable mprog }
+            sopt = SS.cacheSimpOpts mempty {  SS.so_boundVars = smap,
+                                              SS.so_boundVarsCache = idMapToIdSet smap,
+                                              SS.so_dataTable = progDataTable mprog }
}

Context:

[Use an IdMap in E.Demand. This gives an 18% speed-up and smaller ho files.
Lemmih <[EMAIL PROTECTED]>**20080222021445] 
[improve documentation for core type system
John Meacham <[EMAIL PROTECTED]>**20080221042003] 
[fix documentation syntax to not conflict with pragmas, add 'Internals' section to manual
John Meacham <[EMAIL PROTECTED]>**20080221033236] 
[clean out old irrelevant code in Number.hs
John Meacham <[EMAIL PROTECTED]>**20080221032134] 
[fix various spelling/grammer issues with help files. add pragma.mkd help file
John Meacham <[EMAIL PROTECTED]>**20080221021549] 
[start adding jhc manual and program to stitch it together
John Meacham <[EMAIL PROTECTED]>**20080221010433] 
[add Jhc.ACIO module for top level actions
John Meacham <[EMAIL PROTECTED]>**20080221005357] 
[add Comb data type to hold supercombinators
John Meacham <[EMAIL PROTECTED]>**20080220043315] 
[add substMap'' back in
John Meacham <[EMAIL PROTECTED]>**20080220050203] 
[Makefile wibbles for jhcp and *.hsc
Lemmih <[EMAIL PROTECTED]>**20080220184910] 
[Add a comment describing the function of E.Subst.
Lemmih <[EMAIL PROTECTED]>**20080220184027] 
[Remove debug code.
Lemmih <[EMAIL PROTECTED]>**20080219151554] 
[Cache scoping info, avoid unnecessary maps.
Lemmih <[EMAIL PROTECTED]>**20080219151410] 
[use newId to generate unique ids rather than using local functions
John Meacham <[EMAIL PROTECTED]>**20080220054608] 
[move Id selection code to a common place in Name.Id
John Meacham <[EMAIL PROTECTED]>**20080220054522] 
[remove BindType anotations from all variables as they were rarely used
John Meacham <[EMAIL PROTECTED]>**20080219153025] 
[add mfilterWithKey
John Meacham <[EMAIL PROTECTED]>**20080219151259] 
[add findOrphanRules and mapRuleBodies
John Meacham <[EMAIL PROTECTED]>**20080219120255] 
[fix show instance for numbers
John Meacham <[EMAIL PROTECTED]>**20080219093542] 
[add the ability to get at peek,poke and static type info via primitive imports
John Meacham <[EMAIL PROTECTED]>**20080219054002] 
[Only use atoms when absolutely necessary.
Lemmih <[EMAIL PROTECTED]>**20080218232922] 
[Avoid lists. They are the bane of performance if badly used.
Lemmih <[EMAIL PROTECTED]>**20080218232646] 
[Efficient substitutions.
Lemmih <[EMAIL PROTECTED]>**20080218232431] 
[add 'prelude.m4' for common m4 definitons, make m4 use the same include path as haskell source, prefix all builtins  with m4_ to avoid name clashes
John Meacham <[EMAIL PROTECTED]>**20080218182546] 
[TAG didgigdy
John Meacham <[EMAIL PROTECTED]>**20080218150752] 
Patch bundle hash:
d3248d105461f3b925734a822982468e14a462a1
_______________________________________________
jhc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/jhc

Reply via email to