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 *)