-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
module CmmBrokenBlock (
BrokenBlock(..),
import Maybes
import List
import Panic
-import UniqSupply
import Unique
-import UniqFM
-- This module takes a 'CmmBasicBlock' which might have 'CmmCall'
-- statements in it with 'CmmSafe' set and breaks it up at each such call.
-- the 'adaptBlockToFormat' function.
-- could be
+{-
+UNUSED: 2008-12-29
+
breakProc ::
[BlockId] -- ^ Any GC blocks that should be special
-> [[Unique]] -- ^ An infinite list of uniques
zipWith (adaptBlockToFormat selected)
adaptor_uniques
(snd broken_blocks)
+-}
-----------------------------------------------------------------------------
-- | Takes a 'CmmBasicBlock' and breaks it up into a list of 'BrokenBlock'
-- sort so the most votes goes *first*
-- (thus the order of x and y is reversed)
+makeContinuationEntries :: [(BlockId, ContFormat)]
+ -> BrokenBlock -> BrokenBlock
makeContinuationEntries formats
- block@(BrokenBlock ident entry stmts targets exit) =
+ block@(BrokenBlock ident _entry stmts targets exit) =
case lookup ident formats of
Nothing -> block
Just (ContFormat formals srt is_gc) ->
-> [BrokenBlock]
adaptBlockToFormat formats unique
block@(BrokenBlock ident entry stmts targets
- exit@(FinalCall next target formals
- actuals srt ret is_gc)) =
+ (FinalCall next target formals
+ actuals srt ret is_gc)) =
if format_formals == formals &&
format_srt == srt &&
format_is_gc == is_gc