- _ -> []
- std_info = mkStdInfoTable ty_prof cl_prof type_tag srt_bitmap layout
- info_label = entryLblToInfoLbl entry_label
- (srt_label, srt_bitmap) = mkSRTLit info_label srt
- layout = packHalfWordsCLit ptrs nptrs
-
- -- | A constructor.
- CmmInfo (ProfilingInfo ty_prof cl_prof) _ type_tag
- (ConstrInfo (ptrs, nptrs) con_tag descr) ->
- mkInfoTableAndCode info_label std_info [con_name] entry_label
- arguments blocks
- where
- std_info = mkStdInfoTable ty_prof cl_prof type_tag con_tag layout
- info_label = entryLblToInfoLbl entry_label
- con_name = makeRelativeRefTo info_label descr
- layout = packHalfWordsCLit ptrs nptrs
-
- -- | A thunk.
- CmmInfo (ProfilingInfo ty_prof cl_prof) _ type_tag
- (ThunkInfo (ptrs, nptrs) srt) ->
- mkInfoTableAndCode info_label std_info srt_label entry_label
- arguments blocks
- where
- std_info = mkStdInfoTable ty_prof cl_prof type_tag srt_bitmap layout
- info_label = entryLblToInfoLbl entry_label
- (srt_label, srt_bitmap) = mkSRTLit info_label srt
- layout = packHalfWordsCLit ptrs nptrs
-
- -- | A selector thunk.
- CmmInfo (ProfilingInfo ty_prof cl_prof) _ type_tag
- (ThunkSelectorInfo offset srt) ->
- mkInfoTableAndCode info_label std_info srt_label entry_label
- arguments blocks
- where
- std_info = mkStdInfoTable ty_prof cl_prof type_tag srt_bitmap (mkWordCLit offset)
- info_label = entryLblToInfoLbl entry_label
- (srt_label, srt_bitmap) = mkSRTLit info_label srt
-
- -- A continuation/return-point.
- CmmInfo (ProfilingInfo ty_prof cl_prof) _ type_tag (ContInfo stack_layout srt) ->
- liveness_data ++
- mkInfoTableAndCode info_label std_info srt_label entry_label
- arguments blocks
- where
- std_info = mkStdInfoTable ty_prof cl_prof maybe_big_type_tag srt_bitmap
- (makeRelativeRefTo info_label liveness_lit)
- info_label = entryLblToInfoLbl entry_label
- (liveness_lit, liveness_data, liveness_tag) =
- mkLiveness uniq stack_layout
- maybe_big_type_tag = if type_tag == rET_SMALL
- then liveness_tag
- else type_tag
- (srt_label, srt_bitmap) = mkSRTLit info_label srt
+ _ -> srt_label
+ std_info = mkStdInfoTable ty_prof' cl_prof' type_tag srt_bitmap
+ layout
+ (srt_label, srt_bitmap) = mkSRTLit info_label srt
+ layout = packHalfWordsCLit ptrs nptrs
+
+ -- | A constructor.
+ ConstrInfo (ptrs, nptrs) con_tag descr ->
+ mkInfoTableAndCode info_label std_info [con_name] entry_label
+ arguments blocks
+ where
+ std_info = mkStdInfoTable ty_prof' cl_prof' type_tag con_tag layout
+ con_name = makeRelativeRefTo info_label descr
+ layout = packHalfWordsCLit ptrs nptrs
+
+ -- | A thunk.
+ ThunkInfo (ptrs, nptrs) srt ->
+ mkInfoTableAndCode info_label std_info srt_label entry_label
+ arguments blocks
+ where
+ std_info = mkStdInfoTable ty_prof' cl_prof' type_tag srt_bitmap layout
+ (srt_label, srt_bitmap) = mkSRTLit info_label srt
+ layout = packHalfWordsCLit ptrs nptrs
+
+ -- | A selector thunk.
+ ThunkSelectorInfo offset srt ->
+ mkInfoTableAndCode info_label std_info [{- no SRT -}] entry_label
+ arguments blocks
+ where
+ std_info = mkStdInfoTable ty_prof' cl_prof' type_tag 0 (mkWordCLit offset)
+
+ -- A continuation/return-point.
+ ContInfo stack_layout srt ->
+ liveness_data ++
+ mkInfoTableAndCode info_label std_info srt_label entry_label
+ arguments blocks
+ where
+ std_info = mkStdInfoTable ty_prof' cl_prof' maybe_big_type_tag srt_bitmap
+ (makeRelativeRefTo info_label liveness_lit)
+ (liveness_lit, liveness_data, liveness_tag) =
+ mkLiveness uniq stack_layout
+ maybe_big_type_tag = if type_tag == rET_SMALL
+ then liveness_tag
+ else type_tag
+ (srt_label, srt_bitmap) = mkSRTLit info_label srt