Safe Haskell | None |
---|---|
Language | Haskell2010 |
Analyse a program file and create basic blocks.
Synopsis
- 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)
- type ASTBlockNode = Int
- type ASTExprNode = Int
- genSuperBBGr :: forall a. Data a => BBlockMap (Analysis a) -> SuperBBGr (Analysis a)
- data SuperBBGr a = SuperBBGr {
- superBBGrGraph :: BBGr a
- superBBGrClusters :: IntMap ProgramUnitName
- superBBGrEntries :: Map PUName SuperNode
- showSuperBBGr :: (Out a, Show a) => SuperBBGr (Analysis a) -> String
- superBBGrToDOT :: SuperBBGr a -> String
- findLabeledBBlock :: String -> BBGr a -> Maybe Node
- showBlock :: Block a -> String
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.
type ASTBlockNode = Int Source #
type ASTExprNode = Int Source #
SuperBBGr | |
|
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