Commit e8053cf5 by Richard Henderson Committed by Richard Henderson

Add -fno-sync-libcalls.

        * common.opt (fsync-libcalls): New.
        * doc/invoke.texi: Document it.
        * optabs.c (init_sync_libfuncs): Honor it.

From-SVN: r187017
parent 0f2f3389
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> 2012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
Richard Sandiford <r.sandiford@uk.ibm.com> Richard Sandiford <r.sandiford@uk.ibm.com>
......
...@@ -1878,6 +1878,10 @@ fstrict-overflow ...@@ -1878,6 +1878,10 @@ fstrict-overflow
Common Report Var(flag_strict_overflow) Common Report Var(flag_strict_overflow)
Treat signed overflow as undefined 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 fsyntax-only
Common Report Var(flag_syntax_only) Common Report Var(flag_syntax_only)
Check for syntax errors, then stop Check for syntax errors, then stop
......
...@@ -990,7 +990,7 @@ See S/390 and zSeries Options. ...@@ -990,7 +990,7 @@ See S/390 and zSeries Options.
-fno-stack-limit -fsplit-stack @gol -fno-stack-limit -fsplit-stack @gol
-fleading-underscore -ftls-model=@var{model} @gol -fleading-underscore -ftls-model=@var{model} @gol
-ftrapv -fwrapv -fbounds-check @gol -ftrapv -fwrapv -fbounds-check @gol
-fvisibility -fstrict-volatile-bitfields} -fvisibility -fstrict-volatile-bitfields -fsync-libcalls}
@end table @end table
@menu @menu
...@@ -19824,6 +19824,16 @@ that it is unaware of. ...@@ -19824,6 +19824,16 @@ that it is unaware of.
The default value of this option is determined by the application binary The default value of this option is determined by the application binary
interface for the target processor. 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 @end table
@c man end @c man end
......
...@@ -6643,6 +6643,9 @@ init_sync_libfuncs_1 (optab tab, const char *base, int max) ...@@ -6643,6 +6643,9 @@ init_sync_libfuncs_1 (optab tab, const char *base, int max)
void void
init_sync_libfuncs (int max) init_sync_libfuncs (int max)
{ {
if (!flag_sync_libcalls)
return;
init_sync_libfuncs_1 (sync_compare_and_swap_optab, init_sync_libfuncs_1 (sync_compare_and_swap_optab,
"__sync_val_compare_and_swap", max); "__sync_val_compare_and_swap", max);
init_sync_libfuncs_1 (sync_lock_test_and_set_optab, init_sync_libfuncs_1 (sync_lock_test_and_set_optab,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment