------- 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