Visible to Intel only — GUID: GUID-027199FC-34F6-471C-82E4-56D04425D04B
Visible to Intel only — GUID: GUID-027199FC-34F6-471C-82E4-56D04425D04B
Special-purpose Annotations
All Intel Advisor special-purpose annotations are recognized by the Dependencies tool, which observes memory accesses in great detail. Some of these annotations prevent the Dependencies tool from reporting all or specific data sharing problems, while one (Observe Uses of Storage) provides more detail about memory accesses.
In the C/C++ syntax descriptions below, addresses and sizes are C++ expressions. Similarly, the Fortran var is a Fortran integer address.
This topic describes the following special-purpose annotations:
Inductive Expressions Uses
Induction variables (such as ++i) can often be eliminated when you add parallel framework code. Use this annotation to disable reporting data sharing problems for the specified memory region. This annotation is only recognized by the Dependencies tool.
Terminate this annotation with a Clear Uses of Storage annotation.
Syntax:
C/C++: |
ANNOTATE_INDUCTION_USES(address, size); |
Fortran: |
call annotate_induction_uses(var) |
C#: |
Not supported |
address is a C++ identifier or expression that provides information about the memory region for this annotation.
size is a C++ identifier or expression that provides information about the memory region for this annotation.
var is a Fortran integer address that provides information about the memory region for this annotation.
Reduction Uses
Reduction variables (such as sum += data[i]) can often be replaced with reduction operations when you add parallel framework code. Use this annotation to disable reporting data sharing problems for the specified memory region. This annotation is only recognized by the Dependencies tool.
Terminate this annotation with a Clear Uses of Storage annotation. For example, with C/C++ code:
ANNOTATE_REDUCTION_USES(&sum, 4); sum += a[i]; ANNOTATE_CLEAR_USES(&sum);
Syntax:
C/C++: |
ANNOTATE_REDUCTION_USES(address, size); |
Fortran: |
call annotate_reduction_uses(var) |
C#: |
Not supported |
address is a C++ identifier or expression that provides information about the memory region location for this annotation.
size is a C++ identifier or expression that provides information about the memory region location for this annotation.
var is a Fortran integer address that provides information about the memory region for this annotation.
Observe Uses of Storage
Use this annotation to report all accesses to the specified memory region. For example, this can help you find all of the uses of a variable to determine how you should refactor your code. This annotation gets reported as a Memory watch remark message in the Dependencies Report. This annotation is only recognized by the Dependencies tool.
For performance reasons, this annotation may not report memory access for variables stored on the stack.