Changes between Version 23 and Version 24 of Commentary/Compiler/NewCodeGen


Ignore:
Timestamp:
Aug 27, 2008 7:54:41 AM (6 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/NewCodeGen

    v23 v24  
    11= Material about the new code generator = 
    22 
    3 This page summarises work that Norman Ramsey, Simon M, Simon PJ, and John Dias are doing on re-architecting GHC's back end. You may want to see the 
    4  * [wiki:Commentary/Compiler/NewCodeGenPipeline short-term view of the pipeline] 
     3This page summarises work that Norman Ramsey, Simon M, Simon PJ, and John Dias are doing on re-architecting GHC's back end. 
     4 
     5The '''design''' is documented here:  
     6 * [wiki:Commentary/Compiler/NewCodeGenPipeline short-term view of the pipeline]. 
    57 * [wiki:Commentary/Compiler/IntegratedCodeGen longer term plan] 
     8 
     9Our plan is as follows: 
     10 * '''Step 1''': drain the "Rep swamp".  This is a change of data representation that pervades the compiler, including lots and lots of tiny changes in the existing native code generators.  It's done, and tested, but not yet committed to the HEAD. 
     11 * '''Step 2''': Replace the existing Stg to Cmm code generator (a very complex and inflexible pass) with a new modular pipeline. The output of this pipeline is fed to the existing, un-modified code geneators.  The design of the new pipeline is here: [wiki:Commentary/Compiler/NewCodeGenPipeline]. 
     12 * '''Step 3''': Expand the capability of the new pipeline so that it does native code generation too, and we can ultimately discard the existing code generators.  The design of this stage is here: [wiki:Commentary/Compiler/IntegratedCodeGen] 
     13 
     14In timescale terms it looks like this: 
     15 * GHC 6.10 will have nothing new at all 
     16 * Immediately after the code fork for 6.10 we'll commit the new stuff for Step 1 and Step 2.  By the end of 2008 (latest) we hope to be using the Step 2 pipeline in anger, and can discard the existing code generator entirely. 
     17 * Work on Step 3 will proceed in 2009. 
     18 
     19Once Step 2 is done, others can help!  For example, Cmm-to-Cmm optimisations will be easy. 
     20 
     21== Bugs == 
    622 
    723Bug list (code-gen related bugs that we may be able to fix):