scispace - formally typeset
Journal ArticleDOI

An approach for exploring code improving transformations

Reads0
Chats0
TLDR
A framework that enables the exploration, both analytically and experimentally, of properties of code-improving transformations and a tool that automatically produces a transformer that implements the transformations specified in Gospel is presented.
Abstract
Although code transformations are routinely applied to improve the performance of programs for both scalar and parallel machines, the properties of code-improving transformations are not well understood. In this article we present a framework that enables the exploration, both analytically and experimentally, of properties of code-improving transformations. The major component of the framework is a specification language, Gospel, for expressing the conditions needed to safely apply a transformation and the actions required to change the code to implement the transformation. The framework includes a technique that facilitates an analytical investigation of code-improving transformations using the Gospel specifications. It also contains a tool, Genesis, that automatically produces a transformer that implements the transformations specified in Gospel. We demonstrate the usefulness of the framework by exploring the enabling and disabling properties of transformations. We first present analytical results on the enabling and disabling properties of a set of code transformations, including both traditional and parallelizing transformations, and then describe experimental results showing the types of transformations and the enabling and disabling interactions actually found in a set of programs.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal Article

Compiler Optimization-Space Exploration.

TL;DR: The Optimization-Space Exploration (OSE) compiler organization is presented, the first practical iterative compilation strategy applicable to optimizations in general-purpose compilers and uses the compiler writer's knowledge encoded in the heuristics to select a small number of promising optimization alternatives for a given code segment.
Proceedings ArticleDOI

Compiler optimization-space exploration

TL;DR: The Optimization Space Exploration (OSE) compiler as discussed by the authors uses the compiler writer's knowledge encoded in the heuristics to select a small number of promising optimization alternatives for a given code segment.
Proceedings ArticleDOI

Finding effective compilation sequences

TL;DR: A large experimental study of the space of compilation sequences over a set of known benchmarks, using the prototype adaptive compiler to characterize these spaces and to determine if it is cost-effective to construct custom compilation sequences.
Proceedings ArticleDOI

Equality saturation: a new approach to optimization

TL;DR: The proposed way of structuring optimizers has a variety of benefits over previous approaches: it obviates the need to worry about optimization ordering, enables the use of a global optimization heuristic that selects among fully optimized programs, and can be used to perform translation validation, even on compilers other than the authors' own.
Proceedings ArticleDOI

Fast searches for effective optimization phase sequences

TL;DR: This paper describes two complementary general approaches for achieving faster searches for effective optimization sequences when using a genetic algorithm, and modifies the search so fewer generations are required to achieve the same results.
References
More filters
Book

Numerical Analysis

TL;DR: This report contains a description of the typical topics covered in a two-semester sequence in Numerical Analysis, and describes the accuracy, efficiency and robustness of these algorithms.
Book

High-Performance Compilers for Parallel Computing

TL;DR: This book discusses Programming Language Features, Data Dependence, Dependence System Solvers, and Run-time Dependence Testing for High Performance Systems.
Journal ArticleDOI

Advanced compiler optimizations for supercomputers

TL;DR: Compilers for vector or multiprocessor computers must have certain optimization features to successfully generate parallel code to be able to operate on parallel systems.
Proceedings ArticleDOI

Global code motion/global value numbering

TL;DR: This paper argues that optimizing compilers should treat the machine-independent optimizations (e.g., conditional constant propagation, global value numbering) and code motion issues separately, which allows stronger optimizations using simpler algorithms.
Proceedings ArticleDOI

Sharlit—a tool for building optimizers

TL;DR: Sharlit is presented, a tool to support the construction of modular and extensible global optimizers, and it is shown how Sharlit helps in constructing data-flow analyzers and the transformations that use data- flow analysis information, both are major components of any optimizer.
Related Papers (5)