Changes between Version 5 and Version 6 of Commentary/Compiler/NewCodeGen


Ignore:
Timestamp:
Nov 2, 2007 12:37:21 PM (6 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/NewCodeGen

    v5 v6  
    1616 
    1717 
    18 !ToDo list 
    19  * Shall we rename Branch to !GoTo?! 
    20  * Where is the "push new continuation" middle node?  
     18!ToDo: main issues 
     19 * SRTs simply record live global variables.  So we should use the same live-variable framework as for live local variables.  That means we must be able to identify which globals are SRT-able.  What about compression/encoding schemes? 
     20 
     21 * Draining the Rep swamp. 
     22 
    2123 * How do we write continuations in the RTS?  E.g. the update-frame continuation?  Michael Adams had a syntax with two sets of parameters, the the ones on the stack and the return values. 
    2224 
     
    2729 * How do stack overflow checks work?  (They are inserted by the CPS conversion, and must not generate a new info table etc.) 
    2830 
     31  * Was there something about sinking spills and hoisting reloads? 
     32 
     33 
     34!ToDo: small issues 
     35 * Shall we rename Branch to !GoTo?! 
     36 * Where is the "push new continuation" middle node?  
    2937 * Get rid of `CmmFormals` on `LastJump` and `LastCall` in `ZipCfgCmm` in favour of `CopyIn` and `CopyOut`. 
    3038 * Change the C-- parser (which parses RTS .cmm files) to directly construct `CmmGraph`.   
    31  * Was there something about sinking spills and hoisting reloads? 
    32  
    3339 * (SLPJ) See let-no-escape todos in `StgCmmExpr`. 
    34  
    3540 
    3641== The new Cmm data type == 
     
    4348   * Control-flow blocks: `Block` 
    4449   * Control-flow graphs: `Graph`[[BR]][[BR]] 
    45  * '''`ZipCfgCmm`''' instantiates `ZipCfg` for Cmm, by defining types `Middle` and `Last` and using these to instantiate the polymorphic fields of `ZipCfg`.  It also defines a bunch of smart constructor (`mkJump`, `mkAssign`, mkCmmIfThenElse` etc) which make it easy to build `CmmGraph`. 
     50 * '''`ZipDataFlow`''' contains a generic framework for solving dataflow problems over `ZipCfg`.[[BR]][[BR]] 
     51 * '''`ZipCfgCmm`''' instantiates `ZipCfg` for Cmm, by defining types `Middle` and `Last` and using these to instantiate the polymorphic fields of `ZipCfg`.  It also defines a bunch of smart constructor (`mkJump`, `mkAssign`, `mkCmmIfThenElse` etc) which make it easy to build `CmmGraph`. 
    4652 
    4753