This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gomp4] remove kernel-specific launch


Tom,
as we discussed this patch removes the GOACC_kernels call, which forwards to GOACC_parallel. We simply call GOACC_parallel directly.

ok for gomp4 branch?

nathan
2015-07-19  Nathan Sidwell  <nathan@codesourcery.com>

	gcc/
	* omp-low.c (expand_omp_target): Convert to
	BUILT_IN_GOACC_PARALLEL. Remove BUILT_IN_GOACC_KERNELS cases.
	* omp-builtins.def (BUILT_IN_GOACC_KERNELS): Delete.

	libgomp/
	* oacc-parallel.c (GOACC_kernels): Delete.

Index: gcc/omp-builtins.def
===================================================================
--- gcc/omp-builtins.def	(revision 225982)
+++ gcc/omp-builtins.def	(working copy)
@@ -48,9 +48,6 @@ DEF_GOACC_BUILTIN_FNSPEC (BUILT_IN_GOACC
 			  BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_SIZE_INT_INT_VAR,
 			  ATTR_FNSPEC_DOT_DOT_DOT_DOT_r_r_r_NOTHROW_LIST,
 			  ATTR_NOTHROW_LIST, "....rrr")
-DEF_GOACC_BUILTIN (BUILT_IN_GOACC_KERNELS, "GOACC_kernels",
-		   BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_SIZE_INT_INT_VAR,
-		   ATTR_NOTHROW_LIST)
 DEF_GOACC_BUILTIN (BUILT_IN_GOACC_PARALLEL, "GOACC_parallel",
 		   BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_SIZE_INT_INT_VAR,
 		   ATTR_NOTHROW_LIST)
Index: gcc/omp-low.c
===================================================================
--- gcc/omp-low.c	(revision 225982)
+++ gcc/omp-low.c	(working copy)
@@ -9339,14 +9339,15 @@ expand_omp_target (struct omp_region *re
 	  /* Don't emit the library call.  We've already done that.  */
 	  do_emit_library_call = false;
 	  /* Transform BUILT_IN_GOACC_KERNELS_INTERNAL into
-	     BUILT_IN_GOACC_KERNELS_INTERNAL.  Now that the function body will be
-	     split off, we can no longer regard the omp_data_array reference as
-	     non-escaping.  */
+	     BUILT_IN_GOACC_PARALLELL.  Now that the function
+	     body will be split off, we can no longer regard the
+	     omp_data_array reference as non-escaping.  */
 	  gsi = gsi_last_bb (entry_bb);
 	  gsi_prev (&gsi);
 	  gcall *call = as_a <gcall *> (gsi_stmt (gsi));
-	  gcc_assert (gimple_call_builtin_p (call, BUILT_IN_GOACC_KERNELS_INTERNAL));
-	  tree fndecl = builtin_decl_explicit (BUILT_IN_GOACC_KERNELS);
+	  gcc_assert (gimple_call_builtin_p
+		      (call, BUILT_IN_GOACC_KERNELS_INTERNAL));
+	  tree fndecl = builtin_decl_explicit (BUILT_IN_GOACC_PARALLEL);
 	  gimple_call_set_fndecl (call, fndecl);
 	  gimple_call_set_fntype (call, TREE_TYPE (fndecl));
 	  gimple_call_reset_alias_info (call);
@@ -9723,7 +9724,6 @@ expand_omp_target (struct omp_region *re
     case BUILT_IN_GOACC_DATA_START:
     case BUILT_IN_GOACC_DECLARE:
     case BUILT_IN_GOACC_ENTER_EXIT_DATA:
-    case BUILT_IN_GOACC_KERNELS:
     case BUILT_IN_GOACC_KERNELS_INTERNAL:
     case BUILT_IN_GOACC_PARALLEL:
     case BUILT_IN_GOACC_UPDATE:
@@ -9743,7 +9743,6 @@ expand_omp_target (struct omp_region *re
     case BUILT_IN_GOMP_TARGET_DATA:
     case BUILT_IN_GOMP_TARGET_UPDATE:
       break;
-    case BUILT_IN_GOACC_KERNELS:
     case BUILT_IN_GOACC_KERNELS_INTERNAL:
     case BUILT_IN_GOACC_PARALLEL:
       {
Index: libgomp/oacc-parallel.c
===================================================================
--- libgomp/oacc-parallel.c	(revision 225982)
+++ libgomp/oacc-parallel.c	(working copy)
@@ -530,37 +530,6 @@ GOACC_enter_exit_data (int device, size_
   acc_dev->openacc.async_set_async_func (acc_async_sync);
 }
 
-void
-GOACC_kernels (int device, void (*fn) (void *),
-	       size_t mapnum, void **hostaddrs, size_t *sizes,
-	       unsigned short *kinds,
-	       int num_gangs, int num_workers, int vector_length,
-	       size_t shared_size, int async, int num_waits, ...)
-{
-#ifdef HAVE_INTTYPES_H
-  gomp_debug (0, "%s: mapnum=%"PRIu64", hostaddrs=%p, sizes=%p, kinds=%p\n",
-	      __FUNCTION__, (uint64_t) mapnum, hostaddrs, sizes, kinds);
-#else
-  gomp_debug (0, "%s: mapnum=%lu, hostaddrs=%p, sizes=%p, kinds=%p\n",
-	      __FUNCTION__, (unsigned long) mapnum, hostaddrs, sizes, kinds);
-#endif
-
-  va_list ap;
-
-  goacc_lazy_initialize ();
-
-  va_start (ap, num_waits);
-
-  if (num_waits > 0)
-    goacc_wait (async, num_waits, ap);
-
-  va_end (ap);
-
-  GOACC_parallel (device, fn, mapnum, hostaddrs, sizes, kinds,
-		  num_gangs, num_workers, vector_length, shared_size,
-		  async, 0);
-}
-
 static void
 goacc_wait (int async, int num_waits, va_list ap)
 {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]