Changes between Version 6 and Version 7 of Commentary/Compiler/NewCodeGenPipeline
- Jul 11, 2008 4:21:37 PM (8 years ago)
v6 v7 4 4 * '''Code generator''' converts STG to `CmmGraph`. Implemented in `StgCmm*` modules (in directory `codeGen`). 5 5 * Parameter passing and stack adjustments are made explicit using the [wiki:Commentary/Compiler/StackAreas ''Stack Area'' abstraction.] 6 * But we still have `LastCall`, `LastReturn`, `LastBranch` as `Last` nodes. 6 * That includes a store of the return address. 7 * No `CopyIn`, `CopyOut` nodes any more; instead "smart constructors" lower the calling convention to loads/stores/register transfers, using stack area abstraction. 8 * But we still have `LastCall`, `LastReturn`, `LastBranch`, `LastJump` as `Last` nodes. 7 9 * TODO: Use the proper calling conventions (post Rep Swamp). 8 10 … … 17 19 * The analysis produces a set of `BlockId` that should become proc-points 18 20 * The transformation inserts a function prologue at the start of each proc-point, and a function epilogue just before each branch to a proc-point. 21 22 19 23 20 24 * '''Add spill/reload''', implemented in `CmmSpillReload`, to spill live C-- variables before a call and reload them afterwards. The middle node of the result is `Middle` (from `ZipCfgCmm` extended with `Spill` and `Reload` constructors.