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


Ignore:
Timestamp:
Nov 2, 2007 12:37:21 PM (8 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