Specifying and Executing Optimizations for Parallel Programs
William Mansky (University of Illinois at Urbana-Champaign), Dennis, Griffith (University of Illinois at Urbana-Champaign), Elsa L. Gunter, (University of Illinois at Urbana-Champaign)

TL;DR
This paper introduces PTRANS, a domain-specific language for formally specifying and testing compiler optimizations on parallel programs, improving correctness and facilitating refinement before implementation.
Contribution
It presents PTRANS, a new language with executable semantics for specifying and prototyping parallel program optimizations using control flow graph rewrites and temporal logic conditions.
Findings
PTRANS enables clear specification of parallel program optimizations.
It allows testing and refining optimizations before integration into compilers.
Demonstrated with a redundant store elimination example.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
