Go to file
Richard Henderson cedb4a1ad0 Allow libcalls to be installed for legacy __sync optabs.
This allows a target which implements the __sync interfaces
in libgcc to continue to use them transparently with the
new __atomic builtins.

It is assumed that these libgcc routines DO NOT use spinlocks.
This is true of all extant libgcc instances.

        * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
        OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
        OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
        OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
        OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
        rename from the direct_optab_index enum.
        (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
        sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
        sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
        sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
        sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
        from the optab_table, not the direct_optab_table.
        (init_sync_libfuncs): Declare.
        (can_compare_and_swap_p): Update parameters.
        * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
        (can_compare_and_swap_p): Add allow_libcall parameter; if true,
        test for the legacy compare-and-swap libcall.
        (expand_atomic_exchange): Use the legacy test-and-set libcall.
        (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
        (struct atomic_op_functions): Update for optab type changes.
        (maybe_emit_op): Likewise.
        (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
        * builtins.c (fold_builtin_atomic_always_lock_free): Update call
        to can_compare_and_swap_p.
        * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
        (expand_omp_atomic_pipeline): Likewise.
        * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
        sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
        optabs.

From-SVN: r181134
2011-11-07 15:11:55 -08:00
boehm-gc configure.ac (THREADS): Remove posix95. 2011-08-08 15:39:35 +00:00
config Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
contrib config.gcc (epiphany-*-*): New architecture. 2011-11-05 20:48:23 +00:00
fixincludes re PR lto/48851 (lto-plugin.c:224:7: error: missing sentinel in function call [-Werror=format]) 2011-10-25 20:07:19 +00:00
gcc Allow libcalls to be installed for legacy __sync optabs. 2011-11-07 15:11:55 -08:00
gnattools Makefile.in (LOOSE_WARN): Delete. 2011-10-12 22:41:57 +00:00
include obstack.h [!GNUC] (obstack_free): Avoid cast to int. 2011-10-21 21:35:29 -04:00
INSTALL
intl Fix unportable shell quoting. 2010-09-27 20:19:41 +00:00
libada Makefile.in (LOOSE_WARN): Delete. 2011-10-12 22:41:57 +00:00
libcpp re PR bootstrap/50857 (The compiler is built with exceptions and RTTI enabled) 2011-11-03 17:17:07 +00:00
libdecnumber remove useless if-before-free tests 2011-04-20 18:19:03 +00:00
libffi re PR libffi/49594 (bootstrap failure in libffi:darwin_closure for powerpc-darwin8) 2011-09-04 19:19:39 +00:00
libgcc libgcov.c (struct gcov_fn_buffer): New struct. 2011-11-07 18:14:46 +00:00
libgfortran Revert previous fix for PR 45723. 2011-11-07 16:32:50 +02:00
libgo syscall: Remove Linux system calls not available in older glibcs. 2011-11-02 17:53:20 +00:00
libgomp posix95: Remove empty directory. 2011-10-10 19:27:31 +00:00
libiberty re PR c++/48370 (G++ fails to extend reference temporary lifetime in some situations) 2011-11-04 08:54:08 -04:00
libjava exception.cc (parse_lsda_header): hardcode ttype_encoding for older ARM EABI toolchains. 2011-10-20 13:56:12 +00:00
libmudflap re PR middle-end/43513 (The stack pointer is adjusted twice) 2011-07-31 10:02:12 +00:00
libobjc Move gthr to toplevel libgcc 2011-11-02 15:28:43 +00:00
libquadmath re PR target/51007 (Quadmath I/O doesn't work on MinGW) 2011-11-07 23:03:51 +01:00
libssp re PR bootstrap/48135 (build fails on Solaris2.8 due to Glob.pm not found within /usr/perl5) 2011-03-21 12:24:17 +00:00
libstdc++-v3 mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable. 2011-11-07 22:26:15 +00:00
lto-plugin re PR lto/47247 (Linker plugin specification makes it difficult to handle COMDATs) 2011-10-02 10:41:24 +00:00
maintainer-scripts update_version_svn (IGNORE_BRANCHES): Add gcc-4_3-branch. 2011-06-27 11:05:50 +00:00
zlib Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
ABOUT-NLS
ChangeLog Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
ChangeLog.tree-ssa
compile
config-ml.in MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
config.guess oops - omitted from previous delta. 2011-06-06 10:34:35 +00:00
config.rpath Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
config.sub * config.sub: Update to version 2011-10-29 (added rl78) 2011-11-01 20:56:32 -04:00
configure configure.ac (tic6x-*-*): Remove gdb from noconfigdirs. 2011-08-14 12:25:15 +00:00
configure.ac configure.ac (tic6x-*-*): Remove gdb from noconfigdirs. 2011-08-14 12:25:15 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4 Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh backport: ltmain.sh (relink): Use absolute path when hardcoding with -L. 2011-01-13 18:51:10 +00:00
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS * MAINTAINERS (Write After Approval): Add myself. 2011-10-25 09:39:49 +00:00
Makefile.def Makefile.def (language=c++): Add check-c++0x and check-target-libmudflap-c++. 2011-07-16 23:34:13 -04:00
Makefile.in Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
Makefile.tpl Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
missing
mkdep
mkinstalldirs
move-if-change Import move-if-change script from gnulib. 2011-02-12 15:48:30 +00:00
README
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.