[Bug fortran/44773] [4.6 Regression] Unnecessary temporaries increase the runtime for channel.f90 by ~70%
tkoenig at netcologne dot de
gcc-bugzilla@gcc.gnu.org
Thu Jul 8 19:56:00 GMT 2010
------- Comment #13 from tkoenig at netcologne dot de 2010-07-08 19:55 -------
Subject: Re: [4.6 Regression] Unnecessary temporaries
increase the runtime for channel.f90 by ~70%
Hello Paul,
> That is the context - apply it and see.
What about
module baz
implicit none
contains
subroutine bar(x)
real, dimension(:,:,:) :: x
x = 3.0
end subroutine bar
end module baz
program sw
use baz
implicit none
integer, parameter :: n = 4, m = 7, k = 5
real ,dimension(M,N):: f,dudx,dvdy,dhdx,dhdy
real, dimension(m,n,k) :: u
u = 1.0
dudx = ddx(u(:,:,2))
print *,dudx
contains
real function ddx(array)
real, dimension(:,:) :: array
call bar(u)
ddx = array(1,1)
end function ddx
end program sw
AFAICS, this is legal and would require a temporary.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44773
More information about the Gcc-bugs
mailing list