Changes between Version 36 and Version 37 of Commentary/Compiler/NewCodeGen
- Oct 17, 2008 9:09:20 AM (6 years ago)
v36 v37 1 1 = GHC's glorious new code generator = 2 3 2 4 3 5 This 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: … … 46 48 47 49 !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. 49 50 50 51 * 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. … … 54 55 * 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. 55 56 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 58 57 * Was there something about sinking spills and hoisting reloads? 59 58 … … 61 60 !ToDo: small issues 62 61 * Shall we rename Branch to !GoTo?! 63 * Where is the "push new continuation" middle node? It's gone! 64 62 * Change the C-- parser (which parses RTS .cmm files) to directly construct `CmmGraph`. 65 63 * (SLPJ) See let-no-escape todos in `StgCmmExpr`.