Results 1  10
of
10
Interprocedural Dataflow Analysis via Graph Reachability
, 1994
"... This paper shows howalarge class of interprocedural dataflowanalysis problems can be solved precisely in polynomial time. The only restrictions are that the set of dataflow facts is a finite set, and that the dataflow functions distribute overthe confluence operator (either union or intersection). ..."
Abstract

Cited by 373 (33 self)
 Add to MetaCart
This paper shows howalarge class of interprocedural dataflowanalysis problems can be solved precisely in polynomial time. The only restrictions are that the set of dataflow facts is a finite set, and that the dataflow functions distribute overthe confluence operator (either union or intersection). This class of problems includesbut is not limited tothe classical separable problems (also known as "gen/kill" or "bitvector" problems)e.g.,reaching definitions, available expressions, and live variables. In addition, the class of problems that our techniques handle includes manynonseparable problems, including trulylive variables, copyconstant propagation, and possiblyuninitialized variables. Anovelaspect of our approach is that an interprocedural dataflowanalysis problem is transformed into a special kind of graphreachability problem (reachability along interprocedurally realizable paths). The paper presents three polynomialtime algorithms for the realizablepath reachability problem: an exhaustive version, a second exhaustive version that may be more appropriate in the incremental and/or interactive context, and a demand version. The first and third of these algorithms are asymptotically faster than the best previously known realizablepath reachability algorithm. An additional benefit of our techniques is that theylead to improved algorithms for twoother kinds of interprocedural analysis problems: interprocedural flowsensitive sideeffect problems (as studied by Callahan) and interprocedural program slicing (as studied by Horwitz, Reps, and Binkley).
The Effects of the Precision of Pointer Analysis
 In Proceedings of the 4th International Symposium on Static Analysis
, 1997
"... . In order to analyze programs that manipulate pointers, it is necessary to have safe information about what each pointer might point to. There are many algorithms that can be used to determine this information, with varying degrees of accuracy. However, there has been very little previous work that ..."
Abstract

Cited by 75 (1 self)
 Add to MetaCart
. In order to analyze programs that manipulate pointers, it is necessary to have safe information about what each pointer might point to. There are many algorithms that can be used to determine this information, with varying degrees of accuracy. However, there has been very little previous work that addresses how much the relative accuracies of different pointeranalysis algorithms affect "transitive" results: the results of a subsequent analysis. We have carried out a number of experiments with flowinsensitive, contextinsensitive pointer analyses to address the following questions:  How are the transitive effects of pointer analysis affected by the precision of the analysis?  How good are the "direct" effects of pointer analysis (the sizes of the computed pointsto sets) at predicting the transitive effects?  What are the time tradeoffs? We found that using a more precise pointer analysis does in general lead to more precise transitive results. However, the magnitude of th...
An Automatatheoretic Approach to Interprocedural Dataflow Analysis
, 1999
"... . We show that recent progress in extending the automatatheoretic approach to modelchecking beyond the class of finitestate processes finds a natural application in the area of interprocedural dataflow analysis. Keywords: Interprocedural dataflow analysis, modelchecking, automata theory, progra ..."
Abstract

Cited by 53 (11 self)
 Add to MetaCart
. We show that recent progress in extending the automatatheoretic approach to modelchecking beyond the class of finitestate processes finds a natural application in the area of interprocedural dataflow analysis. Keywords: Interprocedural dataflow analysis, modelchecking, automata theory, program optimisation. 1 Introduction Recent work [15, 24] has shown that modelchecking algorithms for abstract classes of infinitestate systems, like contextfree processes [1, 5] and pushdown processes [6], find a natural application in the area of dataflow analysis (DFA) for programming languages with procedures [16], usually called interprocedural DFA. A large variety of DFA problems, whose solution is required by optimising compilers in order to apply performance improving transformations, can be solved by means of a unique modelchecking technique. The techniques of [5, 6] are based on what could be called the fixpoint approach to modelchecking [24], in which the set of states satisfying...
Imperative program transformation by rewriting
 In Proc. 10th International Conf. on Compiler Construction, volume 2027 of Lecture Notes in Computer Science
, 2001
"... Abstract. We present a method of specifying standard imperative program optimisations as a rewrite system. To achieve this we have extended the idea of matching subterms in expressions with simple patterns to matching blocks in a control flow graph. In order to express the complex restrictions on t ..."
Abstract

Cited by 35 (5 self)
 Add to MetaCart
Abstract. We present a method of specifying standard imperative program optimisations as a rewrite system. To achieve this we have extended the idea of matching subterms in expressions with simple patterns to matching blocks in a control flow graph. In order to express the complex restrictions on the applicability of these rewrites we add temporal logic side conditions. The combination of these features allows a flexible, high level, yet executable specification of many of the transformations found in optimising compilers. 1
On Optimal Slicing of Parallel Programs
 STOC'01
, 2001
"... Optimal program slicing determines for a statement S in a program pi whether or not S affects a specified set of statements, given that all conditionals in pi are interpreted as nondeterministic choices. Only recently ..."
Abstract

Cited by 21 (6 self)
 Add to MetaCart
Optimal program slicing determines for a statement S in a program pi whether or not S affects a specified set of statements, given that all conditionals in pi are interpreted as nondeterministic choices. Only recently
Distribution assignment placement: Effective optimization of redistribution costs
 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS
, 2002
"... Data locality and workload balance are key factors for getting high performance out of dataparallel programs on multiprocessor architectures. Dataparallel languages such as HighPerformance Fortran (HPF) thus offer means allowing a programmer both to specify data distributions, as well as to chan ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Data locality and workload balance are key factors for getting high performance out of dataparallel programs on multiprocessor architectures. Dataparallel languages such as HighPerformance Fortran (HPF) thus offer means allowing a programmer both to specify data distributions, as well as to change them dynamically in order to maintain these properties. On the other hand, redistributions can be quite expensive and significantly degrade a program's performance. They must thus be reduced to a minimum. In this article, we present a novel, aggressive approach for avoiding unnecessary remappings which works by eliminating partially dead and partially redundant distribution changes. Basically, this approach evolves from extending and combining two algorithms for these optimizations achieving each on its own optimal results. In distinction to the sequential setting, the dataparallel setting leads naturally to a family of algorithms of varying power and efficiency allowing requirementcustomized solutions. The power and flexibility of the new approach are demonstrated by various examples, which range from typical HPF fragments to real world programs. Performance measurements underline its importance and show its effectivity on different hardware platforms and different settings.
The Complexity of Copy Constant Detection in Parallel Programs
 In STACS 2001, LNCS 2010
, 2001
"... Despite of the wellknown stateexplosion problem, certain simple but important dataflow analysis problems known as gen/kill problems can be solved e#ciently and completely for parallel programs with a shared state [7, 6, 2, 3, 13]. This paper shows that, in all probability, these surprising re ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
Despite of the wellknown stateexplosion problem, certain simple but important dataflow analysis problems known as gen/kill problems can be solved e#ciently and completely for parallel programs with a shared state [7, 6, 2, 3, 13]. This paper shows that, in all probability, these surprising results cannot be generalized to significantly larger classes of dataflow analysis problems.