Control and data ow information is vital for the optimization of high level programming languages. Language features such as object-orientation and rst class functions and selectors link data ow and control ow. For example, in an object-oriented program an object's run time type is used to determine the function (method) executed at an invocation point via dynamic dispatch. We present an iterative analysis which derives control and data ow information simultaneously. This analysis adapts to the structure of the program, eeciently deriving ow information at a cost proportional to the precision of the information obtained. The analysis results are directly applicable to such optimizations as static binding, inlining and unboxing. This analysis has been implemented in the Illinois Concert compiler, and we report quantitative results for a number of object-oriented programs.
Download Full PDF Version (Non-Commercial Use)