A practical array dependence analysis for anoptimizingparallelizing C compiler

Accurate and efficient array dependence analysis is a crucial phase of optimizing/parallelizing compilers. The results of array dependence analysis are required for many automatic parallelism detection analyses and transformations. === This thesis is concerned with the development of a dependence an...

Full description

Bibliographic Details
Main Author: Justiani, J., 1962-
Other Authors: Hendren, Laurie J. (advisor)
Format: Others
Language:en
Published: McGill University 1995
Subjects:
Online Access:http://digitool.Library.McGill.CA:80/R/?func=dbin-jump-full&object_id=23277
id ndltd-LACETR-oai-collectionscanada.gc.ca-QMM.23277
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-QMM.232772014-02-13T03:53:32ZA practical array dependence analysis for anoptimizingparallelizing C compilerJustiani, J., 1962-Computer Science.Accurate and efficient array dependence analysis is a crucial phase of optimizing/parallelizing compilers. The results of array dependence analysis are required for many automatic parallelism detection analyses and transformations.This thesis is concerned with the development of a dependence analysis for a certain class of loopnests in the imperative programming language C. In particular, this thesis addresses the problems of incorporating such a framework in a language that supports pointers. We propose a practical and efficient dependence testing framework built upon previously existing methods.To perform any dependence testing, a support analysis is required in order to establish a suitable environment. This support analysis has three major functions. First, it filters certain loopnests that are amenable for analysis. Second, it exposes array subscripts in terms of affine functions of loop indices. The last function is the collection of array subscript pairs in loopnests. The support analysis incorporates analysis information such as points-to information, constant propagation information and reaching definition information to yield more accurate dependence tests.An important contribution of this thesis is a statistical profiler which is used to collect information for experiments. The statistical profiler has several flags that an be set "ON" or "OFF" to support different research scenarios. Different flag settings are used for observing the effects of loop normalization, points-to analysis, constant propagation, nonperfect loopnests, delinearization and linearization on the results of the dependence testing. This thesis includes experimental results from running some benchmarks under five different scenarios.This work has been integrated into the McCAT optimizing/parallelizing C compiler. The tool is called McADT (The McCAT-Array Dependence Tester).McGill UniversityHendren, Laurie J. (advisor)1995Electronic Thesis or Dissertationapplication/pdfenalephsysno: 001475177proquestno: MM08019Theses 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=23277
collection NDLTD
language en
format Others
sources NDLTD
topic Computer Science.
spellingShingle Computer Science.
Justiani, J., 1962-
A practical array dependence analysis for anoptimizingparallelizing C compiler
description Accurate and efficient array dependence analysis is a crucial phase of optimizing/parallelizing compilers. The results of array dependence analysis are required for many automatic parallelism detection analyses and transformations. === This thesis is concerned with the development of a dependence analysis for a certain class of loopnests in the imperative programming language C. In particular, this thesis addresses the problems of incorporating such a framework in a language that supports pointers. We propose a practical and efficient dependence testing framework built upon previously existing methods. === To perform any dependence testing, a support analysis is required in order to establish a suitable environment. This support analysis has three major functions. First, it filters certain loopnests that are amenable for analysis. Second, it exposes array subscripts in terms of affine functions of loop indices. The last function is the collection of array subscript pairs in loopnests. The support analysis incorporates analysis information such as points-to information, constant propagation information and reaching definition information to yield more accurate dependence tests. === An important contribution of this thesis is a statistical profiler which is used to collect information for experiments. The statistical profiler has several flags that an be set "ON" or "OFF" to support different research scenarios. Different flag settings are used for observing the effects of loop normalization, points-to analysis, constant propagation, nonperfect loopnests, delinearization and linearization on the results of the dependence testing. This thesis includes experimental results from running some benchmarks under five different scenarios. === This work has been integrated into the McCAT optimizing/parallelizing C compiler. The tool is called McADT (The McCAT-Array Dependence Tester).
author2 Hendren, Laurie J. (advisor)
author_facet Hendren, Laurie J. (advisor)
Justiani, J., 1962-
author Justiani, J., 1962-
author_sort Justiani, J., 1962-
title A practical array dependence analysis for anoptimizingparallelizing C compiler
title_short A practical array dependence analysis for anoptimizingparallelizing C compiler
title_full A practical array dependence analysis for anoptimizingparallelizing C compiler
title_fullStr A practical array dependence analysis for anoptimizingparallelizing C compiler
title_full_unstemmed A practical array dependence analysis for anoptimizingparallelizing C compiler
title_sort practical array dependence analysis for anoptimizingparallelizing c compiler
publisher McGill University
publishDate 1995
url http://digitool.Library.McGill.CA:80/R/?func=dbin-jump-full&object_id=23277
work_keys_str_mv AT justianij1962 apracticalarraydependenceanalysisforanoptimizingparallelizingccompiler
AT justianij1962 practicalarraydependenceanalysisforanoptimizingparallelizingccompiler
_version_ 1716640867055304704