]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
For 'OMP_CLAUSE' in 'dump_generic_node', dump the whole OMP clause chain
authorThomas Schwinge <thomas@codesourcery.com>
Tue, 15 Jun 2021 08:43:21 +0000 (10:43 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Tue, 15 Jun 2021 08:43:21 +0000 (10:43 +0200)
... instead of just the first clause.

gcc/
* tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
default argument.
* tree-pretty-print.c (dump_omp_clauses): Update.
(dump_generic_node) <OMP_CLAUSE>: Use it.
gcc/testsuite/
* gcc.dg/gomp/simd-clones-2.c: Enhance.

(cherry picked from commit 2973090c4c62105cbb61bfc6f83be903e3c46c71)

gcc/ChangeLog.omp
gcc/testsuite/ChangeLog.omp
gcc/testsuite/gcc.dg/gomp/simd-clones-2.c
gcc/tree-pretty-print.c
gcc/tree-pretty-print.h

index 8bedf3033e98256c0d1b5dc4ba6d98b1afe3984c..28758c6fb4997d48e0456129e7eeed2b6ddfe2ef 100644 (file)
@@ -1,3 +1,13 @@
+2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
+
+       Backported from master:
+       2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
+       default argument.
+       * tree-pretty-print.c (dump_omp_clauses): Update.
+       (dump_generic_node) <OMP_CLAUSE>: Use it.
+
 2021-06-08  Tobias Burnus  <tobias@codesourcery.com>
 
        Backported from master:
index 93b3a7ad7660c3e06a85eaa64c69469f0a3bcec2..cf4b5e5e15578bd03ca381d81703b3a8f8257f5c 100644 (file)
@@ -1,3 +1,10 @@
+2021-06-15  Tobias Burnus  <tobias@codesourcery.com>
+
+       Backported from master:
+       2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * gcc.dg/gomp/simd-clones-2.c: Enhance.
+
 2021-06-09  Tobias Burnus  <tobias@codesourcery.com>
 
        Backported from master:
index 75554de9339db6f4fda0e476dc932013b9c949e5..9f7c84dc70ba4770c5f63f8af863e5577608d9a8 100644 (file)
@@ -7,6 +7,7 @@ int addit(int a, int b, int *c)
   return a + b;
 }
 /* { dg-warning "GCC does not currently support mixed size types for 'simd' functions" "" { target aarch64*-*-* } .-4 } */
+/* { dg-final { scan-tree-dump {(?n)^__attribute__\(\(omp declare simd \(notinbranch aligned\(2:32\)\), omp declare simd \(inbranch uniform\(2\) linear\(1:66\)\)\)\)$} "optimized" } } */
 
 #pragma omp declare simd uniform(a) aligned(a:32) linear(k:1) notinbranch
 float setArray(float *a, float x, int k)
@@ -14,6 +15,7 @@ float setArray(float *a, float x, int k)
   a[k] = a[k] + x;
   return a[k];
 }
+/* { dg-final { scan-tree-dump {(?n)^__attribute__\(\(omp declare simd \(notinbranch uniform\(0\) aligned\(0:32\) linear\(2:1\)\)\)\)$} "optimized" } } */
 
 /* { dg-final { scan-tree-dump "_ZGVbN4ua32vl_setArray" "optimized" { target i?86-*-* x86_64-*-* } } } */
 /* { dg-final { scan-tree-dump "_ZGVbN4vvva32_addit" "optimized" { target i?86-*-* x86_64-*-* } } } */
index 667bdc20e4b182d7ed1e685be8c948aae780cf79..c03ee3d1f1fd896b1225b53fc347b09f0f9fb13c 100644 (file)
@@ -442,8 +442,9 @@ dump_omp_iterators (pretty_printer *pp, tree iter, int spc, dump_flags_t flags)
 }
 
 
-/* Dump OpenMP clause CLAUSE.  PP, CLAUSE, SPC and FLAGS are as in
-   dump_generic_node.  */
+/* Dump OMP clause CLAUSE, without following OMP_CLAUSE_CHAIN.
+
+   PP, CLAUSE, SPC and FLAGS are as in dump_generic_node.  */
 
 static void
 dump_omp_clause (pretty_printer *pp, tree clause, int spc, dump_flags_t flags)
@@ -1369,23 +1370,22 @@ dump_omp_clause (pretty_printer *pp, tree clause, int spc, dump_flags_t flags)
 }
 
 
-/* Dump the list of OpenMP clauses.  PP, SPC and FLAGS are as in
-   dump_generic_node.  */
+/* Dump chain of OMP clauses.
+
+   PP, SPC and FLAGS are as in dump_generic_node.  */
 
 void
-dump_omp_clauses (pretty_printer *pp, tree clause, int spc, dump_flags_t flags)
+dump_omp_clauses (pretty_printer *pp, tree clause, int spc, dump_flags_t flags,
+                 bool leading_space)
 {
-  if (clause == NULL)
-    return;
-
-  pp_space (pp);
-  while (1)
+  while (clause)
     {
+      if (leading_space)
+       pp_space (pp);
       dump_omp_clause (pp, clause, spc, flags);
+      leading_space = true;
+
       clause = OMP_CLAUSE_CHAIN (clause);
-      if (clause == NULL)
-       return;
-      pp_space (pp);
     }
 }
 
@@ -3695,7 +3695,10 @@ dump_generic_node (pretty_printer *pp, tree node, int spc, dump_flags_t flags,
       goto dump_omp_body;
 
     case OMP_CLAUSE:
-      dump_omp_clause (pp, node, spc, flags);
+      /* If we come here, we're dumping something that's not an OMP construct,
+        for example, OMP clauses attached to a function's '__attribute__'.
+        Dump the whole OMP clause chain.  */
+      dump_omp_clauses (pp, node, spc, flags, false);
       is_expr = false;
       break;
 
index 92eb4123e791788fffd486a4c86583278a5f2ecb..cafe9aa95989c1761265c285f322b3388090c3de 100644 (file)
@@ -39,7 +39,8 @@ extern void print_generic_stmt (FILE *, tree, dump_flags_t = TDF_NONE);
 extern void print_generic_stmt_indented (FILE *, tree, dump_flags_t, int);
 extern void print_generic_expr (FILE *, tree, dump_flags_t = TDF_NONE);
 extern char *print_generic_expr_to_str (tree);
-extern void dump_omp_clauses (pretty_printer *, tree, int, dump_flags_t);
+extern void dump_omp_clauses (pretty_printer *, tree, int, dump_flags_t,
+                             bool = true);
 extern void dump_omp_atomic_memory_order (pretty_printer *,
                                          enum omp_memory_order);
 extern void dump_omp_loop_non_rect_expr (pretty_printer *, tree, int,