A practical interprocedural alias analysis for an optimizing/parallelizing C compiler /

Accurate alias analysis is a crucial phase of optimizing/parallelizing compilers for languages which support pointer data structures. The result of the alias analysis is used by most of data-flow analyses and optimizing phases in a compiler to produce efficient code. === In this thesis, we introduce...

Full description

Bibliographic Details
Main Author: Emami, Maryam
Other Authors: Hendren, Laurie (advisor)
Format: Others
Language:en
Published: McGill University 1993
Subjects:
Online Access:http://digitool.Library.McGill.CA:80/R/?func=dbin-jump-full&object_id=69725
Description
Summary:Accurate alias analysis is a crucial phase of optimizing/parallelizing compilers for languages which support pointer data structures. The result of the alias analysis is used by most of data-flow analyses and optimizing phases in a compiler to produce efficient code. === In this thesis, we introduced a new approach for interprocedural alias analysis which determines the explicit points-to relationships between locations in an abstract stack at each program point. Two variables have a points-to relationship if one of them points, or may point, to the other one. === To perform our interprocedural analysis, we have designed a new representation to capture the call-structure of the program, called the invocation graph. This is similar to the traditional call graph, with some additional properties for the recursive function calls. The invocation graph is used to follow the exact sequence of function calls and returns in the program. In this manner, the precise information is propagated to/from a function. === This work has been integrated in the McCAT optimizing/parallelizing compiler for the C-language. The analysis handles both scalar variables and aggregate data structures (records and arrays). === The results of the points-to analysis provides a base upon which other interprocedural analyses are built. This thesis provides both experimental results and examples to demonstrate the usefulness of the points-to analysis.