Safe Haskell | None |
---|---|

Language | Haskell2010 |

Analyse a program file and create basic blocks.

- analyseBBlocks :: Data a => ProgramFile (Analysis a) -> ProgramFile (Analysis a)
- genBBlockMap :: Data a => ProgramFile (Analysis a) -> BBlockMap (Analysis a)
- showBBGr :: (Out a, Show a) => BBGr a -> String
- showAnalysedBBGr :: (Out a, Show a) => BBGr (Analysis a) -> String
- showBBlocks :: (Data a, Out a, Show a) => ProgramFile (Analysis a) -> String
- bbgrToDOT :: BBGr a -> String
- type BBlockMap a = Map ProgramUnitName (BBGr a)
- genSuperBBGr :: forall a. Data a => BBlockMap (Analysis a) -> SuperBBGr (Analysis a)
- data SuperBBGr a
- showSuperBBGr :: (Out a, Show a) => SuperBBGr (Analysis a) -> String
- superBBGrToDOT :: SuperBBGr a -> String
- superBBGrGraph :: SuperBBGr a -> BBGr a
- superBBGrClusters :: SuperBBGr a -> IntMap ProgramUnitName
- superBBGrEntries :: SuperBBGr a -> Map ProgramUnitName SuperNode
- findLabeledBBlock :: String -> BBGr a -> Maybe Node

# Documentation

analyseBBlocks :: Data a => ProgramFile (Analysis a) -> ProgramFile (Analysis a) Source #

Insert basic block graphs into each program unit's analysis

genBBlockMap :: Data a => ProgramFile (Analysis a) -> BBlockMap (Analysis a) Source #

Create a mapping of (non-module) program unit names to their associated bblock graph.

showBBGr :: (Out a, Show a) => BBGr a -> String Source #

Show a basic block graph in a somewhat decent way.

showAnalysedBBGr :: (Out a, Show a) => BBGr (Analysis a) -> String Source #

Show a basic block graph without the clutter

showBBlocks :: (Data a, Out a, Show a) => ProgramFile (Analysis a) -> String Source #

Pick out and show the basic block graphs in the program file analysis.

type BBlockMap a = Map ProgramUnitName (BBGr a) Source #

A mapping of program unit names to bblock graphs.

showSuperBBGr :: (Out a, Show a) => SuperBBGr (Analysis a) -> String Source #

Show a basic block supergraph

superBBGrToDOT :: SuperBBGr a -> String Source #

Output a supergraph in the GraphViz DOT format

superBBGrGraph :: SuperBBGr a -> BBGr a Source #

Extract graph from SuperBBGr

superBBGrClusters :: SuperBBGr a -> IntMap ProgramUnitName Source #

Extract cluster map from SuperBBGr

superBBGrEntries :: SuperBBGr a -> Map ProgramUnitName SuperNode Source #

Extract entry map from SuperBBGr