-- the first block is the entry point ==> it must remain at the start.
sccBlocks :: [NatBasicBlock] -> [SCC (NatBasicBlock,Unique,[Unique])]
-sccBlocks blocks = stronglyConnCompR (map mkNode blocks)
+sccBlocks blocks = stronglyConnCompFromEdgedVerticesR (map mkNode blocks)
getOutEdges :: [Instr] -> [Unique]
getOutEdges instrs = case jumpDests (last instrs) [] of
e' <- cmmExprConFold CallReference e
return $ CmmCallee e' conv
other -> return other
- args' <- mapM (\(CmmHinted arg hint) -> do
+ args' <- mapM (\(CmmKinded arg hint) -> do
arg' <- cmmExprConFold DataReference arg
- return (CmmHinted arg' hint)) args
+ return (CmmKinded arg' hint)) args
return $ CmmCall target' regs args' srt returns
CmmCondBranch test dest