Changes between Version 2 and Version 3 of Frisby2013Q1


Ignore:
Timestamp:
Feb 6, 2013 7:03:38 PM (15 months ago)
Author:
nfrisby
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Frisby2013Q1

    v2 v3  
    117117SPJ was expecting no such non-lambda join points to exist. We identified where it was happening (WwLib.mkWorkerArgs) and switched it off. 
    118118 
    119 TODO the result? 
     119{{{ 
     120protect-no  = allow wwlib to remove the last value argument 
     121              (ie the previous behavior) 
     122 
     123protect-yes = protect the last value argument from being removed 
     124              (ie the experimental behavior) 
     125 
     126Allocations 
     127 
     128------------------------------------------------------------------------------- 
     129        Program           protect-no     protect-yes 
     130------------------------------------------------------------------------------- 
     131        circsim           1326468688           -0.7% 
     132         hidden           1165299720           -0.7% 
     133            scs           1029909256           -0.1% 
     134      transform            738757608           -0.1% 
     135      cacheprof            479313187           -0.1% 
     136       listcopy            334710912           -0.4% 
     137  comp_lab_zift            330889440           -5.0% 
     138         fulsom            321534872           -0.3% 
     139      listcompr            304662896           -0.4% 
     140           anna             70685104           +0.1% 
     141         gamteb             59846096           -0.3% 
     142         parser             32406448           +0.2% 
     143             gg              8970344           -0.2% 
     144        -1 s.d.                -----           -0.6% 
     145        +1 s.d.                -----           +0.5% 
     146        Average                -----           -0.1% 
     147 
     148Run Time 
     149 
     150------------------------------------------------------------------------------- 
     151        Program           protect-no     protect-yes 
     152------------------------------------------------------------------------------- 
     153    constraints                 5.23           -9.6% 
     154        integer                 2.63           +1.8% 
     155        circsim                 1.73           +1.2% 
     156          power                 1.18           +1.0% 
     157       maillist                 0.49          -16.9% 
     158   wheel-sieve2                 0.37          +11.5% 
     159      integrate                 0.35          +26.0% 
     160 
     161        -1 s.d.                -----           -6.5% 
     162        +1 s.d.                -----           +6.8% 
     163        Average                -----           -0.1% 
     164}}} 
     165 
     166I'm now investigating further. 
     167 
     168===== Continuation ===== 
     169 
     170SPJ thought this may be another means of hoisting the let-no-escape functionality from the code generator into the core2core pipeline. LLF would handle let-no-escape lambdas, but it does not handle let-no-escape thunks (which we didn't initially realize were being identified). 
     171 
     172Changing the let-no-escape thunks to \void -> ... closures upstream would then subject the binding to more optimisations. Formerly, it's non-lambda status meant that inlining it, eg, would lose sharing.