------- Additional Comments From pinskia at gcc dot gnu dot org 2005-03-04
03:41 -------
Here is a testcase which we semi optimize on the RTL level but not at the tree
level:
sum cannot alias a or b at all because of the default option for gfortran.
subroutine dot_product (sum, a, b, n)
real*8 a(n), b(n), sum
sum = 0
do i = 1, n
sum = sum + a (i) * b(i)
end do
end
The reason why I say semi is because there is an extra fmr (PPC):
The loop looks like:
L4:
lfd f13,0(r4)
addi r4,r4,8
lfd f0,0(r5)
addi r5,r5,8
fmadd f0,f13,f0,f12
fmr f12,f0
bdnz L4
If we had optimizate it at the tree level it would look like:
L4:
lfd f13,0(r4)
addi r4,r4,8
lfd f0,0(r5)
addi r5,r5,8
fmadd f12,f13,f0,f12
bdnz L4
Note how we don't have the extra fmr.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17064