Efficient Symbolic Analysis for Parallelizing Compilers and Performance Estimators
Symbolic analysis is of paramount importance for parallelizing compilers and performance estimators to examine symbolic expressions with program unknowns such as number of processors and array dimension sizes and to solve queries based on systems of constraints (equalities and inequalities). This paper describes techniques for counting the number of solutions to a system of constraints, simplifying systems of constraints, computing lower and upper bounds of symbolic expressions, and determining the relationship between symbolic expressions. All techniques target wide classes of linear and non-linear symbolic expressions and systems of constraints. Our techniques have been implemented and are used as part of parallelizing compiler and a performance estimator for data dependence analysis, detecting zero-trip-loops, dead code elimination, communication optimization, and estimation of work distribution for parallel programs. Various examples and experiments demonstrate the effectiveness of our symbolic analysis techniques.
Top- Fahringer, T.
Category |
Technical Report (Technical Report) |
Divisions |
Scientific Computing |
Publisher |
Institute for Software Technology and Parallel Systems, University of Vienna |
Date |
October 1997 |
Official URL |
http://www.par.univie.ac.at/publications/download/... |
Export |