21 #ifndef __TBB_profiling_H 22 #define __TBB_profiling_H 28 #define TBB_STRING_RESOURCE(index_name,str) index_name, 33 #undef TBB_STRING_RESOURCE 51 #if (_WIN32||_WIN64||__linux__) && !__MINGW32__ && TBB_USE_THREADING_TOOLS 63 inline size_t multibyte_to_widechar(
wchar_t* wcs,
const char* mbs,
size_t bufsize) {
66 mbstowcs_s( &len, wcs, bufsize, mbs, _TRUNCATE );
69 size_t len = mbstowcs( wcs, mbs, bufsize );
70 if(wcs && len!=
size_t(-1) )
71 wcs[len<bufsize-1? len: bufsize-1] = wchar_t(
'\0');
85 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 86 namespace profiling { \ 87 inline void set_name( sync_object_type& obj, const wchar_t* name ) { \ 88 tbb::internal::itt_set_sync_name_v3( &obj, name ); \ 90 inline void set_name( sync_object_type& obj, const char* name ) { \ 91 size_t len = tbb::internal::multibyte_to_widechar(NULL, name, 0); \ 92 wchar_t *wname = new wchar_t[len]; \ 93 tbb::internal::multibyte_to_widechar(wname, name, len); \ 94 set_name( obj, wname ); \ 99 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 100 namespace profiling { \ 101 inline void set_name( sync_object_type& obj, const char* name ) { \ 102 tbb::internal::itt_set_sync_name_v3( &obj, name ); \ 110 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 111 namespace profiling { \ 112 inline void set_name( sync_object_type&, const wchar_t* ) {} \ 113 inline void set_name( sync_object_type&, const char* ) {} \ 116 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 117 namespace profiling { \ 118 inline void set_name( sync_object_type&, const char* ) {} \ 154 template <
typename T,
typename U>
156 #if TBB_USE_THREADING_TOOLS 158 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
162 #endif // TBB_USE_THREADING_TOOLS 165 template <
typename T>
167 #if TBB_USE_THREADING_TOOLS 169 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
170 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) 172 #pragma warning (push) 173 #pragma warning (disable: 4311) 176 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) 177 #pragma warning (pop) 182 #endif // TBB_USE_THREADING_TOOLS 185 template <
typename T>
187 #if TBB_USE_THREADING_TOOLS 189 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
193 #endif // TBB_USE_THREADING_TOOLS 196 template <
typename T>
198 #if TBB_USE_THREADING_TOOLS 200 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized");
204 #endif // TBB_USE_THREADING_TOOLS 207 template <
typename T>
209 #if TBB_USE_THREADING_TOOLS 211 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized");
219 template <
typename T>
221 #if TBB_USE_THREADING_TOOLS 223 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
230 #if TBB_USE_THREADING_TOOLS 288 #endif // TBB_USE_THREADING_TOOLS 293 #if TBB_PREVIEW_FLOW_GRAPH_TRACE 297 namespace profiling {
298 namespace interface10 {
300 #if TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2) 307 const std::string my_name;
309 static void emit_trace(
const std::string &input) {
314 event(
const std::string &input)
322 static void emit(
const std::string &description) {
323 emit_trace(description);
327 #else // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2) 330 event(
const std::string &) { }
334 static void emit(
const std::string &) { }
336 #endif // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2) 342 #endif // TBB_PREVIEW_FLOW_GRAPH_TRACE T itt_hide_load_word(const T &src)
void __TBB_EXPORTED_FUNC itt_task_end_v7(itt_domain_enum domain)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t * domain
void __TBB_EXPORTED_FUNC itt_store_pointer_with_release_v3(void *dst, void *src)
T __TBB_load_with_acquire(const volatile T &location)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d __itt_event event
void __TBB_EXPORTED_FUNC itt_task_begin_v7(itt_domain_enum domain, void *task, unsigned long long task_extra, void *parent, unsigned long long parent_extra, string_index name_index)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void itt_store_word_with_release(tbb::atomic< T > &dst, U src)
void __TBB_EXPORTED_FUNC call_itt_notify_v5(int t, void *ptr)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation relation
T itt_load_word_with_acquire(const tbb::atomic< T > &src)
Base class for user-defined tasks.
void itt_region_begin(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
void *__TBB_EXPORTED_FUNC itt_load_pointer_with_acquire_v3(const void *src)
void __TBB_EXPORTED_FUNC itt_region_begin_v9(itt_domain_enum domain, void *region, unsigned long long region_extra, void *parent, unsigned long long parent_extra, string_index name_index)
void itt_task_begin(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
void itt_make_task_group(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task * task
void __TBB_EXPORTED_FUNC itt_relation_add_v7(itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, itt_relation relation, void *addr1, unsigned long long addr1_extra)
const uintptr_t NUM_NOTIFY_TYPES
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id parent
void call_itt_notify(notify_type, void *)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle * key
#define __TBB_EXPORTED_FUNC
void __TBB_EXPORTED_FUNC itt_region_end_v9(itt_domain_enum domain, void *region, unsigned long long region_extra)
Primary template for atomic.
void itt_task_end(itt_domain_enum)
void itt_hide_store_word(T &dst, T src)
void itt_metadata_str_add(itt_domain_enum, void *, unsigned long long, string_index, const char *)
void itt_relation_add(itt_domain_enum, void *, unsigned long long, itt_relation, void *, unsigned long long)
void itt_region_end(itt_domain_enum, void *, unsigned long long)
void *__TBB_EXPORTED_FUNC itt_load_pointer_v3(const void *src)
void itt_set_sync_name_v3(void *obj, const tchar *name)
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
void __TBB_EXPORTED_FUNC itt_metadata_str_add_v7(itt_domain_enum domain, void *addr, unsigned long long addr_extra, string_index key, const char *value)
void __TBB_store_with_release(volatile T &location, V value)
void __TBB_EXPORTED_FUNC itt_make_task_group_v7(itt_domain_enum domain, void *group, unsigned long long group_extra, void *parent, unsigned long long parent_extra, string_index name_index)