[PR libgomp/64625] Remove __OFFLOAD_TABLE__ variable/formal parameter.
gcc/ * omp-low.c (offload_symbol_decl): Remove variable. (get_offload_symbol_decl): Remove function. (expand_omp_target): For BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL, BUILT_IN_GOACC_UPDATE don't pass it at all. libgomp/ * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data) (GOACC_parallel, GOACC_update): Remove const_void *offload_table formal parameter. Update all users. * target.c (GOMP_target, GOMP_target_data, GOMP_target_update): Document unused formal parameter. From-SVN: r219836
This commit is contained in:
parent
3d36be01e4
commit
128b26dceb
@ -1,3 +1,13 @@
|
||||
2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* omp-low.c (offload_symbol_decl): Remove variable.
|
||||
(get_offload_symbol_decl): Remove function.
|
||||
(expand_omp_target): For BUILT_IN_GOMP_TARGET,
|
||||
BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
|
||||
instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
|
||||
BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
|
||||
BUILT_IN_GOACC_UPDATE don't pass it at all.
|
||||
|
||||
2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
|
||||
|
||||
* tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
|
||||
|
@ -340,30 +340,6 @@ oacc_max_threads (omp_context *ctx)
|
||||
/* Holds offload tables with decls. */
|
||||
vec<tree, va_gc> *offload_funcs, *offload_vars;
|
||||
|
||||
/* Holds a decl for __OFFLOAD_TABLE__. */
|
||||
static GTY(()) tree offload_symbol_decl;
|
||||
|
||||
/* Get the __OFFLOAD_TABLE__ symbol. */
|
||||
static tree
|
||||
get_offload_symbol_decl (void)
|
||||
{
|
||||
if (!offload_symbol_decl)
|
||||
{
|
||||
tree decl = build_decl (UNKNOWN_LOCATION, VAR_DECL,
|
||||
get_identifier ("__OFFLOAD_TABLE__"),
|
||||
ptr_type_node);
|
||||
TREE_ADDRESSABLE (decl) = 1;
|
||||
TREE_PUBLIC (decl) = 1;
|
||||
DECL_EXTERNAL (decl) = 1;
|
||||
DECL_WEAK (decl) = 1;
|
||||
DECL_ATTRIBUTES (decl)
|
||||
= tree_cons (get_identifier ("weak"),
|
||||
NULL_TREE, DECL_ATTRIBUTES (decl));
|
||||
offload_symbol_decl = decl;
|
||||
}
|
||||
return offload_symbol_decl;
|
||||
}
|
||||
|
||||
/* Convenience function for calling scan_omp_1_op on tree operands. */
|
||||
|
||||
static inline tree
|
||||
@ -9119,16 +9095,31 @@ expand_omp_target (struct omp_region *region)
|
||||
}
|
||||
|
||||
gimple g;
|
||||
tree offload_table = get_offload_symbol_decl ();
|
||||
vec<tree> *args;
|
||||
/* The maximum number used by any start_ix, without varargs. */
|
||||
unsigned int argcnt = 12;
|
||||
unsigned int argcnt = 11;
|
||||
|
||||
vec_alloc (args, argcnt);
|
||||
args->quick_push (device);
|
||||
if (offloaded)
|
||||
args->quick_push (build_fold_addr_expr (child_fn));
|
||||
args->quick_push (build_fold_addr_expr (offload_table));
|
||||
switch (start_ix)
|
||||
{
|
||||
case BUILT_IN_GOMP_TARGET:
|
||||
case BUILT_IN_GOMP_TARGET_DATA:
|
||||
case BUILT_IN_GOMP_TARGET_UPDATE:
|
||||
/* This const void * is part of the current ABI, but we're not actually
|
||||
using it. */
|
||||
args->quick_push (build_zero_cst (ptr_type_node));
|
||||
break;
|
||||
case BUILT_IN_GOACC_DATA_START:
|
||||
case BUILT_IN_GOACC_ENTER_EXIT_DATA:
|
||||
case BUILT_IN_GOACC_PARALLEL:
|
||||
case BUILT_IN_GOACC_UPDATE:
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
}
|
||||
args->quick_push (t1);
|
||||
args->quick_push (t2);
|
||||
args->quick_push (t3);
|
||||
|
@ -1,3 +1,11 @@
|
||||
2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
|
||||
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
|
||||
formal parameter. Update all users.
|
||||
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
|
||||
Document unused formal parameter.
|
||||
|
||||
2015-01-16 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* oacc-parallel.c: Don't include <alloca.h>.
|
||||
|
@ -217,15 +217,15 @@ extern void GOMP_teams (unsigned int, unsigned int);
|
||||
|
||||
/* oacc-parallel.c */
|
||||
|
||||
extern void GOACC_data_start (int, const void *,
|
||||
size_t, void **, size_t *, unsigned short *);
|
||||
extern void GOACC_data_start (int, size_t, void **, size_t *,
|
||||
unsigned short *);
|
||||
extern void GOACC_data_end (void);
|
||||
extern void GOACC_enter_exit_data (int, const void *, size_t, void **,
|
||||
extern void GOACC_enter_exit_data (int, size_t, void **,
|
||||
size_t *, unsigned short *, int, int, ...);
|
||||
extern void GOACC_parallel (int, void (*) (void *), const void *, size_t,
|
||||
extern void GOACC_parallel (int, void (*) (void *), size_t,
|
||||
void **, size_t *, unsigned short *, int, int, int,
|
||||
int, int, ...);
|
||||
extern void GOACC_update (int, const void *, size_t, void **, size_t *,
|
||||
extern void GOACC_update (int, size_t, void **, size_t *,
|
||||
unsigned short *, int, int, ...);
|
||||
extern void GOACC_wait (int, int, ...);
|
||||
extern int GOACC_get_num_threads (void);
|
||||
|
@ -75,7 +75,7 @@ select_acc_device (int device_type)
|
||||
static void goacc_wait (int async, int num_waits, va_list ap);
|
||||
|
||||
void
|
||||
GOACC_parallel (int device, void (*fn) (void *), const void *offload_table,
|
||||
GOACC_parallel (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,
|
||||
@ -172,7 +172,7 @@ GOACC_parallel (int device, void (*fn) (void *), const void *offload_table,
|
||||
}
|
||||
|
||||
void
|
||||
GOACC_data_start (int device, const void *offload_table, size_t mapnum,
|
||||
GOACC_data_start (int device, size_t mapnum,
|
||||
void **hostaddrs, size_t *sizes, unsigned short *kinds)
|
||||
{
|
||||
bool host_fallback = device == GOMP_DEVICE_HOST_FALLBACK;
|
||||
@ -218,7 +218,7 @@ GOACC_data_end (void)
|
||||
}
|
||||
|
||||
void
|
||||
GOACC_enter_exit_data (int device, const void *offload_table, size_t mapnum,
|
||||
GOACC_enter_exit_data (int device, size_t mapnum,
|
||||
void **hostaddrs, size_t *sizes, unsigned short *kinds,
|
||||
int async, int num_waits, ...)
|
||||
{
|
||||
@ -408,7 +408,7 @@ goacc_wait (int async, int num_waits, va_list ap)
|
||||
}
|
||||
|
||||
void
|
||||
GOACC_update (int device, const void *offload_table, size_t mapnum,
|
||||
GOACC_update (int device, size_t mapnum,
|
||||
void **hostaddrs, size_t *sizes, unsigned short *kinds,
|
||||
int async, int num_waits, ...)
|
||||
{
|
||||
|
@ -738,15 +738,14 @@ gomp_fini_device (struct gomp_device_descr *devicep)
|
||||
is GOMP_DEVICE_ICV, it means use device-var ICV. If it is
|
||||
GOMP_DEVICE_HOST_FALLBACK (or any value
|
||||
larger than last available hw device), use host fallback.
|
||||
FN is address of host code, OFFLOAD_TABLE contains value of the
|
||||
__OFFLOAD_TABLE__ symbol in the shared library or binary that invokes
|
||||
GOMP_target. HOSTADDRS, SIZES and KINDS are arrays
|
||||
FN is address of host code, UNUSED is part of the current ABI, but
|
||||
we're not actually using it. HOSTADDRS, SIZES and KINDS are arrays
|
||||
with MAPNUM entries, with addresses of the host objects,
|
||||
sizes of the host objects (resp. for pointer kind pointer bias
|
||||
and assumed sizeof (void *) size) and kinds. */
|
||||
|
||||
void
|
||||
GOMP_target (int device, void (*fn) (void *), const void *offload_table,
|
||||
GOMP_target (int device, void (*fn) (void *), const void *unused,
|
||||
size_t mapnum, void **hostaddrs, size_t *sizes,
|
||||
unsigned char *kinds)
|
||||
{
|
||||
@ -817,7 +816,7 @@ GOMP_target (int device, void (*fn) (void *), const void *offload_table,
|
||||
}
|
||||
|
||||
void
|
||||
GOMP_target_data (int device, const void *offload_table, size_t mapnum,
|
||||
GOMP_target_data (int device, const void *unused, size_t mapnum,
|
||||
void **hostaddrs, size_t *sizes, unsigned char *kinds)
|
||||
{
|
||||
struct gomp_device_descr *devicep = resolve_device (device);
|
||||
@ -873,7 +872,7 @@ GOMP_target_end_data (void)
|
||||
}
|
||||
|
||||
void
|
||||
GOMP_target_update (int device, const void *offload_table, size_t mapnum,
|
||||
GOMP_target_update (int device, const void *unused, size_t mapnum,
|
||||
void **hostaddrs, size_t *sizes, unsigned char *kinds)
|
||||
{
|
||||
struct gomp_device_descr *devicep = resolve_device (device);
|
||||
|
Loading…
Reference in New Issue
Block a user