Safe Haskell | None |
---|---|
Language | Haskell2010 |
- 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
- curCCS :: 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
or IND_OLDGEN
because neither is considered
for LDV profiling.
ldvRecordCreate :: CmmExpr -> FCode () Source #