When analyzing programs for value recomputation, one faces the problem of naming the value that flows between equivalent computations with different lexical names. This paper presents a data-flow analysis framework that overcomes this problem by synthesizing a name space tailored for tracing the values whose flow is of interest to a given data-flow problem. Furthermore, to exploit recomputation of a value with multiple, synonymous names, path-sensitive value numbering on the synthetic name space is developed. Optimizations that rely on value flow to detect redundant computations, such as partial redundancy elimination and constant propagation, become more powerful when phrased in our framework. The framework is built on a new program repres...
We present a bit-vector algorithm for the optimal and economical placement of computations within fl...
Static program analysis is in general more precise if it is sensitive to execution contexts (executi...
Flow-insensitive solutions to dataflow problems have been known to be highly scalable; however also ...
Partial redundancy elimination is a common program optimization that attempts to improve execution t...
. The concepts of value- and control-flow graphs are important for program analysis of imperative pr...
In this paper, we present a new algorithm for tracking the flow of values through a program. Our alg...
Value-driven redundancy elimination is a combination of value numbering and code motion. Value numbe...
Data-flow analysis is an integral part of any aggressive optimizing compiler. We propose a framewo...
Data-flow analysis computes its solutions over the paths in a control-flow graph. These paths---whet...
This work was also published as a Rice University thesis/dissertation: http://hdl.handle.net/1911/16...
This document presents an implementation of several types of value numbering within the Massively Sc...
Abstract. Detecting whether dierent variables have the same value at a program point is generally un...
As recent studies show, state-of-the-art parallelizing compilers produce no noticeable speedup fo...
Abstract. We describe a polynomial-time algorithm for global value numbering, which is the problem o...
. This paper describes a general purpose program analysis that computes global control-flow and data...
We present a bit-vector algorithm for the optimal and economical placement of computations within fl...
Static program analysis is in general more precise if it is sensitive to execution contexts (executi...
Flow-insensitive solutions to dataflow problems have been known to be highly scalable; however also ...
Partial redundancy elimination is a common program optimization that attempts to improve execution t...
. The concepts of value- and control-flow graphs are important for program analysis of imperative pr...
In this paper, we present a new algorithm for tracking the flow of values through a program. Our alg...
Value-driven redundancy elimination is a combination of value numbering and code motion. Value numbe...
Data-flow analysis is an integral part of any aggressive optimizing compiler. We propose a framewo...
Data-flow analysis computes its solutions over the paths in a control-flow graph. These paths---whet...
This work was also published as a Rice University thesis/dissertation: http://hdl.handle.net/1911/16...
This document presents an implementation of several types of value numbering within the Massively Sc...
Abstract. Detecting whether dierent variables have the same value at a program point is generally un...
As recent studies show, state-of-the-art parallelizing compilers produce no noticeable speedup fo...
Abstract. We describe a polynomial-time algorithm for global value numbering, which is the problem o...
. This paper describes a general purpose program analysis that computes global control-flow and data...
We present a bit-vector algorithm for the optimal and economical placement of computations within fl...
Static program analysis is in general more precise if it is sensitive to execution contexts (executi...
Flow-insensitive solutions to dataflow problems have been known to be highly scalable; however also ...