next up previous
Next: Counting Solutions to Up: Application of The Previous: Run-time checks and

Eliminate false dependence

Array data dependence analysis methods generate false dependences that can prevent useful program transformations. For example, there is a flow dependence from an array access to an array access if and only if (1) A is executed with iteration vector I, (2) B is executed with iteration vector J, (3) writes to the same location as is read by , (4) is executed before and (5) there is no write to the location read by between the execution of and . Most array data dependence algorithms ignore the last criterion. While ignoring this criterion does not change the total order imposed by dependences, it does cause flow dependence to become contained with output dependences. In order to make effective use of caches or distributed memories, a compiler must have accurate information about the flow of information in a program. These false dependence can be eliminated by formulating them by using presburger formulas. The paper [2] describe the how to extend the Omega test so that it can answer these queries and allow to eliminate these false data dependences.


Generated by latex2html-95.1
Fri Jul 12 14:53:37 EDT 1996