Xref: utzoo comp.lang.c:19986 comp.unix.cray:12 Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!wasatch!cdr.utah.edu!moore From: moore%cdr.utah.edu@wasatch.utah.edu (Tim Moore) Newsgroups: comp.lang.c,comp.unix.cray Subject: Re: Vectorizing C compilers Message-ID: <2205@wasatch.utah.edu> Date: 18 Jul 89 17:18:35 GMT References: <15388@ut-emx.UUCP> Sender: news@wasatch.utah.edu Organization: University of Utah CS Dept Lines: 35 In article <15388@ut-emx.UUCP> eric@chaos.utexas.edu () writes: } }What is the state of the art regarding vectorizing C compilers }for Crays and other "minisuper" machines like Alliant, Convex, etc.? A good reference is: Allen, R., Johnson, S., "Compiling C for Vectorization, Parallelization, and Inline Expansion", Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, Atlanta, Georgia, June 22-24, 1988. It describes the technology used in Ardent Computer's vectorizing C compiler. }I have seen one or two C compilers (on a Unicos Cray) that vectorize }loops like } } for(j = 0; j < n; j++) } y[j] = x[j] + z[j]; } }but never a C compiler that can vectorize something like } } for(j = 0; j < n; j++) } y[j] = sqrt(x[j]); } }even where a suitable Fortran mathematical library is available. I believe Ardent's compiler would vectorize the second example. It does large amounts of inlining, and then vectorizes the resulting code. }--Eric Kostelich Tim Moore moore@cs.utah.edu {ut-sally,hplabs}!utah-cs!moore "Ah, youth. Ah, statute of limitations." -John Waters