Changes between Version 63 and Version 64 of Commentary/Compiler/NewCodeGen
- Mar 21, 2011 4:52:01 PM (3 years ago)
v63 v64 7 7 * 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. 8 8 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. 10 10 11 11 * 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. … … 30 30 == Workflow for the new code generator and Hoopl == 31 31 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 34 32 We have the following repositories: 35 33 … … 52 50 53 51 54 Normal GHC developers, who are unin iterested in Hoopl, ignore all 52 Normal GHC developers, who are uninterested in Hoopl, ignore all 55 53 this. If they download HEAD, and then do `darcs-all get` they'll get 56 54 !HooplLag, which is always guaranteed to work with HEAD.