Changes between Version 50 and Version 51 of Commentary/Compiler/NewCodeGen


Ignore:
Timestamp:
May 13, 2009 10:48:06 PM (6 years ago)
Author:
guest
Comment:

Added reason for Adams optimiztion

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/NewCodeGen

    v50 v51  
    6262   * Common block elimination: done 
    6363   * Block concatenation: done 
    64  * Adams optimisation: currently done in [[GhcFile(compiler/cmm/CmmProcPointZ.hs)]].  The Adams optimization should be divorced from this module and replaced with common-block elimination, to be done after the proc-point transformation.  In principle this combination may be slightly less effective than the current code, since the selection of proc-point protocols is guided by Adams's criteria, but NR thinks it will be easy to get the common, important cases nailed. 
     64 * Adams optimisation: currently done in [[GhcFile(compiler/cmm/CmmProcPointZ.hs)]].  The Adams optimization should be divorced from this module and replaced with common-block elimination, to be done after the proc-point transformation.  In principle this combination may be slightly less effective than the current code, since the selection of proc-point protocols is guided by Adams's criteria, but NR thinks it will be easy to get the common, important cases nailed.  Note that the Adams optimization is designed to avoid generating extra continuations in the case of [wiki:Commentary/Compiler/CPS#Branchestocontinuations heap checks after a function call]. 
    6565 * Proc-point analysis and transformation: working, although there is plenty of room for experimentation with the calling conventions at proc points.  In practice NR recommends the following procedure: 
    6666    * All optional proc points to be generated with no parameters (all live variables on the stack)