Changes between Version 28 and Version 29 of Frisby2013Q1


Ignore:
Timestamp:
Feb 26, 2013 7:52:09 PM (14 months 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.