public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-7349] Get rid of 'gcc/omp-oacc-neuter-broadcast.cc:oacc_build_component_ref'
@ 2022-02-22 16:58 Thomas Schwinge
  0 siblings, 0 replies; only message in thread
From: Thomas Schwinge @ 2022-02-22 16:58 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:54f745023276e5025e34b2cc22530c78423a93cb

commit r12-7349-g54f745023276e5025e34b2cc22530c78423a93cb
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Fri Jul 30 16:15:25 2021 +0200

    Get rid of 'gcc/omp-oacc-neuter-broadcast.cc:oacc_build_component_ref'
    
    Clean-up for commit e2a58ed6dc5293602d0d168475109caa81ad0f0d
    "openacc: Middle-end worker-partitioning support":
    as of commit 2a3f9f6532bb21d8ab6f16fbe9ee603f6b1405f2
    "openacc: Shared memory layout optimisation", we're no longer
    running into the vectorizer ICEs for '!ADDR_SPACE_GENERIC_P'.
    
            gcc/
            * omp-low.cc (omp_build_component_ref): Move function...
            * omp-general.cc (omp_build_component_ref): ... here.  Remove
            'static'.
            * omp-general.h (omp_build_component_ref): Declare function.
            * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
            function.
            (build_receiver_ref, build_sender_ref): Call
            'omp_build_component_ref' instead.

Diff:
---
 gcc/omp-general.cc               | 14 ++++++++++++++
 gcc/omp-general.h                |  2 ++
 gcc/omp-low.cc                   | 15 ---------------
 gcc/omp-oacc-neuter-broadcast.cc | 26 ++------------------------
 4 files changed, 18 insertions(+), 39 deletions(-)

diff --git a/gcc/omp-general.cc b/gcc/omp-general.cc
index 19f40dc0b1d..a406c578f33 100644
--- a/gcc/omp-general.cc
+++ b/gcc/omp-general.cc
@@ -2980,4 +2980,18 @@ oacc_get_ifn_dim_arg (const gimple *stmt)
   return (int) axis;
 }
 
+/* Build COMPONENT_REF and set TREE_THIS_VOLATILE and TREE_READONLY on it
+   as appropriate.  */
+
+tree
+omp_build_component_ref (tree obj, tree field)
+{
+  tree ret = build3 (COMPONENT_REF, TREE_TYPE (field), obj, field, NULL);
+  if (TREE_THIS_VOLATILE (field))
+    TREE_THIS_VOLATILE (ret) |= 1;
+  if (TREE_READONLY (field))
+    TREE_READONLY (ret) |= 1;
+  return ret;
+}
+
 #include "gt-omp-general.h"
diff --git a/gcc/omp-general.h b/gcc/omp-general.h
index c0cf5f014cd..7a94831e8f5 100644
--- a/gcc/omp-general.h
+++ b/gcc/omp-general.h
@@ -149,4 +149,6 @@ get_openacc_privatization_dump_flags ()
   return l_dump_flags;
 }
 
+extern tree omp_build_component_ref (tree obj, tree field);
+
 #endif /* GCC_OMP_GENERAL_H */
diff --git a/gcc/omp-low.cc b/gcc/omp-low.cc
index 77176efe715..2294456b27d 100644
--- a/gcc/omp-low.cc
+++ b/gcc/omp-low.cc
@@ -621,21 +621,6 @@ omp_copy_decl_1 (tree var, omp_context *ctx)
   return omp_copy_decl_2 (var, DECL_NAME (var), TREE_TYPE (var), ctx);
 }
 
-/* Build COMPONENT_REF and set TREE_THIS_VOLATILE and TREE_READONLY on it
-   as appropriate.  */
-/* See also 'gcc/omp-oacc-neuter-broadcast.cc:oacc_build_component_ref'.  */
-
-static tree
-omp_build_component_ref (tree obj, tree field)
-{
-  tree ret = build3 (COMPONENT_REF, TREE_TYPE (field), obj, field, NULL);
-  if (TREE_THIS_VOLATILE (field))
-    TREE_THIS_VOLATILE (ret) |= 1;
-  if (TREE_READONLY (field))
-    TREE_READONLY (ret) |= 1;
-  return ret;
-}
-
 /* Build tree nodes to access the field for VAR on the receiver side.  */
 
 static tree
diff --git a/gcc/omp-oacc-neuter-broadcast.cc b/gcc/omp-oacc-neuter-broadcast.cc
index 314161e38f5..81e3223a94c 100644
--- a/gcc/omp-oacc-neuter-broadcast.cc
+++ b/gcc/omp-oacc-neuter-broadcast.cc
@@ -937,35 +937,13 @@ worker_single_simple (basic_block from, basic_block to,
     }
 }
 
-/* Build COMPONENT_REF and set TREE_THIS_VOLATILE and TREE_READONLY on it
-   as appropriate.  */
-/* Adapted from 'gcc/omp-low.cc:omp_build_component_ref'.  */
-
-static tree
-oacc_build_component_ref (tree obj, tree field)
-{
-  tree field_type = TREE_TYPE (field);
-  tree obj_type = TREE_TYPE (obj);
-  if (!ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (obj_type)))
-    field_type = build_qualified_type
-			(field_type,
-			 KEEP_QUAL_ADDR_SPACE (TYPE_QUALS (obj_type)));
-
-  tree ret = build3 (COMPONENT_REF, field_type, obj, field, NULL);
-  if (TREE_THIS_VOLATILE (field))
-    TREE_THIS_VOLATILE (ret) |= 1;
-  if (TREE_READONLY (field))
-    TREE_READONLY (ret) |= 1;
-  return ret;
-}
-
 static tree
 build_receiver_ref (tree var, tree receiver_decl, field_map_t *fields)
 {
   tree x = build_simple_mem_ref (receiver_decl);
   tree field = *fields->get (var);
   TREE_THIS_NOTRAP (x) = 1;
-  x = oacc_build_component_ref (x, field);
+  x = omp_build_component_ref (x, field);
   return x;
 }
 
@@ -975,7 +953,7 @@ build_sender_ref (tree var, tree sender_decl, field_map_t *fields)
   if (POINTER_TYPE_P (TREE_TYPE (sender_decl)))
     sender_decl = build_simple_mem_ref (sender_decl);
   tree field = *fields->get (var);
-  return oacc_build_component_ref (sender_decl, field);
+  return omp_build_component_ref (sender_decl, field);
 }
 
 static int


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-22 16:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-22 16:58 [gcc r12-7349] Get rid of 'gcc/omp-oacc-neuter-broadcast.cc:oacc_build_component_ref' 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).