Changes between Version 67 and Version 68 of Commentary/Compiler/NewCodeGen
- Apr 7, 2011 11:46:10 AM (3 years ago)
v67 v68 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 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]. 9 * Compiling through the new pipeline passes all tests and GHC is bootstrappable. 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.