Results 1 
9 of
9
SetSharing is Redundant for PairSharing
 Theoretical Computer Science
, 1997
"... . Although the usual goal of sharing analysis is to detect which pairs of variables share, the standard choice for sharing analysis is a domain that characterizes setsharing. In this paper, we question, apparently for the first time, whether this domain is overcomplex for pairsharing analysis. We ..."
Abstract

Cited by 29 (12 self)
 Add to MetaCart
. Although the usual goal of sharing analysis is to detect which pairs of variables share, the standard choice for sharing analysis is a domain that characterizes setsharing. In this paper, we question, apparently for the first time, whether this domain is overcomplex for pairsharing analysis. We show that the answer is yes. By defining an equivalence relation over the setsharing domain we obtain a simpler domain, reducing the complexity of the abstract unification procedure. We present preliminary experimental results, showing that, in practice, our domain compares favorably with the setsharing one over a wide range of benchmark programs. 1 Introduction In logic programming, a knowledge of sharing between variables is important for optimizations such as the exploitation of parallelism. Today, talking about sharing analysis for logic programs is almost the same as talking about the setsharing domain Sharing of Jacobs and Langen [11,12]. The adequacy of this domain is not norma...
Widening Sharing
 Principles and Practice of Declarative Programming
, 1999
"... We study the problem of an efficient and precise sharing analysis of (constraint) logic programs. After recognizing that neither plain Sharing nor its nonredundant (but equivalent) abstraction scale well to real programs, we consider the domain proposed by C. Fecht [11, 12]. This domain consists of ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
(Show Context)
We study the problem of an efficient and precise sharing analysis of (constraint) logic programs. After recognizing that neither plain Sharing nor its nonredundant (but equivalent) abstraction scale well to real programs, we consider the domain proposed by C. Fecht [11, 12]. This domain consists of a combination of Pos with a quite weak abstraction of Sharing. While verifying that this domain is truly remarkable, in terms of both precision and efficiency, we have revealed significant precision losses for several real programs. This loss concerns groundness, pairsharing and linearity. We define a simple domain for sharing analysis that supports the implementation of several widening techniques. In particular, with this domain it is straightforward to turn Fecht's idea into a proper widening. More precise widenings are also considered. However, in spite of thorough experimentation we found that, provided Pos is included in the domain, the first widening we propose is hard to improve on. K...
Efficient topdown setsharing analysis using cliques
 In Eight International Symposium on Practical Aspects of Declarative Languages, number 2819 in LNCS
, 2006
"... Abstract. We study the problem of efficient, scalable setsharing analysis of logic programs. We use the idea of representing sharing information as a pair of abstract substitutions, one of which is a worstcase sharing representation called a clique set, which was previously proposed for the case o ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
(Show Context)
Abstract. We study the problem of efficient, scalable setsharing analysis of logic programs. We use the idea of representing sharing information as a pair of abstract substitutions, one of which is a worstcase sharing representation called a clique set, which was previously proposed for the case of inferring pairsharing. We use the cliqueset representation for (1) inferring actual setsharing information, and (2) analysis within a topdown framework. In particular, we define the new abstract functions required by standard topdown analyses, both for sharing alone and also for the case of including freeness in addition to sharing. We use cliques both as an alternative representation and as widening, defining several widening operators. Our experimental evaluation supports the conclusion that, for inferring setsharing, as it was the case for inferring pairsharing, precision losses are limited, while useful efficiency gains are obtained. We also derive useful conclusions regarding the interactions between thresholds, precision, efficiency and cost of widening. At the limit, the cliqueset representation allowed analyzing some programs that exceeded memory capacity using classical sharing representations. 1
Lazy SetSharing Analysis
"... Abstract. Sharing analysis is widely deployed in the optimisation, specialisation and parallelisation of logic programs. Each abstract unification operation over the classic Jacobs and Langen domain involves the calculation of a closure operation that has exponential worstcase complexity. This pape ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Sharing analysis is widely deployed in the optimisation, specialisation and parallelisation of logic programs. Each abstract unification operation over the classic Jacobs and Langen domain involves the calculation of a closure operation that has exponential worstcase complexity. This paper explores a new tactic for improving performance: laziness. The idea is to compute partial sharing information eagerly and recover full sharing information lazily. The net result is an analysis that runs in a fraction of the time of the classic analysis and yet has comparable precision. 1
M.: Efficient Representations for SetSharing Analysis
, 2008
"... The SetSharing domain has been widely used to infer at compiletime interesting properties of logic programs such as occurscheck reduction, automatic parallelization, and finitetree analysis. However, performing abstract unification in this domain requires a closure operation that increases the n ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
The SetSharing domain has been widely used to infer at compiletime interesting properties of logic programs such as occurscheck reduction, automatic parallelization, and finitetree analysis. However, performing abstract unification in this domain requires a closure operation that increases the number of sharing groups exponentially. Much attention has been given in the literature to mitigating this key inefficiency in this otherwise very useful domain. In this paper we present a novel approach to SetSharing: we define a new representation that leverages the complement (or negative) sharing relationships of the original sharing set, without loss of accuracy. Intuitively, given an abstract state shV over the finite set of variables of interest V, its negative representation is ℘(V) \ shV. Using this encoding during analysis dramatically reduces the number of elements that need to be represented in the abstract states and during abstract unification as the cardinality of the original set grows toward 2 V . To further compress the number of elements, we express the setsharing relationships through a set of ternary strings that compacts the representation by eliminating redundancies among the sharing sets. Our experimental evaluation shows that our approach can compress the number of relationships, operations, including abstract unification. 1
unknown title
"... Abstract. Sharing analysis is widely deployed in the optimisation, specialisation and parallelisation of logic programs. Each abstract unification operation over the classic Jacobs and Langen domain involves the calculation of a closure operation that has exponential worstcase complexity. This pap ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Sharing analysis is widely deployed in the optimisation, specialisation and parallelisation of logic programs. Each abstract unification operation over the classic Jacobs and Langen domain involves the calculation of a closure operation that has exponential worstcase complexity. This paper explores a new tactic for improving performance: laziness. The idea is to compute partial sharing information eagerly and recover full sharing information lazily. The net result is an analysis that runs in a fraction of the time of the classic analysis and yet has comparable precision.
A study of setsharing analysis via cliques
"... Abstract. We study the problem of efficient, scalable setsharing analysis of logic programs. We use the idea of representing sharing information as a pair of abstract substitutions, one of which is a worstcase sharing representation called a clique set, which was previously proposed for the case o ..."
Abstract
 Add to MetaCart
Abstract. We study the problem of efficient, scalable setsharing analysis of logic programs. We use the idea of representing sharing information as a pair of abstract substitutions, one of which is a worstcase sharing representation called a clique set, which was previously proposed for the case of inferring pairsharing. We use the cliqueset representation for (1) inferring actual setsharing information, and (2) analysis within a topdown framework. In particular, we define the abstract functions required by standard topdown analyses, both for sharing alone and also for the case of including freeness in addition to sharing. Our experimental evaluation supports the conclusion that, for inferring setsharing, as it was the case for inferring pairsharing, precision losses are limited, while useful efficiency gains are obtained. At the limit, the cliqueset representation allowed analyzing some programs that exceeded memory capacity using classical sharing representations. 1
Two Efficient Representations for SetSharing Analysis in Logic Programs
"... SetSharing analysis, the classic Jacobs and Langen’s domain, has been widely used to infer several interesting properties of programs at compiletime such as occurscheck reduction, automatic parallelization, finitetree analysis, etc. However, performing abstract unification over this domain impli ..."
Abstract
 Add to MetaCart
SetSharing analysis, the classic Jacobs and Langen’s domain, has been widely used to infer several interesting properties of programs at compiletime such as occurscheck reduction, automatic parallelization, finitetree analysis, etc. However, performing abstract unification over this domain implies the use of a closure operation which makes the number of sharing groups grow exponentially. Much attention has been given in the literature to mitigate this key inefficiency in this otherwise very useful domain. In this paper we present two novel alternative representations for the traditional setsharing domain, tSH and tNSH, which compress efficiently the number of elements into fewer elements enabling more efficient abstract operations, including abstract unification, without any loss of accuracy. Our experimental evaluation supports that both representations can reduce dramatically the number of sharing groups showing they can be more practical solutions towards scalable setsharing. 1
Negative Ternary SetSharing ⋆
"... Abstract. The SetSharing domain has been widely used to infer at compiletime interesting properties of logic programs such as occurscheck reduction, unification in this domain requires a closure operation that increases the number of sharing groups exponentially. Much attention has been given to m ..."
Abstract
 Add to MetaCart
Abstract. The SetSharing domain has been widely used to infer at compiletime interesting properties of logic programs such as occurscheck reduction, unification in this domain requires a closure operation that increases the number of sharing groups exponentially. Much attention has been given to mitigating this key inefficiency in this otherwise very useful domain. In this paper we present a novel approach to SetSharing: we define a new representation that leverages the complement (or negative) sharing relationships of the original sharing set, without loss of accuracy. Intuitively, given an abstract state shV over the finite set of variables of interest V, its negative representation is ℘(V) \ shV. Using this encoding during analysis dramatically reduces the number of elements that need to be represented in the abstract states and during abstract unification as the cardinality of the original set grows toward 2 V . To further compress the number of elements, we express the setsharing relationships through a set of ternary strings that compacts the representation by eliminating redundancies among the sharing sets. Our experiments show that our approach can compress the number of relationships, reducing significantly the memory usage and running time of all abstract operations, including abstract unification. 1