In this paper, we demonstrate that a polynomial-time algorithm can
produce accurate information about the presence of loop-carried array
dataflow. We first identify a subdomain of Presburger Arithmetic that
can be manipulated (by the Omega Library) in polynomial time; we then
describe a modification to prevent exponential blowup of the Omega
Library's algorithm for manipulating function symbols. Restricting
the Omega Test to these polynomial cases can, in principle, reduce the
accuracy of the dataflow information produced by the Omega Test. We
therefore present an investigation of the effects of our restrictions
on the analysis of loop-carried array dataflow dependences in
benchmark codes. The restriction to polynomial-time algorithms blocks
parallelization of only three unimportant loops in the approximately
18000 lines of benchmark code we studied.
Paper Available at:
ftp://dimacs.rutgers.edu/pub/dimacs/TechnicalReports/TechReports/2000/2000-38.ps.gz