Introduction to Global data flow analysis
Data-flow analysis is a process in which optimizing compiler collects the data-flow information.
Data-flow information means status information during computation times like transformations performed in a basic block.
Collection of data-flow information about the program as whole and to distribute this information to each block in the flow graph is much necessary in order to do code optimization and a good job of code generation.
Data-flow information can be collected by setting up and solving systems of equations of the following form :
out [S] = gen [S] U ( in [S] – kill [S] )
Above equation can be read as
“The information at the end of a statement (out [S]) is either generated within the statement (= gen [S]) , or (U) enters at the beginning (in [S]) and is not (–) killed as control flows through the statement (kill [S] )”.
This type of equations are called data-flow equation.