[OpenMP][NFC] clang-format the whole openmp project
Same script as D95318. Test files are excluded. Reviewed By: AndreyChurbanov Differential Revision: https://reviews.llvm.org/D97088
This commit is contained in:
parent
6984e0d439
commit
309b00a42e
@ -26,6 +26,9 @@ DEVICE void __kmpc_impl_init_lock(omp_lock_t *) { warn(); }
|
||||
DEVICE void __kmpc_impl_destroy_lock(omp_lock_t *) { warn(); }
|
||||
DEVICE void __kmpc_impl_set_lock(omp_lock_t *) { warn(); }
|
||||
DEVICE void __kmpc_impl_unset_lock(omp_lock_t *) { warn(); }
|
||||
DEVICE int __kmpc_impl_test_lock(omp_lock_t *lock) { warn(); return 0;}
|
||||
DEVICE int __kmpc_impl_test_lock(omp_lock_t *lock) {
|
||||
warn();
|
||||
return 0;
|
||||
}
|
||||
|
||||
#pragma omp end declare target
|
||||
|
||||
@ -40,7 +40,7 @@ class omptarget_nvptx_SharedArgs {
|
||||
public:
|
||||
// All these methods must be called by the master thread only.
|
||||
INLINE void Init() {
|
||||
args = buffer;
|
||||
args = buffer;
|
||||
nArgs = MAX_SHARED_ARGS;
|
||||
}
|
||||
INLINE void DeInit() {
|
||||
@ -62,6 +62,7 @@ public:
|
||||
}
|
||||
// Called by all threads.
|
||||
INLINE void **GetArgs() const { return args; };
|
||||
|
||||
private:
|
||||
// buffer of pre-allocated arguments.
|
||||
void *buffer[MAX_SHARED_ARGS];
|
||||
@ -91,7 +92,7 @@ struct __kmpc_data_sharing_slot {
|
||||
struct DataSharingStateTy {
|
||||
__kmpc_data_sharing_slot *SlotPtr[DS_Max_Warp_Number];
|
||||
void *StackPtr[DS_Max_Warp_Number];
|
||||
void * volatile FramePtr[DS_Max_Warp_Number];
|
||||
void *volatile FramePtr[DS_Max_Warp_Number];
|
||||
__kmpc_impl_lanemask_t ActiveThreads[DS_Max_Warp_Number];
|
||||
};
|
||||
|
||||
|
||||
@ -30,8 +30,7 @@ INLINE void omptarget_nvptx_TaskDescr::SetRuntimeSched(omp_sched_t sched) {
|
||||
items.flags |= val;
|
||||
}
|
||||
|
||||
INLINE void
|
||||
omptarget_nvptx_TaskDescr::InitLevelZeroTaskDescr() {
|
||||
INLINE void omptarget_nvptx_TaskDescr::InitLevelZeroTaskDescr() {
|
||||
// slow method
|
||||
// flag:
|
||||
// default sched is static,
|
||||
@ -53,10 +52,9 @@ INLINE void omptarget_nvptx_TaskDescr::InitLevelOneTaskDescr(
|
||||
// dyn is off (unused now anyway, but may need to sample from host ?)
|
||||
// in L1 parallel
|
||||
|
||||
items.flags =
|
||||
TaskDescr_InPar | TaskDescr_IsParConstr; // set flag to parallel
|
||||
items.flags = TaskDescr_InPar | TaskDescr_IsParConstr; // set flag to parallel
|
||||
items.threadId =
|
||||
GetThreadIdInBlock(); // get ids from cuda (only called for 1st level)
|
||||
GetThreadIdInBlock(); // get ids from cuda (only called for 1st level)
|
||||
items.runtimeChunkSize = 1; // preferred chunking statik with chunk 1
|
||||
prev = parentTaskDescr;
|
||||
}
|
||||
|
||||
@ -11,8 +11,8 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
#pragma omp declare target
|
||||
|
||||
#include "interface.h"
|
||||
#include "common/debug.h"
|
||||
#include "interface.h"
|
||||
|
||||
EXTERN int32_t __kmpc_cancellationpoint(kmp_Ident *loc, int32_t global_tid,
|
||||
int32_t cancelVal) {
|
||||
|
||||
@ -11,8 +11,8 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
#pragma omp declare target
|
||||
|
||||
#include "interface.h"
|
||||
#include "common/debug.h"
|
||||
#include "interface.h"
|
||||
|
||||
EXTERN
|
||||
void __kmpc_critical(kmp_Ident *loc, int32_t global_tid,
|
||||
|
||||
@ -62,7 +62,7 @@ EXTERN void __kmpc_data_sharing_init_stack_spmd() {
|
||||
__kmpc_impl_threadfence_block();
|
||||
}
|
||||
|
||||
INLINE static void* data_sharing_push_stack_common(size_t PushSize) {
|
||||
INLINE static void *data_sharing_push_stack_common(size_t PushSize) {
|
||||
ASSERT0(LT_FUSSY, isRuntimeInitialized(), "Expected initialized runtime.");
|
||||
|
||||
// Only warp active master threads manage the stack.
|
||||
@ -103,7 +103,7 @@ INLINE static void* data_sharing_push_stack_common(size_t PushSize) {
|
||||
size_t DefaultSlotSize = DS_Worker_Warp_Slot_Size;
|
||||
if (DefaultSlotSize > NewSize)
|
||||
NewSize = DefaultSlotSize;
|
||||
NewSlot = (__kmpc_data_sharing_slot *) SafeMalloc(
|
||||
NewSlot = (__kmpc_data_sharing_slot *)SafeMalloc(
|
||||
sizeof(__kmpc_data_sharing_slot) + NewSize,
|
||||
"Global memory slot allocation.");
|
||||
|
||||
@ -163,8 +163,8 @@ EXTERN void *__kmpc_data_sharing_push_stack(size_t DataSize,
|
||||
|
||||
// Compute the start address of the frame of each thread in the warp.
|
||||
uintptr_t FrameStartAddress =
|
||||
(uintptr_t) data_sharing_push_stack_common(PushSize);
|
||||
FrameStartAddress += (uintptr_t) (GetLaneId() * DataSize);
|
||||
(uintptr_t)data_sharing_push_stack_common(PushSize);
|
||||
FrameStartAddress += (uintptr_t)(GetLaneId() * DataSize);
|
||||
return (void *)FrameStartAddress;
|
||||
}
|
||||
|
||||
|
||||
@ -410,7 +410,7 @@ public:
|
||||
T loopLowerBound, T loopUpperBound) {
|
||||
T N = NextIter();
|
||||
lb = loopLowerBound + N * chunkSize;
|
||||
ub = lb + chunkSize - 1; // Clang uses i <= ub
|
||||
ub = lb + chunkSize - 1; // Clang uses i <= ub
|
||||
|
||||
// 3 result cases:
|
||||
// a. lb and ub < loopUpperBound --> NOT_FINISHED
|
||||
@ -567,9 +567,9 @@ EXTERN int __kmpc_dispatch_next_4(kmp_Ident *loc, int32_t tid, int32_t *p_last,
|
||||
loc, tid, p_last, p_lb, p_ub, p_st);
|
||||
}
|
||||
|
||||
EXTERN int __kmpc_dispatch_next_4u(kmp_Ident *loc, int32_t tid,
|
||||
int32_t *p_last, uint32_t *p_lb,
|
||||
uint32_t *p_ub, int32_t *p_st) {
|
||||
EXTERN int __kmpc_dispatch_next_4u(kmp_Ident *loc, int32_t tid, int32_t *p_last,
|
||||
uint32_t *p_lb, uint32_t *p_ub,
|
||||
int32_t *p_st) {
|
||||
PRINT0(LD_IO, "call kmpc_dispatch_next_4u\n");
|
||||
return omptarget_nvptx_LoopSupport<uint32_t, int32_t>::dispatch_next(
|
||||
loc, tid, p_last, p_lb, p_ub, p_st);
|
||||
@ -582,9 +582,9 @@ EXTERN int __kmpc_dispatch_next_8(kmp_Ident *loc, int32_t tid, int32_t *p_last,
|
||||
loc, tid, p_last, p_lb, p_ub, p_st);
|
||||
}
|
||||
|
||||
EXTERN int __kmpc_dispatch_next_8u(kmp_Ident *loc, int32_t tid,
|
||||
int32_t *p_last, uint64_t *p_lb,
|
||||
uint64_t *p_ub, int64_t *p_st) {
|
||||
EXTERN int __kmpc_dispatch_next_8u(kmp_Ident *loc, int32_t tid, int32_t *p_last,
|
||||
uint64_t *p_lb, uint64_t *p_ub,
|
||||
int64_t *p_st) {
|
||||
PRINT0(LD_IO, "call kmpc_dispatch_next_8u\n");
|
||||
return omptarget_nvptx_LoopSupport<uint64_t, int64_t>::dispatch_next(
|
||||
loc, tid, p_last, p_lb, p_ub, p_st);
|
||||
@ -708,10 +708,12 @@ void __kmpc_for_static_init_8u_simple_spmd(kmp_Ident *loc, int32_t global_tid,
|
||||
}
|
||||
|
||||
EXTERN
|
||||
void __kmpc_for_static_init_4_simple_generic(
|
||||
kmp_Ident *loc, int32_t global_tid, int32_t schedtype, int32_t *plastiter,
|
||||
int32_t *plower, int32_t *pupper, int32_t *pstride, int32_t incr,
|
||||
int32_t chunk) {
|
||||
void __kmpc_for_static_init_4_simple_generic(kmp_Ident *loc, int32_t global_tid,
|
||||
int32_t schedtype,
|
||||
int32_t *plastiter,
|
||||
int32_t *plower, int32_t *pupper,
|
||||
int32_t *pstride, int32_t incr,
|
||||
int32_t chunk) {
|
||||
PRINT0(LD_IO, "call kmpc_for_static_init_4_simple_generic\n");
|
||||
omptarget_nvptx_LoopSupport<int32_t, int32_t>::for_static_init(
|
||||
global_tid, schedtype, plastiter, plower, pupper, pstride, chunk,
|
||||
@ -730,10 +732,12 @@ void __kmpc_for_static_init_4u_simple_generic(
|
||||
}
|
||||
|
||||
EXTERN
|
||||
void __kmpc_for_static_init_8_simple_generic(
|
||||
kmp_Ident *loc, int32_t global_tid, int32_t schedtype, int32_t *plastiter,
|
||||
int64_t *plower, int64_t *pupper, int64_t *pstride, int64_t incr,
|
||||
int64_t chunk) {
|
||||
void __kmpc_for_static_init_8_simple_generic(kmp_Ident *loc, int32_t global_tid,
|
||||
int32_t schedtype,
|
||||
int32_t *plastiter,
|
||||
int64_t *plower, int64_t *pupper,
|
||||
int64_t *pstride, int64_t incr,
|
||||
int64_t chunk) {
|
||||
PRINT0(LD_IO, "call kmpc_for_static_init_8_simple_generic\n");
|
||||
omptarget_nvptx_LoopSupport<int64_t, int64_t>::for_static_init(
|
||||
global_tid, schedtype, plastiter, plower, pupper, pstride, chunk,
|
||||
|
||||
@ -79,7 +79,8 @@ EXTERN void __kmpc_kernel_deinit(int16_t IsOMPRuntimeInitialized) {
|
||||
omptarget_nvptx_workFn = 0;
|
||||
}
|
||||
|
||||
EXTERN void __kmpc_spmd_kernel_init(int ThreadLimit, int16_t RequiresOMPRuntime) {
|
||||
EXTERN void __kmpc_spmd_kernel_init(int ThreadLimit,
|
||||
int16_t RequiresOMPRuntime) {
|
||||
PRINT0(LD_IO, "call to __kmpc_spmd_kernel_init\n");
|
||||
|
||||
setExecutionParameters(Spmd, RequiresOMPRuntime ? RuntimeInitialized
|
||||
|
||||
@ -188,9 +188,9 @@ EXTERN void __kmpc_kernel_end_parallel() {
|
||||
// If we have the whole warp, reconverge all the threads in the warp before
|
||||
// actually trying to change the parallel level. Otherwise, parallel level can
|
||||
// be changed incorrectly because of threads divergence.
|
||||
bool IsActiveParallelRegion = threadsInTeam != 1;
|
||||
DecParallelLevel(IsActiveParallelRegion,
|
||||
IsActiveParallelRegion ? __kmpc_impl_all_lanes : 1u);
|
||||
bool IsActiveParallelRegion = threadsInTeam != 1;
|
||||
DecParallelLevel(IsActiveParallelRegion,
|
||||
IsActiveParallelRegion ? __kmpc_impl_all_lanes : 1u);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@ -281,7 +281,8 @@ EXTERN int32_t __kmpc_global_thread_num(kmp_Ident *loc) {
|
||||
EXTERN void __kmpc_push_num_threads(kmp_Ident *loc, int32_t tid,
|
||||
int32_t num_threads) {
|
||||
PRINT(LD_IO, "call kmpc_push_num_threads %d\n", num_threads);
|
||||
ASSERT0(LT_FUSSY, checkRuntimeInitialized(loc), "Runtime must be initialized.");
|
||||
ASSERT0(LT_FUSSY, checkRuntimeInitialized(loc),
|
||||
"Runtime must be initialized.");
|
||||
tid = GetLogicalThreadIdInBlock(checkSPMDMode(loc));
|
||||
omptarget_nvptx_threadPrivateContext->NumThreadsForNextParallel(tid) =
|
||||
num_threads;
|
||||
@ -293,12 +294,10 @@ EXTERN void __kmpc_push_num_threads(kmp_Ident *loc, int32_t tid,
|
||||
EXTERN void __kmpc_push_num_teams(kmp_Ident *loc, int32_t tid,
|
||||
int32_t num_teams, int32_t thread_limit) {
|
||||
PRINT(LD_IO, "call kmpc_push_num_teams %d\n", (int)num_teams);
|
||||
ASSERT0(LT_FUSSY, 0,
|
||||
"should never have anything with new teams on device");
|
||||
ASSERT0(LT_FUSSY, 0, "should never have anything with new teams on device");
|
||||
}
|
||||
|
||||
EXTERN void __kmpc_push_proc_bind(kmp_Ident *loc, uint32_t tid,
|
||||
int proc_bind) {
|
||||
EXTERN void __kmpc_push_proc_bind(kmp_Ident *loc, uint32_t tid, int proc_bind) {
|
||||
PRINT(LD_IO, "call kmpc_push_proc_bind %d\n", (int)proc_bind);
|
||||
}
|
||||
|
||||
|
||||
@ -25,11 +25,11 @@ EXTERN int32_t __kmpc_shuffle_int32(int32_t val, int16_t delta, int16_t size) {
|
||||
}
|
||||
|
||||
EXTERN int64_t __kmpc_shuffle_int64(int64_t val, int16_t delta, int16_t size) {
|
||||
uint32_t lo, hi;
|
||||
__kmpc_impl_unpack(val, lo, hi);
|
||||
hi = __kmpc_impl_shfl_down_sync(__kmpc_impl_all_lanes, hi, delta, size);
|
||||
lo = __kmpc_impl_shfl_down_sync(__kmpc_impl_all_lanes, lo, delta, size);
|
||||
return __kmpc_impl_pack(lo, hi);
|
||||
uint32_t lo, hi;
|
||||
__kmpc_impl_unpack(val, lo, hi);
|
||||
hi = __kmpc_impl_shfl_down_sync(__kmpc_impl_all_lanes, hi, delta, size);
|
||||
lo = __kmpc_impl_shfl_down_sync(__kmpc_impl_all_lanes, lo, delta, size);
|
||||
return __kmpc_impl_pack(lo, hi);
|
||||
}
|
||||
|
||||
INLINE static void gpu_regular_warp_reduce(void *reduce_data,
|
||||
@ -84,16 +84,16 @@ static int32_t nvptx_parallel_reduce_nowait(
|
||||
uint32_t NumThreads = GetNumberOfOmpThreads(isSPMDExecutionMode);
|
||||
if (NumThreads == 1)
|
||||
return 1;
|
||||
/*
|
||||
* This reduce function handles reduction within a team. It handles
|
||||
* parallel regions in both L1 and L2 parallelism levels. It also
|
||||
* supports Generic, SPMD, and NoOMP modes.
|
||||
*
|
||||
* 1. Reduce within a warp.
|
||||
* 2. Warp master copies value to warp 0 via shared memory.
|
||||
* 3. Warp 0 reduces to a single value.
|
||||
* 4. The reduced value is available in the thread that returns 1.
|
||||
*/
|
||||
/*
|
||||
* This reduce function handles reduction within a team. It handles
|
||||
* parallel regions in both L1 and L2 parallelism levels. It also
|
||||
* supports Generic, SPMD, and NoOMP modes.
|
||||
*
|
||||
* 1. Reduce within a warp.
|
||||
* 2. Warp master copies value to warp 0 via shared memory.
|
||||
* 3. Warp 0 reduces to a single value.
|
||||
* 4. The reduced value is available in the thread that returns 1.
|
||||
*/
|
||||
|
||||
#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 700
|
||||
uint32_t WarpsNeeded = (NumThreads + WARPSIZE - 1) / WARPSIZE;
|
||||
|
||||
@ -11,9 +11,9 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
#pragma omp declare target
|
||||
|
||||
#include "common/support.h"
|
||||
#include "common/debug.h"
|
||||
#include "common/omptarget.h"
|
||||
#include "common/support.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Execution Parameters
|
||||
@ -58,9 +58,7 @@ DEVICE bool checkSPMDMode(kmp_Ident *loc) {
|
||||
return isSPMDMode();
|
||||
}
|
||||
|
||||
DEVICE bool checkGenericMode(kmp_Ident *loc) {
|
||||
return !checkSPMDMode(loc);
|
||||
}
|
||||
DEVICE bool checkGenericMode(kmp_Ident *loc) { return !checkSPMDMode(loc); }
|
||||
|
||||
DEVICE bool checkRuntimeUninitialized(kmp_Ident *loc) {
|
||||
if (!loc)
|
||||
@ -107,7 +105,9 @@ DEVICE bool checkRuntimeInitialized(kmp_Ident *loc) {
|
||||
// If NumThreads is 1024, master id is 992.
|
||||
//
|
||||
// Called in Generic Execution Mode only.
|
||||
DEVICE int GetMasterThreadID() { return (GetNumberOfThreadsInBlock() - 1) & ~(WARPSIZE - 1); }
|
||||
DEVICE int GetMasterThreadID() {
|
||||
return (GetNumberOfThreadsInBlock() - 1) & ~(WARPSIZE - 1);
|
||||
}
|
||||
|
||||
// The last warp is reserved for the master; other warps are workers.
|
||||
// Called in Generic Execution Mode only.
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
#include "common/omptarget.h"
|
||||
|
||||
EXTERN kmp_TaskDescr *__kmpc_omp_task_alloc(
|
||||
kmp_Ident *loc, // unused
|
||||
kmp_Ident *loc, // unused
|
||||
uint32_t global_tid, // unused
|
||||
int32_t flag, // unused (because in our impl, all are immediately exec
|
||||
size_t sizeOfTaskInclPrivate, size_t sizeOfSharedTable,
|
||||
|
||||
@ -29,8 +29,7 @@ INLINE uint32_t omptarget_nvptx_Queue<ElementType, SIZE>::DEQUEUE_TICKET() {
|
||||
}
|
||||
|
||||
template <typename ElementType, uint32_t SIZE>
|
||||
INLINE uint32_t
|
||||
omptarget_nvptx_Queue<ElementType, SIZE>::ID(uint32_t ticket) {
|
||||
INLINE uint32_t omptarget_nvptx_Queue<ElementType, SIZE>::ID(uint32_t ticket) {
|
||||
return (ticket / SIZE) * 2;
|
||||
}
|
||||
|
||||
|
||||
@ -57,8 +57,8 @@ DEVICE int GetNumberOfWorkersInTeam();
|
||||
|
||||
// get OpenMP thread and team ids
|
||||
DEVICE int GetOmpThreadId(int threadId,
|
||||
bool isSPMDExecutionMode); // omp_thread_num
|
||||
DEVICE int GetOmpTeamId(); // omp_team_num
|
||||
bool isSPMDExecutionMode); // omp_thread_num
|
||||
DEVICE int GetOmpTeamId(); // omp_team_num
|
||||
|
||||
// get OpenMP number of threads and team
|
||||
DEVICE int GetNumberOfOmpThreads(bool isSPMDExecutionMode); // omp_num_threads
|
||||
|
||||
@ -180,14 +180,14 @@ enum {
|
||||
typedef int kmp_int32;
|
||||
typedef struct ident {
|
||||
kmp_int32 reserved_1; /**< might be used in Fortran; see above */
|
||||
kmp_int32 flags; /**< also f.flags; KMP_IDENT_xxx flags; KMP_IDENT_KMPC
|
||||
identifies this union member */
|
||||
kmp_int32 flags; /**< also f.flags; KMP_IDENT_xxx flags; KMP_IDENT_KMPC
|
||||
identifies this union member */
|
||||
kmp_int32 reserved_2; /**< not really used in Fortran any more; see above */
|
||||
kmp_int32 reserved_3; /**< source[4] in Fortran, do not use for C++ */
|
||||
char const *psource; /**< String describing the source location.
|
||||
The string is composed of semi-colon separated fields
|
||||
which describe the source file, the function and a pair
|
||||
of line numbers that delimit the construct. */
|
||||
char const *psource; /**< String describing the source location.
|
||||
The string is composed of semi-colon separated fields
|
||||
which describe the source file, the function and a pair
|
||||
of line numbers that delimit the construct. */
|
||||
} ident_t;
|
||||
|
||||
// parallel defs
|
||||
@ -220,8 +220,7 @@ EXTERN int32_t __kmpc_global_thread_num(kmp_Ident *loc);
|
||||
EXTERN void __kmpc_push_num_threads(kmp_Ident *loc, int32_t global_tid,
|
||||
int32_t num_threads);
|
||||
EXTERN void __kmpc_serialized_parallel(kmp_Ident *loc, uint32_t global_tid);
|
||||
EXTERN void __kmpc_end_serialized_parallel(kmp_Ident *loc,
|
||||
uint32_t global_tid);
|
||||
EXTERN void __kmpc_end_serialized_parallel(kmp_Ident *loc, uint32_t global_tid);
|
||||
EXTERN uint16_t __kmpc_parallel_level(kmp_Ident *loc, uint32_t global_tid);
|
||||
|
||||
// proc bind
|
||||
@ -280,9 +279,8 @@ void __kmpc_for_static_init_8u_simple_spmd(kmp_Ident *loc, int32_t global_tid,
|
||||
int64_t *pstride, int64_t incr,
|
||||
int64_t chunk);
|
||||
EXTERN
|
||||
void __kmpc_for_static_init_4_simple_generic(kmp_Ident *loc,
|
||||
int32_t global_tid, int32_t sched,
|
||||
int32_t *plastiter,
|
||||
void __kmpc_for_static_init_4_simple_generic(kmp_Ident *loc, int32_t global_tid,
|
||||
int32_t sched, int32_t *plastiter,
|
||||
int32_t *plower, int32_t *pupper,
|
||||
int32_t *pstride, int32_t incr,
|
||||
int32_t chunk);
|
||||
@ -292,9 +290,8 @@ void __kmpc_for_static_init_4u_simple_generic(
|
||||
uint32_t *plower, uint32_t *pupper, int32_t *pstride, int32_t incr,
|
||||
int32_t chunk);
|
||||
EXTERN
|
||||
void __kmpc_for_static_init_8_simple_generic(kmp_Ident *loc,
|
||||
int32_t global_tid, int32_t sched,
|
||||
int32_t *plastiter,
|
||||
void __kmpc_for_static_init_8_simple_generic(kmp_Ident *loc, int32_t global_tid,
|
||||
int32_t sched, int32_t *plastiter,
|
||||
int64_t *plower, int64_t *pupper,
|
||||
int64_t *pstride, int64_t incr,
|
||||
int64_t chunk);
|
||||
@ -382,8 +379,8 @@ EXTERN __kmpc_impl_lanemask_t __kmpc_warp_active_thread_mask();
|
||||
EXTERN void __kmpc_syncwarp(__kmpc_impl_lanemask_t);
|
||||
|
||||
// tasks
|
||||
EXTERN kmp_TaskDescr *__kmpc_omp_task_alloc(kmp_Ident *loc,
|
||||
uint32_t global_tid, int32_t flag,
|
||||
EXTERN kmp_TaskDescr *__kmpc_omp_task_alloc(kmp_Ident *loc, uint32_t global_tid,
|
||||
int32_t flag,
|
||||
size_t sizeOfTaskInclPrivate,
|
||||
size_t sizeOfSharedTable,
|
||||
kmp_TaskFctPtr sub);
|
||||
@ -430,8 +427,9 @@ EXTERN void __kmpc_kernel_end_parallel();
|
||||
EXTERN void __kmpc_data_sharing_init_stack();
|
||||
EXTERN void __kmpc_data_sharing_init_stack_spmd();
|
||||
EXTERN void *__kmpc_data_sharing_coalesced_push_stack(size_t size,
|
||||
int16_t UseSharedMemory);
|
||||
EXTERN void *__kmpc_data_sharing_push_stack(size_t size, int16_t UseSharedMemory);
|
||||
int16_t UseSharedMemory);
|
||||
EXTERN void *__kmpc_data_sharing_push_stack(size_t size,
|
||||
int16_t UseSharedMemory);
|
||||
EXTERN void __kmpc_data_sharing_pop_stack(void *a);
|
||||
EXTERN void __kmpc_begin_sharing_variables(void ***GlobalArgs, size_t nArgs);
|
||||
EXTERN void __kmpc_end_sharing_variables();
|
||||
|
||||
@ -11,8 +11,8 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
#pragma omp declare target
|
||||
|
||||
#include "target_impl.h"
|
||||
#include "common/debug.h"
|
||||
#include "target_impl.h"
|
||||
|
||||
DEVICE void __kmpc_impl_unpack(uint64_t val, uint32_t &lo, uint32_t &hi) {
|
||||
asm volatile("mov.b64 {%0,%1}, %2;" : "=r"(lo), "=r"(hi) : "l"(val));
|
||||
|
||||
@ -34,8 +34,8 @@
|
||||
|
||||
#define WARPSIZE 32
|
||||
|
||||
// Maximum number of preallocated arguments to an outlined parallel/simd function.
|
||||
// Anything more requires dynamic memory allocation.
|
||||
// Maximum number of preallocated arguments to an outlined parallel/simd
|
||||
// function. Anything more requires dynamic memory allocation.
|
||||
#define MAX_SHARED_ARGS 20
|
||||
|
||||
// Maximum number of omp state objects per SM allocated statically in global
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
// clang-format off
|
||||
// This file does not contain any code; it just contains additional text and formatting
|
||||
// for doxygen.
|
||||
|
||||
@ -63,7 +64,7 @@ supported are shown in the table below.
|
||||
<tr><td>OS X\other<td>Yes(1,3,4)<td>No<td>Yes(4,6,7)
|
||||
<tr><td>Windows\other OS<td>Yes(1,4)<td>No<td>No
|
||||
</table>
|
||||
(1) On IA-32 architecture and Intel® 64, icc/icl versions 12.x
|
||||
(1) On IA-32 architecture and Intel® 64, icc/icl versions 12.x
|
||||
are supported (12.1 is recommended).<br>
|
||||
(2) gcc version 4.7 is supported.<br>
|
||||
(3) For icc on OS X\other, OS X\other version 10.5.8 is supported.<br>
|
||||
@ -131,9 +132,9 @@ void foo()
|
||||
|
||||
@subsection SEC_SHAREDVARS Addressing shared variables
|
||||
|
||||
In real uses of the OpenMP\other API there are normally references
|
||||
from the outlined code to shared variables that are in scope in the containing function.
|
||||
Therefore the containing function must be able to address
|
||||
In real uses of the OpenMP\other API there are normally references
|
||||
from the outlined code to shared variables that are in scope in the containing function.
|
||||
Therefore the containing function must be able to address
|
||||
these variables. The runtime supports two alternate ways of doing
|
||||
this.
|
||||
|
||||
@ -173,7 +174,7 @@ to the outlined functions. In this way the offsets of the shared variables
|
||||
are known (since they are inside the struct) without needing to know
|
||||
the complete layout of the parent stack-frame. From the point of view
|
||||
of the runtime either of these techniques is equivalent, since in either
|
||||
case it only has to pass a single argument to the outlined function to allow
|
||||
case it only has to pass a single argument to the outlined function to allow
|
||||
it to access shared variables.
|
||||
|
||||
A scheme like this is how gcc\other generates outlined functions.
|
||||
@ -202,49 +203,49 @@ This example shows the code generated for a parallel for with reduction and dyna
|
||||
extern float foo( void );
|
||||
|
||||
int main () {
|
||||
int i;
|
||||
float r = 0.0;
|
||||
#pragma omp parallel for schedule(dynamic) reduction(+:r)
|
||||
int i;
|
||||
float r = 0.0;
|
||||
#pragma omp parallel for schedule(dynamic) reduction(+:r)
|
||||
for ( i = 0; i < 10; i ++ ) {
|
||||
r += foo();
|
||||
r += foo();
|
||||
}
|
||||
}
|
||||
@endcode
|
||||
|
||||
The transformed code looks like this.
|
||||
@code
|
||||
extern float foo( void );
|
||||
extern float foo( void );
|
||||
|
||||
int main () {
|
||||
static int zero = 0;
|
||||
auto int gtid;
|
||||
auto float r = 0.0;
|
||||
__kmpc_begin( & loc3, 0 );
|
||||
static int zero = 0;
|
||||
auto int gtid;
|
||||
auto float r = 0.0;
|
||||
__kmpc_begin( & loc3, 0 );
|
||||
// The gtid is not actually required in this example so could be omitted;
|
||||
// We show its initialization here because it is often required for calls into
|
||||
// the runtime and should be locally cached like this.
|
||||
gtid = __kmpc_global thread num( & loc3 );
|
||||
__kmpc_fork call( & loc7, 1, main_7_parallel_3, & r );
|
||||
__kmpc_end( & loc0 );
|
||||
return 0;
|
||||
gtid = __kmpc_global thread num( & loc3 );
|
||||
__kmpc_fork call( & loc7, 1, main_7_parallel_3, & r );
|
||||
__kmpc_end( & loc0 );
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct main_10_reduction_t_5 { float r_10_rpr; };
|
||||
struct main_10_reduction_t_5 { float r_10_rpr; };
|
||||
|
||||
static kmp_critical_name lck = { 0 };
|
||||
static ident_t loc10; // loc10.flags should contain KMP_IDENT_ATOMIC_REDUCE bit set
|
||||
static ident_t loc10; // loc10.flags should contain KMP_IDENT_ATOMIC_REDUCE bit set
|
||||
// if compiler has generated an atomic reduction.
|
||||
|
||||
void main_7_parallel_3( int *gtid, int *btid, float *r_7_shp ) {
|
||||
auto int i_7_pr;
|
||||
auto int lower, upper, liter, incr;
|
||||
auto struct main_10_reduction_t_5 reduce;
|
||||
reduce.r_10_rpr = 0.F;
|
||||
liter = 0;
|
||||
__kmpc_dispatch_init_4( & loc7,*gtid, 35, 0, 9, 1, 1 );
|
||||
auto int i_7_pr;
|
||||
auto int lower, upper, liter, incr;
|
||||
auto struct main_10_reduction_t_5 reduce;
|
||||
reduce.r_10_rpr = 0.F;
|
||||
liter = 0;
|
||||
__kmpc_dispatch_init_4( & loc7,*gtid, 35, 0, 9, 1, 1 );
|
||||
while ( __kmpc_dispatch_next_4( & loc7, *gtid, & liter, & lower, & upper, & incr ) ) {
|
||||
for( i_7_pr = lower; upper >= i_7_pr; i_7_pr ++ )
|
||||
reduce.r_10_rpr += foo();
|
||||
for( i_7_pr = lower; upper >= i_7_pr; i_7_pr ++ )
|
||||
reduce.r_10_rpr += foo();
|
||||
}
|
||||
switch( __kmpc_reduce_nowait( & loc10, *gtid, 1, 4, & reduce, main_10_reduce_5, & lck ) ) {
|
||||
case 1:
|
||||
@ -256,12 +257,12 @@ void main_7_parallel_3( int *gtid, int *btid, float *r_7_shp ) {
|
||||
break;
|
||||
default:;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void main_10_reduce_5( struct main_10_reduction_t_5 *reduce_lhs,
|
||||
struct main_10_reduction_t_5 *reduce_rhs )
|
||||
{
|
||||
reduce_lhs->r_10_rpr += reduce_rhs->r_10_rpr;
|
||||
void main_10_reduce_5( struct main_10_reduction_t_5 *reduce_lhs,
|
||||
struct main_10_reduction_t_5 *reduce_rhs )
|
||||
{
|
||||
reduce_lhs->r_10_rpr += reduce_rhs->r_10_rpr;
|
||||
}
|
||||
@endcode
|
||||
|
||||
@ -282,9 +283,9 @@ These functions are used for implementing <tt>\#pragma omp parallel</tt>.
|
||||
These functions return information about the currently executing thread.
|
||||
|
||||
@defgroup WORK_SHARING Work Sharing
|
||||
These functions are used for implementing
|
||||
<tt>\#pragma omp for</tt>, <tt>\#pragma omp sections</tt>, <tt>\#pragma omp single</tt> and
|
||||
<tt>\#pragma omp master</tt> constructs.
|
||||
These functions are used for implementing
|
||||
<tt>\#pragma omp for</tt>, <tt>\#pragma omp sections</tt>, <tt>\#pragma omp single</tt> and
|
||||
<tt>\#pragma omp master</tt> constructs.
|
||||
|
||||
When handling loops, there are different functions for each of the signed and unsigned 32 and 64 bit integer types
|
||||
which have the name suffixes `_4`, `_4u`, `_8` and `_8u`. The semantics of each of the functions is the same,
|
||||
@ -293,9 +294,9 @@ so they are only described once.
|
||||
Static loop scheduling is handled by @ref __kmpc_for_static_init_4 and friends. Only a single call is needed,
|
||||
since the iterations to be executed by any give thread can be determined as soon as the loop parameters are known.
|
||||
|
||||
Dynamic scheduling is handled by the @ref __kmpc_dispatch_init_4 and @ref __kmpc_dispatch_next_4 functions.
|
||||
Dynamic scheduling is handled by the @ref __kmpc_dispatch_init_4 and @ref __kmpc_dispatch_next_4 functions.
|
||||
The init function is called once in each thread outside the loop, while the next function is called each
|
||||
time that the previous chunk of work has been exhausted.
|
||||
time that the previous chunk of work has been exhausted.
|
||||
|
||||
@defgroup SYNCHRONIZATION Synchronization
|
||||
These functions are used for implementing barriers.
|
||||
|
||||
@ -1075,13 +1075,11 @@ extern void __kmp_fini_memkind();
|
||||
/* Calculate new number of monitor wakeups for a specific block time based on
|
||||
previous monitor_wakeups. Only allow increasing number of wakeups */
|
||||
#define KMP_WAKEUPS_FROM_BLOCKTIME(blocktime, monitor_wakeups) \
|
||||
(((blocktime) == KMP_MAX_BLOCKTIME) \
|
||||
(((blocktime) == KMP_MAX_BLOCKTIME) ? (monitor_wakeups) \
|
||||
: ((blocktime) == KMP_MIN_BLOCKTIME) ? KMP_MAX_MONITOR_WAKEUPS \
|
||||
: ((monitor_wakeups) > (KMP_BLOCKTIME_MULTIPLIER / (blocktime))) \
|
||||
? (monitor_wakeups) \
|
||||
: ((blocktime) == KMP_MIN_BLOCKTIME) \
|
||||
? KMP_MAX_MONITOR_WAKEUPS \
|
||||
: ((monitor_wakeups) > (KMP_BLOCKTIME_MULTIPLIER / (blocktime))) \
|
||||
? (monitor_wakeups) \
|
||||
: (KMP_BLOCKTIME_MULTIPLIER) / (blocktime))
|
||||
: (KMP_BLOCKTIME_MULTIPLIER) / (blocktime))
|
||||
|
||||
/* Calculate number of intervals for a specific block time based on
|
||||
monitor_wakeups */
|
||||
@ -1368,8 +1366,7 @@ static inline void __kmp_x86_pause(void) { _mm_pause(); }
|
||||
#endif
|
||||
#endif // KMP_HAVE_WAITPKG_INTRINSICS
|
||||
KMP_ATTRIBUTE_TARGET_WAITPKG
|
||||
static inline int
|
||||
__kmp_tpause(uint32_t hint, uint64_t counter) {
|
||||
static inline int __kmp_tpause(uint32_t hint, uint64_t counter) {
|
||||
#if !KMP_HAVE_WAITPKG_INTRINSICS
|
||||
uint32_t timeHi = uint32_t(counter >> 32);
|
||||
uint32_t timeLo = uint32_t(counter & 0xffffffff);
|
||||
@ -1385,8 +1382,7 @@ __kmp_tpause(uint32_t hint, uint64_t counter) {
|
||||
#endif
|
||||
}
|
||||
KMP_ATTRIBUTE_TARGET_WAITPKG
|
||||
static inline void
|
||||
__kmp_umonitor(void *cacheline) {
|
||||
static inline void __kmp_umonitor(void *cacheline) {
|
||||
#if !KMP_HAVE_WAITPKG_INTRINSICS
|
||||
__asm__ volatile("# umonitor\n.byte 0xF3, 0x0F, 0xAE, 0x01 "
|
||||
:
|
||||
@ -1397,8 +1393,7 @@ __kmp_umonitor(void *cacheline) {
|
||||
#endif
|
||||
}
|
||||
KMP_ATTRIBUTE_TARGET_WAITPKG
|
||||
static inline int
|
||||
__kmp_umwait(uint32_t hint, uint64_t counter) {
|
||||
static inline int __kmp_umwait(uint32_t hint, uint64_t counter) {
|
||||
#if !KMP_HAVE_WAITPKG_INTRINSICS
|
||||
uint32_t timeHi = uint32_t(counter >> 32);
|
||||
uint32_t timeLo = uint32_t(counter & 0xffffffff);
|
||||
@ -1911,9 +1906,8 @@ typedef enum kmp_bar_pat { /* Barrier communication patterns */
|
||||
0, /* Single level (degenerate) tree */
|
||||
bp_tree_bar =
|
||||
1, /* Balanced tree with branching factor 2^n */
|
||||
bp_hyper_bar =
|
||||
2, /* Hypercube-embedded tree with min branching
|
||||
factor 2^n */
|
||||
bp_hyper_bar = 2, /* Hypercube-embedded tree with min
|
||||
branching factor 2^n */
|
||||
bp_hierarchical_bar = 3, /* Machine hierarchy tree */
|
||||
bp_last_bar /* Placeholder to mark the end */
|
||||
} kmp_bar_pat_e;
|
||||
@ -2698,7 +2692,9 @@ typedef union KMP_ALIGN_CACHE kmp_info {
|
||||
|
||||
// OpenMP thread team data structures
|
||||
|
||||
typedef struct kmp_base_data { volatile kmp_uint32 t_value; } kmp_base_data_t;
|
||||
typedef struct kmp_base_data {
|
||||
volatile kmp_uint32 t_value;
|
||||
} kmp_base_data_t;
|
||||
|
||||
typedef union KMP_ALIGN_CACHE kmp_sleep_team {
|
||||
double dt_align; /* use worst case alignment */
|
||||
@ -3073,9 +3069,8 @@ extern int __kmp_ncores; /* Total number of cores for threads placement */
|
||||
extern int __kmp_abort_delay;
|
||||
|
||||
extern int __kmp_need_register_atfork_specified;
|
||||
extern int
|
||||
__kmp_need_register_atfork; /* At initialization, call pthread_atfork to
|
||||
install fork handler */
|
||||
extern int __kmp_need_register_atfork; /* At initialization, call pthread_atfork
|
||||
to install fork handler */
|
||||
extern int __kmp_gtid_mode; /* Method of getting gtid, values:
|
||||
0 - not set, will be set at runtime
|
||||
1 - using stack search
|
||||
@ -3443,7 +3438,7 @@ extern void __kmp_wait_64(kmp_info_t *this_thr, kmp_flag_64<> *flag,
|
||||
,
|
||||
void *itt_sync_obj
|
||||
#endif
|
||||
);
|
||||
);
|
||||
extern void __kmp_release_64(kmp_flag_64<> *flag);
|
||||
|
||||
extern void __kmp_infinite_loop(void);
|
||||
@ -3701,7 +3696,7 @@ extern int __kmp_invoke_microtask(microtask_t pkfn, int gtid, int npr, int argc,
|
||||
,
|
||||
void **exit_frame_ptr
|
||||
#endif
|
||||
);
|
||||
);
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
@ -3778,12 +3773,9 @@ KMP_EXPORT kmp_task_t *__kmpc_omp_task_alloc(ident_t *loc_ref, kmp_int32 gtid,
|
||||
size_t sizeof_kmp_task_t,
|
||||
size_t sizeof_shareds,
|
||||
kmp_routine_entry_t task_entry);
|
||||
KMP_EXPORT kmp_task_t *__kmpc_omp_target_task_alloc(ident_t *loc_ref, kmp_int32 gtid,
|
||||
kmp_int32 flags,
|
||||
size_t sizeof_kmp_task_t,
|
||||
size_t sizeof_shareds,
|
||||
kmp_routine_entry_t task_entry,
|
||||
kmp_int64 device_id);
|
||||
KMP_EXPORT kmp_task_t *__kmpc_omp_target_task_alloc(
|
||||
ident_t *loc_ref, kmp_int32 gtid, kmp_int32 flags, size_t sizeof_kmp_task_t,
|
||||
size_t sizeof_shareds, kmp_routine_entry_t task_entry, kmp_int64 device_id);
|
||||
KMP_EXPORT void __kmpc_omp_task_begin_if0(ident_t *loc_ref, kmp_int32 gtid,
|
||||
kmp_task_t *task);
|
||||
KMP_EXPORT void __kmpc_omp_task_complete_if0(ident_t *loc_ref, kmp_int32 gtid,
|
||||
|
||||
@ -597,9 +597,8 @@ static int __kmp_hwloc_get_nobjs_under_obj(hwloc_obj_t obj,
|
||||
hwloc_obj_t first;
|
||||
for (first = hwloc_get_obj_below_by_type(__kmp_hwloc_topology, obj->type,
|
||||
obj->logical_index, type, 0);
|
||||
first != NULL &&
|
||||
hwloc_get_ancestor_obj_by_type(__kmp_hwloc_topology, obj->type, first) ==
|
||||
obj;
|
||||
first != NULL && hwloc_get_ancestor_obj_by_type(__kmp_hwloc_topology,
|
||||
obj->type, first) == obj;
|
||||
first = hwloc_get_next_obj_by_type(__kmp_hwloc_topology, first->type,
|
||||
first)) {
|
||||
++retval;
|
||||
@ -926,8 +925,9 @@ static int __kmp_affinity_create_hwloc_map(AddrUnsPair **address2os,
|
||||
c = ratio[level];
|
||||
plural = (c > 1);
|
||||
if (level == 0) {
|
||||
__kmp_str_buf_print(&buf, "%d %s", c, __kmp_hw_get_catalog_string(
|
||||
numerator_type, plural));
|
||||
__kmp_str_buf_print(
|
||||
&buf, "%d %s", c,
|
||||
__kmp_hw_get_catalog_string(numerator_type, plural));
|
||||
} else {
|
||||
__kmp_str_buf_print(&buf, " x %d %s/%s", c,
|
||||
__kmp_hw_get_catalog_string(numerator_type, plural),
|
||||
@ -1969,8 +1969,9 @@ static int __kmp_affinity_create_x2apicid_map(AddrUnsPair **address2os,
|
||||
c = ratio[level];
|
||||
plural = (c > 1);
|
||||
if (level == 0) {
|
||||
__kmp_str_buf_print(&buf, "%d %s", c, __kmp_hw_get_catalog_string(
|
||||
numerator_type, plural));
|
||||
__kmp_str_buf_print(
|
||||
&buf, "%d %s", c,
|
||||
__kmp_hw_get_catalog_string(numerator_type, plural));
|
||||
} else {
|
||||
__kmp_str_buf_print(&buf, " x %d %s/%s", c,
|
||||
__kmp_hw_get_catalog_string(numerator_type, plural),
|
||||
@ -2074,7 +2075,7 @@ static void __kmp_dispatch_set_hierarchy_values() {
|
||||
__kmp_hier_max_units[kmp_hier_layer_e::LAYER_THREAD + 1] =
|
||||
nPackages * nCoresPerPkg * __kmp_nThreadsPerCore;
|
||||
__kmp_hier_max_units[kmp_hier_layer_e::LAYER_L1 + 1] = __kmp_ncores;
|
||||
#if KMP_ARCH_X86_64 && (KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS) && \
|
||||
#if KMP_ARCH_X86_64 && (KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS) && \
|
||||
KMP_MIC_SUPPORTED
|
||||
if (__kmp_mic_type >= mic3)
|
||||
__kmp_hier_max_units[kmp_hier_layer_e::LAYER_L2 + 1] = __kmp_ncores / 2;
|
||||
@ -2089,7 +2090,7 @@ static void __kmp_dispatch_set_hierarchy_values() {
|
||||
__kmp_hier_threads_per[kmp_hier_layer_e::LAYER_THREAD + 1] = 1;
|
||||
__kmp_hier_threads_per[kmp_hier_layer_e::LAYER_L1 + 1] =
|
||||
__kmp_nThreadsPerCore;
|
||||
#if KMP_ARCH_X86_64 && (KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS) && \
|
||||
#if KMP_ARCH_X86_64 && (KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS) && \
|
||||
KMP_MIC_SUPPORTED
|
||||
if (__kmp_mic_type >= mic3)
|
||||
__kmp_hier_threads_per[kmp_hier_layer_e::LAYER_L2 + 1] =
|
||||
@ -4078,12 +4079,10 @@ static void __kmp_apply_thread_places(AddrUnsPair **pAddr, int depth) {
|
||||
}
|
||||
}
|
||||
}
|
||||
KMP_DEBUG_ASSERT(n_old ==
|
||||
nPackages * nDiesPerPkg * nCoresPerPkg *
|
||||
__kmp_nThreadsPerCore);
|
||||
KMP_DEBUG_ASSERT(n_new ==
|
||||
__kmp_hws_socket.num * __kmp_hws_die.num *
|
||||
__kmp_hws_core.num * __kmp_hws_proc.num);
|
||||
KMP_DEBUG_ASSERT(n_old == nPackages * nDiesPerPkg * nCoresPerPkg *
|
||||
__kmp_nThreadsPerCore);
|
||||
KMP_DEBUG_ASSERT(n_new == __kmp_hws_socket.num * __kmp_hws_die.num *
|
||||
__kmp_hws_core.num * __kmp_hws_proc.num);
|
||||
nPackages = __kmp_hws_socket.num; // correct nPackages
|
||||
nCoresPerPkg = __kmp_hws_core.num; // correct nCoresPerPkg
|
||||
nDiesPerPkg = __kmp_hws_die.num; // correct nDiesPerPkg
|
||||
@ -4450,9 +4449,9 @@ static void __kmp_aux_affinity_initialize(void) {
|
||||
}
|
||||
#endif // KMP_USE_HWLOC
|
||||
|
||||
// If the user has specified that a particular topology discovery method is to be
|
||||
// used, then we abort if that method fails. The exception is group affinity,
|
||||
// which might have been implicitly set.
|
||||
// If the user has specified that a particular topology discovery method is to
|
||||
// be used, then we abort if that method fails. The exception is group
|
||||
// affinity, which might have been implicitly set.
|
||||
|
||||
#if KMP_ARCH_X86 || KMP_ARCH_X86_64
|
||||
|
||||
@ -4570,7 +4569,7 @@ static void __kmp_aux_affinity_initialize(void) {
|
||||
#if KMP_USE_HWLOC
|
||||
&& __kmp_tile_depth == 0
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
// tiles requested but not detected, warn user on this
|
||||
KMP_WARNING(AffTilesNoTiles, "KMP_AFFINITY");
|
||||
}
|
||||
@ -4615,10 +4614,10 @@ static void __kmp_aux_affinity_initialize(void) {
|
||||
}
|
||||
break;
|
||||
|
||||
// The other affinity types rely on sorting the Addresses according to some
|
||||
// permutation of the machine topology tree. Set __kmp_affinity_compact and
|
||||
// __kmp_affinity_offset appropriately, then jump to a common code fragment
|
||||
// to do the sort and create the array of affinity masks.
|
||||
// The other affinity types rely on sorting the Addresses according to some
|
||||
// permutation of the machine topology tree. Set __kmp_affinity_compact and
|
||||
// __kmp_affinity_offset appropriately, then jump to a common code fragment
|
||||
// to do the sort and create the array of affinity masks.
|
||||
|
||||
case affinity_logical:
|
||||
__kmp_affinity_compact = 0;
|
||||
@ -4964,14 +4963,15 @@ int __kmp_aux_set_affinity(void **mask) {
|
||||
}
|
||||
|
||||
gtid = __kmp_entry_gtid();
|
||||
KA_TRACE(1000, (""); {
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf(
|
||||
"kmp_set_affinity: setting affinity mask for thread %d = %s\n", gtid,
|
||||
buf);
|
||||
});
|
||||
KA_TRACE(
|
||||
1000, (""); {
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf(
|
||||
"kmp_set_affinity: setting affinity mask for thread %d = %s\n",
|
||||
gtid, buf);
|
||||
});
|
||||
|
||||
if (__kmp_env_consistency_check) {
|
||||
if ((mask == NULL) || (*mask == NULL)) {
|
||||
@ -5032,13 +5032,15 @@ int __kmp_aux_get_affinity(void **mask) {
|
||||
th = __kmp_threads[gtid];
|
||||
KMP_DEBUG_ASSERT(th->th.th_affin_mask != NULL);
|
||||
|
||||
KA_TRACE(1000, (""); {
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
th->th.th_affin_mask);
|
||||
__kmp_printf("kmp_get_affinity: stored affinity mask for thread %d = %s\n",
|
||||
gtid, buf);
|
||||
});
|
||||
KA_TRACE(
|
||||
1000, (""); {
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
th->th.th_affin_mask);
|
||||
__kmp_printf(
|
||||
"kmp_get_affinity: stored affinity mask for thread %d = %s\n", gtid,
|
||||
buf);
|
||||
});
|
||||
|
||||
if (__kmp_env_consistency_check) {
|
||||
if ((mask == NULL) || (*mask == NULL)) {
|
||||
@ -5049,13 +5051,15 @@ int __kmp_aux_get_affinity(void **mask) {
|
||||
#if !KMP_OS_WINDOWS
|
||||
|
||||
retval = __kmp_get_system_affinity((kmp_affin_mask_t *)(*mask), FALSE);
|
||||
KA_TRACE(1000, (""); {
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_printf("kmp_get_affinity: system affinity mask for thread %d = %s\n",
|
||||
gtid, buf);
|
||||
});
|
||||
KA_TRACE(
|
||||
1000, (""); {
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_printf(
|
||||
"kmp_get_affinity: system affinity mask for thread %d = %s\n", gtid,
|
||||
buf);
|
||||
});
|
||||
return retval;
|
||||
|
||||
#else
|
||||
@ -5084,15 +5088,16 @@ int __kmp_aux_set_affinity_mask_proc(int proc, void **mask) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
KA_TRACE(1000, (""); {
|
||||
int gtid = __kmp_entry_gtid();
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf("kmp_set_affinity_mask_proc: setting proc %d in "
|
||||
"affinity mask for thread %d = %s\n",
|
||||
proc, gtid, buf);
|
||||
});
|
||||
KA_TRACE(
|
||||
1000, (""); {
|
||||
int gtid = __kmp_entry_gtid();
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf("kmp_set_affinity_mask_proc: setting proc %d in "
|
||||
"affinity mask for thread %d = %s\n",
|
||||
proc, gtid, buf);
|
||||
});
|
||||
|
||||
if (__kmp_env_consistency_check) {
|
||||
if ((mask == NULL) || (*mask == NULL)) {
|
||||
@ -5116,15 +5121,16 @@ int __kmp_aux_unset_affinity_mask_proc(int proc, void **mask) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
KA_TRACE(1000, (""); {
|
||||
int gtid = __kmp_entry_gtid();
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf("kmp_unset_affinity_mask_proc: unsetting proc %d in "
|
||||
"affinity mask for thread %d = %s\n",
|
||||
proc, gtid, buf);
|
||||
});
|
||||
KA_TRACE(
|
||||
1000, (""); {
|
||||
int gtid = __kmp_entry_gtid();
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf("kmp_unset_affinity_mask_proc: unsetting proc %d in "
|
||||
"affinity mask for thread %d = %s\n",
|
||||
proc, gtid, buf);
|
||||
});
|
||||
|
||||
if (__kmp_env_consistency_check) {
|
||||
if ((mask == NULL) || (*mask == NULL)) {
|
||||
@ -5148,15 +5154,16 @@ int __kmp_aux_get_affinity_mask_proc(int proc, void **mask) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
KA_TRACE(1000, (""); {
|
||||
int gtid = __kmp_entry_gtid();
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf("kmp_get_affinity_mask_proc: getting proc %d in "
|
||||
"affinity mask for thread %d = %s\n",
|
||||
proc, gtid, buf);
|
||||
});
|
||||
KA_TRACE(
|
||||
1000, (""); {
|
||||
int gtid = __kmp_entry_gtid();
|
||||
char buf[KMP_AFFIN_MASK_PRINT_LEN];
|
||||
__kmp_affinity_print_mask(buf, KMP_AFFIN_MASK_PRINT_LEN,
|
||||
(kmp_affin_mask_t *)(*mask));
|
||||
__kmp_debug_printf("kmp_get_affinity_mask_proc: getting proc %d in "
|
||||
"affinity mask for thread %d = %s\n",
|
||||
proc, gtid, buf);
|
||||
});
|
||||
|
||||
if (__kmp_env_consistency_check) {
|
||||
if ((mask == NULL) || (*mask == NULL)) {
|
||||
|
||||
@ -337,8 +337,8 @@ class KMPNativeAffinity : public KMPAffinity {
|
||||
long retval =
|
||||
syscall(__NR_sched_getaffinity, 0, __kmp_affin_mask_size, mask);
|
||||
#elif KMP_OS_FREEBSD
|
||||
int r =
|
||||
pthread_getaffinity_np(pthread_self(), __kmp_affin_mask_size, reinterpret_cast<cpuset_t *>(mask));
|
||||
int r = pthread_getaffinity_np(pthread_self(), __kmp_affin_mask_size,
|
||||
reinterpret_cast<cpuset_t *>(mask));
|
||||
int retval = (r == 0 ? 0 : -1);
|
||||
#endif
|
||||
if (retval >= 0) {
|
||||
@ -357,8 +357,8 @@ class KMPNativeAffinity : public KMPAffinity {
|
||||
long retval =
|
||||
syscall(__NR_sched_setaffinity, 0, __kmp_affin_mask_size, mask);
|
||||
#elif KMP_OS_FREEBSD
|
||||
int r =
|
||||
pthread_setaffinity_np(pthread_self(), __kmp_affin_mask_size, reinterpret_cast<cpuset_t *>(mask));
|
||||
int r = pthread_setaffinity_np(pthread_self(), __kmp_affin_mask_size,
|
||||
reinterpret_cast<cpuset_t *>(mask));
|
||||
int retval = (r == 0 ? 0 : -1);
|
||||
#endif
|
||||
if (retval >= 0) {
|
||||
|
||||
@ -315,7 +315,7 @@ static void __kmp_bget_enqueue(kmp_info_t *th, void *buf
|
||||
,
|
||||
kmp_int32 rel_gtid
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
bfhead_t *b = BFH(((char *)buf) - sizeof(bhead_t));
|
||||
|
||||
KMP_DEBUG_ASSERT(b->bh.bb.bsize != 0);
|
||||
@ -738,7 +738,7 @@ static void brel(kmp_info_t *th, void *buf) {
|
||||
,
|
||||
__kmp_gtid_from_thread(th)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1945,10 +1945,9 @@ void *___kmp_fast_allocate(kmp_info_t *this_thr, size_t size KMP_SRC_LOC_DECL) {
|
||||
if (ptr != NULL) {
|
||||
// pop the head of no-sync free list
|
||||
this_thr->th.th_free_lists[index].th_free_list_self = *((void **)ptr);
|
||||
KMP_DEBUG_ASSERT(
|
||||
this_thr ==
|
||||
((kmp_mem_descr_t *)((kmp_uintptr_t)ptr - sizeof(kmp_mem_descr_t)))
|
||||
->ptr_aligned);
|
||||
KMP_DEBUG_ASSERT(this_thr == ((kmp_mem_descr_t *)((kmp_uintptr_t)ptr -
|
||||
sizeof(kmp_mem_descr_t)))
|
||||
->ptr_aligned);
|
||||
goto end;
|
||||
}
|
||||
ptr = TCR_SYNC_PTR(this_thr->th.th_free_lists[index].th_free_list_sync);
|
||||
@ -1964,10 +1963,9 @@ void *___kmp_fast_allocate(kmp_info_t *this_thr, size_t size KMP_SRC_LOC_DECL) {
|
||||
// push the rest of chain into no-sync free list (can be NULL if there was
|
||||
// the only block)
|
||||
this_thr->th.th_free_lists[index].th_free_list_self = *((void **)ptr);
|
||||
KMP_DEBUG_ASSERT(
|
||||
this_thr ==
|
||||
((kmp_mem_descr_t *)((kmp_uintptr_t)ptr - sizeof(kmp_mem_descr_t)))
|
||||
->ptr_aligned);
|
||||
KMP_DEBUG_ASSERT(this_thr == ((kmp_mem_descr_t *)((kmp_uintptr_t)ptr -
|
||||
sizeof(kmp_mem_descr_t)))
|
||||
->ptr_aligned);
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
||||
@ -3381,7 +3381,7 @@ void __kmpc_atomic_1(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
#else
|
||||
TRUE
|
||||
#endif // KMP_ARCH_X86 && defined(KMP_GOMP_COMPAT)
|
||||
) {
|
||||
) {
|
||||
kmp_int8 old_value, new_value;
|
||||
|
||||
old_value = *(kmp_int8 *)lhs;
|
||||
@ -3398,7 +3398,7 @@ void __kmpc_atomic_1(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
|
||||
return;
|
||||
} else {
|
||||
// All 1-byte data is of integer data type.
|
||||
// All 1-byte data is of integer data type.
|
||||
|
||||
#ifdef KMP_GOMP_COMPAT
|
||||
if (__kmp_atomic_mode == 2) {
|
||||
@ -3428,7 +3428,7 @@ void __kmpc_atomic_2(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
#else
|
||||
!((kmp_uintptr_t)lhs & 0x1) /* make sure address is 2-byte aligned */
|
||||
#endif // KMP_ARCH_X86 && defined(KMP_GOMP_COMPAT)
|
||||
) {
|
||||
) {
|
||||
kmp_int16 old_value, new_value;
|
||||
|
||||
old_value = *(kmp_int16 *)lhs;
|
||||
@ -3445,7 +3445,7 @@ void __kmpc_atomic_2(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
|
||||
return;
|
||||
} else {
|
||||
// All 2-byte data is of integer data type.
|
||||
// All 2-byte data is of integer data type.
|
||||
|
||||
#ifdef KMP_GOMP_COMPAT
|
||||
if (__kmp_atomic_mode == 2) {
|
||||
@ -3477,7 +3477,7 @@ void __kmpc_atomic_4(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
#else
|
||||
!((kmp_uintptr_t)lhs & 0x3) /* make sure address is 4-byte aligned */
|
||||
#endif // KMP_ARCH_X86 || KMP_ARCH_X86_64
|
||||
) {
|
||||
) {
|
||||
kmp_int32 old_value, new_value;
|
||||
|
||||
old_value = *(kmp_int32 *)lhs;
|
||||
@ -3494,8 +3494,8 @@ void __kmpc_atomic_4(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
|
||||
return;
|
||||
} else {
|
||||
// Use __kmp_atomic_lock_4i for all 4-byte data,
|
||||
// even if it isn't of integer data type.
|
||||
// Use __kmp_atomic_lock_4i for all 4-byte data,
|
||||
// even if it isn't of integer data type.
|
||||
|
||||
#ifdef KMP_GOMP_COMPAT
|
||||
if (__kmp_atomic_mode == 2) {
|
||||
@ -3527,7 +3527,7 @@ void __kmpc_atomic_8(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
#else
|
||||
!((kmp_uintptr_t)lhs & 0x7) /* make sure address is 8-byte aligned */
|
||||
#endif // KMP_ARCH_X86 && defined(KMP_GOMP_COMPAT)
|
||||
) {
|
||||
) {
|
||||
kmp_int64 old_value, new_value;
|
||||
|
||||
old_value = *(kmp_int64 *)lhs;
|
||||
@ -3543,8 +3543,8 @@ void __kmpc_atomic_8(ident_t *id_ref, int gtid, void *lhs, void *rhs,
|
||||
|
||||
return;
|
||||
} else {
|
||||
// Use __kmp_atomic_lock_8i for all 8-byte data,
|
||||
// even if it isn't of integer data type.
|
||||
// Use __kmp_atomic_lock_8i for all 8-byte data,
|
||||
// even if it isn't of integer data type.
|
||||
|
||||
#ifdef KMP_GOMP_COMPAT
|
||||
if (__kmp_atomic_mode == 2) {
|
||||
|
||||
@ -363,8 +363,8 @@ static inline void __kmp_acquire_atomic_lock(kmp_atomic_lock_t *lck,
|
||||
#if OMPT_SUPPORT && OMPT_OPTIONAL
|
||||
if (ompt_enabled.ompt_callback_mutex_acquire) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_mutex_acquire)(
|
||||
ompt_mutex_atomic, 0, kmp_mutex_impl_queuing, (ompt_wait_id_t)(uintptr_t)lck,
|
||||
OMPT_GET_RETURN_ADDRESS(0));
|
||||
ompt_mutex_atomic, 0, kmp_mutex_impl_queuing,
|
||||
(ompt_wait_id_t)(uintptr_t)lck, OMPT_GET_RETURN_ADDRESS(0));
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -373,7 +373,8 @@ static inline void __kmp_acquire_atomic_lock(kmp_atomic_lock_t *lck,
|
||||
#if OMPT_SUPPORT && OMPT_OPTIONAL
|
||||
if (ompt_enabled.ompt_callback_mutex_acquired) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_mutex_acquired)(
|
||||
ompt_mutex_atomic, (ompt_wait_id_t)(uintptr_t)lck, OMPT_GET_RETURN_ADDRESS(0));
|
||||
ompt_mutex_atomic, (ompt_wait_id_t)(uintptr_t)lck,
|
||||
OMPT_GET_RETURN_ADDRESS(0));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -389,7 +390,8 @@ static inline void __kmp_release_atomic_lock(kmp_atomic_lock_t *lck,
|
||||
#if OMPT_SUPPORT && OMPT_OPTIONAL
|
||||
if (ompt_enabled.ompt_callback_mutex_released) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_mutex_released)(
|
||||
ompt_mutex_atomic, (ompt_wait_id_t)(uintptr_t)lck, OMPT_GET_RETURN_ADDRESS(0));
|
||||
ompt_mutex_atomic, (ompt_wait_id_t)(uintptr_t)lck,
|
||||
OMPT_GET_RETURN_ADDRESS(0));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ static bool __kmp_linear_barrier_release_template(
|
||||
other_threads[i]->th.th_bar[bt].bb.b_go + KMP_BARRIER_STATE_BUMP));
|
||||
ANNOTATE_BARRIER_BEGIN(other_threads[i]);
|
||||
kmp_flag_64<> flag(&other_threads[i]->th.th_bar[bt].bb.b_go,
|
||||
other_threads[i]);
|
||||
other_threads[i]);
|
||||
flag.release();
|
||||
}
|
||||
}
|
||||
@ -288,10 +288,9 @@ static bool __kmp_linear_barrier_release_cancellable(
|
||||
}
|
||||
|
||||
// Tree barrier
|
||||
static void
|
||||
__kmp_tree_barrier_gather(enum barrier_type bt, kmp_info_t *this_thr, int gtid,
|
||||
int tid, void (*reduce)(void *, void *)
|
||||
USE_ITT_BUILD_ARG(void *itt_sync_obj)) {
|
||||
static void __kmp_tree_barrier_gather(
|
||||
enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid,
|
||||
void (*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj)) {
|
||||
KMP_TIME_DEVELOPER_PARTITIONED_BLOCK(KMP_tree_gather);
|
||||
kmp_team_t *team = this_thr->th.th_team;
|
||||
kmp_bstate_t *thr_bar = &this_thr->th.th_bar[bt].bb;
|
||||
@ -508,10 +507,9 @@ static void __kmp_tree_barrier_release(
|
||||
}
|
||||
|
||||
// Hyper Barrier
|
||||
static void
|
||||
__kmp_hyper_barrier_gather(enum barrier_type bt, kmp_info_t *this_thr, int gtid,
|
||||
int tid, void (*reduce)(void *, void *)
|
||||
USE_ITT_BUILD_ARG(void *itt_sync_obj)) {
|
||||
static void __kmp_hyper_barrier_gather(
|
||||
enum barrier_type bt, kmp_info_t *this_thr, int gtid, int tid,
|
||||
void (*reduce)(void *, void *) USE_ITT_BUILD_ARG(void *itt_sync_obj)) {
|
||||
KMP_TIME_DEVELOPER_PARTITIONED_BLOCK(KMP_hyper_gather);
|
||||
kmp_team_t *team = this_thr->th.th_team;
|
||||
kmp_bstate_t *thr_bar = &this_thr->th.th_bar[bt].bb;
|
||||
@ -2027,7 +2025,8 @@ void __kmp_fork_barrier(int gtid, int tid) {
|
||||
#endif
|
||||
if (!KMP_MASTER_TID(ds_tid) && ompt_enabled.ompt_callback_implicit_task) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_end, NULL, task_data, 0, ds_tid, ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
ompt_scope_end, NULL, task_data, 0, ds_tid,
|
||||
ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -2108,7 +2107,7 @@ void __kmp_fork_barrier(int gtid, int tid) {
|
||||
#if KMP_AFFINITY_SUPPORTED
|
||||
|| (__kmp_affinity_type == affinity_balanced && team->t.t_size_changed)
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
// NULL means use the affinity-format-var ICV
|
||||
__kmp_aux_display_affinity(gtid, NULL);
|
||||
this_thr->th.th_prev_num_threads = team->t.t_nproc;
|
||||
|
||||
@ -316,7 +316,7 @@ void __kmpc_fork_call(ident_t *loc, kmp_int32 argc, kmpc_micro microtask, ...) {
|
||||
,
|
||||
fork_context_intel
|
||||
#endif
|
||||
);
|
||||
);
|
||||
|
||||
va_end(ap);
|
||||
}
|
||||
@ -438,7 +438,7 @@ void __kmpc_fork_teams(ident_t *loc, kmp_int32 argc, kmpc_micro microtask,
|
||||
,
|
||||
fork_context_intel
|
||||
#endif
|
||||
);
|
||||
);
|
||||
|
||||
// Pop current CG root off list
|
||||
KMP_DEBUG_ASSERT(this_thr->th.th_cg_roots);
|
||||
@ -594,7 +594,7 @@ void __kmpc_end_serialized_parallel(ident_t *loc, kmp_int32 global_tid) {
|
||||
--serial_team->t.t_serialized;
|
||||
if (serial_team->t.t_serialized == 0) {
|
||||
|
||||
/* return to the parallel section */
|
||||
/* return to the parallel section */
|
||||
|
||||
#if KMP_ARCH_X86 || KMP_ARCH_X86_64
|
||||
if (__kmp_inherit_fp_control && serial_team->t.t_fp_control_saved) {
|
||||
@ -1202,10 +1202,10 @@ void __kmpc_critical(ident_t *loc, kmp_int32 global_tid,
|
||||
if (__kmp_env_consistency_check)
|
||||
__kmp_push_sync(global_tid, ct_critical, loc, lck);
|
||||
|
||||
// since the critical directive binds to all threads, not just the current
|
||||
// team we have to check this even if we are in a serialized team.
|
||||
// also, even if we are the uber thread, we still have to conduct the lock,
|
||||
// as we have to contend with sibling threads.
|
||||
// since the critical directive binds to all threads, not just the current
|
||||
// team we have to check this even if we are in a serialized team.
|
||||
// also, even if we are the uber thread, we still have to conduct the lock,
|
||||
// as we have to contend with sibling threads.
|
||||
|
||||
#if USE_ITT_BUILD
|
||||
__kmp_itt_critical_acquiring(lck);
|
||||
@ -2110,21 +2110,21 @@ void __kmpc_copyprivate(ident_t *loc, kmp_int32 gtid, size_t cpy_size,
|
||||
if (!didit)
|
||||
(*cpy_func)(cpy_data, *data_ptr);
|
||||
|
||||
// Consider next barrier a user-visible barrier for barrier region boundaries
|
||||
// Nesting checks are already handled by the single construct checks
|
||||
// Consider next barrier a user-visible barrier for barrier region boundaries
|
||||
// Nesting checks are already handled by the single construct checks
|
||||
{
|
||||
#if OMPT_SUPPORT
|
||||
OMPT_STORE_RETURN_ADDRESS(gtid);
|
||||
#endif
|
||||
#if USE_ITT_NOTIFY
|
||||
__kmp_threads[gtid]->th.th_ident = loc; // TODO: check if it is needed (e.g.
|
||||
__kmp_threads[gtid]->th.th_ident = loc; // TODO: check if it is needed (e.g.
|
||||
// tasks can overwrite the location)
|
||||
#endif
|
||||
__kmp_barrier(bs_plain_barrier, gtid, FALSE, 0, NULL, NULL);
|
||||
__kmp_barrier(bs_plain_barrier, gtid, FALSE, 0, NULL, NULL);
|
||||
#if OMPT_SUPPORT && OMPT_OPTIONAL
|
||||
if (ompt_enabled.enabled) {
|
||||
ompt_frame->enter_frame = ompt_data_none;
|
||||
}
|
||||
if (ompt_enabled.enabled) {
|
||||
ompt_frame->enter_frame = ompt_data_none;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -2669,7 +2669,7 @@ void __kmpc_set_nest_lock(ident_t *loc, kmp_int32 gtid, void **user_lock) {
|
||||
#endif
|
||||
int acquire_status =
|
||||
KMP_D_LOCK_FUNC(user_lock, set)((kmp_dyna_lock_t *)user_lock, gtid);
|
||||
(void) acquire_status;
|
||||
(void)acquire_status;
|
||||
#if USE_ITT_BUILD
|
||||
__kmp_itt_lock_acquired((kmp_user_lock_p)user_lock);
|
||||
#endif
|
||||
@ -2862,7 +2862,7 @@ void __kmpc_unset_nest_lock(ident_t *loc, kmp_int32 gtid, void **user_lock) {
|
||||
#endif
|
||||
int release_status =
|
||||
KMP_D_LOCK_FUNC(user_lock, unset)((kmp_dyna_lock_t *)user_lock, gtid);
|
||||
(void) release_status;
|
||||
(void)release_status;
|
||||
|
||||
#if OMPT_SUPPORT && OMPT_OPTIONAL
|
||||
// This is the case, if called from omp_init_lock_with_hint:
|
||||
@ -3082,7 +3082,7 @@ int __kmpc_test_lock(ident_t *loc, kmp_int32 gtid, void **user_lock) {
|
||||
|
||||
return (rc ? FTN_TRUE : FTN_FALSE);
|
||||
|
||||
/* Can't use serial interval since not block structured */
|
||||
/* Can't use serial interval since not block structured */
|
||||
|
||||
#endif // KMP_USE_DYNAMIC_LOCK
|
||||
}
|
||||
@ -3200,7 +3200,7 @@ int __kmpc_test_nest_lock(ident_t *loc, kmp_int32 gtid, void **user_lock) {
|
||||
#endif
|
||||
return rc;
|
||||
|
||||
/* Can't use serial interval since not block structured */
|
||||
/* Can't use serial interval since not block structured */
|
||||
|
||||
#endif // KMP_USE_DYNAMIC_LOCK
|
||||
}
|
||||
|
||||
@ -391,7 +391,7 @@ void __kmp_dispatch_init_algorithm(ident_t *loc, int gtid,
|
||||
schedule = kmp_sch_dynamic_chunked;
|
||||
KD_TRACE(100, ("__kmp_dispatch_init_algorithm: T#%d switching to "
|
||||
"kmp_sch_dynamic_chunked\n",
|
||||
gtid));
|
||||
gtid));
|
||||
if (pr->u.p.parm1 <= 0)
|
||||
pr->u.p.parm1 = KMP_DEFAULT_CHUNK;
|
||||
break;
|
||||
@ -615,8 +615,9 @@ void __kmp_dispatch_init_algorithm(ident_t *loc, int gtid,
|
||||
#define GUIDED_ANALYTICAL_WORKAROUND (x)
|
||||
#endif
|
||||
/* dynamic-style scheduling offset */
|
||||
pr->u.p.count = tc - __kmp_dispatch_guided_remaining(
|
||||
tc, GUIDED_ANALYTICAL_WORKAROUND, cross) -
|
||||
pr->u.p.count = tc -
|
||||
__kmp_dispatch_guided_remaining(
|
||||
tc, GUIDED_ANALYTICAL_WORKAROUND, cross) -
|
||||
cross * chunk;
|
||||
#if KMP_USE_X87CONTROL
|
||||
// restore FPCW
|
||||
@ -702,7 +703,7 @@ void __kmp_dispatch_init_algorithm(ident_t *loc, int gtid,
|
||||
__kmp_fatal(KMP_MSG(UnknownSchedTypeDetected), // Primary message
|
||||
KMP_HNT(GetNewerLibrary), // Hint
|
||||
__kmp_msg_null // Variadic argument list terminator
|
||||
);
|
||||
);
|
||||
} break;
|
||||
} // switch
|
||||
pr->schedule = schedule;
|
||||
@ -1814,7 +1815,7 @@ int __kmp_dispatch_next_algorithm(int gtid,
|
||||
__kmp_fatal(KMP_MSG(UnknownSchedTypeDetected), // Primary message
|
||||
KMP_HNT(GetNewerLibrary), // Hint
|
||||
__kmp_msg_null // Variadic argument list terminator
|
||||
);
|
||||
);
|
||||
} break;
|
||||
} // switch
|
||||
if (p_last)
|
||||
@ -1902,7 +1903,7 @@ static int __kmp_dispatch_next(ident_t *loc, int gtid, kmp_int32 *p_last,
|
||||
,
|
||||
void *codeptr
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
|
||||
typedef typename traits_t<T>::unsigned_t UT;
|
||||
typedef typename traits_t<T>::signed_t ST;
|
||||
@ -2429,7 +2430,7 @@ int __kmpc_dispatch_next_4(ident_t *loc, kmp_int32 gtid, kmp_int32 *p_last,
|
||||
,
|
||||
OMPT_LOAD_RETURN_ADDRESS(gtid)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -2446,7 +2447,7 @@ int __kmpc_dispatch_next_4u(ident_t *loc, kmp_int32 gtid, kmp_int32 *p_last,
|
||||
,
|
||||
OMPT_LOAD_RETURN_ADDRESS(gtid)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -2462,7 +2463,7 @@ int __kmpc_dispatch_next_8(ident_t *loc, kmp_int32 gtid, kmp_int32 *p_last,
|
||||
,
|
||||
OMPT_LOAD_RETURN_ADDRESS(gtid)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -2479,7 +2480,7 @@ int __kmpc_dispatch_next_8u(ident_t *loc, kmp_int32 gtid, kmp_int32 *p_last,
|
||||
,
|
||||
OMPT_LOAD_RETURN_ADDRESS(gtid)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -2541,7 +2542,7 @@ kmp_uint32
|
||||
__kmp_wait_4(volatile kmp_uint32 *spinner, kmp_uint32 checker,
|
||||
kmp_uint32 (*pred)(kmp_uint32, kmp_uint32),
|
||||
void *obj // Higher-level synchronization object, or NULL.
|
||||
) {
|
||||
) {
|
||||
// note: we may not belong to a team at this point
|
||||
volatile kmp_uint32 *spin = spinner;
|
||||
kmp_uint32 check = checker;
|
||||
@ -2567,7 +2568,7 @@ __kmp_wait_4(volatile kmp_uint32 *spinner, kmp_uint32 checker,
|
||||
void __kmp_wait_4_ptr(void *spinner, kmp_uint32 checker,
|
||||
kmp_uint32 (*pred)(void *, kmp_uint32),
|
||||
void *obj // Higher-level synchronization object, or NULL.
|
||||
) {
|
||||
) {
|
||||
// note: we may not belong to a team at this point
|
||||
void *spin = spinner;
|
||||
kmp_uint32 check = checker;
|
||||
|
||||
@ -236,7 +236,7 @@ void __kmp_env_unset(char const *name) {
|
||||
static void
|
||||
___kmp_env_blk_parse_string(kmp_env_blk_t *block, // M: Env block to fill.
|
||||
char const *env // I: String to parse.
|
||||
) {
|
||||
) {
|
||||
|
||||
char const chr_delimiter = '|';
|
||||
char const str_delimiter[] = {chr_delimiter, 0};
|
||||
@ -305,7 +305,7 @@ ___kmp_env_blk_parse_string(kmp_env_blk_t *block, // M: Env block to fill.
|
||||
static void ___kmp_env_blk_parse_windows(
|
||||
kmp_env_blk_t *block, // M: Env block to fill.
|
||||
char const *env // I: Pointer to Windows* OS (DOS) environment block.
|
||||
) {
|
||||
) {
|
||||
|
||||
char *bulk = NULL;
|
||||
kmp_env_var_t *vars = NULL;
|
||||
@ -380,7 +380,7 @@ static void ___kmp_env_blk_parse_windows(
|
||||
static void
|
||||
___kmp_env_blk_parse_unix(kmp_env_blk_t *block, // M: Env block to fill.
|
||||
char **env // I: Unix environment to parse.
|
||||
) {
|
||||
) {
|
||||
char *bulk = NULL;
|
||||
kmp_env_var_t *vars = NULL;
|
||||
int count = 0;
|
||||
@ -428,7 +428,7 @@ ___kmp_env_blk_parse_unix(kmp_env_blk_t *block, // M: Env block to fill.
|
||||
|
||||
void __kmp_env_blk_init(kmp_env_blk_t *block, // M: Block to initialize.
|
||||
char const *bulk // I: Initialization string, or NULL.
|
||||
) {
|
||||
) {
|
||||
|
||||
if (bulk != NULL) {
|
||||
___kmp_env_blk_parse_string(block, bulk);
|
||||
@ -460,7 +460,7 @@ static int ___kmp_env_var_cmp( // Comparison function for qsort().
|
||||
|
||||
void __kmp_env_blk_sort(
|
||||
kmp_env_blk_t *block // M: Block of environment variables to sort.
|
||||
) {
|
||||
) {
|
||||
|
||||
qsort(CCAST(kmp_env_var_t *, block->vars), block->count,
|
||||
sizeof(kmp_env_var_t),
|
||||
@ -470,7 +470,7 @@ void __kmp_env_blk_sort(
|
||||
|
||||
void __kmp_env_blk_free(
|
||||
kmp_env_blk_t *block // M: Block of environment variables to free.
|
||||
) {
|
||||
) {
|
||||
|
||||
KMP_INTERNAL_FREE(CCAST(kmp_env_var_t *, block->vars));
|
||||
__kmp_str_free(&(block->bulk));
|
||||
@ -481,10 +481,9 @@ void __kmp_env_blk_free(
|
||||
} // __kmp_env_blk_free
|
||||
|
||||
char const * // R: Value of variable or NULL if variable does not exist.
|
||||
__kmp_env_blk_var(
|
||||
kmp_env_blk_t *block, // I: Block of environment variables.
|
||||
char const *name // I: Name of variable to find.
|
||||
) {
|
||||
__kmp_env_blk_var(kmp_env_blk_t *block, // I: Block of environment variables.
|
||||
char const *name // I: Name of variable to find.
|
||||
) {
|
||||
|
||||
int i;
|
||||
for (i = 0; i < block->count; ++i) {
|
||||
|
||||
@ -20,17 +20,22 @@
|
||||
#define MIN_STACK 100
|
||||
|
||||
static char const *cons_text_c[] = {
|
||||
"(none)", "\"parallel\"", "work-sharing", /* this is not called "for"
|
||||
because of lowering of
|
||||
"sections" pragmas */
|
||||
"(none)",
|
||||
"\"parallel\"",
|
||||
"work-sharing", /* this is not called "for"
|
||||
because of lowering of
|
||||
"sections" pragmas */
|
||||
"\"ordered\" work-sharing", /* this is not called "for ordered" because of
|
||||
lowering of "sections" pragmas */
|
||||
"\"sections\"",
|
||||
"work-sharing", /* this is not called "single" because of lowering of
|
||||
"sections" pragmas */
|
||||
"\"critical\"", "\"ordered\"", /* in PARALLEL */
|
||||
"\"critical\"",
|
||||
"\"ordered\"", /* in PARALLEL */
|
||||
"\"ordered\"", /* in PDO */
|
||||
"\"master\"", "\"reduce\"", "\"barrier\""};
|
||||
"\"master\"",
|
||||
"\"reduce\"",
|
||||
"\"barrier\""};
|
||||
|
||||
#define get_src(ident) ((ident) == NULL ? NULL : (ident)->psource)
|
||||
|
||||
@ -106,7 +111,7 @@ static char *__kmp_pragma(int ct, ident_t const *ident) {
|
||||
void __kmp_error_construct(kmp_i18n_id_t id, // Message identifier.
|
||||
enum cons_type ct, // Construct type.
|
||||
ident_t const *ident // Construct ident.
|
||||
) {
|
||||
) {
|
||||
char *construct = __kmp_pragma(ct, ident);
|
||||
__kmp_fatal(__kmp_msg_format(id, construct), __kmp_msg_null);
|
||||
KMP_INTERNAL_FREE(construct);
|
||||
@ -116,7 +121,7 @@ void __kmp_error_construct2(kmp_i18n_id_t id, // Message identifier.
|
||||
enum cons_type ct, // First construct type.
|
||||
ident_t const *ident, // First construct ident.
|
||||
struct cons_data const *cons // Second construct.
|
||||
) {
|
||||
) {
|
||||
char *construct1 = __kmp_pragma(ct, ident);
|
||||
char *construct2 = __kmp_pragma(cons->type, cons->ident);
|
||||
__kmp_fatal(__kmp_msg_format(id, construct1, construct2), __kmp_msg_null);
|
||||
|
||||
@ -432,7 +432,7 @@ public:
|
||||
/*
|
||||
* Set the value of the affinity-format-var ICV on the current device to the
|
||||
* format specified in the argument.
|
||||
*/
|
||||
*/
|
||||
void FTN_STDCALL FTN_SET_AFFINITY_FORMAT(char const *format, size_t size) {
|
||||
#ifdef KMP_STUB
|
||||
return;
|
||||
@ -453,7 +453,7 @@ void FTN_STDCALL FTN_SET_AFFINITY_FORMAT(char const *format, size_t size) {
|
||||
* specification (not including null byte character) and writes the value of the
|
||||
* affinity-format-var ICV on the current device to buffer. If the return value
|
||||
* is larger than size, the affinity format specification is truncated.
|
||||
*/
|
||||
*/
|
||||
size_t FTN_STDCALL FTN_GET_AFFINITY_FORMAT(char *buffer, size_t size) {
|
||||
#ifdef KMP_STUB
|
||||
return 0;
|
||||
@ -475,7 +475,7 @@ size_t FTN_STDCALL FTN_GET_AFFINITY_FORMAT(char *buffer, size_t size) {
|
||||
* Prints the thread affinity information of the current thread in the format
|
||||
* specified by the format argument. If the format is NULL or a zero-length
|
||||
* string, the value of the affinity-format-var ICV is used.
|
||||
*/
|
||||
*/
|
||||
void FTN_STDCALL FTN_DISPLAY_AFFINITY(char const *format, size_t size) {
|
||||
#ifdef KMP_STUB
|
||||
return;
|
||||
@ -499,7 +499,7 @@ void FTN_STDCALL FTN_DISPLAY_AFFINITY(char const *format, size_t size) {
|
||||
* used. The buffer must be allocated prior to calling the routine. If the
|
||||
* return value is larger than size, the affinity format specification is
|
||||
* truncated.
|
||||
*/
|
||||
*/
|
||||
size_t FTN_STDCALL FTN_CAPTURE_AFFINITY(char *buffer, char const *format,
|
||||
size_t buf_size, size_t for_size) {
|
||||
#if defined(KMP_STUB)
|
||||
@ -531,7 +531,7 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_THREAD_NUM)(void) {
|
||||
int gtid;
|
||||
|
||||
#if KMP_OS_DARWIN || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
|
||||
KMP_OS_HURD|| KMP_OS_OPENBSD
|
||||
KMP_OS_HURD || KMP_OS_OPENBSD
|
||||
gtid = __kmp_entry_gtid();
|
||||
#elif KMP_OS_WINDOWS
|
||||
if (!__kmp_init_parallel ||
|
||||
@ -715,7 +715,7 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_LEVEL)(void) {
|
||||
}
|
||||
|
||||
int FTN_STDCALL
|
||||
KMP_EXPAND_NAME(FTN_GET_ANCESTOR_THREAD_NUM)(int KMP_DEREF level) {
|
||||
KMP_EXPAND_NAME(FTN_GET_ANCESTOR_THREAD_NUM)(int KMP_DEREF level) {
|
||||
#ifdef KMP_STUB
|
||||
return (KMP_DEREF level) ? (-1) : (0);
|
||||
#else
|
||||
@ -873,8 +873,8 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_PARTITION_NUM_PLACES)(void) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_PARTITION_PLACE_NUMS)(int *place_nums) {
|
||||
void FTN_STDCALL
|
||||
KMP_EXPAND_NAME(FTN_GET_PARTITION_PLACE_NUMS)(int *place_nums) {
|
||||
#if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
|
||||
// Nothing.
|
||||
#else
|
||||
@ -939,7 +939,8 @@ void FTN_STDCALL KMP_EXPAND_NAME(FTN_SET_DEFAULT_DEVICE)(int KMP_DEREF arg) {
|
||||
|
||||
// Get number of NON-HOST devices.
|
||||
// libomptarget, if loaded, provides this function in api.cpp.
|
||||
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_DEVICES)(void) KMP_WEAK_ATTRIBUTE_EXTERNAL;
|
||||
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_DEVICES)(void)
|
||||
KMP_WEAK_ATTRIBUTE_EXTERNAL;
|
||||
int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_DEVICES)(void) {
|
||||
#if KMP_MIC || KMP_OS_DARWIN || defined(KMP_STUB)
|
||||
return 0;
|
||||
@ -959,7 +960,8 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_NUM_DEVICES)(void) {
|
||||
|
||||
// This function always returns true when called on host device.
|
||||
// Compiler/libomptarget should handle when it is called inside target region.
|
||||
int FTN_STDCALL KMP_EXPAND_NAME(FTN_IS_INITIAL_DEVICE)(void) KMP_WEAK_ATTRIBUTE_EXTERNAL;
|
||||
int FTN_STDCALL KMP_EXPAND_NAME(FTN_IS_INITIAL_DEVICE)(void)
|
||||
KMP_WEAK_ATTRIBUTE_EXTERNAL;
|
||||
int FTN_STDCALL KMP_EXPAND_NAME(FTN_IS_INITIAL_DEVICE)(void) {
|
||||
return 1; // This is the host
|
||||
}
|
||||
@ -1266,7 +1268,7 @@ void FTN_STDCALL FTN_SET_DEFAULTS(char const *str
|
||||
,
|
||||
int len
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
#ifndef KMP_STUB
|
||||
#ifdef PASS_ARGS_BY_VALUE
|
||||
int len = (int)KMP_STRLEN(str);
|
||||
|
||||
@ -242,8 +242,8 @@ void *KMP_EXPAND_NAME(KMP_API_NAME_GOMP_SINGLE_COPY_START)(void) {
|
||||
if (__kmp_enter_single(gtid, &loc, FALSE))
|
||||
return NULL;
|
||||
|
||||
// Wait for the first thread to set the copyprivate data pointer,
|
||||
// and for all other threads to reach this point.
|
||||
// Wait for the first thread to set the copyprivate data pointer,
|
||||
// and for all other threads to reach this point.
|
||||
|
||||
#if OMPT_SUPPORT && OMPT_OPTIONAL
|
||||
ompt_frame_t *ompt_frame;
|
||||
@ -463,7 +463,8 @@ static void __kmp_GOMP_fork_call(ident_t *loc, int gtid, unsigned num_threads,
|
||||
ompt_team_size = __kmp_team_from_gtid(gtid)->t.t_nproc;
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_begin, &(team_info->parallel_data),
|
||||
&(task_info->task_data), ompt_team_size, __kmp_tid_from_gtid(gtid), ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
&(task_info->task_data), ompt_team_size, __kmp_tid_from_gtid(gtid),
|
||||
ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
task_info->thread_num = __kmp_tid_from_gtid(gtid);
|
||||
}
|
||||
thr->th.ompt_thread_info.state = ompt_state_work_parallel;
|
||||
@ -526,7 +527,7 @@ void KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_END)(void) {
|
||||
,
|
||||
fork_context_gnu
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
// Loop worksharing constructs
|
||||
@ -960,12 +961,12 @@ LOOP_START_ULL(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_ULL_GUIDED_START),
|
||||
LOOP_NEXT_ULL(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_ULL_GUIDED_NEXT), {})
|
||||
LOOP_START_ULL(
|
||||
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START),
|
||||
kmp_sch_dynamic_chunked)
|
||||
kmp_sch_dynamic_chunked)
|
||||
LOOP_NEXT_ULL(
|
||||
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT), {})
|
||||
LOOP_START_ULL(
|
||||
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START),
|
||||
kmp_sch_guided_chunked)
|
||||
kmp_sch_guided_chunked)
|
||||
LOOP_NEXT_ULL(
|
||||
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT), {})
|
||||
LOOP_RUNTIME_START_ULL(
|
||||
@ -1232,7 +1233,8 @@ void KMP_EXPAND_NAME(KMP_API_NAME_GOMP_TASK)(void (*func)(void *), void *data,
|
||||
kmp_taskdata_t *current_task;
|
||||
if (ompt_enabled.enabled) {
|
||||
current_task = __kmp_threads[gtid]->th.th_current_task;
|
||||
current_task->ompt_task_info.frame.enter_frame.ptr = OMPT_GET_FRAME_ADDRESS(0);
|
||||
current_task->ompt_task_info.frame.enter_frame.ptr =
|
||||
OMPT_GET_FRAME_ADDRESS(0);
|
||||
}
|
||||
OMPT_STORE_RETURN_ADDRESS(gtid);
|
||||
#endif
|
||||
@ -1494,10 +1496,10 @@ void KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_SECTIONS)(void (*task)(void *),
|
||||
|
||||
{
|
||||
#if OMPT_SUPPORT
|
||||
OMPT_STORE_RETURN_ADDRESS(gtid);
|
||||
OMPT_STORE_RETURN_ADDRESS(gtid);
|
||||
#endif
|
||||
|
||||
KMP_DISPATCH_INIT(&loc, gtid, kmp_nm_dynamic_chunked, 1, count, 1, 1, TRUE);
|
||||
KMP_DISPATCH_INIT(&loc, gtid, kmp_nm_dynamic_chunked, 1, count, 1, 1, TRUE);
|
||||
}
|
||||
task(data);
|
||||
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_END)();
|
||||
@ -1541,10 +1543,10 @@ PARALLEL_LOOP(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_LOOP_DYNAMIC),
|
||||
kmp_sch_dynamic_chunked, OMPT_LOOP_PRE, OMPT_LOOP_POST)
|
||||
PARALLEL_LOOP(
|
||||
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED),
|
||||
kmp_sch_guided_chunked, OMPT_LOOP_PRE, OMPT_LOOP_POST)
|
||||
kmp_sch_guided_chunked, OMPT_LOOP_PRE, OMPT_LOOP_POST)
|
||||
PARALLEL_LOOP(
|
||||
KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC),
|
||||
kmp_sch_dynamic_chunked, OMPT_LOOP_PRE, OMPT_LOOP_POST)
|
||||
kmp_sch_dynamic_chunked, OMPT_LOOP_PRE, OMPT_LOOP_POST)
|
||||
PARALLEL_LOOP(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_LOOP_GUIDED),
|
||||
kmp_sch_guided_chunked, OMPT_LOOP_PRE, OMPT_LOOP_POST)
|
||||
PARALLEL_LOOP(KMP_EXPAND_NAME(KMP_API_NAME_GOMP_PARALLEL_LOOP_RUNTIME),
|
||||
|
||||
@ -364,9 +364,10 @@ void __kmp_i18n_do_catopen() {
|
||||
Issue hint in this case so cause of trouble is more understandable. */
|
||||
kmp_msg_t err_code = KMP_SYSERRCODE(error);
|
||||
__kmp_msg(kmp_ms_warning, KMP_MSG(CantOpenMessageCatalog, path.str),
|
||||
err_code, (error == ERROR_BAD_EXE_FORMAT
|
||||
? KMP_HNT(BadExeFormat, path.str, KMP_ARCH_STR)
|
||||
: __kmp_msg_null),
|
||||
err_code,
|
||||
(error == ERROR_BAD_EXE_FORMAT
|
||||
? KMP_HNT(BadExeFormat, path.str, KMP_ARCH_STR)
|
||||
: __kmp_msg_null),
|
||||
__kmp_msg_null);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
@ -488,7 +489,7 @@ static char const *___catgets(kmp_i18n_id_t id) {
|
||||
wmsg, wlen, // Wide buffer and size.
|
||||
NULL, 0, // Buffer and size.
|
||||
NULL, NULL // Default char and used default char.
|
||||
);
|
||||
);
|
||||
if (len <= 0) {
|
||||
goto end;
|
||||
}
|
||||
@ -502,7 +503,7 @@ static char const *___catgets(kmp_i18n_id_t id) {
|
||||
wmsg, wlen, // Wide buffer and size.
|
||||
msg, len, // Buffer and size.
|
||||
NULL, NULL // Default char and used default char.
|
||||
);
|
||||
);
|
||||
if (rc <= 0 || rc > len) {
|
||||
goto end;
|
||||
}
|
||||
@ -701,11 +702,11 @@ static char *sys_error(int err) {
|
||||
|
||||
#else // Non-Windows* OS: Linux* OS or OS X*
|
||||
|
||||
/* There are 2 incompatible versions of strerror_r:
|
||||
/* There are 2 incompatible versions of strerror_r:
|
||||
|
||||
char * strerror_r( int, char *, size_t ); // GNU version
|
||||
int strerror_r( int, char *, size_t ); // XSI version
|
||||
*/
|
||||
char * strerror_r( int, char *, size_t ); // GNU version
|
||||
int strerror_r( int, char *, size_t ); // XSI version
|
||||
*/
|
||||
|
||||
#if (defined(__GLIBC__) && defined(_GNU_SOURCE)) || \
|
||||
(defined(__BIONIC__) && defined(_GNU_SOURCE) && \
|
||||
@ -806,7 +807,9 @@ void __kmp_msg(kmp_msg_severity_t severity, kmp_msg_t message, va_list args) {
|
||||
case kmp_ms_fatal: {
|
||||
format = kmp_i18n_fmt_Fatal;
|
||||
} break;
|
||||
default: { KMP_DEBUG_ASSERT(0); }
|
||||
default: {
|
||||
KMP_DEBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
fmsg = __kmp_msg_format(format, message.num, message.str);
|
||||
__kmp_str_free(&message.str);
|
||||
@ -830,7 +833,9 @@ void __kmp_msg(kmp_msg_severity_t severity, kmp_msg_t message, va_list args) {
|
||||
format = kmp_i18n_fmt_SysErr;
|
||||
fmsg = __kmp_msg_format(format, message.num, message.str);
|
||||
} break;
|
||||
default: { KMP_DEBUG_ASSERT(0); }
|
||||
default: {
|
||||
KMP_DEBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
__kmp_str_free(&message.str);
|
||||
__kmp_str_buf_cat(&buffer, fmsg.str, fmsg.len);
|
||||
|
||||
@ -152,8 +152,8 @@ void __kmp_vprintf(enum kmp_io out_stream, char const *format, va_list ap) {
|
||||
int chars = 0;
|
||||
|
||||
#ifdef KMP_DEBUG_PIDS
|
||||
chars = KMP_SNPRINTF(db, __kmp_debug_buf_chars, "pid=%d: ",
|
||||
(kmp_int32)getpid());
|
||||
chars = KMP_SNPRINTF(db, __kmp_debug_buf_chars,
|
||||
"pid=%d: ", (kmp_int32)getpid());
|
||||
#endif
|
||||
chars += KMP_VSNPRINTF(db, __kmp_debug_buf_chars, format, ap);
|
||||
|
||||
@ -161,16 +161,18 @@ void __kmp_vprintf(enum kmp_io out_stream, char const *format, va_list ap) {
|
||||
if (chars + 1 > __kmp_debug_buf_warn_chars) {
|
||||
#if KMP_OS_WINDOWS
|
||||
DWORD count;
|
||||
__kmp_str_buf_print(&__kmp_console_buf, "OMP warning: Debugging buffer "
|
||||
"overflow; increase "
|
||||
"KMP_DEBUG_BUF_CHARS to %d\n",
|
||||
__kmp_str_buf_print(&__kmp_console_buf,
|
||||
"OMP warning: Debugging buffer "
|
||||
"overflow; increase "
|
||||
"KMP_DEBUG_BUF_CHARS to %d\n",
|
||||
chars + 1);
|
||||
WriteFile(stream, __kmp_console_buf.str, __kmp_console_buf.used, &count,
|
||||
NULL);
|
||||
__kmp_str_buf_clear(&__kmp_console_buf);
|
||||
#else
|
||||
fprintf(stream, "OMP warning: Debugging buffer overflow; "
|
||||
"increase KMP_DEBUG_BUF_CHARS to %d\n",
|
||||
fprintf(stream,
|
||||
"OMP warning: Debugging buffer overflow; "
|
||||
"increase KMP_DEBUG_BUF_CHARS to %d\n",
|
||||
chars + 1);
|
||||
fflush(stream);
|
||||
#endif
|
||||
|
||||
@ -63,9 +63,9 @@ void __kmp_itt_reset() {
|
||||
|
||||
void __kmp_itt_initialize() {
|
||||
|
||||
// ITTNotify library is loaded and initialized at first call to any ittnotify
|
||||
// function, so we do not need to explicitly load it any more. Just report OMP
|
||||
// RTL version to ITTNotify.
|
||||
// ITTNotify library is loaded and initialized at first call to any ittnotify
|
||||
// function, so we do not need to explicitly load it any more. Just report OMP
|
||||
// RTL version to ITTNotify.
|
||||
|
||||
#if USE_ITT_NOTIFY
|
||||
// Backup a clean global state
|
||||
@ -153,7 +153,9 @@ extern "C" void __itt_error_handler(__itt_error_code err, va_list args) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
} break;
|
||||
default: { KMP_WARNING(IttUnknownError, err); }
|
||||
default: {
|
||||
KMP_WARNING(IttUnknownError, err);
|
||||
}
|
||||
}
|
||||
} // __itt_error_handler
|
||||
|
||||
|
||||
@ -90,16 +90,16 @@ __kmp_inline void __kmp_itt_barrier_finished(int gtid, void *object);
|
||||
__kmp_inline void *__kmp_itt_taskwait_object(int gtid);
|
||||
__kmp_inline void __kmp_itt_taskwait_starting(int gtid, void *object);
|
||||
__kmp_inline void __kmp_itt_taskwait_finished(int gtid, void *object);
|
||||
#define KMP_ITT_TASKWAIT_STARTING(obj) \
|
||||
if (UNLIKELY(__itt_sync_create_ptr)) { \
|
||||
obj = __kmp_itt_taskwait_object(gtid); \
|
||||
if (obj != NULL) { \
|
||||
__kmp_itt_taskwait_starting(gtid, obj); \
|
||||
} \
|
||||
}
|
||||
#define KMP_ITT_TASKWAIT_FINISHED(obj) \
|
||||
if (UNLIKELY(obj != NULL)) \
|
||||
__kmp_itt_taskwait_finished(gtid, obj);
|
||||
#define KMP_ITT_TASKWAIT_STARTING(obj) \
|
||||
if (UNLIKELY(__itt_sync_create_ptr)) { \
|
||||
obj = __kmp_itt_taskwait_object(gtid); \
|
||||
if (obj != NULL) { \
|
||||
__kmp_itt_taskwait_starting(gtid, obj); \
|
||||
} \
|
||||
}
|
||||
#define KMP_ITT_TASKWAIT_FINISHED(obj) \
|
||||
if (UNLIKELY(obj != NULL)) \
|
||||
__kmp_itt_taskwait_finished(gtid, obj);
|
||||
|
||||
// --- Task reporting ---
|
||||
__kmp_inline void __kmp_itt_task_starting(void *object);
|
||||
|
||||
@ -1490,8 +1490,8 @@ int __kmp_release_queuing_lock(kmp_queuing_lock_t *lck, kmp_int32 gtid) {
|
||||
#endif
|
||||
return KMP_LOCK_RELEASED;
|
||||
}
|
||||
/* KMP_CPU_PAUSE(); don't want to make releasing thread hold up acquiring
|
||||
threads */
|
||||
/* KMP_CPU_PAUSE(); don't want to make releasing thread hold up acquiring
|
||||
threads */
|
||||
|
||||
#ifdef DEBUG_QUEUING_LOCKS
|
||||
TRACE_LOCK(gtid + 1, "rel retry");
|
||||
@ -1919,9 +1919,10 @@ void __kmp_print_speculative_stats() {
|
||||
}
|
||||
|
||||
fprintf(statsFile, "Speculative lock statistics (all approximate!)\n");
|
||||
fprintf(statsFile, " Lock parameters: \n"
|
||||
" max_soft_retries : %10d\n"
|
||||
" max_badness : %10d\n",
|
||||
fprintf(statsFile,
|
||||
" Lock parameters: \n"
|
||||
" max_soft_retries : %10d\n"
|
||||
" max_badness : %10d\n",
|
||||
__kmp_adaptive_backoff_params.max_soft_retries,
|
||||
__kmp_adaptive_backoff_params.max_badness);
|
||||
fprintf(statsFile, " Non-speculative acquire attempts : %10d\n",
|
||||
|
||||
@ -655,9 +655,8 @@ extern int (*__kmp_acquire_user_lock_with_checks_)(kmp_user_lock_p lck,
|
||||
KMP_INIT_YIELD(spins); \
|
||||
do { \
|
||||
KMP_YIELD_OVERSUB_ELSE_SPIN(spins); \
|
||||
} while ( \
|
||||
lck->tas.lk.poll != 0 || \
|
||||
!__kmp_atomic_compare_store_acq(&lck->tas.lk.poll, 0, gtid + 1)); \
|
||||
} while (lck->tas.lk.poll != 0 || !__kmp_atomic_compare_store_acq( \
|
||||
&lck->tas.lk.poll, 0, gtid + 1)); \
|
||||
} \
|
||||
KMP_FSYNC_ACQUIRED(lck); \
|
||||
} else { \
|
||||
|
||||
@ -333,13 +333,13 @@ extern "C" {
|
||||
// Code from libcxx/include/__config
|
||||
// Use a function like macro to imply that it must be followed by a semicolon
|
||||
#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough)
|
||||
# define KMP_FALLTHROUGH() [[fallthrough]]
|
||||
#define KMP_FALLTHROUGH() [[fallthrough]]
|
||||
#elif __has_cpp_attribute(clang::fallthrough)
|
||||
# define KMP_FALLTHROUGH() [[clang::fallthrough]]
|
||||
#define KMP_FALLTHROUGH() [[clang::fallthrough]]
|
||||
#elif __has_attribute(fallthrough) || __GNUC__ >= 7
|
||||
# define KMP_FALLTHROUGH() __attribute__((__fallthrough__))
|
||||
#define KMP_FALLTHROUGH() __attribute__((__fallthrough__))
|
||||
#else
|
||||
# define KMP_FALLTHROUGH() ((void)0)
|
||||
#define KMP_FALLTHROUGH() ((void)0)
|
||||
#endif
|
||||
|
||||
#if KMP_HAVE_ATTRIBUTE_WAITPKG
|
||||
@ -680,26 +680,28 @@ extern kmp_real64 __kmp_xchg_real64(volatile kmp_real64 *p, kmp_real64 v);
|
||||
__sync_val_compare_and_swap((volatile kmp_uint32 *)(p), (kmp_uint32)(cv), \
|
||||
(kmp_uint32)(sv))
|
||||
#if KMP_ARCH_MIPS
|
||||
static inline bool mips_sync_bool_compare_and_swap(
|
||||
volatile kmp_uint64 *p, kmp_uint64 cv, kmp_uint64 sv) {
|
||||
static inline bool mips_sync_bool_compare_and_swap(volatile kmp_uint64 *p,
|
||||
kmp_uint64 cv,
|
||||
kmp_uint64 sv) {
|
||||
return __atomic_compare_exchange(p, &cv, &sv, false, __ATOMIC_SEQ_CST,
|
||||
__ATOMIC_SEQ_CST);
|
||||
__ATOMIC_SEQ_CST);
|
||||
}
|
||||
static inline bool mips_sync_val_compare_and_swap(
|
||||
volatile kmp_uint64 *p, kmp_uint64 cv, kmp_uint64 sv) {
|
||||
static inline bool mips_sync_val_compare_and_swap(volatile kmp_uint64 *p,
|
||||
kmp_uint64 cv,
|
||||
kmp_uint64 sv) {
|
||||
__atomic_compare_exchange(p, &cv, &sv, false, __ATOMIC_SEQ_CST,
|
||||
__ATOMIC_SEQ_CST);
|
||||
__ATOMIC_SEQ_CST);
|
||||
return cv;
|
||||
}
|
||||
#define KMP_COMPARE_AND_STORE_ACQ64(p, cv, sv) \
|
||||
mips_sync_bool_compare_and_swap((volatile kmp_uint64 *)(p), (kmp_uint64)(cv),\
|
||||
(kmp_uint64)(sv))
|
||||
mips_sync_bool_compare_and_swap((volatile kmp_uint64 *)(p), \
|
||||
(kmp_uint64)(cv), (kmp_uint64)(sv))
|
||||
#define KMP_COMPARE_AND_STORE_REL64(p, cv, sv) \
|
||||
mips_sync_bool_compare_and_swap((volatile kmp_uint64 *)(p), (kmp_uint64)(cv),\
|
||||
(kmp_uint64)(sv))
|
||||
mips_sync_bool_compare_and_swap((volatile kmp_uint64 *)(p), \
|
||||
(kmp_uint64)(cv), (kmp_uint64)(sv))
|
||||
#define KMP_COMPARE_AND_STORE_RET64(p, cv, sv) \
|
||||
mips_sync_val_compare_and_swap((volatile kmp_uint64 *)(p), (kmp_uint64)(cv), \
|
||||
(kmp_uint64)(sv))
|
||||
(kmp_uint64)(sv))
|
||||
#else
|
||||
#define KMP_COMPARE_AND_STORE_ACQ64(p, cv, sv) \
|
||||
__sync_bool_compare_and_swap((volatile kmp_uint64 *)(p), (kmp_uint64)(cv), \
|
||||
|
||||
@ -70,14 +70,13 @@
|
||||
#define KMP_OS_HURD 1
|
||||
#endif
|
||||
|
||||
#if (1 != \
|
||||
KMP_OS_LINUX + KMP_OS_DRAGONFLY + KMP_OS_FREEBSD + KMP_OS_NETBSD + \
|
||||
KMP_OS_OPENBSD + KMP_OS_DARWIN + KMP_OS_WINDOWS + KMP_OS_HURD)
|
||||
#if (1 != KMP_OS_LINUX + KMP_OS_DRAGONFLY + KMP_OS_FREEBSD + KMP_OS_NETBSD + \
|
||||
KMP_OS_OPENBSD + KMP_OS_DARWIN + KMP_OS_WINDOWS + KMP_OS_HURD)
|
||||
#error Unknown OS
|
||||
#endif
|
||||
|
||||
#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
|
||||
KMP_OS_OPENBSD || KMP_OS_DARWIN || KMP_OS_HURD
|
||||
KMP_OS_OPENBSD || KMP_OS_DARWIN || KMP_OS_HURD
|
||||
#undef KMP_OS_UNIX
|
||||
#define KMP_OS_UNIX 1
|
||||
#endif
|
||||
@ -195,9 +194,9 @@
|
||||
((KMP_ARCH_X86 || KMP_ARCH_X86_64) && (KMP_OS_LINUX || KMP_OS_WINDOWS))
|
||||
|
||||
// TODO: Fixme - This is clever, but really fugly
|
||||
#if (1 != \
|
||||
KMP_ARCH_X86 + KMP_ARCH_X86_64 + KMP_ARCH_ARM + KMP_ARCH_PPC64 + \
|
||||
KMP_ARCH_AARCH64 + KMP_ARCH_MIPS + KMP_ARCH_MIPS64 + KMP_ARCH_RISCV64)
|
||||
#if (1 != KMP_ARCH_X86 + KMP_ARCH_X86_64 + KMP_ARCH_ARM + KMP_ARCH_PPC64 + \
|
||||
KMP_ARCH_AARCH64 + KMP_ARCH_MIPS + KMP_ARCH_MIPS64 + \
|
||||
KMP_ARCH_RISCV64)
|
||||
#error Unknown or unsupported architecture
|
||||
#endif
|
||||
|
||||
|
||||
@ -1372,7 +1372,8 @@ void __kmp_serialized_parallel(ident_t *loc, kmp_int32 global_tid) {
|
||||
serial_team->t.ompt_team_info.master_return_address = codeptr;
|
||||
if (ompt_enabled.enabled &&
|
||||
this_thr->th.ompt_thread_info.state != ompt_state_overhead) {
|
||||
OMPT_CUR_TASK_INFO(this_thr)->frame.exit_frame.ptr = OMPT_GET_FRAME_ADDRESS(0);
|
||||
OMPT_CUR_TASK_INFO(this_thr)->frame.exit_frame.ptr =
|
||||
OMPT_GET_FRAME_ADDRESS(0);
|
||||
|
||||
ompt_lw_taskteam_t lw_taskteam;
|
||||
__ompt_lw_taskteam_init(&lw_taskteam, this_thr, global_tid,
|
||||
@ -1386,14 +1387,16 @@ void __kmp_serialized_parallel(ident_t *loc, kmp_int32 global_tid) {
|
||||
if (ompt_enabled.ompt_callback_implicit_task) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_begin, OMPT_CUR_TEAM_DATA(this_thr),
|
||||
OMPT_CUR_TASK_DATA(this_thr), 1, __kmp_tid_from_gtid(global_tid), ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
OMPT_CUR_TASK_INFO(this_thr)
|
||||
->thread_num = __kmp_tid_from_gtid(global_tid);
|
||||
OMPT_CUR_TASK_DATA(this_thr), 1, __kmp_tid_from_gtid(global_tid),
|
||||
ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
OMPT_CUR_TASK_INFO(this_thr)->thread_num =
|
||||
__kmp_tid_from_gtid(global_tid);
|
||||
}
|
||||
|
||||
/* OMPT state */
|
||||
this_thr->th.ompt_thread_info.state = ompt_state_work_parallel;
|
||||
OMPT_CUR_TASK_INFO(this_thr)->frame.exit_frame.ptr = OMPT_GET_FRAME_ADDRESS(0);
|
||||
OMPT_CUR_TASK_INFO(this_thr)->frame.exit_frame.ptr =
|
||||
OMPT_GET_FRAME_ADDRESS(0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -1544,8 +1547,8 @@ int __kmp_fork_call(ident_t *loc, int gtid,
|
||||
/* OMPT implicit task begin */
|
||||
implicit_task_data = OMPT_CUR_TASK_DATA(master_th);
|
||||
if (ompt_enabled.ompt_callback_implicit_task) {
|
||||
OMPT_CUR_TASK_INFO(master_th)
|
||||
->thread_num = __kmp_tid_from_gtid(gtid);
|
||||
OMPT_CUR_TASK_INFO(master_th)->thread_num =
|
||||
__kmp_tid_from_gtid(gtid);
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_begin, OMPT_CUR_TEAM_DATA(master_th),
|
||||
implicit_task_data, 1,
|
||||
@ -1570,7 +1573,7 @@ int __kmp_fork_call(ident_t *loc, int gtid,
|
||||
,
|
||||
exit_frame_p
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
#if OMPT_SUPPORT
|
||||
@ -1755,7 +1758,7 @@ int __kmp_fork_call(ident_t *loc, int gtid,
|
||||
if (!ap) {
|
||||
// revert change made in __kmpc_serialized_parallel()
|
||||
master_th->th.th_serial_team->t.t_level--;
|
||||
// Get args from parent team for teams construct
|
||||
// Get args from parent team for teams construct
|
||||
|
||||
#if OMPT_SUPPORT
|
||||
void *dummy;
|
||||
@ -1774,8 +1777,8 @@ int __kmp_fork_call(ident_t *loc, int gtid,
|
||||
task_info = OMPT_CUR_TASK_INFO(master_th);
|
||||
exit_frame_p = &(task_info->frame.exit_frame.ptr);
|
||||
if (ompt_enabled.ompt_callback_implicit_task) {
|
||||
OMPT_CUR_TASK_INFO(master_th)
|
||||
->thread_num = __kmp_tid_from_gtid(gtid);
|
||||
OMPT_CUR_TASK_INFO(master_th)->thread_num =
|
||||
__kmp_tid_from_gtid(gtid);
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_begin, OMPT_CUR_TEAM_DATA(master_th),
|
||||
&(task_info->task_data), 1,
|
||||
@ -1799,7 +1802,7 @@ int __kmp_fork_call(ident_t *loc, int gtid,
|
||||
,
|
||||
exit_frame_p
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
#if OMPT_SUPPORT
|
||||
@ -1889,8 +1892,8 @@ int __kmp_fork_call(ident_t *loc, int gtid,
|
||||
ompt_scope_begin, OMPT_CUR_TEAM_DATA(master_th),
|
||||
implicit_task_data, 1, __kmp_tid_from_gtid(gtid),
|
||||
ompt_task_implicit);
|
||||
OMPT_CUR_TASK_INFO(master_th)
|
||||
->thread_num = __kmp_tid_from_gtid(gtid);
|
||||
OMPT_CUR_TASK_INFO(master_th)->thread_num =
|
||||
__kmp_tid_from_gtid(gtid);
|
||||
}
|
||||
|
||||
/* OMPT state */
|
||||
@ -1908,7 +1911,7 @@ int __kmp_fork_call(ident_t *loc, int gtid,
|
||||
,
|
||||
exit_frame_p
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
#if OMPT_SUPPORT
|
||||
@ -2655,7 +2658,7 @@ void __kmp_set_num_threads(int new_nth, int gtid) {
|
||||
#if KMP_NESTED_HOT_TEAMS
|
||||
&& __kmp_hot_teams_max_level && !__kmp_hot_teams_mode
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
kmp_team_t *hot_team = root->r.r_hot_team;
|
||||
int f;
|
||||
|
||||
@ -3200,7 +3203,7 @@ static void __kmp_initialize_root(kmp_root_t *root) {
|
||||
__kmp_nested_proc_bind.bind_types[0], &r_icvs,
|
||||
0 // argc
|
||||
USE_NESTED_HOT_ARG(NULL) // master thread is unknown
|
||||
);
|
||||
);
|
||||
#if USE_DEBUGGER
|
||||
// Non-NULL value should be assigned to make the debugger display the root
|
||||
// team.
|
||||
@ -3237,7 +3240,7 @@ static void __kmp_initialize_root(kmp_root_t *root) {
|
||||
__kmp_nested_proc_bind.bind_types[0], &r_icvs,
|
||||
0 // argc
|
||||
USE_NESTED_HOT_ARG(NULL) // master thread is unknown
|
||||
);
|
||||
);
|
||||
KF_TRACE(10, ("__kmp_initialize_root: after hot_team = %p\n", hot_team));
|
||||
|
||||
root->r.r_hot_team = hot_team;
|
||||
@ -3268,7 +3271,7 @@ typedef kmp_team_list_item_t *kmp_team_list_t;
|
||||
static void __kmp_print_structure_team_accum( // Add team to list of teams.
|
||||
kmp_team_list_t list, // List of teams.
|
||||
kmp_team_p const *team // Team to add.
|
||||
) {
|
||||
) {
|
||||
|
||||
// List must terminate with item where both entry and next are NULL.
|
||||
// Team is added to the list only once.
|
||||
@ -3312,7 +3315,7 @@ static void __kmp_print_structure_team_accum( // Add team to list of teams.
|
||||
|
||||
static void __kmp_print_structure_team(char const *title, kmp_team_p const *team
|
||||
|
||||
) {
|
||||
) {
|
||||
__kmp_printf("%s", title);
|
||||
if (team != NULL) {
|
||||
__kmp_printf("%2x %p\n", team->t.t_id, team);
|
||||
@ -3535,9 +3538,9 @@ static int __kmp_expand_threads(int nNeed) {
|
||||
kmp_info_t **newThreads;
|
||||
kmp_root_t **newRoot;
|
||||
|
||||
// All calls to __kmp_expand_threads should be under __kmp_forkjoin_lock, so
|
||||
// resizing __kmp_threads does not need additional protection if foreign
|
||||
// threads are present
|
||||
// All calls to __kmp_expand_threads should be under __kmp_forkjoin_lock, so
|
||||
// resizing __kmp_threads does not need additional protection if foreign
|
||||
// threads are present
|
||||
|
||||
#if KMP_OS_WINDOWS && !KMP_DYNAMIC_LIB
|
||||
/* only for Windows static library */
|
||||
@ -3856,7 +3859,8 @@ int __kmp_register_root(int initial_thread) {
|
||||
}
|
||||
ompt_data_t *task_data;
|
||||
ompt_data_t *parallel_data;
|
||||
__ompt_get_task_info_internal(0, NULL, &task_data, NULL, ¶llel_data, NULL);
|
||||
__ompt_get_task_info_internal(0, NULL, &task_data, NULL, ¶llel_data,
|
||||
NULL);
|
||||
if (ompt_enabled.ompt_callback_implicit_task) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_begin, parallel_data, task_data, 1, 1, ompt_task_initial);
|
||||
@ -3951,7 +3955,8 @@ static int __kmp_reset_root(int gtid, kmp_root_t *root) {
|
||||
#if OMPT_SUPPORT
|
||||
ompt_data_t *task_data;
|
||||
ompt_data_t *parallel_data;
|
||||
__ompt_get_task_info_internal(0, NULL, &task_data, NULL, ¶llel_data, NULL);
|
||||
__ompt_get_task_info_internal(0, NULL, &task_data, NULL, ¶llel_data,
|
||||
NULL);
|
||||
if (ompt_enabled.ompt_callback_implicit_task) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_end, parallel_data, task_data, 0, 1, ompt_task_initial);
|
||||
@ -4192,8 +4197,9 @@ static void __kmp_initialize_info(kmp_info_t *this_thr, kmp_team_t *team,
|
||||
&dispatch->th_disp_buffer[team->t.t_max_nproc == 1
|
||||
? 1
|
||||
: __kmp_dispatch_num_buffers],
|
||||
disp_size, "th_%d.th_dispatch.th_disp_buffer "
|
||||
"(team_%d.t_dispatch[%d].th_disp_buffer)",
|
||||
disp_size,
|
||||
"th_%d.th_dispatch.th_disp_buffer "
|
||||
"(team_%d.t_dispatch[%d].th_disp_buffer)",
|
||||
gtid, team->t.t_id, gtid);
|
||||
}
|
||||
} else {
|
||||
@ -5978,7 +5984,7 @@ static void __kmp_reap_thread(kmp_info_t *thread, int is_root) {
|
||||
TCW_SYNC_PTR(__kmp_threads[gtid], NULL);
|
||||
|
||||
--__kmp_all_nth;
|
||||
// __kmp_nth was decremented when thread is added to the pool.
|
||||
// __kmp_nth was decremented when thread is added to the pool.
|
||||
|
||||
#ifdef KMP_ADJUST_BLOCKTIME
|
||||
/* Adjust blocktime back to user setting or default if necessary */
|
||||
@ -6526,7 +6532,7 @@ void __kmp_register_library_startup(void) {
|
||||
if (tail != NULL) {
|
||||
long *flag_addr = 0;
|
||||
long flag_val = 0;
|
||||
KMP_SSCANF(flag_addr_str, "%p", RCAST(void**, &flag_addr));
|
||||
KMP_SSCANF(flag_addr_str, "%p", RCAST(void **, &flag_addr));
|
||||
KMP_SSCANF(flag_val_str, "%lx", &flag_val);
|
||||
if (flag_addr != 0 && flag_val != 0 && strcmp(file_name, "") != 0) {
|
||||
// First, check whether environment-encoded address is mapped into
|
||||
@ -6571,7 +6577,9 @@ void __kmp_register_library_startup(void) {
|
||||
__kmp_env_unset(name);
|
||||
#endif
|
||||
} break;
|
||||
default: { KMP_DEBUG_ASSERT(0); } break;
|
||||
default: {
|
||||
KMP_DEBUG_ASSERT(0);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
KMP_INTERNAL_FREE((void *)value);
|
||||
@ -7277,8 +7285,8 @@ int __kmp_invoke_task_func(int gtid) {
|
||||
int ompt_team_size;
|
||||
|
||||
if (ompt_enabled.enabled) {
|
||||
exit_frame_p = &(
|
||||
team->t.t_implicit_task_taskdata[tid].ompt_task_info.frame.exit_frame.ptr);
|
||||
exit_frame_p = &(team->t.t_implicit_task_taskdata[tid]
|
||||
.ompt_task_info.frame.exit_frame.ptr);
|
||||
} else {
|
||||
exit_frame_p = &dummy;
|
||||
}
|
||||
@ -7311,10 +7319,10 @@ int __kmp_invoke_task_func(int gtid) {
|
||||
,
|
||||
exit_frame_p
|
||||
#endif
|
||||
);
|
||||
);
|
||||
#if OMPT_SUPPORT
|
||||
*exit_frame_p = NULL;
|
||||
this_thr->th.ompt_thread_info.parallel_flags |= ompt_parallel_team;
|
||||
this_thr->th.ompt_thread_info.parallel_flags |= ompt_parallel_team;
|
||||
#endif
|
||||
|
||||
#if KMP_STATS_ENABLED
|
||||
@ -7629,7 +7637,7 @@ void __kmp_internal_join(ident_t *id, int gtid, kmp_team_t *team) {
|
||||
KMP_ASSERT(KMP_MASTER_GTID(gtid));
|
||||
KMP_MB(); /* Flush all pending memory write invalidates. */
|
||||
|
||||
/* Join barrier after fork */
|
||||
/* Join barrier after fork */
|
||||
|
||||
#ifdef KMP_DEBUG
|
||||
if (__kmp_threads[gtid] &&
|
||||
@ -7673,7 +7681,8 @@ void __kmp_internal_join(ident_t *id, int gtid, kmp_team_t *team) {
|
||||
#endif
|
||||
if (!KMP_MASTER_TID(ds_tid) && ompt_enabled.ompt_callback_implicit_task) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_end, NULL, task_data, 0, ds_tid, ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
ompt_scope_end, NULL, task_data, 0, ds_tid,
|
||||
ompt_task_implicit); // TODO: Can this be ompt_task_initial?
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -8103,7 +8112,7 @@ int __kmp_aux_get_num_teams() {
|
||||
*
|
||||
* Implementation-specific field types can be added
|
||||
* If a type is unknown, print "undefined"
|
||||
*/
|
||||
*/
|
||||
|
||||
// Structure holding the short name, long name, and corresponding data type
|
||||
// for snprintf. A table of these will represent the entire valid keyword
|
||||
@ -8298,7 +8307,7 @@ static int __kmp_aux_capture_affinity_field(int gtid, const kmp_info_t *th,
|
||||
* (not including null byte character)
|
||||
* The resultant string is printed to buffer, which the caller can then
|
||||
* handle afterwards
|
||||
*/
|
||||
*/
|
||||
size_t __kmp_aux_capture_affinity(int gtid, const char *format,
|
||||
kmp_str_buf_t *buffer) {
|
||||
const char *parse_ptr;
|
||||
|
||||
@ -78,7 +78,7 @@ static void __kmp_for_static_init(ident_t *loc, kmp_int32 global_tid,
|
||||
,
|
||||
void *codeptr
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
KMP_COUNT_BLOCK(OMP_LOOP_STATIC);
|
||||
KMP_PUSH_PARTITIONED_TIMER(OMP_loop_static);
|
||||
KMP_PUSH_PARTITIONED_TIMER(OMP_loop_static_scheduling);
|
||||
@ -811,7 +811,7 @@ void __kmpc_for_static_init_4(ident_t *loc, kmp_int32 gtid, kmp_int32 schedtype,
|
||||
,
|
||||
OMPT_GET_RETURN_ADDRESS(0)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -828,7 +828,7 @@ void __kmpc_for_static_init_4u(ident_t *loc, kmp_int32 gtid,
|
||||
,
|
||||
OMPT_GET_RETURN_ADDRESS(0)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -844,7 +844,7 @@ void __kmpc_for_static_init_8(ident_t *loc, kmp_int32 gtid, kmp_int32 schedtype,
|
||||
,
|
||||
OMPT_GET_RETURN_ADDRESS(0)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -861,7 +861,7 @@ void __kmpc_for_static_init_8u(ident_t *loc, kmp_int32 gtid,
|
||||
,
|
||||
OMPT_GET_RETURN_ADDRESS(0)
|
||||
#endif
|
||||
);
|
||||
);
|
||||
}
|
||||
/*!
|
||||
@}
|
||||
|
||||
@ -223,11 +223,11 @@ static int __kmp_strcasecmp_with_sentinel(char const *a, char const *b,
|
||||
++a;
|
||||
++b;
|
||||
}
|
||||
return *a
|
||||
? (*b && *b != sentinel)
|
||||
? (int)(unsigned char)*a - (int)(unsigned char)*b
|
||||
: 1
|
||||
: (*b && *b != sentinel) ? -1 : 0;
|
||||
return *a ? (*b && *b != sentinel)
|
||||
? (int)(unsigned char)*a - (int)(unsigned char)*b
|
||||
: 1
|
||||
: (*b && *b != sentinel) ? -1
|
||||
: 0;
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
@ -272,7 +272,7 @@ static int __kmp_stg_check_rivals( // 0 -- Ok, 1 -- errors found.
|
||||
char const *name, // Name of variable.
|
||||
char const *value, // Value of the variable.
|
||||
kmp_setting_t **rivals // List of rival settings (must include current one).
|
||||
);
|
||||
);
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Helper parse functions.
|
||||
@ -367,7 +367,7 @@ static void __kmp_stg_parse_int(
|
||||
int min, // I: Minimum allowed value.
|
||||
int max, // I: Maximum allowed value.
|
||||
int *out // O: Output (parsed) value.
|
||||
) {
|
||||
) {
|
||||
char const *msg = NULL;
|
||||
kmp_uint64 uint = *out;
|
||||
__kmp_str_to_uint(value, &uint, &msg);
|
||||
@ -910,7 +910,7 @@ static void __kmp_stg_parse_stackpad(char const *name, char const *value,
|
||||
KMP_MIN_STKPADDING, // Min value
|
||||
KMP_MAX_STKPADDING, // Max value
|
||||
&__kmp_stkpadding // Var to initialize
|
||||
);
|
||||
);
|
||||
} // __kmp_stg_parse_stackpad
|
||||
|
||||
static void __kmp_stg_print_stackpad(kmp_str_buf_t *buffer, char const *name,
|
||||
@ -2424,7 +2424,9 @@ static void __kmp_parse_affinity_env(char const *name, char const *value,
|
||||
KMP_WARNING(AffNoParam, name, "default");
|
||||
}
|
||||
} break;
|
||||
default: { KMP_ASSERT(0); }
|
||||
default: {
|
||||
KMP_ASSERT(0);
|
||||
}
|
||||
}
|
||||
} // __kmp_parse_affinity_env
|
||||
|
||||
@ -4700,7 +4702,8 @@ static void __kmp_stg_print_adaptive_lock_props(kmp_str_buf_t *buffer,
|
||||
static void __kmp_stg_parse_speculative_statsfile(char const *name,
|
||||
char const *value,
|
||||
void *data) {
|
||||
__kmp_stg_parse_file(name, value, "", CCAST(char**, &__kmp_speculative_statsfile));
|
||||
__kmp_stg_parse_file(name, value, "",
|
||||
CCAST(char **, &__kmp_speculative_statsfile));
|
||||
} // __kmp_stg_parse_speculative_statsfile
|
||||
|
||||
static void __kmp_stg_print_speculative_statsfile(kmp_str_buf_t *buffer,
|
||||
@ -4948,12 +4951,11 @@ static void __kmp_stg_print_forkjoin_frames_mode(kmp_str_buf_t *buffer,
|
||||
// -----------------------------------------------------------------------------
|
||||
// KMP_ENABLE_TASK_THROTTLING
|
||||
|
||||
static void __kmp_stg_parse_task_throttling(char const *name,
|
||||
char const *value, void *data) {
|
||||
static void __kmp_stg_parse_task_throttling(char const *name, char const *value,
|
||||
void *data) {
|
||||
__kmp_stg_parse_bool(name, value, &__kmp_enable_task_throttling);
|
||||
} // __kmp_stg_parse_task_throttling
|
||||
|
||||
|
||||
static void __kmp_stg_print_task_throttling(kmp_str_buf_t *buffer,
|
||||
char const *name, void *data) {
|
||||
__kmp_stg_print_bool(buffer, name, __kmp_enable_task_throttling);
|
||||
@ -5065,12 +5067,14 @@ static void __kmp_stg_print_omp_tool_libraries(kmp_str_buf_t *buffer,
|
||||
static char *__kmp_tool_verbose_init = NULL;
|
||||
|
||||
static void __kmp_stg_parse_omp_tool_verbose_init(char const *name,
|
||||
char const *value, void *data) {
|
||||
char const *value,
|
||||
void *data) {
|
||||
__kmp_stg_parse_str(name, value, &__kmp_tool_verbose_init);
|
||||
} // __kmp_stg_parse_omp_tool_libraries
|
||||
|
||||
static void __kmp_stg_print_omp_tool_verbose_init(kmp_str_buf_t *buffer,
|
||||
char const *name, void *data) {
|
||||
char const *name,
|
||||
void *data) {
|
||||
if (__kmp_tool_verbose_init)
|
||||
__kmp_stg_print_str(buffer, name, __kmp_tool_libraries);
|
||||
else {
|
||||
@ -5604,7 +5608,7 @@ static int __kmp_stg_check_rivals( // 0 -- Ok, 1 -- errors found.
|
||||
char const *name, // Name of variable.
|
||||
char const *value, // Value of the variable.
|
||||
kmp_setting_t **rivals // List of rival settings (must include current one).
|
||||
) {
|
||||
) {
|
||||
|
||||
if (rivals == NULL) {
|
||||
return 0;
|
||||
@ -5724,15 +5728,15 @@ void __kmp_env_initialize(char const *string) {
|
||||
__kmp_affinity_notype = NULL;
|
||||
char const *aff_str = __kmp_env_blk_var(&block, "KMP_AFFINITY");
|
||||
if (aff_str != NULL) {
|
||||
// Check if the KMP_AFFINITY type is specified in the string.
|
||||
// We just search the string for "compact", "scatter", etc.
|
||||
// without really parsing the string. The syntax of the
|
||||
// KMP_AFFINITY env var is such that none of the affinity
|
||||
// type names can appear anywhere other that the type
|
||||
// specifier, even as substrings.
|
||||
//
|
||||
// I can't find a case-insensitive version of strstr on Windows* OS.
|
||||
// Use the case-sensitive version for now.
|
||||
// Check if the KMP_AFFINITY type is specified in the string.
|
||||
// We just search the string for "compact", "scatter", etc.
|
||||
// without really parsing the string. The syntax of the
|
||||
// KMP_AFFINITY env var is such that none of the affinity
|
||||
// type names can appear anywhere other that the type
|
||||
// specifier, even as substrings.
|
||||
//
|
||||
// I can't find a case-insensitive version of strstr on Windows* OS.
|
||||
// Use the case-sensitive version for now.
|
||||
|
||||
#if KMP_OS_WINDOWS
|
||||
#define FIND strstr
|
||||
@ -6103,7 +6107,7 @@ void __kmp_env_print() {
|
||||
#ifdef KMP_GOMP_COMPAT
|
||||
|| strncmp(name, "GOMP_", 5) == 0
|
||||
#endif // KMP_GOMP_COMPAT
|
||||
) {
|
||||
) {
|
||||
__kmp_str_buf_print(&buffer, " %s=%s\n", name, value);
|
||||
}
|
||||
}
|
||||
@ -6131,7 +6135,6 @@ void __kmp_env_print_2() {
|
||||
__kmp_display_env_impl(__kmp_display_env, __kmp_display_env_verbose);
|
||||
} // __kmp_env_print_2
|
||||
|
||||
|
||||
void __kmp_display_env_impl(int display_env, int display_env_verbose) {
|
||||
kmp_env_blk_t block;
|
||||
kmp_str_buf_t buffer;
|
||||
@ -6149,8 +6152,7 @@ void __kmp_display_env_impl(int display_env, int display_env_verbose) {
|
||||
|
||||
for (int i = 0; i < __kmp_stg_count; ++i) {
|
||||
if (__kmp_stg_table[i].print != NULL &&
|
||||
((display_env &&
|
||||
strncmp(__kmp_stg_table[i].name, "OMP_", 4) == 0) ||
|
||||
((display_env && strncmp(__kmp_stg_table[i].name, "OMP_", 4) == 0) ||
|
||||
display_env_verbose)) {
|
||||
__kmp_stg_table[i].print(&buffer, __kmp_stg_table[i].name,
|
||||
__kmp_stg_table[i].data);
|
||||
|
||||
@ -700,16 +700,18 @@ void kmp_stats_output_module::printPloticusFile() {
|
||||
" pagesize: 15 10\n"
|
||||
" scale: 1.0\n\n");
|
||||
|
||||
fprintf(plotOut, "#proc getdata\n"
|
||||
" file: %s\n\n",
|
||||
fprintf(plotOut,
|
||||
"#proc getdata\n"
|
||||
" file: %s\n\n",
|
||||
eventsFileName);
|
||||
|
||||
fprintf(plotOut, "#proc areadef\n"
|
||||
" title: OpenMP Sampling Timeline\n"
|
||||
" titledetails: align=center size=16\n"
|
||||
" rectangle: 1 1 13 9\n"
|
||||
" xautorange: datafield=2,3\n"
|
||||
" yautorange: -1 %d\n\n",
|
||||
fprintf(plotOut,
|
||||
"#proc areadef\n"
|
||||
" title: OpenMP Sampling Timeline\n"
|
||||
" titledetails: align=center size=16\n"
|
||||
" rectangle: 1 1 13 9\n"
|
||||
" xautorange: datafield=2,3\n"
|
||||
" yautorange: -1 %d\n\n",
|
||||
size);
|
||||
|
||||
fprintf(plotOut, "#proc xaxis\n"
|
||||
@ -718,12 +720,13 @@ void kmp_stats_output_module::printPloticusFile() {
|
||||
" label: Time (ticks)\n"
|
||||
" labeldetails: size=14\n\n");
|
||||
|
||||
fprintf(plotOut, "#proc yaxis\n"
|
||||
" stubs: inc 1\n"
|
||||
" stubrange: 0 %d\n"
|
||||
" stubdetails: size=12\n"
|
||||
" label: Thread #\n"
|
||||
" labeldetails: size=14\n\n",
|
||||
fprintf(plotOut,
|
||||
"#proc yaxis\n"
|
||||
" stubs: inc 1\n"
|
||||
" stubrange: 0 %d\n"
|
||||
" stubdetails: size=12\n"
|
||||
" label: Thread #\n"
|
||||
" labeldetails: size=14\n\n",
|
||||
size - 1);
|
||||
|
||||
fprintf(plotOut, "#proc bars\n"
|
||||
@ -737,10 +740,11 @@ void kmp_stats_output_module::printPloticusFile() {
|
||||
for (i = 0; i < TIMER_LAST; i++) {
|
||||
if (timeStat::logEvent((timer_e)i)) {
|
||||
rgb_color c = getEventColor((timer_e)i);
|
||||
fprintf(plotOut, "#proc legendentry\n"
|
||||
" sampletype: color\n"
|
||||
" label: %s\n"
|
||||
" details: rgb(%1.1f,%1.1f,%1.1f)\n\n",
|
||||
fprintf(plotOut,
|
||||
"#proc legendentry\n"
|
||||
" sampletype: color\n"
|
||||
" label: %s\n"
|
||||
" details: rgb(%1.1f,%1.1f,%1.1f)\n\n",
|
||||
timeStat::name((timer_e)i), c.r, c.g, c.b);
|
||||
}
|
||||
}
|
||||
@ -833,10 +837,10 @@ void kmp_stats_output_module::outputStats(const char *heading) {
|
||||
for (timer_e s = timer_e(0); s < TIMER_LAST; s = timer_e(s + 1)) {
|
||||
// See if we should ignore this timer when aggregating
|
||||
if ((timeStat::masterOnly(s) && (t != 0)) || // Timer only valid on master
|
||||
// and this thread is worker
|
||||
// and this thread is worker
|
||||
(timeStat::workerOnly(s) && (t == 0)) // Timer only valid on worker
|
||||
// and this thread is the master
|
||||
) {
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@ -289,7 +289,7 @@ enum stats_state_e {
|
||||
* same as that of a timer above.
|
||||
*
|
||||
* @ingroup STATS_GATHERING
|
||||
*/
|
||||
*/
|
||||
#define KMP_FOREACH_EXPLICIT_TIMER(macro, arg) KMP_FOREACH_TIMER(macro, arg)
|
||||
|
||||
#define ENUMERATE(name, ignore, prefix) prefix##name,
|
||||
@ -884,7 +884,7 @@ extern kmp_stats_output_module __kmp_stats_output;
|
||||
* a timer statistics.
|
||||
*
|
||||
* @ingroup STATS_GATHERING
|
||||
*/
|
||||
*/
|
||||
#define KMP_COUNT_VALUE(name, value) \
|
||||
__kmp_stats_thread_ptr->getTimer(TIMER_##name)->addSample((double)value)
|
||||
|
||||
@ -897,7 +897,7 @@ extern kmp_stats_output_module __kmp_stats_output;
|
||||
* counter for the executing thread.
|
||||
*
|
||||
* @ingroup STATS_GATHERING
|
||||
*/
|
||||
*/
|
||||
#define KMP_COUNT_BLOCK(name) \
|
||||
__kmp_stats_thread_ptr->getCounter(COUNTER_##name)->increment()
|
||||
|
||||
@ -917,7 +917,7 @@ extern kmp_stats_output_module __kmp_stats_output;
|
||||
* macro is called.
|
||||
*
|
||||
* @ingroup STATS_GATHERING
|
||||
*/
|
||||
*/
|
||||
#define KMP_OUTPUT_STATS(heading_string) __kmp_output_stats(heading_string)
|
||||
|
||||
/*!
|
||||
@ -926,7 +926,7 @@ extern kmp_stats_output_module __kmp_stats_output;
|
||||
* @param name timer which you want this thread to begin with
|
||||
*
|
||||
* @ingroup STATS_GATHERING
|
||||
*/
|
||||
*/
|
||||
#define KMP_INIT_PARTITIONED_TIMERS(name) \
|
||||
__kmp_stats_thread_ptr->getPartitionedTimers()->init(explicitTimer( \
|
||||
__kmp_stats_thread_ptr->getTimer(TIMER_##name), TIMER_##name))
|
||||
@ -963,7 +963,7 @@ extern kmp_stats_output_module __kmp_stats_output;
|
||||
* \details Reset all stats for all threads.
|
||||
*
|
||||
* @ingroup STATS_GATHERING
|
||||
*/
|
||||
*/
|
||||
#define KMP_RESET_STATS() __kmp_reset_stats()
|
||||
|
||||
#if (KMP_DEVELOPER_STATS)
|
||||
|
||||
@ -169,14 +169,15 @@ int __kmp_str_buf_vprint(kmp_str_buf_t *buffer, char const *format,
|
||||
|
||||
// Try to format string.
|
||||
{
|
||||
/* On Linux* OS Intel(R) 64, vsnprintf() modifies args argument, so vsnprintf()
|
||||
crashes if it is called for the second time with the same args. To prevent
|
||||
the crash, we have to pass a fresh intact copy of args to vsnprintf() on each
|
||||
iteration.
|
||||
/* On Linux* OS Intel(R) 64, vsnprintf() modifies args argument, so
|
||||
vsnprintf() crashes if it is called for the second time with the same
|
||||
args. To prevent the crash, we have to pass a fresh intact copy of args
|
||||
to vsnprintf() on each iteration.
|
||||
|
||||
Unfortunately, standard va_copy() macro is not available on Windows* OS.
|
||||
However, it seems vsnprintf() does not modify args argument on Windows* OS.
|
||||
*/
|
||||
Unfortunately, standard va_copy() macro is not available on Windows*
|
||||
OS. However, it seems vsnprintf() does not modify args argument on
|
||||
Windows* OS.
|
||||
*/
|
||||
|
||||
#if !KMP_OS_WINDOWS
|
||||
va_list _args;
|
||||
@ -403,7 +404,7 @@ void __kmp_str_loc_free(kmp_str_loc_t *loc) {
|
||||
int __kmp_str_eqf( // True, if strings are equal, false otherwise.
|
||||
char const *lhs, // First string.
|
||||
char const *rhs // Second string.
|
||||
) {
|
||||
) {
|
||||
int result;
|
||||
#if KMP_OS_WINDOWS
|
||||
result = (_stricmp(lhs, rhs) == 0);
|
||||
@ -447,7 +448,7 @@ int __kmp_str_eqf( // True, if strings are equal, false otherwise.
|
||||
char *__kmp_str_format( // Allocated string.
|
||||
char const *format, // Format string.
|
||||
... // Other parameters.
|
||||
) {
|
||||
) {
|
||||
va_list args;
|
||||
int size = 512;
|
||||
char *buffer = NULL;
|
||||
@ -546,7 +547,7 @@ void __kmp_str_split(char *str, // I: String to split.
|
||||
char delim, // I: Character to split on.
|
||||
char **head, // O: Pointer to head (may be NULL).
|
||||
char **tail // O: Pointer to tail (may be NULL).
|
||||
) {
|
||||
) {
|
||||
char *h = str;
|
||||
char *t = NULL;
|
||||
if (str != NULL) {
|
||||
@ -570,7 +571,7 @@ char *__kmp_str_token(
|
||||
char *str, // String to split into tokens. Note: String *is* modified!
|
||||
char const *delim, // Delimiters.
|
||||
char **buf // Internal buffer.
|
||||
) {
|
||||
) {
|
||||
char *token = NULL;
|
||||
#if KMP_OS_WINDOWS
|
||||
// On Windows* OS there is no strtok_r() function. Let us implement it.
|
||||
@ -652,7 +653,7 @@ void __kmp_str_to_size( // R: Error code.
|
||||
size_t *out, // O: Parsed number.
|
||||
size_t dfactor, // I: The factor if none of the letters specified.
|
||||
char const **error // O: Null if everything is ok, error message otherwise.
|
||||
) {
|
||||
) {
|
||||
|
||||
size_t value = 0;
|
||||
size_t factor = 0;
|
||||
@ -751,7 +752,7 @@ void __kmp_str_to_uint( // R: Error code.
|
||||
char const *str, // I: String of characters, unsigned number.
|
||||
kmp_uint64 *out, // O: Parsed number.
|
||||
char const **error // O: Null if everything is ok, error message otherwise.
|
||||
) {
|
||||
) {
|
||||
size_t value = 0;
|
||||
int overflow = 0;
|
||||
int i = 0;
|
||||
|
||||
@ -54,7 +54,7 @@ static inline kmp_depnode_t *__kmp_node_ref(kmp_depnode_t *node) {
|
||||
|
||||
enum { KMP_DEPHASH_OTHER_SIZE = 97, KMP_DEPHASH_MASTER_SIZE = 997 };
|
||||
|
||||
size_t sizes[] = { 997, 2003, 4001, 8191, 16001, 32003, 64007, 131071, 270029 };
|
||||
size_t sizes[] = {997, 2003, 4001, 8191, 16001, 32003, 64007, 131071, 270029};
|
||||
const size_t MAX_GEN = 8;
|
||||
|
||||
static inline size_t __kmp_dephash_hash(kmp_intptr_t addr, size_t hsize) {
|
||||
@ -152,11 +152,11 @@ static kmp_dephash_t *__kmp_dephash_create(kmp_info_t *thread,
|
||||
#define ENTRY_LAST_INS 0
|
||||
#define ENTRY_LAST_MTXS 1
|
||||
|
||||
static kmp_dephash_entry *
|
||||
__kmp_dephash_find(kmp_info_t *thread, kmp_dephash_t **hash, kmp_intptr_t addr) {
|
||||
static kmp_dephash_entry *__kmp_dephash_find(kmp_info_t *thread,
|
||||
kmp_dephash_t **hash,
|
||||
kmp_intptr_t addr) {
|
||||
kmp_dephash_t *h = *hash;
|
||||
if (h->nelements != 0
|
||||
&& h->nconflicts/h->size >= 1) {
|
||||
if (h->nelements != 0 && h->nconflicts / h->size >= 1) {
|
||||
*hash = __kmp_dephash_extend(thread, h);
|
||||
h = *hash;
|
||||
}
|
||||
@ -537,13 +537,13 @@ kmp_int32 __kmpc_omp_task_with_deps(ident_t *loc_ref, kmp_int32 gtid,
|
||||
OMPT_LOAD_OR_GET_RETURN_ADDRESS(gtid));
|
||||
}
|
||||
|
||||
new_taskdata->ompt_task_info.frame.enter_frame.ptr = OMPT_GET_FRAME_ADDRESS(0);
|
||||
new_taskdata->ompt_task_info.frame.enter_frame.ptr =
|
||||
OMPT_GET_FRAME_ADDRESS(0);
|
||||
}
|
||||
|
||||
#if OMPT_OPTIONAL
|
||||
/* OMPT grab all dependences if requested by the tool */
|
||||
if (ndeps + ndeps_noalias > 0 &&
|
||||
ompt_enabled.ompt_callback_dependences) {
|
||||
if (ndeps + ndeps_noalias > 0 && ompt_enabled.ompt_callback_dependences) {
|
||||
kmp_int32 i;
|
||||
|
||||
int ompt_ndeps = ndeps + ndeps_noalias;
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
* kmp_taskdeps.h
|
||||
*/
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
@ -11,7 +10,6 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
||||
#ifndef KMP_TASKDEPS_H
|
||||
#define KMP_TASKDEPS_H
|
||||
|
||||
|
||||
@ -564,8 +564,10 @@ static inline void __ompt_task_init(kmp_taskdata_t *task, int tid) {
|
||||
task->ompt_task_info.task_data.value = 0;
|
||||
task->ompt_task_info.frame.exit_frame = ompt_data_none;
|
||||
task->ompt_task_info.frame.enter_frame = ompt_data_none;
|
||||
task->ompt_task_info.frame.exit_frame_flags = ompt_frame_runtime | ompt_frame_framepointer;
|
||||
task->ompt_task_info.frame.enter_frame_flags = ompt_frame_runtime | ompt_frame_framepointer;
|
||||
task->ompt_task_info.frame.exit_frame_flags =
|
||||
ompt_frame_runtime | ompt_frame_framepointer;
|
||||
task->ompt_task_info.frame.enter_frame_flags =
|
||||
ompt_frame_runtime | ompt_frame_framepointer;
|
||||
}
|
||||
|
||||
// __ompt_task_start:
|
||||
@ -640,7 +642,8 @@ static void __kmpc_omp_task_begin_if0_template(ident_t *loc_ref, kmp_int32 gtid,
|
||||
current_task->ompt_task_info.frame.enter_frame.ptr =
|
||||
taskdata->ompt_task_info.frame.exit_frame.ptr = frame_address;
|
||||
current_task->ompt_task_info.frame.enter_frame_flags =
|
||||
taskdata->ompt_task_info.frame.exit_frame_flags = ompt_frame_application | ompt_frame_framepointer;
|
||||
taskdata->ompt_task_info.frame.exit_frame_flags =
|
||||
ompt_frame_application | ompt_frame_framepointer;
|
||||
}
|
||||
if (ompt_enabled.ompt_callback_task_create) {
|
||||
ompt_task_info_t *parent_info = &(current_task->ompt_task_info);
|
||||
@ -957,7 +960,6 @@ static void __kmp_task_finish(kmp_int32 gtid, kmp_task_t *task,
|
||||
taskdata->td_flags.executing = 0; // suspend the finishing task
|
||||
}
|
||||
|
||||
|
||||
KA_TRACE(
|
||||
20, ("__kmp_task_finish: T#%d finished task %p, %d incomplete children\n",
|
||||
gtid, taskdata, children));
|
||||
@ -999,7 +1001,8 @@ static void __kmpc_omp_task_complete_if0_template(ident_t *loc_ref,
|
||||
ompt_frame_t *ompt_frame;
|
||||
__ompt_get_task_info_internal(0, NULL, NULL, &ompt_frame, NULL, NULL);
|
||||
ompt_frame->enter_frame = ompt_data_none;
|
||||
ompt_frame->enter_frame_flags = ompt_frame_runtime | ompt_frame_framepointer;
|
||||
ompt_frame->enter_frame_flags =
|
||||
ompt_frame_runtime | ompt_frame_framepointer;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1422,7 +1425,7 @@ kmp_task_t *__kmpc_omp_task_alloc(ident_t *loc_ref, kmp_int32 gtid,
|
||||
kmp_tasking_flags_t *input_flags = (kmp_tasking_flags_t *)&flags;
|
||||
__kmp_assert_valid_gtid(gtid);
|
||||
input_flags->native = FALSE;
|
||||
// __kmp_task_alloc() sets up all other runtime flags
|
||||
// __kmp_task_alloc() sets up all other runtime flags
|
||||
KA_TRACE(10, ("__kmpc_omp_task_alloc(enter): T#%d loc=%p, flags=(%s %s %s) "
|
||||
"sizeof_task=%ld sizeof_shared=%ld entry=%p\n",
|
||||
gtid, loc_ref, input_flags->tiedness ? "tied " : "untied",
|
||||
@ -1632,7 +1635,6 @@ static void __kmp_invoke_task(kmp_int32 gtid, kmp_task_t *task,
|
||||
KMP_FSYNC_CANCEL(taskdata); // destroy self (just executed)
|
||||
KMP_FSYNC_RELEASING(taskdata->td_parent); // releasing parent
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
// Proxy tasks are not handled by the runtime
|
||||
@ -1775,7 +1777,8 @@ kmp_int32 __kmpc_omp_task(ident_t *loc_ref, kmp_int32 gtid,
|
||||
OMPT_STORE_RETURN_ADDRESS(gtid);
|
||||
parent = new_taskdata->td_parent;
|
||||
if (!parent->ompt_task_info.frame.enter_frame.ptr) {
|
||||
parent->ompt_task_info.frame.enter_frame.ptr = OMPT_GET_FRAME_ADDRESS(0);
|
||||
parent->ompt_task_info.frame.enter_frame.ptr =
|
||||
OMPT_GET_FRAME_ADDRESS(0);
|
||||
}
|
||||
if (ompt_enabled.ompt_callback_task_create) {
|
||||
ompt_data_t task_data = ompt_data_none;
|
||||
@ -3341,7 +3344,7 @@ static int __kmp_realloc_task_threads_data(kmp_info_t *thread,
|
||||
__kmp_init_task_stack(__kmp_gtid_from_thread(thread), thread_data);
|
||||
}
|
||||
#endif // BUILD_TIED_TASK_STACK
|
||||
// Install the new data and free the old data
|
||||
// Install the new data and free the old data
|
||||
(*threads_data_p) = new_data;
|
||||
__kmp_free(old_data);
|
||||
} else {
|
||||
@ -4261,8 +4264,8 @@ void __kmp_taskloop_linear(ident_t *loc, int gtid, kmp_task_t *task,
|
||||
kmp_task_t *next_task;
|
||||
kmp_int32 lastpriv = 0;
|
||||
|
||||
KMP_DEBUG_ASSERT(
|
||||
tc == num_tasks * grainsize + (last_chunk < 0 ? last_chunk : extras));
|
||||
KMP_DEBUG_ASSERT(tc == num_tasks * grainsize +
|
||||
(last_chunk < 0 ? last_chunk : extras));
|
||||
KMP_DEBUG_ASSERT(num_tasks > extras);
|
||||
KMP_DEBUG_ASSERT(num_tasks > 0);
|
||||
KA_TRACE(20, ("__kmp_taskloop_linear: T#%d: %lld tasks, grainsize %lld, "
|
||||
@ -4322,7 +4325,7 @@ void __kmp_taskloop_linear(ident_t *loc, int gtid, kmp_task_t *task,
|
||||
next_task_bounds.get_upper_offset()));
|
||||
#if OMPT_SUPPORT
|
||||
__kmp_omp_taskloop_task(NULL, gtid, next_task,
|
||||
codeptr_ra); // schedule new task
|
||||
codeptr_ra); // schedule new task
|
||||
#else
|
||||
__kmp_omp_task(gtid, next_task, true); // schedule new task
|
||||
#endif
|
||||
@ -4458,8 +4461,8 @@ void __kmp_taskloop_recur(ident_t *loc, int gtid, kmp_task_t *task,
|
||||
size_t upper_offset =
|
||||
(char *)ub - (char *)task; // remember offset of ub in the task structure
|
||||
|
||||
KMP_DEBUG_ASSERT(
|
||||
tc == num_tasks * grainsize + (last_chunk < 0 ? last_chunk : extras));
|
||||
KMP_DEBUG_ASSERT(tc == num_tasks * grainsize +
|
||||
(last_chunk < 0 ? last_chunk : extras));
|
||||
KMP_DEBUG_ASSERT(num_tasks > extras);
|
||||
KMP_DEBUG_ASSERT(num_tasks > 0);
|
||||
|
||||
@ -4653,8 +4656,8 @@ static void __kmp_taskloop(ident_t *loc, int gtid, kmp_task_t *task, int if_val,
|
||||
KMP_ASSERT2(0, "unknown scheduling of taskloop");
|
||||
}
|
||||
|
||||
KMP_DEBUG_ASSERT(
|
||||
tc == num_tasks * grainsize + (last_chunk < 0 ? last_chunk : extras));
|
||||
KMP_DEBUG_ASSERT(tc == num_tasks * grainsize +
|
||||
(last_chunk < 0 ? last_chunk : extras));
|
||||
KMP_DEBUG_ASSERT(num_tasks > extras);
|
||||
KMP_DEBUG_ASSERT(num_tasks > 0);
|
||||
// =========================================================================
|
||||
|
||||
@ -410,7 +410,7 @@ struct private_common *kmp_threadprivate_insert(int gtid, void *pc_addr,
|
||||
}
|
||||
|
||||
__kmp_release_lock(&__kmp_global_lock, gtid);
|
||||
/* +++++++++ END OF CRITICAL SECTION +++++++++ */
|
||||
/* +++++++++ END OF CRITICAL SECTION +++++++++ */
|
||||
|
||||
#ifdef USE_CHECKS_COMMON
|
||||
if (pc_size > d_tn->cmn_size) {
|
||||
|
||||
@ -92,7 +92,7 @@ int __kmp_get_logical_id(int log_per_phy, int apic_id) {
|
||||
|
||||
static kmp_uint64 __kmp_parse_frequency( // R: Frequency in Hz.
|
||||
char const *frequency // I: Float number and unit: MHz, GHz, or TGz.
|
||||
) {
|
||||
) {
|
||||
|
||||
double value = 0.0;
|
||||
char *unit = NULL;
|
||||
|
||||
@ -178,7 +178,7 @@ void __kmp_print_version_1(void) {
|
||||
#else
|
||||
"no"
|
||||
#endif
|
||||
);
|
||||
);
|
||||
__kmp_printf("%s", buffer.str);
|
||||
__kmp_str_buf_free(&buffer);
|
||||
K_DIAG(1, ("KMP_VERSION is true\n"));
|
||||
|
||||
@ -983,7 +983,7 @@ public:
|
||||
else if (flag_switch) {
|
||||
this_thr->th.th_bar[bt].bb.wait_flag = KMP_BARRIER_SWITCHING;
|
||||
kmp_flag_64<> flag(&this_thr->th.th_bar[bt].bb.b_go,
|
||||
(kmp_uint64)KMP_BARRIER_STATE_BUMP);
|
||||
(kmp_uint64)KMP_BARRIER_STATE_BUMP);
|
||||
__kmp_wait_64(this_thr, &flag, TRUE USE_ITT_BUILD_ARG(itt_sync_obj));
|
||||
}
|
||||
return false;
|
||||
|
||||
@ -79,8 +79,7 @@
|
||||
|
||||
#define ompt_callback_mutex_released_implemented ompt_event_MAY_ALWAYS_OPTIONAL
|
||||
|
||||
#define ompt_callback_dependences_implemented \
|
||||
ompt_event_MAY_ALWAYS_OPTIONAL
|
||||
#define ompt_callback_dependences_implemented ompt_event_MAY_ALWAYS_OPTIONAL
|
||||
#define ompt_callback_task_dependence_implemented ompt_event_MAY_ALWAYS_OPTIONAL
|
||||
|
||||
#define ompt_callback_work_implemented ompt_event_MAY_ALWAYS_OPTIONAL
|
||||
|
||||
@ -308,7 +308,7 @@ ompt_try_start_tool(unsigned int omp_version, const char *runtime_version) {
|
||||
#else
|
||||
#error Activation of OMPT is not supported on this platform.
|
||||
#endif
|
||||
{// if (start_tool)
|
||||
{ // if (start_tool)
|
||||
ret = (*start_tool)(omp_version, runtime_version);
|
||||
if (ret) {
|
||||
OMPT_VERBOSE_INIT_CONTINUED_PRINT("Success.\n");
|
||||
@ -428,9 +428,10 @@ void ompt_pre_init() {
|
||||
break;
|
||||
|
||||
case omp_tool_error:
|
||||
fprintf(stderr, "Warning: OMP_TOOL has invalid value \"%s\".\n"
|
||||
" legal values are (NULL,\"\",\"disabled\","
|
||||
"\"enabled\").\n",
|
||||
fprintf(stderr,
|
||||
"Warning: OMP_TOOL has invalid value \"%s\".\n"
|
||||
" legal values are (NULL,\"\",\"disabled\","
|
||||
"\"enabled\").\n",
|
||||
ompt_env_var);
|
||||
break;
|
||||
}
|
||||
@ -459,7 +460,8 @@ void ompt_post_init() {
|
||||
//--------------------------------------------------
|
||||
if (ompt_start_tool_result) {
|
||||
ompt_enabled.enabled = !!ompt_start_tool_result->initialize(
|
||||
ompt_fn_lookup, omp_get_initial_device(), &(ompt_start_tool_result->tool_data));
|
||||
ompt_fn_lookup, omp_get_initial_device(),
|
||||
&(ompt_start_tool_result->tool_data));
|
||||
|
||||
if (!ompt_enabled.enabled) {
|
||||
// tool not enabled, zero out the bitmap, and done
|
||||
@ -477,7 +479,8 @@ void ompt_post_init() {
|
||||
}
|
||||
ompt_data_t *task_data;
|
||||
ompt_data_t *parallel_data;
|
||||
__ompt_get_task_info_internal(0, NULL, &task_data, NULL, ¶llel_data, NULL);
|
||||
__ompt_get_task_info_internal(0, NULL, &task_data, NULL, ¶llel_data,
|
||||
NULL);
|
||||
if (ompt_enabled.ompt_callback_implicit_task) {
|
||||
ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
|
||||
ompt_scope_begin, parallel_data, task_data, 1, 1, ompt_task_initial);
|
||||
@ -540,7 +543,7 @@ OMPT_API_ROUTINE int ompt_enumerate_mutex_impls(int current_impl,
|
||||
****************************************************************************/
|
||||
|
||||
OMPT_API_ROUTINE ompt_set_result_t ompt_set_callback(ompt_callbacks_t which,
|
||||
ompt_callback_t callback) {
|
||||
ompt_callback_t callback) {
|
||||
switch (which) {
|
||||
|
||||
#define ompt_event_macro(event_name, callback_type, event_id) \
|
||||
@ -782,7 +785,7 @@ OMPT_API_ROUTINE int ompt_get_ompt_version() { return OMPT_VERSION; }
|
||||
*/
|
||||
|
||||
/*****************************************************************************
|
||||
* application-facing API
|
||||
* application-facing API
|
||||
****************************************************************************/
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
void __ompt_team_assign_id(kmp_team_t *team, ompt_data_t ompt_pid);
|
||||
void __ompt_thread_assign_wait_id(void *variable);
|
||||
|
||||
void __ompt_lw_taskteam_init(ompt_lw_taskteam_t *lwt, kmp_info_t *thr,
|
||||
int gtid, ompt_data_t *ompt_pid, void *codeptr);
|
||||
void __ompt_lw_taskteam_init(ompt_lw_taskteam_t *lwt, kmp_info_t *thr, int gtid,
|
||||
ompt_data_t *ompt_pid, void *codeptr);
|
||||
|
||||
void __ompt_lw_taskteam_link(ompt_lw_taskteam_t *lwt, kmp_info_t *thr,
|
||||
int on_heap, bool always = false);
|
||||
@ -85,9 +85,9 @@ inline void *__ompt_load_return_address(int gtid) {
|
||||
#define OMPT_LOAD_RETURN_ADDRESS(gtid) __ompt_load_return_address(gtid)
|
||||
#define OMPT_LOAD_OR_GET_RETURN_ADDRESS(gtid) \
|
||||
((ompt_enabled.enabled && gtid >= 0 && __kmp_threads[gtid] && \
|
||||
__kmp_threads[gtid]->th.ompt_thread_info.return_address)? \
|
||||
__ompt_load_return_address(gtid): \
|
||||
__builtin_return_address(0))
|
||||
__kmp_threads[gtid]->th.ompt_thread_info.return_address) \
|
||||
? __ompt_load_return_address(gtid) \
|
||||
: __builtin_return_address(0))
|
||||
|
||||
//******************************************************************************
|
||||
// inline functions
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
// test-touch.c //
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
@ -9,22 +8,21 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern double omp_get_wtime();
|
||||
extern int omp_get_num_threads();
|
||||
extern int omp_get_max_threads();
|
||||
extern int omp_get_num_threads();
|
||||
extern int omp_get_max_threads();
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
int main() {
|
||||
omp_get_wtime();
|
||||
omp_get_num_threads();
|
||||
omp_get_max_threads();
|
||||
return 0;
|
||||
omp_get_wtime();
|
||||
omp_get_num_threads();
|
||||
omp_get_max_threads();
|
||||
return 0;
|
||||
}
|
||||
|
||||
// end of file //
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
|
||||
// clang-format off
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
@ -7,23 +7,24 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
||||
#include "ittnotify_config.h"
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
|
||||
#pragma warning (disable: 593) /* parameter "XXXX" was set but never used */
|
||||
#pragma warning (disable: 344) /* typedef name has already been declared (with same type) */
|
||||
#pragma warning (disable: 174) /* expression has no effect */
|
||||
#pragma warning (disable: 4127) /* conditional expression is constant */
|
||||
#pragma warning (disable: 4306) /* conversion from '?' to '?' of greater size */
|
||||
#pragma warning(disable: 593) /* parameter "XXXX" was set but never used */
|
||||
#pragma warning(disable: 344) /* typedef name has already been declared (with
|
||||
same type) */
|
||||
#pragma warning(disable: 174) /* expression has no effect */
|
||||
#pragma warning(disable: 4127) /* conditional expression is constant */
|
||||
#pragma warning(disable: 4306) /* conversion from '?' to '?' of greater size */
|
||||
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
#if defined __INTEL_COMPILER
|
||||
|
||||
#pragma warning (disable: 869) /* parameter "XXXXX" was never referenced */
|
||||
#pragma warning (disable: 1418) /* external function definition with no prior declaration */
|
||||
#pragma warning (disable: 1419) /* external declaration in primary source file */
|
||||
#pragma warning(disable: 869) /* parameter "XXXXX" was never referenced */
|
||||
#pragma warning(disable: 1418) /* external function definition with no prior
|
||||
declaration */
|
||||
#pragma warning(disable: 1419) /* external declaration in primary source file */
|
||||
|
||||
#endif /* __INTEL_COMPILER */
|
||||
|
||||
3058
openmp/runtime/src/thirdparty/ittnotify/ittnotify.h
vendored
3058
openmp/runtime/src/thirdparty/ittnotify/ittnotify.h
vendored
File diff suppressed because it is too large
Load Diff
@ -12,59 +12,59 @@
|
||||
|
||||
/** @cond exclude_from_documentation */
|
||||
#ifndef ITT_OS_WIN
|
||||
# define ITT_OS_WIN 1
|
||||
#define ITT_OS_WIN 1
|
||||
#endif /* ITT_OS_WIN */
|
||||
|
||||
#ifndef ITT_OS_LINUX
|
||||
# define ITT_OS_LINUX 2
|
||||
#define ITT_OS_LINUX 2
|
||||
#endif /* ITT_OS_LINUX */
|
||||
|
||||
#ifndef ITT_OS_MAC
|
||||
# define ITT_OS_MAC 3
|
||||
#define ITT_OS_MAC 3
|
||||
#endif /* ITT_OS_MAC */
|
||||
|
||||
#ifndef ITT_OS_FREEBSD
|
||||
# define ITT_OS_FREEBSD 4
|
||||
#define ITT_OS_FREEBSD 4
|
||||
#endif /* ITT_OS_FREEBSD */
|
||||
|
||||
#ifndef ITT_OS
|
||||
# if defined WIN32 || defined _WIN32
|
||||
# define ITT_OS ITT_OS_WIN
|
||||
# elif defined( __APPLE__ ) && defined( __MACH__ )
|
||||
# define ITT_OS ITT_OS_MAC
|
||||
# elif defined( __FreeBSD__ )
|
||||
# define ITT_OS ITT_OS_FREEBSD
|
||||
# else
|
||||
# define ITT_OS ITT_OS_LINUX
|
||||
# endif
|
||||
#if defined WIN32 || defined _WIN32
|
||||
#define ITT_OS ITT_OS_WIN
|
||||
#elif defined(__APPLE__) && defined(__MACH__)
|
||||
#define ITT_OS ITT_OS_MAC
|
||||
#elif defined(__FreeBSD__)
|
||||
#define ITT_OS ITT_OS_FREEBSD
|
||||
#else
|
||||
#define ITT_OS ITT_OS_LINUX
|
||||
#endif
|
||||
#endif /* ITT_OS */
|
||||
|
||||
#ifndef ITT_PLATFORM_WIN
|
||||
# define ITT_PLATFORM_WIN 1
|
||||
#define ITT_PLATFORM_WIN 1
|
||||
#endif /* ITT_PLATFORM_WIN */
|
||||
|
||||
#ifndef ITT_PLATFORM_POSIX
|
||||
# define ITT_PLATFORM_POSIX 2
|
||||
#define ITT_PLATFORM_POSIX 2
|
||||
#endif /* ITT_PLATFORM_POSIX */
|
||||
|
||||
#ifndef ITT_PLATFORM_MAC
|
||||
# define ITT_PLATFORM_MAC 3
|
||||
#define ITT_PLATFORM_MAC 3
|
||||
#endif /* ITT_PLATFORM_MAC */
|
||||
|
||||
#ifndef ITT_PLATFORM_FREEBSD
|
||||
# define ITT_PLATFORM_FREEBSD 4
|
||||
#define ITT_PLATFORM_FREEBSD 4
|
||||
#endif /* ITT_PLATFORM_FREEBSD */
|
||||
|
||||
#ifndef ITT_PLATFORM
|
||||
# if ITT_OS==ITT_OS_WIN
|
||||
# define ITT_PLATFORM ITT_PLATFORM_WIN
|
||||
# elif ITT_OS==ITT_OS_MAC
|
||||
# define ITT_PLATFORM ITT_PLATFORM_MAC
|
||||
# elif ITT_OS==ITT_OS_FREEBSD
|
||||
# define ITT_PLATFORM ITT_PLATFORM_FREEBSD
|
||||
# else
|
||||
# define ITT_PLATFORM ITT_PLATFORM_POSIX
|
||||
# endif
|
||||
#if ITT_OS == ITT_OS_WIN
|
||||
#define ITT_PLATFORM ITT_PLATFORM_WIN
|
||||
#elif ITT_OS == ITT_OS_MAC
|
||||
#define ITT_PLATFORM ITT_PLATFORM_MAC
|
||||
#elif ITT_OS == ITT_OS_FREEBSD
|
||||
#define ITT_PLATFORM ITT_PLATFORM_FREEBSD
|
||||
#else
|
||||
#define ITT_PLATFORM ITT_PLATFORM_POSIX
|
||||
#endif
|
||||
#endif /* ITT_PLATFORM */
|
||||
|
||||
#if defined(_UNICODE) && !defined(UNICODE)
|
||||
@ -72,9 +72,9 @@
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
#include <tchar.h>
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#include <stdint.h>
|
||||
#if defined(UNICODE) || defined(_UNICODE)
|
||||
#include <wchar.h>
|
||||
@ -82,152 +82,156 @@
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
#ifndef ITTAPI_CDECL
|
||||
# if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
# define ITTAPI_CDECL __cdecl
|
||||
# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
# if defined _M_IX86 || defined __i386__
|
||||
# define ITTAPI_CDECL __attribute__ ((cdecl))
|
||||
# else /* _M_IX86 || __i386__ */
|
||||
# define ITTAPI_CDECL /* actual only on x86 platform */
|
||||
# endif /* _M_IX86 || __i386__ */
|
||||
# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
#define ITTAPI_CDECL __cdecl
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#if defined _M_IX86 || defined __i386__
|
||||
#define ITTAPI_CDECL __attribute__((cdecl))
|
||||
#else /* _M_IX86 || __i386__ */
|
||||
#define ITTAPI_CDECL /* actual only on x86 platform */
|
||||
#endif /* _M_IX86 || __i386__ */
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#endif /* ITTAPI_CDECL */
|
||||
|
||||
#ifndef STDCALL
|
||||
# if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
# define STDCALL __stdcall
|
||||
# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
# if defined _M_IX86 || defined __i386__
|
||||
# define STDCALL __attribute__ ((stdcall))
|
||||
# else /* _M_IX86 || __i386__ */
|
||||
# define STDCALL /* supported only on x86 platform */
|
||||
# endif /* _M_IX86 || __i386__ */
|
||||
# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
#define STDCALL __stdcall
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#if defined _M_IX86 || defined __i386__
|
||||
#define STDCALL __attribute__((stdcall))
|
||||
#else /* _M_IX86 || __i386__ */
|
||||
#define STDCALL /* supported only on x86 platform */
|
||||
#endif /* _M_IX86 || __i386__ */
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#endif /* STDCALL */
|
||||
|
||||
#define ITTAPI ITTAPI_CDECL
|
||||
#define ITTAPI ITTAPI_CDECL
|
||||
#define LIBITTAPI ITTAPI_CDECL
|
||||
|
||||
/* TODO: Temporary for compatibility! */
|
||||
#define ITTAPI_CALL ITTAPI_CDECL
|
||||
#define ITTAPI_CALL ITTAPI_CDECL
|
||||
#define LIBITTAPI_CALL ITTAPI_CDECL
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
/* use __forceinline (VC++ specific) */
|
||||
#define ITT_INLINE __forceinline
|
||||
#define ITT_INLINE __forceinline
|
||||
#define ITT_INLINE_ATTRIBUTE /* nothing */
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
/*
|
||||
* Generally, functions are not inlined unless optimization is specified.
|
||||
* For functions declared inline, this attribute inlines the function even
|
||||
* if no optimization level was specified.
|
||||
*/
|
||||
#ifdef __STRICT_ANSI__
|
||||
#define ITT_INLINE static
|
||||
#define ITT_INLINE static
|
||||
#define ITT_INLINE_ATTRIBUTE __attribute__((unused))
|
||||
#else /* __STRICT_ANSI__ */
|
||||
#define ITT_INLINE static inline
|
||||
#else /* __STRICT_ANSI__ */
|
||||
#define ITT_INLINE static inline
|
||||
#define ITT_INLINE_ATTRIBUTE __attribute__((always_inline, unused))
|
||||
#endif /* __STRICT_ANSI__ */
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
/** @endcond */
|
||||
|
||||
#ifndef ITT_ARCH_IA32
|
||||
# define ITT_ARCH_IA32 1
|
||||
#define ITT_ARCH_IA32 1
|
||||
#endif /* ITT_ARCH_IA32 */
|
||||
|
||||
#ifndef ITT_ARCH_IA32E
|
||||
# define ITT_ARCH_IA32E 2
|
||||
#define ITT_ARCH_IA32E 2
|
||||
#endif /* ITT_ARCH_IA32E */
|
||||
|
||||
/* Was there a magical reason we didn't have 3 here before? */
|
||||
#ifndef ITT_ARCH_AARCH64
|
||||
# define ITT_ARCH_AARCH64 3
|
||||
#define ITT_ARCH_AARCH64 3
|
||||
#endif /* ITT_ARCH_AARCH64 */
|
||||
|
||||
#ifndef ITT_ARCH_ARM
|
||||
# define ITT_ARCH_ARM 4
|
||||
#define ITT_ARCH_ARM 4
|
||||
#endif /* ITT_ARCH_ARM */
|
||||
|
||||
#ifndef ITT_ARCH_PPC64
|
||||
# define ITT_ARCH_PPC64 5
|
||||
#define ITT_ARCH_PPC64 5
|
||||
#endif /* ITT_ARCH_PPC64 */
|
||||
|
||||
#ifndef ITT_ARCH_MIPS
|
||||
# define ITT_ARCH_MIPS 6
|
||||
#define ITT_ARCH_MIPS 6
|
||||
#endif /* ITT_ARCH_MIPS */
|
||||
|
||||
#ifndef ITT_ARCH_MIPS64
|
||||
# define ITT_ARCH_MIPS64 6
|
||||
#define ITT_ARCH_MIPS64 6
|
||||
#endif /* ITT_ARCH_MIPS64 */
|
||||
|
||||
#ifndef ITT_ARCH_RISCV64
|
||||
# define ITT_ARCH_RISCV64 7
|
||||
#define ITT_ARCH_RISCV64 7
|
||||
#endif /* ITT_ARCH_RISCV64 */
|
||||
|
||||
#ifndef ITT_ARCH
|
||||
# if defined _M_IX86 || defined __i386__
|
||||
# define ITT_ARCH ITT_ARCH_IA32
|
||||
# elif defined _M_X64 || defined _M_AMD64 || defined __x86_64__
|
||||
# define ITT_ARCH ITT_ARCH_IA32E
|
||||
# elif defined _M_IA64 || defined __ia64__
|
||||
# define ITT_ARCH ITT_ARCH_IA64
|
||||
# elif defined _M_ARM || defined __arm__
|
||||
# define ITT_ARCH ITT_ARCH_ARM
|
||||
# elif defined __powerpc64__
|
||||
# define ITT_ARCH ITT_ARCH_PPC64
|
||||
# elif defined __aarch64__
|
||||
# define ITT_ARCH ITT_ARCH_AARCH64
|
||||
# elif defined __mips__ && !defined __mips64
|
||||
# define ITT_ARCH ITT_ARCH_MIPS
|
||||
# elif defined __mips__ && defined __mips64
|
||||
# define ITT_ARCH ITT_ARCH_MIPS64
|
||||
# elif defined __riscv && __riscv_xlen == 64
|
||||
# define ITT_ARCH ITT_ARCH_RISCV64
|
||||
# endif
|
||||
#if defined _M_IX86 || defined __i386__
|
||||
#define ITT_ARCH ITT_ARCH_IA32
|
||||
#elif defined _M_X64 || defined _M_AMD64 || defined __x86_64__
|
||||
#define ITT_ARCH ITT_ARCH_IA32E
|
||||
#elif defined _M_IA64 || defined __ia64__
|
||||
#define ITT_ARCH ITT_ARCH_IA64
|
||||
#elif defined _M_ARM || defined __arm__
|
||||
#define ITT_ARCH ITT_ARCH_ARM
|
||||
#elif defined __powerpc64__
|
||||
#define ITT_ARCH ITT_ARCH_PPC64
|
||||
#elif defined __aarch64__
|
||||
#define ITT_ARCH ITT_ARCH_AARCH64
|
||||
#elif defined __mips__ && !defined __mips64
|
||||
#define ITT_ARCH ITT_ARCH_MIPS
|
||||
#elif defined __mips__ && defined __mips64
|
||||
#define ITT_ARCH ITT_ARCH_MIPS64
|
||||
#elif defined __riscv && __riscv_xlen == 64
|
||||
#define ITT_ARCH ITT_ARCH_RISCV64
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
# define ITT_EXTERN_C extern "C"
|
||||
# define ITT_EXTERN_C_BEGIN extern "C" {
|
||||
# define ITT_EXTERN_C_END }
|
||||
#define ITT_EXTERN_C extern "C"
|
||||
#define ITT_EXTERN_C_BEGIN extern "C" {
|
||||
#define ITT_EXTERN_C_END }
|
||||
#else
|
||||
# define ITT_EXTERN_C /* nothing */
|
||||
# define ITT_EXTERN_C_BEGIN /* nothing */
|
||||
# define ITT_EXTERN_C_END /* nothing */
|
||||
#define ITT_EXTERN_C /* nothing */
|
||||
#define ITT_EXTERN_C_BEGIN /* nothing */
|
||||
#define ITT_EXTERN_C_END /* nothing */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#define ITT_TO_STR_AUX(x) #x
|
||||
#define ITT_TO_STR(x) ITT_TO_STR_AUX(x)
|
||||
#define ITT_TO_STR(x) ITT_TO_STR_AUX(x)
|
||||
|
||||
#define __ITT_BUILD_ASSERT(expr, suffix) do { \
|
||||
static char __itt_build_check_##suffix[(expr) ? 1 : -1]; \
|
||||
__itt_build_check_##suffix[0] = 0; \
|
||||
} while(0)
|
||||
#define _ITT_BUILD_ASSERT(expr, suffix) __ITT_BUILD_ASSERT((expr), suffix)
|
||||
#define ITT_BUILD_ASSERT(expr) _ITT_BUILD_ASSERT((expr), __LINE__)
|
||||
#define __ITT_BUILD_ASSERT(expr, suffix) \
|
||||
do { \
|
||||
static char __itt_build_check_##suffix[(expr) ? 1 : -1]; \
|
||||
__itt_build_check_##suffix[0] = 0; \
|
||||
} while (0)
|
||||
#define _ITT_BUILD_ASSERT(expr, suffix) __ITT_BUILD_ASSERT((expr), suffix)
|
||||
#define ITT_BUILD_ASSERT(expr) _ITT_BUILD_ASSERT((expr), __LINE__)
|
||||
|
||||
#define ITT_MAGIC { 0xED, 0xAB, 0xAB, 0xEC, 0x0D, 0xEE, 0xDA, 0x30 }
|
||||
#define ITT_MAGIC \
|
||||
{ 0xED, 0xAB, 0xAB, 0xEC, 0x0D, 0xEE, 0xDA, 0x30 }
|
||||
|
||||
/* Replace with snapshot date YYYYMMDD for promotion build. */
|
||||
#define API_VERSION_BUILD 20151119
|
||||
#define API_VERSION_BUILD 20151119
|
||||
|
||||
#ifndef API_VERSION_NUM
|
||||
#define API_VERSION_NUM 0.0.0
|
||||
#endif /* API_VERSION_NUM */
|
||||
|
||||
#define API_VERSION "ITT-API-Version " ITT_TO_STR(API_VERSION_NUM) \
|
||||
" (" ITT_TO_STR(API_VERSION_BUILD) ")"
|
||||
#define API_VERSION \
|
||||
"ITT-API-Version " ITT_TO_STR(API_VERSION_NUM) " (" ITT_TO_STR( \
|
||||
API_VERSION_BUILD) ")"
|
||||
|
||||
/* OS communication functions */
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
#include <windows.h>
|
||||
typedef HMODULE lib_t;
|
||||
typedef DWORD TIDT;
|
||||
typedef CRITICAL_SECTION mutex_t;
|
||||
#define MUTEX_INITIALIZER { 0 }
|
||||
typedef HMODULE lib_t;
|
||||
typedef DWORD TIDT;
|
||||
typedef CRITICAL_SECTION mutex_t;
|
||||
#define MUTEX_INITIALIZER \
|
||||
{ 0 }
|
||||
#define strong_alias(name, aliasname) /* empty for Windows */
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#include <dlfcn.h>
|
||||
#if defined(UNICODE) || defined(_UNICODE)
|
||||
#include <wchar.h>
|
||||
@ -236,38 +240,39 @@ typedef CRITICAL_SECTION mutex_t;
|
||||
#define _GNU_SOURCE 1 /* need for PTHREAD_MUTEX_RECURSIVE */
|
||||
#endif /* _GNU_SOURCE */
|
||||
#ifndef __USE_UNIX98
|
||||
#define __USE_UNIX98 1 /* need for PTHREAD_MUTEX_RECURSIVE, on SLES11.1 with gcc 4.3.4 wherein pthread.h missing dependency on __USE_XOPEN2K8 */
|
||||
#define __USE_UNIX98 \
|
||||
1 /* need for PTHREAD_MUTEX_RECURSIVE, on SLES11.1 with gcc 4.3.4 wherein \
|
||||
pthread.h missing dependency on __USE_XOPEN2K8 */
|
||||
#endif /*__USE_UNIX98*/
|
||||
#include <pthread.h>
|
||||
typedef void* lib_t;
|
||||
typedef pthread_t TIDT;
|
||||
typedef pthread_mutex_t mutex_t;
|
||||
typedef void *lib_t;
|
||||
typedef pthread_t TIDT;
|
||||
typedef pthread_mutex_t mutex_t;
|
||||
#define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
|
||||
#define _strong_alias(name, aliasname) \
|
||||
extern __typeof (name) aliasname __attribute__ ((alias (#name)));
|
||||
#define _strong_alias(name, aliasname) \
|
||||
extern __typeof(name) aliasname __attribute__((alias(#name)));
|
||||
#define strong_alias(name, aliasname) _strong_alias(name, aliasname)
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
#define __itt_get_proc(lib, name) GetProcAddress(lib, name)
|
||||
#define __itt_mutex_init(mutex) InitializeCriticalSection(mutex)
|
||||
#define __itt_mutex_lock(mutex) EnterCriticalSection(mutex)
|
||||
#define __itt_mutex_init(mutex) InitializeCriticalSection(mutex)
|
||||
#define __itt_mutex_lock(mutex) EnterCriticalSection(mutex)
|
||||
#define __itt_mutex_unlock(mutex) LeaveCriticalSection(mutex)
|
||||
#define __itt_load_lib(name) LoadLibraryA(name)
|
||||
#define __itt_unload_lib(handle) FreeLibrary(handle)
|
||||
#define __itt_system_error() (int)GetLastError()
|
||||
#define __itt_fstrcmp(s1, s2) lstrcmpA(s1, s2)
|
||||
#define __itt_fstrnlen(s, l) strnlen_s(s, l)
|
||||
#define __itt_load_lib(name) LoadLibraryA(name)
|
||||
#define __itt_unload_lib(handle) FreeLibrary(handle)
|
||||
#define __itt_system_error() (int)GetLastError()
|
||||
#define __itt_fstrcmp(s1, s2) lstrcmpA(s1, s2)
|
||||
#define __itt_fstrnlen(s, l) strnlen_s(s, l)
|
||||
#define __itt_fstrcpyn(s1, b, s2, l) strncpy_s(s1, b, s2, l)
|
||||
#define __itt_fstrdup(s) _strdup(s)
|
||||
#define __itt_thread_id() GetCurrentThreadId()
|
||||
#define __itt_thread_yield() SwitchToThread()
|
||||
#define __itt_fstrdup(s) _strdup(s)
|
||||
#define __itt_thread_id() GetCurrentThreadId()
|
||||
#define __itt_thread_yield() SwitchToThread()
|
||||
#ifndef ITT_SIMPLE_INIT
|
||||
ITT_INLINE long
|
||||
__itt_interlocked_increment(volatile long* ptr) ITT_INLINE_ATTRIBUTE;
|
||||
ITT_INLINE long __itt_interlocked_increment(volatile long* ptr)
|
||||
{
|
||||
return InterlockedIncrement(ptr);
|
||||
__itt_interlocked_increment(volatile long *ptr) ITT_INLINE_ATTRIBUTE;
|
||||
ITT_INLINE long __itt_interlocked_increment(volatile long *ptr) {
|
||||
return InterlockedIncrement(ptr);
|
||||
}
|
||||
#endif /* ITT_SIMPLE_INIT */
|
||||
|
||||
@ -276,38 +281,39 @@ ITT_INLINE long __itt_interlocked_increment(volatile long* ptr)
|
||||
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
#define __itt_get_proc(lib, name) dlsym(lib, name)
|
||||
#define __itt_mutex_init(mutex) {\
|
||||
pthread_mutexattr_t mutex_attr; \
|
||||
int error_code = pthread_mutexattr_init(&mutex_attr); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutexattr_init", \
|
||||
error_code); \
|
||||
error_code = pthread_mutexattr_settype(&mutex_attr, \
|
||||
PTHREAD_MUTEX_RECURSIVE); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutexattr_settype", \
|
||||
error_code); \
|
||||
error_code = pthread_mutex_init(mutex, &mutex_attr); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutex_init", \
|
||||
error_code); \
|
||||
error_code = pthread_mutexattr_destroy(&mutex_attr); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutexattr_destroy", \
|
||||
error_code); \
|
||||
}
|
||||
#define __itt_mutex_lock(mutex) pthread_mutex_lock(mutex)
|
||||
#define __itt_mutex_init(mutex) \
|
||||
{ \
|
||||
pthread_mutexattr_t mutex_attr; \
|
||||
int error_code = pthread_mutexattr_init(&mutex_attr); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutexattr_init", \
|
||||
error_code); \
|
||||
error_code = \
|
||||
pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutexattr_settype", \
|
||||
error_code); \
|
||||
error_code = pthread_mutex_init(mutex, &mutex_attr); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutex_init", \
|
||||
error_code); \
|
||||
error_code = pthread_mutexattr_destroy(&mutex_attr); \
|
||||
if (error_code) \
|
||||
__itt_report_error(__itt_error_system, "pthread_mutexattr_destroy", \
|
||||
error_code); \
|
||||
}
|
||||
#define __itt_mutex_lock(mutex) pthread_mutex_lock(mutex)
|
||||
#define __itt_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
|
||||
#define __itt_load_lib(name) dlopen(name, RTLD_LAZY)
|
||||
#define __itt_unload_lib(handle) dlclose(handle)
|
||||
#define __itt_system_error() errno
|
||||
#define __itt_fstrcmp(s1, s2) strcmp(s1, s2)
|
||||
#define __itt_load_lib(name) dlopen(name, RTLD_LAZY)
|
||||
#define __itt_unload_lib(handle) dlclose(handle)
|
||||
#define __itt_system_error() errno
|
||||
#define __itt_fstrcmp(s1, s2) strcmp(s1, s2)
|
||||
|
||||
/* makes customer code define safe APIs for SDL_STRNLEN_S and SDL_STRNCPY_S */
|
||||
#ifdef SDL_STRNLEN_S
|
||||
#define __itt_fstrnlen(s, l) SDL_STRNLEN_S(s, l)
|
||||
#define __itt_fstrnlen(s, l) SDL_STRNLEN_S(s, l)
|
||||
#else
|
||||
#define __itt_fstrnlen(s, l) strlen(s)
|
||||
#define __itt_fstrnlen(s, l) strlen(s)
|
||||
#endif /* SDL_STRNLEN_S */
|
||||
#ifdef SDL_STRNCPY_S
|
||||
#define __itt_fstrcpyn(s1, b, s2, l) SDL_STRNCPY_S(s1, b, s2, l)
|
||||
@ -315,26 +321,26 @@ ITT_INLINE long __itt_interlocked_increment(volatile long* ptr)
|
||||
#define __itt_fstrcpyn(s1, b, s2, l) strncpy(s1, s2, l)
|
||||
#endif /* SDL_STRNCPY_S */
|
||||
|
||||
#define __itt_fstrdup(s) strdup(s)
|
||||
#define __itt_thread_id() pthread_self()
|
||||
#define __itt_thread_yield() sched_yield()
|
||||
#if ITT_ARCH==ITT_ARCH_IA64
|
||||
#define __itt_fstrdup(s) strdup(s)
|
||||
#define __itt_thread_id() pthread_self()
|
||||
#define __itt_thread_yield() sched_yield()
|
||||
#if ITT_ARCH == ITT_ARCH_IA64
|
||||
#ifdef __INTEL_COMPILER
|
||||
#define __TBB_machine_fetchadd4(addr, val) __fetchadd4_acq((void *)addr, val)
|
||||
#else /* __INTEL_COMPILER */
|
||||
#else /* __INTEL_COMPILER */
|
||||
/* TODO: Add Support for not Intel compilers for IA-64 architecture */
|
||||
#endif /* __INTEL_COMPILER */
|
||||
#elif ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_IA32E /* ITT_ARCH!=ITT_ARCH_IA64 */
|
||||
ITT_INLINE long
|
||||
__TBB_machine_fetchadd4(volatile void* ptr, long addend) ITT_INLINE_ATTRIBUTE;
|
||||
ITT_INLINE long __TBB_machine_fetchadd4(volatile void* ptr, long addend)
|
||||
{
|
||||
long result;
|
||||
__asm__ __volatile__("lock\nxadd %0,%1"
|
||||
: "=r"(result),"=m"(*(volatile int*)ptr)
|
||||
: "0"(addend), "m"(*(volatile int*)ptr)
|
||||
: "memory");
|
||||
return result;
|
||||
#elif ITT_ARCH == ITT_ARCH_IA32 || \
|
||||
ITT_ARCH == ITT_ARCH_IA32E /* ITT_ARCH!=ITT_ARCH_IA64 */
|
||||
ITT_INLINE long __TBB_machine_fetchadd4(volatile void *ptr,
|
||||
long addend) ITT_INLINE_ATTRIBUTE;
|
||||
ITT_INLINE long __TBB_machine_fetchadd4(volatile void *ptr, long addend) {
|
||||
long result;
|
||||
__asm__ __volatile__("lock\nxadd %0,%1"
|
||||
: "=r"(result), "=m"(*(volatile int *)ptr)
|
||||
: "0"(addend), "m"(*(volatile int *)ptr)
|
||||
: "memory");
|
||||
return result;
|
||||
}
|
||||
#elif ITT_ARCH == ITT_ARCH_ARM || ITT_ARCH == ITT_ARCH_PPC64 || \
|
||||
ITT_ARCH == ITT_ARCH_AARCH64 || ITT_ARCH == ITT_ARCH_MIPS || \
|
||||
@ -343,253 +349,259 @@ ITT_INLINE long __TBB_machine_fetchadd4(volatile void* ptr, long addend)
|
||||
#endif /* ITT_ARCH==ITT_ARCH_IA64 */
|
||||
#ifndef ITT_SIMPLE_INIT
|
||||
ITT_INLINE long
|
||||
__itt_interlocked_increment(volatile long* ptr) ITT_INLINE_ATTRIBUTE;
|
||||
ITT_INLINE long __itt_interlocked_increment(volatile long* ptr)
|
||||
{
|
||||
return __TBB_machine_fetchadd4(ptr, 1) + 1L;
|
||||
__itt_interlocked_increment(volatile long *ptr) ITT_INLINE_ATTRIBUTE;
|
||||
ITT_INLINE long __itt_interlocked_increment(volatile long *ptr) {
|
||||
return __TBB_machine_fetchadd4(ptr, 1) + 1L;
|
||||
}
|
||||
#endif /* ITT_SIMPLE_INIT */
|
||||
|
||||
void* dlopen(const char*, int) __attribute__((weak));
|
||||
void* dlsym(void*, const char*) __attribute__((weak));
|
||||
int dlclose(void*) __attribute__((weak));
|
||||
void *dlopen(const char *, int) __attribute__((weak));
|
||||
void *dlsym(void *, const char *) __attribute__((weak));
|
||||
int dlclose(void *) __attribute__((weak));
|
||||
#define DL_SYMBOLS (dlopen && dlsym && dlclose)
|
||||
|
||||
int pthread_mutex_init(pthread_mutex_t*, const pthread_mutexattr_t*) __attribute__((weak));
|
||||
int pthread_mutex_lock(pthread_mutex_t*) __attribute__((weak));
|
||||
int pthread_mutex_unlock(pthread_mutex_t*) __attribute__((weak));
|
||||
int pthread_mutex_destroy(pthread_mutex_t*) __attribute__((weak));
|
||||
int pthread_mutexattr_init(pthread_mutexattr_t*) __attribute__((weak));
|
||||
int pthread_mutexattr_settype(pthread_mutexattr_t*, int) __attribute__((weak));
|
||||
int pthread_mutexattr_destroy(pthread_mutexattr_t*) __attribute__((weak));
|
||||
int pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *)
|
||||
__attribute__((weak));
|
||||
int pthread_mutex_lock(pthread_mutex_t *) __attribute__((weak));
|
||||
int pthread_mutex_unlock(pthread_mutex_t *) __attribute__((weak));
|
||||
int pthread_mutex_destroy(pthread_mutex_t *) __attribute__((weak));
|
||||
int pthread_mutexattr_init(pthread_mutexattr_t *) __attribute__((weak));
|
||||
int pthread_mutexattr_settype(pthread_mutexattr_t *, int) __attribute__((weak));
|
||||
int pthread_mutexattr_destroy(pthread_mutexattr_t *) __attribute__((weak));
|
||||
pthread_t pthread_self(void) __attribute__((weak));
|
||||
#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
|
||||
#define PTHREAD_SYMBOLS \
|
||||
(pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && \
|
||||
pthread_mutex_destroy && pthread_mutexattr_init && \
|
||||
pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
|
||||
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
typedef enum {
|
||||
__itt_collection_normal = 0,
|
||||
__itt_collection_paused = 1
|
||||
__itt_collection_normal = 0,
|
||||
__itt_collection_paused = 1
|
||||
} __itt_collection_state;
|
||||
|
||||
typedef enum {
|
||||
__itt_thread_normal = 0,
|
||||
__itt_thread_ignored = 1
|
||||
__itt_thread_normal = 0,
|
||||
__itt_thread_ignored = 1
|
||||
} __itt_thread_state;
|
||||
|
||||
#pragma pack(push, 8)
|
||||
|
||||
typedef struct ___itt_thread_info
|
||||
{
|
||||
const char* nameA; /*!< Copy of original name in ASCII. */
|
||||
typedef struct ___itt_thread_info {
|
||||
const char *nameA; /*!< Copy of original name in ASCII. */
|
||||
#if defined(UNICODE) || defined(_UNICODE)
|
||||
const wchar_t* nameW; /*!< Copy of original name in UNICODE. */
|
||||
#else /* UNICODE || _UNICODE */
|
||||
void* nameW;
|
||||
const wchar_t *nameW; /*!< Copy of original name in UNICODE. */
|
||||
#else /* UNICODE || _UNICODE */
|
||||
void *nameW;
|
||||
#endif /* UNICODE || _UNICODE */
|
||||
TIDT tid;
|
||||
__itt_thread_state state; /*!< Thread state (paused or normal) */
|
||||
int extra1; /*!< Reserved to the runtime */
|
||||
void* extra2; /*!< Reserved to the runtime */
|
||||
struct ___itt_thread_info* next;
|
||||
TIDT tid;
|
||||
__itt_thread_state state; /*!< Thread state (paused or normal) */
|
||||
int extra1; /*!< Reserved to the runtime */
|
||||
void *extra2; /*!< Reserved to the runtime */
|
||||
struct ___itt_thread_info *next;
|
||||
} __itt_thread_info;
|
||||
|
||||
#include "ittnotify_types.h" /* For __itt_group_id definition */
|
||||
|
||||
typedef struct ___itt_api_info_20101001
|
||||
{
|
||||
const char* name;
|
||||
void** func_ptr;
|
||||
void* init_func;
|
||||
__itt_group_id group;
|
||||
} __itt_api_info_20101001;
|
||||
typedef struct ___itt_api_info_20101001 {
|
||||
const char *name;
|
||||
void **func_ptr;
|
||||
void *init_func;
|
||||
__itt_group_id group;
|
||||
} __itt_api_info_20101001;
|
||||
|
||||
typedef struct ___itt_api_info
|
||||
{
|
||||
const char* name;
|
||||
void** func_ptr;
|
||||
void* init_func;
|
||||
void* null_func;
|
||||
__itt_group_id group;
|
||||
} __itt_api_info;
|
||||
typedef struct ___itt_api_info {
|
||||
const char *name;
|
||||
void **func_ptr;
|
||||
void *init_func;
|
||||
void *null_func;
|
||||
__itt_group_id group;
|
||||
} __itt_api_info;
|
||||
|
||||
typedef struct __itt_counter_info
|
||||
{
|
||||
const char* nameA; /*!< Copy of original name in ASCII. */
|
||||
typedef struct __itt_counter_info {
|
||||
const char *nameA; /*!< Copy of original name in ASCII. */
|
||||
#if defined(UNICODE) || defined(_UNICODE)
|
||||
const wchar_t* nameW; /*!< Copy of original name in UNICODE. */
|
||||
#else /* UNICODE || _UNICODE */
|
||||
void* nameW;
|
||||
const wchar_t *nameW; /*!< Copy of original name in UNICODE. */
|
||||
#else /* UNICODE || _UNICODE */
|
||||
void *nameW;
|
||||
#endif /* UNICODE || _UNICODE */
|
||||
const char* domainA; /*!< Copy of original name in ASCII. */
|
||||
const char *domainA; /*!< Copy of original name in ASCII. */
|
||||
#if defined(UNICODE) || defined(_UNICODE)
|
||||
const wchar_t* domainW; /*!< Copy of original name in UNICODE. */
|
||||
#else /* UNICODE || _UNICODE */
|
||||
void* domainW;
|
||||
const wchar_t *domainW; /*!< Copy of original name in UNICODE. */
|
||||
#else /* UNICODE || _UNICODE */
|
||||
void *domainW;
|
||||
#endif /* UNICODE || _UNICODE */
|
||||
int type;
|
||||
long index;
|
||||
int extra1; /*!< Reserved to the runtime */
|
||||
void* extra2; /*!< Reserved to the runtime */
|
||||
struct __itt_counter_info* next;
|
||||
} __itt_counter_info_t;
|
||||
int type;
|
||||
long index;
|
||||
int extra1; /*!< Reserved to the runtime */
|
||||
void *extra2; /*!< Reserved to the runtime */
|
||||
struct __itt_counter_info *next;
|
||||
} __itt_counter_info_t;
|
||||
|
||||
struct ___itt_domain;
|
||||
struct ___itt_string_handle;
|
||||
|
||||
typedef struct ___itt_global
|
||||
{
|
||||
unsigned char magic[8];
|
||||
unsigned long version_major;
|
||||
unsigned long version_minor;
|
||||
unsigned long version_build;
|
||||
volatile long api_initialized;
|
||||
volatile long mutex_initialized;
|
||||
volatile long atomic_counter;
|
||||
mutex_t mutex;
|
||||
lib_t lib;
|
||||
void* error_handler;
|
||||
const char** dll_path_ptr;
|
||||
__itt_api_info* api_list_ptr;
|
||||
struct ___itt_global* next;
|
||||
/* Joinable structures below */
|
||||
__itt_thread_info* thread_list;
|
||||
struct ___itt_domain* domain_list;
|
||||
struct ___itt_string_handle* string_list;
|
||||
__itt_collection_state state;
|
||||
__itt_counter_info_t* counter_list;
|
||||
typedef struct ___itt_global {
|
||||
unsigned char magic[8];
|
||||
unsigned long version_major;
|
||||
unsigned long version_minor;
|
||||
unsigned long version_build;
|
||||
volatile long api_initialized;
|
||||
volatile long mutex_initialized;
|
||||
volatile long atomic_counter;
|
||||
mutex_t mutex;
|
||||
lib_t lib;
|
||||
void *error_handler;
|
||||
const char **dll_path_ptr;
|
||||
__itt_api_info *api_list_ptr;
|
||||
struct ___itt_global *next;
|
||||
/* Joinable structures below */
|
||||
__itt_thread_info *thread_list;
|
||||
struct ___itt_domain *domain_list;
|
||||
struct ___itt_string_handle *string_list;
|
||||
__itt_collection_state state;
|
||||
__itt_counter_info_t *counter_list;
|
||||
} __itt_global;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#define NEW_THREAD_INFO_W(gptr,h,h_tail,t,s,n) { \
|
||||
h = (__itt_thread_info*)malloc(sizeof(__itt_thread_info)); \
|
||||
if (h != NULL) { \
|
||||
h->tid = t; \
|
||||
h->nameA = NULL; \
|
||||
h->nameW = n ? _wcsdup(n) : NULL; \
|
||||
h->state = s; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->thread_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_THREAD_INFO_W(gptr, h, h_tail, t, s, n) \
|
||||
{ \
|
||||
h = (__itt_thread_info *)malloc(sizeof(__itt_thread_info)); \
|
||||
if (h != NULL) { \
|
||||
h->tid = t; \
|
||||
h->nameA = NULL; \
|
||||
h->nameW = n ? _wcsdup(n) : NULL; \
|
||||
h->state = s; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->thread_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NEW_THREAD_INFO_A(gptr,h,h_tail,t,s,n) { \
|
||||
h = (__itt_thread_info*)malloc(sizeof(__itt_thread_info)); \
|
||||
if (h != NULL) { \
|
||||
h->tid = t; \
|
||||
h->nameA = n ? __itt_fstrdup(n) : NULL; \
|
||||
h->nameW = NULL; \
|
||||
h->state = s; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->thread_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_THREAD_INFO_A(gptr, h, h_tail, t, s, n) \
|
||||
{ \
|
||||
h = (__itt_thread_info *)malloc(sizeof(__itt_thread_info)); \
|
||||
if (h != NULL) { \
|
||||
h->tid = t; \
|
||||
h->nameA = n ? __itt_fstrdup(n) : NULL; \
|
||||
h->nameW = NULL; \
|
||||
h->state = s; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->thread_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NEW_DOMAIN_W(gptr,h,h_tail,name) { \
|
||||
h = (__itt_domain*)malloc(sizeof(__itt_domain)); \
|
||||
if (h != NULL) { \
|
||||
h->flags = 1; /* domain is enabled by default */ \
|
||||
h->nameA = NULL; \
|
||||
h->nameW = name ? _wcsdup(name) : NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->domain_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_DOMAIN_W(gptr, h, h_tail, name) \
|
||||
{ \
|
||||
h = (__itt_domain *)malloc(sizeof(__itt_domain)); \
|
||||
if (h != NULL) { \
|
||||
h->flags = 1; /* domain is enabled by default */ \
|
||||
h->nameA = NULL; \
|
||||
h->nameW = name ? _wcsdup(name) : NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->domain_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NEW_DOMAIN_A(gptr,h,h_tail,name) { \
|
||||
h = (__itt_domain*)malloc(sizeof(__itt_domain)); \
|
||||
if (h != NULL) { \
|
||||
h->flags = 1; /* domain is enabled by default */ \
|
||||
h->nameA = name ? __itt_fstrdup(name) : NULL; \
|
||||
h->nameW = NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->domain_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_DOMAIN_A(gptr, h, h_tail, name) \
|
||||
{ \
|
||||
h = (__itt_domain *)malloc(sizeof(__itt_domain)); \
|
||||
if (h != NULL) { \
|
||||
h->flags = 1; /* domain is enabled by default */ \
|
||||
h->nameA = name ? __itt_fstrdup(name) : NULL; \
|
||||
h->nameW = NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->domain_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NEW_STRING_HANDLE_W(gptr,h,h_tail,name) { \
|
||||
h = (__itt_string_handle*)malloc(sizeof(__itt_string_handle)); \
|
||||
if (h != NULL) { \
|
||||
h->strA = NULL; \
|
||||
h->strW = name ? _wcsdup(name) : NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->string_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_STRING_HANDLE_W(gptr, h, h_tail, name) \
|
||||
{ \
|
||||
h = (__itt_string_handle *)malloc(sizeof(__itt_string_handle)); \
|
||||
if (h != NULL) { \
|
||||
h->strA = NULL; \
|
||||
h->strW = name ? _wcsdup(name) : NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->string_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NEW_STRING_HANDLE_A(gptr,h,h_tail,name) { \
|
||||
h = (__itt_string_handle*)malloc(sizeof(__itt_string_handle)); \
|
||||
if (h != NULL) { \
|
||||
h->strA = name ? __itt_fstrdup(name) : NULL; \
|
||||
h->strW = NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->string_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_STRING_HANDLE_A(gptr, h, h_tail, name) \
|
||||
{ \
|
||||
h = (__itt_string_handle *)malloc(sizeof(__itt_string_handle)); \
|
||||
if (h != NULL) { \
|
||||
h->strA = name ? __itt_fstrdup(name) : NULL; \
|
||||
h->strW = NULL; \
|
||||
h->extra1 = 0; /* reserved */ \
|
||||
h->extra2 = NULL; /* reserved */ \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->string_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NEW_COUNTER_W(gptr,h,h_tail,name,domain,type) { \
|
||||
h = (__itt_counter_info_t*)malloc(sizeof(__itt_counter_info_t)); \
|
||||
if (h != NULL) { \
|
||||
h->nameA = NULL; \
|
||||
h->nameW = name ? _wcsdup(name) : NULL; \
|
||||
h->domainA = NULL; \
|
||||
h->domainW = name ? _wcsdup(domain) : NULL; \
|
||||
h->type = type; \
|
||||
h->index = 0; \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->counter_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_COUNTER_W(gptr, h, h_tail, name, domain, type) \
|
||||
{ \
|
||||
h = (__itt_counter_info_t *)malloc(sizeof(__itt_counter_info_t)); \
|
||||
if (h != NULL) { \
|
||||
h->nameA = NULL; \
|
||||
h->nameW = name ? _wcsdup(name) : NULL; \
|
||||
h->domainA = NULL; \
|
||||
h->domainW = name ? _wcsdup(domain) : NULL; \
|
||||
h->type = type; \
|
||||
h->index = 0; \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->counter_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NEW_COUNTER_A(gptr,h,h_tail,name,domain,type) { \
|
||||
h = (__itt_counter_info_t*)malloc(sizeof(__itt_counter_info_t)); \
|
||||
if (h != NULL) { \
|
||||
h->nameA = name ? __itt_fstrdup(name) : NULL; \
|
||||
h->nameW = NULL; \
|
||||
h->domainA = domain ? __itt_fstrdup(domain) : NULL; \
|
||||
h->domainW = NULL; \
|
||||
h->type = type; \
|
||||
h->index = 0; \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->counter_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
#define NEW_COUNTER_A(gptr, h, h_tail, name, domain, type) \
|
||||
{ \
|
||||
h = (__itt_counter_info_t *)malloc(sizeof(__itt_counter_info_t)); \
|
||||
if (h != NULL) { \
|
||||
h->nameA = name ? __itt_fstrdup(name) : NULL; \
|
||||
h->nameW = NULL; \
|
||||
h->domainA = domain ? __itt_fstrdup(domain) : NULL; \
|
||||
h->domainW = NULL; \
|
||||
h->type = type; \
|
||||
h->index = 0; \
|
||||
h->next = NULL; \
|
||||
if (h_tail == NULL) \
|
||||
(gptr)->counter_list = h; \
|
||||
else \
|
||||
h_tail->next = h; \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif /* _ITTNOTIFY_CONFIG_H_ */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,335 +7,752 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
||||
#include "ittnotify_config.h"
|
||||
|
||||
#ifndef ITT_FORMAT_DEFINED
|
||||
# ifndef ITT_FORMAT
|
||||
# define ITT_FORMAT
|
||||
# endif /* ITT_FORMAT */
|
||||
# ifndef ITT_NO_PARAMS
|
||||
# define ITT_NO_PARAMS
|
||||
# endif /* ITT_NO_PARAMS */
|
||||
#ifndef ITT_FORMAT
|
||||
#define ITT_FORMAT
|
||||
#endif /* ITT_FORMAT */
|
||||
#ifndef ITT_NO_PARAMS
|
||||
#define ITT_NO_PARAMS
|
||||
#endif /* ITT_NO_PARAMS */
|
||||
#endif /* ITT_FORMAT_DEFINED */
|
||||
|
||||
/*
|
||||
* parameters for macro expected:
|
||||
* ITT_STUB(api, type, func_name, arguments, params, func_name_in_dll, group, printf_fmt)
|
||||
* ITT_STUB(api, type, func_name, arguments, params, func_name_in_dll, group,
|
||||
* printf_fmt)
|
||||
*/
|
||||
#ifdef __ITT_INTERNAL_INIT
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_domain*, domain_createA, (const char *name), (ITT_FORMAT name), domain_createA, __itt_group_structure, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_domain*, domain_createW, (const wchar_t *name), (ITT_FORMAT name), domain_createW, __itt_group_structure, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_domain*, domain_create, (const char *name), (ITT_FORMAT name), domain_create, __itt_group_structure, "\"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_domain *, domain_createA, (const char *name),
|
||||
(ITT_FORMAT name), domain_createA, __itt_group_structure, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_domain *, domain_createW, (const wchar_t *name),
|
||||
(ITT_FORMAT name), domain_createW, __itt_group_structure, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_domain *, domain_create, (const char *name),
|
||||
(ITT_FORMAT name), domain_create, __itt_group_structure, "\"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_string_handle*, string_handle_createA, (const char *name), (ITT_FORMAT name), string_handle_createA, __itt_group_structure, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_string_handle*, string_handle_createW, (const wchar_t *name), (ITT_FORMAT name), string_handle_createW, __itt_group_structure, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_string_handle*, string_handle_create, (const char *name), (ITT_FORMAT name), string_handle_create, __itt_group_structure, "\"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_string_handle *, string_handle_createA,
|
||||
(const char *name), (ITT_FORMAT name), string_handle_createA,
|
||||
__itt_group_structure, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_string_handle *, string_handle_createW,
|
||||
(const wchar_t *name), (ITT_FORMAT name), string_handle_createW,
|
||||
__itt_group_structure, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_string_handle *, string_handle_create,
|
||||
(const char *name), (ITT_FORMAT name), string_handle_create,
|
||||
__itt_group_structure, "\"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_createA, (const char *name, const char *domain), (ITT_FORMAT name, domain), counter_createA, __itt_group_counter, "\"%s\", \"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_createW, (const wchar_t *name, const wchar_t *domain), (ITT_FORMAT name, domain), counter_createW, __itt_group_counter, "\"%s\", \"%s\"")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create, (const char *name, const char *domain), (ITT_FORMAT name, domain), counter_create, __itt_group_counter, "\"%s\", \"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_createA,
|
||||
(const char *name, const char *domain), (ITT_FORMAT name, domain),
|
||||
counter_createA, __itt_group_counter, "\"%s\", \"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_createW,
|
||||
(const wchar_t *name, const wchar_t *domain),
|
||||
(ITT_FORMAT name, domain), counter_createW, __itt_group_counter,
|
||||
"\"%s\", \"%s\"")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create,
|
||||
(const char *name, const char *domain), (ITT_FORMAT name, domain),
|
||||
counter_create, __itt_group_counter, "\"%s\", \"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create_typedA, (const char *name, const char *domain, __itt_metadata_type type), (ITT_FORMAT name, domain, type), counter_create_typedA, __itt_group_counter, "\"%s\", \"%s\", %d")
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create_typedW, (const wchar_t *name, const wchar_t *domain, __itt_metadata_type type), (ITT_FORMAT name, domain, type), counter_create_typedW, __itt_group_counter, "\"%s\", \"%s\", %d")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create_typed, (const char *name, const char *domain, __itt_metadata_type type), (ITT_FORMAT name, domain, type), counter_create_typed, __itt_group_counter, "\"%s\", \"%s\", %d")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create_typedA,
|
||||
(const char *name, const char *domain, __itt_metadata_type type),
|
||||
(ITT_FORMAT name, domain, type), counter_create_typedA,
|
||||
__itt_group_counter, "\"%s\", \"%s\", %d")
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create_typedW,
|
||||
(const wchar_t *name, const wchar_t *domain, __itt_metadata_type type),
|
||||
(ITT_FORMAT name, domain, type), counter_create_typedW,
|
||||
__itt_group_counter, "\"%s\", \"%s\", %d")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_counter, counter_create_typed,
|
||||
(const char *name, const char *domain, __itt_metadata_type type),
|
||||
(ITT_FORMAT name, domain, type), counter_create_typed,
|
||||
__itt_group_counter, "\"%s\", \"%s\", %d")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
ITT_STUBV(ITTAPI, void, pause, (void), (ITT_NO_PARAMS), pause,
|
||||
__itt_group_control | __itt_group_legacy, "no args")
|
||||
ITT_STUBV(ITTAPI, void, resume, (void), (ITT_NO_PARAMS), resume,
|
||||
__itt_group_control | __itt_group_legacy, "no args")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, pause, (void), (ITT_NO_PARAMS), pause, __itt_group_control | __itt_group_legacy, "no args")
|
||||
ITT_STUBV(ITTAPI, void, resume, (void), (ITT_NO_PARAMS), resume, __itt_group_control | __itt_group_legacy, "no args")
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, thread_set_nameA, (const char *name), (ITT_FORMAT name), thread_set_nameA, __itt_group_thread, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, thread_set_nameW, (const wchar_t *name), (ITT_FORMAT name), thread_set_nameW, __itt_group_thread, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, thread_set_name, (const char *name), (ITT_FORMAT name), thread_set_name, __itt_group_thread, "\"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, thread_set_nameA, (const char *name), (ITT_FORMAT name),
|
||||
thread_set_nameA, __itt_group_thread, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, thread_set_nameW, (const wchar_t *name),
|
||||
(ITT_FORMAT name), thread_set_nameW, __itt_group_thread, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, thread_set_name, (const char *name), (ITT_FORMAT name),
|
||||
thread_set_name, __itt_group_thread, "\"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, thread_ignore, (void), (ITT_NO_PARAMS), thread_ignore, __itt_group_thread, "no args")
|
||||
ITT_STUBV(ITTAPI, void, thread_ignore, (void), (ITT_NO_PARAMS), thread_ignore,
|
||||
__itt_group_thread, "no args")
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(LIBITTAPI, int, thr_name_setA, (const char *name, int namelen), (ITT_FORMAT name, namelen), thr_name_setA, __itt_group_thread | __itt_group_legacy, "\"%s\", %d")
|
||||
ITT_STUB(LIBITTAPI, int, thr_name_setW, (const wchar_t *name, int namelen), (ITT_FORMAT name, namelen), thr_name_setW, __itt_group_thread | __itt_group_legacy, "\"%S\", %d")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(LIBITTAPI, int, thr_name_set, (const char *name, int namelen), (ITT_FORMAT name, namelen), thr_name_set, __itt_group_thread | __itt_group_legacy, "\"%s\", %d")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(LIBITTAPI, int, thr_name_setA, (const char *name, int namelen),
|
||||
(ITT_FORMAT name, namelen), thr_name_setA,
|
||||
__itt_group_thread | __itt_group_legacy, "\"%s\", %d")
|
||||
ITT_STUB(LIBITTAPI, int, thr_name_setW, (const wchar_t *name, int namelen),
|
||||
(ITT_FORMAT name, namelen), thr_name_setW,
|
||||
__itt_group_thread | __itt_group_legacy, "\"%S\", %d")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(LIBITTAPI, int, thr_name_set, (const char *name, int namelen),
|
||||
(ITT_FORMAT name, namelen), thr_name_set,
|
||||
__itt_group_thread | __itt_group_legacy, "\"%s\", %d")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(LIBITTAPI, void, thr_ignore, (void), (ITT_NO_PARAMS), thr_ignore, __itt_group_thread | __itt_group_legacy, "no args")
|
||||
ITT_STUBV(LIBITTAPI, void, thr_ignore, (void), (ITT_NO_PARAMS), thr_ignore,
|
||||
__itt_group_thread | __itt_group_legacy, "no args")
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
ITT_STUBV(ITTAPI, void, enable_attach, (void), (ITT_NO_PARAMS), enable_attach, __itt_group_all, "no args")
|
||||
ITT_STUBV(ITTAPI, void, enable_attach, (void), (ITT_NO_PARAMS), enable_attach,
|
||||
__itt_group_all, "no args")
|
||||
|
||||
#else /* __ITT_INTERNAL_INIT */
|
||||
#else /* __ITT_INTERNAL_INIT */
|
||||
|
||||
ITT_STUBV(ITTAPI, void, detach, (void), (ITT_NO_PARAMS), detach, __itt_group_control | __itt_group_legacy, "no args")
|
||||
ITT_STUBV(ITTAPI, void, detach, (void), (ITT_NO_PARAMS), detach,
|
||||
__itt_group_control | __itt_group_legacy, "no args")
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, sync_createA, (void *addr, const char *objtype, const char *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_createA, __itt_group_sync | __itt_group_fsync, "%p, \"%s\", \"%s\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_createW, (void *addr, const wchar_t *objtype, const wchar_t *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_createW, __itt_group_sync | __itt_group_fsync, "%p, \"%S\", \"%S\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_renameA, (void *addr, const char *name), (ITT_FORMAT addr, name), sync_renameA, __itt_group_sync | __itt_group_fsync, "%p, \"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, sync_renameW, (void *addr, const wchar_t *name), (ITT_FORMAT addr, name), sync_renameW, __itt_group_sync | __itt_group_fsync, "%p, \"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, sync_create, (void *addr, const char *objtype, const char *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_create, __itt_group_sync | __itt_group_fsync, "%p, \"%s\", \"%s\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_rename, (void *addr, const char *name), (ITT_FORMAT addr, name), sync_rename, __itt_group_sync | __itt_group_fsync, "%p, \"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, sync_createA,
|
||||
(void *addr, const char *objtype, const char *objname, int attribute),
|
||||
(ITT_FORMAT addr, objtype, objname, attribute), sync_createA,
|
||||
__itt_group_sync | __itt_group_fsync, "%p, \"%s\", \"%s\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_createW,
|
||||
(void *addr, const wchar_t *objtype, const wchar_t *objname,
|
||||
int attribute),
|
||||
(ITT_FORMAT addr, objtype, objname, attribute), sync_createW,
|
||||
__itt_group_sync | __itt_group_fsync, "%p, \"%S\", \"%S\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_renameA, (void *addr, const char *name),
|
||||
(ITT_FORMAT addr, name), sync_renameA,
|
||||
__itt_group_sync | __itt_group_fsync, "%p, \"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, sync_renameW, (void *addr, const wchar_t *name),
|
||||
(ITT_FORMAT addr, name), sync_renameW,
|
||||
__itt_group_sync | __itt_group_fsync, "%p, \"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, sync_create,
|
||||
(void *addr, const char *objtype, const char *objname, int attribute),
|
||||
(ITT_FORMAT addr, objtype, objname, attribute), sync_create,
|
||||
__itt_group_sync | __itt_group_fsync, "%p, \"%s\", \"%s\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_rename, (void *addr, const char *name),
|
||||
(ITT_FORMAT addr, name), sync_rename,
|
||||
__itt_group_sync | __itt_group_fsync, "%p, \"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, sync_destroy, (void *addr), (ITT_FORMAT addr), sync_destroy, __itt_group_sync | __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_destroy, (void *addr), (ITT_FORMAT addr),
|
||||
sync_destroy, __itt_group_sync | __itt_group_fsync, "%p")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, sync_prepare, (void* addr), (ITT_FORMAT addr), sync_prepare, __itt_group_sync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_cancel, (void *addr), (ITT_FORMAT addr), sync_cancel, __itt_group_sync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_acquired, (void *addr), (ITT_FORMAT addr), sync_acquired, __itt_group_sync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_releasing, (void* addr), (ITT_FORMAT addr), sync_releasing, __itt_group_sync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_prepare, (void *addr), (ITT_FORMAT addr),
|
||||
sync_prepare, __itt_group_sync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_cancel, (void *addr), (ITT_FORMAT addr),
|
||||
sync_cancel, __itt_group_sync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_acquired, (void *addr), (ITT_FORMAT addr),
|
||||
sync_acquired, __itt_group_sync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, sync_releasing, (void *addr), (ITT_FORMAT addr),
|
||||
sync_releasing, __itt_group_sync, "%p")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, suppress_push, (unsigned int mask), (ITT_FORMAT mask), suppress_push, __itt_group_suppress, "%p")
|
||||
ITT_STUBV(ITTAPI, void, suppress_pop, (void), (ITT_NO_PARAMS), suppress_pop, __itt_group_suppress, "no args")
|
||||
ITT_STUBV(ITTAPI, void, suppress_mark_range, (__itt_suppress_mode_t mode, unsigned int mask, void * address, size_t size),(ITT_FORMAT mode, mask, address, size), suppress_mark_range, __itt_group_suppress, "%d, %p, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, suppress_clear_range,(__itt_suppress_mode_t mode, unsigned int mask, void * address, size_t size),(ITT_FORMAT mode, mask, address, size), suppress_clear_range,__itt_group_suppress, "%d, %p, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, suppress_push, (unsigned int mask), (ITT_FORMAT mask),
|
||||
suppress_push, __itt_group_suppress, "%p")
|
||||
ITT_STUBV(ITTAPI, void, suppress_pop, (void), (ITT_NO_PARAMS), suppress_pop,
|
||||
__itt_group_suppress, "no args")
|
||||
ITT_STUBV(ITTAPI, void, suppress_mark_range,
|
||||
(__itt_suppress_mode_t mode, unsigned int mask, void *address,
|
||||
size_t size),
|
||||
(ITT_FORMAT mode, mask, address, size), suppress_mark_range,
|
||||
__itt_group_suppress, "%d, %p, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, suppress_clear_range,
|
||||
(__itt_suppress_mode_t mode, unsigned int mask, void *address,
|
||||
size_t size),
|
||||
(ITT_FORMAT mode, mask, address, size), suppress_clear_range,
|
||||
__itt_group_suppress, "%d, %p, %p, %d")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, fsync_prepare, (void* addr), (ITT_FORMAT addr), sync_prepare, __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, fsync_cancel, (void *addr), (ITT_FORMAT addr), sync_cancel, __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, fsync_acquired, (void *addr), (ITT_FORMAT addr), sync_acquired, __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, fsync_releasing, (void* addr), (ITT_FORMAT addr), sync_releasing, __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, fsync_prepare, (void *addr), (ITT_FORMAT addr),
|
||||
sync_prepare, __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, fsync_cancel, (void *addr), (ITT_FORMAT addr),
|
||||
sync_cancel, __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, fsync_acquired, (void *addr), (ITT_FORMAT addr),
|
||||
sync_acquired, __itt_group_fsync, "%p")
|
||||
ITT_STUBV(ITTAPI, void, fsync_releasing, (void *addr), (ITT_FORMAT addr),
|
||||
sync_releasing, __itt_group_fsync, "%p")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, model_site_begin, (__itt_model_site *site, __itt_model_site_instance *instance, const char *name), (ITT_FORMAT site, instance, name), model_site_begin, __itt_group_model, "%p, %p, \"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_site_end, (__itt_model_site *site, __itt_model_site_instance *instance), (ITT_FORMAT site, instance), model_site_end, __itt_group_model, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, model_task_begin, (__itt_model_task *task, __itt_model_task_instance *instance, const char *name), (ITT_FORMAT task, instance, name), model_task_begin, __itt_group_model, "%p, %p, \"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_task_end, (__itt_model_task *task, __itt_model_task_instance *instance), (ITT_FORMAT task, instance), model_task_end, __itt_group_model, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_acquire, (void *lock), (ITT_FORMAT lock), model_lock_acquire, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_release, (void *lock), (ITT_FORMAT lock), model_lock_release, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_record_allocation, (void *addr, size_t size), (ITT_FORMAT addr, size), model_record_allocation, __itt_group_model, "%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_record_deallocation, (void *addr), (ITT_FORMAT addr), model_record_deallocation, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_induction_uses, (void* addr, size_t size), (ITT_FORMAT addr, size), model_induction_uses, __itt_group_model, "%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_reduction_uses, (void* addr, size_t size), (ITT_FORMAT addr, size), model_reduction_uses, __itt_group_model, "%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_observe_uses, (void* addr, size_t size), (ITT_FORMAT addr, size), model_observe_uses, __itt_group_model, "%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_clear_uses, (void* addr), (ITT_FORMAT addr), model_clear_uses, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_site_begin,
|
||||
(__itt_model_site * site, __itt_model_site_instance *instance,
|
||||
const char *name),
|
||||
(ITT_FORMAT site, instance, name), model_site_begin,
|
||||
__itt_group_model, "%p, %p, \"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_site_end,
|
||||
(__itt_model_site * site, __itt_model_site_instance *instance),
|
||||
(ITT_FORMAT site, instance), model_site_end, __itt_group_model,
|
||||
"%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, model_task_begin,
|
||||
(__itt_model_task * task, __itt_model_task_instance *instance,
|
||||
const char *name),
|
||||
(ITT_FORMAT task, instance, name), model_task_begin,
|
||||
__itt_group_model, "%p, %p, \"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_task_end,
|
||||
(__itt_model_task * task, __itt_model_task_instance *instance),
|
||||
(ITT_FORMAT task, instance), model_task_end, __itt_group_model,
|
||||
"%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_acquire, (void *lock), (ITT_FORMAT lock),
|
||||
model_lock_acquire, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_release, (void *lock), (ITT_FORMAT lock),
|
||||
model_lock_release, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_record_allocation, (void *addr, size_t size),
|
||||
(ITT_FORMAT addr, size), model_record_allocation, __itt_group_model,
|
||||
"%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_record_deallocation, (void *addr),
|
||||
(ITT_FORMAT addr), model_record_deallocation, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_induction_uses, (void *addr, size_t size),
|
||||
(ITT_FORMAT addr, size), model_induction_uses, __itt_group_model,
|
||||
"%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_reduction_uses, (void *addr, size_t size),
|
||||
(ITT_FORMAT addr, size), model_reduction_uses, __itt_group_model,
|
||||
"%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_observe_uses, (void *addr, size_t size),
|
||||
(ITT_FORMAT addr, size), model_observe_uses, __itt_group_model,
|
||||
"%p, %d")
|
||||
ITT_STUBV(ITTAPI, void, model_clear_uses, (void *addr), (ITT_FORMAT addr),
|
||||
model_clear_uses, __itt_group_model, "%p")
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, model_site_beginW, (const wchar_t *name), (ITT_FORMAT name), model_site_beginW, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_task_beginW, (const wchar_t *name), (ITT_FORMAT name), model_task_beginW, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_iteration_taskW, (const wchar_t *name), (ITT_FORMAT name), model_iteration_taskW, __itt_group_model, "\"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, model_site_beginW, (const wchar_t *name),
|
||||
(ITT_FORMAT name), model_site_beginW, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_task_beginW, (const wchar_t *name),
|
||||
(ITT_FORMAT name), model_task_beginW, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_iteration_taskW, (const wchar_t *name),
|
||||
(ITT_FORMAT name), model_iteration_taskW, __itt_group_model, "\"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, model_site_beginA, (const char *name), (ITT_FORMAT name), model_site_beginA, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_site_beginAL, (const char *name, size_t len), (ITT_FORMAT name, len), model_site_beginAL, __itt_group_model, "\"%s\", %d")
|
||||
ITT_STUBV(ITTAPI, void, model_task_beginA, (const char *name), (ITT_FORMAT name), model_task_beginA, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_task_beginAL, (const char *name, size_t len), (ITT_FORMAT name, len), model_task_beginAL, __itt_group_model, "\"%s\", %d")
|
||||
ITT_STUBV(ITTAPI, void, model_iteration_taskA, (const char *name), (ITT_FORMAT name), model_iteration_taskA, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_iteration_taskAL, (const char *name, size_t len), (ITT_FORMAT name, len), model_iteration_taskAL, __itt_group_model, "\"%s\", %d")
|
||||
ITT_STUBV(ITTAPI, void, model_site_end_2, (void), (ITT_NO_PARAMS), model_site_end_2, __itt_group_model, "no args")
|
||||
ITT_STUBV(ITTAPI, void, model_task_end_2, (void), (ITT_NO_PARAMS), model_task_end_2, __itt_group_model, "no args")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_acquire_2, (void *lock), (ITT_FORMAT lock), model_lock_acquire_2, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_release_2, (void *lock), (ITT_FORMAT lock), model_lock_release_2, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_aggregate_task, (size_t count), (ITT_FORMAT count), model_aggregate_task, __itt_group_model, "%d")
|
||||
ITT_STUBV(ITTAPI, void, model_disable_push, (__itt_model_disable x), (ITT_FORMAT x), model_disable_push, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_disable_pop, (void), (ITT_NO_PARAMS), model_disable_pop, __itt_group_model, "no args")
|
||||
ITT_STUBV(ITTAPI, void, model_site_beginA, (const char *name),
|
||||
(ITT_FORMAT name), model_site_beginA, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_site_beginAL, (const char *name, size_t len),
|
||||
(ITT_FORMAT name, len), model_site_beginAL, __itt_group_model,
|
||||
"\"%s\", %d")
|
||||
ITT_STUBV(ITTAPI, void, model_task_beginA, (const char *name),
|
||||
(ITT_FORMAT name), model_task_beginA, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_task_beginAL, (const char *name, size_t len),
|
||||
(ITT_FORMAT name, len), model_task_beginAL, __itt_group_model,
|
||||
"\"%s\", %d")
|
||||
ITT_STUBV(ITTAPI, void, model_iteration_taskA, (const char *name),
|
||||
(ITT_FORMAT name), model_iteration_taskA, __itt_group_model, "\"%s\"")
|
||||
ITT_STUBV(ITTAPI, void, model_iteration_taskAL, (const char *name, size_t len),
|
||||
(ITT_FORMAT name, len), model_iteration_taskAL, __itt_group_model,
|
||||
"\"%s\", %d")
|
||||
ITT_STUBV(ITTAPI, void, model_site_end_2, (void), (ITT_NO_PARAMS),
|
||||
model_site_end_2, __itt_group_model, "no args")
|
||||
ITT_STUBV(ITTAPI, void, model_task_end_2, (void), (ITT_NO_PARAMS),
|
||||
model_task_end_2, __itt_group_model, "no args")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_acquire_2, (void *lock), (ITT_FORMAT lock),
|
||||
model_lock_acquire_2, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_lock_release_2, (void *lock), (ITT_FORMAT lock),
|
||||
model_lock_release_2, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_aggregate_task, (size_t count),
|
||||
(ITT_FORMAT count), model_aggregate_task, __itt_group_model, "%d")
|
||||
ITT_STUBV(ITTAPI, void, model_disable_push, (__itt_model_disable x),
|
||||
(ITT_FORMAT x), model_disable_push, __itt_group_model, "%p")
|
||||
ITT_STUBV(ITTAPI, void, model_disable_pop, (void), (ITT_NO_PARAMS),
|
||||
model_disable_pop, __itt_group_model, "no args")
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_heap_function, heap_function_createA, (const char *name, const char *domain), (ITT_FORMAT name, domain), heap_function_createA, __itt_group_heap, "\"%s\", \"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_heap_function, heap_function_createW, (const wchar_t *name, const wchar_t *domain), (ITT_FORMAT name, domain), heap_function_createW, __itt_group_heap, "\"%s\", \"%s\"")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_heap_function, heap_function_create, (const char *name, const char *domain), (ITT_FORMAT name, domain), heap_function_create, __itt_group_heap, "\"%s\", \"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_heap_function, heap_function_createA,
|
||||
(const char *name, const char *domain), (ITT_FORMAT name, domain),
|
||||
heap_function_createA, __itt_group_heap, "\"%s\", \"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_heap_function, heap_function_createW,
|
||||
(const wchar_t *name, const wchar_t *domain),
|
||||
(ITT_FORMAT name, domain), heap_function_createW, __itt_group_heap,
|
||||
"\"%s\", \"%s\"")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_heap_function, heap_function_create,
|
||||
(const char *name, const char *domain), (ITT_FORMAT name, domain),
|
||||
heap_function_create, __itt_group_heap, "\"%s\", \"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
ITT_STUBV(ITTAPI, void, heap_allocate_begin, (__itt_heap_function h, size_t size, int initialized), (ITT_FORMAT h, size, initialized), heap_allocate_begin, __itt_group_heap, "%p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_allocate_end, (__itt_heap_function h, void** addr, size_t size, int initialized), (ITT_FORMAT h, addr, size, initialized), heap_allocate_end, __itt_group_heap, "%p, %p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_free_begin, (__itt_heap_function h, void* addr), (ITT_FORMAT h, addr), heap_free_begin, __itt_group_heap, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, heap_free_end, (__itt_heap_function h, void* addr), (ITT_FORMAT h, addr), heap_free_end, __itt_group_heap, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, heap_reallocate_begin, (__itt_heap_function h, void* addr, size_t new_size, int initialized), (ITT_FORMAT h, addr, new_size, initialized), heap_reallocate_begin, __itt_group_heap, "%p, %p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_reallocate_end, (__itt_heap_function h, void* addr, void** new_addr, size_t new_size, int initialized), (ITT_FORMAT h, addr, new_addr, new_size, initialized), heap_reallocate_end, __itt_group_heap, "%p, %p, %p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_internal_access_begin, (void), (ITT_NO_PARAMS), heap_internal_access_begin, __itt_group_heap, "no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_internal_access_end, (void), (ITT_NO_PARAMS), heap_internal_access_end, __itt_group_heap, "no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_record_memory_growth_begin, (void), (ITT_NO_PARAMS), heap_record_memory_growth_begin, __itt_group_heap, "no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_record_memory_growth_end, (void), (ITT_NO_PARAMS), heap_record_memory_growth_end, __itt_group_heap, "no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_reset_detection, (unsigned int reset_mask), (ITT_FORMAT reset_mask), heap_reset_detection, __itt_group_heap, "%u")
|
||||
ITT_STUBV(ITTAPI, void, heap_record, (unsigned int record_mask), (ITT_FORMAT record_mask), heap_record, __itt_group_heap, "%u")
|
||||
ITT_STUBV(ITTAPI, void, heap_allocate_begin,
|
||||
(__itt_heap_function h, size_t size, int initialized),
|
||||
(ITT_FORMAT h, size, initialized), heap_allocate_begin,
|
||||
__itt_group_heap, "%p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_allocate_end,
|
||||
(__itt_heap_function h, void **addr, size_t size, int initialized),
|
||||
(ITT_FORMAT h, addr, size, initialized), heap_allocate_end,
|
||||
__itt_group_heap, "%p, %p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_free_begin, (__itt_heap_function h, void *addr),
|
||||
(ITT_FORMAT h, addr), heap_free_begin, __itt_group_heap, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, heap_free_end, (__itt_heap_function h, void *addr),
|
||||
(ITT_FORMAT h, addr), heap_free_end, __itt_group_heap, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, heap_reallocate_begin,
|
||||
(__itt_heap_function h, void *addr, size_t new_size, int initialized),
|
||||
(ITT_FORMAT h, addr, new_size, initialized), heap_reallocate_begin,
|
||||
__itt_group_heap, "%p, %p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_reallocate_end,
|
||||
(__itt_heap_function h, void *addr, void **new_addr, size_t new_size,
|
||||
int initialized),
|
||||
(ITT_FORMAT h, addr, new_addr, new_size, initialized),
|
||||
heap_reallocate_end, __itt_group_heap, "%p, %p, %p, %lu, %d")
|
||||
ITT_STUBV(ITTAPI, void, heap_internal_access_begin, (void), (ITT_NO_PARAMS),
|
||||
heap_internal_access_begin, __itt_group_heap, "no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_internal_access_end, (void), (ITT_NO_PARAMS),
|
||||
heap_internal_access_end, __itt_group_heap, "no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_record_memory_growth_begin, (void),
|
||||
(ITT_NO_PARAMS), heap_record_memory_growth_begin, __itt_group_heap,
|
||||
"no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_record_memory_growth_end, (void), (ITT_NO_PARAMS),
|
||||
heap_record_memory_growth_end, __itt_group_heap, "no args")
|
||||
ITT_STUBV(ITTAPI, void, heap_reset_detection, (unsigned int reset_mask),
|
||||
(ITT_FORMAT reset_mask), heap_reset_detection, __itt_group_heap, "%u")
|
||||
ITT_STUBV(ITTAPI, void, heap_record, (unsigned int record_mask),
|
||||
(ITT_FORMAT record_mask), heap_record, __itt_group_heap, "%u")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, id_create, (const __itt_domain *domain, __itt_id id), (ITT_FORMAT domain, id), id_create, __itt_group_structure, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, id_destroy, (const __itt_domain *domain, __itt_id id), (ITT_FORMAT domain, id), id_destroy, __itt_group_structure, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, id_create, (const __itt_domain *domain, __itt_id id),
|
||||
(ITT_FORMAT domain, id), id_create, __itt_group_structure, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, id_destroy, (const __itt_domain *domain, __itt_id id),
|
||||
(ITT_FORMAT domain, id), id_destroy, __itt_group_structure, "%p, %lu")
|
||||
|
||||
ITT_STUB(ITTAPI, __itt_timestamp, get_timestamp, (void), (ITT_NO_PARAMS), get_timestamp, __itt_group_structure, "no args")
|
||||
ITT_STUB(ITTAPI, __itt_timestamp, get_timestamp, (void), (ITT_NO_PARAMS),
|
||||
get_timestamp, __itt_group_structure, "no args")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, region_begin, (const __itt_domain *domain, __itt_id id, __itt_id parent, __itt_string_handle *name), (ITT_FORMAT domain, id, parent, name), region_begin, __itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, region_end, (const __itt_domain *domain, __itt_id id), (ITT_FORMAT domain, id), region_end, __itt_group_structure, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, region_begin,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_id parent,
|
||||
__itt_string_handle *name),
|
||||
(ITT_FORMAT domain, id, parent, name), region_begin,
|
||||
__itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, region_end, (const __itt_domain *domain, __itt_id id),
|
||||
(ITT_FORMAT domain, id), region_end, __itt_group_structure, "%p, %lu")
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
ITT_STUBV(ITTAPI, void, frame_begin_v3, (const __itt_domain *domain, __itt_id *id), (ITT_FORMAT domain, id), frame_begin_v3, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, frame_end_v3, (const __itt_domain *domain, __itt_id *id), (ITT_FORMAT domain, id), frame_end_v3, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, frame_submit_v3, (const __itt_domain *domain, __itt_id *id, __itt_timestamp begin, __itt_timestamp end), (ITT_FORMAT domain, id, begin, end), frame_submit_v3, __itt_group_structure, "%p, %p, %lu, %lu")
|
||||
ITT_STUBV(ITTAPI, void, frame_begin_v3,
|
||||
(const __itt_domain *domain, __itt_id *id), (ITT_FORMAT domain, id),
|
||||
frame_begin_v3, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, frame_end_v3,
|
||||
(const __itt_domain *domain, __itt_id *id), (ITT_FORMAT domain, id),
|
||||
frame_end_v3, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, frame_submit_v3,
|
||||
(const __itt_domain *domain, __itt_id *id, __itt_timestamp begin,
|
||||
__itt_timestamp end),
|
||||
(ITT_FORMAT domain, id, begin, end), frame_submit_v3,
|
||||
__itt_group_structure, "%p, %p, %lu, %lu")
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
ITT_STUBV(ITTAPI, void, task_group, (const __itt_domain *domain, __itt_id id, __itt_id parent, __itt_string_handle *name), (ITT_FORMAT domain, id, parent, name), task_group, __itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_group,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_id parent,
|
||||
__itt_string_handle *name),
|
||||
(ITT_FORMAT domain, id, parent, name), task_group,
|
||||
__itt_group_structure, "%p, %lu, %lu, %p")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, task_begin, (const __itt_domain *domain, __itt_id id, __itt_id parent, __itt_string_handle *name), (ITT_FORMAT domain, id, parent, name), task_begin, __itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_fn, (const __itt_domain *domain, __itt_id id, __itt_id parent, void* fn), (ITT_FORMAT domain, id, parent, fn), task_begin_fn, __itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_end, (const __itt_domain *domain), (ITT_FORMAT domain), task_end, __itt_group_structure, "%p")
|
||||
ITT_STUBV(ITTAPI, void, task_begin,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_id parent,
|
||||
__itt_string_handle *name),
|
||||
(ITT_FORMAT domain, id, parent, name), task_begin,
|
||||
__itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_fn,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_id parent, void *fn),
|
||||
(ITT_FORMAT domain, id, parent, fn), task_begin_fn,
|
||||
__itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_end, (const __itt_domain *domain),
|
||||
(ITT_FORMAT domain), task_end, __itt_group_structure, "%p")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, counter_inc_v3, (const __itt_domain *domain, __itt_string_handle *name), (ITT_FORMAT domain, name), counter_inc_v3, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, counter_inc_delta_v3, (const __itt_domain *domain, __itt_string_handle *name, unsigned long long value), (ITT_FORMAT domain, name, value), counter_inc_delta_v3, __itt_group_structure, "%p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec_v3, (const __itt_domain *domain, __itt_string_handle *name), (ITT_FORMAT domain, name), counter_dec_v3, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec_delta_v3, (const __itt_domain *domain, __itt_string_handle *name, unsigned long long value), (ITT_FORMAT domain, name, value), counter_dec_delta_v3, __itt_group_structure, "%p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, counter_inc_v3,
|
||||
(const __itt_domain *domain, __itt_string_handle *name),
|
||||
(ITT_FORMAT domain, name), counter_inc_v3, __itt_group_structure,
|
||||
"%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, counter_inc_delta_v3,
|
||||
(const __itt_domain *domain, __itt_string_handle *name,
|
||||
unsigned long long value),
|
||||
(ITT_FORMAT domain, name, value), counter_inc_delta_v3,
|
||||
__itt_group_structure, "%p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec_v3,
|
||||
(const __itt_domain *domain, __itt_string_handle *name),
|
||||
(ITT_FORMAT domain, name), counter_dec_v3, __itt_group_structure,
|
||||
"%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec_delta_v3,
|
||||
(const __itt_domain *domain, __itt_string_handle *name,
|
||||
unsigned long long value),
|
||||
(ITT_FORMAT domain, name, value), counter_dec_delta_v3,
|
||||
__itt_group_structure, "%p, %p, %lu")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, marker, (const __itt_domain *domain, __itt_id id, __itt_string_handle *name, __itt_scope scope), (ITT_FORMAT domain, id, name, scope), marker, __itt_group_structure, "%p, %lu, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, marker,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_string_handle *name,
|
||||
__itt_scope scope),
|
||||
(ITT_FORMAT domain, id, name, scope), marker, __itt_group_structure,
|
||||
"%p, %lu, %p, %d")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, metadata_add, (const __itt_domain *domain, __itt_id id, __itt_string_handle *key, __itt_metadata_type type, size_t count, void *data), (ITT_FORMAT domain, id, key, type, count, data), metadata_add, __itt_group_structure, "%p, %lu, %p, %d, %lu, %p")
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_addA, (const __itt_domain *domain, __itt_id id, __itt_string_handle *key, const char* data, size_t length), (ITT_FORMAT domain, id, key, data, length), metadata_str_addA, __itt_group_structure, "%p, %lu, %p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_addW, (const __itt_domain *domain, __itt_id id, __itt_string_handle *key, const wchar_t* data, size_t length), (ITT_FORMAT domain, id, key, data, length), metadata_str_addW, __itt_group_structure, "%p, %lu, %p, %p, %lu")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add, (const __itt_domain *domain, __itt_id id, __itt_string_handle *key, const char* data, size_t length), (ITT_FORMAT domain, id, key, data, length), metadata_str_add, __itt_group_structure, "%p, %lu, %p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, metadata_add,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_string_handle *key,
|
||||
__itt_metadata_type type, size_t count, void *data),
|
||||
(ITT_FORMAT domain, id, key, type, count, data), metadata_add,
|
||||
__itt_group_structure, "%p, %lu, %p, %d, %lu, %p")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_addA,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_string_handle *key,
|
||||
const char *data, size_t length),
|
||||
(ITT_FORMAT domain, id, key, data, length), metadata_str_addA,
|
||||
__itt_group_structure, "%p, %lu, %p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_addW,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_string_handle *key,
|
||||
const wchar_t *data, size_t length),
|
||||
(ITT_FORMAT domain, id, key, data, length), metadata_str_addW,
|
||||
__itt_group_structure, "%p, %lu, %p, %p, %lu")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_string_handle *key,
|
||||
const char *data, size_t length),
|
||||
(ITT_FORMAT domain, id, key, data, length), metadata_str_add,
|
||||
__itt_group_structure, "%p, %lu, %p, %p, %lu")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
ITT_STUBV(ITTAPI, void, relation_add_to_current, (const __itt_domain *domain, __itt_relation relation, __itt_id tail), (ITT_FORMAT domain, relation, tail), relation_add_to_current, __itt_group_structure, "%p, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, relation_add, (const __itt_domain *domain, __itt_id head, __itt_relation relation, __itt_id tail), (ITT_FORMAT domain, head, relation, tail), relation_add, __itt_group_structure, "%p, %p, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, relation_add_to_current,
|
||||
(const __itt_domain *domain, __itt_relation relation, __itt_id tail),
|
||||
(ITT_FORMAT domain, relation, tail), relation_add_to_current,
|
||||
__itt_group_structure, "%p, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, relation_add,
|
||||
(const __itt_domain *domain, __itt_id head, __itt_relation relation,
|
||||
__itt_id tail),
|
||||
(ITT_FORMAT domain, head, relation, tail), relation_add,
|
||||
__itt_group_structure, "%p, %p, %lu, %p")
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(LIBITTAPI, __itt_event, event_createA, (const char *name, int namelen), (ITT_FORMAT name, namelen), event_createA, __itt_group_mark | __itt_group_legacy, "\"%s\", %d")
|
||||
ITT_STUB(LIBITTAPI, __itt_event, event_createW, (const wchar_t *name, int namelen), (ITT_FORMAT name, namelen), event_createW, __itt_group_mark | __itt_group_legacy, "\"%S\", %d")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(LIBITTAPI, __itt_event, event_create, (const char *name, int namelen), (ITT_FORMAT name, namelen), event_create, __itt_group_mark | __itt_group_legacy, "\"%s\", %d")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(LIBITTAPI, __itt_event, event_createA, (const char *name, int namelen),
|
||||
(ITT_FORMAT name, namelen), event_createA,
|
||||
__itt_group_mark | __itt_group_legacy, "\"%s\", %d")
|
||||
ITT_STUB(LIBITTAPI, __itt_event, event_createW,
|
||||
(const wchar_t *name, int namelen), (ITT_FORMAT name, namelen),
|
||||
event_createW, __itt_group_mark | __itt_group_legacy, "\"%S\", %d")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(LIBITTAPI, __itt_event, event_create, (const char *name, int namelen),
|
||||
(ITT_FORMAT name, namelen), event_create,
|
||||
__itt_group_mark | __itt_group_legacy, "\"%s\", %d")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(LIBITTAPI, int, event_start, (__itt_event event), (ITT_FORMAT event), event_start, __itt_group_mark | __itt_group_legacy, "%d")
|
||||
ITT_STUB(LIBITTAPI, int, event_end, (__itt_event event), (ITT_FORMAT event), event_end, __itt_group_mark | __itt_group_legacy, "%d")
|
||||
ITT_STUB(LIBITTAPI, int, event_start, (__itt_event event), (ITT_FORMAT event),
|
||||
event_start, __itt_group_mark | __itt_group_legacy, "%d")
|
||||
ITT_STUB(LIBITTAPI, int, event_end, (__itt_event event), (ITT_FORMAT event),
|
||||
event_end, __itt_group_mark | __itt_group_legacy, "%d")
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, sync_set_nameA, (void *addr, const char *objtype, const char *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_set_nameA, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p, \"%s\", \"%s\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_set_nameW, (void *addr, const wchar_t *objtype, const wchar_t *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_set_nameW, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p, \"%S\", \"%S\", %x")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, sync_set_name, (void *addr, const char *objtype, const char *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_set_name, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "p, \"%s\", \"%s\", %x")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, sync_set_nameA,
|
||||
(void *addr, const char *objtype, const char *objname, int attribute),
|
||||
(ITT_FORMAT addr, objtype, objname, attribute), sync_set_nameA,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy,
|
||||
"%p, \"%s\", \"%s\", %x")
|
||||
ITT_STUBV(ITTAPI, void, sync_set_nameW,
|
||||
(void *addr, const wchar_t *objtype, const wchar_t *objname,
|
||||
int attribute),
|
||||
(ITT_FORMAT addr, objtype, objname, attribute), sync_set_nameW,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy,
|
||||
"%p, \"%S\", \"%S\", %x")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, sync_set_name,
|
||||
(void *addr, const char *objtype, const char *objname, int attribute),
|
||||
(ITT_FORMAT addr, objtype, objname, attribute), sync_set_name,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy,
|
||||
"p, \"%s\", \"%s\", %x")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(LIBITTAPI, int, notify_sync_nameA, (void *p, const char *objtype, int typelen, const char *objname, int namelen, int attribute), (ITT_FORMAT p, objtype, typelen, objname, namelen, attribute), notify_sync_nameA, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p, \"%s\", %d, \"%s\", %d, %x")
|
||||
ITT_STUB(LIBITTAPI, int, notify_sync_nameW, (void *p, const wchar_t *objtype, int typelen, const wchar_t *objname, int namelen, int attribute), (ITT_FORMAT p, objtype, typelen, objname, namelen, attribute), notify_sync_nameW, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p, \"%S\", %d, \"%S\", %d, %x")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(LIBITTAPI, int, notify_sync_name, (void *p, const char *objtype, int typelen, const char *objname, int namelen, int attribute), (ITT_FORMAT p, objtype, typelen, objname, namelen, attribute), notify_sync_name, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p, \"%s\", %d, \"%s\", %d, %x")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(LIBITTAPI, int, notify_sync_nameA,
|
||||
(void *p, const char *objtype, int typelen, const char *objname,
|
||||
int namelen, int attribute),
|
||||
(ITT_FORMAT p, objtype, typelen, objname, namelen, attribute),
|
||||
notify_sync_nameA,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy,
|
||||
"%p, \"%s\", %d, \"%s\", %d, %x")
|
||||
ITT_STUB(LIBITTAPI, int, notify_sync_nameW,
|
||||
(void *p, const wchar_t *objtype, int typelen, const wchar_t *objname,
|
||||
int namelen, int attribute),
|
||||
(ITT_FORMAT p, objtype, typelen, objname, namelen, attribute),
|
||||
notify_sync_nameW,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy,
|
||||
"%p, \"%S\", %d, \"%S\", %d, %x")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(LIBITTAPI, int, notify_sync_name,
|
||||
(void *p, const char *objtype, int typelen, const char *objname,
|
||||
int namelen, int attribute),
|
||||
(ITT_FORMAT p, objtype, typelen, objname, namelen, attribute),
|
||||
notify_sync_name,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy,
|
||||
"%p, \"%s\", %d, \"%s\", %d, %x")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_prepare, (void *p), (ITT_FORMAT p), notify_sync_prepare, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_cancel, (void *p), (ITT_FORMAT p), notify_sync_cancel, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_acquired, (void *p), (ITT_FORMAT p), notify_sync_acquired, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_releasing, (void *p), (ITT_FORMAT p), notify_sync_releasing, __itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_prepare, (void *p), (ITT_FORMAT p),
|
||||
notify_sync_prepare,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_cancel, (void *p), (ITT_FORMAT p),
|
||||
notify_sync_cancel,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_acquired, (void *p), (ITT_FORMAT p),
|
||||
notify_sync_acquired,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
ITT_STUBV(LIBITTAPI, void, notify_sync_releasing, (void *p), (ITT_FORMAT p),
|
||||
notify_sync_releasing,
|
||||
__itt_group_sync | __itt_group_fsync | __itt_group_legacy, "%p")
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
ITT_STUBV(LIBITTAPI, void, memory_read, (void *addr, size_t size), (ITT_FORMAT addr, size), memory_read, __itt_group_legacy, "%p, %lu")
|
||||
ITT_STUBV(LIBITTAPI, void, memory_write, (void *addr, size_t size), (ITT_FORMAT addr, size), memory_write, __itt_group_legacy, "%p, %lu")
|
||||
ITT_STUBV(LIBITTAPI, void, memory_update, (void *addr, size_t size), (ITT_FORMAT addr, size), memory_update, __itt_group_legacy, "%p, %lu")
|
||||
ITT_STUBV(LIBITTAPI, void, memory_read, (void *addr, size_t size),
|
||||
(ITT_FORMAT addr, size), memory_read, __itt_group_legacy, "%p, %lu")
|
||||
ITT_STUBV(LIBITTAPI, void, memory_write, (void *addr, size_t size),
|
||||
(ITT_FORMAT addr, size), memory_write, __itt_group_legacy, "%p, %lu")
|
||||
ITT_STUBV(LIBITTAPI, void, memory_update, (void *addr, size_t size),
|
||||
(ITT_FORMAT addr, size), memory_update, __itt_group_legacy, "%p, %lu")
|
||||
|
||||
ITT_STUB(LIBITTAPI, __itt_state_t, state_get, (void), (ITT_NO_PARAMS), state_get, __itt_group_legacy, "no args")
|
||||
ITT_STUB(LIBITTAPI, __itt_state_t, state_set, (__itt_state_t s), (ITT_FORMAT s), state_set, __itt_group_legacy, "%d")
|
||||
ITT_STUB(LIBITTAPI, __itt_obj_state_t, obj_mode_set, (__itt_obj_prop_t p, __itt_obj_state_t s), (ITT_FORMAT p, s), obj_mode_set, __itt_group_legacy, "%d, %d")
|
||||
ITT_STUB(LIBITTAPI, __itt_thr_state_t, thr_mode_set, (__itt_thr_prop_t p, __itt_thr_state_t s), (ITT_FORMAT p, s), thr_mode_set, __itt_group_legacy, "%d, %d")
|
||||
ITT_STUB(LIBITTAPI, __itt_state_t, state_get, (void), (ITT_NO_PARAMS),
|
||||
state_get, __itt_group_legacy, "no args")
|
||||
ITT_STUB(LIBITTAPI, __itt_state_t, state_set, (__itt_state_t s), (ITT_FORMAT s),
|
||||
state_set, __itt_group_legacy, "%d")
|
||||
ITT_STUB(LIBITTAPI, __itt_obj_state_t, obj_mode_set,
|
||||
(__itt_obj_prop_t p, __itt_obj_state_t s), (ITT_FORMAT p, s),
|
||||
obj_mode_set, __itt_group_legacy, "%d, %d")
|
||||
ITT_STUB(LIBITTAPI, __itt_thr_state_t, thr_mode_set,
|
||||
(__itt_thr_prop_t p, __itt_thr_state_t s), (ITT_FORMAT p, s),
|
||||
thr_mode_set, __itt_group_legacy, "%d, %d")
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_frame, frame_createA, (const char *domain), (ITT_FORMAT domain), frame_createA, __itt_group_frame, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_frame, frame_createW, (const wchar_t *domain), (ITT_FORMAT domain), frame_createW, __itt_group_frame, "\"%s\"")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_frame, frame_create, (const char *domain), (ITT_FORMAT domain), frame_create, __itt_group_frame, "\"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_frame, frame_createA, (const char *domain),
|
||||
(ITT_FORMAT domain), frame_createA, __itt_group_frame, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_frame, frame_createW, (const wchar_t *domain),
|
||||
(ITT_FORMAT domain), frame_createW, __itt_group_frame, "\"%s\"")
|
||||
#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_frame, frame_create, (const char *domain),
|
||||
(ITT_FORMAT domain), frame_create, __itt_group_frame, "\"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
ITT_STUBV(ITTAPI, void, frame_begin, (__itt_frame frame), (ITT_FORMAT frame), frame_begin, __itt_group_frame, "%p")
|
||||
ITT_STUBV(ITTAPI, void, frame_end, (__itt_frame frame), (ITT_FORMAT frame), frame_end, __itt_group_frame, "%p")
|
||||
ITT_STUBV(ITTAPI, void, frame_begin, (__itt_frame frame), (ITT_FORMAT frame),
|
||||
frame_begin, __itt_group_frame, "%p")
|
||||
ITT_STUBV(ITTAPI, void, frame_end, (__itt_frame frame), (ITT_FORMAT frame),
|
||||
frame_end, __itt_group_frame, "%p")
|
||||
|
||||
ITT_STUBV(ITTAPI, void, counter_destroy, (__itt_counter id), (ITT_FORMAT id), counter_destroy, __itt_group_counter, "%p")
|
||||
ITT_STUBV(ITTAPI, void, counter_inc, (__itt_counter id), (ITT_FORMAT id), counter_inc, __itt_group_counter, "%p")
|
||||
ITT_STUBV(ITTAPI, void, counter_inc_delta, (__itt_counter id, unsigned long long value), (ITT_FORMAT id, value), counter_inc_delta, __itt_group_counter, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec, (__itt_counter id), (ITT_FORMAT id), counter_dec, __itt_group_counter, "%p")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec_delta, (__itt_counter id, unsigned long long value), (ITT_FORMAT id, value), counter_dec_delta, __itt_group_counter, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, counter_set_value, (__itt_counter id, void *value_ptr), (ITT_FORMAT id, value_ptr), counter_set_value, __itt_group_counter, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, counter_set_value_ex, (__itt_counter id, __itt_clock_domain *clock_domain, unsigned long long timestamp, void *value_ptr), (ITT_FORMAT id, clock_domain, timestamp, value_ptr), counter_set_value_ex, __itt_group_counter, "%p, %p, %llu, %p")
|
||||
ITT_STUBV(ITTAPI, void, counter_destroy, (__itt_counter id), (ITT_FORMAT id),
|
||||
counter_destroy, __itt_group_counter, "%p")
|
||||
ITT_STUBV(ITTAPI, void, counter_inc, (__itt_counter id), (ITT_FORMAT id),
|
||||
counter_inc, __itt_group_counter, "%p")
|
||||
ITT_STUBV(ITTAPI, void, counter_inc_delta,
|
||||
(__itt_counter id, unsigned long long value), (ITT_FORMAT id, value),
|
||||
counter_inc_delta, __itt_group_counter, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec, (__itt_counter id), (ITT_FORMAT id),
|
||||
counter_dec, __itt_group_counter, "%p")
|
||||
ITT_STUBV(ITTAPI, void, counter_dec_delta,
|
||||
(__itt_counter id, unsigned long long value), (ITT_FORMAT id, value),
|
||||
counter_dec_delta, __itt_group_counter, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, counter_set_value, (__itt_counter id, void *value_ptr),
|
||||
(ITT_FORMAT id, value_ptr), counter_set_value, __itt_group_counter,
|
||||
"%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, counter_set_value_ex,
|
||||
(__itt_counter id, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, void *value_ptr),
|
||||
(ITT_FORMAT id, clock_domain, timestamp, value_ptr),
|
||||
counter_set_value_ex, __itt_group_counter, "%p, %p, %llu, %p")
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_mark_type, mark_createA, (const char *name), (ITT_FORMAT name), mark_createA, __itt_group_mark, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_mark_type, mark_createW, (const wchar_t *name), (ITT_FORMAT name), mark_createW, __itt_group_mark, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_mark_type, mark_create, (const char *name), (ITT_FORMAT name), mark_create, __itt_group_mark, "\"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, __itt_mark_type, mark_createA, (const char *name),
|
||||
(ITT_FORMAT name), mark_createA, __itt_group_mark, "\"%s\"")
|
||||
ITT_STUB(ITTAPI, __itt_mark_type, mark_createW, (const wchar_t *name),
|
||||
(ITT_FORMAT name), mark_createW, __itt_group_mark, "\"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, __itt_mark_type, mark_create, (const char *name),
|
||||
(ITT_FORMAT name), mark_create, __itt_group_mark, "\"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, int, markA, (__itt_mark_type mt, const char *parameter), (ITT_FORMAT mt, parameter), markA, __itt_group_mark, "%d, \"%s\"")
|
||||
ITT_STUB(ITTAPI, int, markW, (__itt_mark_type mt, const wchar_t *parameter), (ITT_FORMAT mt, parameter), markW, __itt_group_mark, "%d, \"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, mark, (__itt_mark_type mt, const char *parameter), (ITT_FORMAT mt, parameter), mark, __itt_group_mark, "%d, \"%s\"")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, int, markA, (__itt_mark_type mt, const char *parameter),
|
||||
(ITT_FORMAT mt, parameter), markA, __itt_group_mark, "%d, \"%s\"")
|
||||
ITT_STUB(ITTAPI, int, markW, (__itt_mark_type mt, const wchar_t *parameter),
|
||||
(ITT_FORMAT mt, parameter), markW, __itt_group_mark, "%d, \"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, mark, (__itt_mark_type mt, const char *parameter),
|
||||
(ITT_FORMAT mt, parameter), mark, __itt_group_mark, "%d, \"%s\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, mark_off, (__itt_mark_type mt), (ITT_FORMAT mt), mark_off, __itt_group_mark, "%d")
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, int, mark_globalA, (__itt_mark_type mt, const char *parameter), (ITT_FORMAT mt, parameter), mark_globalA, __itt_group_mark, "%d, \"%s\"")
|
||||
ITT_STUB(ITTAPI, int, mark_globalW, (__itt_mark_type mt, const wchar_t *parameter), (ITT_FORMAT mt, parameter), mark_globalW, __itt_group_mark, "%d, \"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, mark_global, (__itt_mark_type mt, const char *parameter), (ITT_FORMAT mt, parameter), mark_global, __itt_group_mark, "%d, \"%S\"")
|
||||
ITT_STUB(ITTAPI, int, mark_off, (__itt_mark_type mt), (ITT_FORMAT mt), mark_off,
|
||||
__itt_group_mark, "%d")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, int, mark_globalA, (__itt_mark_type mt, const char *parameter),
|
||||
(ITT_FORMAT mt, parameter), mark_globalA, __itt_group_mark,
|
||||
"%d, \"%s\"")
|
||||
ITT_STUB(ITTAPI, int, mark_globalW,
|
||||
(__itt_mark_type mt, const wchar_t *parameter),
|
||||
(ITT_FORMAT mt, parameter), mark_globalW, __itt_group_mark,
|
||||
"%d, \"%S\"")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, mark_global, (__itt_mark_type mt, const char *parameter),
|
||||
(ITT_FORMAT mt, parameter), mark_global, __itt_group_mark,
|
||||
"%d, \"%S\"")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, mark_global_off, (__itt_mark_type mt), (ITT_FORMAT mt), mark_global_off, __itt_group_mark, "%d")
|
||||
ITT_STUB(ITTAPI, int, mark_global_off, (__itt_mark_type mt), (ITT_FORMAT mt),
|
||||
mark_global_off, __itt_group_mark, "%d")
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
ITT_STUB(ITTAPI, __itt_caller, stack_caller_create, (void), (ITT_NO_PARAMS), stack_caller_create, __itt_group_stitch, "no args")
|
||||
ITT_STUB(ITTAPI, __itt_caller, stack_caller_create, (void), (ITT_NO_PARAMS),
|
||||
stack_caller_create, __itt_group_stitch, "no args")
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
ITT_STUBV(ITTAPI, void, stack_caller_destroy, (__itt_caller id), (ITT_FORMAT id), stack_caller_destroy, __itt_group_stitch, "%p")
|
||||
ITT_STUBV(ITTAPI, void, stack_callee_enter, (__itt_caller id), (ITT_FORMAT id), stack_callee_enter, __itt_group_stitch, "%p")
|
||||
ITT_STUBV(ITTAPI, void, stack_callee_leave, (__itt_caller id), (ITT_FORMAT id), stack_callee_leave, __itt_group_stitch, "%p")
|
||||
ITT_STUBV(ITTAPI, void, stack_caller_destroy, (__itt_caller id),
|
||||
(ITT_FORMAT id), stack_caller_destroy, __itt_group_stitch, "%p")
|
||||
ITT_STUBV(ITTAPI, void, stack_callee_enter, (__itt_caller id), (ITT_FORMAT id),
|
||||
stack_callee_enter, __itt_group_stitch, "%p")
|
||||
ITT_STUBV(ITTAPI, void, stack_callee_leave, (__itt_caller id), (ITT_FORMAT id),
|
||||
stack_callee_leave, __itt_group_stitch, "%p")
|
||||
|
||||
ITT_STUB(ITTAPI, __itt_clock_domain*, clock_domain_create, (__itt_get_clock_info_fn fn, void* fn_data), (ITT_FORMAT fn, fn_data), clock_domain_create, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, clock_domain_reset, (void), (ITT_NO_PARAMS), clock_domain_reset, __itt_group_structure, "no args")
|
||||
ITT_STUBV(ITTAPI, void, id_create_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id id), (ITT_FORMAT domain, clock_domain, timestamp, id), id_create_ex, __itt_group_structure, "%p, %p, %lu, %lu")
|
||||
ITT_STUBV(ITTAPI, void, id_destroy_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id id), (ITT_FORMAT domain, clock_domain, timestamp, id), id_destroy_ex, __itt_group_structure, "%p, %p, %lu, %lu")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id id, __itt_id parentid, __itt_string_handle *name), (ITT_FORMAT domain, clock_domain, timestamp, id, parentid, name), task_begin_ex, __itt_group_structure, "%p, %p, %lu, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_fn_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id id, __itt_id parentid, void* fn), (ITT_FORMAT domain, clock_domain, timestamp, id, parentid, fn), task_begin_fn_ex, __itt_group_structure, "%p, %p, %lu, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_end_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp), (ITT_FORMAT domain, clock_domain, timestamp), task_end_ex, __itt_group_structure, "%p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_overlapped, (const __itt_domain *domain, __itt_id id, __itt_id parent, __itt_string_handle *name), (ITT_FORMAT domain, id, parent, name), task_begin_overlapped, __itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_overlapped_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id id, __itt_id parentid, __itt_string_handle *name), (ITT_FORMAT domain, clock_domain, timestamp, id, parentid, name), task_begin_overlapped_ex, __itt_group_structure, "%p, %p, %lu, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_end_overlapped, (const __itt_domain *domain, __itt_id id), (ITT_FORMAT domain, id), task_end_overlapped, __itt_group_structure, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, task_end_overlapped_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id id), (ITT_FORMAT domain, clock_domain, timestamp, id), task_end_overlapped_ex, __itt_group_structure, "%p, %p, %lu, %lu")
|
||||
ITT_STUBV(ITTAPI, void, marker_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id id, __itt_string_handle *name, __itt_scope scope), (ITT_FORMAT domain, clock_domain, timestamp, id, name, scope), marker_ex, __itt_group_structure, "%p, %p, %lu, %lu, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, metadata_add_with_scope, (const __itt_domain *domain, __itt_scope scope, __itt_string_handle *key, __itt_metadata_type type, size_t count, void *data), (ITT_FORMAT domain, scope, key, type, count, data), metadata_add_with_scope, __itt_group_structure, "%p, %d, %p, %d, %lu, %p")
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add_with_scopeA, (const __itt_domain *domain, __itt_scope scope, __itt_string_handle *key, const char *data, size_t length), (ITT_FORMAT domain, scope, key, data, length), metadata_str_add_with_scopeA, __itt_group_structure, "%p, %d, %p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add_with_scopeW, (const __itt_domain *domain, __itt_scope scope, __itt_string_handle *key, const wchar_t *data, size_t length), (ITT_FORMAT domain, scope, key, data, length), metadata_str_add_with_scopeW, __itt_group_structure, "%p, %d, %p, %p, %lu")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add_with_scope, (const __itt_domain *domain, __itt_scope scope, __itt_string_handle *key, const char *data, size_t length), (ITT_FORMAT domain, scope, key, data, length), metadata_str_add_with_scope, __itt_group_structure, "%p, %d, %p, %p, %lu")
|
||||
ITT_STUB(ITTAPI, __itt_clock_domain *, clock_domain_create,
|
||||
(__itt_get_clock_info_fn fn, void *fn_data), (ITT_FORMAT fn, fn_data),
|
||||
clock_domain_create, __itt_group_structure, "%p, %p")
|
||||
ITT_STUBV(ITTAPI, void, clock_domain_reset, (void), (ITT_NO_PARAMS),
|
||||
clock_domain_reset, __itt_group_structure, "no args")
|
||||
ITT_STUBV(ITTAPI, void, id_create_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id id),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, id), id_create_ex,
|
||||
__itt_group_structure, "%p, %p, %lu, %lu")
|
||||
ITT_STUBV(ITTAPI, void, id_destroy_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id id),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, id), id_destroy_ex,
|
||||
__itt_group_structure, "%p, %p, %lu, %lu")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id id, __itt_id parentid,
|
||||
__itt_string_handle *name),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, id, parentid, name),
|
||||
task_begin_ex, __itt_group_structure, "%p, %p, %lu, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_fn_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id id, __itt_id parentid,
|
||||
void *fn),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, id, parentid, fn),
|
||||
task_begin_fn_ex, __itt_group_structure, "%p, %p, %lu, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_end_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp), task_end_ex,
|
||||
__itt_group_structure, "%p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_overlapped,
|
||||
(const __itt_domain *domain, __itt_id id, __itt_id parent,
|
||||
__itt_string_handle *name),
|
||||
(ITT_FORMAT domain, id, parent, name), task_begin_overlapped,
|
||||
__itt_group_structure, "%p, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_begin_overlapped_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id id, __itt_id parentid,
|
||||
__itt_string_handle *name),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, id, parentid, name),
|
||||
task_begin_overlapped_ex, __itt_group_structure,
|
||||
"%p, %p, %lu, %lu, %lu, %p")
|
||||
ITT_STUBV(ITTAPI, void, task_end_overlapped,
|
||||
(const __itt_domain *domain, __itt_id id), (ITT_FORMAT domain, id),
|
||||
task_end_overlapped, __itt_group_structure, "%p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, task_end_overlapped_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id id),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, id),
|
||||
task_end_overlapped_ex, __itt_group_structure, "%p, %p, %lu, %lu")
|
||||
ITT_STUBV(ITTAPI, void, marker_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id id, __itt_string_handle *name,
|
||||
__itt_scope scope),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, id, name, scope),
|
||||
marker_ex, __itt_group_structure, "%p, %p, %lu, %lu, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, metadata_add_with_scope,
|
||||
(const __itt_domain *domain, __itt_scope scope,
|
||||
__itt_string_handle *key, __itt_metadata_type type, size_t count,
|
||||
void *data),
|
||||
(ITT_FORMAT domain, scope, key, type, count, data),
|
||||
metadata_add_with_scope, __itt_group_structure,
|
||||
"%p, %d, %p, %d, %lu, %p")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add_with_scopeA,
|
||||
(const __itt_domain *domain, __itt_scope scope,
|
||||
__itt_string_handle *key, const char *data, size_t length),
|
||||
(ITT_FORMAT domain, scope, key, data, length),
|
||||
metadata_str_add_with_scopeA, __itt_group_structure,
|
||||
"%p, %d, %p, %p, %lu")
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add_with_scopeW,
|
||||
(const __itt_domain *domain, __itt_scope scope,
|
||||
__itt_string_handle *key, const wchar_t *data, size_t length),
|
||||
(ITT_FORMAT domain, scope, key, data, length),
|
||||
metadata_str_add_with_scopeW, __itt_group_structure,
|
||||
"%p, %d, %p, %p, %lu")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, metadata_str_add_with_scope,
|
||||
(const __itt_domain *domain, __itt_scope scope,
|
||||
__itt_string_handle *key, const char *data, size_t length),
|
||||
(ITT_FORMAT domain, scope, key, data, length),
|
||||
metadata_str_add_with_scope, __itt_group_structure,
|
||||
"%p, %d, %p, %p, %lu")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, relation_add_to_current_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_relation relation, __itt_id tail), (ITT_FORMAT domain, clock_domain, timestamp, relation, tail), relation_add_to_current_ex, __itt_group_structure, "%p, %p, %lu, %d, %lu")
|
||||
ITT_STUBV(ITTAPI, void, relation_add_ex, (const __itt_domain *domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id head, __itt_relation relation, __itt_id tail), (ITT_FORMAT domain, clock_domain, timestamp, head, relation, tail), relation_add_ex, __itt_group_structure, "%p, %p, %lu, %lu, %d, %lu")
|
||||
ITT_STUB(ITTAPI, __itt_track_group*, track_group_create, (__itt_string_handle* name, __itt_track_group_type track_group_type), (ITT_FORMAT name, track_group_type), track_group_create, __itt_group_structure, "%p, %d")
|
||||
ITT_STUB(ITTAPI, __itt_track*, track_create, (__itt_track_group* track_group,__itt_string_handle* name, __itt_track_type track_type), (ITT_FORMAT track_group, name, track_type), track_create, __itt_group_structure, "%p, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, set_track, (__itt_track *track), (ITT_FORMAT track), set_track, __itt_group_structure, "%p")
|
||||
ITT_STUBV(ITTAPI, void, relation_add_to_current_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_relation relation,
|
||||
__itt_id tail),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, relation, tail),
|
||||
relation_add_to_current_ex, __itt_group_structure,
|
||||
"%p, %p, %lu, %d, %lu")
|
||||
ITT_STUBV(ITTAPI, void, relation_add_ex,
|
||||
(const __itt_domain *domain, __itt_clock_domain *clock_domain,
|
||||
unsigned long long timestamp, __itt_id head, __itt_relation relation,
|
||||
__itt_id tail),
|
||||
(ITT_FORMAT domain, clock_domain, timestamp, head, relation, tail),
|
||||
relation_add_ex, __itt_group_structure, "%p, %p, %lu, %lu, %d, %lu")
|
||||
ITT_STUB(ITTAPI, __itt_track_group *, track_group_create,
|
||||
(__itt_string_handle * name, __itt_track_group_type track_group_type),
|
||||
(ITT_FORMAT name, track_group_type), track_group_create,
|
||||
__itt_group_structure, "%p, %d")
|
||||
ITT_STUB(ITTAPI, __itt_track *, track_create,
|
||||
(__itt_track_group * track_group, __itt_string_handle *name,
|
||||
__itt_track_type track_type),
|
||||
(ITT_FORMAT track_group, name, track_type), track_create,
|
||||
__itt_group_structure, "%p, %p, %d")
|
||||
ITT_STUBV(ITTAPI, void, set_track, (__itt_track * track), (ITT_FORMAT track),
|
||||
set_track, __itt_group_structure, "%p")
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
ITT_STUB(ITTAPI, const char*, api_version, (void), (ITT_NO_PARAMS), api_version, __itt_group_all & ~__itt_group_legacy, "no args")
|
||||
ITT_STUB(ITTAPI, const char *, api_version, (void), (ITT_NO_PARAMS),
|
||||
api_version, __itt_group_all & ~__itt_group_legacy, "no args")
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, int, av_saveA, (void *data, int rank, const int *dimensions, int type, const char *filePath, int columnOrder), (ITT_FORMAT data, rank, dimensions, type, filePath, columnOrder), av_saveA, __itt_group_arrays, "%p, %d, %p, %d, \"%s\", %d")
|
||||
ITT_STUB(ITTAPI, int, av_saveW, (void *data, int rank, const int *dimensions, int type, const wchar_t *filePath, int columnOrder), (ITT_FORMAT data, rank, dimensions, type, filePath, columnOrder), av_saveW, __itt_group_arrays, "%p, %d, %p, %d, \"%S\", %d")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, av_save, (void *data, int rank, const int *dimensions, int type, const char *filePath, int columnOrder), (ITT_FORMAT data, rank, dimensions, type, filePath, columnOrder), av_save, __itt_group_arrays, "%p, %d, %p, %d, \"%s\", %d")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUB(ITTAPI, int, av_saveA,
|
||||
(void *data, int rank, const int *dimensions, int type,
|
||||
const char *filePath, int columnOrder),
|
||||
(ITT_FORMAT data, rank, dimensions, type, filePath, columnOrder),
|
||||
av_saveA, __itt_group_arrays, "%p, %d, %p, %d, \"%s\", %d")
|
||||
ITT_STUB(ITTAPI, int, av_saveW,
|
||||
(void *data, int rank, const int *dimensions, int type,
|
||||
const wchar_t *filePath, int columnOrder),
|
||||
(ITT_FORMAT data, rank, dimensions, type, filePath, columnOrder),
|
||||
av_saveW, __itt_group_arrays, "%p, %d, %p, %d, \"%S\", %d")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUB(ITTAPI, int, av_save,
|
||||
(void *data, int rank, const int *dimensions, int type,
|
||||
const char *filePath, int columnOrder),
|
||||
(ITT_FORMAT data, rank, dimensions, type, filePath, columnOrder),
|
||||
av_save, __itt_group_arrays, "%p, %d, %p, %d, \"%s\", %d")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
#ifndef __ITT_INTERNAL_BODY
|
||||
#if ITT_PLATFORM==ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, module_loadA, (void *start_addr, void* end_addr, const char *path), (ITT_FORMAT start_addr, end_addr, path), module_loadA, __itt_group_none, "%p, %p, %p")
|
||||
ITT_STUBV(ITTAPI, void, module_loadW, (void *start_addr, void* end_addr, const wchar_t *path), (ITT_FORMAT start_addr, end_addr, path), module_loadW, __itt_group_none, "%p, %p, %p")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, module_load, (void *start_addr, void *end_addr, const char *path), (ITT_FORMAT start_addr, end_addr, path), module_load, __itt_group_none, "%p, %p, %p")
|
||||
#if ITT_PLATFORM == ITT_PLATFORM_WIN
|
||||
ITT_STUBV(ITTAPI, void, module_loadA,
|
||||
(void *start_addr, void *end_addr, const char *path),
|
||||
(ITT_FORMAT start_addr, end_addr, path), module_loadA,
|
||||
__itt_group_none, "%p, %p, %p")
|
||||
ITT_STUBV(ITTAPI, void, module_loadW,
|
||||
(void *start_addr, void *end_addr, const wchar_t *path),
|
||||
(ITT_FORMAT start_addr, end_addr, path), module_loadW,
|
||||
__itt_group_none, "%p, %p, %p")
|
||||
#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
|
||||
ITT_STUBV(ITTAPI, void, module_load,
|
||||
(void *start_addr, void *end_addr, const char *path),
|
||||
(ITT_FORMAT start_addr, end_addr, path), module_load,
|
||||
__itt_group_none, "%p, %p, %p")
|
||||
#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
|
||||
#endif /* __ITT_INTERNAL_BODY */
|
||||
|
||||
|
||||
#endif /* __ITT_INTERNAL_INIT */
|
||||
|
||||
@ -7,61 +7,56 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
||||
#ifndef _ITTNOTIFY_TYPES_H_
|
||||
#define _ITTNOTIFY_TYPES_H_
|
||||
|
||||
typedef enum ___itt_group_id
|
||||
{
|
||||
__itt_group_none = 0,
|
||||
__itt_group_legacy = 1<<0,
|
||||
__itt_group_control = 1<<1,
|
||||
__itt_group_thread = 1<<2,
|
||||
__itt_group_mark = 1<<3,
|
||||
__itt_group_sync = 1<<4,
|
||||
__itt_group_fsync = 1<<5,
|
||||
__itt_group_jit = 1<<6,
|
||||
__itt_group_model = 1<<7,
|
||||
__itt_group_splitter_min = 1<<7,
|
||||
__itt_group_counter = 1<<8,
|
||||
__itt_group_frame = 1<<9,
|
||||
__itt_group_stitch = 1<<10,
|
||||
__itt_group_heap = 1<<11,
|
||||
__itt_group_splitter_max = 1<<12,
|
||||
__itt_group_structure = 1<<12,
|
||||
__itt_group_suppress = 1<<13,
|
||||
__itt_group_arrays = 1<<14,
|
||||
__itt_group_all = -1
|
||||
typedef enum ___itt_group_id {
|
||||
__itt_group_none = 0,
|
||||
__itt_group_legacy = 1 << 0,
|
||||
__itt_group_control = 1 << 1,
|
||||
__itt_group_thread = 1 << 2,
|
||||
__itt_group_mark = 1 << 3,
|
||||
__itt_group_sync = 1 << 4,
|
||||
__itt_group_fsync = 1 << 5,
|
||||
__itt_group_jit = 1 << 6,
|
||||
__itt_group_model = 1 << 7,
|
||||
__itt_group_splitter_min = 1 << 7,
|
||||
__itt_group_counter = 1 << 8,
|
||||
__itt_group_frame = 1 << 9,
|
||||
__itt_group_stitch = 1 << 10,
|
||||
__itt_group_heap = 1 << 11,
|
||||
__itt_group_splitter_max = 1 << 12,
|
||||
__itt_group_structure = 1 << 12,
|
||||
__itt_group_suppress = 1 << 13,
|
||||
__itt_group_arrays = 1 << 14,
|
||||
__itt_group_all = -1
|
||||
} __itt_group_id;
|
||||
|
||||
#pragma pack(push, 8)
|
||||
|
||||
typedef struct ___itt_group_list
|
||||
{
|
||||
__itt_group_id id;
|
||||
const char* name;
|
||||
typedef struct ___itt_group_list {
|
||||
__itt_group_id id;
|
||||
const char *name;
|
||||
} __itt_group_list;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#define ITT_GROUP_LIST(varname) \
|
||||
static __itt_group_list varname[] = { \
|
||||
{ __itt_group_all, "all" }, \
|
||||
{ __itt_group_control, "control" }, \
|
||||
{ __itt_group_thread, "thread" }, \
|
||||
{ __itt_group_mark, "mark" }, \
|
||||
{ __itt_group_sync, "sync" }, \
|
||||
{ __itt_group_fsync, "fsync" }, \
|
||||
{ __itt_group_jit, "jit" }, \
|
||||
{ __itt_group_model, "model" }, \
|
||||
{ __itt_group_counter, "counter" }, \
|
||||
{ __itt_group_frame, "frame" }, \
|
||||
{ __itt_group_stitch, "stitch" }, \
|
||||
{ __itt_group_heap, "heap" }, \
|
||||
{ __itt_group_structure, "structure" }, \
|
||||
{ __itt_group_suppress, "suppress" }, \
|
||||
{ __itt_group_arrays, "arrays" }, \
|
||||
{ __itt_group_none, NULL } \
|
||||
}
|
||||
#define ITT_GROUP_LIST(varname) \
|
||||
static __itt_group_list varname[] = {{__itt_group_all, "all"}, \
|
||||
{__itt_group_control, "control"}, \
|
||||
{__itt_group_thread, "thread"}, \
|
||||
{__itt_group_mark, "mark"}, \
|
||||
{__itt_group_sync, "sync"}, \
|
||||
{__itt_group_fsync, "fsync"}, \
|
||||
{__itt_group_jit, "jit"}, \
|
||||
{__itt_group_model, "model"}, \
|
||||
{__itt_group_counter, "counter"}, \
|
||||
{__itt_group_frame, "frame"}, \
|
||||
{__itt_group_stitch, "stitch"}, \
|
||||
{__itt_group_heap, "heap"}, \
|
||||
{__itt_group_structure, "structure"}, \
|
||||
{__itt_group_suppress, "suppress"}, \
|
||||
{__itt_group_arrays, "arrays"}, \
|
||||
{__itt_group_none, NULL}}
|
||||
|
||||
#endif /* _ITTNOTIFY_TYPES_H_ */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -122,7 +122,7 @@ void __kmp_affinity_bind_thread(int which) {
|
||||
* Linux* OS by checking __NR_sched_{get,set}affinity system calls, and set
|
||||
* __kmp_affin_mask_size to the appropriate value (0 means not capable). */
|
||||
void __kmp_affinity_determine_capable(const char *env_var) {
|
||||
// Check and see if the OS supports thread affinity.
|
||||
// Check and see if the OS supports thread affinity.
|
||||
|
||||
#if KMP_OS_LINUX
|
||||
#define KMP_CPU_SET_SIZE_LIMIT (1024 * 1024)
|
||||
@ -130,7 +130,6 @@ void __kmp_affinity_determine_capable(const char *env_var) {
|
||||
#define KMP_CPU_SET_SIZE_LIMIT (sizeof(cpuset_t))
|
||||
#endif
|
||||
|
||||
|
||||
#if KMP_OS_LINUX
|
||||
// If Linux* OS:
|
||||
// If the syscall fails or returns a suggestion for the size,
|
||||
@ -281,7 +280,8 @@ void __kmp_affinity_determine_capable(const char *env_var) {
|
||||
long gCode;
|
||||
unsigned char *buf;
|
||||
buf = (unsigned char *)KMP_INTERNAL_MALLOC(KMP_CPU_SET_SIZE_LIMIT);
|
||||
gCode = pthread_getaffinity_np(pthread_self(), KMP_CPU_SET_SIZE_LIMIT, reinterpret_cast<cpuset_t *>(buf));
|
||||
gCode = pthread_getaffinity_np(pthread_self(), KMP_CPU_SET_SIZE_LIMIT,
|
||||
reinterpret_cast<cpuset_t *>(buf));
|
||||
KA_TRACE(30, ("__kmp_affinity_determine_capable: "
|
||||
"initial getaffinity call returned %d errno = %d\n",
|
||||
gCode, errno));
|
||||
@ -289,7 +289,7 @@ void __kmp_affinity_determine_capable(const char *env_var) {
|
||||
KMP_AFFINITY_ENABLE(KMP_CPU_SET_SIZE_LIMIT);
|
||||
KA_TRACE(10, ("__kmp_affinity_determine_capable: "
|
||||
"affinity supported (mask size %d)\n",
|
||||
(int)__kmp_affin_mask_size));
|
||||
(int)__kmp_affin_mask_size));
|
||||
KMP_INTERNAL_FREE(buf);
|
||||
return;
|
||||
}
|
||||
@ -474,7 +474,7 @@ void __kmp_terminate_thread(int gtid) {
|
||||
static kmp_int32 __kmp_set_stack_info(int gtid, kmp_info_t *th) {
|
||||
int stack_data;
|
||||
#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
|
||||
KMP_OS_HURD
|
||||
KMP_OS_HURD
|
||||
pthread_attr_t attr;
|
||||
int status;
|
||||
size_t size = 0;
|
||||
@ -512,8 +512,8 @@ static kmp_int32 __kmp_set_stack_info(int gtid, kmp_info_t *th) {
|
||||
TCW_4(th->th.th_info.ds.ds_stackgrow, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
#endif /* KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD ||
|
||||
KMP_OS_HURD */
|
||||
#endif /* KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD \
|
||||
|| KMP_OS_HURD */
|
||||
/* Use incremental refinement starting from initial conservative estimate */
|
||||
TCW_PTR(th->th.th_info.ds.ds_stacksize, 0);
|
||||
TCW_PTR(th->th.th_info.ds.ds_stackbase, &stack_data);
|
||||
@ -528,7 +528,7 @@ static void *__kmp_launch_worker(void *thr) {
|
||||
#endif /* KMP_BLOCK_SIGNALS */
|
||||
void *exit_val;
|
||||
#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
|
||||
KMP_OS_OPENBSD || KMP_OS_HURD
|
||||
KMP_OS_OPENBSD || KMP_OS_HURD
|
||||
void *volatile padding = 0;
|
||||
#endif
|
||||
int gtid;
|
||||
@ -577,7 +577,7 @@ static void *__kmp_launch_worker(void *thr) {
|
||||
#endif /* KMP_BLOCK_SIGNALS */
|
||||
|
||||
#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
|
||||
KMP_OS_OPENBSD
|
||||
KMP_OS_OPENBSD
|
||||
if (__kmp_stkoffset > 0 && gtid > 0) {
|
||||
padding = KMP_ALLOCA(gtid * __kmp_stkoffset);
|
||||
}
|
||||
@ -830,10 +830,10 @@ void __kmp_create_worker(int gtid, kmp_info_t *th, size_t stack_size) {
|
||||
stack_size += gtid * __kmp_stkoffset * 2;
|
||||
|
||||
#if defined(__ANDROID__) && __ANDROID_API__ < 19
|
||||
// Round the stack size to a multiple of the page size. Older versions of
|
||||
// Android (until KitKat) would fail pthread_attr_setstacksize with EINVAL
|
||||
// if the stack size was not a multiple of the page size.
|
||||
stack_size = (stack_size + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1);
|
||||
// Round the stack size to a multiple of the page size. Older versions of
|
||||
// Android (until KitKat) would fail pthread_attr_setstacksize with EINVAL
|
||||
// if the stack size was not a multiple of the page size.
|
||||
stack_size = (stack_size + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1);
|
||||
#endif
|
||||
|
||||
KA_TRACE(10, ("__kmp_create_worker: T#%d, default stacksize = %lu bytes, "
|
||||
@ -1395,9 +1395,8 @@ void __kmp_suspend_initialize_thread(kmp_info_t *th) {
|
||||
if (old_value == new_value)
|
||||
return;
|
||||
// Wait, then return if being initialized
|
||||
if (old_value == -1 ||
|
||||
!__kmp_atomic_compare_store(&th->th.th_suspend_init_count, old_value,
|
||||
-1)) {
|
||||
if (old_value == -1 || !__kmp_atomic_compare_store(
|
||||
&th->th.th_suspend_init_count, old_value, -1)) {
|
||||
while (KMP_ATOMIC_LD_ACQ(&th->th.th_suspend_init_count) != new_value) {
|
||||
KMP_CPU_PAUSE();
|
||||
}
|
||||
@ -1807,7 +1806,7 @@ static int __kmp_get_xproc(void) {
|
||||
int r = 0;
|
||||
|
||||
#if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
|
||||
KMP_OS_OPENBSD || KMP_OS_HURD
|
||||
KMP_OS_OPENBSD || KMP_OS_HURD
|
||||
|
||||
__kmp_type_convert(sysconf(_SC_NPROCESSORS_ONLN), &(r));
|
||||
|
||||
@ -1870,7 +1869,7 @@ void __kmp_runtime_initialize(void) {
|
||||
|
||||
__kmp_xproc = __kmp_get_xproc();
|
||||
|
||||
#if ! KMP_32_BIT_ARCH
|
||||
#if !KMP_32_BIT_ARCH
|
||||
struct rlimit rlim;
|
||||
// read stack size of calling thread, save it as default for worker threads;
|
||||
// this should be done before reading environment variables
|
||||
@ -2015,8 +2014,8 @@ int __kmp_is_address_mapped(void *addr) {
|
||||
|
||||
#if KMP_OS_LINUX || KMP_OS_HURD
|
||||
|
||||
/* On GNUish OSes, read the /proc/<pid>/maps pseudo-file to get all the address
|
||||
ranges mapped into the address space. */
|
||||
/* On GNUish OSes, read the /proc/<pid>/maps pseudo-file to get all the
|
||||
address ranges mapped into the address space. */
|
||||
|
||||
char *name = __kmp_str_format("/proc/%d/maps", getpid());
|
||||
FILE *file = NULL;
|
||||
@ -2057,36 +2056,36 @@ int __kmp_is_address_mapped(void *addr) {
|
||||
int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()};
|
||||
rc = sysctl(mib, 4, NULL, &lstsz, NULL, 0);
|
||||
if (rc < 0)
|
||||
return 0;
|
||||
return 0;
|
||||
// We pass from number of vm entry's semantic
|
||||
// to size of whole entry map list.
|
||||
lstsz = lstsz * 4 / 3;
|
||||
buf = reinterpret_cast<char *>(kmpc_malloc(lstsz));
|
||||
rc = sysctl(mib, 4, buf, &lstsz, NULL, 0);
|
||||
if (rc < 0) {
|
||||
kmpc_free(buf);
|
||||
return 0;
|
||||
kmpc_free(buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *lw = buf;
|
||||
char *up = buf + lstsz;
|
||||
|
||||
while (lw < up) {
|
||||
struct kinfo_vmentry *cur = reinterpret_cast<struct kinfo_vmentry *>(lw);
|
||||
size_t cursz = cur->kve_structsize;
|
||||
if (cursz == 0)
|
||||
break;
|
||||
void *start = reinterpret_cast<void *>(cur->kve_start);
|
||||
void *end = reinterpret_cast<void *>(cur->kve_end);
|
||||
// Readable/Writable addresses within current map entry
|
||||
if ((addr >= start) && (addr < end)) {
|
||||
if ((cur->kve_protection & KVME_PROT_READ) != 0 &&
|
||||
(cur->kve_protection & KVME_PROT_WRITE) != 0) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
struct kinfo_vmentry *cur = reinterpret_cast<struct kinfo_vmentry *>(lw);
|
||||
size_t cursz = cur->kve_structsize;
|
||||
if (cursz == 0)
|
||||
break;
|
||||
void *start = reinterpret_cast<void *>(cur->kve_start);
|
||||
void *end = reinterpret_cast<void *>(cur->kve_end);
|
||||
// Readable/Writable addresses within current map entry
|
||||
if ((addr >= start) && (addr < end)) {
|
||||
if ((cur->kve_protection & KVME_PROT_READ) != 0 &&
|
||||
(cur->kve_protection & KVME_PROT_WRITE) != 0) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
lw += cursz;
|
||||
}
|
||||
lw += cursz;
|
||||
}
|
||||
kmpc_free(buf);
|
||||
|
||||
@ -2103,7 +2102,7 @@ int __kmp_is_address_mapped(void *addr) {
|
||||
1, // Number of bytes to be read.
|
||||
(vm_address_t)(&buffer), // Address of buffer to save read bytes in.
|
||||
&count // Address of var to save number of read bytes in.
|
||||
);
|
||||
);
|
||||
if (rc == 0) {
|
||||
// Memory successfully read.
|
||||
found = 1;
|
||||
|
||||
@ -624,7 +624,6 @@ static void ompt_tsan_sync_region(ompt_sync_region_t kind,
|
||||
case ompt_sync_region_reduction:
|
||||
// should never be reached
|
||||
break;
|
||||
|
||||
}
|
||||
if (endpoint == ompt_scope_begin)
|
||||
break;
|
||||
@ -683,7 +682,6 @@ static void ompt_tsan_sync_region(ompt_sync_region_t kind,
|
||||
// Should not occur according to OpenMP 5.1
|
||||
// Tested in OMPT tests
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@ -20,13 +20,13 @@
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
#include <execinfo.h>
|
||||
#include <inttypes.h>
|
||||
#include <omp-tools.h>
|
||||
#include <omp.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
static ompt_set_callback_t ompt_multiplex_set_callback;
|
||||
static ompt_get_task_info_t ompt_multiplex_get_task_info;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user