------- Comment #9 from dominiq at lps dot ens dot fr 2010-08-02 14:36 ------- > Well, with an array descriptor it one only changes the strides/bounds ...
>From polyhedron test induct.f90 [macbook] lin/test% gfc -Warray-temporaries induct.f90 induct.f90:1629.20: rotate_quad = transpose(rotate_quad) 1 Warning: Creating array temporary at (1) induct.f90:1741.20: rotate_quad = transpose(rotate_quad) 1 Warning: Creating array temporary at (1) induct.f90:2016.20: rotate_quad = transpose(rotate_quad) 1 Warning: Creating array temporary at (1) induct.f90:2159.20: rotate_quad = transpose(rotate_quad) 1 Warning: Creating array temporary at (1) induct.f90:2509.24: rotate1 = transpose(rotate1) 1 Warning: Creating array temporary at (1) induct.f90:2560.24: rotate2 = transpose(rotate2) 1 Warning: Creating array temporary at (1) induct.f90:2702.24: rotate2 = transpose(rotate2) 1 Warning: Creating array temporary at (1) induct.f90:2845.24: rotate1 = transpose(rotate1) 1 Warning: Creating array temporary at (1) induct.f90:2896.24: rotate2 = transpose(rotate2) 1 Warning: Creating array temporary at (1) induct.f90:3038.24: rotate2 = transpose(rotate2) 1 Warning: Creating array temporary at (1) The same trick can probably used for RESHAPE, from capacita.f90 ... Warning: Creating array temporary at (1) capacita.f90:137.30: maxval(abs( reshape(Ar1,(/Ng1,Ng2/)) - Y )) 1 Warning: Creating array temporary at (1) capacita.f90:137.30: maxval(abs( reshape(Ar1,(/Ng1,Ng2/)) - Y )) 1 Warning: Creating array temporary at (1) capacita.f90:137.18: maxval(abs( reshape(Ar1,(/Ng1,Ng2/)) - Y )) 1 Warning: Creating array temporary at (1) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45159