Commit cf352092 by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/77665 (ICE in expand_GOMP_SIMD_VF, at internal-fn.c:172)

	PR fortran/77665
	* tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
	for all IFN_GOMP_SIMD_* internal fns, not just for
	IFN_GOMP_SIMD_ORDERED_*.

	* gfortran.dg/gomp/pr77665.f90: New test.

From-SVN: r240348
parent 8a4c4f12
2016-09-22 Jakub Jelinek <jakub@redhat.com>
PR fortran/77665
* tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
for all IFN_GOMP_SIMD_* internal fns, not just for
IFN_GOMP_SIMD_ORDERED_*.
2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/77670
......
2016-09-22 Jakub Jelinek <jakub@redhat.com>
PR fortran/77665
* gfortran.dg/gomp/pr77665.f90: New test.
2016-09-22 Paul Thomas <pault@gcc.gnu.org>
* gfortran.dg/dtio_11.f90: Correct for changed error messages.
......
! PR fortran/77665
! { dg-do compile }
! { dg-additional-options "-O2" }
program pr77665
type t
integer :: a = 0
end type
type(t) :: x
integer :: i
!$omp declare reduction (+:t: omp_out%a = omp_out%a + omp_in%a)
!$omp simd reduction(+:x)
do i = 1, 8
if (abs(i) < 5) call abort
x%a = x%a + 1
end do
print *, x%a
end
......@@ -1644,11 +1644,19 @@ remap_gimple_stmt (gimple *stmt, copy_body_data *id)
gimple_call_set_tail (call_stmt, false);
if (gimple_call_from_thunk_p (call_stmt))
gimple_call_set_from_thunk (call_stmt, false);
if (gimple_call_internal_p (call_stmt)
&& IN_RANGE (gimple_call_internal_fn (call_stmt),
IFN_GOMP_SIMD_ORDERED_START,
IFN_GOMP_SIMD_ORDERED_END))
DECL_STRUCT_FUNCTION (id->dst_fn)->has_simduid_loops = true;
if (gimple_call_internal_p (call_stmt))
switch (gimple_call_internal_fn (call_stmt))
{
case IFN_GOMP_SIMD_LANE:
case IFN_GOMP_SIMD_VF:
case IFN_GOMP_SIMD_LAST_LANE:
case IFN_GOMP_SIMD_ORDERED_START:
case IFN_GOMP_SIMD_ORDERED_END:
DECL_STRUCT_FUNCTION (id->dst_fn)->has_simduid_loops = true;
break;
default:
break;
}
}
/* Remap the region numbers for __builtin_eh_{pointer,filter},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment