The geometrical model is a powerful tool for program analysis and optimization and forms the basis on which we build the two parts of this dissertation, a methodology for incremental loop transformations and an efficient enumeration technique for parametric integer sets. Power consumption for typical embedded multi-media applications is dominated by the storage of and the access to the large multi-dimensional arrays they manipulate. It is now well known that a design methodology for reducing power consumption and improving system performance should apply global loop transformations for increasing locality and regularity of data accesses. In the first part of this dissertation, we propose a two-step global loop transformation approach consisting of a linear transformation focusing mainly on regularity, and a translation focusing on locality. We further develop a refined regularity criterion and show how to perform the translation step incrementally, allowing multiple complicated cost functions to be evaluated. Many compiler optimization techniques depend on the enumeration of parametric integer sets defined by linear equations. In the second part of this dissertation, we present the first implementation of Barvinok's algorithm applied to the enumeration of parametric polytopes, extending an earlier implementation of this algorithm for a subclass of the enumeration problems we consider, and providing a significant improvement over another implementation based on a different technique. The resulting enumerator may be obtained as an explicit function or as a generating function. We further show that these two representations are polynomially interconvertible and we discuss some approaches for handling generalized enumeration problems.