V-cal: a calculus for the compilation of data parallel languages [chapter]

P. F. G. Dechering, J. P. M. de Vreught, J. A. Trescher, H. J. Sips
1996 Lecture Notes in Computer Science  
V-cal is a calculus designed to support the compilation of data parallel languages that allows to describe program transformations and optimizations as semantics preserving rewrite rules. In V-cal the program transformation and optimization phase of a compiler is organized in three independent passes: in the rst pass a set of rewrite rules are applied that attempt to identify the potential parallelism of an algorithm. In the second pass program parts amenable to parallelization or algorithm
more » ... titution are replaced by their semantically equivalent parallel counterparts. Finally, a set of rules are applied that map the parallelized program to the target architecture in a way that makes e cient use of the given resources. Data parallel languages provide a programming model that abstracts from parallelism, communication, and synchronization. To b e a b l e t o e xpress optimizing transformations in V-cal parallelism, communication, and synchronization are made explicit by the means of dedicated operators that represent these concepts in a machine independent way. In this paper we describe the operators and transformation rules that allow to implement the rst two passes of a V-cal engine. We s h o w that our approach leads to a exible compiler design that allows to experiment with di erent optimization strategies and heuristics.
doi:10.1007/bfb0014195 fatcat:rin64o6ujrdqjhvog5kok22w3m