Commit 649d5ed5 authored by Thomas Schilling's avatar Thomas Schilling
Browse files

Fix Haddock errors.

parent 9f7dc570
......@@ -58,7 +58,7 @@ data Continuation info =
-- Right <=> Function or Proc point
CLabel -- Used to generate both info & entry labels
CmmFormalsWithoutKinds -- Argument locals live on entry (C-- procedure params)
Bool -- ^ True <=> GC block so ignore stack size
Bool -- True <=> GC block so ignore stack size
[BrokenBlock] -- Code, may be empty. The first block is
-- the entry point. The order is otherwise initially
-- unimportant, but at some point the code gen will
......@@ -177,12 +177,12 @@ continuationToProc (max_stack, update_frame_size, formats) stack_use uniques
main_stmts =
case entry of
FunctionEntry _ _ _ ->
-- Ugh, the statements for an update frame must come
-- *after* the GC check that was added at the beginning
-- of the CPS pass. So we have do edit the statements
-- a bit. This depends on the knowledge that the
-- statements in the first block are only the GC check.
-- That's fragile but it works for now.
-- The statements for an update frame must come /after/
-- the GC check that was added at the beginning of the
-- CPS pass. So we have do edit the statements a bit.
-- This depends on the knowledge that the statements in
-- the first block are only the GC check. That's
-- fragile but it works for now.
gc_stmts ++ stmts ++ update_stmts ++ postfix_stmts
ControlEntry -> stmts ++ postfix_stmts
ContinuationEntry _ _ _ -> stmts ++ postfix_stmts
......
......@@ -58,7 +58,7 @@ branchChainElim (ListGraph blocks)
isLoneBranch :: CmmBasicBlock -> Either (BlockId, BlockId) CmmBasicBlock
isLoneBranch (BasicBlock id [CmmBranch target]) | id /= target = Left (id, target)
isLoneBranch other_block = Right other_block
-- ^ An infinite loop is not a link in a branch chain!
-- An infinite loop is not a link in a branch chain!
replaceLabels :: BlockEnv BlockId -> CmmBasicBlock -> CmmBasicBlock
replaceLabels env (BasicBlock id stmts)
......@@ -95,7 +95,7 @@ isLoneBranchZ :: CmmBlock -> Either (BlockId, BlockId) CmmBlock
isLoneBranchZ (G.Block id (G.ZLast (G.LastOther (LastBranch target))))
| id /= target = Left (id,target)
isLoneBranchZ other = Right other
-- ^ An infinite loop is not a link in a branch chain!
-- An infinite loop is not a link in a branch chain!
replaceLabelsZ :: BlockEnv BlockId -> CmmGraph -> CmmGraph
replaceLabelsZ env = replace_eid . G.map_nodes id id last
......
......@@ -97,13 +97,13 @@ maybeInvertCmmExpr _ = Nothing
data GCKind = GCKindPtr | GCKindNonPtr deriving (Eq)
data LocalReg
= LocalReg
!Unique -- ^ Identifier
MachRep -- ^ Type
GCKind -- ^ Should the GC follow as a pointer
-- | Sets of local registers
= LocalReg !Unique MachRep GCKind
-- ^ Parameters:
-- 1. Identifier
-- 2. Type
-- 3. Should the GC follow as a pointer
-- Sets of local registers
type RegSet = UniqSet LocalReg
emptyRegSet :: RegSet
elemRegSet :: LocalReg -> RegSet -> Bool
......
......@@ -78,7 +78,7 @@ mkInfoTable :: Unique -> CmmTop -> [RawCmmTop]
mkInfoTable uniq (CmmData sec dat) = [CmmData sec dat]
mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
case info of
-- | Code without an info table. Easy.
-- Code without an info table. Easy.
CmmNonInfoTable -> [CmmProc [] entry_label arguments blocks]
CmmInfoTable (ProfilingInfo ty_prof cl_prof) type_tag type_info ->
......@@ -86,7 +86,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
ty_prof' = makeRelativeRefTo info_label ty_prof
cl_prof' = makeRelativeRefTo info_label cl_prof
in case type_info of
-- | A function entry point.
-- A function entry point.
FunInfo (ptrs, nptrs) srt fun_type fun_arity pap_bitmap slow_entry ->
mkInfoTableAndCode info_label std_info fun_extra_bits entry_label
arguments blocks
......@@ -104,7 +104,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
(srt_label, srt_bitmap) = mkSRTLit info_label srt
layout = packHalfWordsCLit ptrs nptrs
-- | A constructor.
-- A constructor.
ConstrInfo (ptrs, nptrs) con_tag descr ->
mkInfoTableAndCode info_label std_info [con_name] entry_label
arguments blocks
......@@ -113,7 +113,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
con_name = makeRelativeRefTo info_label descr
layout = packHalfWordsCLit ptrs nptrs
-- | A thunk.
-- A thunk.
ThunkInfo (ptrs, nptrs) srt ->
mkInfoTableAndCode info_label std_info srt_label entry_label
arguments blocks
......@@ -122,7 +122,7 @@ mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) =
(srt_label, srt_bitmap) = mkSRTLit info_label srt
layout = packHalfWordsCLit ptrs nptrs
-- | A selector thunk.
-- A selector thunk.
ThunkSelectorInfo offset srt ->
mkInfoTableAndCode info_label std_info [{- no SRT -}] entry_label
arguments blocks
......@@ -200,9 +200,11 @@ mkSRTLit info_label (C_SRT lbl off bitmap) =
-- TODO: combine with CgCallConv.mkLiveness (see comment there)
mkLiveness :: Unique
-> [Maybe LocalReg]
-> (CmmLit, -- ^ The bitmap (literal value or label)
[RawCmmTop], -- ^ Large bitmap CmmData if needed
ClosureTypeTag) -- ^ rET_SMALL or rET_BIG
-> (CmmLit, [RawCmmTop], ClosureTypeTag)
-- ^ Returns:
-- 1. The bitmap (literal value or label)
-- 2. Large bitmap CmmData if needed
-- 3. rET_SMALL or rET_BIG
mkLiveness uniq live =
if length bits > mAX_SMALL_BITMAP_SIZE
-- does not fit in one word
......
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