Add -fno-sync-libcalls.
* common.opt (fsync-libcalls): New. * doc/invoke.texi: Document it. * optabs.c (init_sync_libfuncs): Honor it. From-SVN: r187017
This commit is contained in:
parent
0f2f338932
commit
e8053cf5b5
4 changed files with 24 additions and 1 deletions
|
@ -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>
|
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
|
||||||
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.
|
||||||
-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.
|
||||||
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)
|
||||||
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,
|
||||||
|
|
Loading…
Add table
Reference in a new issue