icc_generic.h File Reference
`#include "gcc_ia32_common.h"`
Include dependency graph for icc_generic.h:

Go to the source code of this file.

## Classes

struct | tbb::internal::machine_load_store< T, S >
struct | tbb::internal::machine_load_store_relaxed< T, S >
struct | tbb::internal::machine_load_store_seq_cst< T, S >

## Namespaces

| tbb
| The graph class.
| tbb::internal
| Identifiers declared inside namespace internal should never be used directly by client code.
| tbb::internal::icc_intrinsics_port

## Macros

#define | __TBB_WORDSIZE 8
#define | __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE
#define | __TBB_compiler_fence() __asm__ __volatile__("": : :"memory")
#define | __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory")
#define | __TBB_control_consistency_helper() __TBB_compiler_fence()
#define | __TBB_MACHINE_DEFINE_ATOMICS(S, T, M)
#define | __TBB_USE_FENCED_ATOMICS 1

## Typedefs

typedef enum tbb::internal::memory_order | tbb::internal::memory_order
typedef enum tbb::internal::icc_intrinsics_port::memory_order_map | tbb::internal::icc_intrinsics_port::memory_order_map

## Enumerations

enum | tbb::internal::memory_order { tbb::internal::memory_order_relaxed , tbb::internal::memory_order_consume , tbb::internal::memory_order_acquire , tbb::internal::memory_order_release , tbb::internal::memory_order_acq_rel , tbb::internal::memory_order_seq_cst }
enum | tbb::internal::icc_intrinsics_port::memory_order_map { tbb::internal::icc_intrinsics_port::relaxed = memory_order_relaxed , tbb::internal::icc_intrinsics_port::acquire = memory_order_acquire , tbb::internal::icc_intrinsics_port::release = memory_order_release , tbb::internal::icc_intrinsics_port::full_fence = memory_order_seq_cst }

## Functions

template<typename T >
T | tbb::internal::icc_intrinsics_port::convert_argument (T value)
template<typename T >
void * | tbb::internal::icc_intrinsics_port::convert_argument (T *value)
template<typename T >
void | __TBB_machine_OR (T *operand, T addend)
template<typename T >
void | __TBB_machine_AND (T *operand, T addend)

## Macro Definition Documentation

## __TBB_compiler_fence

#define __TBB_compiler_fence | ( |  | ) | __asm__ __volatile__("": : :"memory")

Definition at line 51 of file icc_generic.h.

## __TBB_control_consistency_helper

#define __TBB_control_consistency_helper | ( |  | ) | __TBB_compiler_fence()

Definition at line 66 of file icc_generic.h.

## __TBB_ENDIANNESS

#define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE

Definition at line 42 of file icc_generic.h.

## __TBB_full_memory_fence

#define __TBB_full_memory_fence | ( |  | ) | __asm__ __volatile__("mfence": : :"memory")

Definition at line 61 of file icc_generic.h.

## __TBB_MACHINE_DEFINE_ATOMICS

#define __TBB_MACHINE_DEFINE_ATOMICS | ( |  | S,
|  |  | T,
|  |  | M
| ) |  |

Value:
inline T __TBB_machine_cmpswp##S##M( volatile void *ptr, T value, T comparand ) { \
__atomic_compare_exchange_strong_explicit( \
(T*)ptr \
,&comparand \
,value \
, tbb::internal::icc_intrinsics_port::M \
, tbb::internal::icc_intrinsics_port::M); \
return comparand; \
} \
\
inline T __TBB_machine_fetchstore##S##M(volatile void *ptr, T value) { \
return __atomic_exchange_explicit((T*)ptr, value, tbb::internal::icc_intrinsics_port::M); \
} \
\
inline T __TBB_machine_fetchadd##S##M(volatile void *ptr, T value) { \
return __atomic_fetch_add_explicit((T*)ptr, value, tbb::internal::icc_intrinsics_port::M); \
} \
S
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 S
Definition: ittnotify_static.h:212
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 __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
Definition: ittnotify_static.h:192

Definition at line 135 of file icc_generic.h.

## __TBB_USE_FENCED_ATOMICS

#define __TBB_USE_FENCED_ATOMICS 1

Definition at line 177 of file icc_generic.h.

## __TBB_WORDSIZE

#define __TBB_WORDSIZE 8

Definition at line 40 of file icc_generic.h.

## Function Documentation

## __TBB_machine_AND()

template<typename T >

void __TBB_machine_AND | ( | T * | operand,
|  | T | addend
| ) |  |

inline

Definition at line 255 of file icc_generic.h.

{
__atomic_fetch_and_explicit(operand, addend, tbb::internal::memory_order_seq_cst);
}
tbb::internal::memory_order_seq_cst
@ memory_order_seq_cst
Definition: icc_generic.h:76

References tbb::internal::memory_order_seq_cst.

## __TBB_machine_OR()

template<typename T >

void __TBB_machine_OR | ( | T * | operand,
|  | T | addend
| ) |  |

inline

Definition at line 250 of file icc_generic.h.

{
__atomic_fetch_or_explicit(operand, addend, tbb::internal::memory_order_seq_cst);
}

References tbb::internal::memory_order_seq_cst.

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.