17 #ifndef __TBB_profiling_H 18 #define __TBB_profiling_H 20 #define __TBB_tbb_profiling_H_include_area 27 #define TBB_STRING_RESOURCE(index_name,str) index_name, 32 #undef TBB_STRING_RESOURCE 50 #if (_WIN32||_WIN64||__linux__) && !__MINGW32__ && TBB_USE_THREADING_TOOLS 62 inline size_t multibyte_to_widechar(
wchar_t* wcs,
const char* mbs,
size_t bufsize) {
65 mbstowcs_s( &len, wcs, bufsize, mbs, _TRUNCATE );
68 size_t len = mbstowcs( wcs, mbs, bufsize );
69 if(wcs && len!=
size_t(-1) )
70 wcs[len<bufsize-1? len: bufsize-1] = wchar_t(
'\0');
84 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 85 namespace profiling { \ 86 inline void set_name( sync_object_type& obj, const wchar_t* name ) { \ 87 tbb::internal::itt_set_sync_name_v3( &obj, name ); \ 89 inline void set_name( sync_object_type& obj, const char* name ) { \ 90 size_t len = tbb::internal::multibyte_to_widechar(NULL, name, 0); \ 91 wchar_t *wname = new wchar_t[len]; \ 92 tbb::internal::multibyte_to_widechar(wname, name, len); \ 93 set_name( obj, wname ); \ 98 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 99 namespace profiling { \ 100 inline void set_name( sync_object_type& obj, const char* name ) { \ 101 tbb::internal::itt_set_sync_name_v3( &obj, name ); \ 109 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 110 namespace profiling { \ 111 inline void set_name( sync_object_type&, const wchar_t* ) {} \ 112 inline void set_name( sync_object_type&, const char* ) {} \ 115 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \ 116 namespace profiling { \ 117 inline void set_name( sync_object_type&, const char* ) {} \ 156 template <
typename T,
typename U>
158 #if TBB_USE_THREADING_TOOLS 160 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
164 #endif // TBB_USE_THREADING_TOOLS 167 template <
typename T>
169 #if TBB_USE_THREADING_TOOLS 171 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
172 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) 174 #pragma warning (push) 175 #pragma warning (disable: 4311) 178 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) 179 #pragma warning (pop) 184 #endif // TBB_USE_THREADING_TOOLS 187 template <
typename T>
189 #if TBB_USE_THREADING_TOOLS 191 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
195 #endif // TBB_USE_THREADING_TOOLS 198 template <
typename T>
200 #if TBB_USE_THREADING_TOOLS 202 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized");
206 #endif // TBB_USE_THREADING_TOOLS 209 template <
typename T>
211 #if TBB_USE_THREADING_TOOLS 213 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized");
221 template <
typename T>
223 #if TBB_USE_THREADING_TOOLS 225 __TBB_ASSERT(
sizeof(T) ==
sizeof(
void *),
"Type must be word-sized.");
232 #if TBB_USE_THREADING_TOOLS 296 #endif // TBB_USE_THREADING_TOOLS 301 #if TBB_PREVIEW_FLOW_GRAPH_TRACE 305 namespace profiling {
306 namespace interface10 {
308 #if TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2) 315 const std::string my_name;
317 static void emit_trace(
const std::string &input) {
322 event(
const std::string &input)
330 static void emit(
const std::string &description) {
331 emit_trace(description);
335 #else // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2) 338 event(
const std::string &) { }
342 static void emit(
const std::string &) { }
344 #endif // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2) 350 #endif // TBB_PREVIEW_FLOW_GRAPH_TRACE 353 #undef __TBB_tbb_profiling_H_include_area 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 itt_set_sync_name_v3(void *obj, const tchar *name)
Base class for user-defined tasks.
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_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle * key
void __TBB_EXPORTED_FUNC itt_store_pointer_with_release_v3(void *dst, void *src)
void itt_store_word_with_release(tbb::atomic< T > &dst, U src)
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_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 itt_task_begin(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
void itt_region_begin(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
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_EXPORTED_FUNC itt_load_pointer_v3(const void *src)
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 itt_task_end(itt_domain_enum)
void __TBB_store_with_release(volatile T &location, V value)
void itt_relation_add(itt_domain_enum, void *, unsigned long long, itt_relation, void *, unsigned long long)
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)
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 ITT_FORMAT lu 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_hide_load_word(const T &src)
void __TBB_EXPORTED_FUNC call_itt_notify_v5(int t, void *ptr)
#define __TBB_EXPORTED_FUNC
void itt_make_task_group(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
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 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 const char const char int ITT_FORMAT __itt_group_sync x void const char * name
void itt_region_end(itt_domain_enum, void *, unsigned long long)
void __TBB_EXPORTED_FUNC itt_region_end_v9(itt_domain_enum domain, void *region, unsigned long long region_extra)
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)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
T itt_load_word_with_acquire(const tbb::atomic< T > &src)
void itt_hide_store_word(T &dst, T src)
void register_node_addr(itt_domain_enum, void *, unsigned long long, string_index, void *)
void *__TBB_EXPORTED_FUNC itt_load_pointer_with_acquire_v3(const void *src)
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 __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)
T __TBB_load_with_acquire(const volatile T &location)
void __TBB_EXPORTED_FUNC itt_task_end_v7(itt_domain_enum domain)
void __TBB_EXPORTED_FUNC itt_metadata_ptr_add_v11(itt_domain_enum domain, void *addr, unsigned long long addr_extra, string_index key, void *value)
void itt_metadata_str_add(itt_domain_enum, void *, unsigned long long, string_index, const char *)