Changes between Version 28 and Version 29 of Frisby2013Q1


Ignore:
Timestamp:
Feb 26, 2013 7:52:09 PM (2 years ago)
Author:
nfrisby
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Frisby2013Q1

    v28 v29  
    209209TODO try it with -fprotect-last-arg
    210210
    211 TODO try it with -flate-abstract-sat-var
     211{{{
     212with baseline libraries
     213
     214Allocations
     215-------------------------------------------------------------------------------
     216        Program          ll-baselinell-protect-ignor     ll-lam10pin      ll-it10pin
     217-------------------------------------------------------------------------------
     218         puzzle            165864160           +0.0%           +0.0%          -15.1%
     219}}}
     220
     221The difference: a join point inside a letrec in $wtransfer (itself also recursive) gets floated out and then inlined back in. This ultimately eliminates several lets. A considerable amount of code duplication, but with a big pay off. The (LNE) join point has 15 free variables, but does not occur in a thunk. The free variables are probably getting parameter scrutinization discounts once floated.
    212222
    213223Binary sizes increase +5.5% with the first, and only +2.5 with the second. It's so consistent that it's probably in the base library.