This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gomp4, committed] Handle ptr iterator in acc loop


Hi,

this patch ensures that the &b[0][0][0] initializer of the acc loop in the testcase is properly compiled.

Committed to gomp-4_0-branch.

Thanks,
- Tom
Handle ptr iterator in acc loop

2015-12-09  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_for_generic): Gimplify seq_loop loop start and
	limit.

	* c-c++-common/goacc/kernels-loop-acc-loop-ptr-it.c: New test.

---
 gcc/omp-low.c                                              |  5 +++++
 .../c-c++-common/goacc/kernels-loop-acc-loop-ptr-it.c      | 14 ++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 9ef7161..b8399ae 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -8522,6 +8522,11 @@ expand_omp_for_generic (struct omp_region *region,
       tree n1 = fold_convert (fd->iter_type, fd->loop.n1);
       tree n2 = fold_convert (fd->iter_type, fd->loop.n2);
 
+      n1 = force_gimple_operand_gsi_1 (&gsi, n1, is_gimple_reg, NULL_TREE, true,
+				       GSI_SAME_STMT);
+      n2 = force_gimple_operand_gsi_1 (&gsi, n2, is_gimple_reg, NULL_TREE, true,
+				       GSI_SAME_STMT);
+
       assign_stmt = gimple_build_assign (istart0, n1);
       gsi_insert_before (&gsi, assign_stmt, GSI_SAME_STMT);
 
diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-loop-acc-loop-ptr-it.c b/gcc/testsuite/c-c++-common/goacc/kernels-loop-acc-loop-ptr-it.c
new file mode 100644
index 0000000..d806a01
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-loop-acc-loop-ptr-it.c
@@ -0,0 +1,14 @@
+float b[10][15][10];
+
+void
+foo (void)
+{
+  float *i;
+
+#pragma acc kernels
+  {
+#pragma acc loop
+    for (i = &b[0][0][0]; i < &b[0][0][10]; i++)
+      ;
+  }
+}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]