* [gomp4, committed] Handle double reduction in oacc kernels pass group
@ 2015-07-28 9:10 Tom de Vries
2015-08-03 10:34 ` Thomas Schwinge
0 siblings, 1 reply; 2+ messages in thread
From: Tom de Vries @ 2015-07-28 9:10 UTC (permalink / raw)
To: gcc-patches, Jakub Jelinek
[-- Attachment #1: Type: text/plain, Size: 296 bytes --]
Hi,
this patch adds a test-case with a double reduction in an oacc kernels
region.
In order to get it in the proper shape for parloops to deal with, I
needed to repeat the pass_lim/pass_copy_prop sequence.
Bootstrapped and reg-tested on x86_64.
Committed to gomp-4_0-branch.
Thanks,
- Tom
[-- Attachment #2: 0005-Handle-double-reduction-in-oacc-kernels-pass-group.patch --]
[-- Type: text/x-patch, Size: 2509 bytes --]
Handle double reduction in oacc kernels pass group
2015-07-28 Tom de Vries <tom@codesourcery.com>
* passes.def: Repeat pass_lim and pass_copy_prop in oacc kernels pass
group.
* c-c++-common/goacc/kernels-double-reduction.c: New test.
---
gcc/passes.def | 2 ++
.../c-c++-common/goacc/kernels-double-reduction.c | 37 ++++++++++++++++++++++
2 files changed, 39 insertions(+)
create mode 100644 gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c
diff --git a/gcc/passes.def b/gcc/passes.def
index ae91ed1..e31e39f 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -96,6 +96,8 @@ along with GCC; see the file COPYING3. If not see
NEXT_PASS (pass_tree_loop_init);
NEXT_PASS (pass_lim);
NEXT_PASS (pass_copy_prop);
+ NEXT_PASS (pass_lim);
+ NEXT_PASS (pass_copy_prop);
NEXT_PASS (pass_scev_cprop);
NEXT_PASS (pass_parallelize_loops_oacc_kernels);
NEXT_PASS (pass_expand_omp_ssa);
diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c b/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c
new file mode 100644
index 0000000..81467a9
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-double-reduction.c
@@ -0,0 +1,37 @@
+/* { dg-additional-options "-O2" } */
+/* { dg-additional-options "-ftree-parallelize-loops=32" } */
+/* { dg-additional-options "-fdump-tree-parloops_oacc_kernels-all" } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
+
+#include <stdlib.h>
+
+#define N 500
+
+unsigned int a[N][N];
+
+void __attribute__((noinline,noclone))
+foo (void)
+{
+ int i, j;
+ unsigned int sum = 1;
+
+#pragma acc kernels copyin (a[0:N]) copy (sum)
+ {
+ for (i = 0; i < N; ++i)
+ for (j = 0; j < N; ++j)
+ sum += a[i][j];
+ }
+
+ if (sum != 5001)
+ abort ();
+}
+
+/* Check that only one loop is analyzed, and that it can be parallelized. */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops_oacc_kernels" } } */
+/* { dg-final { scan-tree-dump-not "FAILED:" "parloops_oacc_kernels" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops_oacc_kernels" } } */
+
+/* Check that the loop has been split off into a function. */
+/* { dg-final { scan-tree-dump-times "(?n);; Function .*foo.*._omp_fn.0" 1 "optimized" } } */
+
+/* { dg-final { scan-tree-dump-times "(?n)pragma omp target oacc_parallel.*num_gangs\\(32\\)" 1 "parloops_oacc_kernels" } } */
--
1.9.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [gomp4, committed] Handle double reduction in oacc kernels pass group
2015-07-28 9:10 [gomp4, committed] Handle double reduction in oacc kernels pass group Tom de Vries
@ 2015-08-03 10:34 ` Thomas Schwinge
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Schwinge @ 2015-08-03 10:34 UTC (permalink / raw)
To: Tom de Vries, gcc-patches; +Cc: Jakub Jelinek
[-- Attachment #1: Type: text/plain, Size: 24971 bytes --]
Hi!
On Tue, 28 Jul 2015 10:20:39 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
> this patch adds a test-case with a double reduction in an oacc kernels
> region.
>
> In order to get it in the proper shape for parloops to deal with, I
> needed to repeat the pass_lim/pass_copy_prop sequence.
>
> Bootstrapped and reg-tested on x86_64.
>
> Committed to gomp-4_0-branch.
Thanks!
> --- a/gcc/passes.def
> +++ b/gcc/passes.def
> @@ -96,6 +96,8 @@ along with GCC; see the file COPYING3. If not see
> NEXT_PASS (pass_tree_loop_init);
> NEXT_PASS (pass_lim);
> NEXT_PASS (pass_copy_prop);
> + NEXT_PASS (pass_lim);
> + NEXT_PASS (pass_copy_prop);
> NEXT_PASS (pass_scev_cprop);
> NEXT_PASS (pass_parallelize_loops_oacc_kernels);
> NEXT_PASS (pass_expand_omp_ssa);
Very much in line with the older r222283,
<http://news.gmane.org/find-root.php?message_id=%3C871tjd1ch2.fsf%40kepler.schwinge.homeip.net%3E>,
now committed to gomp-4_0-branch in r226494:
commit 3f2d750170034024232cf619f1ba6b703e37bc89
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon Aug 3 10:31:23 2015 +0000
Update testsuite for new pass_lim
... that got added in r226305.
gcc/testsuite/
* c-c++-common/restrict-2.c: Update for new pass_lim.
* c-c++-common/restrict-4.c: Same.
* g++.dg/tree-ssa/pr33615.C: Same.
* g++.dg/tree-ssa/restrict1.C: Same.
* gcc.dg/tm/pub-safety-1.c: Same.
* gcc.dg/tm/reg-promotion.c: Same.
* gcc.dg/tree-ssa/20050314-1.c: Same.
* gcc.dg/tree-ssa/loop-32.c: Same.
* gcc.dg/tree-ssa/loop-33.c: Same.
* gcc.dg/tree-ssa/loop-34.c: Same.
* gcc.dg/tree-ssa/loop-35.c: Same.
* gcc.dg/tree-ssa/loop-7.c: Same.
* gcc.dg/tree-ssa/pr23109.c: Same.
* gcc.dg/tree-ssa/restrict-3.c: Same.
* gcc.dg/tree-ssa/restrict-5.c: Same.
* gcc.dg/tree-ssa/ssa-lim-1.c: Same.
* gcc.dg/tree-ssa/ssa-lim-10.c: Same.
* gcc.dg/tree-ssa/ssa-lim-11.c: Same.
* gcc.dg/tree-ssa/ssa-lim-12.c: Same.
* gcc.dg/tree-ssa/ssa-lim-2.c: Same.
* gcc.dg/tree-ssa/ssa-lim-3.c: Same.
* gcc.dg/tree-ssa/ssa-lim-6.c: Same.
* gcc.dg/tree-ssa/ssa-lim-7.c: Same.
* gcc.dg/tree-ssa/ssa-lim-8.c: Same.
* gcc.dg/tree-ssa/ssa-lim-9.c: Same.
* gcc.dg/tree-ssa/structopt-1.c: Same.
* gfortran.dg/pr32921.f: Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@226494 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/testsuite/ChangeLog.gomp | 30 +++++++++++++++++++++++++++
gcc/testsuite/c-c++-common/restrict-2.c | 4 ++--
gcc/testsuite/c-c++-common/restrict-4.c | 4 ++--
gcc/testsuite/g++.dg/tree-ssa/pr33615.C | 4 ++--
gcc/testsuite/g++.dg/tree-ssa/restrict1.C | 4 ++--
gcc/testsuite/gcc.dg/tm/pub-safety-1.c | 4 ++--
gcc/testsuite/gcc.dg/tm/reg-promotion.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/loop-32.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/loop-33.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/loop-34.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/loop-35.c | 6 +++---
gcc/testsuite/gcc.dg/tree-ssa/loop-7.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/pr23109.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/restrict-3.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/restrict-5.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-1.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-10.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-11.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-12.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c | 6 +++---
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-7.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-8.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-9.c | 4 ++--
gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c | 4 ++--
gcc/testsuite/gfortran.dg/pr32921.f | 4 ++--
28 files changed, 86 insertions(+), 56 deletions(-)
diff --git gcc/testsuite/ChangeLog.gomp gcc/testsuite/ChangeLog.gomp
index 04286dd..33519ef 100644
--- gcc/testsuite/ChangeLog.gomp
+++ gcc/testsuite/ChangeLog.gomp
@@ -1,3 +1,33 @@
+2015-08-03 Thomas Schwinge <thomas@codesourcery.com>
+
+ * c-c++-common/restrict-2.c: Update for new pass_lim.
+ * c-c++-common/restrict-4.c: Same.
+ * g++.dg/tree-ssa/pr33615.C: Same.
+ * g++.dg/tree-ssa/restrict1.C: Same.
+ * gcc.dg/tm/pub-safety-1.c: Same.
+ * gcc.dg/tm/reg-promotion.c: Same.
+ * gcc.dg/tree-ssa/20050314-1.c: Same.
+ * gcc.dg/tree-ssa/loop-32.c: Same.
+ * gcc.dg/tree-ssa/loop-33.c: Same.
+ * gcc.dg/tree-ssa/loop-34.c: Same.
+ * gcc.dg/tree-ssa/loop-35.c: Same.
+ * gcc.dg/tree-ssa/loop-7.c: Same.
+ * gcc.dg/tree-ssa/pr23109.c: Same.
+ * gcc.dg/tree-ssa/restrict-3.c: Same.
+ * gcc.dg/tree-ssa/restrict-5.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-1.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-10.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-11.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-12.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-2.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-3.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-6.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-7.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-8.c: Same.
+ * gcc.dg/tree-ssa/ssa-lim-9.c: Same.
+ * gcc.dg/tree-ssa/structopt-1.c: Same.
+ * gfortran.dg/pr32921.f: Same.
+
2015-07-31 Thomas Schwinge <thomas@codesourcery.com>
PR libgomp/65742
diff --git gcc/testsuite/c-c++-common/restrict-2.c gcc/testsuite/c-c++-common/restrict-2.c
index ad19fb3..183a0de 100644
--- gcc/testsuite/c-c++-common/restrict-2.c
+++ gcc/testsuite/c-c++-common/restrict-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim3-details" } */
void foo (float * __restrict__ a, float * __restrict__ b, int n, int j)
{
@@ -10,4 +10,4 @@ void foo (float * __restrict__ a, float * __restrict__ b, int n, int j)
/* We should move the RHS of the store out of the loop. */
-/* { dg-final { scan-tree-dump-times "Moving statement" 11 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Moving statement" 11 "lim3" } } */
diff --git gcc/testsuite/c-c++-common/restrict-4.c gcc/testsuite/c-c++-common/restrict-4.c
index 5806a2a..8dd597c 100644
--- gcc/testsuite/c-c++-common/restrict-4.c
+++ gcc/testsuite/c-c++-common/restrict-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
struct Foo
{
@@ -15,4 +15,4 @@ void bar(struct Foo f, int * __restrict__ q)
}
}
-/* { dg-final { scan-tree-dump "Executing store motion" "lim2" } } */
+/* { dg-final { scan-tree-dump "Executing store motion" "lim3" } } */
diff --git gcc/testsuite/g++.dg/tree-ssa/pr33615.C gcc/testsuite/g++.dg/tree-ssa/pr33615.C
index 13e20e0..dd2bbb2 100644
--- gcc/testsuite/g++.dg/tree-ssa/pr33615.C
+++ gcc/testsuite/g++.dg/tree-ssa/pr33615.C
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fnon-call-exceptions -fdump-tree-lim2-details -w" } */
+/* { dg-options "-O -fnon-call-exceptions -fdump-tree-lim3-details -w" } */
extern volatile int y;
@@ -16,4 +16,4 @@ foo (double a, int x)
// The expression 1.0 / 0.0 should not be treated as a loop invariant
// if it may throw an exception.
-// { dg-final { scan-tree-dump-times "invariant up to" 0 "lim2" } }
+// { dg-final { scan-tree-dump-times "invariant up to" 0 "lim3" } }
diff --git gcc/testsuite/g++.dg/tree-ssa/restrict1.C gcc/testsuite/g++.dg/tree-ssa/restrict1.C
index 3228321..718d1ec 100644
--- gcc/testsuite/g++.dg/tree-ssa/restrict1.C
+++ gcc/testsuite/g++.dg/tree-ssa/restrict1.C
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
struct Foo
{
@@ -16,4 +16,4 @@ void bar(Foo f, int * __restrict__ q)
}
}
-/* { dg-final { scan-tree-dump "Executing store motion" "lim2" } } */
+/* { dg-final { scan-tree-dump "Executing store motion" "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tm/pub-safety-1.c gcc/testsuite/gcc.dg/tm/pub-safety-1.c
index 59fb43e..3841c08 100644
--- gcc/testsuite/gcc.dg/tm/pub-safety-1.c
+++ gcc/testsuite/gcc.dg/tm/pub-safety-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-fgnu-tm -O1 -fdump-tree-lim2" } */
+/* { dg-options "-fgnu-tm -O1 -fdump-tree-lim3" } */
/* Test that thread visible loads do not get hoisted out of loops if
the load would not have occurred on each path out of the loop. */
@@ -20,4 +20,4 @@ void reader()
}
}
-/* { dg-final { scan-tree-dump-times "Cannot hoist.*DATA_DATA because it is in a transaction" 1 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Cannot hoist.*DATA_DATA because it is in a transaction" 1 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tm/reg-promotion.c gcc/testsuite/gcc.dg/tm/reg-promotion.c
index 47400ef..e0e5f62 100644
--- gcc/testsuite/gcc.dg/tm/reg-promotion.c
+++ gcc/testsuite/gcc.dg/tm/reg-promotion.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-fgnu-tm -O2 -fdump-tree-lim2" } */
+/* { dg-options "-fgnu-tm -O2 -fdump-tree-lim3" } */
/* Test that `count' is not written to unless p->data>0. */
@@ -20,4 +20,4 @@ void func()
}
}
-/* { dg-final { scan-tree-dump-times "Cannot hoist conditional load of count because it is in a transaction" 1 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Cannot hoist conditional load of count because it is in a transaction" 1 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c
index fd9895b..1ad61f1 100644
--- gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c
+++ gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-lim2-details --param allow-store-data-races=1" } */
+/* { dg-options "-O1 -fdump-tree-lim3-details --param allow-store-data-races=1" } */
float a[100];
@@ -17,4 +17,4 @@ void xxx (void)
/* Store motion may be applied to the assignment to a[k], since sinf
cannot read nor write the memory. */
-/* { dg-final { scan-tree-dump-times "Moving statement" 1 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Moving statement" 1 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/loop-32.c gcc/testsuite/gcc.dg/tree-ssa/loop-32.c
index e06a1e4..9b69c73 100644
--- gcc/testsuite/gcc.dg/tree-ssa/loop-32.c
+++ gcc/testsuite/gcc.dg/tree-ssa/loop-32.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
int x;
int a[100];
@@ -42,4 +42,4 @@ void test3(struct a *A)
}
}
-/* { dg-final { scan-tree-dump-times "Executing store motion of" 3 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Executing store motion of" 3 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/loop-33.c gcc/testsuite/gcc.dg/tree-ssa/loop-33.c
index 57fd06d..98a16fb 100644
--- gcc/testsuite/gcc.dg/tree-ssa/loop-33.c
+++ gcc/testsuite/gcc.dg/tree-ssa/loop-33.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
int x;
int a[100];
@@ -36,4 +36,4 @@ void test5(struct a *A, unsigned b)
}
}
-/* { dg-final { scan-tree-dump-times "Executing store motion of" 4 "lim2" { xfail { lp64 || llp64 } } } } */
+/* { dg-final { scan-tree-dump-times "Executing store motion of" 4 "lim3" { xfail { lp64 || llp64 } } } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/loop-34.c gcc/testsuite/gcc.dg/tree-ssa/loop-34.c
index 4a7b082..26fb281 100644
--- gcc/testsuite/gcc.dg/tree-ssa/loop-34.c
+++ gcc/testsuite/gcc.dg/tree-ssa/loop-34.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
int r[6];
@@ -17,4 +17,4 @@ void f (int n)
}
-/* { dg-final { scan-tree-dump-times "Executing store motion of r" 6 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Executing store motion of r" 6 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/loop-35.c gcc/testsuite/gcc.dg/tree-ssa/loop-35.c
index 4e9d03a..87d105a 100644
--- gcc/testsuite/gcc.dg/tree-ssa/loop-35.c
+++ gcc/testsuite/gcc.dg/tree-ssa/loop-35.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
int x;
int a[100];
@@ -67,5 +67,5 @@ void test4(struct a *A, unsigned LONG b)
}
}
/* long index not hoisted for avr target PR 36561 */
-/* { dg-final { scan-tree-dump-times "Executing store motion of" 8 "lim2" { xfail { "avr-*-*" } } } } */
-/* { dg-final { scan-tree-dump-times "Executing store motion of" 6 "lim2" { target { "avr-*-*" } } } } */
+/* { dg-final { scan-tree-dump-times "Executing store motion of" 8 "lim3" { xfail { "avr-*-*" } } } } */
+/* { dg-final { scan-tree-dump-times "Executing store motion of" 6 "lim3" { target { "avr-*-*" } } } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/loop-7.c gcc/testsuite/gcc.dg/tree-ssa/loop-7.c
index 08a4935..e28e4c9 100644
--- gcc/testsuite/gcc.dg/tree-ssa/loop-7.c
+++ gcc/testsuite/gcc.dg/tree-ssa/loop-7.c
@@ -1,6 +1,6 @@
/* PR tree-optimization/19828 */
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-lim2-details" } */
+/* { dg-options "-O1 -fdump-tree-lim3-details" } */
int cst_fun1 (int) __attribute__((__const__));
int cst_fun2 (int) __attribute__((__const__));
@@ -31,4 +31,4 @@ int xxx (void)
Calls to cst_fun2 and pure_fun2 should not be, since calling
with k = 0 may be invalid. */
-/* { dg-final { scan-tree-dump-times "Moving statement" 2 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Moving statement" 2 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/pr23109.c gcc/testsuite/gcc.dg/tree-ssa/pr23109.c
index fac991c..040f3ae 100644
--- gcc/testsuite/gcc.dg/tree-ssa/pr23109.c
+++ gcc/testsuite/gcc.dg/tree-ssa/pr23109.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -funsafe-math-optimizations -ftrapping-math -fdump-tree-recip -fdump-tree-lim2" } */
+/* { dg-options "-O2 -funsafe-math-optimizations -ftrapping-math -fdump-tree-recip -fdump-tree-lim3" } */
/* { dg-warning "-fassociative-math disabled" "" { target *-*-* } 1 } */
double F[2] = { 0., 0. }, e = 0.;
@@ -29,6 +29,6 @@ int main()
/* LIM only performs the transformation in the no-trapping-math case. In
the future we will do it for trapping-math as well in recip, check that
this is not wrongly optimized. */
-/* { dg-final { scan-tree-dump-not "reciptmp" "lim2" } } */
+/* { dg-final { scan-tree-dump-not "reciptmp" "lim3" } } */
/* { dg-final { scan-tree-dump-not "reciptmp" "recip" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/restrict-3.c gcc/testsuite/gcc.dg/tree-ssa/restrict-3.c
index 90b9b55..a352129 100644
--- gcc/testsuite/gcc.dg/tree-ssa/restrict-3.c
+++ gcc/testsuite/gcc.dg/tree-ssa/restrict-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim3-details" } */
void f(int * __restrict__ r,
int a[__restrict__ 16][16],
@@ -14,4 +14,4 @@ void f(int * __restrict__ r,
/* We should apply store motion to the store to *r. */
-/* { dg-final { scan-tree-dump "Executing store motion of \\\*r" "lim2" } } */
+/* { dg-final { scan-tree-dump "Executing store motion of \\\*r" "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/restrict-5.c gcc/testsuite/gcc.dg/tree-ssa/restrict-5.c
index fc03c1e..2e0edab 100644
--- gcc/testsuite/gcc.dg/tree-ssa/restrict-5.c
+++ gcc/testsuite/gcc.dg/tree-ssa/restrict-5.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fno-strict-aliasing -fdump-tree-lim3-details" } */
static inline __attribute__((always_inline))
void f(int * __restrict__ r,
@@ -20,4 +20,4 @@ void g(int *r, int a[16][16], int b[16][16], int i, int j)
/* We should apply store motion to the store to *r. */
-/* { dg-final { scan-tree-dump "Executing store motion of \\\*r" "lim2" } } */
+/* { dg-final { scan-tree-dump "Executing store motion of \\\*r" "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-1.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-1.c
index 4ee7049..6a4b819 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-1.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim2" } */
+/* { dg-options "-O -fdump-tree-lim3" } */
/* This is a variant that does cause fold to place a cast to
int before testing bit 1. */
@@ -18,4 +18,4 @@ quantum_toffoli (int control1, int control2, int target,
}
}
-/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-10.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-10.c
index ec609d8..afa547c 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-10.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
int *l, *r;
int test_func(void)
@@ -27,4 +27,4 @@ int test_func(void)
return i;
}
-/* { dg-final { scan-tree-dump "Executing store motion of pos" "lim2" } } */
+/* { dg-final { scan-tree-dump "Executing store motion of pos" "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-11.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-11.c
index db7c8d2..e8cedbf 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-11.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-11.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fprofile-arcs -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fprofile-arcs -fdump-tree-lim3-details" } */
struct thread_param
{
@@ -21,4 +21,4 @@ void access_buf(struct thread_param* p)
}
}
-/* { dg-final { scan-tree-dump-times "Executing store motion of __gcov0.access_buf\\\[\[01\]\\\] from loop 1" 2 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Executing store motion of __gcov0.access_buf\\\[\[01\]\\\] from loop 1" 2 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-12.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-12.c
index 016ff22..18b055f 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-12.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-12.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim2" } */
+/* { dg-options "-O -fdump-tree-lim3" } */
int a[1024];
@@ -23,4 +23,4 @@ void bar (int x, int z)
}
}
-/* { dg-final { scan-tree-dump-times "!= 0 ? " 2 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "!= 0 ? " 2 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c
index 37639cd..9ef7bae 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim2" } */
+/* { dg-options "-O -fdump-tree-lim3" } */
/* This is a variant that doesn't cause fold to place a cast to
int before testing bit 1. */
@@ -18,4 +18,4 @@ int size)
}
}
-/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "1 <<" 3 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
index f059d5a..dc7f41a 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fdump-tree-lim3-details" } */
struct { int x; int y; } global;
void foo(int n)
@@ -9,5 +9,5 @@ void foo(int n)
global.y += global.x*global.x;
}
-/* { dg-final { scan-tree-dump "Executing store motion of global.y" "lim2" } } */
-/* { dg-final { scan-tree-dump "Moving statement.*global.x.*out of loop 1" "lim2" } } */
+/* { dg-final { scan-tree-dump "Executing store motion of global.y" "lim3" } } */
+/* { dg-final { scan-tree-dump "Moving statement.*global.x.*out of loop 1" "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c
index 21edcd0..535d627 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
double a[16][64], y[64], x[16];
void foo(void)
@@ -10,4 +10,4 @@ void foo(void)
y[j] = y[j] + a[i][j] * x[i];
}
-/* { dg-final { scan-tree-dump "Executing store motion of y" "lim2" } } */
+/* { dg-final { scan-tree-dump "Executing store motion of y" "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-7.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-7.c
index 7612e75..bf4e8ec 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-7.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-7.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fdump-tree-lim3-details" } */
extern const int srcshift;
@@ -11,4 +11,4 @@ void foo (int *srcdata, int *dstdata)
dstdata[i] = srcdata[i] << srcshift;
}
-/* { dg-final { scan-tree-dump "Moving statement" "lim2" } } */
+/* { dg-final { scan-tree-dump "Moving statement" "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-8.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-8.c
index 9256b39..fb69af3 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-8.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-8.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fdump-tree-lim3-details" } */
void bar (int);
void foo (int n, int m)
@@ -16,4 +16,4 @@ void foo (int n, int m)
}
}
-/* { dg-final { scan-tree-dump-times "Moving PHI node" 1 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Moving PHI node" 1 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-9.c gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-9.c
index a65656f..9d2e817 100644
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-9.c
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-9.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-lim2-details" } */
+/* { dg-options "-O -fdump-tree-lim3-details" } */
void bar (int);
void foo (int n, int m)
@@ -16,4 +16,4 @@ void foo (int n, int m)
}
}
-/* { dg-final { scan-tree-dump-times "Moving PHI node" 1 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Moving PHI node" 1 "lim3" } } */
diff --git gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c
index 94bdd4a..6abcb6c 100644
--- gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c
+++ gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+/* { dg-options "-O2 -fdump-tree-lim3-details" } */
int x; int y;
struct { int x; int y; } global;
int foo() {
@@ -10,5 +10,5 @@ int foo() {
global.y += global.x*global.x;
}
-/* { dg-final { scan-tree-dump-times "Executing store motion of global.y" 1 "lim2" } } */
+/* { dg-final { scan-tree-dump-times "Executing store motion of global.y" 1 "lim3" } } */
/* XXX: We should also check for the load motion of global.x, but there is no easy way to do this. */
diff --git gcc/testsuite/gfortran.dg/pr32921.f gcc/testsuite/gfortran.dg/pr32921.f
index 0661208..e7264b7 100644
--- gcc/testsuite/gfortran.dg/pr32921.f
+++ gcc/testsuite/gfortran.dg/pr32921.f
@@ -1,5 +1,5 @@
! { dg-do compile }
-! { dg-options "-O2 -fdump-tree-lim2" }
+! { dg-options "-O2 -fdump-tree-lim3" }
! gfortran -c -m32 -O2 -S junk.f
!
MODULE LES3D_DATA
@@ -45,4 +45,4 @@
RETURN
END
-! { dg-final { scan-tree-dump-times "stride" 4 "lim2" } }
+! { dg-final { scan-tree-dump-times "stride" 4 "lim3" } }
Grüße,
Thomas
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 472 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-08-03 10:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-28 9:10 [gomp4, committed] Handle double reduction in oacc kernels pass group Tom de Vries
2015-08-03 10:34 ` Thomas Schwinge
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).