[Bug fortran/31593] Invariant DO loop variables and subroutines
jv244 at cam dot ac dot uk
gcc-bugzilla@gcc.gnu.org
Sat Aug 15 07:53:00 GMT 2009
------- Comment #28 from jv244 at cam dot ac dot uk 2009-08-15 07:53 -------
(In reply to comment #23)
> subroutine output(i1,i2,i3,i4,i5)
> print '(5(I0,:" "))',i1,i2,i3,i4,i5
> end subroutine output
[..]
> if (p1 * p2 * p3 * p4 == value * 1000000) &
> & call output(value,p1,p2,p3,p4)
[..]
> if (p1 * p2 * p3 * p4 == value * 1000000) &
> & call output((value),(p1),(p2),(p3),(p4))
> still produces much better code.
obviously this optimization is only allowed if the arguments of 'output' would
be explicitly declared intent in (or the compiler nows this, e.g. because it is
an intrinsic or e.g. a write statement).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31593
More information about the Gcc-bugs
mailing list