Vineeth Paleri | National Institute of Technology, Calicut (original) (raw)
Papers by Vineeth Paleri
arXiv (Cornell University), Aug 16, 2017
The problem of determining Herbrand equivalence of terms at each program point in a data flow fra... more The problem of determining Herbrand equivalence of terms at each program point in a data flow framework is a central and well studied question in program analysis. Most of the well-known algorithms for the computation of Herbrand equivalence in data flow frameworks [4, 9, 11] proceed via iterative fix-point computation on some abstract lattice of short expressions relevant to the given flow graph. However the mathematical definition of Herbrand equivalence is based on a meet over all path characterization over the (infinite) set of all possible expressions (see [12, p. 393]). The aim of this paper is to develop a lattice theoretic fix-point formulation of Herbrand equivalence on the (infinite) concrete lattice defined over the set of all terms constructible from variables, constants and operators of a program. The present characterization uses an axiomatic formulation of the notion of Herbrand congruence and defines the (infinite) concrete lattice of Herbrand congruences. Transfer functions and non-deterministic assignments are formulated as monotone functions over this concrete lattice. Herbrand equivalence is defined as the maximum fix point of a composite transfer function defined over an appropriate product lattice of the above concrete lattice. A re-formulation of the classical meet-overall paths definition of Herbrand equivalence ([12, p. 393]) in the above lattice theoretic framework is also presented and is proven to be equivalent to the new lattice theoretic fix-point characterization.
Journal of Computer Languages
Journal of Information Processing Systems, 2015
Global value numbering (GVN) is a method for detecting equivalent expressions in programs. Most o... more Global value numbering (GVN) is a method for detecting equivalent expressions in programs. Most of the GVN algorithms concentrate on detecting equalities among variables and hence, are limited in their ability to identify value-based redundancies. In this paper, we suggest improvements by which the efficient GVN algorithm by Gulwani and Necula (2007) can be made to detect expression equivalences that are required for identifying value based redundancies. The basic idea for doing so is to use an anticipability-based Join algorithm to compute more precise equivalence information at join points. We provide a proof of correctness of the improved algorithm and show that its running time is a polynomial in the number of expressions in the program.
Constant propagation and copy propagation are code transformations that may avoid some load opera... more Constant propagation and copy propagation are code transformations that may avoid some load operations and can enable other optimizations. In literature, constant and copy propagations are considered two independent transformations requiring two different data flow analyses. Here we give a generic definition for copy propagation which enables us to view constant propagation as a particular case of copy propagation and formulate a novel data flow analysis that unifies these two transformations.
Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomia... more Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two limitations of this GVN algorithm due to which detection of certain kinds of redundancies can not be done using this algorithm. The first one is concerning the use of this algorithm in detecting some instances of the classical global common subexpressions, and the second is concerning its use in the detection of some redundancies that a local value numbering algorithm will detect. We suggest improvements that enable the algorithm to detect these kinds of redundancies as well.
Logic and Its Applications, 2019
The problem of determining Herbrand equivalence of terms at each program point in a data flow fra... more The problem of determining Herbrand equivalence of terms at each program point in a data flow framework is a central and well studied question in program analysis. Most of the well-known algorithms for the computation of Herbrand equivalence in data flow frameworks [4, 9, 11] proceed via iterative fix-point computation on some abstract lattice of short expressions relevant to the given flow graph. However the mathematical definition of Herbrand equivalence is based on a meet over all path characterization over the (infinite) set of all possible expressions (see [12, p. 393]). The aim of this paper is to develop a lattice theoretic fix-point formulation of Herbrand equivalence on the (infinite) concrete lattice defined over the set of all terms constructible from variables, constants and operators of a program. The present characterization uses an axiomatic formulation of the notion of Herbrand congruence and defines the (infinite) concrete lattice of Herbrand congruences. Transfer functions and non-deterministic assignments are formulated as monotone functions over this concrete lattice. Herbrand equivalence is defined as the maximum fix point of a composite transfer function defined over an appropriate product lattice of the above concrete lattice. A re-formulation of the classical meet-overall paths definition of Herbrand equivalence ([12, p. 393]) in the above lattice theoretic framework is also presented and is proven to be equivalent to the new lattice theoretic fix-point characterization.
Science of Computer Programming, 2003
We propose a new algorithm for partial redundancy elimination based on the new concepts of safe p... more We propose a new algorithm for partial redundancy elimination based on the new concepts of safe partial availability and safe partial anticipability. These new concepts are derived by the integration of the notion of safety into the deÿnitions of partial availability and partial anticipability. The algorithm works on ow graphs whose nodes are basic blocks. It is both computationally and lifetime optimal and requires four unidirectional analyses. The most important feature of the algorithm is its simplicity; the algorithm evolves naturally from the new concept of safe partial availability.
Proceedings of the 29th Annual ACM Symposium on Applied Computing, 2014
Global Value Numbering (GVN) is a method for detecting equivalence among program expressions. Her... more Global Value Numbering (GVN) is a method for detecting equivalence among program expressions. Here we consider the problem of GVN in the context of redundancy detection and present a simple, polynomial time algorithm for the same. The basic idea is to use the concept of value expression - an abstraction of a set of expressions - enabling a representation of the equivalence information which is compact and simple to manipulate. The algorithm detects expression equivalences that are required for identifying value based redundancies. In addition, it achieves completeness in detecting equivalence among variables.
arXiv preprint arXiv:1302.6325, 2013
A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can dete... more A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can detect all Herbrand equivalences among expressions in a program. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two problems with this algorithm that prevents detection of some of the Herbrand equivalences among program expressions. We suggest improvements that will make the algorithm more precise.
The Compiler Design Handbook, 2002
Lecture Notes in Computer Science, 2019
The problem of determining Herbrand equivalence of terms at each program point in a data flow fra... more The problem of determining Herbrand equivalence of terms at each program point in a data flow framework is a central and well studied question in program analysis. Most of the well-known algorithms for the computation of Herbrand equivalence in data flow frameworks [4, 9, 11] proceed via iterative fix-point computation on some abstract lattice of short expressions relevant to the given flow graph. However the mathematical definition of Herbrand equivalence is based on a meet over all path characterization over the (infinite) set of all possible expressions (see [12, p. 393]). The aim of this paper is to develop a lattice theoretic fix-point formulation of Herbrand equivalence on the (infinite) concrete lattice defined over the set of all terms constructible from variables, constants and operators of a program. The present characterization uses an axiomatic formulation of the notion of Herbrand congruence and defines the (infinite) concrete lattice of Herbrand congruences. Transfer functions and non-deterministic assignments are formulated as monotone functions over this concrete lattice. Herbrand equivalence is defined as the maximum fix point of a composite transfer function defined over an appropriate product lattice of the above concrete lattice. A re-formulation of the classical meet-overall paths definition of Herbrand equivalence ([12, p. 393]) in the above lattice theoretic framework is also presented and is proven to be equivalent to the new lattice theoretic fix-point characterization.
Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, w... more Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, we introduce the problem of Global Value Numbering in its original form, as conceived by Kildall(1973), and present an algorithm which is a simpler variant of Kildall's. The algorithm uses the concept of value expression-an abstraction of a set of expressions-enabling a representation of the equivalence information which is compact and simple to manipulate.
Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, w... more Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, we introduce the problem of Global Value Numbering in its original form, as conceived by Kildall(1973), and present an algorithm which is a simpler variant of Kildall's. The algorithm uses the concept of value expression - an abstraction of a set of expressions - enabling a representation of the equivalence information which is compact and simple to manipulate.
Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomia... more Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two limitations of this GVN algorithm due to which detection of certain kinds of redundancies can not be done using this algorithm. The first one is concerning the use of this algorithm in detecting some instances of the classical global common subexpressions, and the second is concerning its use in the detection of some redundancies that a local value numbering algorithm will detect. We suggest improvements that enable the algorithm to detect these kinds of redundancies as well.
Science of Computer Programming, 2003
We propose a new algorithm for partial redundancy elimination based on the new concepts of safe p... more We propose a new algorithm for partial redundancy elimination based on the new concepts of safe partial availability and safe partial anticipability. These new concepts are derived by the integration of the notion of safety into the deÿnitions of partial availability and partial anticipability. The algorithm works on ow graphs whose nodes are basic blocks. It is both computationally and lifetime optimal and requires four unidirectional analyses. The most important feature of the algorithm is its simplicity; the algorithm evolves naturally from the new concept of safe partial availability.
Sigplan Notices, 1998
Partial redundancy elimination was originally formulated as a bidirectional, bit-vector, data-flo... more Partial redundancy elimination was originally formulated as a bidirectional, bit-vector, data-flow analysis problem by Morel and Renvoise. Dhamdhere improved the original algorithm using the concept of edge placement. Knoop, Rüthing, and Steffen viewed the problem within a framework that required only four unidirectional analyses for an optimal solution. Here, we propose an algorithm for partial redundancy elimination based on well
A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can dete... more A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can detect all Herbrand equivalences among expressions in a program. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two problems with this algorithm that prevents detection of some of the Herbrand equivalences among program expressions. We suggest improvements that will make the algorithm more precise.
Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, w... more Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, we introduce the problem of Global Value Numbering in its original form, as conceived by Kildall(1973), and present an algorithm which is a simpler variant of Kildall's. The algorithm uses the concept of value expression - an abstraction of a set of expressions - enabling a representation of the equivalence information which is compact and simple to manipulate.
The paper proposes a new algorithm for partial redundancy elimination based on the new concepts o... more The paper proposes a new algorithm for partial redundancy elimination based on the new concepts of safe partial availability and safe partial anticipability. These new concepts are derived by the integration of the notion of safety into the definitions of partial availability and partial anticipability. The algorithm works on flow graphs whose nodes are basic blocks. It is both computationally
Global Value Numbering (GVN) is a method for detecting equivalence among program expressions. Her... more Global Value Numbering (GVN) is a method for detecting
equivalence among program expressions. Here we consider
the problem of GVN in the context of redundancy detec-
tion and present a simple, polynomial time algorithm for
the same. The basic idea is to use the concept of value ex-
pression - an abstraction of a set of expressions - enabling a
representation of the equivalence information which is com-
pact and simple to manipulate. The algorithm detects ex-
pression equivalences that are required for identifying value
based redundancies. In addition, it achieves completeness in
detecting equivalence among variables.
arXiv (Cornell University), Aug 16, 2017
The problem of determining Herbrand equivalence of terms at each program point in a data flow fra... more The problem of determining Herbrand equivalence of terms at each program point in a data flow framework is a central and well studied question in program analysis. Most of the well-known algorithms for the computation of Herbrand equivalence in data flow frameworks [4, 9, 11] proceed via iterative fix-point computation on some abstract lattice of short expressions relevant to the given flow graph. However the mathematical definition of Herbrand equivalence is based on a meet over all path characterization over the (infinite) set of all possible expressions (see [12, p. 393]). The aim of this paper is to develop a lattice theoretic fix-point formulation of Herbrand equivalence on the (infinite) concrete lattice defined over the set of all terms constructible from variables, constants and operators of a program. The present characterization uses an axiomatic formulation of the notion of Herbrand congruence and defines the (infinite) concrete lattice of Herbrand congruences. Transfer functions and non-deterministic assignments are formulated as monotone functions over this concrete lattice. Herbrand equivalence is defined as the maximum fix point of a composite transfer function defined over an appropriate product lattice of the above concrete lattice. A re-formulation of the classical meet-overall paths definition of Herbrand equivalence ([12, p. 393]) in the above lattice theoretic framework is also presented and is proven to be equivalent to the new lattice theoretic fix-point characterization.
Journal of Computer Languages
Journal of Information Processing Systems, 2015
Global value numbering (GVN) is a method for detecting equivalent expressions in programs. Most o... more Global value numbering (GVN) is a method for detecting equivalent expressions in programs. Most of the GVN algorithms concentrate on detecting equalities among variables and hence, are limited in their ability to identify value-based redundancies. In this paper, we suggest improvements by which the efficient GVN algorithm by Gulwani and Necula (2007) can be made to detect expression equivalences that are required for identifying value based redundancies. The basic idea for doing so is to use an anticipability-based Join algorithm to compute more precise equivalence information at join points. We provide a proof of correctness of the improved algorithm and show that its running time is a polynomial in the number of expressions in the program.
Constant propagation and copy propagation are code transformations that may avoid some load opera... more Constant propagation and copy propagation are code transformations that may avoid some load operations and can enable other optimizations. In literature, constant and copy propagations are considered two independent transformations requiring two different data flow analyses. Here we give a generic definition for copy propagation which enables us to view constant propagation as a particular case of copy propagation and formulate a novel data flow analysis that unifies these two transformations.
Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomia... more Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two limitations of this GVN algorithm due to which detection of certain kinds of redundancies can not be done using this algorithm. The first one is concerning the use of this algorithm in detecting some instances of the classical global common subexpressions, and the second is concerning its use in the detection of some redundancies that a local value numbering algorithm will detect. We suggest improvements that enable the algorithm to detect these kinds of redundancies as well.
Logic and Its Applications, 2019
The problem of determining Herbrand equivalence of terms at each program point in a data flow fra... more The problem of determining Herbrand equivalence of terms at each program point in a data flow framework is a central and well studied question in program analysis. Most of the well-known algorithms for the computation of Herbrand equivalence in data flow frameworks [4, 9, 11] proceed via iterative fix-point computation on some abstract lattice of short expressions relevant to the given flow graph. However the mathematical definition of Herbrand equivalence is based on a meet over all path characterization over the (infinite) set of all possible expressions (see [12, p. 393]). The aim of this paper is to develop a lattice theoretic fix-point formulation of Herbrand equivalence on the (infinite) concrete lattice defined over the set of all terms constructible from variables, constants and operators of a program. The present characterization uses an axiomatic formulation of the notion of Herbrand congruence and defines the (infinite) concrete lattice of Herbrand congruences. Transfer functions and non-deterministic assignments are formulated as monotone functions over this concrete lattice. Herbrand equivalence is defined as the maximum fix point of a composite transfer function defined over an appropriate product lattice of the above concrete lattice. A re-formulation of the classical meet-overall paths definition of Herbrand equivalence ([12, p. 393]) in the above lattice theoretic framework is also presented and is proven to be equivalent to the new lattice theoretic fix-point characterization.
Science of Computer Programming, 2003
We propose a new algorithm for partial redundancy elimination based on the new concepts of safe p... more We propose a new algorithm for partial redundancy elimination based on the new concepts of safe partial availability and safe partial anticipability. These new concepts are derived by the integration of the notion of safety into the deÿnitions of partial availability and partial anticipability. The algorithm works on ow graphs whose nodes are basic blocks. It is both computationally and lifetime optimal and requires four unidirectional analyses. The most important feature of the algorithm is its simplicity; the algorithm evolves naturally from the new concept of safe partial availability.
Proceedings of the 29th Annual ACM Symposium on Applied Computing, 2014
Global Value Numbering (GVN) is a method for detecting equivalence among program expressions. Her... more Global Value Numbering (GVN) is a method for detecting equivalence among program expressions. Here we consider the problem of GVN in the context of redundancy detection and present a simple, polynomial time algorithm for the same. The basic idea is to use the concept of value expression - an abstraction of a set of expressions - enabling a representation of the equivalence information which is compact and simple to manipulate. The algorithm detects expression equivalences that are required for identifying value based redundancies. In addition, it achieves completeness in detecting equivalence among variables.
arXiv preprint arXiv:1302.6325, 2013
A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can dete... more A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can detect all Herbrand equivalences among expressions in a program. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two problems with this algorithm that prevents detection of some of the Herbrand equivalences among program expressions. We suggest improvements that will make the algorithm more precise.
The Compiler Design Handbook, 2002
Lecture Notes in Computer Science, 2019
The problem of determining Herbrand equivalence of terms at each program point in a data flow fra... more The problem of determining Herbrand equivalence of terms at each program point in a data flow framework is a central and well studied question in program analysis. Most of the well-known algorithms for the computation of Herbrand equivalence in data flow frameworks [4, 9, 11] proceed via iterative fix-point computation on some abstract lattice of short expressions relevant to the given flow graph. However the mathematical definition of Herbrand equivalence is based on a meet over all path characterization over the (infinite) set of all possible expressions (see [12, p. 393]). The aim of this paper is to develop a lattice theoretic fix-point formulation of Herbrand equivalence on the (infinite) concrete lattice defined over the set of all terms constructible from variables, constants and operators of a program. The present characterization uses an axiomatic formulation of the notion of Herbrand congruence and defines the (infinite) concrete lattice of Herbrand congruences. Transfer functions and non-deterministic assignments are formulated as monotone functions over this concrete lattice. Herbrand equivalence is defined as the maximum fix point of a composite transfer function defined over an appropriate product lattice of the above concrete lattice. A re-formulation of the classical meet-overall paths definition of Herbrand equivalence ([12, p. 393]) in the above lattice theoretic framework is also presented and is proven to be equivalent to the new lattice theoretic fix-point characterization.
Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, w... more Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, we introduce the problem of Global Value Numbering in its original form, as conceived by Kildall(1973), and present an algorithm which is a simpler variant of Kildall's. The algorithm uses the concept of value expression-an abstraction of a set of expressions-enabling a representation of the equivalence information which is compact and simple to manipulate.
Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, w... more Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, we introduce the problem of Global Value Numbering in its original form, as conceived by Kildall(1973), and present an algorithm which is a simpler variant of Kildall's. The algorithm uses the concept of value expression - an abstraction of a set of expressions - enabling a representation of the equivalence information which is compact and simple to manipulate.
Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomia... more Global Value Numbering(GVN) is a popular method for detecting redundant computations. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two limitations of this GVN algorithm due to which detection of certain kinds of redundancies can not be done using this algorithm. The first one is concerning the use of this algorithm in detecting some instances of the classical global common subexpressions, and the second is concerning its use in the detection of some redundancies that a local value numbering algorithm will detect. We suggest improvements that enable the algorithm to detect these kinds of redundancies as well.
Science of Computer Programming, 2003
We propose a new algorithm for partial redundancy elimination based on the new concepts of safe p... more We propose a new algorithm for partial redundancy elimination based on the new concepts of safe partial availability and safe partial anticipability. These new concepts are derived by the integration of the notion of safety into the deÿnitions of partial availability and partial anticipability. The algorithm works on ow graphs whose nodes are basic blocks. It is both computationally and lifetime optimal and requires four unidirectional analyses. The most important feature of the algorithm is its simplicity; the algorithm evolves naturally from the new concept of safe partial availability.
Sigplan Notices, 1998
Partial redundancy elimination was originally formulated as a bidirectional, bit-vector, data-flo... more Partial redundancy elimination was originally formulated as a bidirectional, bit-vector, data-flow analysis problem by Morel and Renvoise. Dhamdhere improved the original algorithm using the concept of edge placement. Knoop, Rüthing, and Steffen viewed the problem within a framework that required only four unidirectional analyses for an optimal solution. Here, we propose an algorithm for partial redundancy elimination based on well
A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can dete... more A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can detect all Herbrand equivalences among expressions in a program. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two problems with this algorithm that prevents detection of some of the Herbrand equivalences among program expressions. We suggest improvements that will make the algorithm more precise.
Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, w... more Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, we introduce the problem of Global Value Numbering in its original form, as conceived by Kildall(1973), and present an algorithm which is a simpler variant of Kildall's. The algorithm uses the concept of value expression - an abstraction of a set of expressions - enabling a representation of the equivalence information which is compact and simple to manipulate.
The paper proposes a new algorithm for partial redundancy elimination based on the new concepts o... more The paper proposes a new algorithm for partial redundancy elimination based on the new concepts of safe partial availability and safe partial anticipability. These new concepts are derived by the integration of the notion of safety into the definitions of partial availability and partial anticipability. The algorithm works on flow graphs whose nodes are basic blocks. It is both computationally
Global Value Numbering (GVN) is a method for detecting equivalence among program expressions. Her... more Global Value Numbering (GVN) is a method for detecting
equivalence among program expressions. Here we consider
the problem of GVN in the context of redundancy detec-
tion and present a simple, polynomial time algorithm for
the same. The basic idea is to use the concept of value ex-
pression - an abstraction of a set of expressions - enabling a
representation of the equivalence information which is com-
pact and simple to manipulate. The algorithm detects ex-
pression equivalences that are required for identifying value
based redundancies. In addition, it achieves completeness in
detecting equivalence among variables.