-- The SRT needs to be threaded because it is grown lazily.
protoCmmCPSZ :: HscEnv -- Compilation env including
-- dynamic flags: -dcmm-lint -ddump-cps-cmm
- -> (TopSRT, [CmmZ]) -- SRT table and
+ -> (TopSRT, [CmmZ]) -- SRT table and accumulating list of compiled procs
-> CmmZ -- Input C-- with Procedures
-> IO (TopSRT, [CmmZ]) -- Output CPS transformed C--
protoCmmCPSZ hsc_env (topSRT, rst) (Cmm tops)
- | not (dopt Opt_RunCPSZ (hsc_dflags hsc_env))
- = return (topSRT, Cmm tops : rst) -- Only if -frun-cps
+ | not (dopt Opt_TryNewCodeGen (hsc_dflags hsc_env))
+ = return (topSRT, Cmm tops : rst) -- Only if -fnew-codegen
| otherwise
= do let dflags = hsc_dflags hsc_env
showPass dflags "CPSZ"
-- UGH... manifestSP can require updates to the procPointMap.
-- We can probably do something quicker here for the update...
procPointMap <- run $ procPointAnalysis procPoints g
- gs <- pprTrace "procPointMap" (ppr procPointMap) $
- run $ splitAtProcPoints l callPPs procPoints procPointMap areaMap
+ dump Opt_D_dump_cmmz "procpoint map" procPointMap
+ gs <- run $ splitAtProcPoints l callPPs procPoints procPointMap areaMap
(CmmProc h l args g)
mapM (dump Opt_D_dump_cmmz "after splitting") gs
let localCAFs = catMaybes $ map (localCAFInfo cafEnv) gs
mbpprTrace "localCAFs" (ppr localCAFs) $ return ()
- gs <- liftM concat $ run $ foldM (lowerSafeForeignCalls procPoints) [] gs
+ gs <- liftM concat $ run $ foldM lowerSafeForeignCalls [] gs
mapM (dump Opt_D_dump_cmmz "after lowerSafeForeignCalls") gs
-- NO MORE GRAPH TRANSFORMATION AFTER HERE -- JUST MAKING INFOTABLES