Polly/isl workshop location:Zuerich date:19 December 2014
iscc is an interactive tool for manipulating special kinds of
sets of integer tuples and binary relations over such sets.
In particular, all constraints in the descriptions of the sets
and relations have to be affine (linear + constant), but may
involve parameters and existentially quantified variables.
A distinguishing feature of iscc is that it provides a
cardinality operation on sets and relations that computes
a symbolic expression (in terms of the parameters and domain
variables) for the number of elements in the set or the image of
the relation. These expressions are piecewise quasipolynomials,
which can be further manipulated in iscc. Besides basic
operations on sets and piecewise quasipolynomials, iscc
also provides an interface to code generation, lexicographic
optimization, dependence analysis, transitive closures and
the symbolic computation of upper bounds and sums of piecewise
quasipolynomials over their domains.
This tutorial does not involve any theory, but instead
introduces some concepts and operations through examples.
These operations are then combined to solve a small number
of non-trivial problems. All examples are inspired by the
polyhedral model for program analysis and transformation.
No prior knowledge of this model is required. As most of the
operations supported by iscc take abstract integer sets or
related objects as input, they should also be useful outside