Commit de2d10e1 authored by Edward Z. Yang's avatar Edward Z. Yang
Browse files

Rename CmmCPS to CmmPipeline.

Signed-off-by: Edward Z. Yang's avatarEdward Z. Yang <>
parent c8e5f0f6
......@@ -2,7 +2,7 @@
-- Norman likes local bindings
-- If this module lives on I'd like to get rid of this flag in due course
module CmmCPS (
module CmmPipeline (
-- | Converts C-- with an implicit stack and native C-- calls into
-- optimized, CPS converted and native-call-less C--. The latter
-- C-- can be used to generate assembly.
......@@ -8,8 +8,6 @@ More notes (June 11)
or parameterise FCode over its envt; the CgState part seem useful for both
* Rename CmmCPS
* "Remove redundant reloads" in CmmSpillReload should be redundant; since
insertLateReloads is now gone, every reload is reloading a live variable.
Test and nuke.
......@@ -250,7 +248,7 @@ CmmCvt.hs Conversion between old and new Cmm reps
CmmOpt.hs Hopefully-redundant optimiser
-------- Stuff to keep ------------
CmmCPS.hs Driver for new pipeline
CmmPipeline.hs Driver for new pipeline
CmmLive.hs Liveness analysis, dead code elim
CmmProcPoint.hs Identifying and splitting out proc-points
......@@ -297,24 +295,24 @@ BlockId.hs BlockId, BlockEnv, BlockSet
type RawCmm = GenCmm CmmStatic [CmmStatic] (ListGraph CmmStmt)
* HscMain.tryNewCodeGen
- STG->Cmm: StgCmm.codeGen (new codegen)
- Optimise: CmmContFlowOpt (simple optimisations, very self contained)
- Cps convert: CmmCPS.protoCmmCPS
- Optimise: CmmContFlowOpt again
- Convert: CmmCvt.cmmOfZgraph (convert to old rep) very self contained
- STG->Cmm: StgCmm.codeGen (new codegen)
- Optimize and CPS: CmmPipeline.cmmPipeline
- Convert: CmmCvt.cmmOfZgraph (convert to old rep) very self contained
* StgCmm.hs The new STG -> Cmm conversion code generator
Lots of modules StgCmmXXX
CmmCPS.protoCmmCPS The new pipeline
CmmPipeline.cmmPipeline The new pipeline
1. Do cpsTop for each procedures separately
2. Build SRT representation; this spans multiple procedures
(unless split-objs)
1. Do control flow optimization
2. Do cpsTop for each procedures separately
3. Build SRT representation; this spans multiple procedures
(unless split-objs)
4. Do control flow optimization on all resulting procedures
* CmmCommonBlockElim.elimCommonBlocks:
......@@ -452,7 +450,7 @@ a dominator analysis, using the Dataflow Engine.
f's keep-alive refs to include h1.
* The SRT info is the C_SRT field of Cmm.ClosureTypeInfo in a
CmmInfoTable attached to each CmmProc. CmmCPS.toTops actually does
CmmInfoTable attached to each CmmProc. CmmPipeline.toTops actually does
the attaching, right at the end of the pipeline. The C_SRT part
gives offsets within a single, shared table of closure pointers.
......@@ -182,7 +182,7 @@ Library
......@@ -118,7 +118,7 @@ import OldCmm ( Cmm )
import PprCmm ( pprCmms )
import CmmParse ( parseCmmFile )
import CmmBuildInfoTables
import CmmCPS
import CmmPipeline
import CmmInfo
import OptimizationFuel ( initOptFuelState )
import CmmCvt
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment