Specifying and Executing Optimizations for Parallel Programs

Compiler optimizations, usually expressed as rewrites on program graphs, are a core part of all modern compilers. However, even production compilers have bugs, and these bugs are difficult to detect and resolve. The problem only becomes more complex when compiling parallel programs; from the choice...

Full description

Bibliographic Details
Main Authors: William Mansky, Dennis Griffith, Elsa L. Gunter
Format: Article
Language:English
Published: Open Publishing Association 2014-07-01
Series:Electronic Proceedings in Theoretical Computer Science
Online Access:http://arxiv.org/pdf/1407.7932v1
id doaj-4853e5b6c1414df6ada2d0a2e4ee8ad5
record_format Article
spelling doaj-4853e5b6c1414df6ada2d0a2e4ee8ad52020-11-24T23:08:21ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802014-07-01159Proc. GRAPHITE 2014587010.4204/EPTCS.159.6:1Specifying and Executing Optimizations for Parallel ProgramsWilliam Mansky0Dennis Griffith1Elsa L. Gunter2 University of Illinois at Urbana-Champaign University of Illinois at Urbana-Champaign University of Illinois at Urbana-Champaign Compiler optimizations, usually expressed as rewrites on program graphs, are a core part of all modern compilers. However, even production compilers have bugs, and these bugs are difficult to detect and resolve. The problem only becomes more complex when compiling parallel programs; from the choice of graph representation to the possibility of race conditions, optimization designers have a range of factors to consider that do not appear when dealing with single-threaded programs. In this paper we present PTRANS, a domain-specific language for formal specification of compiler transformations, and describe its executable semantics. The fundamental approach of PTRANS is to describe program transformations as rewrites on control flow graphs with temporal logic side conditions. The syntax of PTRANS allows cleaner, more comprehensible specification of program optimizations; its executable semantics allows these specifications to act as prototypes for the optimizations themselves, so that candidate optimizations can be tested and refined before going on to include them in a compiler. We demonstrate the use of PTRANS to state, test, and refine the specification of a redundant store elimination optimization on parallel programs.http://arxiv.org/pdf/1407.7932v1
collection DOAJ
language English
format Article
sources DOAJ
author William Mansky
Dennis Griffith
Elsa L. Gunter
spellingShingle William Mansky
Dennis Griffith
Elsa L. Gunter
Specifying and Executing Optimizations for Parallel Programs
Electronic Proceedings in Theoretical Computer Science
author_facet William Mansky
Dennis Griffith
Elsa L. Gunter
author_sort William Mansky
title Specifying and Executing Optimizations for Parallel Programs
title_short Specifying and Executing Optimizations for Parallel Programs
title_full Specifying and Executing Optimizations for Parallel Programs
title_fullStr Specifying and Executing Optimizations for Parallel Programs
title_full_unstemmed Specifying and Executing Optimizations for Parallel Programs
title_sort specifying and executing optimizations for parallel programs
publisher Open Publishing Association
series Electronic Proceedings in Theoretical Computer Science
issn 2075-2180
publishDate 2014-07-01
description Compiler optimizations, usually expressed as rewrites on program graphs, are a core part of all modern compilers. However, even production compilers have bugs, and these bugs are difficult to detect and resolve. The problem only becomes more complex when compiling parallel programs; from the choice of graph representation to the possibility of race conditions, optimization designers have a range of factors to consider that do not appear when dealing with single-threaded programs. In this paper we present PTRANS, a domain-specific language for formal specification of compiler transformations, and describe its executable semantics. The fundamental approach of PTRANS is to describe program transformations as rewrites on control flow graphs with temporal logic side conditions. The syntax of PTRANS allows cleaner, more comprehensible specification of program optimizations; its executable semantics allows these specifications to act as prototypes for the optimizations themselves, so that candidate optimizations can be tested and refined before going on to include them in a compiler. We demonstrate the use of PTRANS to state, test, and refine the specification of a redundant store elimination optimization on parallel programs.
url http://arxiv.org/pdf/1407.7932v1
work_keys_str_mv AT williammansky specifyingandexecutingoptimizationsforparallelprograms
AT dennisgriffith specifyingandexecutingoptimizationsforparallelprograms
AT elsalgunter specifyingandexecutingoptimizationsforparallelprograms
_version_ 1725614763671552000