ghc-7.4.2: The GHC API

Safe Haskell | None

CmmProcPoint

Synopsis

- type ProcPointSet = BlockSet
- data Status
  - = ReachedBy ProcPointSet
  - | ProcPoint
- callProcPoints :: CmmGraph -> ProcPointSet
- minimalProcPointSet :: Platform -> ProcPointSet -> CmmGraph -> FuelUniqSM ProcPointSet
- addProcPointProtocols :: ProcPointSet -> ProcPointSet -> CmmGraph -> FuelUniqSM CmmGraph
- splitAtProcPoints :: CLabel -> ProcPointSet -> ProcPointSet -> BlockEnv Status -> CmmDecl -> FuelUniqSM [CmmDecl]
- procPointAnalysis :: ProcPointSet -> CmmGraph -> FuelUniqSM (BlockEnv Status)

# Documentation

type ProcPointSet = BlockSet

data Status

Constructors

ReachedBy ProcPointSet |
ProcPoint |

Instances

Outputable Status |

callProcPoints :: CmmGraph -> ProcPointSet

minimalProcPointSet :: Platform -> ProcPointSet -> CmmGraph -> FuelUniqSM ProcPointSet

addProcPointProtocols :: ProcPointSet -> ProcPointSet -> CmmGraph -> FuelUniqSM CmmGraph

Function `optimize_calls` chooses protocols only for those proc points that are relevant to the optimization explained above. The others are assigned by `add_unassigned`, which is not yet clever.

splitAtProcPoints :: CLabel -> ProcPointSet -> ProcPointSet -> BlockEnv Status -> CmmDecl -> FuelUniqSM [CmmDecl]

procPointAnalysis :: ProcPointSet -> CmmGraph -> FuelUniqSM (BlockEnv Status)