Class SSACFG

java.lang.Object
com.ibm.wala.ssa.SSACFG
All Implemented Interfaces:
ControlFlowGraph<SSAInstruction,ISSABasicBlock>, MinimalCFG<ISSABasicBlock>, EdgeManager<ISSABasicBlock>, Graph<ISSABasicBlock>, NodeManager<ISSABasicBlock>, NumberedEdgeManager<ISSABasicBlock>, NumberedGraph<ISSABasicBlock>, NumberedNodeManager<ISSABasicBlock>, Iterable<ISSABasicBlock>

A control-flow graph for ssa form.

This implementation is uglified in the name of performance. This implementation does not directly track the graph structure, but instead delegates to a prebuilt ControlFlowGraph which stores the structure. This decision from 2004 may have been premature optimization, left over from a world where IRs and related structures were long-lived. In today's system, they are cached and reconstituted by SSACache. Perhaps we should just extend AbstractCFG and not worry so much about space.

As the current implementation stands, the delegate graph stores the graph structure, and this class additionally stores SSACFG.BasicBlocks and the SSAInstruction array.