Package EDU.purdue.cs.bloat.cfg
Classes to represent a Java method as a control flow graph of basic blocks. A basic block is a sequence of code that is entered only in once place (e.g. the target of a branch statement) and is exited at only one place (e.g. a branch statement). Each basic block consists of an expression tree. There are also classes to represent try-catch blocks, Java subroutines (finally blocks), certain properties of the control flow graph such as its dominator tree, and to visualize a control flow graph.
-
Class Summary Class Description Block Block represents a basic block of code used in control flow graphs.DominanceFrontier DominanceFrontier is used to calculate the dominance frontier of each node in a control flow graph.DominatorTree DominatorTree finds the dominator tree of a FlowGraph.FlowGraph FlowGraph constructs and represents a Control Flow Graph (CFG) used for analyzing a method.Handler Handler represents a try-catch block.ReplaceTarget ReplaceTarget replaces the block that is the target of a JumpStmt, JsrStmt, RetStmt, GotoStmt, SwitchStmt, or IfStmt with another Block.Subroutine Subroutine represents a subroutine (target of a jsr instruction) in java bytecode.VerifyCFG VerifyCFG visits the nodes in a control flow graph and verifies that certain properties of the graph are true.