2017-05-30 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
+ 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.
+
2016-09-20 Jakub Jelinek <jakub@redhat.com>
PR middle-end/77624
2017-05-30 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
+ 2016-09-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/77665
+ * gfortran.dg/gomp/pr77665.f90: New test.
+
2016-09-20 Jakub Jelinek <jakub@redhat.com>
PR c++/77637
--- /dev/null
+! 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
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))
+ switch (gimple_call_internal_fn (call_stmt))
+ {
+ case IFN_GOMP_SIMD_LANE:
+ case IFN_GOMP_SIMD_VF:
+ case IFN_GOMP_SIMD_LAST_LANE:
+ DECL_STRUCT_FUNCTION (id->dst_fn)->has_simduid_loops = true;
+ break;
+ default:
+ break;
+ }
}
/* Remap the region numbers for __builtin_eh_{pointer,filter},