| A. Kelly, A. Macdonald, K. Marriott, H. Sndergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In Proc of the First Int. Conf. on Principles and Practices of Constraint Programming, LNCS 976, Springer-Verlag, 222--239, 1995. |
....execution) has mainly been used in logic and functional languages. It is often used to develop provably correct program analyses [21, 51] It also has been recognized as a powerful technique for performing flow sensitive data flow analyses [78] and has been used in highly optimizing compilers [93, 77]. As far as we know, BC2IR is the first abstract interpretation engine that operates on Java bytecode. 8.1.4 Combining analyses and negative time optimization Various sources remark on the fact that combining analyses can not only be more efficient, but lead to better results than running the ....
A. Kelly, A. Macdonald, K. Marriott, H. Sndergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In U. Montanari and F. Rossi, editors, Principles and Practice of Constraint Programming---CP'95, Lecture Notes in Computer Science 976, pages 222--239. Springer-Verlag, 1995.
....asymptotic) speedups for CLP( Lin ) programs. Much research has been devoted to abstract interpretation of CLP( Lin ) e.g. 6, 7, 14, 16, 19] but almost no experimental results have appeared to quantify the possible benefits. The only exception we are aware of is the system described in [10] but no reordering or constraint removal is performed in the system. As we show in this paper, reordering is probably the most fundamental optimization. The rest of the paper is organized as follows. Section 2 gives a brief overview of CLP( Lin ) Section 3 gives an overview of the optimizations ....
....is to instantiate the generic domain Pat( 2] with the domains handling linear constraints. Pat( automatically upgrades a domain with structural information. Third, the present source to source optimizations 14 can be combined with lower level optimizations such as dead variable elimination [10]. Finally, we would like to explore various tradeoffs in the compiler organization and the optimizations. Acknowledgments Special thanks to Baudouin Le Charlier for his numerous contributions to this research. Many of the abstract interpretation tools used in the work have in fact been developed ....
A.D. Kelly, A. MacDonald, K. Marriott, H. Sondergaard, P. Stuckey, and R. Yap. An Optimizing Compiler for CLP(!). In First International Conference on Principles and Practice of Constraint Programming (CP'95), Cassis, France, September 1995. Springer Verlag.
.... 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 certain conditions are specialized, thus obtaining more ecient programs. However, the method is not ....
....method in the context of standard analyzers. Also, to the best of our knowledge, the rst integration of multiple specialization in a compiler and its experimental evaluation was reported by us in [51] More recently, an implementation of multiple specialization has also been reported in [34, 35], applied to CLP(R) Such multiple specialization framework is simpler than the one we present or that of [61] in that the resulting programs may not be of maximal optimization, i.e. given the existing analysis information and a class of optimizations to be performed, it is possible to build ....
[Article contains additional citation context not shown here]
A. Kelly, A. Macdonald, K. Marriott, H. Sondergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In Proceedings of the Conference on Constraint Programming CP'95. LNCS, Springer-Verlag, 1995.
....constraints instead of an internal one. This is possible within our framework because the translation has enabled us to post all the linear constraints at the root of the search tree: the search is now reduced to the labelling (or alternatively domain splitting) of integer variables. Unlike CLP(R) [10], therefore, we do not require a linear constraint solver that can handled the incremental posting of constraints. In section 5, we report on five sets of experiments we have carried out using the combined solver. These experiments show that the combination offers genuine practical advantages ....
A. D. Kelly, A. Macdonald, K. Mariott, H. Sondergaard, P. J. Stuckey, R. H. C. Yap. An Optimizing Compiler for CLP(R). In Proceedings of the First International Conference on Principles and Practice of Constraint Programming, Cassis, 1995.
....solving algorithm in general. The core CLAM [18] uses four instructions to compile the linear equation solver. The high instruction level does not permit the easy incorporation of optimizations and it is necessary to add special instructions to support optimizations resulting from global analysis [19]. In Section 2 we present the linear equation solving algorithm. Sections 3, 4 and 5 describe the decomposition of the algorithm towards native code and Section 6 describes the RISC abstract machine. In Section 7 we present some preliminary measurements which show the impact of abstract ....
....(whether a variable is parametric or not) and information on variable dependencies. Interesting research directions are the combination of our research with the one recently reported in [5] on different linear equation solvers and the application of the global analysis optimizations described in [19] on our native code compiler. A long term research objective is the application of the same decomposition methodology on other constraint solving algorithms too. Finally, a main issue towards the native code compilation is the design of an interface which permits the easy incorporation of the low ....
A. D. Kelly, A. Macdonald, K. Marriott, H. Sndergaard, P. J. Stuckey, and R. H. Yap. An Optimizing Compiler for CLP(R). In U. Montanari and F. Rossi, editors, Principles and Practice of Constraint Programming - CP95, pages 222--239, Cassis, France, 1995. Springer.
....can also be modelled in terms of information systems [104] which allows us to reason about the behaviour of constraint programs at an abstract level. One application of such abstract reasoning, abstract interpretation, is already paying dividends in the global optimisation of constraint programs [74]. However the focus of this paper is on the success of constraints in building practical software solutions to end user problems. We shall examine these successes in the next three sections, corresponding to the three features of constraint programming listed above. Modelling One major ....
A.D. Kelly, A. Macdonald, K. Marriott, H. Sondergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In Montanari and Rossi
....handling [68, 24] On the other hand constraints fit hand in glove with declarative host programming languages. Three of the most influential constraint programming languages were embedded in Prolog (Prolog III [23] CLP(R) 70] and CHIP [32] Whilst all three system are still developing further ([119, 73, 111]) there are many new constraint programming systems emerging (eg [22, 38, 63, 124, 4] From a theoretical point of view the extension of logic programming to Constraint Logic Programming (CLP) has been very fruitful: for example ALPS [85] a form of logic programming with guards was an ....
Kelly, Macdonald, Marriott, Sondergaard, Stuckey, and Yap. An optimizing compiler for CLP(R). In U. Montanari and F. Rossi, editors, Proc. Principles and Practise of Constraints Programming, CP'95, pages 222-- 239. Springer Verlag, 1995.
No context found.
A. Kelly, A. Macdonald, K. Marriott, H. Sndergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In Proc of the First Int. Conf. on Principles and Practices of Constraint Programming, LNCS 976, Springer-Verlag, 222--239, 1995.
No context found.
A. Kelly, A. Macdonald, K. Marriott, H. Sndergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In Proc First Int. Conf. Principles and Practice of Constraint Programming, (Lecture Notes in Computer Science 976), pages 222--239. Springer-Verlag, 1995.
No context found.
A. Kelly, A. Macdonald, K. Marriott, H. Sondergaard, P. Stuckey, and R. Yap. An Optimizing Compiler for CLP(R). In Proc of the First Int. Conf. on Principles and Practices of Constraint Programming, LNCS 976, Springer-Verlag, 222--239, 1995.
.... CLP(R) Jaffar et al. 1992a; 1992b; Macdonald et al. 1993] and on preliminary studies of each of the optimizations considered here [Jaffar et al. 1992a; Jrgensen et al. 1991; Macdonald et al. 1993; Marriott and Stuckey 1993; Marriott et al. 1994] A preliminary version of these results appeared in Kelly et al. 1995,1996] The incremental analyzer has been outlined in Kelly et al. 1997] and has appeared in an application for the detection of occur checks in Prolog programs [Crnogorac et al. 1996] Our compiler is related to experimental compilers for Prolog, which also make use of global program analysis ....
Kelly, A., Macdonald, A., Marriott, K., Sondergaard, H., Stuckey, P., and Yap, R. 1995. An optimizing compiler for CLP(R). In Proceedings of the 1st International Conference on Principles and Practices of Constraint Programming. Lecture Notes in Computer Science, vol. 976. Springer-Verlag, Berlin, 222--239.
....engine, the solver, and the projection is defined. A general CLP system architecture for automatic elimination is developed. The closest related work is [17] which uses static program analysis to determine dead variables at compile time. A CLP(R) program analyzer and compiler is described in [15, 16] which provides dead variable removal as one optimization among others. The advantage of the program analysis approach is that no runtime overhead is imposed for dead variable detection. However, the effectiveness will depend on the accuracy of the analysis in finding opportunities for variable ....
A.D. Kelly, A.D. Macdonald, K. Marriott, H. Søndergaard, P.J. Stuckey, and R.H.C. Yap. An optimizing compiler for CLP(R). In First International Conference on Principles and Practice of Constraint Programming, pages 222--239, 1995.
....programming languages when performance is crucial. One promising approach to improving the performance of CLP systems is the use of powerful program optimizations to reduce the cost of constraint solving. Experience with such an approach to the compilation of CLP(R) was recently presented in [6]. CLP(R) is the prototypical constraint logic programming language which extends Prolog by incorporating real arithmetic constraints. The results described in [6] indicate that performing three optimizations bypass of the constraint solver, redundant variable elimination and flagging that a ....
....to reduce the cost of constraint solving. Experience with such an approach to the compilation of CLP(R) was recently presented in [6] CLP(R) is the prototypical constraint logic programming language which extends Prolog by incorporating real arithmetic constraints. The results described in [6] indicate that performing three optimizations bypass of the constraint solver, redundant variable elimination and flagging that a constraint cannot fail (nofail) can significantly improve the efficiency of the compiled CLP(R) code. The system also demonstrated the usefulness of multi variant ....
[Article contains additional citation context not shown here]
A. Kelly, A. Macdonald, K. Marriott, H. Søndergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In Proc of the First Int. Conf. on Principles and Practices of Constraint Programming, LNCS 976, SpringerVerlag, 222--239, 1995.
....analysis has proven very useful in compilation of logic programming languages. Several compilers have demonstrated that global program analysis can give large performance improvement for the sequential compilation of Prolog [13, 14] and give significant automatic parallelization [2] Recently, [6] have shown that global program analysis is also important for constraint logic programming (CLP) languages. Initial theoretical research in abstract interpretation of logic programs resulted in several generic frameworks for logic programming [1, 5, 9] These formal frameworks are quite ....
....actually required are computed. In such an implementation termination is guaranteed, provided the number of constraint descriptions with a particular domain of variables is finite. A number of generic abstract interpretation engines based on essentially the above semantic equations have been built [11, 7, 6]. The engines provide sophisticated fixpoint algorithms and data structures. A specific analyser is built by providing the seven parametric functions we have listed. 3 Imprecision of the Standard Semantics Unfortunately the standard semantics is inherently imprecise. Imagine that the program ....
A. Kelly, A. Macdonald, K. Marriott, H. Søndergaard, P. Stuckey and R. Yap. An optimizing compiler for CLP(R). Technical Report 94/5, Dept. of Computer Science, The University of Melbourne, 1995.
....logic programming languages. Several compilers have demonstrated that global program analysis can give large performance improvement for the sequential compilation of Prolog (see for example [21, 22] and significantly improve automatic parallelisation (see for example [2] Recently, Kelly et al. [14] have shown that global program analysis is also important for constraint logic programming (CLP) languages. Initial theoretical research in abstract interpretation of logic programs has resulted in several generic frameworks for logic programming. These formal frameworks are very similar, and ....
....is guaranteed, provided the number of constraint descriptions with a particular domain of variables is finite and the calls are treated modulo variable renaming. A number of generic abstract interpretation engines based on essentially the above semantic equations have been built, for example [19, 15, 14]. The engines provide sophisticated fixpoint algorithms and data structures. Specific analyses are obtained by defining a description domain D and providing the seven parametric functions over D. The following specialisation of the general semantics captures the usual theoretical viewpoint of ....
Kelly, A., Macdonald, A., Marriott, K., Søndergaard, H., Stuckey, P., and Yap, R., An Optimizing Compiler for CLP(R), in: U. Montanari and F. Rossi (eds.), Principles and Practice of Constraint Programming---CP'95 (Lecture Notes in Computer Science 976), pp. 222--239, Springer-Verlag, 1995.
....approach. It uses a more sophisticated groundness analysis than was proposed by S ndergaard [19] Here we have been helped by the availability of state of the art technology for groundness and sharing analysis as used in the latest compilers for (constraint) logic programming languages [12]. ffl We compare the three methods with respect to precision and efficiency. We have tested them on the (standard) set of benchmark programs also used by Chadha and Plaisted. Apt and Pellegrini s method had only been tested on small programs so far. All methods have been implemented in C on ....
....which means it can efficiently handle program transformations including clause splitting (see Example 4.4) The algorithm also depends on programs being normalised, as this greatly simplifies the fixpoint algorithm. The analyser has also been used in the optimising compilation of CLP(R) programs [12]. The analyser takes a program, initial annotation and a query, and returns the resulting annotated program. The annotated program has descriptions about the P os and Asub information at any program point. The analysis finishes when a fixpoint is found, that is, when all annotations are stable. ....
A. Kelly, A. Macdonald, K. Marriott, H. Søndergaard, P. Stuckey, and R. Yap. An optimizing compiler for CLP(R). In U. Montanari and F. Rossi, editors, Principles and Practice of Constraint Programming---CP'95, Lecture Notes in Computer Science 976, pages 222--239. Springer-Verlag, 1995.
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