X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fcmm%2FCmmContFlowOpt.hs;fp=compiler%2Fcmm%2FCmmContFlowOpt.hs;h=4e319c82b20837254078f9d47543df42df3f2899;hp=7581d81fdb04e3eea1e3e43a1332faf78360d47f;hb=b822c1e46cd64d1dba23fbab0f775b731bf0f12b;hpb=d068f78b3ae99da8976e0836739cde6213c40041 diff --git a/compiler/cmm/CmmContFlowOpt.hs b/compiler/cmm/CmmContFlowOpt.hs index 7581d81..4e319c8 100644 --- a/compiler/cmm/CmmContFlowOpt.hs +++ b/compiler/cmm/CmmContFlowOpt.hs @@ -93,12 +93,12 @@ isLoneBranchZ other = Right other replaceLabelsZ :: BlockEnv G.BlockId -> CmmGraph -> CmmGraph replaceLabelsZ env = replace_eid . G.map_nodes id id last where - replace_eid (G.LGraph eid blocks) = G.LGraph (lookup eid) blocks - last (LastBranch id args) = LastBranch (lookup id) args - last (LastCondBranch e ti fi) = LastCondBranch e (lookup ti) (lookup fi) - last (LastSwitch e tbl) = LastSwitch e (map (fmap lookup) tbl) - last (LastCall tgt args (Just id)) = LastCall tgt args (Just $ lookup id) - last exit_jump_return = exit_jump_return + replace_eid (G.LGraph eid blocks) = G.LGraph (lookup eid) blocks + last (LastBranch id args) = LastBranch (lookup id) args + last (LastCondBranch e ti fi) = LastCondBranch e (lookup ti) (lookup fi) + last (LastSwitch e tbl) = LastSwitch e (map (fmap lookup) tbl) + last (LastCall tgt (Just id)) = LastCall tgt (Just $ lookup id) + last exit_jump_return = exit_jump_return lookup id = G.lookupBlockEnv env id `orElse` id ---------------------------------------------------------------- mkClosureBlockEnv :: [(BlockId, BlockId)] -> BlockEnv BlockId