Changes between Version 63 and Version 64 of Commentary/Compiler/NewCodeGen


Ignore:
Timestamp:
Mar 21, 2011 4:52:01 PM (3 years ago)
Author:
ezyang
Comment:

Updates to new codegen play

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/NewCodeGen

    v63 v64  
    77 * John D has built a complete new codegen pipeline, running alongside the old one, enabled by `-fuse-new-codegen`. It is described here: [wiki:Commentary/Compiler/NewCodeGenPipeline].  It uses a new representation for `Cmm`, mostly with "Z" in the name.  (Let's call the original Cmm `OldCmm` and this new one `CmmZ`.)  It has a new conversion STG->CmmZ, and then sequence of passes that optimise and cps-convert the Cmm.  Finally, it is converted back to the old Cmm so that it can flow to the old code generators. 
    88 
    9  * Compiling through the new pipeline passes all tests, but some bugs remain; eg you can't bootstrap GHC through this route. 
     9 * Compiling through the new pipeline passes all tests and GHC is bootstrappable. There is a [http://comments.gmane.org/gmane.comp.lang.haskell.cvs.ghc/45499 patch pending for a pointer tagging bug that manifests under rare conditions with the compacting GC]. 
    1010 
    1111 * Separately, we have developed yet another, and still better, Cmm representation, the subject of an upcoming ICFP 2010 submission.  It uses phantom types and GADTs to add very useful open/closed invariants.  This isn't in GHC at all yet.  I'll call it `CmmGADT` for easy reference. 
     
    3030== Workflow for the new code generator and Hoopl == 
    3131 
    32 (May 2010: these workflow notes are written under the assumption that (a) we have created the lagging Darcs repo !HooplLag, and (b) that we have merged the current `ghc-cmm` branch with the HEAD.  Both of which I hope David will do shortly.) 
    33  
    3432We have the following repositories: 
    3533 
     
    5250 
    5351 
    54 Normal GHC developers, who are uniniterested in Hoopl, ignore all 
     52Normal GHC developers, who are uninterested in Hoopl, ignore all 
    5553this.  If they download HEAD, and then do `darcs-all get` they'll get 
    5654!HooplLag, which is always guaranteed to work with HEAD.