pr32512 - efficiency of RESHAPE and SPREAD
Tobias Schlüter
tobias.schlueter@physik.uni-muenchen.de
Mon Aug 13 20:58:00 GMT 2007
Paul Thomas wrote:
> Dear All,
>
> In contemplating this excellent suggestion from Jaroslav Hajek, I have
> run into an interesting puzzle.
>
> trans-array.c (gfc_conv_array_transpose) implements a transpose in which
> the operation is entirely performed inline and only acts on the
> descriptor. Jaroslav suggests that we do the same for reshape and spread.
>
> In investigating this, I found the rather wierd and wonderful property
> of gfortran; gfc_conv_array_transpose only works when it is the actual
> argument of something. If I lift this constraint, it still works fine.
>
> Does anybody know why this is so?
The original implementation of this feature (only modify the descriptor)
was intended for the special case MATMUL(TRANSPOSE(X),Y). It seems
nobody at the time thought that this optimization would work or be
beneficial outside these circumstances.
The original patch and its explanation can be found here:
<http://gcc.gnu.org/ml/fortran/2005-12/msg00113.html> and in the older
threads linked from there.
Cheers,
- Tobi
More information about the Fortran
mailing list