Add -fno-sync-libcalls.
authorRichard Henderson <rth@redhat.com>
Tue, 1 May 2012 15:48:10 +0000 (08:48 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 1 May 2012 15:48:10 +0000 (08:48 -0700)
        * common.opt (fsync-libcalls): New.
        * doc/invoke.texi: Document it.
        * optabs.c (init_sync_libfuncs): Honor it.

From-SVN: r187017

gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/optabs.c

index e7851b47ae77ec344c64605686703f4681d41d81..53a7f75b8440370f6079e30ce0c08c29d0adb441 100644 (file)
@@ -1,3 +1,9 @@
+2012-05-01  Richard Henderson  <rth@redhat.com>
+
+       * common.opt (fsync-libcalls): New.
+       * doc/invoke.texi: Document it.
+       * optabs.c (init_sync_libfuncs): Honor it.
+
 2012-05-01  Kenneth Zadeck  <zadeck@naturalbridge.com>
            Richard Sandiford  <r.sandiford@uk.ibm.com>
 
index af029922899a5e9276ee3fc6bbb11a9089eff00f..cc5797606ad4c925311ec22bf70c3d161710244a 100644 (file)
@@ -1878,6 +1878,10 @@ fstrict-overflow
 Common Report Var(flag_strict_overflow)
 Treat signed overflow as undefined
 
+fsync-libcalls
+Common Report Var(flag_sync_libcalls) Init(1)
+Implement __atomic operations via libcalls to legacy __sync functions
+
 fsyntax-only
 Common Report Var(flag_syntax_only)
 Check for syntax errors, then stop
index a7efaa7e021be6686be01c150aaf68524e8bfaa0..5550c71fd21410579e6c75ff9f4feccd7d15854c 100644 (file)
@@ -990,7 +990,7 @@ See S/390 and zSeries Options.
 -fno-stack-limit -fsplit-stack @gol
 -fleading-underscore  -ftls-model=@var{model} @gol
 -ftrapv  -fwrapv  -fbounds-check @gol
--fvisibility -fstrict-volatile-bitfields}
+-fvisibility -fstrict-volatile-bitfields -fsync-libcalls}
 @end table
 
 @menu
@@ -19824,6 +19824,16 @@ that it is unaware of.
 The default value of this option is determined by the application binary
 interface for the target processor.
 
+@item -fsync-libcalls
+@opindex fsync-libcalls
+This option controls whether any out-of-line instance of the @code{__sync}
+family of functions may be used to implement the C++11 @code{__atomic}
+family of functions.
+
+The default value of this option is enabled, thus the only useful form
+of the option is @option{-fno-sync-libcalls}.  This option is used in
+the implementation of the @file{libatomic} runtime library.
+
 @end table
 
 @c man end
index 080061a1f57b32bba0259e4000067b1d264a7de8..7ef513acae6ae3b6059b7171a3227c1c3c096d3d 100644 (file)
@@ -6643,6 +6643,9 @@ init_sync_libfuncs_1 (optab tab, const char *base, int max)
 void
 init_sync_libfuncs (int max)
 {
+  if (!flag_sync_libcalls)
+    return;
+
   init_sync_libfuncs_1 (sync_compare_and_swap_optab,
                        "__sync_val_compare_and_swap", max);
   init_sync_libfuncs_1 (sync_lock_test_and_set_optab,