public static ControlFlowGraph GenerateNormalControlFlow(MethodBody method) { var instructions = ControlFlowGraph.FilterExceptionHandlers(method); var leaders = ControlFlowGraph.CreateNodes(instructions); var cfg = ControlFlowGraph.ConnectNodes(instructions, leaders); return(cfg); }
public static ControlFlowGraph GenerateExceptionalControlFlow(MethodBody method) { var instructions = method.Instructions; var leaders = ControlFlowGraph.CreateNodes(instructions); var cfg = ControlFlowGraph.ConnectNodes(instructions, leaders); ControlFlowGraph.ConnectNodesWithExceptionHandlers(cfg, method.ProtectedBlocks, leaders); return(cfg); }