Results 1  10
of
26
A Simple, Fast Dominance Algorithm
"... The problem of finding the dominators in a controlflow graph has a long history in the literature. The original algorithms su#ered from a large asymptotic complexity but were easy to understand. Subsequent work improved the time bound, but generally sacrificed both simplicity and ease of implemen ..."
Abstract

Cited by 31 (0 self)
 Add to MetaCart
The problem of finding the dominators in a controlflow graph has a long history in the literature. The original algorithms su#ered from a large asymptotic complexity but were easy to understand. Subsequent work improved the time bound, but generally sacrificed both simplicity and ease of implementation. This paper returns to a simple formulation of dominance as a global dataflow problem. Some insights into the natureofdominance lead to an implementation of an O(N )algorithm that runs faster, in practice, than the classic LengauerTarjan algorithm, which has a timebound of O(E log(N)). We compare the algorithm to LengauerTarjan because it is the best known and most widely used of the fast algorithms for dominance. Working from the same implementationinsights,wealso rederive (from earlier work on control dependence by Ferrante, et al.)amethodforcalculating dominance frontiers that we show is faster than the original algorithm by Cytron, et al. The aim of this paper is not to present a new algorithm, but, rather, to make an argument based on empirical evidence that algorithms with discouraging asymptotic complexities can be faster in practice than those more commonly employed. We show that, in some cases, careful engineering of simple algorithms can overcome theoretical advantages, even when problems grow beyond realistic sizes. Further, we argue that the algorithms presented herein are intuitive and easily implemented, making them excellent teaching tools.
LinearTime PointerMachine Algorithms for Least Common Ancestors, MST Verification, and Dominators
 IN PROCEEDINGS OF THE THIRTIETH ANNUAL ACM SYMPOSIUM ON THEORY OF COMPUTING
, 1998
"... We present two new data structure toolsdisjoint set union with bottomup linking, and pointerbased radix sortand combine them with bottomlevel microtrees to devise the first lineartime pointermachine algorithms for offline least common ancestors, minimum spanning tree (MST) verification, ..."
Abstract

Cited by 29 (4 self)
 Add to MetaCart
We present two new data structure toolsdisjoint set union with bottomup linking, and pointerbased radix sortand combine them with bottomlevel microtrees to devise the first lineartime pointermachine algorithms for offline least common ancestors, minimum spanning tree (MST) verification, randomized MST construction, and computing dominators in a flowgraph.
On Loops, Dominators, and Dominance Frontiers
, 1999
"... This paper explores the concept of loops and loop nesting forests of controlflow graphs, using the problem of constructing the dominator tree of a graph and the problem of computing the iterated dominance frontier of a set of vertices in a graph as guiding applications. The contributions of this pa ..."
Abstract

Cited by 23 (0 self)
 Add to MetaCart
This paper explores the concept of loops and loop nesting forests of controlflow graphs, using the problem of constructing the dominator tree of a graph and the problem of computing the iterated dominance frontier of a set of vertices in a graph as guiding applications. The contributions of this paper include: (1) An axiomatic characterization, as well as a constructive characterization, of a family of loop nesting forests that includes various specific loop nesting forests that have been previously defined. (2) The definition of a new loop nesting forest, as well as an e#cient, almost linear time, algorithm for constructing this forest. (3) An illustration of how loop nesting forests can be used to transform arbitrary (potentially irreducible) problem instances into equivalent acylic graph problem instances in the case of the two problems of (a) constructing the dominator tree of a graph, and (b) computing the iterated dominance frontier of a set of vertices in a graph, leading to new, almost linear time, algorithms for these problems
Range searching over tree cross products
 In Proc. 8th European Symposium on Algorithms (ESA
, 2000
"... Abstract. We introduce the tree crossproduct problem, which abstracts a data structure common to applications in graph visualization, string matching, and software analysis. We design solutions with a variety of tradeoffs, yielding improvements and new results for these applications. 1 ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
Abstract. We introduce the tree crossproduct problem, which abstracts a data structure common to applications in graph visualization, string matching, and software analysis. We design solutions with a variety of tradeoffs, yielding improvements and new results for these applications. 1
A New Algorithm for Slicing Unstructured Programs
, 1998
"... This paper introduces a modification of Agrawal's algorithm for slicing unstructured programs, which overcomes these difficulties. The new algorithm produces thinner slices than any previously published algorithm while respecting both the semantic and syntactic constraints of slicing. c fl1998 ..."
Abstract

Cited by 16 (7 self)
 Add to MetaCart
This paper introduces a modification of Agrawal's algorithm for slicing unstructured programs, which overcomes these difficulties. The new algorithm produces thinner slices than any previously published algorithm while respecting both the semantic and syntactic constraints of slicing. c fl1998 by John Wiley & Sons, Ltd.
Dominator Trees and Fast Verification of Proof Nets
"... We consider the following decision problems: PROOFNET: Given a multiplicative linear logic (MLL) proof structure, is it a proof net? ESSNET: Given an essential net (of an intuitionistic MLL sequent), is it correct? In this paper we show that lineartime algorithms for ESSNET can be obtained by cons ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
We consider the following decision problems: PROOFNET: Given a multiplicative linear logic (MLL) proof structure, is it a proof net? ESSNET: Given an essential net (of an intuitionistic MLL sequent), is it correct? In this paper we show that lineartime algorithms for ESSNET can be obtained by constructing the dominator tree of the input essential net. As a corollary, by showing that PROOFNET is lineartime reducible to ESSNET (by the trip translation), we obtain a lineartime algorithm for PROOFNET. We show further that these lineartime algorithms can be optimized to simple onepass algorithms – each node of the input structure is visited at most once. As another application of dominator trees, we obtain lineartime algorithms for sequentializing proof nets (i.e. given a proof net, find a derivation for the underlying MLL sequent) and essential nets.
Polynomialtime subgraph enumeration for automated instruction set extension
 In Proceedings of the Design, Automation and Test in Europe Conference and Exhibition
, 2007
"... This paper proposes a novel algorithm that, given a dataflow graph and an input/output constraint, enumerates all convex subgraphs under the given constraint in polynomial time with respect to the size of the graph. These subgraphs have been shown to represent efficient Instruction Set Extensions f ..."
Abstract

Cited by 14 (2 self)
 Add to MetaCart
This paper proposes a novel algorithm that, given a dataflow graph and an input/output constraint, enumerates all convex subgraphs under the given constraint in polynomial time with respect to the size of the graph. These subgraphs have been shown to represent efficient Instruction Set Extensions for customizable processors. The search space for this problem is inherently polynomial but, to our knowledge, this is the first paper to prove this and to present a practical algorithm for this problem with polynomial complexity. Our algorithm is based on properties of convex subgraphs that link them to the concept of multiplevertex dominators. We discuss several pruning techniques that, without sacrificing the optimality of the algorithm, make it practical for dataflow graphs of a thousands nodes or more. 1.
DataFlow Frameworks for WorstCase Execution Time Analysis
 RealTime Systems
, 2000
"... The purpose of this paper is to introduce frameworks based on dataflow equations which provide for estimating the worstcase execution time (WCET) of (realtime) programs. These frameworks allow several different WCET analysis techniques, which range from nave approaches to exact analysis, provided ..."
Abstract

Cited by 13 (8 self)
 Add to MetaCart
The purpose of this paper is to introduce frameworks based on dataflow equations which provide for estimating the worstcase execution time (WCET) of (realtime) programs. These frameworks allow several different WCET analysis techniques, which range from nave approaches to exact analysis, provided exact knowledge on the program behaviour is available. However, dataflow frameworks can also be used for symbolic analysis based on information derived automatically from the source code of the program. As a byproduct we show that slightly modified elimination methods can be employed for solving WCET dataflow equations, while iteration algorithms cannot be used for this purpose.
Efficient Computation of Causal Behavioural Profiles using Structural Decomposition
, 2010
"... Identification of behavioural contradictions is an important aspect of software engineering, in particular for checking the consistency between a business process model used as system specification and a corresponding workflow model used as implementation. In this paper, we propose causal behaviour ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
Identification of behavioural contradictions is an important aspect of software engineering, in particular for checking the consistency between a business process model used as system specification and a corresponding workflow model used as implementation. In this paper, we propose causal behavioural profiles as the basis for a consistency notion, which capture essential behavioural information, such as order, exclusiveness, and causality between pairs of activities. Existing notions of behavioural equivalence, such as bisimulation and trace equivalence, might also be applied as consistency notions. Still, they are exponential in computation. Our novel concept of causal behavioural profiles provides a weaker behavioural consistency notion that can be computed efficiently using structural decomposition techniques for sound freechoice workflow systems if unstructured net fragments are acyclic or can be traced back to S or Tnets.
Finding dominators in practice
 In Proceedings of the 12th Annual European Symposium on Algorithms, volume 3221 of Lecture Notes in Computer Science
, 2004
"... Abstract. The computation of dominators in a flowgraph has applications in program optimization, circuit testing, and other areas. Lengauer and Tarjan [17] proposed two versions of a fast algorithm for finding dominators and compared them experimentally with an iterative bit vector algorithm. They c ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Abstract. The computation of dominators in a flowgraph has applications in program optimization, circuit testing, and other areas. Lengauer and Tarjan [17] proposed two versions of a fast algorithm for finding dominators and compared them experimentally with an iterative bit vector algorithm. They concluded that both versions of their algorithm were much faster than the bitvector algorithm even on graphs of moderate size. Recently Cooper et al. [9] have proposed a new, simple, treebased iterative algorithm. Their experiments suggested that it was faster than the simple version of the LengauerTarjan algorithm on graphs representing computer program control flow. Motivated by the work of Cooper et al., we present an experimental study comparing their algorithm (and some variants) with careful implementations of both versions of the LengauerTarjan algorithm and with a new hybrid algorithm. Our results suggest that, although the performance of all the algorithms is similar, the most consistently fast are the simple LengauerTarjan algorithm and the hybrid algorithm, and their advantage increases as the graph gets bigger or more complicated. 1