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...
Main Author: | |
---|---|
Other Authors: | |
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 |