omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to build_distinct_type_...
authorSteve Ellcey <sellcey@marvell.com>
Fri, 2 Aug 2019 16:01:15 +0000 (16:01 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Fri, 2 Aug 2019 16:01:15 +0000 (16:01 +0000)
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: r274019

gcc/ChangeLog
gcc/omp-simd-clone.c

index e63e09d258ee4f2e3fc2efec864f6bd641a6bde4..9493986bc05abbffddc2c2ce79d89d9d84c90fdc 100644 (file)
@@ -1,3 +1,11 @@
+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-02  Uroš Bizjak  <ubizjak@gmail.com>
 
        PR target/91201
index caa8da3cba57c5b70d5fdde5b140497f3c999018..c8c528471a3a2e6bf0a288ba25a9e9ef3ea99198 100644 (file)
@@ -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);