From baf4750feaa6a5fa502ae7bc0b90f31640af6f47 Mon Sep 17 00:00:00 2001 From: qing zhao Date: Thu, 8 Oct 2020 17:01:07 +0200 Subject: [PATCH] Improve documentation of -fallow-store-data-races 2020-10-08 John Henning gcc/ PR other/97309 * doc/invoke.texi: Improve documentation of -fallow-store-data-races. --- gcc/doc/invoke.texi | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index c1774969079..b8c807e631c 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -11622,7 +11622,18 @@ Do not remove unused C++ allocations in dead code elimination. @item -fallow-store-data-races @opindex fallow-store-data-races -Allow the compiler to introduce new data races on stores. +Allow the compiler to perform optimizations that may introduce new data races +on stores, without proving that the variable cannot be concurrently accessed +by other threads. Does not affect optimization of local data. It is safe to +use this option if it is known that global data will not be accessed by +multiple threads. + +Examples of optimizations enabled by @option{-fallow-store-data-races} include +hoisting or if-conversions that may cause a value that was already in memory +to be re-written with that same value. Such re-writing is safe in a single +threaded context but may be unsafe in a multi-threaded context. Note that on +some processors, if-conversions may be required in order to enable +vectorization. Enabled at level @option{-Ofast}. -- 2.30.2