Intel(R) Threading Building Blocks Doxygen Documentation version 4.2.3
Loading...
Searching...
No Matches
tbb_profiling.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2005-2020 Intel Corporation
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#ifndef __TBB_profiling_H
18#define __TBB_profiling_H
19
20#define __TBB_tbb_profiling_H_include_area
22
23namespace tbb {
24 namespace internal {
25
26 // include list of index names
27 #define TBB_STRING_RESOURCE(index_name,str) index_name,
31 };
32 #undef TBB_STRING_RESOURCE
33
35 {
44 };
45
46 }
47}
48
49// Check if the tools support is enabled
50#if (_WIN32||_WIN64||__linux__) && !__MINGW32__ && TBB_USE_THREADING_TOOLS
51
52#if _WIN32||_WIN64
53#include <stdlib.h> /* mbstowcs_s */
54#endif
55#include "tbb_stddef.h"
56
57namespace tbb {
58 namespace internal {
59
60#if _WIN32||_WIN64
61 void __TBB_EXPORTED_FUNC itt_set_sync_name_v3( void *obj, const wchar_t* name );
62 inline size_t multibyte_to_widechar( wchar_t* wcs, const char* mbs, size_t bufsize) {
63#if _MSC_VER>=1400
64 size_t len;
65 mbstowcs_s( &len, wcs, bufsize, mbs, _TRUNCATE );
66 return len; // mbstowcs_s counts null terminator
67#else
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');
71 return len+1; // mbstowcs does not count null terminator
72#endif
73 }
74#else
75 void __TBB_EXPORTED_FUNC itt_set_sync_name_v3( void *obj, const char* name );
76#endif
77 } // namespace internal
78} // namespace tbb
79
81
83#if _WIN32||_WIN64
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 ); \
88 } \
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 ); \
94 delete[] wname; \
95 } \
96 }
97#else /* !WIN */
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 ); \
102 } \
103 }
104#endif /* !WIN */
105
106#else /* no tools support */
107
108#if _WIN32||_WIN64
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* ) {} \
113 }
114#else /* !WIN */
115 #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \
116 namespace profiling { \
117 inline void set_name( sync_object_type&, const char* ) {} \
118 }
119#endif /* !WIN */
120
121#endif /* no tools support */
122
123#include "atomic.h"
124
125// Need these to work regardless of tools support
126namespace tbb {
127 namespace internal {
128
130
131 const uintptr_t NUM_NOTIFY_TYPES = 4; // set to # elements in enum above
132
133 void __TBB_EXPORTED_FUNC call_itt_notify_v5(int t, void *ptr);
136 void* __TBB_EXPORTED_FUNC itt_load_pointer_v3( const void* src );
138
139 void __TBB_EXPORTED_FUNC itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra,
140 void *parent, unsigned long long parent_extra, string_index name_index );
141 void __TBB_EXPORTED_FUNC itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long long addr_extra,
142 string_index key, const char *value );
143 void __TBB_EXPORTED_FUNC itt_metadata_ptr_add_v11( itt_domain_enum domain, void *addr, unsigned long long addr_extra,
144 string_index key, void* value );
145 void __TBB_EXPORTED_FUNC itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra,
146 itt_relation relation, void *addr1, unsigned long long addr1_extra );
147 void __TBB_EXPORTED_FUNC itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra,
148 void *parent, unsigned long long parent_extra, string_index name_index );
150
151 void __TBB_EXPORTED_FUNC itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra,
152 void *parent, unsigned long long parent_extra, string_index name_index );
153 void __TBB_EXPORTED_FUNC itt_region_end_v9( itt_domain_enum domain, void *region, unsigned long long region_extra );
154
155 // two template arguments are to workaround /Wp64 warning with tbb::atomic specialized for unsigned type
156 template <typename T, typename U>
157 inline void itt_store_word_with_release(tbb::atomic<T>& dst, U src) {
158#if TBB_USE_THREADING_TOOLS
159 // This assertion should be replaced with static_assert
160 __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
161 itt_store_pointer_with_release_v3(&dst, (void *)uintptr_t(src));
162#else
163 dst = src;
164#endif // TBB_USE_THREADING_TOOLS
165 }
166
167 template <typename T>
168 inline T itt_load_word_with_acquire(const tbb::atomic<T>& src) {
169#if TBB_USE_THREADING_TOOLS
170 // This assertion should be replaced with static_assert
171 __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
172#if defined(_MSC_VER) && !defined(__INTEL_COMPILER)
173 // Workaround for overzealous compiler warnings
174 #pragma warning (push)
175 #pragma warning (disable: 4311)
176#endif
177 T result = (T)itt_load_pointer_with_acquire_v3(&src);
178#if defined(_MSC_VER) && !defined(__INTEL_COMPILER)
179 #pragma warning (pop)
180#endif
181 return result;
182#else
183 return src;
184#endif // TBB_USE_THREADING_TOOLS
185 }
186
187 template <typename T>
188 inline void itt_store_word_with_release(T& dst, T src) {
189#if TBB_USE_THREADING_TOOLS
190 // This assertion should be replaced with static_assert
191 __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
192 itt_store_pointer_with_release_v3(&dst, (void *)src);
193#else
194 __TBB_store_with_release(dst, src);
195#endif // TBB_USE_THREADING_TOOLS
196 }
197
198 template <typename T>
199 inline T itt_load_word_with_acquire(const T& src) {
200#if TBB_USE_THREADING_TOOLS
201 // This assertion should be replaced with static_assert
202 __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized");
203 return (T)itt_load_pointer_with_acquire_v3(&src);
204#else
205 return __TBB_load_with_acquire(src);
206#endif // TBB_USE_THREADING_TOOLS
207 }
208
209 template <typename T>
210 inline void itt_hide_store_word(T& dst, T src) {
211#if TBB_USE_THREADING_TOOLS
212 //TODO: This assertion should be replaced with static_assert
213 __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized");
214 itt_store_pointer_with_release_v3(&dst, (void *)src);
215#else
216 dst = src;
217#endif
218 }
219
220 //TODO: rename to itt_hide_load_word_relaxed
221 template <typename T>
222 inline T itt_hide_load_word(const T& src) {
223#if TBB_USE_THREADING_TOOLS
224 //TODO: This assertion should be replaced with static_assert
225 __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
226 return (T)itt_load_pointer_v3(&src);
227#else
228 return src;
229#endif
230 }
231
232#if TBB_USE_THREADING_TOOLS
233 inline void call_itt_notify(notify_type t, void *ptr) {
234 call_itt_notify_v5((int)t, ptr);
235 }
236
237 inline void itt_make_task_group( itt_domain_enum domain, void *group, unsigned long long group_extra,
238 void *parent, unsigned long long parent_extra, string_index name_index ) {
239 itt_make_task_group_v7( domain, group, group_extra, parent, parent_extra, name_index );
240 }
241
242 inline void itt_metadata_str_add( itt_domain_enum domain, void *addr, unsigned long long addr_extra,
243 string_index key, const char *value ) {
244 itt_metadata_str_add_v7( domain, addr, addr_extra, key, value );
245 }
246
247 inline void register_node_addr(itt_domain_enum domain, void *addr, unsigned long long addr_extra,
248 string_index key, void *value) {
250 }
251
252 inline void itt_relation_add( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra,
253 itt_relation relation, void *addr1, unsigned long long addr1_extra ) {
254 itt_relation_add_v7( domain, addr0, addr0_extra, relation, addr1, addr1_extra );
255 }
256
257 inline void itt_task_begin( itt_domain_enum domain, void *task, unsigned long long task_extra,
258 void *parent, unsigned long long parent_extra, string_index name_index ) {
259 itt_task_begin_v7( domain, task, task_extra, parent, parent_extra, name_index );
260 }
261
262 inline void itt_task_end( itt_domain_enum domain ) {
264 }
265
266 inline void itt_region_begin( itt_domain_enum domain, void *region, unsigned long long region_extra,
267 void *parent, unsigned long long parent_extra, string_index name_index ) {
268 itt_region_begin_v9( domain, region, region_extra, parent, parent_extra, name_index );
269 }
270
271 inline void itt_region_end( itt_domain_enum domain, void *region, unsigned long long region_extra ) {
272 itt_region_end_v9( domain, region, region_extra );
273 }
274#else
275 inline void register_node_addr( itt_domain_enum /*domain*/, void* /*addr*/, unsigned long long /*addr_extra*/, string_index /*key*/, void* /*value*/ ) {}
276 inline void call_itt_notify(notify_type /*t*/, void* /*ptr*/) {}
277
278 inline void itt_make_task_group( itt_domain_enum /*domain*/, void* /*group*/, unsigned long long /*group_extra*/,
279 void* /*parent*/, unsigned long long /*parent_extra*/, string_index /*name_index*/ ) {}
280
281 inline void itt_metadata_str_add( itt_domain_enum /*domain*/, void* /*addr*/, unsigned long long /*addr_extra*/,
282 string_index /*key*/, const char* /*value*/ ) {}
283
284 inline void itt_relation_add( itt_domain_enum /*domain*/, void* /*addr0*/, unsigned long long /*addr0_extra*/,
285 itt_relation /*relation*/, void* /*addr1*/, unsigned long long /*addr1_extra*/ ) {}
286
287 inline void itt_task_begin( itt_domain_enum /*domain*/, void* /*task*/, unsigned long long /*task_extra*/,
288 void* /*parent*/, unsigned long long /*parent_extra*/, string_index /*name_index*/ ) {}
289
290 inline void itt_task_end( itt_domain_enum /*domain*/ ) {}
291
292 inline void itt_region_begin( itt_domain_enum /*domain*/, void* /*region*/, unsigned long long /*region_extra*/,
293 void* /*parent*/, unsigned long long /*parent_extra*/, string_index /*name_index*/ ) {}
294
295 inline void itt_region_end( itt_domain_enum /*domain*/, void* /*region*/, unsigned long long /*region_extra*/ ) {}
296#endif // TBB_USE_THREADING_TOOLS
297
298 } // namespace internal
299} // namespace tbb
300
301#if TBB_PREVIEW_FLOW_GRAPH_TRACE
302#include <string>
303
304namespace tbb {
305namespace profiling {
306namespace interface10 {
307
308#if TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2)
309class event {
313// TODO: Replace implementation by itt user event api.
314
315 const std::string my_name;
316
317 static void emit_trace(const std::string &input) {
318 itt_metadata_str_add( tbb::internal::ITT_DOMAIN_FLOW, NULL, tbb::internal::FLOW_NULL, tbb::internal::USER_EVENT, ( "FGA::DATAID::" + input ).c_str() );
319 }
320
321public:
322 event(const std::string &input)
323 : my_name( input )
324 { }
325
326 void emit() {
327 emit_trace(my_name);
328 }
329
330 static void emit(const std::string &description) {
331 emit_trace(description);
332 }
333
334};
335#else // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2)
336// Using empty struct if user event tracing is disabled:
337struct event {
338 event(const std::string &) { }
339
340 void emit() { }
341
342 static void emit(const std::string &) { }
343};
344#endif // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2)
345
346} // interfaceX
347using interface10::event;
348} // namespace profiling
349} // namespace tbb
350#endif // TBB_PREVIEW_FLOW_GRAPH_TRACE
351
353#undef __TBB_tbb_profiling_H_include_area
354
355#endif /* __TBB_profiling_H */
#define __TBB_EXPORTED_FUNC
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
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 * addr
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
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 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 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 * 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 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
The graph class.
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)
Definition: tbb_main.cpp:431
T __TBB_load_with_acquire(const volatile T &location)
Definition: tbb_machine.h:709
void itt_task_end(itt_domain_enum)
void itt_task_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 *)
void itt_region_end(itt_domain_enum, void *, unsigned long long)
const uintptr_t NUM_NOTIFY_TYPES
@ __itt_relation_is_continued_by
Definition: tbb_profiling.h:42
@ __itt_relation_is_unknown
Definition: tbb_profiling.h:36
@ __itt_relation_is_predecessor_to
Definition: tbb_profiling.h:43
@ __itt_relation_is_continuation_of
Definition: tbb_profiling.h:40
@ __itt_relation_is_parent_of
Definition: tbb_profiling.h:39
@ __itt_relation_is_sibling_of
Definition: tbb_profiling.h:38
@ __itt_relation_is_dependent_on
Definition: tbb_profiling.h:37
@ __itt_relation_is_child_of
Definition: tbb_profiling.h:41
void __TBB_EXPORTED_FUNC call_itt_notify_v5(int t, void *ptr)
Definition: tbb_main.cpp:292
void __TBB_EXPORTED_FUNC itt_region_end_v9(itt_domain_enum domain, void *region, unsigned long long region_extra)
Definition: tbb_main.cpp:434
void itt_metadata_str_add(itt_domain_enum, void *, unsigned long long, string_index, const char *)
void __TBB_EXPORTED_FUNC itt_task_end_v7(itt_domain_enum domain)
Definition: tbb_main.cpp:429
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)
Definition: tbb_main.cpp:420
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)
Definition: tbb_main.cpp:417
void itt_hide_store_word(T &dst, T src)
T itt_load_word_with_acquire(const tbb::atomic< T > &src)
void itt_relation_add(itt_domain_enum, void *, unsigned long long, itt_relation, void *, unsigned long long)
void itt_make_task_group(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
void itt_set_sync_name_v3(void *obj, const tchar *name)
Definition: tbb_main.cpp:444
void *__TBB_EXPORTED_FUNC itt_load_pointer_with_acquire_v3(const void *src)
Definition: tbb_main.cpp:276
void *__TBB_EXPORTED_FUNC itt_load_pointer_v3(const void *src)
Definition: tbb_main.cpp:438
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)
Definition: tbb_main.cpp:414
void itt_store_word_with_release(tbb::atomic< T > &dst, U src)
void __TBB_EXPORTED_FUNC itt_store_pointer_with_release_v3(void *dst, void *src)
Definition: tbb_main.cpp:271
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)
Definition: tbb_main.cpp:423
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)
Definition: tbb_main.cpp:426
T itt_hide_load_word(const T &src)
void call_itt_notify(notify_type, void *)
void __TBB_store_with_release(volatile T &location, V value)
Definition: tbb_machine.h:713
void itt_region_begin(itt_domain_enum, void *, unsigned long long, void *, unsigned long long, string_index)
Base class for user-defined tasks.
Definition: task.h:615

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.