Dealing with Multiple Subprograms
The program as a whole can also be represented as a data flow graph in which each node denotes a subprogram and arcs indicate the calling relation
Each node will have boolean vector describing definitions of global variables generated by that subprogram
Additionally, parameter binding must be treated as variable definitions and uses