[Polly] Isl AST reduction pragmas [V2]

Tobias Grosser tobias at grosser.es
Thu Jun 19 09:36:56 PDT 2014


On 19/06/2014 18:17, Johannes Doerfert wrote:
> I think we are getting somewhere (as we are only discussing this one detail), but I'm still not sure where I'm wrong.
>
>>> The dependences for the first program are:
>>>
>>> {S[i] -> S[i+1]}
>>>
>>> The dependences for the second program are the same, but the schedule is modified to:
>>>
>>> {S1[i] -> [0, i]: i % 2 = 0; S1[i] -> [1, i]: i % 2 = 1}
>
> Isn't there still the transitive reduction dependency S[i] --t--> S[i+2] in the same direction as the scheduling dimensions?
> If so,  why wouldn't the parallelism test not say "parallel" but "reduction parallel".
> If not, please explain why we don't have forward dependences of length 2 here?

isl by default removes dependences that are implied transitively by 
other dependences. This is e.g. useful if you want perform dead code 
elimination by following dependences backwards. If we would keep 
transitive dependences, such dependences may lead to statement instances 
which only compute data that is overwritten without ever being read.

Cheers,
Tobias




More information about the llvm-commits mailing list