"X","X","",""\r
\r
The ``noduplicate`` attribute can be placed on function declarations to control\r
-whether function calls to this function can be duplicated \r
-or not as a result of optimizations. This is required for the implementation\r
-of functions with certain special requirements, like the OpenCL "barrier", \r
-function that, depending on the hardware, might require to be run concurrently\r
-by all the threads that are currently executing in lockstep on the hardware.\r
-For example this attribute applied on the function "nodupfunc" \r
-avoids that this code:\r
+whether function calls to this function can be duplicated or not as a result of\r
+optimizations. This is required for the implementation of functions with\r
+certain special requirements, like the OpenCL "barrier" function, that might\r
+need to be run concurrently by all the threads that are executing in lockstep\r
+on the hardware. For example this attribute applied on the function\r
+"nodupfunc" in the code below avoids that:\r
\r
.. code-block:: c\r
\r
bar();\r
}\r
\r
-gets possibly modified by some optimization into code similar to this:\r
+gets possibly modified by some optimizations into code similar to this:\r
\r
.. code-block:: c\r
\r
bar();\r
}\r
\r
-where the barrier call is duplicated and sunk into the two branches of the condition.\r
+where the call to "nodupfunc" is duplicated and sunk into the two branches\r
+of the condition.\r
\r
\r
no_sanitize_address (no_address_safety_analysis, gnu::no_address_safety_analysis, gnu::no_sanitize_address)\r
let Category = DocCatFunction;
let Content = [{
The ``noduplicate`` attribute can be placed on function declarations to control
-whether function calls to this function can be duplicated
-or not as a result of optimizations. This is required for the implementation
-of functions with certain special requirements, like the OpenCL "barrier",
-function that, depending on the hardware, might require to be run concurrently
-by all the threads that are currently executing in lockstep on the hardware.
-For example this attribute applied on the function "nodupfunc"
-avoids that this code:
+whether function calls to this function can be duplicated or not as a result of
+optimizations. This is required for the implementation of functions with
+certain special requirements, like the OpenCL "barrier" function, that might
+need to be run concurrently by all the threads that are executing in lockstep
+on the hardware. For example this attribute applied on the function
+"nodupfunc" in the code below avoids that:
.. code-block:: c
bar();
}
-gets possibly modified by some optimization into code similar to this:
+gets possibly modified by some optimizations into code similar to this:
.. code-block:: c
bar();
}
-where the barrier call is duplicated and sunk into the two branches of the condition.
+where the call to "nodupfunc" is duplicated and sunk into the two branches
+of the condition.
}];
}