Abstract
In compiler research, polytopes and related mathematical objects have been successfully used for several decades to represent and manipulate computer programs in an approach that has become known as the polyhedral model. The key insight is that the kernels of many compute-intensive applications are composed of loops with bounds that are affine combinations of symbolic constants and outer loop iterators. The iterations of a loop nest can then be represented as the integer points in a (parametric) polytope and manipulated as a whole, rather than as individual iterations. A similar reasoning holds for the elements of an array and for mappings between loop iterations and array elements.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Bagnara, R., Ricci, E., Zaffanella, E., Hill, P.M.: Possibly not closed convex polyhedra and the Parma Polyhedra Library. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol. 2477, pp. 213–229. Springer, Heidelberg (2002)
Bagnara, R., Hill, P., Zaffanella, E.: Exact join detection for convex polyhedra and other numerical abstractions. Comput. Geom. Theory Appl. 43(5), 453–473 (2010)
Bastoul, C.: Code generation in the polyhedral model is easier than you think. In: PACT 2004, pp. 7–16. IEEE Computer Society, Los Alamitos (2004)
Bauer, C., Frink, A., Kreckel, R.: Introduction to the GiNaC framework for symbolic computation within the C++ programming language. J. Symb. Comput. 33(1), 1–12 (2002)
Beletska, A., Barthou, D., Bielecki, W., Cohen, A.: Computing the transitive closure of a union of affine integer tuple relations. In: COCOA 2009, pp. 98–109. Springer, Heidelberg (2009)
Bemporad, A., Fukuda, K., Torrisi, F.D.: Convexity recognition of the union of polyhedra. Comput. Geom. 18(3), 141–154 (2001)
Chen, C.: Omega+ library (2009), http://www.cs.utah.edu/~chunchen/omega/
Clauss, P., Fernandez, F.J., Gabervetsky, D., Verdoolaege, S.: Symbolic polynomial maximization over convex sets and its application to memory requirement estimation. IEEE Transactions on VLSI Systems 17(8), 983–996 (2009)
Cook, W., Rutherford, T., Scarf, H.E., Shallcross, D.F.: An implementation of the generalized basis reduction algorithm for integer programming. Cowles Foundation Discussion Papers 990, Cowles Foundation, Yale University (August 1991)
Detlefs, D., Nelson, G., Saxe, J.B.: Simplify: a theorem prover for program checking. J. ACM 52(3), 365–473 (2005)
Feautrier, P.: Parametric integer programming. Operationnelle/Operations Research 22(3), 243–268 (1988)
Feautrier, P.: Dataflow analysis of array and scalar references. International Journal of Parallel Programming 20(1), 23–53 (1991)
Free Software Foundation, Inc.: GMP, available from ftp://ftp.gnu.org/gnu/gmp
Fukuda, K., Liebling, T.M., Lütolf, C.: Extended convex hull. In: Proceedings of the 12th Canadian Conference on Computational Geometry, pp. 57–63 (2000)
Karr, M.: Affine relationships among variables of a program. Acta Informatica 6, 133–151 (1976)
Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., Wonnacott, D.: The Omega library. Tech. rep., University of Maryland (November 1996)
Kelly, W., Pugh, W., Rosser, E., Shpeisman, T.: Transitive closure of infinite graphs and its applications. Int. J. Parallel Program. 24(6), 579–598 (1996)
Loechner, V.: PolyLib: A library for manipulating parameterized polyhedra. Tech. rep., ICPS, Université Louis Pasteur de Strasbourg, France (March 1999)
Loechner, V., Wilde, D.K.: Parameterized polyhedra and their vertices. International Journal of Parallel Programming 25(6), 525–549 (1997)
Pugh, W.: The Omega test: a fast and practical integer programming algorithm for dependence analysis. Communications of the ACM 8, 102–114 (1992)
Rambau, J.: TOPCOM: Triangulations of point configurations and oriented matroids. In: Cohen, A.M., Gao, X.S., Takayama, N. (eds.) ICMS 2002, pp. 330–340 (2002)
Verdoolaege, S., Janssens, G., Bruynooghe, M.: Equivalence checking of static affine programs using widening to handle recurrences. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 599–613. Springer, Heidelberg (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Verdoolaege, S. (2010). isl: An Integer Set Library for the Polyhedral Model. In: Fukuda, K., Hoeven, J.v.d., Joswig, M., Takayama, N. (eds) Mathematical Software – ICMS 2010. ICMS 2010. Lecture Notes in Computer Science, vol 6327. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15582-6_49
Download citation
DOI: https://doi.org/10.1007/978-3-642-15582-6_49
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15581-9
Online ISBN: 978-3-642-15582-6
eBook Packages: Computer ScienceComputer Science (R0)