ABSTRACT

This chapter presents a generic data flow analyzer for per function bit vector data flow analysis in GNU Compiler Collection (GCC) 4.3.0. The analyzers implemented using gdfa are called pfbvdfa. After constructing the gimple representation, gcc views the rest of the compilation as sequential execution of various passes. This is carried out by traversing a linked list whose nodes contain pointers to the entry functions of these passes. The control flow graph version of gimple representation identifies basic blocks and explicates control flow between basic blocks. It also shows the declarations of temporary variables. The top level interface of gdfa with GCC is through the pass manager. In production compilers, implementing global data flow analyzers is much easier compared to implementing local data flow analyzers. This is because local data flow analysis has to deal with the lower level intricate details of the intermediate representation and intermediate representation are the most complex data structures in practical compilers.