Results 1 
8 of
8
Stack allocation and synchronization optimizations for java using escape analysis
 ACM Transactions on Programming Languages and Systems
, 2003
"... This article presents an escape analysis framework for Java to determine (1) if an object is not reachable after its method of creation returns, allowing the object to be allocated on the stack, and (2) if an object is reachable only from a single thread during its lifetime, allowing unnecessary syn ..."
Abstract

Cited by 28 (0 self)
 Add to MetaCart
This article presents an escape analysis framework for Java to determine (1) if an object is not reachable after its method of creation returns, allowing the object to be allocated on the stack, and (2) if an object is reachable only from a single thread during its lifetime, allowing unnecessary synchronization operations on that object to be removed. We introduce a new program abstraction for escape analysis, the connection graph, that is used to establish reachability relationships between objects and object references. We show that the connection graph can be succinctly summarized for each method such that the same summary information may be used in different calling contexts without introducing imprecision into the analysis. We present an interprocedural algorithm that uses the above property to efficiently compute the connection graph and identify the nonescaping objects for methods and threads. The experimental results, from a prototype implementation of our framework in the IBM High Performance Compiler for Java, are very promising. The percentage of objects that may be allocated on the stack exceeds 70 % of all dynamically created objects in the user code in three out of the ten benchmarks (with a median of 19%), 11 % to 92 % of all mutex lock operations are eliminated in those ten programs (with a median of 51%), and the overall execution time reduction ranges from 2 % to 23 % (with a median of 7%) on a 333 MHz PowerPC workstation with 512 MB memory.
Defining Flow Sensitivity in Data Flow Problems
 IBM T. J. Watson Research Center
, 1995
"... Since Banning first introduced flow sensitivity in 1978, the term has been used to indicate hard or complex data flow problems, but there is no consensus as to its precise meaning. We look at Banning's original uses of the term and some interpretations they have generated. Then we consider the multi ..."
Abstract

Cited by 19 (8 self)
 Add to MetaCart
Since Banning first introduced flow sensitivity in 1978, the term has been used to indicate hard or complex data flow problems, but there is no consensus as to its precise meaning. We look at Banning's original uses of the term and some interpretations they have generated. Then we consider the multiplicity of meanings in more recent interprocedural analyses, categorizing a number of data flow problems. We also classify several recent interprocedural approximation techniques with respect to properties related to sensitivity and discuss additional data flow problem properties. Finally, we propose a definition for flow sensitivity that appears to capture much of the original intent and current use. 1 Introduction The distinction between flow sensitive and flow insensitive data flow problems was introduced by Banning [Ban78, Ban79]. Although no uniform definition has ever been given, the terms have been used as shorthand in expressing the locality or summarizability of information, the ap...
Incremental Computation of Dominator Trees
 ACM Trans. Progrm. Languages and Systems
, 1995
"... Data flow analysis based on an incremental approach may require that the dominator tree be correctly maintained at all times [CR88]. Previous solutions to the problem of incrementally maintaining dominator trees were restricted to reducible flowgraphs [RR94, CR88]. In this paper we present a new alg ..."
Abstract

Cited by 13 (4 self)
 Add to MetaCart
Data flow analysis based on an incremental approach may require that the dominator tree be correctly maintained at all times [CR88]. Previous solutions to the problem of incrementally maintaining dominator trees were restricted to reducible flowgraphs [RR94, CR88]. In this paper we present a new algorithm for incrementally maintaining the dominator tree of an arbitrary flowgraph, either reducible or irreducible, based on a program representation called the DJgraph [SG95, SGL94a]. For the case where an edge is inserted, our algorithm is also faster than previous approaches (in the worst case). For the deletion case, our algorithm is likely to run fast on the average cases. 1 Introduction In the past few years, Static Single Assignment (SSA) form [CFR + 89, CFR + 91], Sparse Evaluation Graphs (SEG) [CCF91], and other related intermediate representations have been successfully used for efficient data flow analysis and program transformations [CLZ86, RWZ88, AWZ88, WZ85, WCES94]. Cons...
A new framework for exhaustive and incremental data flow analysis using DJ graphs
 ACM SIGPLAN CONF. ON PLDI
, 1995
"... In this paper we propose a new framework for eliminationbased exhaustive and incremental data flow analysis using DJ graphs. In this paper we give an overview of our framework. The details can be found in our two long reports [SGL95a, SG95a]. These two reports are available from our WWW URL http:/ ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
In this paper we propose a new framework for eliminationbased exhaustive and incremental data flow analysis using DJ graphs. In this paper we give an overview of our framework. The details can be found in our two long reports [SGL95a, SG95a]. These two reports are available from our WWW URL http://wwwacaps.cs.mcgill.ca/~sreedhar/pubs.html OR http://wwwacaps.cs.mcgill.ca/doc/memos.html
Efficient data flow analysis using DJgraphs: Elimination methods revisited
, 1995
"... In this paper we present a new approach to elimination based data flow analysis that uses a program representation called the DJ Graph. The skeleton of the DJ graph of a program is the dominator tree of its flowgraph (whose edges are called D edges in this paper), and the tree skeleton is augmented ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
In this paper we present a new approach to elimination based data flow analysis that uses a program representation called the DJ Graph. The skeleton of the DJ graph of a program is the dominator tree of its flowgraph (whose edges are called D edges in this paper), and the tree skeleton is augmented with join edges (called J edges in this paper). Unlike the previous elimination methods, which first reduce a flowgraph to a single node, our approach only eliminate J edges from the DJ graph in a bottomup fashion during the reduction process, while maintainting the dominator tree structure (which may be compressed). We propose two methods for eliminating variables: (1) eager elimination method, and (2) delayed elimination method. With eager elimination, we first perform variable elimination on the DJgraph in a bottomup manner. Once we determine the solution for the root node, we propagate this information in a topdown fashion on the dominator tree and determine the corresponding solutio...
Lower And Upper Bounds For Incremental Algorithms
, 1992
"... An incremental algorithm (also called a dynamic update algorithm) updates the answer to some problem after an incremental change is made in the input. We examine methods for bounding the performance of such algorithms. First, quite general but relatively weak bounds are considered, along with a care ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
An incremental algorithm (also called a dynamic update algorithm) updates the answer to some problem after an incremental change is made in the input. We examine methods for bounding the performance of such algorithms. First, quite general but relatively weak bounds are considered, along with a careful examination of the conditions under which they hold. Next, a more powerful proof method, the Incremental Relative Lower Bound is presented, along with its application to a number of important problems. We then examine an alternative approach, deltaanalysis, which had been proposed previously, apply it to several new problems and show how it can be extended. For the specific problem of updating the transitive closure of an acyclic digraph, we present the first known incremental algorithm that is efficient in the deltaanalysis sense. Finally, we criti...
An EliminationBased Approach to Incremental Data Flow Analysis
, 1995
"... In this paper we present a new approach for incremental data flow analysis based on elimination methods. Unlike previous eliminationbased incremental data flow analysis, our approach can handle arbitrary nonstructural and structural changes to program flowgraphs, including irreducibility. We use p ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
In this paper we present a new approach for incremental data flow analysis based on elimination methods. Unlike previous eliminationbased incremental data flow analysis, our approach can handle arbitrary nonstructural and structural changes to program flowgraphs, including irreducibility. We use properties of dominance frontiers and iterated dominance frontiers for updating data flow solutions. These properties are applicable to both reducible and irreducible flowgraphs. Since we use properties of dominance frontiers (and iterated dominance frontiers) we also give a simple algorithm for updating the dominance frontier relation. The dominance frontier update algorithm is based on our previous work for updating dominator trees. i Contents 1 Introduction 1 2 Exhaustive Elimination Method: An Overview 2 3 Our Approach 5 3.1 Initial and Final Flow Equations : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 3.2 Basic Steps : : : : : : : : : : : : : : : : : : : : : : : : : : : : :...
Differences in Algorithmic Parallelism in Control Flow and Call Multigraphs
 in Proceedings of the Seventh Annual Workshop on Languages and Compilers for Parallel Computing
, 1994
"... This paper describes our experiences with an implementation of the Interprocedural May Alias problem for Fortran. The disappointing speedups obtained led us to subsequent study of the effectiveness of our region partitioning methods on call multigraphs as compared to control flow graphs. We develope ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper describes our experiences with an implementation of the Interprocedural May Alias problem for Fortran. The disappointing speedups obtained led us to subsequent study of the effectiveness of our region partitioning methods on call multigraphs as compared to control flow graphs. We developed two metrics,