[OpenMP] Add stubs for Task affinity API
This patch adds __kmpc_omp_reg_task_with_affinity to register affinity information for tasks. For now, the affinity information is not used, and the function always succeeds. This also adds the kmp_task_affinity_info_t structure to store the task affinity information. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D55026 llvm-svn: 347907
This commit is contained in:
parent
0b8dd4488e
commit
b04f7d681a
|
@ -405,6 +405,7 @@ kmpc_set_disp_num_buffers 267
|
|||
__kmpc_task_reduction_get_th_data 269
|
||||
# USED FOR 4.5 __kmpc_critical_with_hint 270
|
||||
__kmpc_get_target_offload 271
|
||||
__kmpc_omp_reg_task_with_affinity 272
|
||||
%endif
|
||||
%endif
|
||||
|
||||
|
|
|
@ -2222,6 +2222,18 @@ typedef struct kmp_dephash {
|
|||
#endif
|
||||
} kmp_dephash_t;
|
||||
|
||||
#if OMP_50_ENABLED
|
||||
typedef struct kmp_task_affinity_info {
|
||||
kmp_intptr_t base_addr;
|
||||
size_t len;
|
||||
struct {
|
||||
bool flag1 : 1;
|
||||
bool flag2 : 1;
|
||||
kmp_int32 reserved : 30;
|
||||
} flags;
|
||||
} kmp_task_affinity_info_t;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef BUILD_TIED_TASK_STACK
|
||||
|
@ -3783,6 +3795,9 @@ KMP_EXPORT void __kmpc_taskloop(ident_t *loc, kmp_int32 gtid, kmp_task_t *task,
|
|||
#if OMP_50_ENABLED
|
||||
KMP_EXPORT void *__kmpc_task_reduction_init(int gtid, int num_data, void *data);
|
||||
KMP_EXPORT void *__kmpc_task_reduction_get_th_data(int gtid, void *tg, void *d);
|
||||
KMP_EXPORT kmp_int32 __kmpc_omp_reg_task_with_affinity(
|
||||
ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *new_task, kmp_int32 naffins,
|
||||
kmp_task_affinity_info_t *affin_list);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1392,6 +1392,28 @@ kmp_task_t *__kmpc_omp_task_alloc(ident_t *loc_ref, kmp_int32 gtid,
|
|||
return retval;
|
||||
}
|
||||
|
||||
#if OMP_50_ENABLED
|
||||
/*!
|
||||
@ingroup TASKING
|
||||
@param loc_ref location of the original task directive
|
||||
@param gtid Global Thread ID of encountering thread
|
||||
@param new_task task thunk allocated by __kmpc_omp_task_alloc() for the ''new
|
||||
task''
|
||||
@param naffins Number of affinity items
|
||||
@param affin_list List of affinity items
|
||||
@return Returns non-zero if registering affinity information was not successful.
|
||||
Returns 0 if registration was successful
|
||||
This entry registers the affinity information attached to a task with the task
|
||||
thunk structure kmp_taskdata_t.
|
||||
*/
|
||||
kmp_int32
|
||||
__kmpc_omp_reg_task_with_affinity(ident_t *loc_ref, kmp_int32 gtid,
|
||||
kmp_task_t *new_task, kmp_int32 naffins,
|
||||
kmp_task_affinity_info_t *affin_list) {
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
// __kmp_invoke_task: invoke the specified task
|
||||
//
|
||||
// gtid: global thread ID of caller
|
||||
|
|
Loading…
Reference in New Issue