Vectorization beyond data dependences

Data dependence between statements have long been used for detecting parallelism and converting sequential programs into parallel forms. Almost all existing automatic parallelization and vectorization schemes are based on enforcing original data dependence detected in programs. In this paper, we extend the traditional vectorization algorithm to reverse some data dependence involved in multiple-statement reductions for more parallelism. The extended algorithm can vectorize multiple-statement reductions in programs and generate more and thicker vector statements than the traditional algorithm. This extended algorithm can be used to enhance all existing vectorizing compilers for supercomput ers.