module ZipCfgExtras
()
where
+import BlockId
import Maybes
import Panic
import ZipCfg
-import UniqFM
-
import Prelude hiding (zip, unzip, last)
-- the current focus.
-- The new focus can be at either the entry edge or the exit edge.
+{-
splice_focus_entry :: FGraph m l -> LGraph m l -> FGraph m l
splice_focus_exit :: FGraph m l -> LGraph m l -> FGraph m l
+-}
_unused :: ()
_unused = all `seq` ()
- where all = ( exit, focusp, unfocus, splice_focus_entry, splice_focus_exit
- , fold_fwd_block, foldM_fwd_block (\_ a -> Just a)
+ where all = ( exit, focusp, unfocus {- , splice_focus_entry, splice_focus_exit -}
+ , foldM_fwd_block (\_ a -> Just a)
)
unfocus (FGraph e bz bs) = LGraph e (insertBlock (zip bz) bs)
where FGraph _ b others = focusp is_exit g `orElse` panic "no exit in flow graph"
(h, l) = goto_end b
+
+{-
splice_focus_entry (FGraph eid (ZBlock head tail) blocks) g =
let (tail', g') = splice_tail g tail in
- FGraph eid (ZBlock head tail') (plusUFM (gr_blocks g') blocks)
+ FGraph eid (ZBlock head tail') (plusUFM (lg_blocks g') blocks)
splice_focus_exit (FGraph eid (ZBlock head tail) blocks) g =
let (g', head') = splice_head head g in
- FGraph eid (ZBlock head' tail) (plusUFM (gr_blocks g') blocks)
-
--- | Fold from first to last
-fold_fwd_block ::
- (BlockId -> a -> a) -> (m -> a -> a) -> (ZLast l -> a -> a) ->
- Block m l -> a -> a
-fold_fwd_block first middle last (Block id t) z = tail t (first id z)
- where tail (ZTail m t) z = tail t (middle m z)
- tail (ZLast l) z = last l z
+ FGraph eid (ZBlock head' tail) (plusUFM (lg_blocks g') blocks)
+-}
-- | iterate from first to last
foldM_fwd_block ::