Uninformed: Informative Information for the Uninformed

Vol 8» 2007.Sep

Basic Block Tier

The basic block tier uses the set of data flow paths found at the procedure tier to construct a data flow graph that shows the data flow relationships between formal input and formal output parameters passed between basic blocks. Like the procedure tier, basic block tier data flow paths also explicitly identify the formal parameter index that data is being passed to. The graph is generated using the one-to-many table that was populated during generalization which conveys the basic block data flow paths that were generalized by the set of qualified procedure data flow paths. The graph that is generated as a result is shown in figure 18. Due to the way that Phoenix currently represents basic blocks, the basic block tier data flow paths offer very little generalization beyond the instruction tier.

Figure 18: Basic block tier data flow graph for the web application representing potentially reachable paths between the source and sink flow descriptor. These paths were qualified by reachable paths found at the procedure tier.
Image expath-basicblock

Using the graph, the $ Reachability()$ algorithm is again employed to find paths between the source and sink flow descriptor at the basic block tier. Due to the simplicity of the example application, only a few data flow paths were rendered. The complete data flow path from fout(get_QueryString, 0) to fin(Start, 0) can be clearly seen.