Global data flow analysis

Introduction to Global data flow analysis

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.