Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb_profiling.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2005-2019 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 
18 
19 */
20 
21 #ifndef __TBB_profiling_H
22 #define __TBB_profiling_H
23 
24 namespace tbb {
25  namespace internal {
26 
27  // include list of index names
28  #define TBB_STRING_RESOURCE(index_name,str) index_name,
29  enum string_index {
30  #include "internal/_tbb_strings.h"
31  NUM_STRINGS
32  };
33  #undef TBB_STRING_RESOURCE
34 
36  {
45  };
46 
47  }
48 }
49 
50 // Check if the tools support is enabled
51 #if (_WIN32||_WIN64||__linux__) && !__MINGW32__ && TBB_USE_THREADING_TOOLS
52 
53 #if _WIN32||_WIN64
54 #include <stdlib.h> /* mbstowcs_s */
55 #endif
56 #include "tbb_stddef.h"
57 
58 namespace tbb {
59  namespace internal {
60 
61 #if _WIN32||_WIN64
62  void __TBB_EXPORTED_FUNC itt_set_sync_name_v3( void *obj, const wchar_t* name );
63  inline size_t multibyte_to_widechar( wchar_t* wcs, const char* mbs, size_t bufsize) {
64 #if _MSC_VER>=1400
65  size_t len;
66  mbstowcs_s( &len, wcs, bufsize, mbs, _TRUNCATE );
67  return len; // mbstowcs_s counts null terminator
68 #else
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');
72  return len+1; // mbstowcs does not count null terminator
73 #endif
74  }
75 #else
76  void __TBB_EXPORTED_FUNC itt_set_sync_name_v3( void *obj, const char* name );
77 #endif
78  } // namespace internal
79 } // namespace tbb
80 
82 
84 #if _WIN32||_WIN64
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 ); \
89  } \
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 ); \
95  delete[] wname; \
96  } \
97  }
98 #else /* !WIN */
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 ); \
103  } \
104  }
105 #endif /* !WIN */
106 
107 #else /* no tools support */
108 
109 #if _WIN32||_WIN64
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* ) {} \
114  }
115 #else /* !WIN */
116  #define __TBB_DEFINE_PROFILING_SET_NAME(sync_object_type) \
117  namespace profiling { \
118  inline void set_name( sync_object_type&, const char* ) {} \
119  }
120 #endif /* !WIN */
121 
122 #endif /* no tools support */
123 
124 #include "atomic.h"
125 // Need these to work regardless of tools support
126 namespace 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);
134  void __TBB_EXPORTED_FUNC itt_store_pointer_with_release_v3(void *dst, void *src);
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_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra,
144  itt_relation relation, void *addr1, unsigned long long addr1_extra );
145  void __TBB_EXPORTED_FUNC itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra,
146  void *parent, unsigned long long parent_extra, string_index name_index );
148 
149  void __TBB_EXPORTED_FUNC itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra,
150  void *parent, unsigned long long parent_extra, string_index name_index );
151  void __TBB_EXPORTED_FUNC itt_region_end_v9( itt_domain_enum domain, void *region, unsigned long long region_extra );
152 
153  // two template arguments are to workaround /Wp64 warning with tbb::atomic specialized for unsigned type
154  template <typename T, typename U>
155  inline void itt_store_word_with_release(tbb::atomic<T>& dst, U src) {
156 #if TBB_USE_THREADING_TOOLS
157  // This assertion should be replaced with static_assert
158  __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
159  itt_store_pointer_with_release_v3(&dst, (void *)uintptr_t(src));
160 #else
161  dst = src;
162 #endif // TBB_USE_THREADING_TOOLS
163  }
164 
165  template <typename T>
167 #if TBB_USE_THREADING_TOOLS
168  // This assertion should be replaced with static_assert
169  __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
170 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER)
171  // Workaround for overzealous compiler warnings
172  #pragma warning (push)
173  #pragma warning (disable: 4311)
174 #endif
175  T result = (T)itt_load_pointer_with_acquire_v3(&src);
176 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER)
177  #pragma warning (pop)
178 #endif
179  return result;
180 #else
181  return src;
182 #endif // TBB_USE_THREADING_TOOLS
183  }
184 
185  template <typename T>
186  inline void itt_store_word_with_release(T& dst, T src) {
187 #if TBB_USE_THREADING_TOOLS
188  // This assertion should be replaced with static_assert
189  __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
190  itt_store_pointer_with_release_v3(&dst, (void *)src);
191 #else
192  __TBB_store_with_release(dst, src);
193 #endif // TBB_USE_THREADING_TOOLS
194  }
195 
196  template <typename T>
197  inline T itt_load_word_with_acquire(const T& src) {
198 #if TBB_USE_THREADING_TOOLS
199  // This assertion should be replaced with static_assert
200  __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized");
201  return (T)itt_load_pointer_with_acquire_v3(&src);
202 #else
203  return __TBB_load_with_acquire(src);
204 #endif // TBB_USE_THREADING_TOOLS
205  }
206 
207  template <typename T>
208  inline void itt_hide_store_word(T& dst, T src) {
209 #if TBB_USE_THREADING_TOOLS
210  //TODO: This assertion should be replaced with static_assert
211  __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized");
212  itt_store_pointer_with_release_v3(&dst, (void *)src);
213 #else
214  dst = src;
215 #endif
216  }
217 
218  //TODO: rename to itt_hide_load_word_relaxed
219  template <typename T>
220  inline T itt_hide_load_word(const T& src) {
221 #if TBB_USE_THREADING_TOOLS
222  //TODO: This assertion should be replaced with static_assert
223  __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized.");
224  return (T)itt_load_pointer_v3(&src);
225 #else
226  return src;
227 #endif
228  }
229 
230 #if TBB_USE_THREADING_TOOLS
231  inline void call_itt_notify(notify_type t, void *ptr) {
232  call_itt_notify_v5((int)t, ptr);
233  }
234 
235  inline void itt_make_task_group( itt_domain_enum domain, void *group, unsigned long long group_extra,
236  void *parent, unsigned long long parent_extra, string_index name_index ) {
237  itt_make_task_group_v7( domain, group, group_extra, parent, parent_extra, name_index );
238  }
239 
240  inline void itt_metadata_str_add( itt_domain_enum domain, void *addr, unsigned long long addr_extra,
241  string_index key, const char *value ) {
242  itt_metadata_str_add_v7( domain, addr, addr_extra, key, value );
243  }
244 
245  inline void itt_relation_add( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra,
246  itt_relation relation, void *addr1, unsigned long long addr1_extra ) {
247  itt_relation_add_v7( domain, addr0, addr0_extra, relation, addr1, addr1_extra );
248  }
249 
250  inline void itt_task_begin( itt_domain_enum domain, void *task, unsigned long long task_extra,
251  void *parent, unsigned long long parent_extra, string_index name_index ) {
252  itt_task_begin_v7( domain, task, task_extra, parent, parent_extra, name_index );
253  }
254 
255  inline void itt_task_end( itt_domain_enum domain ) {
257  }
258 
259  inline void itt_region_begin( itt_domain_enum domain, void *region, unsigned long long region_extra,
260  void *parent, unsigned long long parent_extra, string_index name_index ) {
261  itt_region_begin_v9( domain, region, region_extra, parent, parent_extra, name_index );
262  }
263 
264  inline void itt_region_end( itt_domain_enum domain, void *region, unsigned long long region_extra ) {
265  itt_region_end_v9( domain, region, region_extra );
266  }
267 #else
268  inline void call_itt_notify(notify_type /*t*/, void* /*ptr*/) {}
269 
270  inline void itt_make_task_group( itt_domain_enum /*domain*/, void* /*group*/, unsigned long long /*group_extra*/,
271  void* /*parent*/, unsigned long long /*parent_extra*/, string_index /*name_index*/ ) {}
272 
273  inline void itt_metadata_str_add( itt_domain_enum /*domain*/, void* /*addr*/, unsigned long long /*addr_extra*/,
274  string_index /*key*/, const char* /*value*/ ) {}
275 
276  inline void itt_relation_add( itt_domain_enum /*domain*/, void* /*addr0*/, unsigned long long /*addr0_extra*/,
277  itt_relation /*relation*/, void* /*addr1*/, unsigned long long /*addr1_extra*/ ) {}
278 
279  inline void itt_task_begin( itt_domain_enum /*domain*/, void* /*task*/, unsigned long long /*task_extra*/,
280  void* /*parent*/, unsigned long long /*parent_extra*/, string_index /*name_index*/ ) {}
281 
282  inline void itt_task_end( itt_domain_enum /*domain*/ ) {}
283 
284  inline void itt_region_begin( itt_domain_enum /*domain*/, void* /*region*/, unsigned long long /*region_extra*/,
285  void* /*parent*/, unsigned long long /*parent_extra*/, string_index /*name_index*/ ) {}
286 
287  inline void itt_region_end( itt_domain_enum /*domain*/, void* /*region*/, unsigned long long /*region_extra*/ ) {}
288 #endif // TBB_USE_THREADING_TOOLS
289 
290  } // namespace internal
291 } // namespace tbb
292 
293 #if TBB_PREVIEW_FLOW_GRAPH_TRACE
294 #include <string>
295 
296 namespace tbb {
297 namespace profiling {
298 namespace interface10 {
299 
300 #if TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2)
301 class event {
305 // TODO: Replace implementation by itt user event api.
306 
307  const std::string my_name;
308 
309  static void emit_trace(const std::string &input) {
310  itt_metadata_str_add( tbb::internal::ITT_DOMAIN_FLOW, NULL, tbb::internal::FLOW_NULL, tbb::internal::USER_EVENT, ( "FGA::DATAID::" + input ).c_str() );
311  }
312 
313 public:
314  event(const std::string &input)
315  : my_name( input )
316  { }
317 
318  void emit() {
319  emit_trace(my_name);
320  }
321 
322  static void emit(const std::string &description) {
323  emit_trace(description);
324  }
325 
326 };
327 #else // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2)
328 // Using empty struct if user event tracing is disabled:
329 struct event {
330  event(const std::string &) { }
331 
332  void emit() { }
333 
334  static void emit(const std::string &) { }
335 };
336 #endif // TBB_USE_THREADING_TOOLS && !(TBB_USE_THREADING_TOOLS == 2)
337 
338 } // interfaceX
339 using interface10::event;
340 } // namespace profiling
341 } // namespace tbb
342 #endif // TBB_PREVIEW_FLOW_GRAPH_TRACE
343 
344 #endif /* __TBB_profiling_H */
T itt_hide_load_word(const T &src)
void __TBB_EXPORTED_FUNC itt_task_end_v7(itt_domain_enum domain)
Definition: tbb_main.cpp:412
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)
Definition: tbb_main.cpp:272
T __TBB_load_with_acquire(const volatile T &location)
Definition: tbb_machine.h:713
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)
Definition: tbb_main.cpp:409
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:169
void itt_store_word_with_release(tbb::atomic< T > &dst, U src)
void __TBB_EXPORTED_FUNC call_itt_notify_v5(int t, void *ptr)
Definition: tbb_main.cpp:293
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)
void * addr
Base class for user-defined tasks.
Definition: task.h:592
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)
Definition: tbb_main.cpp:277
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:414
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)
Definition: tbb_main.cpp:406
The graph class.
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)
Definition: tbb_main.cpp:417
Primary template for atomic.
Definition: atomic.h:407
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)
Definition: tbb_main.cpp:421
void itt_set_sync_name_v3(void *obj, const tchar *name)
Definition: tbb_main.cpp:427
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)
Definition: tbb_main.cpp:403
void __TBB_store_with_release(volatile T &location, V value)
Definition: tbb_machine.h:717
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:400

Copyright © 2005-2019 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.