| A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The Impact of Abstract Interpretation: an Experiment in Code Generation. In Sixth International Conference on Logic Programming, pages 33--47. MIT Press, June 1989. |
....modes, which is different from logic programs [35] and show possible compile time optimizations using these modes. We are not interested in low level code optimizations to improve primitive unification instructions since such techniques, which have been developed for pure logic programs (e.g. [24, 25, 31, 32, 33, 34, 35]) can be applied to functional logic programs as well due to the similarities between WAM based Prolog implementations and implementations of functional logic languages [12, 13, 23] We limit our discussion to optimizations which are unique to functional logic programs based on an eager ....
....the first argument is a ground term, the second argument is a free variable, and the third argument is an arbitrary term for all calls to predicate p. The mode information is useful to optimize the compiled code, i.e. to specialize the unification instructions and indexing scheme for a predicate [24, 25, 32, 34, 35]. Since functional logic languages are usually based on narrowing which uses unification to apply a function to a subterm, mode information could also be useful to 5 optimize functional logic programs. However, the notion of mode in functional logic programs is different from pure logic ....
[Article contains additional citation context not shown here]
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The impact of abstract interpretation: an experiment in code generation. In Proc. Sixth International Conference on Logic Programming (Lisboa), pp. 33--47. MIT Press, 1989.
....piece of code is to be reused in a new setting. The problem therefore amounts to automatically inferring the mode of the arguments of a procedure at compile time and using this information to the best advantage. Debray, van Roy, Marien and others have examined this and related issues in some depth [15, 38, 29, 22, 35]. Debray s work on mode inference forms the basis of much of the work in this area. Compiling procedures to the basic WAM is a highly localized process. The code for a clause originates purely from the clause itself, plus the knowledge of whether the clause is the first, intermediate, or final ....
Andre Marien, Gerda Janssens, Anne Mulkers, and Maurice Bruynooghe. The impact of abstract interpretation: an experiment in code generation. In Logic Programming: Proceedings of the Sixth International Conference, Lisbon, Portugal [6], pages 33--47.
....run time checks in independent and parallelism. Based on the results obtained, it is concluded that the overhead of global flow analysis is not prohibitive, while the results of analysis can be quite precise and useful. 1 Introduction The extensive use of advanced compilation techniques [8, 22, 30, 32, 33, 34], coupled with parallel execution [5, 10, 15, 20, 35] appears to be a very promising approach to achieving improved performance in logic programming systems. Existing systems are based largely on local analysis (i.e. clause level or, at most, procedure level, as in the WAM) Such techniques have ....
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The impact of abstract interpretation: an experiment in code generation. In Sixth International Conference on Logic Programming, pages 33--47. MIT Press, June 1989.
....variety of low level optimizations. It serves also as a unified framework for describing and reasoning about a variety of different low level optimizations that have, to date, been dealt with in a more or less ad hoc manner. Like the optimizations described by Mellish [17] and Marie . n et al. [13], these are at the level of intermediate code, or virtual machine, instructions; they are somewhat higher level than the machine code level optimizations described by Turk [26] The transformation scheme consists of a hoisting transformation on flow graphs, together with three generic ....
....this scheme are illustrated using five low level optimizations: reduction of redundant tag manipulation operations, dereferencing, trail testing, environment allocation and bounds checking. These techniques may also be applicable to other low level optimizations, e.g. those of Marie . n et al. [13], and the elimination of some redundant stack and heap overflow tests. In work related to this, low level optimization of Prolog programs has been considered by, among others, Marie . n et al. 13] Mellish [17] Meier [16] and Van Roy et al. 27] Turk discusses a number of optimizations at ....
[Article contains additional citation context not shown here]
A. Marien, G. Janssens, A. Mulkers and M. Bruynooghe, The Impact of Abstract Interpretation: an Experiment in Code Generation, in Proc. Sixth International Conference on Logic Programming, Lisbon, Portugal, June 1989. MIT Press.
....whether multiple specialization could be useful in practice. However, little evidence on the practicality of abstract interpretation driven multiple specialization in logic programs has been provided previous to our work [51, 53] Improvements for a few small, hand coded examples were reported in [39, 59]. More recently, an implementation of multiple specialization has also been reported in [34, 35] applied to CLP(R) Also recently, further evidence on the potential of multiple specialization for optimization of logic programs has been reported in [37] There, some uni cations which satisfy ....
....The fact that multivariant analysis can be used in order to generate multiple specialization is already mentioned in Bruynooghe s analysis framework [2] However, no method is provided to perform such multiple specialization. The relevance of multiple specialization is also foreseen in [39, 59] where some improvements for a few small, hand coded examples are reported. Winsborough in [61] presents a powerful multiple specialization framework based on the notion of minimal function graphs [32] A new abstract interpretation framework is introduced which is tightly coupled with the ....
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The Impact of Abstract Interpretation: an Experiment in Code Generation. In Sixth International Conference on Logic Programming, pages 33-47. MIT Press, June 1989.
....and loading the value of a variable requires dereferencing such chains. A number of authors have shown that significant performance improvements are possible if the lengths of these pointer chains can be predicted via compile time analysis, so that unnecessary dereferencing code can be deleted [7, 12, 16]; however, the analyses involved are fairly complex. Here we show how, in many cases, unnecessary dereference operations can be eliminated using call forwarding. The procedure is defined as follows: ave( Sum, Count, Avg) Avg is Sum Count. ave( H L] Sum, Count, Avg) Sum1 is Sum H, ....
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe, "The Impact of Abstract Interpretation: An Experiment in Code Generation", Proc. Sixth International Conference on Logic Programming, Lisbon, June 1989, pp. 33--47. MIT Press.
....style have many clauses in which the last reference to a memory cell (structure) is followed almost immediately by the allocation of another cell of the same size. One obvious optimization is to reuse the newly freed memory cell for the following allocation. This is by now a well researched area [6, 8, 10, 18]. The key problem is the analysis required to identify the location of the last reference to a memory cell. These analyses require dataflow information, and their accuracy is limited by the accuracy of the dataflow information they are based on. Since the Mercury compiler has perfect dataflow ....
A. Marien, G. Janssen, A. Mulkers, and M. Bruynooghe. The impact of abstract interpretations: an experiment in code generation. In Proceedings of the Sixth International Conference on Logic Programming, pages 33--47, Lisboa, Portugal, June 1989.
....effectively penalizing good programmers and carefully crafted programs. For example, it has been shown that significant improvements in performance can be obtained by returning output values of procedures in registers instead of in memory [1, 21] or with knowledge of lengths of dereference chains [17]. However, in a language with delay mechanisms, there is always the possibility that normal execution may be pre empted by a newly awakened goal that may overwrite a register containing an output value or change the length of a dereference chain, thereby making these optimizations inapplicable. ....
....General Prolog Optimizations In recent years there has been a great deal of work on optimization of (nonsuspending) Prolog. For example, Marien et al. show that significant performance improvements are possible for Prolog programs if the lengths of dereference chains can be statically predicted [17], while Van Roy shows that execution speed can be improved significantly if the initialization of variables can be avoided [21] All of these optimizations become applicable for (strongly) non suspending programs in logic programming languages with delay mechanisms. 7. Discussion While delay ....
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe, "The Impact of Abstract Interpretation: An Experiment in Code Generation", Proc. Sixth Int. Conf. on Logic Programming, June 1989, pp. 33-47.
.... fundamental results, both briefly summarized above, are encouraging, there has been little or no evidence to date on the practicality of abstract interpretation driven multiple specialization in logic programs, other than the small improvements for a few small, hand coded examples reported in [25, 32]. This is in contrast with the fact that abstract interpretation is becoming a practical tool in logic program compilation [18, 32, 31, 33, 3] The first contribution of this paper is to fill this gap. We report on the implementation of multiple specialization in a parallelizing compiler for ....
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The Impact of Abstract Interpretation: an Experiment in Code Generation. In Sixth International Conference on Logic Programming, pages 33--47. MIT Press, June 1989.
....have many predicates in which the last reference to a memory cell (structure) is followed almost immediately by the allocation of another cell of the same size. One obvious optimization is to reuse the newly freed memory cell for the following allocation. This is by now a well researched area [13, 18, 20, 29]. The key problem is the analysis required to identify the location of the last reference to a memory cell. These analyses require dataflow information, and their accuracy is limited by the accuracy of the dataflow information they are based on. Since the Mercury compiler has perfect dataflow ....
A. Marien, G. Janssen, A. Mulkers, and M. Bruynooghe. The impact of abstract interpretations: an experiment in code generation. In Proceedings of the Sixth International Conference on Logic Programming, pages 33--47, Lisboa, Portugal, June 1989.
....measured two systems, MA 3 , the MCC And parallel Analyzer and Annotator, and Ms, an experimental analysis scheme developed for SB Prolog. The paper concludes that both dataflow analyzers are effective in deriving types and do not unduly increase compilation time. In 1989, Andre Marien et al. [87] performed an interesting experiment in which several small Prolog predicates (recursive list operations) were hand compiled with four levels of optimization based on information derivable from a global analysis. The levels progressively include unbound variable and ground modes, recursively ....
Andre Marien, Gerda Janssens, Anne Mulkers, and Maurice Bruynooghe. The Impact of Abstract Interpretation: An Experiment in Code Generation. In 6th ICLP, pages 33--47, MIT Press, June 1989.
....have many predicates in which the last reference to a memory cell (structure) is followed almost immediately by the allocation of another cell of the same size. One obvious optimization is to reuse the newly freed memory cell for the following allocation. This is by now a well researched area [8, 10, 12, 20]. The key problem is the analysis required to identify the location of the last reference to a memory cell. These analyses require dataflow information, and their accuracy is limited by the accuracy of the dataflow information they are based on. Since the Mercury compiler has perfect dataflow ....
A. Marien, G. Janssen, A. Mulkers, and M. Bruynooghe. The impact of abstract interpretations: an experiment in code generation. In Proceedings of the Sixth International Conference on Logic Programming, pages 33--47, Lisboa, Portugal, June 1989.
....: S # X . Remark that it is not only the compilation of the numerical constraint satisfaction that benefits from the freeness information of variables, but as these variables can occur in unifications, also the optimisations based on the modes ground, free and any for logic programs can be used [19, 26, 27]. The structure of the paper is as follows. Section 2 defines some preliminary notions. Section 3 introduces the abstract domain and defines the abstraction of systems of linear equations, systems of unifications and mixed systems involving both types of constraints. Section 4 defines the basic ....
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The impact of abstract interpretation: An experiment in code generation. In G. Levi and M. Martelli, editors, Proceedings of the Sixth International Conference on Logic Programming, pages 33--47, Lisbon, 1989. MIT Press, Cambridge.
No context found.
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The Impact of Abstract Interpretation: an Experiment in Code Generation. In Sixth International Conference on Logic Programming, pages 33--47. MIT Press, June 1989.
No context found.
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The Impact of Abstract Interpretation: an Experiment in Code Generation. In Sixth International Conference on Logic Programming, pages 33--47. MIT Press, June 1989.
No context found.
A. Marien, G. Janssens, A. Mulkers, and M. Bruynooghe. The Impact of Abstract Interpretation: an Experiment in Code Generation. In Sixth International Conference on Logic Programming, pages 33-47. MIT Press, June 1989.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC