Changes between Version 36 and Version 37 of Commentary/Compiler/NewCodeGen


Ignore:
Timestamp:
Oct 17, 2008 9:09:20 AM (6 years ago)
Author:
dias
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/NewCodeGen

    v36 v37  
    11= GHC's glorious new code generator = 
     2 
     3See also: [wiki:NewCodeGenOverview overview of the module structure in the new code generator]. 
    24 
    35This page summarises work that Norman Ramsey, Simon M, Simon PJ, and John Dias are doing on re-architecting GHC's back end.  Our plan is as follows: 
     
    4648 
    4749!ToDo: main issues 
    48  * 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? Status: live variables are finished, but the actual SRT tables aren't right -- need to write new code that can handle recursive let bindings. 
    4950 
    5051 * 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. 
     
    5455 * Figure out how PAPs work.  This may interact with the GC check and stack check at the start of a function call.  The concern is how to enter the garbage collector with an infotable that properly describes the live variables. Now that we generate info tables on demand at the end of the pipeline, we can enter the gc with a regular procedure call and expect that the proper info table will be generated. 
    5556 
    56  * How do stack overflow checks work?  A stack check is inserted during the conversion from Stg to Cmm, with a proxy constant standing for the stack high-water mark. It is replaced when the stack pointer is reified. Status: Todo. 
    57  
    5857  * Was there something about sinking spills and hoisting reloads? 
    5958 
     
    6160!ToDo: small issues 
    6261 * Shall we rename Branch to !GoTo?! 
    63  * Where is the "push new continuation" middle node? It's gone! 
    6462 * Change the C-- parser (which parses RTS .cmm files) to directly construct `CmmGraph`.   
    6563 * (SLPJ) See let-no-escape todos in `StgCmmExpr`.