Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Go to the documentation of this file.
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
@ __itt_relation_is_unknown
T __TBB_load_with_acquire(const volatile T &location)
void itt_metadata_str_add(itt_domain_enum, void *, unsigned long long, string_index, const char *)
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 __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
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void __TBB_EXPORTED_FUNC itt_region_end_v9(itt_domain_enum domain, void *region, unsigned long long region_extra)
void itt_store_word_with_release(tbb::atomic< T > &dst, U src)
T itt_load_word_with_acquire(const tbb::atomic< T > &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 __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)
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)
@ __itt_relation_is_sibling_of
Base class for user-defined tasks.
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
void itt_region_end(itt_domain_enum, void *, unsigned long long)
@ __itt_relation_is_continued_by
void itt_relation_add(itt_domain_enum, void *, unsigned long long, itt_relation, void *, unsigned long long)
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)
void *__TBB_EXPORTED_FUNC itt_load_pointer_with_acquire_v3(const void *src)
void __TBB_EXPORTED_FUNC itt_task_end_v7(itt_domain_enum domain)
void itt_task_end(itt_domain_enum)
@ __itt_relation_is_parent_of
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 __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_store_with_release(volatile T &location, V value)
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 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
@ __itt_relation_is_child_of
#define __TBB_EXPORTED_FUNC
void itt_hide_store_word(T &dst, T 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 * task
void __TBB_EXPORTED_FUNC itt_store_pointer_with_release_v3(void *dst, void *src)
void itt_task_begin(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 __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_metadata_ptr_add_v11(itt_domain_enum domain, void *addr, unsigned long long addr_extra, string_index key, void *value)
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
void *__TBB_EXPORTED_FUNC itt_load_pointer_v3(const void *src)
@ __itt_relation_is_continuation_of
T itt_hide_load_word(const T &src)
void call_itt_notify(notify_type, void *)
void __TBB_EXPORTED_FUNC call_itt_notify_v5(int t, void *ptr)
void itt_set_sync_name_v3(void *obj, const tchar *name)
@ __itt_relation_is_dependent_on
void itt_region_begin(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
void register_node_addr(itt_domain_enum, void *, unsigned long long, string_index, void *)
const uintptr_t NUM_NOTIFY_TYPES
@ __itt_relation_is_predecessor_to
Copyright © 2005-2020 Intel Corporation. All Rights Reserved.
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
* Other names and brands may be claimed as the property of others.