The CR# Algebra and its Application in Loop Analysis and Optimization

Robert A. van Engelen · 2004

This report presents a novel family of linear-time algorithms for loop analysis based on the CR# (CR-sharp) algebra, which is a new nontrivial extension of the Chains of Recurrences (CR) algebra. Conventional compiler methods apply induction variable substitution and array recovery translations to construct closed forms for induction variables and pointers prior to dependence testing and loop optimization. In this report we take a radically different approach to symbolic analysis by turning the problem up-sidedown. We convert closed forms to recurrences and compute recurrence relations for (non)linear induction variables and conditionally updated variables and pointers. The recurrence forms are used to solve a larger class of loop analysis problems such as nonlinear array dependence testing without requiring a-priori code translations.

Read the paper · More papers on PaperTik