Code generation for partially vectorizable loops in the vectorizing Pascal-XT compiler
Automatic vectorization of loops by investigation of data access dependences is known from literature. But the algorithms almost only describe the vectorization of fully vectorizable loops. A loop is judged to be nonvectorizable, if some data access dependences form a cycle. However, practical programs often contain loops with cyclic data access dependences where not all variables are included in the cyclic dependence. If cyclic dependences can be isolated, variables not encountered in the cyclic dependence are vectorizable. Thus, in vectorizing compilers not only full loop vectorization but also partial vectorization should be done. Here, the code generation for partially vectorizable loops is described for the vectorizing Pascal-XT compiler. The effect is compared to the vectorizing Fortran compilers of CDC, Cray and Fujitsu.
Key wordsAutomatic vectorization dependence partial vectorization Pascal-XT
Unable to display preview. Download preview PDF.
- Vector Processor System. Siemens System 7.800 — System Description. Order no. U1889-J-Z62-2-7600 (1985).Google Scholar
- Pascal-XT(BS2000/SINIX), Brief Description. Siemens. Order no. U2491-J-Z52-1-7600 (1985).Google Scholar
- K.-C. Li: A Note on the Vector C Language. ACM SIGPLAN Notices 21 1(1986), 49–57.Google Scholar
- H. Ehlich: PASCALV — Der PASCAL Compiler für den Vektorrechner CYBER205. Bochumer Schriften zur Parallelen Datenverarbeitung 5. RZ Ruhr Universität Bochum (1984).Google Scholar
- S. Kamiya, F. Isobe, H. Takashima, M. Takiuchi: Practical Vectorization Techniques for the “FACOM VP”. Information Processing 83, R. Mason (ed.), Elsevier Science Publishers B. V. (North-Holland).Google Scholar