Package EDU.purdue.cs.bloat.cfg
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.
-
ClassesClassDescriptionBlock represents a basic block of code used in control flow graphs.DominanceFrontier is used to calculate the dominance frontier of each node in a control flow graph.DominatorTree finds the dominator tree of a FlowGraph.FlowGraph constructs and represents a Control Flow Graph (CFG) used for analyzing a method.Handler represents a try-catch block.ReplaceTarget replaces the block that is the target of a JumpStmt, JsrStmt, RetStmt, GotoStmt, SwitchStmt, or IfStmt with another Block.Subroutine represents a subroutine (target of a jsr instruction) in java bytecode.VerifyCFG visits the nodes in a control flow graph and verifies that certain properties of the graph are true.