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