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
id ndltd-LACETR-oai-collectionscanada.gc.ca-QMM.69725
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-QMM.697252014-02-13T04:01:38ZA practical interprocedural alias analysis for an optimizing/parallelizing C compiler /Emami, MaryamComputer Science.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.McGill UniversityHendren, Laurie (advisor)1993Electronic Thesis or Dissertationapplication/pdfenalephsysno: 001386545proquestno: AAIMM91831Theses scanned by UMI/ProQuest.All items in eScholarship@McGill are protected by copyright with all rights reserved unless otherwise indicated.Master of Science (School of Computer Science.) http://digitool.Library.McGill.CA:80/R/?func=dbin-jump-full&object_id=69725
collection NDLTD
language en
format Others
sources NDLTD
topic Computer Science.
spellingShingle Computer Science.
Emami, Maryam
A practical interprocedural alias analysis for an optimizing/parallelizing C compiler /
description 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.
author2 Hendren, Laurie (advisor)
author_facet Hendren, Laurie (advisor)
Emami, Maryam
author Emami, Maryam
author_sort Emami, Maryam
title A practical interprocedural alias analysis for an optimizing/parallelizing C compiler /
title_short A practical interprocedural alias analysis for an optimizing/parallelizing C compiler /
title_full A practical interprocedural alias analysis for an optimizing/parallelizing C compiler /
title_fullStr A practical interprocedural alias analysis for an optimizing/parallelizing C compiler /
title_full_unstemmed A practical interprocedural alias analysis for an optimizing/parallelizing C compiler /
title_sort practical interprocedural alias analysis for an optimizing/parallelizing c compiler /
publisher McGill University
publishDate 1993
url http://digitool.Library.McGill.CA:80/R/?func=dbin-jump-full&object_id=69725
work_keys_str_mv AT emamimaryam apracticalinterproceduralaliasanalysisforanoptimizingparallelizingccompiler
AT emamimaryam practicalinterproceduralaliasanalysisforanoptimizingparallelizingccompiler
_version_ 1716643683648929792