X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmInfo.hs;fp=compiler%2Fcmm%2FCmmInfo.hs;h=770baec2eac12f6f623b95983585dc6174f4ee71;hb=16dc208aaad7aadaea970e47b8055d7d7f8781e5;hp=5eee30bc6be9f78ea9d606cbf676fb4b9a95225a;hpb=807b00a759afd11530949f91bd523bb45f01bd40;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmInfo.hs b/compiler/cmm/CmmInfo.hs index 5eee30b..770baec 100644 --- a/compiler/cmm/CmmInfo.hs +++ b/compiler/cmm/CmmInfo.hs @@ -78,10 +78,10 @@ cmmToRawCmm cmm = do mkInfoTable :: Unique -> CmmTop -> [RawCmmTop] mkInfoTable uniq (CmmData sec dat) = [CmmData sec dat] -mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments blocks) = +mkInfoTable uniq (CmmProc (CmmInfo _ _ info) entry_label arguments (ListGraph blocks)) = case info of -- | Code without an info table. Easy. - CmmNonInfoTable -> [CmmProc [] entry_label arguments blocks] + CmmNonInfoTable -> [CmmProc [] entry_label arguments (ListGraph blocks)] CmmInfoTable (ProfilingInfo ty_prof cl_prof) type_tag type_info -> let info_label = entryLblToInfoLbl entry_label @@ -158,7 +158,7 @@ mkInfoTableAndCode :: CLabel mkInfoTableAndCode info_lbl std_info extra_bits entry_lbl args blocks | tablesNextToCode -- Reverse the extra_bits; and emit the top-level proc = [CmmProc (map CmmStaticLit (reverse extra_bits ++ std_info)) - entry_lbl args blocks] + entry_lbl args (ListGraph blocks)] | null blocks -- No actual code; only the info table is significant = -- Use a zero place-holder in place of the @@ -167,7 +167,7 @@ mkInfoTableAndCode info_lbl std_info extra_bits entry_lbl args blocks | otherwise -- Separately emit info table (with the function entry = -- point as first entry) and the entry code - [CmmProc [] entry_lbl args blocks, + [CmmProc [] entry_lbl args (ListGraph blocks), mkDataLits info_lbl (CmmLabel entry_lbl : std_info ++ extra_bits)] mkSRTLit :: CLabel