diff mbox

[gomp4] remove kernel-specific launch

Message ID 55ACC568.8060503@mentor.com
State New
Headers show

Commit Message

Tom de Vries July 20, 2015, 9:54 a.m. UTC
On 19/07/15 23:08, Nathan Sidwell wrote:
> On 07/19/15 16:30, Thomas Schwinge wrote:
>
>>      gcc/tree-parloops.c:    /* Remove GOACC_kernels.  */
>>      libgomp/libgomp.map:    GOACC_kernels;
>>      libgomp/libgomp_g.h:extern void GOACC_kernels (int, void (*)
>> (void *), size_t,
>
> I fixed all byt the parloops comment.  That comment didn't really make
> sense to me -- it seems to be doing something with the pragma not the
> call.   Perhaps Tom could correct/clarify it?
>

Committed as attached.

>> Does it make sense then to rename GOACC_kernels_internal to
>> GOACC_kernels?
>
> I  agree with Tom.  But perhaps it should be an internal fn? IIUC those
> are for pseudo-funcs that should be converted to something else before
> the end of compilation.

Turning it into an internal fn will make it harder to convert a 
GOACC_kernels_internal call into a GOACC_parallel call, which we're 
doing here in omp-low.c:
...
           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);
  ...

Thanks,
- Tom

Comments

Nathan Sidwell July 20, 2015, 12:19 p.m. UTC | #1
On 07/20/15 05:54, Tom de Vries wrote:

> Turning it into an internal fn will make it harder to convert a
> GOACC_kernels_internal call into a GOACC_parallel call, which we're doing here

I wondered ...
diff mbox

Patch

Update create_parallel_loop for remove GOACC_kernels

2015-07-20  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (create_parallel_loop): Update comments for removal of
	GOACC_kernels.  Rename goacc_kernels variable into
	goacc_kernels_internal.
---
 gcc/tree-parloops.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 149c336..7111f93 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -2045,11 +2045,12 @@  create_parallel_loop (struct loop *loop, tree loop_fn, tree data,
     }
   else
     {
-      /* Create oacc parallel pragma based on oacc kernels pragma.  */
+      /* Create oacc parallel pragma based on oacc kernels pragma and
+	 GOAC_kernels_internal call.  */
       gomp_target *kernels = as_a <gomp_target *> (gsi_stmt (gsi));
 
       gsi_prev (&gsi);
-      gcall *goacc_kernels = as_a <gcall *> (gsi_stmt (gsi));
+      gcall *goacc_kernels_internal = as_a <gcall *> (gsi_stmt (gsi));
 
       tree clauses = gimple_omp_target_clauses (kernels);
       /* FIXME: We need a more intelligent mapping onto vector, gangs,
@@ -2070,7 +2071,8 @@  create_parallel_loop (struct loop *loop, tree loop_fn, tree data,
       gimple_omp_target_set_child_fn (stmt, child_fn);
       tree data_arg = gimple_omp_target_data_arg (kernels);
       gimple_omp_target_set_data_arg (stmt, data_arg);
-      tree ganglocal_size = gimple_call_arg (goacc_kernels, /* TODO */ 9);
+      tree ganglocal_size
+	= gimple_call_arg (goacc_kernels_internal, /* TODO */ 9);
       gimple_omp_target_set_ganglocal_size (stmt, ganglocal_size);
 
       gimple_set_location (stmt, loc);
@@ -2085,7 +2087,7 @@  create_parallel_loop (struct loop *loop, tree loop_fn, tree data,
 	/* Insert pragma acc parallel.  */
 	gsi_insert_after (&gsi, stmt, GSI_NEW_STMT);
 
-	/* Remove GOACC_kernels.  */
+	/* Remove GOACC_kernels_internal call.  */
 	replace_uses_by (gimple_vdef (gsi_stmt (gsi2)),
 			 gimple_vuse (gsi_stmt (gsi2)));
 	gsi_remove (&gsi2, true);
-- 
1.9.1