On Tue, Aug 4, 2015 at 4:04 PM, Ajit Kumar Agarwal <ajit.kumar.agar...@xilinx.com> wrote: > > All: > > For the Loop given in Fig(1), there is no possibility of loop distribution > because of the dependency of S1 and S2 on the outerloop index k. > Due to the dependency the Loop cannot be distributed. > > The Loop can be distributed with the transformation given in Fig(2) where the > loop given in Fig(1) is distributed due to the dependency > Hoisting transformation. The Dependency hoisting transformation where the > dependency is shifted to insertion of new outer Loop and the > Dependency is based on the inserted outerloop. This makes the loop k(S1) and > j(S2) distributed with the insertion of new outerloop and transfer > The dependency of S1 and S2 to the inserted outer loop. > > Do k = 1, n-1 > Do I = k+1, n > > S1: a(I,k) = a(I,k)/a(k,k) > > Enddo > Do j = k+1,n > Do I = k+1,n > S2: a(I,j) = a(I,j) - a(I,k) *a(k,j); > Enddo > Enddo > Enddo > > Fig(1) > > Do x = 1, n > Do k = 1, x-1 > Do I = k+1, n > > S2: a(I,x) = a(I,x) - a(I,k) * a(k,x) > > Enddo > enddo > Do i = x+1,n > S1: a(I,x) = a(I,x)/a(x,x); > Enddo > Enddo > > Fig(2). > > The above transformation looks interesting making the candidate of loop > distribution of nested loops with the presence of dependency by > Shifting the dependency to new inserted outer loop. > > It is useful to have dependency hoisting transformation that makes the loop > distribution possible for nested loops > > My question is the partitioning based Loop distributed transformation does > the distribution of the nested Loops?
No, the patch implementing it (https://gcc.gnu.org/ml/gcc-patches/2013-09/msg01293.html - maybe that wasn't the latest version) was never applied. Richard. > Thanks & Regards > Ajit > > > > >