re PR middle-end/42180 (compiling induct.f90 with -ffast-math -O2 -fgraphite-identity ICEs gfortran)

Fix PR42180.

2009-12-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42180
	* graphite-sese-to-poly.c (split_reduction_stmt): Do not split blocks
	that contain only one statement.

From-SVN: r155422
This commit is contained in:
Sebastian Pop 2009-12-23 07:50:53 +00:00 committed by Sebastian Pop
parent ce20f9d674
commit b147df0bcf
3 changed files with 29 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2009-12-18 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/42180
* graphite-sese-to-poly.c (split_reduction_stmt): Do not split blocks
that contain only one statement.
2009-12-17 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/42393

View File

@ -2450,6 +2450,9 @@ split_reduction_stmt (gimple stmt)
split_block (bb, stmt);
if (gsi_one_before_end_p (gsi_start_bb (bb)))
return bb;
gsi = gsi_last_bb (bb);
gsi_prev (&gsi);
e = split_block (bb, gsi_stmt (gsi));

View File

@ -0,0 +1,20 @@
module mcc_m
integer, parameter, private :: longreal = selected_real_kind(15,90)
contains
subroutine mutual_ind_cir_cir_coils (m, l12)
real (kind = longreal), intent(out) :: l12
real (kind = longreal), dimension(1:9), save :: zw
gauss:do i = 1, 9
theta_l12 = 0.0_longreal
theta1: do n1 = 1, 2*m
theta_1 = pi*real(n1,longreal)/real(m,longreal)
theta2: do n2 = 1, 2*m
numerator = -sin(theta_1)*tvx + cos(theta_1)*tvy
theta_l12 = theta_l12 + numerator/denominator
end do theta2
end do theta1
l12 = l12 + zw(i)*theta_l12
end do gauss
l12 = coefficient * l12
end subroutine mutual_ind_cir_cir_coils
end module mcc_m