Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- initCostCentres :: CollectedCCs -> FCode ()
- ccType :: DynFlags -> CmmType
- ccsType :: DynFlags -> CmmType
- mkCCostCentre :: CostCentre -> CmmLit
- mkCCostCentreStack :: CostCentreStack -> CmmLit
- dynProfHdr :: DynFlags -> CmmExpr -> [CmmExpr]
- profDynAlloc :: SMRep -> CmmExpr -> FCode ()
- profAlloc :: CmmExpr -> CmmExpr -> FCode ()
- staticProfHdr :: DynFlags -> CostCentreStack -> [CmmLit]
- initUpdFrameProf :: CmmExpr -> FCode ()
- enterCostCentreThunk :: CmmExpr -> FCode ()
- enterCostCentreFun :: CostCentreStack -> CmmExpr -> FCode ()
- costCentreFrom :: DynFlags -> CmmExpr -> CmmExpr
- storeCurCCS :: CmmExpr -> CmmAGraph
- emitSetCCC :: CostCentre -> Bool -> Bool -> FCode ()
- saveCurrentCostCentre :: FCode (Maybe LocalReg)
- restoreCurrentCostCentre :: Maybe LocalReg -> FCode ()
- ldvEnter :: CmmExpr -> FCode ()
- ldvEnterClosure :: ClosureInfo -> CmmReg -> FCode ()
- ldvRecordCreate :: CmmExpr -> FCode ()
Documentation
initCostCentres :: CollectedCCs -> FCode () Source #
mkCCostCentre :: CostCentre -> CmmLit Source #
profDynAlloc :: SMRep -> CmmExpr -> FCode () Source #
Record the allocation of a closure. The CmmExpr is the cost centre stack to which to attribute the allocation.
profAlloc :: CmmExpr -> CmmExpr -> FCode () Source #
Record the allocation of a closure (size is given by a CmmExpr) The size must be in words, because the allocation counter in a CCS counts in words.
staticProfHdr :: DynFlags -> CostCentreStack -> [CmmLit] Source #
The profiling header words in a static closure
initUpdFrameProf :: CmmExpr -> FCode () Source #
Initialise the profiling field of an update frame
enterCostCentreThunk :: CmmExpr -> FCode () Source #
enterCostCentreFun :: CostCentreStack -> CmmExpr -> FCode () Source #
storeCurCCS :: CmmExpr -> CmmAGraph Source #
emitSetCCC :: CostCentre -> Bool -> Bool -> FCode () Source #
ldvEnterClosure :: ClosureInfo -> CmmReg -> FCode () Source #
Called when a closure is entered, marks the closure as having
been "used". The closure is not an "inherently used" one. The
closure is not IND
because that is not considered for LDV profiling.
ldvRecordCreate :: CmmExpr -> FCode () Source #