[gcc/devel/omp/gcc-9] backport: omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to build_distinct_type_copy.

Tobias Burnus burnus@gcc.gnu.org
Thu Mar 5 13:53:00 GMT 2020


https://gcc.gnu.org/g:05409825873923c7a8164980032bc312f176b1a0

commit 05409825873923c7a8164980032bc312f176b1a0
Author: Steve Ellcey <sellcey@marvell.com>
Date:   Thu Aug 15 20:41:47 2019 +0000

    backport: omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to build_distinct_type_copy.
    
    2019-08-15  Steve Ellcey  <sellcey@marvell.com>
    
    	Backport from mainline
    	2019-08-02  Steve Ellcey  <sellcey@marvell.com>
    
    	* omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
    	build_distinct_type_copy.
    	(simd_clone_adjust_argument_types): Ditto.
    	(simd_clone_adjust): Call build_distinct_type_copy here.
    	(expand_simd_clones): Ditto.
    
    From-SVN: r274548

Diff:
---
 gcc/ChangeLog        | 11 +++++++++++
 gcc/omp-simd-clone.c | 10 ++++------
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1f5ac48..4b8c1d1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2019-08-15  Steve Ellcey  <sellcey@marvell.com>
+
+	Backport from mainline
+	2019-08-02  Steve Ellcey  <sellcey@marvell.com>
+
+	* omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
+	build_distinct_type_copy.
+	(simd_clone_adjust_argument_types): Ditto.
+	(simd_clone_adjust): Call build_distinct_type_copy here.
+	(expand_simd_clones): Ditto.
+
 2019-08-15  Richard Biener  <rguenther@suse.de>
 
 	PR tree-optimization/91445
diff --git a/gcc/omp-simd-clone.c b/gcc/omp-simd-clone.c
index 472e202..845443e 100644
--- a/gcc/omp-simd-clone.c
+++ b/gcc/omp-simd-clone.c
@@ -498,7 +498,6 @@ simd_clone_adjust_return_type (struct cgraph_node *node)
   /* Adjust the function return type.  */
   if (orig_rettype == void_type_node)
     return NULL_TREE;
-  TREE_TYPE (fndecl) = build_distinct_type_copy (TREE_TYPE (fndecl));
   t = TREE_TYPE (TREE_TYPE (fndecl));
   if (INTEGRAL_TYPE_P (t) || POINTER_TYPE_P (t))
     veclen = node->simdclone->vecsize_int;
@@ -724,11 +723,7 @@ simd_clone_adjust_argument_types (struct cgraph_node *node)
 	  else
 	    new_reversed = void_list_node;
 	}
-
-      tree new_type = build_distinct_type_copy (TREE_TYPE (node->decl));
-      TYPE_ARG_TYPES (new_type) = new_reversed;
-      TREE_TYPE (node->decl) = new_type;
-
+      TYPE_ARG_TYPES (TREE_TYPE (node->decl)) = new_reversed;
       adjustments.release ();
     }
   args.release ();
@@ -1164,6 +1159,7 @@ simd_clone_adjust (struct cgraph_node *node)
 {
   push_cfun (DECL_STRUCT_FUNCTION (node->decl));
 
+  TREE_TYPE (node->decl) = build_distinct_type_copy (TREE_TYPE (node->decl));
   targetm.simd_clone.adjust (node);
 
   tree retval = simd_clone_adjust_return_type (node);
@@ -1737,6 +1733,8 @@ expand_simd_clones (struct cgraph_node *node)
 	    simd_clone_adjust (n);
 	  else
 	    {
+	      TREE_TYPE (n->decl)
+		= build_distinct_type_copy (TREE_TYPE (n->decl));
 	      targetm.simd_clone.adjust (n);
 	      simd_clone_adjust_return_type (n);
 	      simd_clone_adjust_argument_types (n);



More information about the Gcc-cvs mailing list