Update from GCC 4.6.2 to 4.6.3 for R1A4 * This update resolves the segfault/ICE in gcc/c-parser.c while building natively * gcc/gengtype.c was already updated to GCC 4.6.3 version previously in btrev43031, so no change there * gcc/libiberty/make-relative-prefix is the stock 4.6.3 version now, as the workaround for Haiku is no longer needed * This update is otherwise the GCC patches for upgrading 4.6.2 to 4.6.3 core/g++ applied to our sources
Diff
gcc/ChangeLog | 24 ++++++++++++++++++++++++
gcc/LAST_UPDATED | 2 +-
gcc/MD5SUMS | 740 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
gcc/Makefile.def | 1 +
gcc/Makefile.in | 1 +
gcc/NEWS | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/configure | 6 +-----
gcc/configure.ac | 4 ----
gcc/libtool.m4 | 8 ++++----
gcc/config/ChangeLog | 8 ++++++++
gcc/config/acx.m4 | 8 ++++----
gcc/contrib/ChangeLog | 4 ++++
gcc/fixincludes/ChangeLog | 4 ++++
gcc/gcc/BASE-VER | 2 +-
gcc/gcc/ChangeLog | 937 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/DATESTAMP | 2 +-
gcc/gcc/c-decl.c | 21 ++++++++++++++-------
gcc/gcc/c-parser.c | 4 +++-
gcc/gcc/c-typeck.c | 6 +-----
gcc/gcc/calls.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/cfgcleanup.c | 18 ++++++++++++++++--
gcc/gcc/cfgrtl.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++-------
gcc/gcc/combine.c | 40 ++++++++++++++++++++++++++++------------
gcc/gcc/compare-elim.c | 5 ++++-
gcc/gcc/configure | 28 +++++++++-------------------
gcc/gcc/configure.ac | 12 +-----------
gcc/gcc/cselib.c | 7 +++++--
gcc/gcc/df.h | 2 +-
gcc/gcc/diagnostic.c | 4 ++--
gcc/gcc/dojump.c | 4 ++--
gcc/gcc/dwarf2out.c | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/expr.c | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/expr.h | 2 ++
gcc/gcc/fold-const.c | 58 +++++++++++++++++++++-------------------------------------
gcc/gcc/function.c | 4 ++--
gcc/gcc/gengtype-lex.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
gcc/gcc/gthr.h | 8 ++++++++
gcc/gcc/ipa-prop.c | 6 +++---
gcc/gcc/ipa-split.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/loop-doloop.c | 20 ++++++--------------
gcc/gcc/lto-cgraph.c | 6 +++---
gcc/gcc/lto-opts.c | 6 +++---
gcc/gcc/lto-section-in.c | 2 +-
gcc/gcc/lto-streamer-in.c | 6 +++---
gcc/gcc/lto-streamer-out.c | 15 +++++----------
gcc/gcc/omp-low.c | 3 +++
gcc/gcc/profile.c | 35 +++++++++++++++++++++++++++++++++++
gcc/gcc/recog.c | 11 +++++++----
gcc/gcc/regmove.c | 2 +-
gcc/gcc/reload1.c | 4 ++++
gcc/gcc/reorg.c | 4 +++-
gcc/gcc/sched-deps.c | 6 +++++-
gcc/gcc/simplify-rtx.c | 20 +++++++++++++++-----
gcc/gcc/stmt.c | 11 +++++------
gcc/gcc/stor-layout.c | 12 ++++++------
gcc/gcc/tree-flow.h | 3 +++
gcc/gcc/tree-loop-distribution.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
gcc/gcc/tree-mudflap.c | 19 +++++++++++++------
gcc/gcc/tree-object-size.c | 2 +-
gcc/gcc/tree-outof-ssa.c | 5 +++--
gcc/gcc/tree-parloops.c | 5 ++++-
gcc/gcc/tree-sra.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/tree-ssa-coalesce.c | 2 +-
gcc/gcc/tree-ssa-forwprop.c | 18 ++++++++++++------
gcc/gcc/tree-ssa-loop-ch.c | 2 +-
gcc/gcc/tree-ssa-pre.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
gcc/gcc/tree-ssa-sccvn.c | 4 ++++
gcc/gcc/tree-ssa-structalias.c | 19 +++++++++++++------
gcc/gcc/tree-vect-data-refs.c | 10 ++++++++++
gcc/gcc/tree-vect-stmts.c | 9 +++++++++
gcc/gcc/varasm.c | 13 ++++++++-----
gcc/include/ChangeLog | 4 ++++
gcc/intl/ChangeLog | 4 ++++
gcc/libcpp/ChangeLog | 4 ++++
gcc/libdecnumber/ChangeLog | 4 ++++
gcc/libgcc/ChangeLog | 17 +++++++++++++++++
gcc/libgcc/config.host | 9 ---------
gcc/libgcc/generic-morestack.c | 4 ++--
gcc/libgomp/ChangeLog | 16 ++++++++++++++++
gcc/libgomp/configure | 12 ++++++------
gcc/libgomp/libgomp.info | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
gcc/libiberty/ChangeLog | 37 +++++++++++++++++++++++++++++++++++++
gcc/libiberty/make-relative-prefix.c | 25 +++++++++++++++++--------
gcc/libiberty/simple-object-mach-o.c | 515 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libmudflap/ChangeLog | 16 ++++++++++++++++
gcc/libmudflap/configure | 6 +++---
gcc/libquadmath/ChangeLog | 8 ++++++++
gcc/libquadmath/configure | 6 +++---
gcc/libquadmath/libquadmath.info | 18 +++++++++---------
gcc/libssp/ChangeLog | 8 ++++++++
gcc/libssp/configure | 6 +++---
gcc/libstdc++-v3/ChangeLog | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/configure | 12 ++++++------
gcc/lto-plugin/ChangeLog | 21 +++++++++++++++++++++
gcc/lto-plugin/Makefile.am | 2 +-
gcc/lto-plugin/Makefile.in | 4 +++-
gcc/lto-plugin/aclocal.m4 | 1 +
gcc/lto-plugin/configure | 50 +++++++++++++++++++++++++++++++++++++++++++++-----
gcc/lto-plugin/configure.ac | 1 +
gcc/maintainer-scripts/ChangeLog | 9 +++++++++
gcc/maintainer-scripts/update_web_docs_svn | 1 +
gcc/zlib/ChangeLog | 8 ++++++++
gcc/zlib/configure | 6 +++---
gcc/contrib/reghunt/ChangeLog | 4 ++++
gcc/contrib/regression/ChangeLog | 4 ++++
gcc/gcc/c-family/ChangeLog | 16 ++++++++++++++++
gcc/gcc/c-family/c-common.c | 54 ++++++++++++++++++++----------------------------------
gcc/gcc/c-family/c-common.h | 3 ++-
gcc/gcc/config/darwin.c | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/cp/ChangeLog | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/cp/call.c | 1 +
gcc/gcc/cp/class.c | 13 ++++++++++++-
gcc/gcc/cp/decl.c | 45 +++++++++++++++++++++++++++++++++------------
gcc/gcc/cp/decl2.c | 4 ++--
gcc/gcc/cp/init.c | 10 +++++++++-
gcc/gcc/cp/mangle.c | 3 ++-
gcc/gcc/cp/pt.c | 24 +++++++++++++++++++++---
gcc/gcc/cp/semantics.c | 21 +++++++++++++++++++--
gcc/gcc/cp/typeck.c | 30 +++++++++++++++++++++++-------
gcc/gcc/doc/aot-compile.1 | 4 ++--
gcc/gcc/doc/cpp.1 | 4 ++--
gcc/gcc/doc/cpp.info | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
gcc/gcc/doc/cppinternals.info | 26 +++++++++++++-------------
gcc/gcc/doc/fsf-funding.7 | 4 ++--
gcc/gcc/doc/g++.1 | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
gcc/gcc/doc/gc-analyze.1 | 4 ++--
gcc/gcc/doc/gcc.1 | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
gcc/gcc/doc/gcc.info | 835 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
gcc/gcc/doc/gccinstall.info | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/doc/gccint.info | 692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
gcc/gcc/doc/gcj-dbtool.1 | 4 ++--
gcc/gcc/doc/gcj.1 | 4 ++--
gcc/gcc/doc/gcj.info | 94 +++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
gcc/gcc/doc/gcov.1 | 4 ++--
gcc/gcc/doc/gfdl.7 | 4 ++--
gcc/gcc/doc/gfortran.1 | 21 +++++++++++++++------
gcc/gcc/doc/gij.1 | 4 ++--
gcc/gcc/doc/gpl.7 | 4 ++--
gcc/gcc/doc/grmic.1 | 4 ++--
gcc/gcc/doc/invoke.texi | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
gcc/gcc/doc/jcf-dump.1 | 4 ++--
gcc/gcc/doc/jv-convert.1 | 4 ++--
gcc/gcc/doc/rebuild-gcj-db.1 | 4 ++--
gcc/gcc/lto/ChangeLog | 11 +++++++++++
gcc/gcc/lto/lto.c | 24 ++++++++++++++----------
gcc/gcc/lto/lto.h | 2 --
gcc/gcc/po/ChangeLog | 8 ++++++++
gcc/gcc/po/ja.gmo | 0
gcc/gcc/po/ja.po | 451 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
gcc/libcpp/po/ChangeLog | 4 ++++
gcc/libstdc++-v3/python/Makefile.am | 11 +++++------
gcc/gcc/config/alpha/linux-unwind.h | 31 +++++++++++++++++++++++++------
gcc/gcc/config/arm/arm.c | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
gcc/gcc/config/arm/arm.md | 32 +++++++++++++++++++++++++++++---
gcc/gcc/config/arm/thumb2.md | 9 +++++----
gcc/gcc/config/avr/avr-devices.c | 4 ++--
gcc/gcc/config/avr/avr.c | 18 +++++++++++-------
gcc/gcc/config/avr/avr.md | 4 ++--
gcc/gcc/config/avr/libgcc.S | 20 ++++++++++++++++++++
gcc/gcc/config/i386/avxintrin.h | 2 +-
gcc/gcc/config/i386/driver-i386.c | 2 +-
gcc/gcc/config/i386/freebsd.h | 3 +++
gcc/gcc/config/i386/i386.c | 16 +++++++++++-----
gcc/gcc/config/i386/i386.md | 54 +++++++++++++++++++++++++++---------------------------
gcc/gcc/config/i386/sse.md | 11 +++++------
gcc/gcc/config/i386/winnt-cxx.c | 14 ++++++++++++++
gcc/gcc/config/mips/mips.md | 2 +-
gcc/gcc/config/pa/pa.c | 5 +++++
gcc/gcc/config/pa/pa.h | 3 +++
gcc/gcc/config/rs6000/rs6000.c | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/config/rs6000/rs6000.md | 4 ++--
gcc/gcc/config/s390/s390.md | 3 ++-
gcc/gcc/config/sparc/sol2-unwind.h | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/gcc/config/sparc/sparc.c | 13 ++++++++++++-
gcc/gcc/config/sparc/sparc.h | 1 +
gcc/gcc/config/sparc/sparc.md | 72 ++++++++++++++++++++++++++++++++++++++++++++++--------------------------
gcc/libgcc/config/libbid/ChangeLog | 4 ++++
gcc/libgomp/testsuite/libgomp.c/pr46886.c | 28 ++++++++++++++++++++++++++++
gcc/libmudflap/testsuite/libmudflap.c/fail68-frag.c | 27 +++++++++++++++++++++++++++
gcc/libstdc++-v3/include/bits/hashtable.h | 5 +++++
gcc/libstdc++-v3/include/bits/hashtable_policy.h | 4 ++--
gcc/libstdc++-v3/include/bits/random.h | 7 ++++++-
gcc/libstdc++-v3/include/bits/random.tcc | 12 +++++++-----
gcc/libstdc++-v3/include/bits/regex.h | 2 +-
gcc/libstdc++-v3/include/bits/shared_ptr.h | 4 ++++
gcc/libstdc++-v3/include/bits/shared_ptr_base.h | 3 ++-
gcc/libstdc++-v3/include/bits/stl_map.h | 5 +++++
gcc/libstdc++-v3/include/bits/stl_multimap.h | 5 +++++
gcc/libstdc++-v3/include/bits/stl_numeric.h | 13 +++++++------
gcc/libstdc++-v3/include/bits/stl_tree.h | 10 ++++++++++
gcc/libstdc++-v3/include/bits/stl_uninitialized.h | 21 ++++++++++++++++++---
gcc/libstdc++-v3/include/c_global/cmath | 12 +++---------
gcc/libstdc++-v3/include/debug/map.h | 4 ++++
gcc/libstdc++-v3/include/debug/multimap.h | 4 ++++
gcc/libstdc++-v3/include/debug/unordered_map | 8 ++++++++
gcc/libstdc++-v3/include/debug/unordered_set | 8 ++++++++
gcc/libstdc++-v3/include/ext/type_traits.h | 59 +++++++++++++++++++++++++++++++++--------------------------
gcc/libstdc++-v3/include/profile/base.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/map | 22 ++++++++--------------
gcc/libstdc++-v3/include/profile/map.h | 26 ++++++++++++--------------
gcc/libstdc++-v3/include/profile/multimap.h | 4 ++++
gcc/libstdc++-v3/include/profile/set | 22 ++++++++--------------
gcc/libstdc++-v3/include/profile/unordered_map | 22 ++++++++--------------
gcc/libstdc++-v3/include/profile/unordered_set | 22 ++++++++--------------
gcc/libstdc++-v3/include/profile/vector | 22 ++++++++--------------
gcc/libstdc++-v3/include/std/complex | 11 ++++-------
gcc/libstdc++-v3/include/std/condition_variable | 23 +++++++++++++++++++----
gcc/libstdc++-v3/include/tr1/complex | 9 +++------
gcc/libstdc++-v3/include/tr1/poly_hermite.tcc | 4 ++--
gcc/libstdc++-v3/include/profile/impl/profiler.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_algos.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_container_size.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_hash_func.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_hashtable_size.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_list_to_slist.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_list_to_vector.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_map_to_unordered_map.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_node.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_state.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_trace.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_vector_size.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/include/profile/impl/profiler_vector_to_list.h | 37 +++++++++++++++----------------------
gcc/libstdc++-v3/testsuite/20_util/allocator/51626.cc | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc | 7 +++----
gcc/libstdc++-v3/testsuite/26_numerics/cmath/51083.cc | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/26_numerics/complex/50880.cc | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/26_numerics/complex/51083.cc | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc | 2 +-
gcc/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc | 2 +-
gcc/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc | 2 +-
gcc/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc | 2 +-
gcc/libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc | 2 +-
gcc/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc | 4 ++--
gcc/libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/23_containers/unordered_set/operators/52309.cc | 28 ++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc | 11 +++++------
gcc/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc | 11 +++++------
gcc/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc | 38 ++++++++++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc | 31 +++++++++++++++++++++++++++++++
gcc/libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc | 31 +++++++++++++++++++++++++++++++
250 files changed, 7477 insertions(+), 3514 deletions(-)
@@ -1,3 +1,27 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-01-02 Richard Guenther <rguenther@suse.de>
PR bootstrap/51686
* Makefile.def (install-strip-gcc): Depend on install-strip-lto-plugin.
* Makefile.in: Regenerate.
2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
* configure: Regenerate.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* libtool.m4: Additional FreeBSD 10 fixes.
2011-11-18 Iain Sandoe <iains@gcc.gnu.org>
PR target/49992
* configure.ac: Remove ranlib special-casing for Darwin.
* configure: Regenerate.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,1 +1,1 @@
Obtained from SVN: tags/gcc_4_6_2_release revision 180516
Obtained from SVN: tags/gcc_4_6_3_release revision 184738
@@ -1,5 +1,5 @@
# This file contains the MD5 checksums of the files in the
# gcc-4.6.2.tar.bz2 tarball.
# gcc-4.6.3.tar.bz2 tarball.
#
# Besides verifying that all files in the tarball were correctly expanded,
# it also can be used to determine if any files have changed since the
@@ -14,7 +14,7 @@
fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME
d32239bcb673463ab874e80d47fae504 COPYING3
6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB
703666e6f81e93b25cc949b048015c51 ChangeLog
7a92fc84ab64a61ab5805dc1faf3169c ChangeLog
09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa
23b8927fe1fb0ab321c09a4f0500aa4c INSTALL/README
60392bf6eec376cda14f7d0790cda928 INSTALL/binaries.html
@@ -28,16 +28,16 @@
46c1e6d76b939738b09a63a9f36a72a0 INSTALL/prerequisites.html
f18f761ab8defbb721a2b3f722fce5a9 INSTALL/specific.html
3a3dc535fcc740fc89478b64a47bdad6 INSTALL/test.html
e272b0a8737e27e703496d7c82534df4 LAST_UPDATED
4e6c3d9b1d41cbf3769bdb12eb36601f LAST_UPDATED
9638c5902c7ab2e7c16a230a7c4e1b84 MAINTAINERS
e9a6eb42f7fb9827be80357f99aa339b Makefile.def
9156f49aa8a7d5618048d93f6dc81749 Makefile.in
4669d6b655a6f294f359f024f8d74879 Makefile.def
fb8dddf1b4225a43829f9d5b74f7e41d Makefile.in
eac78088f20641f933ccd56779f7cbd0 Makefile.tpl
23de7aaedc14a6d256f360a0eee9c594 NEWS
0674a2ad3e356b23eb09a891edf38555 NEWS
ec2b30b6785a025a4647df31097b2339 README
b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c
2caafacabf758bb76a9dfce1fc544b97 boehm-gc/BCC_MAKEFILE
5526a84b23b8074500bcb96b7a67d990 boehm-gc/ChangeLog
069dd7d7cb0cd11808de466c3318ca3e boehm-gc/ChangeLog
c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE
3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c
5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx
@@ -67,7 +67,7 @@
a2ed02a22235b4f27ab644ce4f3a9268 boehm-gc/blacklst.c
b19b7b67bff97d0bceba827fedb07d32 boehm-gc/callprocs
32e4857b7b4dbc4bc68e321f70f65dd4 boehm-gc/checksums.c
14084690b16d6a5369018d5e89d1fd26 boehm-gc/configure
545744fa4f18dbe7203c29684b04c261 boehm-gc/configure
980db3197d4f61c92fe894812d2ed89a boehm-gc/configure.ac
56328341fbfbe66715779252aa61943e boehm-gc/configure.host
61ccb6486d45cc6d99201cc19f3c579c boehm-gc/cord/cordbscs.c
@@ -140,7 +140,7 @@
4c84bb6de90f76072b336b30266759d3 boehm-gc/include/gc_amiga_redirects.h
aab55efd952b275ba1609de52ff80f37 boehm-gc/include/gc_backptr.h
736904f03f63db5d285a9df098a23f50 boehm-gc/include/gc_config.h.in
0431df7af28ccbdbc30d907ce3c16646 boehm-gc/include/gc_config_macros.h
dfdf7bb2728e4ba79f0a48227a131f80 boehm-gc/include/gc_config_macros.h
925ba82d0a6e0d29bc580f4ecc86dee3 boehm-gc/include/gc_cpp.h
22b422c2c5bc284ce607d40a1c7207f8 boehm-gc/include/gc_ext_config.h.in
779751ee403e83d548709213c0573578 boehm-gc/include/gc_gcj.h
@@ -210,9 +210,9 @@
47ff590b7b6adb242078464a91723639 config.guess
040359150cf11493f973a46d8a25b06b config.rpath
be64094c88a8e8e07a3dcc55429776b2 config.sub
8ee5fef23244ed87d604ed4e82bea643 config/ChangeLog
45de9e003fc5f588341ebe0e0c166537 config/ChangeLog
0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4
731a4c2ef07c06a2a175804e75fadc03 config/acx.m4
9238d23c68259d195b332db71892d242 config/acx.m4
5c6a030699353abe2ff69294a495e4cd config/bootstrap-O1.mk
4d3304310a9b7b17872d6f644e1dd7c8 config/bootstrap-O3.mk
3be755875df9da02eb4b0a9badd414f1 config/bootstrap-debug-big.mk
@@ -297,9 +297,9 @@
49305b421244035f19bdccb38a800d5f config/unwind_ipinfo.m4
3510459bb8dffa5ea06682a29bcdbfa9 config/warnings.m4
e249d18c447a8372fd1ed5f084284d6b config/zlib.m4
ee3b97946e68afa7be30ac65d0c7565c configure
4f538585b109ab27d85d28dcb841b0c7 configure.ac
b081f82963e8cca70582a499b88c178c contrib/ChangeLog
e595c19e08308bd589bd0101b698cf2d configure
4abef20d4551a420a4102003b5b0e802 configure.ac
ba4e85f037f4a7bcd96f54f05d21b224 contrib/ChangeLog
7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa
e0ea80d7094bf66610f2f60db444f9a1 contrib/analyze_brprob
174515e368b73ef2fc8c54c9455517bf contrib/check_GNU_style.sh
@@ -327,7 +327,7 @@
b747c8d95bb7534c2c0f5af32ae32520 contrib/paranoia.cc
9083c56c1c89c5bec355a27f78e49807 contrib/patch_tester.sh
87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh
daebdf79a9ef5ef717e082e3d9acd8d8 contrib/reghunt/ChangeLog
5e7eaa71f59c0251ac4ad722087772fb contrib/reghunt/ChangeLog
cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full
724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple
3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup
@@ -386,7 +386,7 @@
e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch
afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk
8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall
35c2367244e797b4406f210387be7206 contrib/regression/ChangeLog
f46f4887bb69273ef09fac068eed3dda contrib/regression/ChangeLog
30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png
ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
@@ -406,7 +406,7 @@
e00fa8f7dd72b80ca5a64130e85fe4f4 contrib/uninclude
7cb42cbdf8becd280d1e16191416fb62 contrib/warn_summary
21504de31981a67b5b93b265029d1865 depcomp
337858bc34ac07ac978052569c5c575a fixincludes/ChangeLog
5348d9021077ff5fa5512c75b8bab3b5 fixincludes/ChangeLog
2a322f921f84a63f1935d28805cd9fa8 fixincludes/Makefile.in
a3e295399ad4c66c3985433dd62ce25d fixincludes/README
455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc
@@ -528,12 +528,12 @@
955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h
c78e762f2c91f2af991feda7d3d7f4b2 fixincludes/tests/base/unistd.h
d227bdd632a7e8a2d0323e1d37e10d16 gcc/ABOUT-GCC-NLS
030441851e7968120903902fe1b73622 gcc/BASE-VER
2c629170700c6cbbbdce4816681cb019 gcc/BASE-VER
59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING
a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB
d32239bcb673463ab874e80d47fae504 gcc/COPYING3
6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB
cf0def2f693f1a8da92b83f0b52fecb8 gcc/ChangeLog
037accee403b21fbf8ce44a617427bed gcc/ChangeLog
a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997
d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998
240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999
@@ -554,7 +554,7 @@
e7d34075f784a1023d629b2d5593e6b4 gcc/ChangeLog.ptr
44a19214e0ebd53bf291bcfe85f7492f gcc/ChangeLog.tree-ssa
f8f89587d1efbf6a1f7456761d5712c5 gcc/ChangeLog.tuples
5b714bf1303e99292b03171cb9e8dc47 gcc/DATESTAMP
422561a9f5d85e65f2eb0b8badad43ed gcc/DATESTAMP
d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE
f76db67fe6b61ed06427646baa7ba6bf gcc/FSFChangeLog
44bbf940c2e0a18217b7e604f45216df gcc/FSFChangeLog.10
@@ -566,7 +566,7 @@
b9112676782f036428eefd46045908ab gcc/acinclude.m4
1539c15e466f25fe013381214ecb166b gcc/aclocal.m4
30995d78221b41ce62c92b2f601b4ebb gcc/ada/9drpc.adb
4dc92c53a432af2d666639cde0bc3b2c gcc/ada/ChangeLog
227f482ab613eb229539631439366d49 gcc/ada/ChangeLog
683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001
7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002
cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003
@@ -579,7 +579,7 @@
e4fbc440b524fce6134ebe65d791ea69 gcc/ada/ChangeLog-2010
5598cfcecd6612ea21efddabbbe1ecc0 gcc/ada/ChangeLog.ptr
2cf41efa2dee24b2dda73018b855edd3 gcc/ada/ChangeLog.tree-ssa
c817f8065c4889e137866fd500497c97 gcc/ada/Make-generated.in
2fbbc7fce193825048063b748a0dbe29 gcc/ada/Make-generated.in
6c9c3b4249e781ed48c7ae55e8ef9999 gcc/ada/Makefile.in
322eefd67a6f41f9de8cf5523154c7a4 gcc/ada/Makefile.rtl
86d0e10f28b388a010ff5d9ec8a75b14 gcc/ada/a-assert.adb
@@ -1468,20 +1468,20 @@
fb0c8300c1287e0479a602875413c13b gcc/ada/g-zspche.ads
698b837b776abdf33504479af8506a50 gcc/ada/g-zstspl.ads
bea526cf446ed1c3fe01ca7e542a175d gcc/ada/gcc-interface/Make-lang.in
48ff7453c720894bf69dcd2894565aa2 gcc/ada/gcc-interface/Makefile.in
3b3c64dfa27cdca45f85a52d3079e9ae gcc/ada/gcc-interface/Makefile.in
d47cdfac076a7e474979da4139393b39 gcc/ada/gcc-interface/ada-tree.def
f8cb1c8862e8c28efe1f91abbdecd425 gcc/ada/gcc-interface/ada-tree.h
0b1c6ffed20c195e773f26671ffe4088 gcc/ada/gcc-interface/ada.h
f1169670279ca47f1fd033a1818a7832 gcc/ada/gcc-interface/config-lang.in
74b86d9d165afda42b3b6357143a115a gcc/ada/gcc-interface/cuintp.c
c1192de284bbd99103abb7b2c77375f3 gcc/ada/gcc-interface/decl.c
d427e69cd3025abcabf1f045d677c79c gcc/ada/gcc-interface/decl.c
949d764c65ada4bf1743c2fa6b85bb07 gcc/ada/gcc-interface/gadaint.h
8a053e6c4de8f9e24ce160c12f2b253c gcc/ada/gcc-interface/gigi.h
7c111904af529470fe722ea31094ba09 gcc/ada/gcc-interface/lang-specs.h
e4b74ac92c88ff8ca5790c0a99cceae4 gcc/ada/gcc-interface/lang.opt
fa54131aa4f952da850804dfd075e856 gcc/ada/gcc-interface/misc.c
1598efa4002f7a4aaf2d10aed2a97a56 gcc/ada/gcc-interface/targtyps.c
e30b9877067adb0a082c86452a145d19 gcc/ada/gcc-interface/trans.c
46328c343ae2708def86e4263f076c9d gcc/ada/gcc-interface/trans.c
6547ac8ed35f18f9a981c75748c272b6 gcc/ada/gcc-interface/utils.c
45b17e56c782079e1f4d961a18a9f224 gcc/ada/gcc-interface/utils2.c
df6e008d8650592771f3a0daba1adb70 gcc/ada/get_scos.adb
@@ -1517,7 +1517,7 @@
9751bfdb2ab379d7f0d17190378ceae8 gcc/ada/gnatprep.ads
6456fe8e11462b1efd57dc07cde4c5f9 gcc/ada/gnatsym.adb
fb9fef5712ae1a7dfd425f14332d9bc7 gcc/ada/gnatvsn.adb
f25bf6fd9daac8c2d4cc45ca9536e651 gcc/ada/gnatvsn.ads
78961e96596430ee592209de91ff8e4a gcc/ada/gnatvsn.ads
8a80c68b0e9563d42cd0a79cb2b4f32d gcc/ada/gnatxref.adb
8370eeede8767452e7c9531ea7e420be gcc/ada/gprep.adb
8c8e913f544c9ce673df23f0decbdc42 gcc/ada/gprep.ads
@@ -1559,7 +1559,7 @@
d7687cbf6b1c440a90c770b40742ab35 gcc/ada/indepsw-mingw.adb
fa914ddcd147d8430f947dc903d68021 gcc/ada/indepsw.adb
5b85c73b60202d26b3cccad29575fd6a gcc/ada/indepsw.ads
6ab1431e1a81c68ff96795711316614b gcc/ada/init.c
c93c2d10ea3d55c6edc572b011a4faf4 gcc/ada/init.c
344da4dd184392c712a60f27bfeaaab9 gcc/ada/initialize.c
2a5401ae7caa735b24395648a7b79ad8 gcc/ada/inline.adb
f147e86fd0c0174d2d1def6a6dd7a51b gcc/ada/inline.ads
@@ -1609,7 +1609,7 @@
1ca4917ec97b07cdbb84231a4031459b gcc/ada/mlib-prj.adb
09b121d079d4cf2c5e847aed3f60f1f0 gcc/ada/mlib-prj.ads
a0302823fb5c039aaceb728d998f5b98 gcc/ada/mlib-tgt-specific-aix.adb
9c3f799dae1f83d54e7082d7acf0556f gcc/ada/mlib-tgt-specific-darwin.adb
1ba3191784ad972a698d586bfc6634a3 gcc/ada/mlib-tgt-specific-darwin.adb
d85ee389e88599fbf0040644f24b518f gcc/ada/mlib-tgt-specific-hpux.adb
b6cdbc4968db2c3f4f0061ca3c3fbe0e gcc/ada/mlib-tgt-specific-irix.adb
04b87a44c81606718db983702c64a32d gcc/ada/mlib-tgt-specific-linux.adb
@@ -2606,14 +2606,14 @@
052ff25c8f75c86c4ec9ed732a63be0c gcc/c-aux-info.c
679ab62bc94d1d2297cdffb246f3f55e gcc/c-config-lang.in
9da36b38f444d5090ebd2e377b1770bd gcc/c-convert.c
6ccf71c785d5287f5644062aa458f7f2 gcc/c-decl.c
282179c77b97931de517f3dde2ad91f8 gcc/c-decl.c
7b6ca63efd5fb2c3125f9d044b219a1b gcc/c-errors.c
347dddde215c0e01114300ecad3dc239 gcc/c-family/ChangeLog
7eb7cc406e0c3fa7a147fad7deaacccc gcc/c-family/ChangeLog
6657387e60e744730925cc43378dd8dc gcc/c-family/c-ada-spec.c
937a6f95b3815b61962a56f8cfdfc10e gcc/c-family/c-ada-spec.h
b5af48ddb620cdf93fcc46aadfcf5f65 gcc/c-family/c-common.c
80a8a1832df5264c1c9dc1deb38f85d7 gcc/c-family/c-common.c
9f8577cc058a651572b2516be8fa382e gcc/c-family/c-common.def
e76a717b629854546b125ba867670900 gcc/c-family/c-common.h
f13f6a861e1d926c5192953827beb6ab gcc/c-family/c-common.h
0a537dff1f1d39d720495554000e287e gcc/c-family/c-cppbuiltin.c
63fb10b663f4ffd7fa37d05f41942dfb gcc/c-family/c-dump.c
b6f4271acbd3a4c4f92f42ac7de9ced7 gcc/c-family/c-format.c
@@ -2636,15 +2636,15 @@
5468a3ad6eec5520adaa6f7576b3e42c gcc/c-lang.h
36f3dd45a725109eab42c712b96f9dfb gcc/c-objc-common.c
7b8721dfd2c835f62c1876b6d8ff71ae gcc/c-objc-common.h
c1548104f4375f737f34c7db5690e635 gcc/c-parser.c
604f4dfc9d68fb1925591da0322811f9 gcc/c-parser.c
6a7719351e4f64becb2437ab94b85c37 gcc/c-tree.h
51e2411d756913e39ad946aef8fdebee gcc/c-typeck.c
0c12510ce4639159e731e2de414ab8c0 gcc/c-typeck.c
59b68711cbda02bfc54cf632bd2d43a6 gcc/caller-save.c
f978a14d2330fc918f4c3311a236719c gcc/calls.c
2305113882fd3a974b989f2f4eaf7653 gcc/calls.c
96b9d2dd799a786f4bf26b0d924c4d41 gcc/cfg.c
06f560a17ea6b9af6e8657241c889a60 gcc/cfganal.c
75eeec62df645a851e972b99a26f3608 gcc/cfgbuild.c
f676b202d98874c3b6bcc95ee2ca0109 gcc/cfgcleanup.c
4d2d8837f86b1ab6de4841dadf0d02f0 gcc/cfgcleanup.c
c49f15b0473020f1e7e9e949e211fc06 gcc/cfgexpand.c
9829864058984214f47fea27b0788357 gcc/cfghooks.c
215992457e5d38b7d46a470070f86dab gcc/cfghooks.h
@@ -2654,7 +2654,7 @@
132ee5dd06cae63a2fb00bde09fbcc25 gcc/cfgloop.h
c73762ab21a51056f00ac05b63325199 gcc/cfgloopanal.c
65b2ddbdc13e9f30854f0c98143cfd09 gcc/cfgloopmanip.c
93c2aacce7c07bd58b70b05116c8822d gcc/cfgrtl.c
64cebe3f4e80debad4488d3fd897ebc8 gcc/cfgrtl.c
ea4d1b6d48448455c243282fd8b7aa24 gcc/cgraph.c
936008bea0c2e22dafc37b38161e1013 gcc/cgraph.h
a3d7ae8a0c28f8de017f836fbbc69e43 gcc/cgraphbuild.c
@@ -2665,9 +2665,9 @@
8f8cbfe8fa2180f53637b9dff36a6e08 gcc/collect2.c
d7ae3850d58ff7c37ca5da1b611ae9f7 gcc/collect2.h
51fcf7382982cd04451ba82b27660973 gcc/combine-stack-adj.c
e1128e02148c071138782034a1c30272 gcc/combine.c
56200c3157873b084229ef3c9e467070 gcc/combine.c
3c3d050dd9c011bf7350c5d664059ccf gcc/common.opt
b10f7e4b7e5b0226f6f2cb4a6f94f97e gcc/compare-elim.c
7cf8f17bc728744e930f4c7b3d3a496a gcc/compare-elim.c
162c077c493d89717647c605b5b81996 gcc/conditions.h
db4428c11e7b966c368d151f08dce3f2 gcc/config.build
59daeca6ac00695d1d9baa35a38f4c41 gcc/config.gcc
@@ -2693,7 +2693,7 @@
fdde9c30b3a0da0b58acabeea56ed61e gcc/config/alpha/host-osf.c
07faecc563137b07c7644a16356eeff5 gcc/config/alpha/libgcc-alpha-ldbl.ver
d7c6bd97020f15a378d91b22803e0a98 gcc/config/alpha/linux-elf.h
b9f5ec212697037419cf014c54e52ca4 gcc/config/alpha/linux-unwind.h
7c21706bd75aa13e4fdb029c4746457c gcc/config/alpha/linux-unwind.h
f121960d5b94ab0fd55d39eecf7474f6 gcc/config/alpha/linux.h
445a01771204e4de0d145f0d3c4bc10c gcc/config/alpha/netbsd.h
44ff4f798849a8da6d850fcc86186d32 gcc/config/alpha/openbsd.h
@@ -2737,9 +2737,9 @@
b2fe2f37a71b35c1231ef8bc8d8af028 gcc/config/arm/arm-modes.def
999a71a7cdf736703536f9e2457d4b25 gcc/config/arm/arm-protos.h
d2d6092446e8ce105dcbc590e1b129e5 gcc/config/arm/arm-tune.md
2ba7a1868df2393e3988250536f64d4a gcc/config/arm/arm.c
1c0d39c4743f6c866dc773ab9a719e24 gcc/config/arm/arm.c
d8adb69f5d935ea1cd6026048612d487 gcc/config/arm/arm.h
d2098bf45764fefc7554cabe332ebe75 gcc/config/arm/arm.md
ce2008bafae4bfbfccaef7369e392a16 gcc/config/arm/arm.md
593034704e6ae41b226a5a6ecf95371f gcc/config/arm/arm.opt
3e100a448539aab31c3af8bb0d9f5c8f gcc/config/arm/arm1020e.md
6ce550532f1eb772756d2052de0611cf gcc/config/arm/arm1026ejs.md
@@ -2820,7 +2820,7 @@
5e6bf2f3a6e8c67d7f6b7dec799c1731 gcc/config/arm/t-symbian
8f24c8370b8705273fc1ac94311e713d gcc/config/arm/t-vxworks
a8ed8ea6262e4a212b2d0a716a712d91 gcc/config/arm/t-wince-pe
ba51586d7af2d4a0f2018ef8bd087cea gcc/config/arm/thumb2.md
78f83107f7aa99beb8d5001bb077c1d2 gcc/config/arm/thumb2.md
2cb94f3be777cbf153a3986950ac2025 gcc/config/arm/uclinux-eabi.h
3ca956ca72cbb18fc516d5d665a740f6 gcc/config/arm/uclinux-elf.h
332508926dbef51495f6e98126b23c91 gcc/config/arm/unaligned-funcs.c
@@ -2834,15 +2834,15 @@
57f22728b34efe0937f1cd5ac307bc48 gcc/config/arm/vxworks.opt
e83f5fbee3292540388507acfe709d3b gcc/config/arm/wince-pe.h
c7b3519fcc9ce561c6804e7b4b2d240f gcc/config/avr/avr-c.c
829fb4a9693eb9b1fea22e0fa0ff3a2a gcc/config/avr/avr-devices.c
e47c7f2aa11ce4e2a613e96abcf6229e gcc/config/avr/avr-devices.c
6503e799acc307e9ac6574a545453bf4 gcc/config/avr/avr-protos.h
3a0e398085ccfa7cd38ba70f6868919d gcc/config/avr/avr.c
7fb02ebfe226dcfb4d562434072623c8 gcc/config/avr/avr.c
f44ff460e4bb27d085387dfcb6086864 gcc/config/avr/avr.h
e0618f30e87b21371cf5897f09b8b2ae gcc/config/avr/avr.md
86ab881c579da76a8b84f6117a833669 gcc/config/avr/avr.md
de2d0c050f2ec200ea340ae9e3ca5bb9 gcc/config/avr/avr.opt
fe99b85e66ca6b0da8a6c0ff2840a961 gcc/config/avr/constraints.md
335dbf2e7038f5060f05b1b0ecae3223 gcc/config/avr/driver-avr.c
d8050883a356e1ce2d35ea58b7b9a9ce gcc/config/avr/libgcc.S
73c895623354cb6c4303de1534b02a64 gcc/config/avr/libgcc.S
74914a6cabd96e5a30dcf174adf81ce0 gcc/config/avr/predicates.md
c8f4329d7e38c1ebe3b14b92f23eabfc gcc/config/avr/rtems.h
c9b90ef1e1e8c97dd73c9c7fdb599d32 gcc/config/avr/t-avr
@@ -2903,7 +2903,7 @@
8542b57bc35681f6ee5ae657995b4775 gcc/config/darwin-ppc-ldouble-patch.def
3156d36bafc12f87b010a8f6b2aae72c gcc/config/darwin-protos.h
61cb6163b30d4c052ac59b7196862b16 gcc/config/darwin-sections.def
6c56a619068611d48b659b8e9065f0b2 gcc/config/darwin.c
8702b7508637ec5b4429645eb26f9ed2 gcc/config/darwin.c
6dc67092b1e07888de1cd71b3a0b7abd gcc/config/darwin.h
9d46b34eb7efebbdeb27793dbe1cdd20 gcc/config/darwin.opt
115b4684c185da44373daee5acaeea99 gcc/config/darwin10.h
@@ -3004,7 +3004,7 @@
69fef75a1150bef045be338685f95242 gcc/config/i386/athlon.md
048b86f330647052a832d7d8771b64be gcc/config/i386/atom.md
9bed46c78d80a6628b62d6b992fdff88 gcc/config/i386/att.h
67f428fd19a033b3707c3fb856dbee17 gcc/config/i386/avxintrin.h
fd63da27cdaedfaa67ee04ae3b8f3fd5 gcc/config/i386/avxintrin.h
025ddcaab1b9dfeb3fc899105aff27f4 gcc/config/i386/avxmath.h
eec9e2a95fb0c25fe37dbaa6bb225c55 gcc/config/i386/bdver1.md
502227a7eef62f0d772fc38171f8152b gcc/config/i386/biarch64.h
@@ -3032,10 +3032,10 @@
d317a2b3352d2d3715ed395b12799ba0 gcc/config/i386/djgpp-stdint.h
2d0f17d25cc4f3300d6baae4c2153ada gcc/config/i386/djgpp.h
14330dd11be7ad7b247a2a6fd090aff8 gcc/config/i386/djgpp.opt
01f84c4fb485f7283770f3cb0878cba0 gcc/config/i386/driver-i386.c
77fb6e2956832cf40f5168ddc4ffb7a0 gcc/config/i386/driver-i386.c
010cc2b81959a25f0fc24b13fe6b4811 gcc/config/i386/emmintrin.h
c9989f34f95b734a3936a68c1a525598 gcc/config/i386/fma4intrin.h
21625ad957ca73f902f1d10de76914a1 gcc/config/i386/freebsd.h
e5d7adffd3acd3f3a2be97bde43bd5a3 gcc/config/i386/freebsd.h
6732c667e785ce8779be541da2ebad8d gcc/config/i386/freebsd64.h
dd7f93ca6c922a761a7da97d91de7886 gcc/config/i386/gas.h
1a46a5b7e0f67c0aa0c29f096be6d2c6 gcc/config/i386/geode.md
@@ -3054,9 +3054,9 @@
f1be9e9dbf092b26488d3768a0d21a59 gcc/config/i386/i386-interix3.h
d10868eb41da45bd266e310e1ab4685f gcc/config/i386/i386-modes.def
6c7a6edcaf43b2f0c0197161c990dc87 gcc/config/i386/i386-protos.h
c307d628b5fd2e03b98a8fced2a69e72 gcc/config/i386/i386.c
b288bdf1cc24d8066b856928870f006f gcc/config/i386/i386.c
78fd2f86fde0b0112fe77b94cba54cfd gcc/config/i386/i386.h
d8a8fcb300cd31955447ea8fd07f0d7d gcc/config/i386/i386.md
256acb104ec84907e67c3930b624a207 gcc/config/i386/i386.md
b7be384e6c77089352acc38a3c0d9c2e gcc/config/i386/i386.opt
9afc77cd1227acad39d96a9e4eb59cea gcc/config/i386/i386elf.h
f8e993e2f2a16ad4845111d9380dec85 gcc/config/i386/ia32intrin.h
@@ -3114,7 +3114,7 @@
59b63b053033b45a1ff136d858274f8a gcc/config/i386/sol2-gc1.asm
9e65824b2322c40a67888390481f6b29 gcc/config/i386/sol2-unwind.h
eeaa67f207246c6d81ad2d275d1b3930 gcc/config/i386/sol2.h
a899ff2ea480c79c95ee88edc10c3ac2 gcc/config/i386/sse.md
ddbda9dc2a10b8770d8c91c084290a6c gcc/config/i386/sse.md
6bba0b540111d1aa8e5a67a674cd557f gcc/config/i386/ssemath.h
f5bb5cbfb2610a5db4589a6e33028b49 gcc/config/i386/sync.md
5bc10cb953b5cecf2513acb22abdc07d gcc/config/i386/sysv4.h
@@ -3159,7 +3159,7 @@
9ace79feab9056851c62d498c27250a7 gcc/config/i386/vxworks.h
9be9678b9440b4573826a61cca65378a gcc/config/i386/vxworksae.h
3c0376468119b68b42cbc4383fa56e0c gcc/config/i386/w32-unwind.h
0c0bde9b8703977b853e1468343e1655 gcc/config/i386/winnt-cxx.c
84dc6cb2f4eafbad1bd35af71efb0f9f gcc/config/i386/winnt-cxx.c
51a24dac92b5d2e35a30c56392244a70 gcc/config/i386/winnt-stubs.c
bdabb36d7a4d22af88ce092f6ba440bf gcc/config/i386/winnt.c
5187e9217118c6140976af3d53e060e2 gcc/config/i386/wmmintrin.h
@@ -3446,7 +3446,7 @@
2085e14cf2736fa7611964e0d2f6f0ad gcc/config/mips/mips-ps-3d.md
d66071decb25e459caa3699713f889df gcc/config/mips/mips.c
b77d8c9c6ecdb1e996fe41b82eef4ce6 gcc/config/mips/mips.h
e2e0706363507144b90bc061c3399074 gcc/config/mips/mips.md
2b897ada396ae9b7928f102860065773 gcc/config/mips/mips.md
f93b8243d888d1a60661841ebe3b6ee9 gcc/config/mips/mips.opt
7f520ba1dfc22865b197f4cf48302b56 gcc/config/mips/mips16.S
d89ec08eb5d427eb51287a5321ebd8e2 gcc/config/mips/netbsd.h
@@ -3551,8 +3551,8 @@
a4acf6d7126689bb0974198462b5f93f gcc/config/pa/pa-linux.h
01b8e14468e166bb285428fdc6a20bd3 gcc/config/pa/pa-modes.def
a3697a8f54a48c2d20ecc90c6111dbac gcc/config/pa/pa-protos.h
af6607e6e996860dbff49bfa1dba1bdf gcc/config/pa/pa.c
677e76ccb6f5c51f230734f1002e29c5 gcc/config/pa/pa.h
a64baac18bb1fbf01e4a4ea15d020a53 gcc/config/pa/pa.c
cc8d20b7211203ada7fd8bfe38152755 gcc/config/pa/pa.h
98152f4b0716c8c44449d587ac82c5b3 gcc/config/pa/pa.md
c17a7721fbfc548f190112cc544e0d7b gcc/config/pa/pa.opt
c035cec01bf8f15fc7ccb3d34cdbf2df gcc/config/pa/pa32-linux.h
@@ -3727,9 +3727,9 @@
f1497a515500004a89132462b766bc01 gcc/config/rs6000/rs6000-modes.def
846cb701f3c1dcd5848f310235ada796 gcc/config/rs6000/rs6000-opts.h
78f5accad621133f1b30922e1d648a3a gcc/config/rs6000/rs6000-protos.h
6d1c597548538927ba42ea59151ad662 gcc/config/rs6000/rs6000.c
02b756fe9b587ea1124cbe39246f555e gcc/config/rs6000/rs6000.c
1dca1f45aabfeb33771e12b3187cccfb gcc/config/rs6000/rs6000.h
a1ad7d161cca138ff88b30595d896882 gcc/config/rs6000/rs6000.md
f1c3c5350c5cf1a8dd9a72a709a6a64e gcc/config/rs6000/rs6000.md
713ee03236f7e1f65981248fdb72c5d6 gcc/config/rs6000/rs6000.opt
dc120c9c268863a37518b46f4c31f324 gcc/config/rs6000/rs64.md
5b417581129378039142027ce8602389 gcc/config/rs6000/rtems.h
@@ -3808,7 +3808,7 @@
58a356d909c0e1f2d795a95723cac65f gcc/config/s390/s390-protos.h
a073f6f04b3334ba566ad0fee0df67d1 gcc/config/s390/s390.c
b262a783f371cfe55db510dcff27b6ce gcc/config/s390/s390.h
2a0801f333d2fc670340fab01dbaeb60 gcc/config/s390/s390.md
7268c6749c5efcadf6c103be4d066de5 gcc/config/s390/s390.md
3e70fe6bccb6fb51d9f7e950337e65f4 gcc/config/s390/s390.opt
0f3debf41179406f77530d752d92ad9a gcc/config/s390/s390x.h
d27db5c14836e457a9168b50f7091de3 gcc/config/s390/t-linux64
@@ -4016,15 +4016,15 @@
a600a8d881a87ba720c946b44afa269a gcc/config/sparc/sol2-gas-bi.h
581b4c85b75e1340219be9408df19d6a gcc/config/sparc/sol2-gas.h
f52aac63a51f418e997b3b1f5d8a8991 gcc/config/sparc/sol2-gld-bi.h
ba52d042e551b9570b153444bc787d16 gcc/config/sparc/sol2-unwind.h
6cc9446e0363feeeea7b076fffe7341d gcc/config/sparc/sol2-unwind.h
1e903b4b03317f5b14ca60e82559bada gcc/config/sparc/sol2.h
3c2f1517a352cd5b47b555f13fd1efbc gcc/config/sparc/sp-elf.h
dfd6b2e28545afd0bd9a48b29d04a43b gcc/config/sparc/sp64-elf.h
4e17170225e4c97fa22650f81efb0c19 gcc/config/sparc/sparc-modes.def
47bb24fc3320a9a63883110912765e4c gcc/config/sparc/sparc-protos.h
67761bc088fdb75283babda0b8bf3801 gcc/config/sparc/sparc.c
69172f76967ee5b0d9fe07aefca79fd5 gcc/config/sparc/sparc.h
2bae1199c6e88cca26fca25b32461ac0 gcc/config/sparc/sparc.md
b4b0575c485384924626e31acb25ab7a gcc/config/sparc/sparc.c
3f00e07ed52e6c44d4013984a44e194a gcc/config/sparc/sparc.h
5ea6ba1ea03e78582d813824f6de0fa1 gcc/config/sparc/sparc.md
72634baeb083ea7dfc746aaf34d9fb86 gcc/config/sparc/sparc.opt
e085c3934f5520c64222de26b11c11c6 gcc/config/sparc/sparclet.md
f271a2c5c69010bdc36679b647809dcf gcc/config/sparc/supersparc.md
@@ -4207,14 +4207,14 @@
1d97063af8f557dfaca2e6564266fd03 gcc/config/xtensa/xtensa.h
843e6bdc5b55528fe0f5180eb0ff1e63 gcc/config/xtensa/xtensa.md
5933d388513eca96e9a100854b6156a6 gcc/config/xtensa/xtensa.opt
347775003e700090d113b496d8c62ce5 gcc/configure
85bf5816acb1c9747dcfd00e516ebb91 gcc/configure.ac
7336a8eac7b61e1c8fccb42fc84ff717 gcc/configure
9e0329da4226a1a553271c56c6b9f70e gcc/configure.ac
f4145c6d216cf4656f7542c1ae80cbd9 gcc/convert.c
8e8d379b495b79ad19b6260bb3fc43b2 gcc/convert.h
90f3428f592a4ae39761832a1e47c031 gcc/coretypes.h
6e6832a75a3515a951a684d69b9479ec gcc/coverage.c
1a69bad83c84b193b55d89f3edb77ab4 gcc/coverage.h
3b5c58264f44b1a8de6fb6dab4bfbd77 gcc/cp/ChangeLog
718100dddfaba232a12b7c6b5433031b gcc/cp/ChangeLog
d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993
f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994
ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995
@@ -4237,10 +4237,10 @@
8888c230ee6f25898999373f102db18c gcc/cp/ChangeLog.tree-ssa
7fc479db05bc8403f68254b31eb6e574 gcc/cp/Make-lang.in
7914b121e33a1afd4f18914358ac6651 gcc/cp/NEWS
8a41d025741e42cc5611ddd9067d5fad gcc/cp/call.c
a62120fba4ddcb778e78ba0f545384ed gcc/cp/call.c
c333d7276d59c1b4b8e8826a1cb154ba gcc/cp/cfns.gperf
6378f6e4fd51e667512dbe94be975d88 gcc/cp/cfns.h
c20e45e920496381054820c96d208076 gcc/cp/class.c
01ede36732f5b5a9e45c787cd925ad9d gcc/cp/class.c
cdd7f372a9ce07fcd40d0719e2d9fa39 gcc/cp/config-lang.in
9dbfedb24a322cb80bef35ae305e15f5 gcc/cp/cp-gimplify.c
888a430ff2cf8b49583af80dc1dc4aa7 gcc/cp/cp-lang.c
@@ -4251,33 +4251,33 @@
9ea7c4bee1b75f6ac90bc753c967b056 gcc/cp/cvt.c
dd407a7bc4a9c08f86d6ee3ab06875e5 gcc/cp/cxx-pretty-print.c
ef6170b42e3923e46c71f39d4e8bced6 gcc/cp/cxx-pretty-print.h
2fe2606052d3313be9aa64fc7c85e8e8 gcc/cp/decl.c
93c1a6ac8f00ca43fd72ee82a71ca4ed gcc/cp/decl.c
5626f8be7c0353390d8a2d6e1c647a2d gcc/cp/decl.h
8e66d8e7ccdcdbde64e7a28392b4c574 gcc/cp/decl2.c
763f262ef492bf963d9c312588326af5 gcc/cp/decl2.c
318d7915feb84895a3c5fbb9ea4cae87 gcc/cp/dump.c
88c284774016e33a4bcb2d90c46e3cc6 gcc/cp/error.c
f784aab0d274b156decabef542316ad7 gcc/cp/except.c
0a828a1619e9a402b0ae9d2bd0b5342f gcc/cp/expr.c
3385b1b1e7b77d2818f861256ffdfc08 gcc/cp/friend.c
42e3401e9df0dc8e3fe911a330119085 gcc/cp/g++spec.c
33c9c57a44b7300b0d4b3b701dd5913e gcc/cp/init.c
25b809485ff58de768efc8d08b34a85a gcc/cp/init.c
1b34614409e2eee4e9083d50a2386e43 gcc/cp/lang-specs.h
92c7865bba5180070b781027001435ac gcc/cp/lex.c
278c7d478c09957199dca5890c381b77 gcc/cp/mangle.c
0f7983bd5128b434a535372f0d6f3209 gcc/cp/mangle.c
31ce43045723e25d75091a73a33191ff gcc/cp/method.c
57057dc8197a373999244d24319d867e gcc/cp/name-lookup.c
24bfbd1be808263ea2f1547389a9955b gcc/cp/name-lookup.h
b080bcfe8e8b473de78c2cb0483a21eb gcc/cp/operators.def
8bd11015aa2207e7d205fdec95988749 gcc/cp/optimize.c
f7cc2e25e3346d7caef83b856a17cc34 gcc/cp/parser.c
dc09ae363678e871a15dab701c2b49b2 gcc/cp/pt.c
ca18ae8bb5e354d625e95501d0203adb gcc/cp/pt.c
a33e436e6c8c7e85f2f7102914cc622b gcc/cp/ptree.c
ec9fd182802ef25083e59fec5f0934c1 gcc/cp/repo.c
9ec5e9fecaaafd5ce17967a5192ba39b gcc/cp/rtti.c
fd5f5cd45089983639e85b736ec86789 gcc/cp/search.c
a276a13894bb07b89320890bfa51fed6 gcc/cp/semantics.c
328e6ab559013dd1c70cefa245e4a9e2 gcc/cp/semantics.c
b2ed1bf795ed83999b7d508fcced0630 gcc/cp/tree.c
1280d6af1e7e2b94d1b2b864f6507492 gcc/cp/typeck.c
ef2f07ad9cacc7f05961caa00e88e584 gcc/cp/typeck.c
0adeba48e1053506fd7f66ce4e21b602 gcc/cp/typeck2.c
736d54eb634da9093c0bfb5226215133 gcc/cppbuiltin.c
390df188d4cdaa4ee1ab26a712ecf998 gcc/cppbuiltin.h
@@ -4286,7 +4286,7 @@
3a9c59d59f488008ab24d8c51d2b8c93 gcc/cppspec.c
60d408ed0a679ba429e917d92288a9e7 gcc/crtstuff.c
cb15015d5d537260e1deef96e36cba0a gcc/cse.c
27f35f559d29326bc10df2a798934404 gcc/cselib.c
b4828509eaeaf1d5118d0f0942edc1a5 gcc/cselib.c
461db50af09e9a4655bb2bab245848e6 gcc/cselib.h
1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in
26768e14b3a6d9392b339e6485ca84cf gcc/dbgcnt.c
@@ -4304,14 +4304,14 @@
e7c8667dd3183004847d54fdc202abdb gcc/df-core.c
c88eb0f766097b4bfb58c86c5be1cb8c gcc/df-problems.c
54722aa88cebc30accebe5c611b5d3a4 gcc/df-scan.c
3e0f95b1bdece8e2f3d49e76f307ba60 gcc/df.h
8460b3d1b9738790c28b6671d158d3e9 gcc/df.h
34c2e5b3b622ba755ac7a5fb4b6de3d9 gcc/dfp.c
348ca5583aa3bdcb1d4790a2284d86d7 gcc/dfp.h
5ed3ecb23802f3115b0a0925b934b5d7 gcc/diagnostic-core.h
71296b56d1ee2722d35bfe112318296c gcc/diagnostic.c
c004d715a113bf00b19b5d6dfe11a9fc gcc/diagnostic.c
02f5415206cf90ce78f5325cf12915e1 gcc/diagnostic.def
c2a0f30355d9e7615ac9a7db1fe419c3 gcc/diagnostic.h
46f8c9ccffaf1207801fa02a3bd98f0d gcc/doc/aot-compile.1
b53a6c491af4cc93499a02b879289445 gcc/doc/aot-compile.1
972a80440a00db9edb7d3e88725abd8b gcc/doc/arm-neon-intrinsics.texi
f14bb72f864987edc101885b31399d41 gcc/doc/bugreport.texi
b1ed827e7700a56f82a492748ca494a5 gcc/doc/cfg.texi
@@ -4321,38 +4321,38 @@
6ed911b9535d38ab2eef4969854f0581 gcc/doc/configterms.texi
659435353d984c0085251ab6aece3ae7 gcc/doc/contrib.texi
532efd24ba5590c6aed6cc4fa92638d8 gcc/doc/contribute.texi
28bb758baa6965cd547886f70b0b1e95 gcc/doc/cpp.1
214edce90ea392ab81612a7fd76904c8 gcc/doc/cpp.info
56e07035326157eba20f80311a6f9ac8 gcc/doc/cpp.1
341cbaa596ad6ec290eeb361b04c0af5 gcc/doc/cpp.info
52e447e3b7698ccb7fc517713da92685 gcc/doc/cpp.texi
8462a717da44ca316c8c9ac975457a32 gcc/doc/cppenv.texi
37fecd1315adbdfc9d56f156a5463783 gcc/doc/cppinternals.info
0d2b03f02e220b37329e14a2d006f9c6 gcc/doc/cppinternals.info
27c497524af4e535fe2d9d7d9a9c9e0f gcc/doc/cppinternals.texi
5eccec130ee22df84cf8a172476779e3 gcc/doc/cppopts.texi
fc561d02af6b673b6167c30970c75cca gcc/doc/extend.texi
ee150f91929d3eeab1448e2abedb89f6 gcc/doc/fragments.texi
92fe9a03b38d902d29182f6933a8bffc gcc/doc/frontends.texi
9dd97d635632cf6df901bff0f5a2855c gcc/doc/fsf-funding.7
c3f05f1794f053e8f959205c6a6349dc gcc/doc/g++.1
2748b8a6332103c7ae2994e179fff5ab gcc/doc/gc-analyze.1
c3f05f1794f053e8f959205c6a6349dc gcc/doc/gcc.1
82a1ee656d7074fb8ca2d7c60c49466d gcc/doc/gcc.info
6b537e12309693d56aad04c159e967aa gcc/doc/fsf-funding.7
661fd550f6267045289af977fc144241 gcc/doc/g++.1
87b0ad0472f75a38895a723dc61ef91c gcc/doc/gc-analyze.1
661fd550f6267045289af977fc144241 gcc/doc/gcc.1
e1e567d3b039cf90b40dda34196220b7 gcc/doc/gcc.info
295da9cf03906a81b17a79278225a483 gcc/doc/gcc.texi
9c4fb18498b5fc571c341d0ff19adb1e gcc/doc/gccinstall.info
0efa30c78396bb452447763166697466 gcc/doc/gccint.info
033fc73cc147c518d9701ba6576aa825 gcc/doc/gccinstall.info
1695b6b9c590ca6cfd2147090a7bbfc5 gcc/doc/gccint.info
0641e6c162171d625639a3651b3fff66 gcc/doc/gccint.texi
050ad998227f87ac20989b6491ea7a90 gcc/doc/gcj-dbtool.1
6051aa71628061b1d63ab70f1362707e gcc/doc/gcj.1
5a6336c18aa283e34f13f234e08faf47 gcc/doc/gcj.info
a9909d4681a14cc1762c43e38323abd2 gcc/doc/gcov.1
6589a1a74822f1b979cf419cefb148b5 gcc/doc/gcj-dbtool.1
01d7833b4a76530894da63a34ecbce1c gcc/doc/gcj.1
685f316a540d19c9bc945651fe900392 gcc/doc/gcj.info
83c7abb9cb61e8c7b6db067badb93228 gcc/doc/gcov.1
ff392f8bdd1ac54a2f940024b1c8f5af gcc/doc/gcov.texi
d1e7bf542dc884961d6297884130f75a gcc/doc/generic.texi
375c501c1e08ab8f196cde93a17d2164 gcc/doc/gfdl.7
647e2f6ef5e11b373ddebfad67ff165b gcc/doc/gfortran.1
b2c5d4aa56da8c48c70f55ca26465da8 gcc/doc/gij.1
088efc97f348d470e1252aba1cfee1bd gcc/doc/gfdl.7
59f1b80cc0f28674635da237e5b37e4c gcc/doc/gfortran.1
6d994d6d411b2ff83b73c4073deaf833 gcc/doc/gij.1
d11cc53f481bce5f7bed0f71d7489422 gcc/doc/gimple.texi
290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi
ea3ee59bccab5e12c7d03bcc120f314d gcc/doc/gpl.7
dc89898518b620575b3c213b20a5202b gcc/doc/grmic.1
ec828b53effe7cba0200d86e058a4da1 gcc/doc/gpl.7
c6e23347377998b83e4e830639f4a76e gcc/doc/grmic.1
072f01ef3821b8b5897af5b0e890ad99 gcc/doc/gty.texi
12712ad63a56e9d549562b21b42b1454 gcc/doc/headerdirs.texi
d39e77550eae7fb9f2d5b01ba2ddb58f gcc/doc/hostconfig.texi
@@ -4368,9 +4368,9 @@
4ed7c2b9bf818bd0b707a90a6fe48103 gcc/doc/install.texi
8798a4a6671853841bb8260cf24753d2 gcc/doc/install.texi2html
5407c66b804884426ce94dcac22864d1 gcc/doc/interface.texi
0a5aa360f89d3a89d929c3315b1f5f91 gcc/doc/invoke.texi
eba4baa2dc624dcc640c295b0c90ff23 gcc/doc/jcf-dump.1
9956c4f3427bf19647e3097f13cb20b0 gcc/doc/jv-convert.1
b3b0c47b32478173de250080c6fef6e6 gcc/doc/invoke.texi
2981aae81c04eb3cb652c3bdc986afd4 gcc/doc/jcf-dump.1
f8abb8fc15459ac4d9df95db7d47bc57 gcc/doc/jv-convert.1
01b0dc3ad11961d7eab2d299d15e9672 gcc/doc/languages.texi
e93206b8aca375785fb578b873f15add gcc/doc/libgcc.texi
745ce3259344c93de861035760bcae0e gcc/doc/loop.texi
@@ -4382,7 +4382,7 @@
59848917d17ee0a1e5563a3ab12f469e gcc/doc/passes.texi
a18f97926775a4884a2d1a7fc5941720 gcc/doc/plugins.texi
72136dc6e58c1bb1790f0f25bbaf8897 gcc/doc/portability.texi
42cbc5bbc2d68917a29b1b004803c944 gcc/doc/rebuild-gcj-db.1
dd588ca22cf1530723ada6edf7f77c93 gcc/doc/rebuild-gcj-db.1
7adb0cea8dfbba95045d4c20542d364c gcc/doc/rtl.texi
d65d49dcfee4f97f1aea81855a0c20d6 gcc/doc/service.texi
c7e38e345acc4b0693b64a2eea114c98 gcc/doc/sourcebuild.texi
@@ -4391,7 +4391,7 @@
e73e396dc44a4d651eccafe78c4fe694 gcc/doc/tm.texi.in
38595a90311508099614e7a7e4e4afad gcc/doc/tree-ssa.texi
c4443d757901cf5056062af33cc6ec8d gcc/doc/trouble.texi
f6d1ab4be500f0262d66b6af4d865801 gcc/dojump.c
d70246483c39bec7fa94903310b4b12e gcc/dojump.c
28287ee9d37dd3fdf243f66117dbf752 gcc/dominance.c
7a8c19285b11e38293450c27221051b8 gcc/domwalk.c
79f0d5df1c6564155509816fa0019047 gcc/domwalk.h
@@ -4401,7 +4401,7 @@
e88f24b9626e3a4beef8acee9c08478a gcc/dse.h
184fbd457d996a11e4b258d375350fb1 gcc/dwarf2asm.c
c6a89eaf1ae0e2753ca8dbbf7f4c10a4 gcc/dwarf2asm.h
3940f4f7d4923610c91ce445cc0ae8d0 gcc/dwarf2out.c
64793f52af6116f490c79eb40aae6bed gcc/dwarf2out.c
bbae3febdafe73b829efbd90e26acfd2 gcc/dwarf2out.h
a97614a8590c45503176043a155b75bf gcc/ebitmap.c
5aede90d7380412cbc9521027ec7c6a9 gcc/ebitmap.h
@@ -4418,15 +4418,15 @@
8058d8b5471bb2b849082662cdc195fc gcc/explow.c
eeeba7a170edb655b7dca074badd4d21 gcc/expmed.c
76f94abc1da757d7c8ee22bfd3c09c6f gcc/expmed.h
8a2340569e3f75c989d85db6c28accb4 gcc/expr.c
464cd12e2608ee50fb326539b4dc8ed8 gcc/expr.h
5a8ce6f623195eae07bacdd17b0e2d0a gcc/expr.c
855d7e722d052955bbd6245ce7a84782 gcc/expr.h
3882f6eddeec372246f681f9ae5edc46 gcc/final.c
6b9fd7bb3fdc43029b310b6e3edd4240 gcc/fixed-value.c
f57fd99a821089eaf00eb7374a49a38e gcc/fixed-value.h
2befab2e7fa4d1aafd40beda83773f36 gcc/flag-types.h
93a78e3b43052a982b330e67aa1d1463 gcc/flags.h
ebf06bd1156348bd30464e110a931ec1 gcc/fold-const.c
53320e3da4a5c978d73d9c3f1ff35505 gcc/fortran/ChangeLog
18b9c022e7c5bf2eb5e5b1c45bf6000e gcc/fold-const.c
27e0448f5491465ba27d823f005d0c0e gcc/fortran/ChangeLog
3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002
d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003
bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004
@@ -4442,7 +4442,7 @@
9cf51c8c958888e57268ae77059be801 gcc/fortran/arith.h
028514dcaa073510edb050e3ffa8887f gcc/fortran/array.c
70e200331a2f53233ac222da8434bc3e gcc/fortran/bbt.c
ac4e81dd1c0055d7a254af41b67ce7c0 gcc/fortran/check.c
be2a734071c531c987a73e5f7a37d96f gcc/fortran/check.c
7ec800426e2bd8cc99cfbc298583bdd8 gcc/fortran/class.c
7c7f86a9e45099db8d493ea49228c0db gcc/fortran/config-lang.in
51262a6564b4b2f8c1e9d62bab715ae6 gcc/fortran/constructor.c
@@ -4453,24 +4453,24 @@
0c81fc4e4f824a5b27601ffa8f20b478 gcc/fortran/data.c
8ebaa0809e6142da26506ff1cf8edece gcc/fortran/data.h
003e42e56a47e8b7d6b9cd238b9fb557 gcc/fortran/decl.c
66c5d4ed508340479243120cb15c8cab gcc/fortran/dependency.c
850b7a3e3bb4aafae734db9a9fa3fd5b gcc/fortran/dependency.c
62b70db14e79d6996ce226c6c1acf8c1 gcc/fortran/dependency.h
999c53afcb5a1d573e20268bcee3dbd1 gcc/fortran/dump-parse-tree.c
d981687fdec09733c4c1f249f72cfe8e gcc/fortran/error.c
b942127427a1644094847ae0e03ab5da gcc/fortran/expr.c
1ccc598e347e0d4f1e8bedc16561ba27 gcc/fortran/expr.c
f0b69e96b0061e35d59b9a26708beeca gcc/fortran/f95-lang.c
d26361819b704c4ae03192f47717ad41 gcc/fortran/frontend-passes.c
54455177b152a958a17d0a1cf7098dc7 gcc/fortran/gfc-internals.texi
03378d8bf153c813c5e18825a1bd40c9 gcc/fortran/gfortran.h
65b771ae5c454311c054f867829c469f gcc/fortran/gfortran.info
ed52edb1626d090443d3283ee7110887 gcc/fortran/gfortran.info
0769f9546292a1c9fdbf0e0d3953f05d gcc/fortran/gfortran.texi
bf2ae55a1805638064dd34ca44189bc3 gcc/fortran/gfortranspec.c
60cfd6e8694913e34cbfd8a7e6b2ac13 gcc/fortran/interface.c
096ee8532dc370293337cac9b7ff6eb6 gcc/fortran/interface.c
237117c2c75722d298583ad1b9eae454 gcc/fortran/intrinsic.c
3b42cc59ac91a6f646edfc2f4f318095 gcc/fortran/intrinsic.h
892b1bf273ee23c30279b36a89dc857a gcc/fortran/intrinsic.texi
ba6a52b93660d44a9689ba6fdee6e5a7 gcc/fortran/invoke.texi
7222c64a3815cc69212770603c448557 gcc/fortran/io.c
79c8b5e7d046b6f53a258640a119a476 gcc/fortran/invoke.texi
fa1cdc660e9b01ad076fcde0aac25dc1 gcc/fortran/io.c
9e6e56abc8c6aef5fb8e17d7f6701cef gcc/fortran/ioparm.def
48318f9bae9e1d46d19564d9c3f356ba gcc/fortran/iresolve.c
be589bc91334f8d3c432b970f486f873 gcc/fortran/iso-c-binding.def
@@ -4489,32 +4489,32 @@
4e6f5dad2fe5144f06596869c44697c2 gcc/fortran/parse.c
7f9a85cc646ef91462172bfa9a0a447e gcc/fortran/parse.h
9868a6fd89c92b8f065369dfa64b3201 gcc/fortran/primary.c
cea7c036796769580c939dc53cc905a7 gcc/fortran/resolve.c
f1dc4d243fa8c7c83434cb4099fd5b51 gcc/fortran/resolve.c
579d4a5b8965240226114635e5c4c1b9 gcc/fortran/scanner.c
8f1da4b03fdb8244713537dae062f3ca gcc/fortran/simplify.c
f4adee271f6c19eac372cd2c7c14f8e3 gcc/fortran/simplify.c
34b2cfe33e0d8bc847a7ab545f74590d gcc/fortran/st.c
815b952459ea06bfdc1b7ebbdfbefae5 gcc/fortran/symbol.c
09d349eb89558f21d28f43521f7964bc gcc/fortran/target-memory.c
367e9b10265d192b6375dbb659d19235 gcc/fortran/target-memory.h
345d0119a23d4807a819d5704c9ddba5 gcc/fortran/trans-array.c
facfcec64773463b0c2ab3eb5518c120 gcc/fortran/trans-array.c
dcb550c1f9c3a8cf65b97ccb13a7e939 gcc/fortran/trans-array.h
56987e3dabdb5269adacfdddfe4ea097 gcc/fortran/trans-common.c
36ac526089926c15ca3fa60d508c2d18 gcc/fortran/trans-const.c
79f96a38a9660a5bd87e8a7ca25ac5db gcc/fortran/trans-const.h
5215f2b7b129e41a0cf471959e619a12 gcc/fortran/trans-decl.c
83889e7f72021f5b8445dc91e7053f2b gcc/fortran/trans-expr.c
d4e278201131641827176dbfafd57b77 gcc/fortran/trans-decl.c
ad9a14a622435472ab06e6162fda1f6f gcc/fortran/trans-expr.c
350744255df6917c901f03b3c04f5fc8 gcc/fortran/trans-intrinsic.c
f3cda20e14d84ad7b40a9388725f572d gcc/fortran/trans-io.c
bd84d9784f7264bbed5f91697e571293 gcc/fortran/trans-openmp.c
38278c8f84f4ce8b7d8a0cf361a33f0e gcc/fortran/trans-stmt.c
06664db87e20dd671a55baa885098f26 gcc/fortran/trans-stmt.h
2641e70c4adf5a05f2b7aa6eaa925001 gcc/fortran/trans-types.c
9e1a206b59c2e6b43c8ff880e3909a36 gcc/fortran/trans-types.c
5cb72a095f4b28c1134c8c0d976255bf gcc/fortran/trans-types.h
cc083d269030c76558db5756feae09d0 gcc/fortran/trans.c
515322164030cf5f936482ff7f3bcefe gcc/fortran/trans.h
e83cc8321fe62c08e6d975eaece78b64 gcc/fortran/types.def
dcbfb5f59aa7c840c77285967d94c409 gcc/fp-test.c
b7aaee25eed831dc27788e99c10f4194 gcc/function.c
e963ab20a7a564d78d5a377324335306 gcc/function.c
c750618b7523b664586516ddc4b1e2bd gcc/function.h
0e31e34c346a872e2a195409327ac191 gcc/fwprop.c
c8f78bf1dbb8541ac3d45ae8be3d891f gcc/gbl-ctors.h
@@ -4544,11 +4544,11 @@
1a949f80b2d03a1861593fe575394588 gcc/genextract.c
f6183e8ec67c2b447d2ba68e1ced923e gcc/genflags.c
983c775ab74aca611330eeef76b9833c gcc/gengenrtl.c
1189fd814a151e527260726f91d2c074 gcc/gengtype-lex.c
763f3f6df92826831b02c039f2738880 gcc/gengtype-lex.c
a9c92dbc1b7fa9f0ce4938113c671efd gcc/gengtype-lex.l
098bb2c3a3483df72b400868bfb770df gcc/gengtype-parse.c
963addbdb67486bdb881d28f1d1931cf gcc/gengtype-state.c
204339df64610483846c67bf36b3c04f gcc/gengtype.c
fe1e92881107ecd0e7886e5f5ae0b67d gcc/gengtype.c
ea212752ad3b17a1a0aec7d9a1fc1f8b gcc/gengtype.h
7c394f96934ac1d7da4230096eb9815c gcc/genhooks.c
06336226b5a888eb6ad518a53adf7bc0 gcc/genmddeps.c
@@ -4587,7 +4587,7 @@
c4fa9905583ee2d3bf5bc1af35bb6a0a gcc/ginclude/tgmath.h
8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h
1f7349a34b50f9b1be2a87d026723b0b gcc/glimits.h
df54ce10bf4831474d19b9f383d8ce95 gcc/go/ChangeLog
2337f2c39e28b6ce0e1aa5a6e016a21a gcc/go/ChangeLog
6dd93887b5e454b8329ef29c66c9a85b gcc/go/Make-lang.in
60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc
d7119dae35699bf66ed57ba663486c1e gcc/go/config-lang.in
@@ -4671,7 +4671,7 @@
10df51307aa20084cb1246482207aacd gcc/gthr-tpf.h
0ccb9690179bec648d9fca37271064d4 gcc/gthr-vxworks.h
586036c9b4dfc740cf03ce40da56e28b gcc/gthr-win32.h
a0f69f898f36540bb02c1d323702c111 gcc/gthr.h
f4978b54f1cbf7de1865cf57b8187a6d gcc/gthr.h
e487aace63932878a2c5674dd8c709ee gcc/haifa-sched.c
5e541aa7111bf2672834a6223764a0d1 gcc/hard-reg-set.h
cbc95a511540f0ae143058f4c2f188d7 gcc/highlev-plugin-common.h
@@ -4697,7 +4697,7 @@
7c97b2ae48706809ea6c5d02fe74db76 gcc/intl.h
a1a7d76871df7e6d3d2a84291930df4c gcc/ipa-cp.c
839fe1cfbf8300bfcb0061e666a6db40 gcc/ipa-inline.c
b00c289543908b255626db2372e2ca45 gcc/ipa-prop.c
49669eb47d0b8517dc1cef28fb625db7 gcc/ipa-prop.c
3abe6ef897c2837372abaeb345c51908 gcc/ipa-prop.h
15830c283b5645d9c36253ef7bbe4c63 gcc/ipa-pure-const.c
bb5403d0abb6ef4348a1caf348b1400e gcc/ipa-ref-inline.h
@@ -4705,7 +4705,7 @@
01d533a1f8214693eb4a64660ef4c3b4 gcc/ipa-ref.h
65f4512609777f7b21096c097b2fa0c3 gcc/ipa-reference.c
26e29ea326c0622df98f28a8eb9e7024 gcc/ipa-reference.h
7098180d5d1f1dba7bf6185a0ce80b05 gcc/ipa-split.c
cd2dcaa1625f68062f6b6b40f13038c3 gcc/ipa-split.c
48377aa8d00ba3fe581a778070e53990 gcc/ipa-struct-reorg.c
49ac020087ff165ac13f4cf49c9de2c7 gcc/ipa-struct-reorg.h
8e75786427c4e605883ab4109e458c9b gcc/ipa-type-escape.c
@@ -4722,7 +4722,7 @@
5968e51b753c8667f9fc28e386590d6d gcc/ira-lives.c
7086dfbf0daa3e2101812176fab4e322 gcc/ira.c
2a4cc377bdd112a2473cd0707dbfa414 gcc/ira.h
05588af26758326596d93dc784323e85 gcc/java/ChangeLog
746a4bbc4a7a21f2a5ae91923348e497 gcc/java/ChangeLog
3becfaac793f49e1f52cd74e78172b48 gcc/java/ChangeLog.ptr
32ebed5cdcf7881894c85752621f10b5 gcc/java/ChangeLog.tree-ssa
60711b636d3df3c11c9e9013525e5c43 gcc/java/Make-lang.in
@@ -4752,7 +4752,7 @@
9c6d7a6ca1bf3e8d873315d3112e25c6 gcc/java/jvgenmain.c
22a135899c3b576169ce2b55e0988364 gcc/java/jvspec.c
7d051c7c1fe9463af08dbb6e71805df2 gcc/java/lang-specs.h
073ad5a8ab7a139d7adf83fc40706985 gcc/java/lang.c
1ecc56e61e9ec2de05e60498d6003e48 gcc/java/lang.c
6ab2d40599e0a7d6d0836dcd1b58905d gcc/java/lang.opt
3a740d4a80ea29f620b1e52e7bdb82a8 gcc/java/mangle.c
4ac1cadb98d95a41e69b743852ba1f43 gcc/java/mangle_name.c
@@ -4780,26 +4780,26 @@
83de5c6450456e215a5484083afcd32a gcc/limity.h
91af2d9136d928622306e07dab8db4dc gcc/lists.c
68e167073e5c55afe7edbad1ccbc54f0 gcc/longlong.h
8a89d1993b73a4f10afd6bf5c9a346b9 gcc/loop-doloop.c
7cb5d3ba5b1570e5350c2f3bb111a59f gcc/loop-doloop.c
ea4c6661afafbd885033644f335e3592 gcc/loop-init.c
73a6826cb7925af870a610e01b955cd8 gcc/loop-invariant.c
a8129bfddafb34f2127161a0217bc04e gcc/loop-iv.c
547fc7035aa63c6ac7c8dc11ef941350 gcc/loop-unroll.c
b05ddbe9d690c2e85aa3502c61770c44 gcc/loop-unswitch.c
dae7a9dad7cbbbf6b0b025ed63b7e086 gcc/lower-subreg.c
ff2a009778a57d0d6b5cd11c1625e234 gcc/lto-cgraph.c
13144244abb6f5056c54bd17a0eda797 gcc/lto-cgraph.c
d99bfb2e4a96374b3691792018360d35 gcc/lto-compress.c
59a05eb75c837c5411ca81b5dc06c84a gcc/lto-compress.h
9d434cbf0dc96d36eccb3a7e23ed0f72 gcc/lto-opts.c
c3811f8809e6f8f02f9c0b3f48b2c315 gcc/lto-section-in.c
aa6305508c10a3cc2c32471f6cf4b7d2 gcc/lto-opts.c
85a800fad6a7c2d5701203b44896f368 gcc/lto-section-in.c
786be0e28bae1b328fed6d640fdc710e gcc/lto-section-out.c
4bc69745dd412a2dd09111bdbe9f2fcb gcc/lto-streamer-in.c
a96a0366aa43421cbbcd4ee120d9c14a gcc/lto-streamer-out.c
8e0d0d2fc5525d0da771afb663e5452f gcc/lto-streamer-in.c
d3623893a7fb0022935b5e6c9f650740 gcc/lto-streamer-out.c
495e2d5e31aab05fb48e782f39d357a2 gcc/lto-streamer.c
1222b5929a7eaa21f4a09243f76d038a gcc/lto-streamer.h
307b42525c2e8038d86afc953ce2af4a gcc/lto-symtab.c
2ec865bdfaa65511d08b6e38133ecedc gcc/lto-wrapper.c
2d99bb7d72a27c01bd4eb4c12a946026 gcc/lto/ChangeLog
6fde77e57453f188b9632bf0def43c37 gcc/lto/ChangeLog
764b63d0e29ff1143e23800bfd05e8e4 gcc/lto/Make-lang.in
7a4827ad581d24ff7a347529172457bd gcc/lto/common.c
572c5df0f085119d1988630e6b08e0f9 gcc/lto/common.h
@@ -4809,8 +4809,8 @@
3308318915daf09e7a5d14d81d5aeb1f gcc/lto/lto-lang.c
daf0146bf26b710c01f2c96c637b4733 gcc/lto/lto-object.c
df15d1e6e20f75fee122de16c865ac8e gcc/lto/lto-tree.h
ca720c37e065a3568f2f377c1df609eb gcc/lto/lto.c
b193ab18239fb289cdf46e491e26359c gcc/lto/lto.h
23d7a0286a0979f63914b4b0d54ef18d gcc/lto/lto.c
8f8f293e44fe96a850902d4b0d858ee0 gcc/lto/lto.h
b749a14a372e086752e053a2a1efe28f gcc/machmode.def
0a6ba201636452fff0b88a4afbfedd02 gcc/machmode.h
c165c82c0c0a11e7c4cbaeafd51d62b3 gcc/main.c
@@ -4824,22 +4824,22 @@
2569a0ab9b2c9f2c2b8e980aee6fbbe3 gcc/mode-classes.def
c94b298ce789bdbe8c1567a97f84f1ff gcc/mode-switching.c
68b445fb94d50bdcadb23ceec41a7b59 gcc/modulo-sched.c
9ee2fb4184a4e92d91dc1fc0c41a5d6e gcc/objc/ChangeLog
f00f42514f4b1ea5e8395de9bddd52af gcc/objc/ChangeLog
19a9ac7c351a45f2cccaac7ee91d17dc gcc/objc/Make-lang.in
fe024d26a95c88cfca300c3950577cd2 gcc/objc/config-lang.in
0097a3df91b144aae7c5cdce502e2964 gcc/objc/lang-specs.h
0323af2576058c96b6daf8e29792b39c gcc/objc/objc-act.c
e8ec0ebb8f15b64c7c4be7bba701212b gcc/objc/objc-act.c
3a91933a43234a9a293164b642790db0 gcc/objc/objc-act.h
4fa235c0423fb4fbea40f6172cf95e0f gcc/objc/objc-gnu-runtime-abi-01.c
3e7e0da7717d11287a988b5b2c565b7d gcc/objc/objc-lang.c
352760ebabcfdd6a65a375e66368b63a gcc/objc/objc-next-metadata-tags.h
d18372e8210fcc548f10bf876ae46e44 gcc/objc/objc-next-runtime-abi-01.c
4d296c83740a639282cec193e0b794bf gcc/objc/objc-next-runtime-abi-01.c
117159dd174df2e1abed747fd7ccfed7 gcc/objc/objc-next-runtime-abi-02.c
a96dc8d44a60c8d80c25fca3238eeea6 gcc/objc/objc-runtime-hooks.h
bb78ee16585640214dbdb4c191da66e0 gcc/objc/objc-runtime-shared-support.c
1ae7e479bdfca5607a4f7e5e5ebb2175 gcc/objc/objc-runtime-shared-support.h
b01db02e74b154a00d95734e40fab04a gcc/objc/objc-tree.def
d2ae859f11e25659ad7f8273f1165b2f gcc/objcp/ChangeLog
28c1d96f3b2363d1ae6b1f113aa9ffdb gcc/objcp/ChangeLog
6af27a36059b41023e28a4b87472ec31 gcc/objcp/Make-lang.in
5389b45f058124c267c4cd1815a0b7a9 gcc/objcp/config-lang.in
12b71fbafaa2d4d0f413d60abd7b80c8 gcc/objcp/lang-specs.h
@@ -4849,7 +4849,7 @@
f4a5305b0a50e36a4f04ce5830518533 gcc/omega.c
df3c8a46ec9181c0c65e2b3e953dd1e2 gcc/omega.h
3060d3a03a949874efe08bf7209a3936 gcc/omp-builtins.def
a445c0e7a4c74f7e7a3d29156cb57e80 gcc/omp-low.c
45733dd36ee078195376fc9699567e7f gcc/omp-low.c
cb6779a9b0eb89e85066ff32337675be gcc/opt-functions.awk
ecb17bb0f21652aff510a738b9235bbf gcc/opt-gather.awk
4f41ce38476ec14bc6f2aa2b81241b2e gcc/opt-include.awk
@@ -4870,7 +4870,7 @@
927c74e232137155815283932fb89ead gcc/plugin.c
3d30527cefb69b5cd6c84cabdc080df2 gcc/plugin.def
556fd102f801561a9b39d1f8b3442096 gcc/plugin.h
9112972e8b8f2aad05543793a43b14ae gcc/po/ChangeLog
5735c4930a42b9cbf033147aff7c8af0 gcc/po/ChangeLog
429f12f170c4b9bf4a8d08f55a04c52c gcc/po/EXCLUDES
195d629b3eaba91c5c673c633a738018 gcc/po/be.gmo
c3bd15e0aad3dd3d7802fe9febeb4781 gcc/po/be.po
@@ -4890,8 +4890,8 @@
437799d860768177da314aa1c2780e3e gcc/po/gcc.pot
734e9e8100c8e546819336b663ff8f07 gcc/po/id.gmo
ce9e11fb940899e3fe853fb97906124e gcc/po/id.po
30b85d9eeb6e849b2813eec41dc4203e gcc/po/ja.gmo
58bc29b0875a9841b86dd651549611a1 gcc/po/ja.po
beec906450eab9193cf30f5b65a4343d gcc/po/ja.gmo
b409756e86dfaec8700d9d2d1b1aa2e8 gcc/po/ja.po
e61b244a76db91b4733fe8b37ec5598e gcc/po/nl.gmo
5de8018d610488a4eac4ee642d3d3062 gcc/po/nl.po
63312e76df44e52df84d781bd3460626 gcc/po/ru.gmo
@@ -4921,7 +4921,7 @@
f7fbbd0091aa1772e64f33a6fd35cfc8 gcc/pretty-print.h
332f25aa62704936b68b27314d5d4b0d gcc/print-rtl.c
b5bbf21582936503f8436783e6766e0e gcc/print-tree.c
40a8e2f27c6abae68e34e62989113ebd gcc/profile.c
1744b30451e40140406a627d387cd322 gcc/profile.c
352410fa9de113473a4e5d65d6bff7a6 gcc/profile.h
d72c829e66931e59f9c8b9d2b50dccac gcc/read-md.c
090e44624faab4fd4f913c4abad46129 gcc/read-md.h
@@ -4930,21 +4930,21 @@
6ca173e103d3ea7b0968df85b546dc21 gcc/real.h
a3f83f852bd9adca4a0c2a391faecc5d gcc/realmpfr.c
4beee08e0077bcf6bb8233ef9362133f gcc/realmpfr.h
985ff18e218de16eac57b8dc98cc7e2b gcc/recog.c
14c85cf3070aa73de0d7040b9883a712 gcc/recog.c
e7c3862c2156f77ee9cfa1fc965ee0da gcc/recog.h
43e7bd6fbb3d4ceceb06dba95c9443be gcc/reg-notes.def
bfe8c4ef4daea6ab94ae8f049bf8edd7 gcc/reg-stack.c
2933f37d4340da52039110141c0837d5 gcc/regcprop.c
d9442e645264438bcabd42b397ff514c gcc/reginfo.c
7a97ca71d7d99da0df330b64d6e7a55f gcc/regmove.c
009e89c8cb6efb1788d65dffecea8abd gcc/regmove.c
3eaca29c220d94536761ee4d954939bc gcc/regrename.c
300834584c32af810fb8c0450bc9d3ff gcc/regs.h
2a27e5b369f1bc5f5b88f83643967323 gcc/regset.h
390ef2e70092f68d4c0b63fcc94b4bd0 gcc/regstat.c
68ad9d0663d20921620e1323336c0ae0 gcc/reload.c
86ca9950401fd798cb392569810bcbbe gcc/reload.h
1b79932cd8d82802168ce43372bbdc85 gcc/reload1.c
c7a8e6bad9f498c994b63e435cc1e10a gcc/reorg.c
2c176264572e0473cf77325a91ad6b85 gcc/reload1.c
1b3f964068298fe83936c230b34d41ea gcc/reorg.c
ac7ee2aa70adfb615a850a00fcab8299 gcc/resource.c
7b57637aae42041a3edca410562494ff gcc/resource.h
375a0905c347c684abfe27a90658cd77 gcc/rtl-error.c
@@ -4957,7 +4957,7 @@
b56896a8e971ebbb5f3fa02c76b02333 gcc/rtlhooks.c
24ba5b5969099d08590a4a0f81e13667 gcc/sbitmap.c
20c919ed85979121f1c5b80f875eb049 gcc/sbitmap.h
91a742cb1af073c660701f4d3e5e2386 gcc/sched-deps.c
702c7fe4cef1b6a2f71c50bb2902ef9a gcc/sched-deps.c
230b6d1f48af4f3535de8a3bd16d9eac gcc/sched-ebb.c
4800b01e618b3bef342426df7d6a5d08 gcc/sched-int.h
884e8e333bd3462474bf64958885c766 gcc/sched-rgn.c
@@ -4972,7 +4972,7 @@
32c2071cc9705b499f5917935cacd83f gcc/sel-sched.h
a98e6d6dd3d5f26a6ac0c36735740747 gcc/sese.c
3bf007597a1f89f1272c52b85eabf9f2 gcc/sese.h
c28a40561b663171ba9c18e3f0434066 gcc/simplify-rtx.c
f3642dc980fa993c2cd52e731ae25c6d gcc/simplify-rtx.c
9d9ec4d8cc5360d6be1d37ebc30ef605 gcc/sparseset.c
d401fe3058db6b68c515e587a196e323 gcc/sparseset.h
d2c3b7023d5f7846966a413e13012642 gcc/sreal.c
@@ -4982,8 +4982,8 @@
676a1d90be632e3095720341b2cf2616 gcc/stack-ptr-mod.c
f8e09de1c034cba326a3e2756e3941b6 gcc/statistics.c
c8abb3f3323eac8780b7df9a60294b16 gcc/statistics.h
0b8085172da75d86e72f510524cabb05 gcc/stmt.c
fc10d4a15b11adb4c246c0be159141b5 gcc/stor-layout.c
b016be118caa789c1dd4f1e639ce2f36 gcc/stmt.c
fb664a8b82509ecb5dea78f4d3a74713 gcc/stor-layout.c
5c74ed8c8a735c38fbeabdc88aeeffec gcc/store-motion.c
b8d54a38e425b7ff29e8a3e6e7051d52 gcc/stringpool.c
68134ff8f2592c0ffa0ab82c7bab4ca6 gcc/sync-builtins.def
@@ -4995,7 +4995,7 @@
a12585b1a3778412dea13361901483d2 gcc/target.h
4e6f30cfb19b0d9a9d76c762cbaaf252 gcc/targhooks.c
a07522ea6f6266a3f1a4c81fa1a8870a gcc/targhooks.h
1f1f6f1f9f5f476b30254eb2c6cb1ce5 gcc/testsuite/ChangeLog
41021e301d64762576c51ee2e4296eeb gcc/testsuite/ChangeLog
bf09a3a4b2844c1427e18133bf8c4848 gcc/testsuite/ChangeLog-1993-2007
0cfd18f5e11308d47955263801f31753 gcc/testsuite/ChangeLog-2008
60d3faaef4bf51b170759743d2081977 gcc/testsuite/ChangeLog-2009
@@ -5009,7 +5009,7 @@
5794a860cfcbee663fe76cdde0c7b0f5 gcc/testsuite/ada/acats/ada95.lst
4004844198395fe50ecb798ed5d30f4b gcc/testsuite/ada/acats/elabd.lst
bb4e4f9d3c0e72730e0bf397d375689c gcc/testsuite/ada/acats/norun.lst
d5748b449a081324237ae22a21f32a3f gcc/testsuite/ada/acats/overflow.lst
17a66c0b337fb03b6f449227ed33297c gcc/testsuite/ada/acats/overflow.lst
89d78b2267a12b1d99f90946e3ec2b22 gcc/testsuite/ada/acats/run_acats
86f702a649914827433bcaec1a34b7fe gcc/testsuite/ada/acats/run_all.sh
6467abb463602aeb04583b3822f653f4 gcc/testsuite/ada/acats/run_test.exp
@@ -7734,6 +7734,8 @@
8dbc3891adbb8c401bc580982af3d5d7 gcc/testsuite/c-c++-common/pr43690.c
120b592aa97ef9bb93a55a83c6706437 gcc/testsuite/c-c++-common/pr43942.c
e5dac4a7e6c7504fd5ac94e76d67cb99 gcc/testsuite/c-c++-common/pr44832.c
18b60e1f921ff729a499063148e1ac35 gcc/testsuite/c-c++-common/pr51768.c
e9ab7e8194d7254751245044f83dc8be gcc/testsuite/c-c++-common/pr52181.c
b0ba836310044e7b419ef679f0b48d6f gcc/testsuite/c-c++-common/raw-string-1.c
554e7071d2525351de28445762633866 gcc/testsuite/c-c++-common/raw-string-10.c
1183cc89c3223291d7813cf8d78ef4d6 gcc/testsuite/c-c++-common/raw-string-11.c
@@ -7869,6 +7871,7 @@
e2fc150d746b05b2efcbaf25872d2c83 gcc/testsuite/g++.dg/abi/mangle46.C
8d713f873b380f7cb5bf13fe8019b486 gcc/testsuite/g++.dg/abi/mangle5.C
91c28df1b9796be812f1b833d650c6b1 gcc/testsuite/g++.dg/abi/mangle6.C
3123b0b058d5b2251cfa989144c05ce1 gcc/testsuite/g++.dg/abi/mangle60.C
3ca84e7c044b9a2c08f1b773db1d5f4f gcc/testsuite/g++.dg/abi/mangle7.C
cc6afae4c242d6e5a9083cec1a9a9907 gcc/testsuite/g++.dg/abi/mangle8.C
7e14b0353ae53e5a5a8bcf850c4fcbc9 gcc/testsuite/g++.dg/abi/mangle9.C
@@ -8179,6 +8182,7 @@
33e42f0827353a8bf3819dd214a6a9a0 gcc/testsuite/g++.dg/cpp0x/auto22.C
42d00e4a58d35527c22193fc3509fae0 gcc/testsuite/g++.dg/cpp0x/auto23.C
9a6d411c88e77de58c437683ee1564d8 gcc/testsuite/g++.dg/cpp0x/auto3.C
1da40dc7f3b9475b7f46875e25c9423e gcc/testsuite/g++.dg/cpp0x/auto31.C
8754523bb1846890e4b8d81b2740ba1e gcc/testsuite/g++.dg/cpp0x/auto4.C
fd8b8fe7fe5a5692d13a285ecdb8f37d gcc/testsuite/g++.dg/cpp0x/auto5.C
8556d6750a30e8542f3922be9b89a92e gcc/testsuite/g++.dg/cpp0x/auto7.C
@@ -8344,6 +8348,8 @@
75bedaba5388b7321e77b97d8abc1697 gcc/testsuite/g++.dg/cpp0x/decltype3.C
e537c669a0adc873746f19f96ff97585 gcc/testsuite/g++.dg/cpp0x/decltype30.C
5ca28bd7d6d408a3a3af8f74d1a2e6ba gcc/testsuite/g++.dg/cpp0x/decltype31.C
ff80e8b3673109dfd5517500442ce21c gcc/testsuite/g++.dg/cpp0x/decltype35.C
2d5052759aa2157a9fefe3605822340a gcc/testsuite/g++.dg/cpp0x/decltype36.C
279dfeb78dc189adeb256c12c0eb074e gcc/testsuite/g++.dg/cpp0x/decltype4.C
386eaa55c3c1d627d49e5f9e7adec123 gcc/testsuite/g++.dg/cpp0x/decltype5.C
5e830daa5bfe8780960733c15cef7f74 gcc/testsuite/g++.dg/cpp0x/decltype6.C
@@ -8656,6 +8662,8 @@
b8df79d25973d2ff9019cf0b894855e9 gcc/testsuite/g++.dg/cpp0x/pr47476.C
0f202d94aef34455737171792c0ba318 gcc/testsuite/g++.dg/cpp0x/pr48522.C
8a7d0a717134cf294247d67b49791a4f gcc/testsuite/g++.dg/cpp0x/pr50491.C
30e74b9843f8e96cd2ac96f26760eb9d gcc/testsuite/g++.dg/cpp0x/pr50901.C
6bded5f3f0d089908ef44cf3f8f7efa1 gcc/testsuite/g++.dg/cpp0x/pr51150.C
edffb4150e3adee1e7286e8172cde88a gcc/testsuite/g++.dg/cpp0x/range-for1.C
a704049cf608b9b47381e29ee9dbb3fc gcc/testsuite/g++.dg/cpp0x/range-for10.C
8d00d9cdcf8ae387d75c24c7e7e875c4 gcc/testsuite/g++.dg/cpp0x/range-for2.C
@@ -8692,8 +8700,12 @@
cc7ce767124c4feb9f89cd36abd864bb gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C
5e54749e6f262c628ce03df0d95f44b3 gcc/testsuite/g++.dg/cpp0x/regress/template-function1.C
d880abf23fe0f8b1ab0c8d585c1eabd6 gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C
bad79e59820be6016905cb3cda3092ca gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C
391bb16b3c4ce968e26c4551ade921bd gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C
edfc9b308544c77eeecbc033e166eae9 gcc/testsuite/g++.dg/cpp0x/rv-cast.C
4b8e486f3ca7747517b1f00f2f0b5832 gcc/testsuite/g++.dg/cpp0x/rv-cast2.C
2e0bb1d28d2748f848a8b3e9a5e95637 gcc/testsuite/g++.dg/cpp0x/rv-cast3.C
f9b7e932597d55a4496c547972c90934 gcc/testsuite/g++.dg/cpp0x/rv-cast4.C
4a1d911674849aaf2afae9f3e27c4a95 gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
e1aa064c0db45b397cd2d5c1ee71ad82 gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C
fd4a5ef48ec4db67859b598993b7ad6d gcc/testsuite/g++.dg/cpp0x/rv-lvalue-req.C
@@ -8797,7 +8809,7 @@
4dcf73c693bcf98a20be11c01c57fbe8 gcc/testsuite/g++.dg/cpp0x/variadic100.C
15c23646cf91a9affcde90370c5e4692 gcc/testsuite/g++.dg/cpp0x/variadic101.C
6a5f8e1238977ed2ff38f73424862533 gcc/testsuite/g++.dg/cpp0x/variadic102.C
59cfd7f1110f240151216357c43f9bc3 gcc/testsuite/g++.dg/cpp0x/variadic103.C
5f39406d97547d2d3a41f7955b69c1a5 gcc/testsuite/g++.dg/cpp0x/variadic103.C
8e534330807e715a0874870801488bac gcc/testsuite/g++.dg/cpp0x/variadic105.C
c58788f95da16add6e9eaa00de2f9846 gcc/testsuite/g++.dg/cpp0x/variadic106.C
ea20ac20ee3b671a4e27a21651ff43a6 gcc/testsuite/g++.dg/cpp0x/variadic108.C
@@ -9775,7 +9787,7 @@
1a7816a666c363e8410710411e40ce26 gcc/testsuite/g++.dg/ext/weak3.C
165f4d1a12237b9ed8273a7db5e4299e gcc/testsuite/g++.dg/func-args-1.C
ed8a6c94f1bc2e70a324d73a77190040 gcc/testsuite/g++.dg/gcov/gcov-1.C
8a878271fda0c051fbf0d23ab78d7afe gcc/testsuite/g++.dg/gcov/gcov-2.C
afab866e59f46409fb68aa64174f3acf gcc/testsuite/g++.dg/gcov/gcov-2.C
0e241a16c3faf2f0c387bd2978d2b824 gcc/testsuite/g++.dg/gcov/gcov-3.C
2c83bff9a3f14aa6fc5d7755bf82c9b6 gcc/testsuite/g++.dg/gcov/gcov-3.h
a7c093e32d8e0cc08e02c3253748979c gcc/testsuite/g++.dg/gcov/gcov-4.C
@@ -9923,6 +9935,9 @@
d26dc16e551e9c50eaca4ea300e37bd2 gcc/testsuite/g++.dg/gomp/pr48716.C
4b7bfb76d5ef344805effc657aaaeb68 gcc/testsuite/g++.dg/gomp/pr49223-1.C
10d443c30e7bb75800fa9a3216776d1d gcc/testsuite/g++.dg/gomp/pr49223-2.C
49677ee51407e55e0afc592a38787f7f gcc/testsuite/g++.dg/gomp/pr51360-2.C
58fd46a241b6f209a5fd9a57d0833b0d gcc/testsuite/g++.dg/gomp/pr51360.C
2ffe879cb9a8ca77abe039ed17225fff gcc/testsuite/g++.dg/gomp/pr51669.C
d2c2484d4d1236326efc32a01fddaa03 gcc/testsuite/g++.dg/gomp/predetermined-1.C
536359d59fc418a1570a6d8574a66ca1 gcc/testsuite/g++.dg/gomp/sections-1.C
c8fdbed05305ecb29a74eae041f265e9 gcc/testsuite/g++.dg/gomp/sections-2.C
@@ -10248,6 +10263,7 @@
a94d2ff7c7a43d0764a116004fa30738 gcc/testsuite/g++.dg/init/union1.C
a2a29bef6924e38f49965c48ff606491 gcc/testsuite/g++.dg/init/union2.C
3b22bec2d49caa4a26b00f16c19566a8 gcc/testsuite/g++.dg/init/value1.C
801e7374b2202b97ebe96c32d0c8ad82 gcc/testsuite/g++.dg/init/value10.C
a827a35dd447a4d79aa21373dc3c82c4 gcc/testsuite/g++.dg/init/value2.C
f5892df2ecb52226b652c40258f42f73 gcc/testsuite/g++.dg/init/value3.C
90318580a1a76223ffd321c5049365e7 gcc/testsuite/g++.dg/init/value4.C
@@ -10297,6 +10313,7 @@
65aea08882bab12228acc06c61c33a2b gcc/testsuite/g++.dg/ipa/pr46287-2.C
e8c7134cc40956db0ba67738dbd45120 gcc/testsuite/g++.dg/ipa/pr46287-3.C
0a828f86c08497837f067c382a901c9f gcc/testsuite/g++.dg/ipa/pr46984.C
c98ee8fcb28f00bc57648c866212963c gcc/testsuite/g++.dg/ipa/pr51759.C
f1339a059a53b8c932f6dd4870283209 gcc/testsuite/g++.dg/lookup/ambig1.C
fa1ea4ed4c9f1ae996929481bd6de67c gcc/testsuite/g++.dg/lookup/ambig2.C
0e636168c26983f9ef884688bb4917e7 gcc/testsuite/g++.dg/lookup/ambig3.C
@@ -10936,6 +10953,7 @@
a24d7cf3120e5c9c1cb8815c7c1afaf8 gcc/testsuite/g++.dg/other/dtor2.C
639bf05e0524c96ac92d1182ca1e6d91 gcc/testsuite/g++.dg/other/ellipsis1.C
c5b26d15a4924f5e39dad2e8b5b7608a gcc/testsuite/g++.dg/other/enum1.C
c544bdd6560cc758c745269cd7fa1806 gcc/testsuite/g++.dg/other/enum2.C
7228816342090a5efe94d0effa02c5bd gcc/testsuite/g++.dg/other/error1.C
043d322368f652c32c47f921739f2570 gcc/testsuite/g++.dg/other/error10.C
3c4bc8f8209191a16ce6898de421c3a9 gcc/testsuite/g++.dg/other/error11.C
@@ -11018,6 +11036,7 @@
a23d17ae20fd87361daea5c89ea2bf18 gcc/testsuite/g++.dg/other/offsetof4.C
224ce99cb2ab319a808ff530be72314e gcc/testsuite/g++.dg/other/offsetof5.C
19eb48777950ec2ddd6300d9e65a5288 gcc/testsuite/g++.dg/other/offsetof6.C
875d9ac66672e66bf6e0efdd9f6822b9 gcc/testsuite/g++.dg/other/offsetof7.C
d0fbce91ceffe38611bd7fe05b72ac2b gcc/testsuite/g++.dg/other/opaque-1.C
b4568481fda7d8fe66f09f6c78ec5fab gcc/testsuite/g++.dg/other/opaque-2.C
2fdec97c9e8b739bdcdbd33ed78c1d4f gcc/testsuite/g++.dg/other/opaque-3.C
@@ -11634,6 +11653,7 @@
3946927cb1dd0a7ac3d8009e703d00c4 gcc/testsuite/g++.dg/pr46890.C
9c1057b2baef3c7b14a3990a7dab5c62 gcc/testsuite/g++.dg/pr47053.C
7d415c3f086a787fac9c43c2198e69a2 gcc/testsuite/g++.dg/pr47589.C
91af1bf8e0bef02ef0fdef13fea1c20e gcc/testsuite/g++.dg/pr48660.C
ff03ae43e2f7b271b014ab72b2a538fd gcc/testsuite/g++.dg/pubtypes.C
2bcb8e987d41c50dbd1de216296fd071 gcc/testsuite/g++.dg/rtti/anon-ns1.C
7345c9463c7d47c7d425463846af6b14 gcc/testsuite/g++.dg/rtti/crash1.C
@@ -11767,6 +11787,7 @@
9135445bfc294af3cf8b77142f5e8782 gcc/testsuite/g++.dg/template/array8.C
9ff0e683b6d55fee7915dd8f28470138 gcc/testsuite/g++.dg/template/array9.C
b8d7ae2a709e06f2d49e19cfb00e77d3 gcc/testsuite/g++.dg/template/asm1.C
03f049d177796d104aceac695a6617c7 gcc/testsuite/g++.dg/template/asmgoto1.C
63a5e3d5f634ef4eb13aa4a9d62a8cd7 gcc/testsuite/g++.dg/template/assign1.C
479ce6c62d0ab31928edd3bcef27bd5c gcc/testsuite/g++.dg/template/builtin1.C
11d89720e8ea4a5f11553338c13ffab9 gcc/testsuite/g++.dg/template/call1.C
@@ -12821,7 +12842,9 @@
6aad70b4e5ba908ab559e27d7d2bbb1d gcc/testsuite/g++.dg/torture/pr49615.C
0a508430aa4eff5b532a237388ea0851 gcc/testsuite/g++.dg/torture/pr49628.C
70ba1d6e65ff77ad5205e068917704ba gcc/testsuite/g++.dg/torture/pr49644.C
88608a429ee7eb7694aa3d9a538e42ff gcc/testsuite/g++.dg/torture/pr49720.C
5c00c9b8fdccd7fc9f1cbaf152f74745 gcc/testsuite/g++.dg/torture/pr50189.C
20d6e47b06d4cb4840b9270432191e39 gcc/testsuite/g++.dg/torture/pr51344.C
9832be91178ec7c78651fc4d49380a93 gcc/testsuite/g++.dg/torture/predcom-1.C
d28910105d9c9253d94d70eacd5e19d4 gcc/testsuite/g++.dg/torture/pushpop_macro.C
a1b47b9c3e69d79d1895ebc4fd11032b gcc/testsuite/g++.dg/torture/stackalign/check.h
@@ -12978,6 +13001,7 @@
17b2dd8d2a9a3ac4de6f0295ef166de9 gcc/testsuite/g++.dg/tree-ssa/pr47707.C
6872861571c025abdad6c6c70514bc3a gcc/testsuite/g++.dg/tree-ssa/pr49516.C
7981fcbc1fe94927ebef936ad375d62d gcc/testsuite/g++.dg/tree-ssa/pr49911.C
1b5c1a0f49c65052fc81ec925592af2c gcc/testsuite/g++.dg/tree-ssa/pr50622.C
2779bf65ef8edfc896b0cc13e0436b6b gcc/testsuite/g++.dg/tree-ssa/pr8781.C
1774a3db4e8c1c639d06cfd8ba95990d gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C
9d23f883289b6e7849e906dd1ed4d8d8 gcc/testsuite/g++.dg/tree-ssa/restrict1.C
@@ -13017,6 +13041,7 @@
68a4ae73a553291d6955eb71275a7df1 gcc/testsuite/g++.dg/vect/pr44861.cc
d1ef96fc614e0d315e7e981b47a381eb gcc/testsuite/g++.dg/vect/pr45470-a.cc
add1cfbf96f3e44641caf48f126f9c38 gcc/testsuite/g++.dg/vect/pr45470-b.cc
1c0f9bee33babd1810c8b1c90d011c27 gcc/testsuite/g++.dg/vect/pr51485.cc
ec0bb90313e9ca2ccc37960fa89a8795 gcc/testsuite/g++.dg/vect/slp-pr50413.cc
fda97e85e98e00b95c52367f5573f57a gcc/testsuite/g++.dg/vect/vect.exp
38c1d3bcd70aac8e2e1f0e19b075e6a9 gcc/testsuite/g++.dg/warn/Wall-write-strings.C
@@ -15150,7 +15175,7 @@
ea73badcef0f5166a559e07a0c263a92 gcc/testsuite/g++.old-deja/g++.ns/using7.C
e592ac6b9789af1e806b4791c984da05 gcc/testsuite/g++.old-deja/g++.ns/using8.C
10a3890377e72341f4119f4affe2c8cb gcc/testsuite/g++.old-deja/g++.ns/using9.C
04758b6c034e0f163c88d95c2f943d2d gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
9fe968100a8178c8854ee2d2f2404f59 gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
c17ab5a5d39a20786219d5cb72e8a956 gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C
ddd61b85e58b3cbf7cecbf12a7cc6a79 gcc/testsuite/g++.old-deja/g++.oliva/delete1.C
8c0b3f49c2e5d5c224c1e0aae235e1d8 gcc/testsuite/g++.old-deja/g++.oliva/delete2.C
@@ -17025,6 +17050,7 @@
802c88ca60f7d3d80157f529c4b0a651 gcc/testsuite/gcc.c-torture/compile/20110126-1.c
b310af27776ee7d007966334d1444a12 gcc/testsuite/gcc.c-torture/compile/20110131-1.c
6d8d9b8786a768a4f22cf94c38807056 gcc/testsuite/gcc.c-torture/compile/20110906-1.c
d46e252a8e73f63a50c37a7084eb02a6 gcc/testsuite/gcc.c-torture/compile/20110913-1.c
ab32e65ea5976f9083dc8234dae65343 gcc/testsuite/gcc.c-torture/compile/900116-1.c
19f66edc69de3cb6b5ca746e4dc7d9b5 gcc/testsuite/gcc.c-torture/compile/900216-1.c
9c85c5a027876d1435b0499666da5dd8 gcc/testsuite/gcc.c-torture/compile/900313-1.c
@@ -17747,6 +17773,9 @@
80be411937e648306e295f2247a9ca87 gcc/testsuite/gcc.c-torture/compile/pr49238.c
7070244f26aad0afcbea923e85fa6d9a gcc/testsuite/gcc.c-torture/compile/pr50565-1.c
c6a0021c8f7300a681a9fe6ebb5a88ee gcc/testsuite/gcc.c-torture/compile/pr50565-2.c
9bb3edd1c8648f4ed1c226835eb83320 gcc/testsuite/gcc.c-torture/compile/pr51077.c
16b0c8db61d740e42ea3bee30160d1f0 gcc/testsuite/gcc.c-torture/compile/pr51767.c
2a1c8b84e0a48e31007f1adf708daddc gcc/testsuite/gcc.c-torture/compile/pr52074.c
b9e6ce52b90320c1c3803c25113844c5 gcc/testsuite/gcc.c-torture/compile/pta-1.c
ed716c1d1727fc2c748162e0cbc4ee47 gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c
8d869e3426345f0cf8837c5eaafd43b5 gcc/testsuite/gcc.c-torture/compile/simd-1.c
@@ -18231,6 +18260,11 @@
5e370a0ac14ba7635adb4959e123176a gcc/testsuite/gcc.c-torture/execute/20101011-1.x
2753f885fabef60aad30c05f7d0a42a8 gcc/testsuite/gcc.c-torture/execute/20101013-1.c
40f98e273d462f42e775cee266358d98 gcc/testsuite/gcc.c-torture/execute/20101025-1.c
f9e30c9e7cc507f8fd6fd90473194bd9 gcc/testsuite/gcc.c-torture/execute/20111208-1.c
c2e5c5b964de24123be7ac0ecbb5a245 gcc/testsuite/gcc.c-torture/execute/20111212-1.c
24623c5fc489974b00dfa8bf1f6e81b3 gcc/testsuite/gcc.c-torture/execute/20120105-1.c
e7d841d33d9831c1b277bcf34663fa10 gcc/testsuite/gcc.c-torture/execute/20120111-1.c
f072eb423e4101e6249991a45a673bbc gcc/testsuite/gcc.c-torture/execute/20120207-1.c
65f01ac7346bd4d47ed9c1ca94ab74ff gcc/testsuite/gcc.c-torture/execute/900409-1.c
5aefab4daab0bd29ecf2a389f3c44f40 gcc/testsuite/gcc.c-torture/execute/920202-1.c
655936aaf9a63e991a555cbc16738485 gcc/testsuite/gcc.c-torture/execute/920302-1.c
@@ -18731,6 +18765,8 @@
38af67c89878cf408a29338d3b8461aa gcc/testsuite/gcc.c-torture/execute/divconst-2.c
b88415410e81b02068f1474a644bd707 gcc/testsuite/gcc.c-torture/execute/divconst-3.c
0a0fc31962c133c8409a816cab6e4e88 gcc/testsuite/gcc.c-torture/execute/divmod-1.c
9e5a753f71d6979559e6274f0b3bf1c9 gcc/testsuite/gcc.c-torture/execute/doloop-1.c
bed9755f43cf6bcfe197ea6254515cc7 gcc/testsuite/gcc.c-torture/execute/doloop-2.c
5e657aceefd7b81d4869a810c510818a gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
978629e412bb8a67a3521434b6937822 gcc/testsuite/gcc.c-torture/execute/eeprof-1.x
b75081070e5d6cda7c7fa71f2652e5c4 gcc/testsuite/gcc.c-torture/execute/enum-1.c
@@ -19122,6 +19158,10 @@
b8b9cd52b7bd3332adfa8eebe0aa77d0 gcc/testsuite/gcc.c-torture/execute/pr49419.c
ce481e55a55f5dad6cd718b2e2dae542 gcc/testsuite/gcc.c-torture/execute/pr49644.c
5b642c73ae4c4f3845f8035d8ed86029 gcc/testsuite/gcc.c-torture/execute/pr49768.c
595c73124fcac9f4cf5b0249ee76cb3a gcc/testsuite/gcc.c-torture/execute/pr51323.c
770995de6083a82d04458b4cc9be1d5b gcc/testsuite/gcc.c-torture/execute/pr51466.c
f83b0f7d2f04307562d4a5d0153f2798 gcc/testsuite/gcc.c-torture/execute/pr52129.c
786b5fcaefcaf81d136d2c8fa5206f59 gcc/testsuite/gcc.c-torture/execute/pr52286.c
ecfc31f12ce09d6ccbcced04ff04deba gcc/testsuite/gcc.c-torture/execute/pr7284-1.c
89f3c7ee990221eeb33cb08a0772e024 gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
f4610e3bba97324f7005c428fe41e597 gcc/testsuite/gcc.c-torture/execute/printf-1.c
@@ -20049,6 +20089,7 @@
2db175b798b402db35943965c06a4682 gcc/testsuite/gcc.dg/bconstp-4.c
2a750eccaa3ba07ee111ecd8e53a83f9 gcc/testsuite/gcc.dg/bf-ms-attrib.c
461d4b37542c5335f28b617fbd1fe3b2 gcc/testsuite/gcc.dg/bf-ms-layout-2.c
7806a703e02be65eb8d5baf52c63a4f0 gcc/testsuite/gcc.dg/bf-ms-layout-3.c
834e1a771bf8f72b2540f712eb8fbac4 gcc/testsuite/gcc.dg/bf-ms-layout.c
8209e076a287174dd21230043af63d77 gcc/testsuite/gcc.dg/bf-no-ms-layout.c
ae73079289d9bcb4e473ddf768aec349 gcc/testsuite/gcc.dg/bf-spl1.c
@@ -20726,7 +20767,7 @@
9ca3af4c8a508d8e50858641266fef9f gcc/testsuite/gcc.dg/cpp/assert1.c
5e115586c68bc98bb44755b93dcf7068 gcc/testsuite/gcc.dg/cpp/assert2.c
f0208a08f76eb46027b9efd1868411de gcc/testsuite/gcc.dg/cpp/assert3.c
d2979cd0ce1d6751e35c9cd3ed850a54 gcc/testsuite/gcc.dg/cpp/assert4.c
5348df5db5fd0ed7899775f48c82676d gcc/testsuite/gcc.dg/cpp/assert4.c
4917744ef7ecae920674087fbf83423c gcc/testsuite/gcc.dg/cpp/avoidpaste1.c
127f0aa0b3c3af7297abd95719b83459 gcc/testsuite/gcc.dg/cpp/avoidpaste2.c
1d8a3a95741c925f4b6277037a477574 gcc/testsuite/gcc.dg/cpp/backslash.c
@@ -21268,6 +21309,7 @@
436d7cdea36881d243c84b4dd8954a70 gcc/testsuite/gcc.dg/debug/dwarf2/pr41695.c
aed8a14ad050fa3bb6dcc461ff515399 gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c
83803c18131f1320eae5d4dc8c362c06 gcc/testsuite/gcc.dg/debug/dwarf2/pr49871.c
d52bc1cf8711e4af686cbcdd64b53d6e gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
337ebceb6c911008f3d1bfbb3998fcdf gcc/testsuite/gcc.dg/debug/dwarf2/short-circuit.c
6aaaa01ca9cc43bf625ea378892dddd2 gcc/testsuite/gcc.dg/debug/dwarf2/static1.c
6d95f8bcb3ad2847abc2d05a39cb1cd7 gcc/testsuite/gcc.dg/debug/dwarf2/struct-loc1.c
@@ -21346,6 +21388,7 @@
4cd45295229b3c44d306b4f6e40abcae gcc/testsuite/gcc.dg/declspec-8.c
2ac94653a18a4163e91da4bbd91adb95 gcc/testsuite/gcc.dg/declspec-9.c
3016ae80da6e5a215f117a92d2bebb52 gcc/testsuite/gcc.dg/delay-slot-1.c
9dde675b7f82012b3830a262f004cdce gcc/testsuite/gcc.dg/delay-slot-2.c
29bda4ed3cdc847c236fc0ef0888e01d gcc/testsuite/gcc.dg/deprecated-2.c
6a7682aec25c4be0ec245e7870ae8627 gcc/testsuite/gcc.dg/deprecated-3.c
c16572f166422b1e3b52c0e11e374c5a gcc/testsuite/gcc.dg/deprecated-4.c
@@ -21390,6 +21433,7 @@
b59fd600db434af135f39c38e21e2d74 gcc/testsuite/gcc.dg/dfp/pr37435.c
17353eaf91a4f3959fa168324f86f6f5 gcc/testsuite/gcc.dg/dfp/pr41049.c
8f20a249a1cf0ecc405e1799552e1d6f gcc/testsuite/gcc.dg/dfp/pr48204.c
59389f9a6a0db946009dbbe47a66608f gcc/testsuite/gcc.dg/dfp/pr52140.c
0ce0ac37817c465f0711df50b865b300 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-1.c
3882046526a916dcd4cb2db9cfaad397 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-2.c
f81a9ab3a0212214f904c0cc2fe02024 gcc/testsuite/gcc.dg/dfp/pragma-float-const-decimal64-3.c
@@ -21920,6 +21964,8 @@
29cbb3dace50a2db39440a312c796a09 gcc/testsuite/gcc.dg/gomp/pr48591.c
3fc7af6d272851aacce149761f6d3080 gcc/testsuite/gcc.dg/gomp/pr48716.c
57958d723d900c37a089d21688ee23af gcc/testsuite/gcc.dg/gomp/pr49640.c
e586b829c695fbfbbe72ba2d88105ef9 gcc/testsuite/gcc.dg/gomp/pr51339.c
49677ee51407e55e0afc592a38787f7f gcc/testsuite/gcc.dg/gomp/pr51360.c
32d1b4709fce01c7b0f596da5c040f2a gcc/testsuite/gcc.dg/gomp/preprocess-1.c
536359d59fc418a1570a6d8574a66ca1 gcc/testsuite/gcc.dg/gomp/sections-1.c
c8fdbed05305ecb29a74eae041f265e9 gcc/testsuite/gcc.dg/gomp/sections-2.c
@@ -22598,6 +22644,7 @@
d618e883477b7e6f5b49c9142c5dfe4c gcc/testsuite/gcc.dg/noncompile/pr35447-1.c
eebc988665ccd52c01692b6d73fdf1a7 gcc/testsuite/gcc.dg/noncompile/pr40033-1.c
de62560bedebe6711244c140f6361dbc gcc/testsuite/gcc.dg/noncompile/pr44517.c
54fad565fe3a138ace6309838e34d79c gcc/testsuite/gcc.dg/noncompile/pr52290.c
7e17434473e72d99de0e53837884085d gcc/testsuite/gcc.dg/noncompile/redecl-1.c
e4d900a56367f6a536225a27d5f4f5a6 gcc/testsuite/gcc.dg/noncompile/scope.c
bacce3ff1a5219b8aef3929e36521ff4 gcc/testsuite/gcc.dg/noncompile/undeclared-1.c
@@ -23345,7 +23392,7 @@
843d3cb0e354304852e7ddf2aac11907 gcc/testsuite/gcc.dg/pr45652.c
d995db936fc1fbac215f3e98d2ee3b5f gcc/testsuite/gcc.dg/pr45733.c
61fece791305949bf9332138e910f3cb gcc/testsuite/gcc.dg/pr45750.c
f1d50df193d55c514320058f8c278584 gcc/testsuite/gcc.dg/pr45819.c
2260f3e1fdfb62c2b23904b3afacd4d6 gcc/testsuite/gcc.dg/pr45819.c
625619241c8006731b81ca6d31030592 gcc/testsuite/gcc.dg/pr45865.c
f8bd7bccf885be2d8e8faf2887814075 gcc/testsuite/gcc.dg/pr45991.c
08194acad28e8cbc2b07a30791146621 gcc/testsuite/gcc.dg/pr46088.c
@@ -23437,8 +23484,13 @@
cee7e9aebbf42a1e10d45436fcd9ac4a gcc/testsuite/gcc.dg/pr49619.c
c81fad7542fb13b97b0fbfa63560156f gcc/testsuite/gcc.dg/pr49799.c
e9ee47e7bee923f0c90304ef7eaf0e37 gcc/testsuite/gcc.dg/pr49948.c
26dbb2a58a185bfac394a30dd618f10a gcc/testsuite/gcc.dg/pr50078.c
562fc9bb147b19ae8d07d98f074c4b0e gcc/testsuite/gcc.dg/pr50310-2.c
94eb6dc60a555424f3be729359cd1491 gcc/testsuite/gcc.dg/pr50571.c
2c6cc5baeea8764085267ec7119fa53f gcc/testsuite/gcc.dg/pr51408.c
66dc4b0632342d15685db39966e4861f gcc/testsuite/gcc.dg/pr51695.c
32bce0cc13b0bf4cd021fe4477df43f8 gcc/testsuite/gcc.dg/pr51821.c
d26f1947f98c021f45c45dc8f313012d gcc/testsuite/gcc.dg/pr52139.c
8b7d73da2d5d78000716492365a85d5a gcc/testsuite/gcc.dg/pr8715.c
3d08410b2dd57259aa63f0e1c64b376e gcc/testsuite/gcc.dg/pr8788-1.c
be04382a35ebb1cfae1b2168f1693a94 gcc/testsuite/gcc.dg/pr8835-1.c
@@ -23979,8 +24031,15 @@
9bc0d6c51d66b340a9e9417204cd6283 gcc/testsuite/gcc.dg/torture/pr49886.c
e2cb182f6350363bb856331e56e1608f gcc/testsuite/gcc.dg/torture/pr50092.c
f6b9e0ee250b9788360b475a903874af gcc/testsuite/gcc.dg/torture/pr50287.c
909a48db0ddb61f1909898d0264a7a8f gcc/testsuite/gcc.dg/torture/pr50396.c
d97bd039b64c700e3e12601faf698d49 gcc/testsuite/gcc.dg/torture/pr50472.c
37d05c7d2884d1901ad9f80090087807 gcc/testsuite/gcc.dg/torture/pr50723.c
d5834679f39b7f300600a6d633cb5cbe gcc/testsuite/gcc.dg/torture/pr51042.c
83def72f986b98af36a5f4adfd1d286a gcc/testsuite/gcc.dg/torture/pr51070-2.c
dc79e1961cd3bbeb2887a73266e2cabb gcc/testsuite/gcc.dg/torture/pr51070.c
c44de2c160544fd1d2b7ee79340b13aa gcc/testsuite/gcc.dg/torture/pr51106-1.c
8b03d6a5f43a4fa9cc59d927ecb1e515 gcc/testsuite/gcc.dg/torture/pr51106-2.c
56538ecb009f5ee3fc4cf63696964be8 gcc/testsuite/gcc.dg/torture/pr52060.c
2787a730c72c7b3720e7425b62cefaf6 gcc/testsuite/gcc.dg/torture/pta-callused-1.c
0f41d09a9647a1b57f3d8d9707002e12 gcc/testsuite/gcc.dg/torture/pta-escape-1.c
78957add3870afa18d8272a9692ba67b gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c
@@ -24056,6 +24115,7 @@
d8bb03df2fa3671ced8c5eb6958e2575 gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
8ef8a380dd01915fc98e3c80abe469cc gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
fa7217b4e402db46b1d64ca38eb6f212 gcc/testsuite/gcc.dg/tree-prof/pr34999.c
8fbea4871801841e81c791d9f937c05f gcc/testsuite/gcc.dg/tree-prof/pr44777.c
cfb95702d3e9ef5784915df06f4c7a2d gcc/testsuite/gcc.dg/tree-prof/pr45354.c
8404cc2c5f1e56235d09d27dcb67b7a0 gcc/testsuite/gcc.dg/tree-prof/pr47187.c
7e3eedb2513fa61c799eb39a389e4bb7 gcc/testsuite/gcc.dg/tree-prof/pr49299-1.c
@@ -24570,9 +24630,11 @@
ec694ee3546fc431e86f832a26ad192d gcc/testsuite/gcc.dg/tree-ssa/pr47392.c
8d9e4e6d784892d0fb8454ac3e113725 gcc/testsuite/gcc.dg/tree-ssa/pr49039.c
663b7106174eb118a93acae4227f5d0a gcc/testsuite/gcc.dg/tree-ssa/pr49094.c
5bcf939b4585bed2eaa1f0cad9b1be04 gcc/testsuite/gcc.dg/tree-ssa/pr49642.c
38d198e8df50316108a99f1aaf8c8fe4 gcc/testsuite/gcc.dg/tree-ssa/pr49671-1.c
e9cc64884a3a699da2f7e7cf327a0d6a gcc/testsuite/gcc.dg/tree-ssa/pr49671-2.c
a7ccb464de6756469f9d07b427545971 gcc/testsuite/gcc.dg/tree-ssa/pr49923.c
eb3c860d5f9311432576d2c60ba8e833 gcc/testsuite/gcc.dg/tree-ssa/pr51583.c
b401abe742b960f089283a6250bb972f gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
ad87caf2c1ed4d1cf60c4fd0c4427ff9 gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c
ac64c6dd8ae63ff8edd73249fd62a8de gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c
@@ -24590,8 +24652,8 @@
6521b24b797c9a8ae5a5f699c5ade280 gcc/testsuite/gcc.dg/tree-ssa/pta-escape-2.c
62a2528627a222b9eccb8570f8a70e8d gcc/testsuite/gcc.dg/tree-ssa/pta-escape-3.c
923d6d03adf8bcce0dee1b461a6de19a gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
4337d988e2c1c2682c86bf68b156eb2e gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
edbbcff3a14106b2f3714c6144cd90db gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
6b9bf982fad839e63935736b565b81d8 gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-1.c
3fd624224b0db2996158ab49eaa921d9 gcc/testsuite/gcc.dg/tree-ssa/pta-ptrarith-2.c
28117eda866efdc6bea41b2a03a7843e gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c
b377fb4c31906d65575445e72a020475 gcc/testsuite/gcc.dg/tree-ssa/reassoc-10.c
1974243421ee1c1da9685ef1efec8e59 gcc/testsuite/gcc.dg/tree-ssa/reassoc-11.c
@@ -25822,6 +25884,7 @@
a839e38d5fdcecdad410c10f0712349f gcc/testsuite/gcc.dg/vmx/zero.c
a19666095820b8aebc1ef8d84e2f9001 gcc/testsuite/gcc.dg/void-cast-1.c
bfc83046cbd8edb1cd39008443cb01e1 gcc/testsuite/gcc.dg/void-cast-2.c
f935ce5b2021bcbc8a10c4a1346f2b02 gcc/testsuite/gcc.dg/volatile-bitfields-1.c
4f86f41367e187a8eaafc00476f3e985 gcc/testsuite/gcc.dg/volatile1.c
8a64e31e8065a383a559368582719a39 gcc/testsuite/gcc.dg/volatile2.c
9357989e44cd23b5fe7fef931df63976 gcc/testsuite/gcc.dg/vxworks/initpri1.c
@@ -26016,7 +26079,7 @@
658d2597b379d08d8530a08437de5ae4 gcc/testsuite/gcc.target/arm/frame-pointer-1.c
f1109dc2f4b55ae9bee1eb70088acbdf gcc/testsuite/gcc.target/arm/g2.c
7a9170beee6aed6d6c82cfce876aeeb7 gcc/testsuite/gcc.target/arm/headmerge-1.c
421875dc34ff0758cb3e68bc8c94b4ca gcc/testsuite/gcc.target/arm/headmerge-2.c
4b9f02224346043bca551bf81124f90b gcc/testsuite/gcc.target/arm/headmerge-2.c
3081d9bf25aefe6e0c14ca6dde4dbb81 gcc/testsuite/gcc.target/arm/interrupt-1.c
bef9a41d1259115699b989902672b224 gcc/testsuite/gcc.target/arm/interrupt-2.c
bf821309d2cd93b8c0d6b0704742bc45 gcc/testsuite/gcc.target/arm/long-calls-1.c
@@ -27970,12 +28033,17 @@
af020e627d5f93cc2c57a41e3bc37e28 gcc/testsuite/gcc.target/arm/pr46631.c
60541329250f48e1676764a4d6b79d2f gcc/testsuite/gcc.target/arm/pr46788.c
fb28b1407c737ad8fdbcc48df46565ae gcc/testsuite/gcc.target/arm/pr48252.c
ec5b96b8283a62c791f40ad2c7334d85 gcc/testsuite/gcc.target/arm/pr49641.c
f0539a732def6859af7cc0e2116b7217 gcc/testsuite/gcc.target/arm/pr51835.c
d2ee6af6de390e0980ae197e532d7cb6 gcc/testsuite/gcc.target/arm/pr52006.c
3143560976572191d8bba6ba78a45aa6 gcc/testsuite/gcc.target/arm/register-variables.c
8ad9146d832ee4875783406d1578ca80 gcc/testsuite/gcc.target/arm/scd42-1.c
22b6d4635b71bf03bd31344c57b987bd gcc/testsuite/gcc.target/arm/scd42-2.c
0b1dad6cbc0b1b3c2818df2a56668995 gcc/testsuite/gcc.target/arm/scd42-3.c
4cbf78614d6806fb564e8277584708d5 gcc/testsuite/gcc.target/arm/sibcall-1.c
b5530a38437ebc4e86afd97bfb8b70a0 gcc/testsuite/gcc.target/arm/sibcall-2.c
3e7aee3ca3268716b7e56cda15a6ccc3 gcc/testsuite/gcc.target/arm/stack-corruption.c
0c1c53c50cd55371979c695d82c1d364 gcc/testsuite/gcc.target/arm/stack-red-zone.c
152321b1bfa07e69c572a0ca8573c015 gcc/testsuite/gcc.target/arm/symbian1.c
a2a9b9135252a63f30ae15393ececf8f gcc/testsuite/gcc.target/arm/symbian2.c
7474a850002496a75a3fc07be3a92378 gcc/testsuite/gcc.target/arm/symbian3.c
@@ -28017,6 +28085,7 @@
a5ae6ce832244f839b2a2d1c4b66196a gcc/testsuite/gcc.target/avr/avr.exp
d515dee9178016917a0d910959022878 gcc/testsuite/gcc.target/avr/torture/avr-torture.exp
711dbeb0fa76540d40cccfed9dff198a gcc/testsuite/gcc.target/avr/torture/pr41885.c
70b849f57ecf42299230b99b7734dd2d gcc/testsuite/gcc.target/avr/torture/pr51374-1.c
665fba00e27201391ebcd0027b809c02 gcc/testsuite/gcc.target/avr/torture/trivial.c
665fba00e27201391ebcd0027b809c02 gcc/testsuite/gcc.target/avr/trivial.c
797a276a3d69db7addd48a0538341dfb gcc/testsuite/gcc.target/bfin/20090411-1.c
@@ -28917,6 +28986,7 @@
0df5ef30c53dec7183c7eb19bdaa491b gcc/testsuite/gcc.target/i386/monitor.c
a6f8c88f5ffc21bacd41b8da9e685138 gcc/testsuite/gcc.target/i386/movbe-1.c
3b6018764bbd8c0e4bf51fabcdf4a17c gcc/testsuite/gcc.target/i386/movbe-2.c
b8c5a97318d77c38416c5b869f07ec50 gcc/testsuite/gcc.target/i386/movdi-rex64.c
ffec2467b2bfd001c398fb12ade0bfa9 gcc/testsuite/gcc.target/i386/movq-2.c
d6a39ff6bf8e6ed56cce8b26063b6d9f gcc/testsuite/gcc.target/i386/movq.c
bb0703a0cfe126aeba12e7589d46db56 gcc/testsuite/gcc.target/i386/movsi-sm-1.c
@@ -29219,6 +29289,7 @@
be400ddaa3be56c18065c4f1cb7c507a gcc/testsuite/gcc.target/i386/pr48335-1.c
a0e8df751a0532abc2f56fae74b35ceb gcc/testsuite/gcc.target/i386/pr48678.c
2a341a4e00b9beab43e6507b79108513 gcc/testsuite/gcc.target/i386/pr48708.c
6b91856ab23b584615728d7f13562146 gcc/testsuite/gcc.target/i386/pr48721.c
bb87ab78d18ae08971157445a0d0d394 gcc/testsuite/gcc.target/i386/pr48723.c
fc38d9a5cd30a8f8ad24fd4d713b71b4 gcc/testsuite/gcc.target/i386/pr49002-1.c
d8c1e7a902e0d3547ab51654c8df2083 gcc/testsuite/gcc.target/i386/pr49002-2.c
@@ -29227,6 +29298,8 @@
2e80d755d2a256d4ecc3a7da5824a784 gcc/testsuite/gcc.target/i386/pr50202.c
a5c96dd57fe4c44355b0353b56c6df6f gcc/testsuite/gcc.target/i386/pr50712.c
aff7074250516571a07457eace3f2639 gcc/testsuite/gcc.target/i386/pr50788.c
962516c8f0d06ff5eb1f5111aae24e79 gcc/testsuite/gcc.target/i386/pr51393.c
e90dc7f0b1e6d26c11b5224430e328db gcc/testsuite/gcc.target/i386/pr52330.c
e164576696e661ee26f63cd9ff26e463 gcc/testsuite/gcc.target/i386/pr9771-1.c
267203167ae369a7a0f5d3c309117f35 gcc/testsuite/gcc.target/i386/quad-sse.c
7546b9848fc87511b197591eeadaa75f gcc/testsuite/gcc.target/i386/rdfsbase-1.c
@@ -30477,6 +30550,8 @@
d281613e1e3183970ca629642eac35c1 gcc/testsuite/gcc.target/powerpc/pr48053-2.c
b39bd7f66428e1d65fb822c595109da1 gcc/testsuite/gcc.target/powerpc/pr48192.c
b58c990aefcc9e7a51cc889c7dd3e52d gcc/testsuite/gcc.target/powerpc/pr48857.c
331deb022fb3411af7bbfd7fd84612c6 gcc/testsuite/gcc.target/powerpc/pr51623.c
083fc56b861afa57eadeebfd2ce361ae gcc/testsuite/gcc.target/powerpc/pr52199.c
a8228c8823dfd00e4494a51f8b480b8b gcc/testsuite/gcc.target/powerpc/recip-1.c
8cee7131384046b8c9da7286ab1f4aa1 gcc/testsuite/gcc.target/powerpc/recip-2.c
debe2ddf72d7868d90ea3905e1bfa15c gcc/testsuite/gcc.target/powerpc/recip-3.c
@@ -31787,6 +31862,7 @@
2389ef9bbad0239ae7fe8f3877efb371 gcc/testsuite/gfortran.dg/class_43.f03
a5424b709666933176bde11df2edd06b gcc/testsuite/gfortran.dg/class_44.f03
a2ab7309d4930676328311a7cbbc6bda gcc/testsuite/gfortran.dg/class_46.f03
0aac845ed8588f9e5318c66657adcc24 gcc/testsuite/gfortran.dg/class_47.f90
f48ec514d36af5da4cd7d2ecaf2fecdb gcc/testsuite/gfortran.dg/class_4a.f03
1cdeff264ab42a18e9a62a8240bb6081 gcc/testsuite/gfortran.dg/class_4b.f03
a71917dc9c25bd6988fc3f4463693a09 gcc/testsuite/gfortran.dg/class_4c.f03
@@ -31964,6 +32040,7 @@
6379ea9f52715e5223974827dc74eb73 gcc/testsuite/gfortran.dg/default_initialization_2.f90
06c04a7d5e2b39268688e21e38e5b7ba gcc/testsuite/gfortran.dg/default_initialization_3.f90
42b17b3f253062bf47e0ae1b669ef161 gcc/testsuite/gfortran.dg/default_initialization_4.f90
65fe7ec52340e1912cad4c6a808c2f37 gcc/testsuite/gfortran.dg/default_initialization_5.f90
bbef424c1a5a9f9e68f1fe7d83c65947 gcc/testsuite/gfortran.dg/default_numeric_type_1.f90
76039d665e1ef71cfe2721af0afa187b gcc/testsuite/gfortran.dg/deferred_type_param_1.f90
8c2b4ff96da50e855afb293e0f216c76 gcc/testsuite/gfortran.dg/deferred_type_param_2.f90
@@ -32034,6 +32111,7 @@
742bb84abfdbbfff7df1ad0cbbcdfe61 gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90
a465c845b83386e64f2aeccb48b86e62 gcc/testsuite/gfortran.dg/derived_constructor_char_1.f90
36d65cd99e01688bd380279fd0c74558 gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90
55b92643aa69aa9592d82688fe769713 gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90
b1b453f9748d762807a3ed0946f87ccc gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90
f526b672a21d835a7a955488111f973c gcc/testsuite/gfortran.dg/derived_constructor_comps_2.f90
a87c753acb594121c4ff34aed0b37234 gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90
@@ -32093,6 +32171,7 @@
0edb7d4943c28a0b66c9f42eeffddbb6 gcc/testsuite/gfortran.dg/dummy_procedure_2.f90
f383f473d4e4c77eae99eefd8a3c97b2 gcc/testsuite/gfortran.dg/dummy_procedure_3.f90
56548c6971c90ed0377154d643de51a8 gcc/testsuite/gfortran.dg/dummy_procedure_4.f90
62d9ec774253960dbc6d1e91e570480e gcc/testsuite/gfortran.dg/dummy_procedure_7.f90
5e7607096bc0170833ae836938198c1e gcc/testsuite/gfortran.dg/dup_save_1.f90
ed8b3783b559cd46c4ace89e97254082 gcc/testsuite/gfortran.dg/dup_save_2.f90
a6123bf77f221c60e8ae2f81bf6d0479 gcc/testsuite/gfortran.dg/duplicate_labels.f90
@@ -32820,6 +32899,8 @@
33abb10bad4f7df76004cd5a3c5d1b3c gcc/testsuite/gfortran.dg/implicit_9.f90
03d4b04f351724d34253e39b5c55026c gcc/testsuite/gfortran.dg/implicit_actual.f90
2932a51aef4149737f6e8e1cfcd1c916 gcc/testsuite/gfortran.dg/implicit_derived_type_1.f90
a01b887d2f580c8b9f27c132d8de4b00 gcc/testsuite/gfortran.dg/implicit_pure_1.f90
a802a06b4238933f25378c3a8d3d2424 gcc/testsuite/gfortran.dg/implicit_pure_2.f90
2348275de36b4052b5aaeb2ae73a6494 gcc/testsuite/gfortran.dg/implied_do_1.f90
42d282b943d10363c33bec69d3d4f846 gcc/testsuite/gfortran.dg/implied_shape_1.f08
f9528d7042bf84bf037d6e2b109272ec gcc/testsuite/gfortran.dg/implied_shape_2.f90
@@ -32858,6 +32939,8 @@
275ca0fa36ccf915f6d392c94d075265 gcc/testsuite/gfortran.dg/init_flag_5.f90
9864bde111104b43a9312052b7e2e56c gcc/testsuite/gfortran.dg/init_flag_6.f90
3c8074974a2eb14ce7916cbaa5c00a27 gcc/testsuite/gfortran.dg/init_flag_7.f90
da1ca07d70e49c6fe9ac2fcf9629c4c2 gcc/testsuite/gfortran.dg/init_flag_8.f90
47c2ce750b73835866876f7cb37835af gcc/testsuite/gfortran.dg/init_flag_9.f90
ee7692e9dfec9d998965ef8fc4635e2b gcc/testsuite/gfortran.dg/initialization_1.f90
5d99b5f4a72011e63db4cc7aca36967f gcc/testsuite/gfortran.dg/initialization_10.f90
15c26a27db0d5bbe2b60dc71c3e4847d gcc/testsuite/gfortran.dg/initialization_11.f90
@@ -33026,6 +33109,7 @@
8b685da78a172e8df7b455c33b4eb87a gcc/testsuite/gfortran.dg/intrinsic_sign_2.f90
06b142ff77c28e5ad037aebd3cf8f0ea gcc/testsuite/gfortran.dg/intrinsic_signal.f90
ef88aa1dd533ebfe61a7c64077a41a2d gcc/testsuite/gfortran.dg/intrinsic_size.f90
88febfaea080d516b63b22735cd9e4cd gcc/testsuite/gfortran.dg/intrinsic_size_2.f90
db48759b0d572bf666a42ce2084f1138 gcc/testsuite/gfortran.dg/intrinsic_spread_1.f90
22d694f02c4b4c2b0e990ef755be6293 gcc/testsuite/gfortran.dg/intrinsic_spread_2.f90
d6250b74092c1688e1104bb85700075c gcc/testsuite/gfortran.dg/intrinsic_spread_3.f90
@@ -33047,6 +33131,7 @@
6e1095726bcbc85e84cf16b7a8c20978 gcc/testsuite/gfortran.dg/invalid_name.f90
7f49661334dff8476c99f8011d7814ff gcc/testsuite/gfortran.dg/invalid_procedure_name.f90
cb6dd1fa5d599fa6890f25ecdb02a808 gcc/testsuite/gfortran.dg/io_constraints_1.f90
e8802e8eb3b2f944cc72a425d0f1fafb gcc/testsuite/gfortran.dg/io_constraints_10.f90
161310bb1dea783fc509b6ee90f2b728 gcc/testsuite/gfortran.dg/io_constraints_2.f90
24bd902c58c08ae09d66b253915087f8 gcc/testsuite/gfortran.dg/io_constraints_3.f90
3214be0ec292a992b7a113f1492101d3 gcc/testsuite/gfortran.dg/io_constraints_4.f90
@@ -33278,9 +33363,11 @@
276dd21d8e96890409797046a94803db gcc/testsuite/gfortran.dg/module_write_1.f90
e2d7817fb979c570de1d1ec245d73737 gcc/testsuite/gfortran.dg/modulo_1.f90
f4df42c36841a7e731883e9a6a7f0b38 gcc/testsuite/gfortran.dg/move_alloc.f90
645b6b4b36489dac04618c450d130861 gcc/testsuite/gfortran.dg/move_alloc_12.f90
bbde88d91784fbdb7447f444c1ca2811 gcc/testsuite/gfortran.dg/move_alloc_2.f90
90c4233696a4210dd1411df4ce816345 gcc/testsuite/gfortran.dg/move_alloc_3.f90
0e7d906db1fd35696cb88ce3cfc9a166 gcc/testsuite/gfortran.dg/move_alloc_5.f90
d1b24df59cf5a0efc5d34d1be0f29aff gcc/testsuite/gfortran.dg/move_alloc_8.f90
2b973171af9e682f87d70357cf19400d gcc/testsuite/gfortran.dg/multiple_allocation_1.f90
6b63ce8de65e063edbff7748ee8ead42 gcc/testsuite/gfortran.dg/multiple_allocation_2.f90
b00d6522a9d5d742581a4a4f36262305 gcc/testsuite/gfortran.dg/mvbits_1.f90
@@ -33706,6 +33793,7 @@
48d7350c24d7185e2739561d55b11536 gcc/testsuite/gfortran.dg/pr49540-2.f90
19bd548eb4984b50af83dc692c42efbe gcc/testsuite/gfortran.dg/pr49675.f90
a7f1ac7ef80efe661e72cd8935b9d68f gcc/testsuite/gfortran.dg/pr49698.f90
2322284d21ad7f5786f625dbe8820cf8 gcc/testsuite/gfortran.dg/pr50875.f90
6ff99f4b0021f30bee039a61db7cba9d gcc/testsuite/gfortran.dg/predcom-1.f
20a411a7e5a57891297c4c6a96d92009 gcc/testsuite/gfortran.dg/predcom-2.f
c1ed4aee35f394f952b49fcdcfc84fba gcc/testsuite/gfortran.dg/present_1.f90
@@ -33911,12 +33999,17 @@
0e858ea2573a1dc0b7ee94553ea893b4 gcc/testsuite/gfortran.dg/real_do_1.f90
b228541dba5ac8fb67ed965213fb7cd7 gcc/testsuite/gfortran.dg/real_index_1.f90
42eba4ce5e621d7d9e40bf7a14f96926 gcc/testsuite/gfortran.dg/realloc_on_assign_1.f03
8df1387de7e93b9739eb07389f04ab12 gcc/testsuite/gfortran.dg/realloc_on_assign_10.f90
ecd0b803d9243933baa7a2b459304124 gcc/testsuite/gfortran.dg/realloc_on_assign_11.f90
66a3f960a63dfe31d32c312a3b07c55a gcc/testsuite/gfortran.dg/realloc_on_assign_12.f90
9951f14ba57adbbd4cf8210c417ee201 gcc/testsuite/gfortran.dg/realloc_on_assign_13.f90
dfd36ed15f9361dc2718de2da17f2118 gcc/testsuite/gfortran.dg/realloc_on_assign_2.f03
10876d611fdffc7b6cf97c8e1abf90b2 gcc/testsuite/gfortran.dg/realloc_on_assign_3.f03
eafe4933c04e5f9695196da2f555f063 gcc/testsuite/gfortran.dg/realloc_on_assign_4.f03
600455d0e569cd93d229832b42ef84a2 gcc/testsuite/gfortran.dg/realloc_on_assign_5.f03
bcbfa36ebe8eae003ee85e5e231b877b gcc/testsuite/gfortran.dg/realloc_on_assign_6.f03
f076af76aa5fe21f2d17cfb18fadbd5b gcc/testsuite/gfortran.dg/realloc_on_assign_7.f03
27e54cc7143e6c0d743c7f48b3f718d3 gcc/testsuite/gfortran.dg/realloc_on_assign_8.f90
7a90173fe157950c6469a64f322d2d50 gcc/testsuite/gfortran.dg/reassoc_1.f90
42fb3a347645dc2800221053b1fe5a58 gcc/testsuite/gfortran.dg/reassoc_2.f90
994979e9333332ae6c59b6877f088190 gcc/testsuite/gfortran.dg/reassoc_3.f90
@@ -34064,6 +34157,7 @@
d6dcde25b7c608e43567523cf6faf56c gcc/testsuite/gfortran.dg/shape_4.f90
eed94040461dc3f4fa1bba34b2b82dca gcc/testsuite/gfortran.dg/shape_5.f90
311fedd0eb4347d62531750c8df6e3cd gcc/testsuite/gfortran.dg/shape_6.f90
5fd1f1121c14d548618bcaa2c19b5200 gcc/testsuite/gfortran.dg/shape_7.f90
30fc9ad5840248ef596a1216e5c12bc9 gcc/testsuite/gfortran.dg/shift-alloc.f90
7b1184e923af066c99dfd04c9b054ebd gcc/testsuite/gfortran.dg/shift-kind.f90
bc8bd628ea9b26898618898ace33fc92 gcc/testsuite/gfortran.dg/shift-kind_2.f90
@@ -34439,6 +34533,7 @@
96294282a3228fb6188899bc4666c49a gcc/testsuite/gfortran.dg/warn_conversion.f90
b22fa6fb493ae02ef1d39e12d52d095f gcc/testsuite/gfortran.dg/warn_conversion_2.f90
a0db5d06d54a6d19a4d997f161e619af gcc/testsuite/gfortran.dg/warn_function_without_result.f90
8c5d6c23f5c8f9688f2a320dfca63a0a gcc/testsuite/gfortran.dg/warn_function_without_result_2.f90
f3c397a340f53933c79a6878080d7e80 gcc/testsuite/gfortran.dg/warn_implicit_procedure_1.f90
6bd117926fcbe416657d4e7c0164f4f9 gcc/testsuite/gfortran.dg/warn_intent_out_not_set.f90
a51d59b7eda1c9f695fe685f97f9d537 gcc/testsuite/gfortran.dg/warn_std_1.f90
@@ -34489,6 +34584,7 @@
718adbcddbaba5cba08cb65b9205bf0d gcc/testsuite/gfortran.dg/whole_file_32.f90
5b649fa219eb6c2f77cf5c2f46918b07 gcc/testsuite/gfortran.dg/whole_file_33.f90
be0ac86b95a641655c30a290f9c487e4 gcc/testsuite/gfortran.dg/whole_file_34.f90
8f6e08ad142d2901bc973227625c656f gcc/testsuite/gfortran.dg/whole_file_35.f90
0befe695470f2cdd0bc7762f40529cf3 gcc/testsuite/gfortran.dg/whole_file_4.f90
8950b03095755ce819cab06a38a6b050 gcc/testsuite/gfortran.dg/whole_file_5.f90
9894df9e42a768b79bd33b16d2f436ea gcc/testsuite/gfortran.dg/whole_file_6.f90
@@ -35150,7 +35246,8 @@
07c827c1c798d5da11bdc0d1d9f65a5a gcc/testsuite/gnat.dg/forward_anon.adb
ea0d2d9dbbbc9c7d79f067fa40139669 gcc/testsuite/gnat.dg/forward_anon.ads
89e72099b779566d88618d4a64407eec gcc/testsuite/gnat.dg/forward_vla.adb
e973e4cc19e115b5b293a9cf033bf517 gcc/testsuite/gnat.dg/frame_overflow.adb
a76407bc945f40e398d4ada507bd22f0 gcc/testsuite/gnat.dg/frame_overflow.adb
cef4cbf18f95208dd8c0b2e5062761c5 gcc/testsuite/gnat.dg/frame_overflow.ads
0f4cb295315c4693a6ec5e5ca2c0be97 gcc/testsuite/gnat.dg/frunaligned.adb
8c236e214d430f44a72a4fb521b9961f gcc/testsuite/gnat.dg/frunaligned1.ads
d0689d7d2df99b8a9bdfa7461addbca6 gcc/testsuite/gnat.dg/g_tables.adb
@@ -35431,6 +35528,8 @@
3afb13f37cfc3455f0f0be64d053892f gcc/testsuite/gnat.dg/renaming2.adb
1a954da0b1e7e11673319b058eb82146 gcc/testsuite/gnat.dg/renaming3.adb
9c415422ce59266c9af89e8d3fd1df74 gcc/testsuite/gnat.dg/renaming4.ads
036b49eaefe15f165df8d3b3b071960c gcc/testsuite/gnat.dg/renaming5.adb
a7443b7e83fb0b9f7c853f71fbc6426b gcc/testsuite/gnat.dg/renaming5.ads
9b1270e410165ddf9774a615ec835037 gcc/testsuite/gnat.dg/rep_clause1.adb
ab0796b373d12c713aeb10168d14ed69 gcc/testsuite/gnat.dg/rep_clause2.adb
879097798e84a55d0876c499122cdd18 gcc/testsuite/gnat.dg/rep_clause2.ads
@@ -35491,7 +35590,7 @@
b6962b44f81ad681bf6bfb2bc80e5383 gcc/testsuite/gnat.dg/specs/access3.ads
c60566bc09d6f157c601d0691f67aa4e gcc/testsuite/gnat.dg/specs/access_constant.ads
a3aeba60c0c92acaa70248375acbbdbb gcc/testsuite/gnat.dg/specs/access_constant_decl.ads
b19559acf557f9a9dc88fe9784569c94 gcc/testsuite/gnat.dg/specs/addr1.ads
d3f64fe43540741aa6659c95aeb10167 gcc/testsuite/gnat.dg/specs/addr1.ads
e33611dc4d71436ff404e150078f888d gcc/testsuite/gnat.dg/specs/aggr1.ads
03d5230a50a20391e0238f6841dcaf91 gcc/testsuite/gnat.dg/specs/ai_116.ads
7d85593bd2feb29192cd8b150c52dde2 gcc/testsuite/gnat.dg/specs/alignment1.ads
@@ -36345,7 +36444,7 @@
50ffa346e924efe09842cf41681b0f00 gcc/testsuite/lib/g++-dg.exp
c69764b438a14e09fefaba8728567b9d gcc/testsuite/lib/g++.exp
a78692e834fde73950f8e9d703094281 gcc/testsuite/lib/gcc-defs.exp
effb0c3d9b97cad1f2bfada0e92e0fdb gcc/testsuite/lib/gcc-dg.exp
65192c020aacc45b909f9802d29f5e5b gcc/testsuite/lib/gcc-dg.exp
54c97dea680c7a1afa8cd887bafc629f gcc/testsuite/lib/gcc-gdb-test.exp
93a8f8d7ee2b281cc38596e765af8900 gcc/testsuite/lib/gcc.exp
a2ed7dca9deec7e6ad60bc60383ad8d2 gcc/testsuite/lib/gcov.exp
@@ -36375,7 +36474,7 @@
9a908bb507989b82eddfeb9d23c66587 gcc/testsuite/lib/scantree.exp
a6dc33391c4e774519da81fd258805c0 gcc/testsuite/lib/target-libpath.exp
389067d3e988f7239cef2517d968ec8a gcc/testsuite/lib/target-supports-dg.exp
44e84b2935dd71731794b7f110edd5df gcc/testsuite/lib/target-supports.exp
23b0aed49a27ed3105c2d1db93520c15 gcc/testsuite/lib/target-supports.exp
3247a569c87014396b4682567b02c72f gcc/testsuite/lib/timeout-dg.exp
3b7f74ee8537decb5895ed7a3c008b6e gcc/testsuite/lib/timeout.exp
9c8e6bf222182744bb61bd5c07ec5496 gcc/testsuite/lib/torture-options.exp
@@ -37318,23 +37417,23 @@
88db06678cde456736d0167633bc5a51 gcc/tree-eh.c
a976aa968539ae2131df1a48fe1062d2 gcc/tree-emutls.c
d18bc5ddec547e707e9659002b944953 gcc/tree-flow-inline.h
d65b1be5a5f158b540af436a30463be2 gcc/tree-flow.h
4e9b834a3d1f8fe1afd352863af82af4 gcc/tree-flow.h
4b4fca67c660e4445efffaaaa18fea61 gcc/tree-if-conv.c
9aa30fa716af21b1adea1024493d995f gcc/tree-inline.c
5a92fe1dca0f04ad971a4feb5c38cd8c gcc/tree-inline.h
fea734aed683460fb17e83e776d587fa gcc/tree-into-ssa.c
f4b09224a9aab0fa70f3a4fc7e188bb8 gcc/tree-iterator.c
17795288e608bdca249f4223ebe73b1b gcc/tree-iterator.h
a6503d16d526c123716289cec261542c gcc/tree-loop-distribution.c
1a65ba4a9bff8f378bca89d22c88a41a gcc/tree-mudflap.c
c740934691448209eb509596129666d9 gcc/tree-loop-distribution.c
00aca470981be7acc5fd101298235c9e gcc/tree-mudflap.c
e3ec682d6aed08778baff5f999e2b22a gcc/tree-mudflap.h
c8a241250c17bff4543f13ef3f893fcf gcc/tree-nested.c
31154e9c05f66ffc6b6576a46adcc208 gcc/tree-nomudflap.c
088578abc6490bbe9b0dd3f4429ff8e4 gcc/tree-nrv.c
c90b7108eae865541f8be74abfe4ec2b gcc/tree-object-size.c
171a450ded8637a441c4b0afe9a1f0ac gcc/tree-object-size.c
8aecc4ba1f4b5986eb41c961abdcd724 gcc/tree-optimize.c
d7b882dee9dfba195b6ea04f723ae71c gcc/tree-outof-ssa.c
c73873cfb5c142839822775e7a7b56df gcc/tree-parloops.c
64e7c9119ceb5abe9465ebd8627eec00 gcc/tree-outof-ssa.c
d4bc2fa73292a44f66a4d55e67ad9c7b gcc/tree-parloops.c
6daa96c74fe3b6980279a993c3fd8db8 gcc/tree-pass.h
e3be3515b937884c0ea6a7a62b25b53d gcc/tree-phinodes.c
470230ae2d0a3ed72f632806de97b09c gcc/tree-predcom.c
@@ -37343,22 +37442,22 @@
42841b6f46f2c09bf81dc1e8850310ab gcc/tree-profile.c
1fae22080bb85d0e14d915071f26130a gcc/tree-scalar-evolution.c
cf4c9f2327ae5516a097a485e8f66d0d gcc/tree-scalar-evolution.h
bf8d1a9a007dc31799ddb95868b37deb gcc/tree-sra.c
ffa15fbd0f1ccb8d88e03c4ee34a09f4 gcc/tree-sra.c
45e088107e0409f5c13265e3fd3f2684 gcc/tree-ssa-address.c
6e39a1895e8f7b70ed7d2f96f1a9b7e5 gcc/tree-ssa-alias.c
92a0331d15d68b4231b9729e46e46efd gcc/tree-ssa-alias.h
7a7c562a77bb2bcc595a61777a5d7678 gcc/tree-ssa-ccp.c
5530f1ef78eb5977066d596d7058d305 gcc/tree-ssa-coalesce.c
a6c70e95c3b97835233934631e58ccea gcc/tree-ssa-coalesce.c
fabe65b712a2e8530e4e791e9ea00b7b gcc/tree-ssa-copy.c
b7d379da01528a34370c92888f74f2c4 gcc/tree-ssa-copyrename.c
b090cf8fda653cb3c0e7589a5d2449a4 gcc/tree-ssa-dce.c
a5959db9e8f998fbd331b227957ec75b gcc/tree-ssa-dom.c
11e9b7e629268e05f4a816cd0f280c3a gcc/tree-ssa-dse.c
ab240622234655f9f4ca99a30bf85b68 gcc/tree-ssa-forwprop.c
ee3304403a185eef909b769d0510ddc2 gcc/tree-ssa-forwprop.c
9888f9c72d0f832413bd2070b93490f2 gcc/tree-ssa-ifcombine.c
a103d8e98e25092d51e563c0b45670d2 gcc/tree-ssa-live.c
7b9bf0c835ebb365ff2b4aee1c7dbfed gcc/tree-ssa-live.h
0b6297efcb882a14ee7a10fc80f3688d gcc/tree-ssa-loop-ch.c
e4a828956e0990d37c05feab346e4061 gcc/tree-ssa-loop-ch.c
412bb82c038feea1b1e146626ba5e0d6 gcc/tree-ssa-loop-im.c
c65fc9248540a68e77574d5f63377e71 gcc/tree-ssa-loop-ivcanon.c
231a32ef1d99982a22933e21a574b783 gcc/tree-ssa-loop-ivopts.c
@@ -37372,14 +37471,14 @@
cbfcbdf99344b0734b15c0335fa30b44 gcc/tree-ssa-operands.h
7234d4815857541e342d5b0ef1516623 gcc/tree-ssa-phiopt.c
e3056e414dd1835ef309a393f4db9e89 gcc/tree-ssa-phiprop.c
8c27a65db77e6cad92d4425798e301c5 gcc/tree-ssa-pre.c
bf41327edbf9e555aa9b2e44b6c37540 gcc/tree-ssa-pre.c
2e4d27a3542e97cca04b6f7d38e25013 gcc/tree-ssa-propagate.c
550f2dfe51deb94cf660cde9de08fb18 gcc/tree-ssa-propagate.h
0b7165281beeae32120f948e27c88481 gcc/tree-ssa-reassoc.c
f0be06beb16b99ba67350dcc3090d0c2 gcc/tree-ssa-sccvn.c
4444ff5d91ee6b1287d58b1c1b28a030 gcc/tree-ssa-sccvn.c
4476dabc1a1201c6721eca540041ac42 gcc/tree-ssa-sccvn.h
4d6fe1abfc6269a8617e92b110ee322a gcc/tree-ssa-sink.c
b5c2eba653aadc7c9ce986e3781af469 gcc/tree-ssa-structalias.c
368821aff741ca2c9e6262e6c37725a8 gcc/tree-ssa-structalias.c
fc2ef72126e1097cf44db86d2cd031ac gcc/tree-ssa-ter.c
c32e0ecf47691e92dc8574effdd5a58c gcc/tree-ssa-threadedge.c
407c6081773a481ba91000339c320b66 gcc/tree-ssa-threadupdate.c
@@ -37391,13 +37490,13 @@
9dc7ea806141e247f0061ebed82e5f57 gcc/tree-stdarg.h
fd667b38cedaf647052d2440fdcec5eb gcc/tree-switch-conversion.c
58fb44740bb2489afac90213b78a3caa gcc/tree-tailcall.c
2a1055f156a15d119305344b72040052 gcc/tree-vect-data-refs.c
54c39466c370a6bd376974c1e1fd28be gcc/tree-vect-data-refs.c
517ae879c5fbbc3ab2d3705e7f5cc850 gcc/tree-vect-generic.c
08f7dbfd232eee13adba939721ac9348 gcc/tree-vect-loop-manip.c
5afe69d027eb8943ac871785b9ed533b gcc/tree-vect-loop.c
7d75ade63f1690ee66a6b1ff1050d466 gcc/tree-vect-patterns.c
f9caeb2b10b0d7221394e422622226b4 gcc/tree-vect-slp.c
d5367899b600d4279411e4e4fe37ca92 gcc/tree-vect-stmts.c
205283b16d7d3dd3ee5acc78fcfeac28 gcc/tree-vect-stmts.c
de1268caff24a6a7e6c4e52e85ca1b40 gcc/tree-vectorizer.c
486c0a426800525e876b7692819ec3a4 gcc/tree-vectorizer.h
1cf3c29f3bda00965b39433944d1b874 gcc/tree-vrp.c
@@ -37424,7 +37523,7 @@
7496c3372a08495c5b75cfb59b763b82 gcc/value-prof.c
739f48f295bc019eac30fbd82a5174f2 gcc/value-prof.h
d93f0d3f98043810a18498dddcc01355 gcc/var-tracking.c
adb2aa8502c7958703ccbb50cba70d3a gcc/varasm.c
f1e8b2c82718ce8312da32a7aead1fac gcc/varasm.c
78086d1d8cb099603a076a623790cc8c gcc/varpool.c
7364d3d8cc8c55e5bb31c18090737bd2 gcc/vec.c
ae6a49d6c9e6723d00e8ec1349023832 gcc/vec.h
@@ -37438,13 +37537,13 @@
e33f5fe4050a311c959ce9084a50c1fb gcc/xcoff.h
c449f72b18bdb57edb68404ed0041e0f gcc/xcoffout.c
7cf371c2c977863af4254f2cfa6b86b3 gcc/xcoffout.h
4ce55f2228b04cf1c108b671550b0ecc gnattools/ChangeLog
37c0a799c0cce6e963a5fbfc797aa2e8 gnattools/ChangeLog
3fe048b462fe12bf6eaac6dc9c766ac8 gnattools/Makefile.in
cf927569f00894bef32dbefb7c6490f7 gnattools/configure
01d58cc3b5626a2637e20c2c5080b221 gnattools/configure.ac
59530bdf33659b29e73d4adb9f9f6552 include/COPYING
d32239bcb673463ab874e80d47fae504 include/COPYING3
73cf353ed5376b5933f388ca7cfd861d include/ChangeLog
6489fcbd15ab4216566fc5208c439256 include/ChangeLog
4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103
68da0a9358a4062d67e4968cd1754787 include/ansidecl.h
d369c453bfbf634df60c5f09c4f2ee62 include/demangle.h
@@ -37473,7 +37572,7 @@
0294cecbb1f66d640ccba3a5d862d05b include/xregex2.h
f648a66ed08e079e26a24c4346a3ba03 include/xtensa-config.h
0afce91a3daa1fdc32ee36370c1129dd install-sh
4fdbb2f4561106641f5dffd4d710bc53 intl/ChangeLog
e2315698c6b9f722de6e15f37d6f98bb intl/ChangeLog
cad1d6fab2274517783de7433c0faa74 intl/Makefile.in
6ec998bb4716c744bf8185e607f69301 intl/README
76ca170a525d5b84d90f0478fe788931 intl/VERSION
@@ -37515,11 +37614,11 @@
b4758a0194e3e41362b939911472ce62 intl/relocatable.c
bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h
43f287d082528203fc85c1d2d81bf30d intl/textdomain.c
bdf726cde5bd9d82188f224bb4b1d9a9 libada/ChangeLog
b4d29aa2be8cb9315f4718807a59fa6d libada/Makefile.in
8cca35a32182f500cafe68bba1aaf5c8 libada/ChangeLog
6d597886d1a47cfd111244f803cc24b2 libada/Makefile.in
9fb2c0e64238d6d42020a518fe9d1122 libada/configure
b2dd61394fd655e9a99c79c4bb55b0c5 libada/configure.ac
a3137609509430e971bcd799c229f133 libcpp/ChangeLog
4a76e58dfa1333332695f1697907cefa libcpp/ChangeLog
93bc049e007eeba6b81add09cfa00119 libcpp/Makefile.in
7307c791a8de641ef6dada9a179ece57 libcpp/aclocal.m4
8c19150215f02148e487faba96509b8c libcpp/charset.c
@@ -37545,7 +37644,7 @@
2d45a726957f93e9ec053b644480b2e9 libcpp/makeucnid.c
f35ae8ba1fd3553b47bcf87cc1730aeb libcpp/mkdeps.c
570d5c1562c05797875cb8a7f466f6ea libcpp/pch.c
53fb92923c4d0df24b57c38500457ea4 libcpp/po/ChangeLog
ac2ab57c93d72a80c9bb5d118c9acafd libcpp/po/ChangeLog
b1fb39c0899b541a35916d021d1256ee libcpp/po/be.gmo
6f90909519102cc6314fd646fd5e163f libcpp/po/be.po
b96c0418df89723bc9a513b99d0cd0e5 libcpp/po/ca.gmo
@@ -37588,7 +37687,7 @@
67fcd3d878017060c56219962e5e062b libcpp/traditional.c
11f204ddd01b33474c3de82de9192de4 libcpp/ucnid.h
524392c32703f6022427bf6bbdb833c8 libcpp/ucnid.tab
e4c1f2fb5c4d621d4037889c39f806c5 libdecnumber/ChangeLog
045a564aa7e221c4548d7a193c0ab766 libdecnumber/ChangeLog
86d8785bbc0f5bb23cfce8de566a3d5b libdecnumber/Makefile.in
2746a1155d319a2cda823ee5b58921ce libdecnumber/aclocal.m4
a0ecbc50fa8e505f88a951c3c294ecbc libdecnumber/bid/bid-dpd.h
@@ -37650,7 +37749,7 @@
74286c0df48b52d759e158d0137e326a libdecnumber/dpd/decimal64.c
7da680355032df2d570337d88c0694ad libdecnumber/dpd/decimal64.h
0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h
a5f750d6ed3c65df8d6037c0352306d1 libffi/ChangeLog
4a094144321c4b3b0b40009138c34931 libffi/ChangeLog
fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj
d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1
085f9917800070e791f49bf4733e23fa libffi/LICENSE
@@ -37659,8 +37758,8 @@
70b0e28375048dc9da99e9b55eb1792b libffi/README
0ec3418e6c2e6b89c24cffd4322b6368 libffi/acinclude.m4
ddc32ea6263dd1557560d7ef6e33c2a3 libffi/aclocal.m4
111d7ff96f3b35e70a091ba7cff093fd libffi/configure
2814a378b474c7f59b6eaedf0a807bdc libffi/configure.ac
314ef5b2d1feb95340f51e8221d89ad4 libffi/configure
6ccc3ab78f15a8c05b1109f78c644a5d libffi/configure.ac
bec544523f8f7f3d5136f67598cf609a libffi/configure.host
ee3e522d649fa16f486e218fe09873c9 libffi/doc/libffi.texi
7123a892595757886f0ee120347f9565 libffi/doc/stamp-vti
@@ -37885,9 +37984,9 @@
291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp
93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc
185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
5447197d420cd833343df8acd7c16f3b libgcc/ChangeLog
f1b655d919403cced36d0943e70eab71 libgcc/ChangeLog
675afd672afffce0e30892c1578e521f libgcc/Makefile.in
cab18fcfe585a6273997b913c7676aa6 libgcc/config.host
43c4caf6b67b42254183b8b46bc978b8 libgcc/config.host
4d2e967f3d00f422f15be583a4ca4881 libgcc/config/alpha/t-crtfm
b63db969f14189ca17d3d3bd66b3327d libgcc/config/arm/bpabi-lib.h
42e1ccf0240e3f8b375747d001d7caff libgcc/config/avr/t-avr
@@ -37923,7 +38022,7 @@
721bfee787d81d97c021d28b97dc3415 libgcc/config/ia64/t-ia64
53a2b9e67710b0b8f02e3e3316cd4482 libgcc/config/ia64/t-softfp-compat
45cb97bd14177f2d809994a800675ceb libgcc/config/ia64/tf-signs.c
8629759411e3b73bcb597dc9f433cc3d libgcc/config/libbid/ChangeLog
612f4d77d1651ec2f7dce8b6d7dcdfcf libgcc/config/libbid/ChangeLog
86e150f40ebcb97e568366a5cb38cbbe libgcc/config/libbid/_addsub_dd.c
ded9495633ce7c1e30d900eae5f9a599 libgcc/config/libbid/_addsub_sd.c
d26f72ff45dfd7210a6a33a599274515 libgcc/config/libbid/_addsub_td.c
@@ -38141,13 +38240,13 @@
d574c014262b510c6f89d1c8a91d1525 libgcc/fixed-obj.mk
c7b70dcc1f2024624fcba54a60ffcdda libgcc/gen-fixed.sh
eaefdbe6289ca005bd3bf946a98abc94 libgcc/generic-morestack-thread.c
f9c47c688d068c2d099548660ff093d9 libgcc/generic-morestack.c
d83f65e5c88022130d107b98bbd768d5 libgcc/generic-morestack.c
8680ecefbbf8469f21de2ec5ea976a85 libgcc/generic-morestack.h
971ff834e82a1a1964a019bfdac21c5c libgcc/gstdint.h
c326222d0001569c09d987898e433cee libgcc/shared-object.mk
e46c2a78dca584dfd7a4b4673666ab86 libgcc/siditi-object.mk
4f944647ef4ccaaaf9bb117b88d3cfd8 libgcc/static-object.mk
236098843267f9245efe4c32157ac512 libgfortran/ChangeLog
a11871e14dde5e2f159d0c46342f94bd libgfortran/ChangeLog
9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002
80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003
9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004
@@ -38168,7 +38267,7 @@
ef879c1f693263fd0f162f58ace05d45 libgfortran/config/fpu-generic.h
0084c057da8647cb6423a20e7ab970b8 libgfortran/config/fpu-glibc.h
829ea59792674375febea191105c87a7 libgfortran/config/fpu-sysv.h
a710b24a6b5da4b1a371232caefc058c libgfortran/configure
d0b08171e1646ad1de1c0342c14dede7 libgfortran/configure
cc7ab7233097af197531cfecca7c59f2 libgfortran/configure.ac
d1cd9b0a6bb9e0fe3523fa52ef085662 libgfortran/configure.host
79438548178ec610e4b0c5975d47f6cb libgfortran/fmain.c
@@ -39804,7 +39903,7 @@
3657b86470f92bcbec1d0d978e1ca3ab libgo/testsuite/gotest
597b3ae1c086f6679d4cee693979bf65 libgo/testsuite/lib/libgo.exp
164a1ca5fe73fc67efb7a5bf37f32555 libgo/testsuite/libgo.testmain/testmain.exp
747b17518eb4c90e7afe0e506a842fa8 libgomp/ChangeLog
7e09b811d3e4dd740f8904ef8fe4308f libgomp/ChangeLog
0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite
39ece4ec96c419c2e1a3d2b63597f527 libgomp/Makefile.am
0952d7ee9c36827d553f41fc4a7e673f libgomp/Makefile.in
@@ -39856,7 +39955,7 @@
7004effc742dae2500ddb55f1b61ca16 libgomp/config/posix/time.c
d049888a1f363f789ed2a9d80956bc66 libgomp/config/posix95/lock.c
a7bd34c2bfa880ac20c3dd26741f05f4 libgomp/config/posix95/omp-lock.h
269622894d711076cfba5c5f504c8c8c libgomp/configure
d7f91aece188f0f5f349a015efd7e3b7 libgomp/configure
4279da7c7af99af238f3ad0b0a68099b libgomp/configure.ac
760015d5e3ab0cb752177e6ce3c8b650 libgomp/configure.tgt
eeb570991118428a63a9a984a972a7a7 libgomp/critical.c
@@ -39866,7 +39965,7 @@
acc3925b8f43fb985313663c30103701 libgomp/iter.c
cf8a700a297d5418b1a70e667db6d660 libgomp/iter_ull.c
b47c3f7570522f886fd2c020c05d21ef libgomp/libgomp.h
b55b8983a6ea8387e1adb36b86a436cb libgomp/libgomp.info
2a558f37a41083706c7ac612a51b7b87 libgomp/libgomp.info
91f6dd37a3ef8eb214876bab5075907a libgomp/libgomp.map
591ff20dfd2b81e3c919249b5db8a967 libgomp/libgomp.spec.in
bfe2bcac0c1cf027660b99a6c8ae4fa8 libgomp/libgomp.texi
@@ -40073,6 +40172,7 @@
006c9241a06131d8b1ad87c0a7a58349 libgomp/testsuite/libgomp.c/pr42029.c
965ea816877f4bf791f4bf1a1aeef3cf libgomp/testsuite/libgomp.c/pr42942.c
3b6d62c4c9f8e8ce4656f6342157558e libgomp/testsuite/libgomp.c/pr43893.c
dc156ed1b463ca0cf6f8e76c9ee9274b libgomp/testsuite/libgomp.c/pr46886.c
20e50c40b2c083a7e5e24a25ef821a41 libgomp/testsuite/libgomp.c/pr48591.c
b4c78e2e0b669ed68f5694694da3f225 libgomp/testsuite/libgomp.c/pr49897-1.c
7438fbd4bfc0933c64ec23582194d83a libgomp/testsuite/libgomp.c/pr49897-2.c
@@ -40238,7 +40338,7 @@
66ffa69cccfc856bc101f397c0632b69 libgomp/work.c
99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore
a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB
663a61c93fd9fb3afcaa8b81baf9fc5c libiberty/ChangeLog
87c94105dda914163990a0b184068d4c libiberty/ChangeLog
c832a40dc89e7824c8d8ff366092bf1c libiberty/Makefile.in
c68dbf7834af4281ebd84caa3fd54680 libiberty/README
8797cb1a6faa84f3c7fe3d12164a4b13 libiberty/_doprnt.c
@@ -40300,7 +40400,7 @@
9905223327acad708d5b0a28e8047cdc libiberty/libiberty.texi
2c56f9552603480f87b7136972894128 libiberty/lrealpath.c
fe4e25fb7df7cacdc921eaf39ce595af libiberty/maint-tool
661dd1cfd866f16a426aafedaae4523a libiberty/make-relative-prefix.c
1c92b13da7b99783a0f5782a162fc2c7 libiberty/make-relative-prefix.c
0172f6488e44155e35d94e3f2c5c3c5c libiberty/make-temp-file.c
9d038cd01bd65a8af2a78c5cfbaa94b4 libiberty/makefile.vms
9522c18599ff0145df69f57fecac4c12 libiberty/md5.c
@@ -40340,7 +40440,7 @@
98b261f5b750c15964376543f20ce838 libiberty/simple-object-coff.c
46cc2dd9ee3647f96b12b4147a56ea3d libiberty/simple-object-common.h
6a644ae380b64c2263b8c5070340c1ee libiberty/simple-object-elf.c
505f7cf4bc24a21d7ade77a8c84cfcbb libiberty/simple-object-mach-o.c
4f2a8adfe88e1aaf3735cd8c0f8f58f8 libiberty/simple-object-mach-o.c
5038f5b200deaf5a04ba42e010085d5d libiberty/simple-object.c
4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh
e34c9d634af52457ef9c7973d9879d48 libiberty/snprintf.c
@@ -40385,7 +40485,7 @@
6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c
c6e7ef53b4ff115a136d917511222656 libiberty/xstrndup.c
94d55d512a9ba36caa9b7df079bae19f libjava/COPYING
d6199a9250aa3383676aaf400a2b8865 libjava/ChangeLog
8bd67e85cd4e53a08293cd890c999ed5 libjava/ChangeLog
03e1f38b916604fdf1470238201325f3 libjava/ChangeLog-1998
691acb61fbd6a2235826ff55db5578be libjava/ChangeLog-1999
b58c6701706771a02bf00a77666941ef libjava/ChangeLog-2000
@@ -40423,14 +40523,14 @@
880a25226e4e4e4c241663041d24f8dd libjava/classpath/AUTHORS
efd97e0bb913655e0c8b16fa78bdded4 libjava/classpath/BUGS
af0004801732bc4b20d90f351cf80510 libjava/classpath/COPYING
4096056cc862c6191ecee4dd2cd0e36d libjava/classpath/ChangeLog
03323eaacf0a5ea6edda980c174272cc libjava/classpath/ChangeLog
3418fae58de967afe26d915a4b18d82c libjava/classpath/ChangeLog-2003
a5b72adb94a3c362738b0f52e57a82af libjava/classpath/ChangeLog-2004
61159c6e0802d0d2a92b3051003db5c5 libjava/classpath/ChangeLog-2005
0dba21f6ba7fe678d161f970a31cd505 libjava/classpath/ChangeLog-2006
50f13c3f8b33d5343320e6831fdd27df libjava/classpath/ChangeLog-2007
258dbd419342131b894f799a8090f76f libjava/classpath/ChangeLog-2008
daed03604580ac9e7361017dcbc13e5d libjava/classpath/ChangeLog.gcj
f416f61cb2f7e932cf2c96cec6afa991 libjava/classpath/ChangeLog.gcj
a09dff495a9043fcf7b463f0b5c4fdd6 libjava/classpath/ChangeLog.gnujaxp.1
3353fabfae7cca9e6c4f821919e4275c libjava/classpath/ChangeLog.gnujaxp.2
b35964059a02f01f39b05a95b401f586 libjava/classpath/ChangeLog.libxmlj
@@ -40448,9 +40548,9 @@
67d4eb1dfa903fda1b2c697bc191cff7 libjava/classpath/autogen.sh
b2a35e98453194ca837c363ee9c0d379 libjava/classpath/compile
750ac5e3ea012afd503db973cb076f70 libjava/classpath/config.guess
40f41d5ac756b7131044845253a344b7 libjava/classpath/config.rpath
6ba186363745a3fe81716c8c67bd370c libjava/classpath/config.rpath
21e1bf1c3580193cf0906851326a0d64 libjava/classpath/config.sub
30329db99db2f638286cccf8fe2aed91 libjava/classpath/configure
ad86ba98da9184d8c8f1605bf7bb8a4f libjava/classpath/configure
d6761caa111fa592528c7b161ed399f4 libjava/classpath/configure.ac
21504de31981a67b5b93b265029d1865 libjava/classpath/depcomp
a6cedb4991503f803e9f0870daf59c13 libjava/classpath/doc/.cvsignore
@@ -40461,21 +40561,21 @@
b343eec566430e85d1f95c21438aa4ee libjava/classpath/doc/api/Makefile.am
500fc49e371dadb9296f03789274e83f libjava/classpath/doc/api/Makefile.in
5ddd829b35fc94b0cdb119084089edb8 libjava/classpath/doc/cp-hacking.texinfo
e51e36cd97b8dfa178ce797504c18467 libjava/classpath/doc/cp-tools.info
df778f136e7f806981a63d2164a5a1c9 libjava/classpath/doc/cp-tools.info
2f9243a9d8681fb57cfc14ea3839b38e libjava/classpath/doc/cp-tools.texinfo
3155d9bd9a7bf4aff2ff0dfe4a2cb878 libjava/classpath/doc/cp-vmintegration.texinfo
ffdbcd07387700cc497282490abfce5c libjava/classpath/doc/gappletviewer.1
5664cbc799fd2c6d4179467d6d046145 libjava/classpath/doc/gjar.1
fef1a8fe502425f8992b0177d2105897 libjava/classpath/doc/gjarsigner.1
643ab4706205b30526bed0a0a7ee7d45 libjava/classpath/doc/gjavah.1
09614464596f6eab7612e7d7b24e3781 libjava/classpath/doc/gjdoc.1
ab2ebb629fe20bcbb5b3f5a22ee4bfd3 libjava/classpath/doc/gkeytool.1
9c61cc839b653218e7b293ecd774c972 libjava/classpath/doc/gnative2ascii.1
ab92de9c76d0750572783e03d2337689 libjava/classpath/doc/gorbd.1
d0b189169caa047359e0c4a119387a0b libjava/classpath/doc/grmid.1
254989ba5a7f1019a7d65bec34d7a2fe libjava/classpath/doc/grmiregistry.1
59e0356aa1f08c14f6a5ee9b03f957e8 libjava/classpath/doc/gserialver.1
a143baaa6308a25881ea8443935450e7 libjava/classpath/doc/gtnameserv.1
f6ed3b6944ee6d2ce6df90d7718e6380 libjava/classpath/doc/gappletviewer.1
8c0ca2dc4e5806332c41cbdd37d86315 libjava/classpath/doc/gjar.1
52883fa69ae87d4f2456777abf7ca5f8 libjava/classpath/doc/gjarsigner.1
d2d15766cb2686cdded3f947e6714d8c libjava/classpath/doc/gjavah.1
974d39c07408e416ce17bacfa51a3185 libjava/classpath/doc/gjdoc.1
c3c36b2c91b003e671726d773b63590c libjava/classpath/doc/gkeytool.1
51a3737433701e66bbccc03c4d9cd458 libjava/classpath/doc/gnative2ascii.1
6ad2e575b7a38dd25459fbf5b98c9dfa libjava/classpath/doc/gorbd.1
65f609cf3c6ecfadfd57edf5a31187b4 libjava/classpath/doc/grmid.1
821d6d7251670d64be1c08665eaa6eb9 libjava/classpath/doc/grmiregistry.1
3c1c1506ba0cbf5d65a4943bc8deacb6 libjava/classpath/doc/gserialver.1
3b52a1efe01682fa0ba39ed2cd95acd1 libjava/classpath/doc/gtnameserv.1
7e4e31659df1c7e815f9151958dceef2 libjava/classpath/doc/texi2pod.pl
01b23c87dcf82048a5958c8224653305 libjava/classpath/doc/texinfo.tex
b1e0c0c30547d57d7a09b04d47c70b06 libjava/classpath/examples/.cvsignore
@@ -55706,8 +55806,8 @@
f5c9e0011a145a2d325095aaa65dfd74 libjava/classpath/vm/reference/sun/misc/Unsafe.java
51797ad56585c18d465096c545896968 libjava/classpath/vm/reference/sun/reflect/Reflection.java
ee8b97b4210bc58ca056b570a7b0a1a2 libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java
4dd6fa0c273a9a02ebadd0dad15b7394 libjava/configure
4bb03ae0b933292e2be261d2ea90ce08 libjava/configure.ac
ff957ff435ec98206e15595b20ffd52e libjava/configure
6b9ec1b13be05762503ba6f978653cac libjava/configure.ac
fc485eb9cecaa2f3197db5e446dfd409 libjava/configure.host
c87469b826abd90aa96813dbb712963b libjava/contrib/aot-compile-rpm.in
cdad876336179e403671e1b7e3a6c600 libjava/contrib/aot-compile.in
@@ -62666,16 +62766,16 @@
190bcad211f05f3f0cb0fe5db299d94e libjava/libgcj.ver
184718636f014ef2ca46d62ba8d6c3bf libjava/libgcj_bc.c
e3eda01d9815f8d24aae2dbd89b68b06 libjava/libltdl/COPYING.LIB
86a4da027cedefc9e495f040e7e97fc9 libjava/libltdl/ChangeLog
21fe4b3e54bf363d3939ce92fc4da875 libjava/libltdl/ChangeLog
349267319e3d55dcf180a20f85394144 libjava/libltdl/Makefile.am
930c6383a37e6cc8e0625c9a281eda95 libjava/libltdl/Makefile.in
36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README
22dda3765a535fc70c799bc9507f7f45 libjava/libltdl/acinclude.m4
7144a40c9d234f46c29e1b66c01b5caa libjava/libltdl/acinclude.m4
fe9987a8fd9c2baf732baaa6fec093ea libjava/libltdl/aclocal.m4
15ef4a3083ad2eff9daeb8c04d21ea05 libjava/libltdl/config-h.in
953749bade5256db32886b5353f73cab libjava/libltdl/config.guess
953749bade5256db32886b5353f73cab libjava/libltdl/config.sub
d8d0ec154c7afaa4fef7fd136d023b1f libjava/libltdl/configure
272c5f8a3c8bbf0c5a5f339694299d28 libjava/libltdl/configure
e22c220615396fba3a31e08d51e07d9c libjava/libltdl/configure.ac
6b5362c8cc3aeec08dd77f5c6a6a4413 libjava/libltdl/install-sh
176a06373e6b281a5695641efa8724d7 libjava/libltdl/ltdl.c
@@ -63439,7 +63539,7 @@
8bc9c6be20df8421c1a687421fbfde85 libjava/pkg.m4
bcecf5b2507e5f3693f16c96acd82a17 libjava/posix-threads.cc
988741ff03c71aa76b896742aaffe296 libjava/posix.cc
1037b26d48b6ead093edb2140c2e6285 libjava/prims.cc
de6f44effe53248a36da4ddcf8c4d91e libjava/prims.cc
e78ba84d733731034a4ed9d7245ce3b4 libjava/scripts/MakeCharTables.java
0f49478320816def63eecdbdabc50bdc libjava/scripts/classes.pl
6d795c65b67f245c88b61f68c93bf95b libjava/scripts/encodings.pl
@@ -64360,13 +64460,13 @@
434ac04eb066f5075299583492846410 libjava/verify.cc
355440a0c2fb5e16259d7ae381b37ed5 libjava/win32-threads.cc
434d5e5e91727dec004f0d1d1fab47ec libjava/win32.cc
7fdd06eddb961641153a6bd60143d74b libmudflap/ChangeLog
254b7f655bbdd68202229bad21cef354 libmudflap/ChangeLog
662781c9b6e72ed44b0aedce9d9524e0 libmudflap/Makefile.am
799a9b84a86476bbeff50297b7468483 libmudflap/Makefile.in
9883ed42b491d8aea83fdde90561cf2a libmudflap/acinclude.m4
1fe9a8fe50d9162be2df46582321a64b libmudflap/aclocal.m4
d1d6e005847331b5bc595ae5ab88e4f6 libmudflap/config.h.in
9c3414262a380956ab67a03a119da9bc libmudflap/configure
a52b241b3e753e002d58667628e51cea libmudflap/configure
39e4d6428a07fe89e0061846d9beb343 libmudflap/configure.ac
5b95ad6add3888b3ac1fd4fc7b3704ca libmudflap/libtool-version
694c90cdce97196ecbcacaf5762d0ef3 libmudflap/mf-heuristics.c
@@ -64438,6 +64538,7 @@
acc384ac57e4917edca343c3abe0feb0 libmudflap/testsuite/libmudflap.c/fail40-frag.c
9e31dcfd9573de93e2b46d9f0e382376 libmudflap/testsuite/libmudflap.c/fail5-frag.c
b86a1b2de633cab886f73596afbb0057 libmudflap/testsuite/libmudflap.c/fail6-frag.c
73c32317a169f349762c20ff646fe437 libmudflap/testsuite/libmudflap.c/fail68-frag.c
2a52c49e96c0b6cfecc1650a8fd4f934 libmudflap/testsuite/libmudflap.c/fail7-frag.c
d794af109bde1eb861f61cefb018c86f libmudflap/testsuite/libmudflap.c/fail8-frag.c
e92f210a8cbfcec2e2aeef2b18e31c18 libmudflap/testsuite/libmudflap.c/fail9-frag.c
@@ -64503,7 +64604,7 @@
86b705472b17ac803b1be2e9048982f1 libmudflap/testsuite/libmudflap.cth/pass40-frag.c
725a94441658e42a6adf2add0a0a419d libmudflap/testsuite/libmudflap.cth/pass59-frag.c
60168171460c9277504005955b1ea1b8 libmudflap/testsuite/mfconfig.exp.in
4f06e3d2d38fe99f2a8294b8f43a136d libobjc/ChangeLog
ab6d931e7a07a0ce7c8c90ff9d19e5fd libobjc/ChangeLog
a97250df7a5f601967a03dc14d1bee7b libobjc/Makefile.in
e22f5980169af2600bcbde10f7f55855 libobjc/NXConstStr.m
7a7f212288c3f8986c648def1aaa02e9 libobjc/Object.m
@@ -64516,7 +64617,7 @@
22d87d3ef64c347ed048f71b9cf81e1d libobjc/archive.c
909288afec911de0c3a46bd2f5d290f4 libobjc/class.c
5bc1fb1cf9d673919759bbbecb651611 libobjc/config.h.in
ba3f1293bc38aea345df102e83ef59ee libobjc/configure
b64e87f77d7b50dfeb28e9e9c35cfd9f libobjc/configure
d773d8ff5b3088a97369ce50b11cb5c6 libobjc/configure.ac
00b8614c31c6d0cab84ab81d169bae9d libobjc/encoding.c
9ba9119db576f0be30f44e0379902e96 libobjc/error.c
@@ -64597,15 +64698,15 @@
0515e81bb9537b54363f43e600709480 libobjc/sendmsg.c
74f4533df36122cbb26b0ce253c71028 libobjc/thr.c
a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB
9f00487b9cc3a3f89cb0a90122c69f87 libquadmath/ChangeLog
07e3c812cac10e9d1487af16885340cd libquadmath/ChangeLog
d7dbe0de939649d3db57b5ce9603d98a libquadmath/Makefile.am
fe797182ebe0e18ac3aa279d6429e5c4 libquadmath/Makefile.in
9883ed42b491d8aea83fdde90561cf2a libquadmath/acinclude.m4
aece970dd74d47d051257c4d4d1e91fa libquadmath/aclocal.m4
74797a8a506b3e058beadc0eda9d122e libquadmath/config.h.in
60e8ea98380ff14646041337db757b38 libquadmath/configure
0242abdb7dfa19e572aab19a84fbb1fd libquadmath/configure
fc4c933dccd2162b37d4770a3b41e5ca libquadmath/configure.ac
3a46f66ff228d6421107b505c4947284 libquadmath/libquadmath.info
6b14cc19fe478aa5776740d5a39a3d52 libquadmath/libquadmath.info
97f99ce492fed09e4d9048fc072d9abf libquadmath/libquadmath.texi
77280bb7ee423875e03d9c0d34527df6 libquadmath/libtool-version
8fcd0b1a8d6cee68dfc568a178af45fe libquadmath/math/acoshq.c
@@ -64716,12 +64817,12 @@
5172fac7061ec0ef8069183497c424c6 libquadmath/strtod/strtod_l.c
da808e110fc09ebd41ebd405790a70df libquadmath/strtod/strtoflt128.c
d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c
5eb2a80802f5ba09d3a6e22512c2e2e9 libssp/ChangeLog
12b5d04500c26bb5ccd62e012e285409 libssp/ChangeLog
01d9954c400db04da1b8705029e6d9d9 libssp/Makefile.am
6f9651cc4e77f9e7629b0142b05a90e0 libssp/Makefile.in
8b0dd0c2a8b446bf5577a8562ad19885 libssp/aclocal.m4
f4886e6dd0590caba717fd1bc96a6f50 libssp/config.h.in
5a120643885e809ab2b89ce0412b4a22 libssp/configure
76eae32a44c478e54ee91045a814e727 libssp/configure
27aa21abfa29defcdd92c91ad1d443ad libssp/configure.ac
8068f3e391d39bf2201dfa1ed2a2efc6 libssp/gets-chk.c
0ac32b60459d1fdec670990324d7bdc6 libssp/libtool-version
@@ -64745,7 +64846,7 @@
e9ab923d2562bf5f5be6883dfb9f0184 libssp/strncpy-chk.c
5e0d8b8a766c31b12354baec1b7a159c libssp/vsnprintf-chk.c
f56ab1f8922a16f7e9e4f5270ae1e34e libssp/vsprintf-chk.c
e9edb40636df136a481a1a5396e24d60 libstdc++-v3/ChangeLog
4ee3b350a7c310e3ec7783b1fb480872 libstdc++-v3/ChangeLog
0cda0576312959181333fb6113d11fca libstdc++-v3/ChangeLog-1998
7ff71dd25a4fdbb908c1bfffea126a10 libstdc++-v3/ChangeLog-1999
3c2968659337a7726b4d66af48d049b6 libstdc++-v3/ChangeLog-2000
@@ -64925,7 +65026,7 @@
09cdd6037b944e56156fc8fa46db68f7 libstdc++-v3/config/os/vxworks/ctype_inline.h
14da34daeab912010051832bd1318303 libstdc++-v3/config/os/vxworks/ctype_noninline.h
d5d508b070210ba9dc09da135368c015 libstdc++-v3/config/os/vxworks/os_defines.h
d6f92a6a8f8cd4c2a0510f50fe679101 libstdc++-v3/configure
8110d5210eb7cc82e30cb9e25668225e libstdc++-v3/configure
4f30de62ec836e150a8c27f715a34c60 libstdc++-v3/configure.ac
fdbf5b92262cf4f43d92a0b729b43cca libstdc++-v3/configure.host
88d489c9978f285076911e6db60af008 libstdc++-v3/crossconfig.m4
@@ -65430,8 +65531,8 @@
88ab4f987cce3a9e3b47fe753255ee5a libstdc++-v3/include/bits/functional_hash.h
8126804077ec127d4a2236d52b487c13 libstdc++-v3/include/bits/gslice.h
a151d4a7c64c0a31a99bcc9706860206 libstdc++-v3/include/bits/gslice_array.h
28feef1ab1ee0ec3afc09227e9ca3724 libstdc++-v3/include/bits/hashtable.h
ae306c609bba45ec7c8796a6ac6c56d0 libstdc++-v3/include/bits/hashtable_policy.h
1414305f9eca026d7769f5ed17379bad libstdc++-v3/include/bits/hashtable.h
dcbed5b4bb34e9bd64aeb00c5e16fdac libstdc++-v3/include/bits/hashtable_policy.h
8537f41009ffaa36efb8c966bca3e94a libstdc++-v3/include/bits/indirect_array.h
3ee20e3101b2d37a48133d8beeb490d7 libstdc++-v3/include/bits/ios_base.h
3267ac23b2e0f8f729dfefea81c55065 libstdc++-v3/include/bits/istream.tcc
@@ -65448,10 +65549,10 @@
d9b0da2ac50e6699e8d189c446fc22d3 libstdc++-v3/include/bits/ostream.tcc
ac01b6ef7c65327582c3c8c887b5c9a8 libstdc++-v3/include/bits/ostream_insert.h
bd4a0b2844e7a4586138ce759b31b253 libstdc++-v3/include/bits/postypes.h
04d7283c787fdd09896d7da1e2dee39d libstdc++-v3/include/bits/random.h
e21d24ee9b4aef377e5ddff89cdc21e4 libstdc++-v3/include/bits/random.tcc
6125c7c0901604643033e2fcfba31b39 libstdc++-v3/include/bits/random.h
38a25f7d9f6ac103a9a168ac22f82115 libstdc++-v3/include/bits/random.tcc
f5e20603f1fef80d9d92dbd544a59d56 libstdc++-v3/include/bits/range_access.h
3995324e1ca52732cb0221e1e7db4581 libstdc++-v3/include/bits/regex.h
dad62c4d98648daf9dce9092e024b330 libstdc++-v3/include/bits/regex.h
b08d5b03566d19157124f07ef929f5e7 libstdc++-v3/include/bits/regex_compiler.h
df1769c1a94b2cafa0b8ac3de72787e8 libstdc++-v3/include/bits/regex_constants.h
a4bedb7bdbd65e0a151f21def4de1316 libstdc++-v3/include/bits/regex_cursor.h
@@ -65460,8 +65561,8 @@
085f8172f3708253ed98def8eee21030 libstdc++-v3/include/bits/regex_grep_matcher.tcc
b739cf6b8d1bf119a12ac7504f87549e libstdc++-v3/include/bits/regex_nfa.h
054cf2ec930ffcaf51e826035a261e9c libstdc++-v3/include/bits/regex_nfa.tcc
27af48a2ef3fc2af285501ed628de73e libstdc++-v3/include/bits/shared_ptr.h
9150e849d887a6008dec8b85f502c60a libstdc++-v3/include/bits/shared_ptr_base.h
b44c049290a8ab2ba3adf87f05214f0a libstdc++-v3/include/bits/shared_ptr.h
f95e83dd6103cdc381e6daf01837f3fb libstdc++-v3/include/bits/shared_ptr_base.h
feb647216b641003d67f62b2dbe20093 libstdc++-v3/include/bits/slice_array.h
7c915d03311882c4d1cc470e180dd109 libstdc++-v3/include/bits/sstream.tcc
6c3cc516f8420ea0702f2c91a11e3fbc libstdc++-v3/include/bits/stl_algo.h
@@ -65475,10 +65576,10 @@
a9c273d77a4e565d4e2678b5d7bc5094 libstdc++-v3/include/bits/stl_iterator_base_funcs.h
03a092b85e6ce8db3c686e132640cd44 libstdc++-v3/include/bits/stl_iterator_base_types.h
a6b317048c3871d60d4ea4fe543f3158 libstdc++-v3/include/bits/stl_list.h
525e6d53de93ac74c6aace1b01e37e75 libstdc++-v3/include/bits/stl_map.h
858075c37ddea00bbe92715b974044bc libstdc++-v3/include/bits/stl_multimap.h
a9164c49a7820f8ba3b71b01b66af606 libstdc++-v3/include/bits/stl_map.h
2e0079c28c83153c1b2b195ac06d2d0f libstdc++-v3/include/bits/stl_multimap.h
d5c3f230598da0eef70fa15e32911465 libstdc++-v3/include/bits/stl_multiset.h
f516feff9cec633943cdd741d43446fd libstdc++-v3/include/bits/stl_numeric.h
d9d98677e6041508fb6170372dc6e7a0 libstdc++-v3/include/bits/stl_numeric.h
6bd2ddc98ad0cb655d6abff9cbc8859e libstdc++-v3/include/bits/stl_pair.h
5b9d270db8b1a814267d9e5c1b7a7f6e libstdc++-v3/include/bits/stl_queue.h
8dbfe67dc74febc0c7c0621c4e73324b libstdc++-v3/include/bits/stl_raw_storage_iter.h
@@ -65486,8 +65587,8 @@
3fe0ea2b379a1112e4993aa8d4e4db8e libstdc++-v3/include/bits/stl_set.h
603403d096eb5c61b05aaca2d1b6ea2d libstdc++-v3/include/bits/stl_stack.h
55bde9f8521f82197cb83d5021ca16d0 libstdc++-v3/include/bits/stl_tempbuf.h
590595aa9235899611389a8274c0a931 libstdc++-v3/include/bits/stl_tree.h
07f7f34df34b5db22e8bf8d979b5f593 libstdc++-v3/include/bits/stl_uninitialized.h
49438a9ee279b103b1f23612380c7fc6 libstdc++-v3/include/bits/stl_tree.h
88019dcbcb29a519058e44d2437729a3 libstdc++-v3/include/bits/stl_uninitialized.h
19d0db8df804dc0ca6e8166cb22a4d8e libstdc++-v3/include/bits/stl_vector.h
d8fcbe8391112e4c55a28f898483fa5f libstdc++-v3/include/bits/stream_iterator.h
2e4ea0dcb63a6585ac88de7802e0bfcc libstdc++-v3/include/bits/streambuf.tcc
@@ -65553,7 +65654,7 @@
57d7fa78c55e536f9f53c1b93069799b libstdc++-v3/include/c_global/ciso646
74459fd66a7b968130c068457f1a9ff9 libstdc++-v3/include/c_global/climits
9205b7724a8be66f00aac857626723e7 libstdc++-v3/include/c_global/clocale
fdb1b8f3bc39d71d3dab3094786a2d4a libstdc++-v3/include/c_global/cmath
3f72a864373130e0eb8aa717b991d125 libstdc++-v3/include/c_global/cmath
4dcd05d1209b7a29c62ea9e81efa3225 libstdc++-v3/include/c_global/csetjmp
0aeaf4146dfffd7dd6fd4c22d4b95624 libstdc++-v3/include/c_global/csignal
47022662e4ea0cdbf6490a317f032c14 libstdc++-v3/include/c_global/cstdarg
@@ -65594,8 +65695,8 @@
daaf9647513dd9a14a62b7fdd344b93f libstdc++-v3/include/debug/list
89ad12bf2a168fd5f26a32ee26049eef libstdc++-v3/include/debug/macros.h
7578e6060647e269dda3659c8dfd8579 libstdc++-v3/include/debug/map
27e005ad4e09909b4ea198b40773e40b libstdc++-v3/include/debug/map.h
6de69896cb51690dfd51d8a381479882 libstdc++-v3/include/debug/multimap.h
b5984fa7918f587bb838e3d6f6a57d69 libstdc++-v3/include/debug/map.h
8200c78939506518f88c876f4b829553 libstdc++-v3/include/debug/multimap.h
53825ac6fb307c11f6b5fda7499c7c29 libstdc++-v3/include/debug/multiset.h
e1d474bff72abdbe1539a2b2a74e4dee libstdc++-v3/include/debug/safe_base.h
ad089ed2b6bd41de072b9ff9f48bc7d3 libstdc++-v3/include/debug/safe_iterator.h
@@ -65605,8 +65706,8 @@
2714ade2b80004f280a517ba2846df58 libstdc++-v3/include/debug/set
7b924a978941a6d34441eae6a04c2405 libstdc++-v3/include/debug/set.h
ddce65817999e8cb5b39c88b6ba44e3d libstdc++-v3/include/debug/string
973f3945688253594d8e3c11eb5fcd63 libstdc++-v3/include/debug/unordered_map
fe5537e63ee3c92a8d007d524325d76c libstdc++-v3/include/debug/unordered_set
24fa31c1b0858dbb87272e54f5085e0c libstdc++-v3/include/debug/unordered_map
8427e32fb30de08654aed79f60a21b96 libstdc++-v3/include/debug/unordered_set
954baf2cbeecbf819c673c3666a29f01 libstdc++-v3/include/debug/vector
a9e43be1d6ab5dfbef9edb9c31c82f06 libstdc++-v3/include/decimal/decimal
cf2e0bf6c71fc1b4535b503f6805963c libstdc++-v3/include/decimal/decimal.h
@@ -65906,7 +66007,7 @@
52ca139d88d2f6916dd2145794cb1070 libstdc++-v3/include/ext/stdio_sync_filebuf.h
ddeac4c29ae59ce3ca8941421a5f40e8 libstdc++-v3/include/ext/string_conversions.h
aadcf60d26ed34466eea90ace9eb6ceb libstdc++-v3/include/ext/throw_allocator.h
409102af2da4d1e23d67a4b9ec29ceef libstdc++-v3/include/ext/type_traits.h
ff63a2c757390ddb099fdef6a02c3a8f libstdc++-v3/include/ext/type_traits.h
4342fd7e734970c1f06a80855909dc65 libstdc++-v3/include/ext/typelist.h
d87f879ed8aa58347c41cc257da5857e libstdc++-v3/include/ext/vstring.h
96719101264cd58f5433a27d9b68bfea libstdc++-v3/include/ext/vstring.tcc
@@ -65958,41 +66059,41 @@
e1c1c86accd2a005e8827c724185ce61 libstdc++-v3/include/precompiled/extc++.h
358a410a6f1bbd51e4ad6803adf2da17 libstdc++-v3/include/precompiled/stdc++.h
cba0fe3efbd2208508aea420e9eb8766 libstdc++-v3/include/precompiled/stdtr1c++.h
8b25cb531b5396a6d327ce10a111ae69 libstdc++-v3/include/profile/base.h
f7bcd11caab59789a5d73e8ea4ac65f4 libstdc++-v3/include/profile/base.h
2cb06cd8a1e616b0d554c6135e1e086c libstdc++-v3/include/profile/bitset
4686268219cb3304019dc7e5d895708f libstdc++-v3/include/profile/deque
ce5058fd48d03520e6c03a9788995dc8 libstdc++-v3/include/profile/forward_list
22958479c25f09d072e4022fc1a86e16 libstdc++-v3/include/profile/impl/profiler.h
d511c1e6e060046399589e469cd014cd libstdc++-v3/include/profile/impl/profiler_algos.h
07ce30ffeccc2141c5f335cc451cd928 libstdc++-v3/include/profile/impl/profiler_container_size.h
cd7b420c8ee6994aabff4afb8d22851e libstdc++-v3/include/profile/impl/profiler_hash_func.h
2baa5e94fe3dbdaa2a00b28078f02e50 libstdc++-v3/include/profile/impl/profiler_hashtable_size.h
95770a1c71d3a82382b5e69e6c664499 libstdc++-v3/include/profile/impl/profiler_list_to_slist.h
64f9fe5291bf80e6b29f54214c1e5133 libstdc++-v3/include/profile/impl/profiler_list_to_vector.h
8e584bdeac5a8c6c91b4342adf799f29 libstdc++-v3/include/profile/impl/profiler_map_to_unordered_map.h
1dea0e2a65a75b58647ebc75139955b6 libstdc++-v3/include/profile/impl/profiler_node.h
b7c97c2641e4f01c65c470a4a98532c5 libstdc++-v3/include/profile/impl/profiler_state.h
3112cfc3b0ef544040d8c857f1de8237 libstdc++-v3/include/profile/impl/profiler_trace.h
bc15563fb187aa38e02b3088f9724b05 libstdc++-v3/include/profile/impl/profiler_vector_size.h
f3716e8a0c5529ba942cd1910f081475 libstdc++-v3/include/profile/impl/profiler_vector_to_list.h
d2a8e58b8f86131f567dda0ceb3492b8 libstdc++-v3/include/profile/impl/profiler.h
5621c41f5eaab5d6cbe2dffed3da4993 libstdc++-v3/include/profile/impl/profiler_algos.h
55053e3c1f666c18a9c924a176ff2d7e libstdc++-v3/include/profile/impl/profiler_container_size.h
676c7d3081e626a82a1f06daf85bbfd4 libstdc++-v3/include/profile/impl/profiler_hash_func.h
d745bb75d8a0a42d2c0f1af5bde88b9d libstdc++-v3/include/profile/impl/profiler_hashtable_size.h
965cc81c5ac4b0e5a249c0689deab16e libstdc++-v3/include/profile/impl/profiler_list_to_slist.h
4988e096d443f174cdb0ff85b617ee23 libstdc++-v3/include/profile/impl/profiler_list_to_vector.h
af83c0f4eaf9c1854f91469bce0c3134 libstdc++-v3/include/profile/impl/profiler_map_to_unordered_map.h
38bdedf2d5f62341b9b682e1f0aae9eb libstdc++-v3/include/profile/impl/profiler_node.h
73ecf4285a76a7a9114b71317c2e4b5c libstdc++-v3/include/profile/impl/profiler_state.h
5480bb8d7cf49553a069d6a9a96c272d libstdc++-v3/include/profile/impl/profiler_trace.h
88de3833e3be1ee2bcc4487d94617dbd libstdc++-v3/include/profile/impl/profiler_vector_size.h
e10a7bd7dc721e5f7dff507df53d79d6 libstdc++-v3/include/profile/impl/profiler_vector_to_list.h
400918f1b296c53cfed1298377aae6c0 libstdc++-v3/include/profile/iterator_tracker.h
8a0bbdf7c82eacdf7d024ba350882767 libstdc++-v3/include/profile/list
4f632e7a423ba15b32f15c4a9ad0ced8 libstdc++-v3/include/profile/map
b55ef71ab843adfdcd5277cde9f751db libstdc++-v3/include/profile/map.h
740b33fed13bf18c2a9d64bb2e4455f5 libstdc++-v3/include/profile/multimap.h
343d5377d7ff480e3d219736d3b4ec58 libstdc++-v3/include/profile/map
af077f03d6313917e19ccf8afe15979b libstdc++-v3/include/profile/map.h
20df6d7d920adb558fa9e3d3ff6f753e libstdc++-v3/include/profile/multimap.h
061a18ecb99b8dbb847d29d284bf04e9 libstdc++-v3/include/profile/multiset.h
1552284c037c778f5fd7fbe97c6477db libstdc++-v3/include/profile/set
4fe399e0eddaf3afaf8e63ea85369055 libstdc++-v3/include/profile/set
2bd89ee985dc45163db850d31ac43afa libstdc++-v3/include/profile/set.h
9ffef571dc91d1a05e2d315c0137b599 libstdc++-v3/include/profile/unordered_map
6ab8b2ec613d58b84ee2c67983128096 libstdc++-v3/include/profile/unordered_set
83c6153f760c3b622624272a0e260843 libstdc++-v3/include/profile/vector
ee8eb3115df7ff7bd783ef1df5173a97 libstdc++-v3/include/profile/unordered_map
738a4bd076691bd890422add7e21bf73 libstdc++-v3/include/profile/unordered_set
8afc38a30b5566eb0c69338f2129883d libstdc++-v3/include/profile/vector
3707285b48c6b76592f2cfb998f4775c libstdc++-v3/include/std/algorithm
2e3b5851db99d5eb6c20469974784099 libstdc++-v3/include/std/array
4bac68bb510e1ddfb68474ea0ef93e54 libstdc++-v3/include/std/atomic
d33bc1d855dc4f1c11bfd8c3c181fdc4 libstdc++-v3/include/std/bitset
26ae23f0bea3eb17e400421add947eee libstdc++-v3/include/std/chrono
724847a7a7f14bf59f34c761c801a791 libstdc++-v3/include/std/complex
a11b4f8d85f920290708a07e73780ea7 libstdc++-v3/include/std/condition_variable
3ad496ae84d1e4fa0d48e9d78a549f19 libstdc++-v3/include/std/complex
e9ba7bd208e0c199bc58e62874485c15 libstdc++-v3/include/std/condition_variable
6ffd822856ffff77325f19c4190e3005 libstdc++-v3/include/std/deque
3f4b18d6b6d42f21b3f6cec3b6f150a9 libstdc++-v3/include/std/forward_list
3243b60ea96d73f92e1b8a1db2080d5b libstdc++-v3/include/std/fstream
@@ -66042,7 +66143,7 @@
cc2e375b8323c852c52cf62ecfbf5b91 libstdc++-v3/include/tr1/cinttypes
25258b3e1a053eb152e14f5312674d93 libstdc++-v3/include/tr1/climits
884c10643ef108f576af71da611c9183 libstdc++-v3/include/tr1/cmath
b06b0d99f7535bf3171792af9a0956f4 libstdc++-v3/include/tr1/complex
b956dc1d764888d36960f2ef54ef6cfe libstdc++-v3/include/tr1/complex
ec10594625e786d15c8c9cc7436e8b76 libstdc++-v3/include/tr1/complex.h
a0856f480c96ca4de55348fb1a06b068 libstdc++-v3/include/tr1/cstdarg
e5ee79ebe9ae4bd0de22970ab2842ba4 libstdc++-v3/include/tr1/cstdbool
@@ -66070,7 +66171,7 @@
7349178e7e853c73afdf5d24f9f5c200 libstdc++-v3/include/tr1/math.h
7d67d8011f4de3824d561b76445cc9a7 libstdc++-v3/include/tr1/memory
be830a1426598d713416d7665c2503c0 libstdc++-v3/include/tr1/modified_bessel_func.tcc
ef150fd306c763f9369db21fa74598b1 libstdc++-v3/include/tr1/poly_hermite.tcc
b2daa30294746ab11f76927a1a1306c2 libstdc++-v3/include/tr1/poly_hermite.tcc
a9462421ab74e4798616daea047ceb27 libstdc++-v3/include/tr1/poly_laguerre.tcc
128201ff1149a5d58abf44ed5a7f4ae5 libstdc++-v3/include/tr1/random
3f18de0192893d9653f3654ca38d6d9b libstdc++-v3/include/tr1/random.h
@@ -66163,7 +66264,7 @@
5fb51673038baf4f5e72275460d22e3f libstdc++-v3/po/fr.po
11079eef5dba307de8012bb549b39ebd libstdc++-v3/po/libstdc++.pot
73e58d317bc74d52964a74d24726fd8f libstdc++-v3/po/string_literals.cc
7702aace029b67affa42cde2af2bf8a6 libstdc++-v3/python/Makefile.am
1011aa12c1a10b18bfe57b498ca4f287 libstdc++-v3/python/Makefile.am
4e8a231394118e469c5dd01fc278a463 libstdc++-v3/python/Makefile.in
2668f329ad7c4ae633ddfce61b74a1a4 libstdc++-v3/python/hook.in
68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py
@@ -66410,6 +66511,7 @@
19e5a40d360c16c847cefc239600cdb5 libstdc++-v3/testsuite/20_util/allocator/10378.cc
366ad61c4f09155a85f2858896715ac9 libstdc++-v3/testsuite/20_util/allocator/14176.cc
5107de50a433ffedf132bea176562887 libstdc++-v3/testsuite/20_util/allocator/33807.cc
7162da1f11853c9776396d238915c7a1 libstdc++-v3/testsuite/20_util/allocator/51626.cc
67dea2a012aa3d76f27008b194d0a3b3 libstdc++-v3/testsuite/20_util/allocator/8230.cc
150c8ca7e1d08c39b1efd548de2a8b24 libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
14e8341bd8e27e19d055f0694af938f9 libstdc++-v3/testsuite/20_util/auto_ptr/1.cc
@@ -66630,7 +66732,7 @@
fd358ba1d5b59a93a62d7fd23f6a18ab libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc
c7722086978103d7bc2d82b5670b0076 libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc
7e3c53478d29824e5a4c01329797b0d0 libstdc++-v3/testsuite/20_util/reference_wrapper/41792.cc
515b689600f6a0fcec091df1f9c1c0ce libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
c6b534aea9767b5e7f26bb574a1e51cc libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
e881ef5876abf3b3ab718084c9ba854e libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
0aa376829d9d50a32c7584fd5739afc3 libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc
60931e6fe504f0aa76e1bb91cd97649b libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
@@ -66655,7 +66757,7 @@
00e080c7c46d8f2001a9f707da6520ad libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc
4b1be9ca99f7fff849436ee07b914ace libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc
1d654b1dc417185f768b72daea669b85 libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc
ea9f30350c8ac64f30eb1e69a314ef3d libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
d4926b23a115be1db70e43937e006ae6 libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
4864f49bbe2ebfb6bdd5e9e2ba562f29 libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc
5af51e0020eb3dc31e330dce74eef730 libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc
002915b525026d923174f7e5d4720413 libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc.cc
@@ -66773,7 +66875,7 @@
5dd89e084229575ed770f4d77acf02c8 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc
318db9d356c3b1723d0f0f69101f207d libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc
e49e5fbbe8db6c266a8eb3b131de3250 libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
640bf90bbe5a2e12265313c46ac7c3a2 libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
14f49638abdf78855cfdf712789538a0 libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
7c185c78a5a0f446bf0fc0a6240ee396 libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
49877ccb002f6b04b4f9ef4f7604d8c5 libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc
b9a0a0ae96503dd0cf00e3b060d504d8 libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc
@@ -66874,7 +66976,7 @@
f1fe3ef4fb3bbba88badf0a484eda5af libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc
7cb8d255c383498e927424f9210bf974 libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc
ddd45ac6f7ef09b2bdaa0c026f4b42f9 libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc
785ec3975f97839ceaf5946c30e43cc3 libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc
ae12b254cf0155ca697f837944d772a6 libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc
3da4a7d36ab6b6202d4a84e92efd4dd4 libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc
dd38a21e5b5e39bbec988e8142dbdedb libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc
4504a1dc62cea1d4f7a01dac52879bef libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
@@ -66884,7 +66986,7 @@
184ad17e4d5064beb7621b93b0f41bf8 libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
50b25a354ea56d4fcb9574fa0ff72c72 libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
940dab1126c365f0f5f8a6acaa2cfc1d libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc
f9759dba3d66429713ba25b631e7a20f libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc
56778032cdf952191fb3a9bc90cf6953 libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc
e24def969dfe344d3dca7577ba9c4fc7 libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
b6a3e6554f7ce8e963ce1308aaa0f30a libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc
b5773cef72a74e1ae181da7aec625d2e libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
@@ -67825,6 +67927,7 @@
8e8bff2c4b4085ff529194493178e42e libstdc++-v3/testsuite/23_containers/map/element_access/46148.cc
f120212b1dd8f095b30251f7cf0fac91 libstdc++-v3/testsuite/23_containers/map/init-list.cc
1b6ee014fb47669121671d0ec940f852 libstdc++-v3/testsuite/23_containers/map/modifiers/erase/47628.cc
136af57ff009be1338fca325702b3bd9 libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
f600f7c3beedfb73d35de2ef2f505706 libstdc++-v3/testsuite/23_containers/map/modifiers/insert/1.cc
88b97081a62513e2582525685e0ad06b libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
dd97db1c6da784e11b7d61fd2e5cc45c libstdc++-v3/testsuite/23_containers/map/modifiers/insert/2.cc
@@ -67868,6 +67971,7 @@
57be5d0e6ad03ae87e93366a2c4d1c55 libstdc++-v3/testsuite/23_containers/multimap/dr130.cc
c9b061878d4a39c65e709fac41b91e74 libstdc++-v3/testsuite/23_containers/multimap/init-list.cc
a1f1a8f263b005c6386451f9ce364d98 libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/47628.cc
7dca33a6ce496eab233240dd55b480c4 libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
8d4143a75866081eb2370e4b4dec2fd0 libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/1.cc
487086bd748df3dc13799ae6fce17d13 libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/2.cc
085bd726118f98ba29aff9e245e9fe17 libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/22102.cc
@@ -67905,6 +68009,7 @@
0512b9d8e0a71b098699472df459d918 libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
f4828f381b96d1685cf27251c5f525ff libstdc++-v3/testsuite/23_containers/multiset/dr130.cc
c742ca9b0ce3d57602f090c66d8f286e libstdc++-v3/testsuite/23_containers/multiset/init-list.cc
efc9963e7b498109b243e95d7e9cf7b8 libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
ab38afe370dfdf80606d2505e0eaa1ac libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/1.cc
e2723ebff08b62cb5249662cded1553f libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/2.cc
00e291e6770d88679c74871df59ed390 libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/22102.cc
@@ -67956,6 +68061,7 @@
f1f2e820d8c0cc6f0b66e3223af940d3 libstdc++-v3/testsuite/23_containers/set/init-list.cc
32af7d872bbee0e2e870f7012c9b0b15 libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
addfbc1bcc773e9dff72182a4cef15f8 libstdc++-v3/testsuite/23_containers/set/modifiers/17948.cc
ef104af91545ed1211c0ded64e6aeda1 libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
41309f54c90886ee562dd85715736787 libstdc++-v3/testsuite/23_containers/set/modifiers/insert/1.cc
bf7acca554aa9c75903a43126e3dc97d libstdc++-v3/testsuite/23_containers/set/modifiers/insert/2.cc
e8d5a28bb02a874ff4e92f54db8d6ed3 libstdc++-v3/testsuite/23_containers/set/modifiers/insert/3.cc
@@ -67992,6 +68098,7 @@
8bfa983553e575cf668c4fc933f3e230 libstdc++-v3/testsuite/23_containers/unordered_map/dr761.cc
3e4254eb0050929013eb5c61a09fc9df libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
8d0888f7ce12f9a5624a564773eae94a libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
9f9de2dee89d6a08198a96be7811216e libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
20e2916a1dccbb2a42869869f924e8df libstdc++-v3/testsuite/23_containers/unordered_map/hash_policy/dr1189.cc
e45091c1084b5e607633e86a0396fdde libstdc++-v3/testsuite/23_containers/unordered_map/init-list.cc
76d861255075f791d64d90801c7ddb81 libstdc++-v3/testsuite/23_containers/unordered_map/insert/24061-map.cc
@@ -68028,6 +68135,7 @@
7e50aa7da32261eb7a72777f7415796c libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
0cac23f5ea66a50b3171c79653b7a55f libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
a164daf29dc3f50495fd4e3adfb609c1 libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
8ef7846845f8f8c99dbe9cb2f9fa2996 libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
06447a10e732b5b7819f3cc932659645 libstdc++-v3/testsuite/23_containers/unordered_multimap/hash_policy/dr1189.cc
05fbbe0c43225592689ba0b3f1e0122d libstdc++-v3/testsuite/23_containers/unordered_multimap/init-list.cc
2f13484376f58e7bb45c734778e058a4 libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
@@ -68060,6 +68168,7 @@
15b6d3dc82f1a852fe3d62101468864f libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
90a7eb258c6a2ab74296278837548839 libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
03a710c53486fd72df7a93dbe81767a4 libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
411399c11e07f79cc1d334761aeda045 libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
6c7c74077e9dfc2fdabbe1f7deb254d8 libstdc++-v3/testsuite/23_containers/unordered_multiset/hash_policy/dr1189.cc
62754a25d98c55318e5ec2623a223ceb libstdc++-v3/testsuite/23_containers/unordered_multiset/init-list.cc
fbc37be3e520a2f9efdc9d644c102dfd libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc
@@ -68090,6 +68199,7 @@
936e6b5e6b2e3595e468bf97f2cdaa26 libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
d043285677516cd26b8a268491806885 libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
40eba5a576a85514849538752714d4d5 libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
f1c17a5538746004481008f4b182bfe7 libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
a9c8ee1a5748eb2d487e51e1b839fd51 libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/26132.cc
25f0b444c20659828fec47ffeb843569 libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/dr1189.cc
ed0d01368c90c007d29efacd8fea9f90 libstdc++-v3/testsuite/23_containers/unordered_set/init-list.cc
@@ -68098,6 +68208,7 @@
59d5457d40df81375b8724150d450cdd libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single.cc
c7e89728f69debb2ba04c4baee8c0916 libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single_move.cc
e2551d1be83abfe0d2b13fbee2e85dc6 libstdc++-v3/testsuite/23_containers/unordered_set/operators/1.cc
20dc348e1c3cd1564a2e664e92acefd9 libstdc++-v3/testsuite/23_containers/unordered_set/operators/52309.cc
e8740aac4e27d8f6f209e88e9d40242a libstdc++-v3/testsuite/23_containers/unordered_set/range_access.cc
b47e7681460e40b5c1df86dc142afd37 libstdc++-v3/testsuite/23_containers/unordered_set/requirements/citerators.cc
ea59beeea0a61bf93c5e7a80f15609f0 libstdc++-v3/testsuite/23_containers/unordered_set/requirements/cliterators.cc
@@ -68680,7 +68791,10 @@
071b5403322f5f6b079d50dd6a0c5861 libstdc++-v3/testsuite/26_numerics/adjacent_difference/1.cc
7b6b599529e21dfe3591934133486bfc libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/2.cc
14cdda812be927017a1ffb57776a87d3 libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/pod.cc
f57c68c658da84d76be876c469daf04c libstdc++-v3/testsuite/26_numerics/cmath/51083.cc
e1b708c06bcc98856498e63f0bfe1dd8 libstdc++-v3/testsuite/26_numerics/complex/13450.cc
ed797e3481e85ad3d837903299b0d41e libstdc++-v3/testsuite/26_numerics/complex/50880.cc
49afd0581f6b84dc8687224c483afb86 libstdc++-v3/testsuite/26_numerics/complex/51083.cc
a442b3d0dfdc325e5cdf6960bf2889c8 libstdc++-v3/testsuite/26_numerics/complex/buggy_complex.cc
ef7faf44186a05708b383e0879f9c6c0 libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/constexpr.cc
622f7ab3a8954ab3b41997082317fad5 libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc
@@ -69865,6 +69979,8 @@
4d92cb4df4d3c9274207bf28f91d1c93 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_00_03.cc
0072bdc3f58004c2a51ef0ace252a9c1 libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_01_03.cc
5f1c774068ae6d1bb83a8c840cb8c38a libstdc++-v3/testsuite/28_regex/algorithms/02_match/extended/string_range_02_03.cc
b26a5f20b1107813bf88aac7d8986fc1 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
ad1ff8eacb3f5cdd77f8786738120501 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
debd6369aa7d0255b3c42dc41f97b1e2 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc
e8753774f262a2d3ac519a96078e2806 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc
2a6eecce6315eab4372ade72bc7674f0 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc
@@ -69999,6 +70115,7 @@
b7387548001c72cc71995bece6f764a4 libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc
3ec87885135bd78ac4ce271188a43e53 libstdc++-v3/testsuite/30_threads/condition_variable/requirements/standard_layout.cc
726980226da2a16a70a3848dfdc1749b libstdc++-v3/testsuite/30_threads/condition_variable/requirements/typedefs.cc
8135585111b5efaa764947ab2921cb21 libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
7b2a2f7f9495dae87ddf0c0b66400d5d libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc
9546d95f0a4f171919168b8c9bd2b7aa libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/assign_neg.cc
647c8fe6872dfb8fba3658ed569314e7 libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/copy_neg.cc
@@ -70520,11 +70637,11 @@
6371fef5c52184bcd679495a91f139ad libstdc++-v3/testsuite/ext/throw_allocator/variadic_construct.cc
fb180e0a3b442aa108971fed9b1c4d47 libstdc++-v3/testsuite/ext/throw_value/cons.cc
8162a5581ae1b6b11e05c2ebbeaa31f7 libstdc++-v3/testsuite/ext/type_traits/add_unsigned.cc
a07d3a11a02cb8c529ccb036080ec38f libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
9c9e3d88f97e6bc479d16deeb6daf95d libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
2c2d040b97d0ad38ff040ca48886a822 libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
67867fb003e9fcc7c33210b371a94fcf libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
401aa416c67533eca12ba12aad09cfa3 libstdc++-v3/testsuite/ext/type_traits/remove_unsigned.cc
4ef21d2b5b952db2751de0df22653db1 libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
e8aaa8d3ebe311d6a562b5da472cc272 libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
46def458660128a5be692c92069e1bec libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
04d7032311d9284fed1060045ccb7095 libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
db9ee970a506a898b92152e2100be68e libstdc++-v3/testsuite/ext/vstring/assign/move_assign.cc
0fbb5a8dac7587906d4ede633235be8b libstdc++-v3/testsuite/ext/vstring/capacity/29134.cc
ef5b5c5b5fd73a0384df595ff58e3f61 libstdc++-v3/testsuite/ext/vstring/capacity/shrink_to_fit.cc
@@ -71188,10 +71305,13 @@
15badab333589179bab10d5299e3fc2d libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc
709966a6a998ae6495870bf7c144f1d3 libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/functions.cc
51767b4083b416d7eb2488a85e26ef18 libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc
36fc9a83e9b310000719472e19caf559 libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
48e8d25f67ac18c9467d19141f288b69 libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/functions.cc
61dd7ef4938682e1637669cc8e8df40b libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads.cc
9636e80cb232b193f594a1d9dfe0777e libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/templates.cc
00dbb818d851de3988380bf8d4de07eb libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc
2fb9feb0db57d4f63c53e78302c4c1ce libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
7ecb542c38080e6ead768003ba5812cb libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
0eef3a3c7eeefab22467e0208057346d libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/functions.cc
5c973abc4814f166a86e267051f94100 libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc
fb43366b6c338179c0fe77f37a48e7ab libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc
@@ -71316,37 +71436,37 @@
0162296a58c6611ce8ebe4a59cdd29d3 libstdc++-v3/testsuite/util/testsuite_tr1.h
e980c4d943ac2af18dcbc35297afbdc6 libstdc++-v3/testsuite/util/thread/all.h
18097d974d6f6a830c12c42592f0006d libtool-ldflags
d65d47d2ff82eaf7b39fbf26d000eb96 libtool.m4
b9f3c47af2578b79556486a250abb2d6 libtool.m4
247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4
01d0921596c9fa4d9a7add89fd6fc1f1 ltmain.sh
85837c434daa568689bcc80cc6bd18e2 lto-plugin/ChangeLog
77d7491502e8a940ed6b4a09f23e781e lto-plugin/Makefile.am
c47282239e4800595ce83f08025fcf0f lto-plugin/Makefile.in
290c692480f2399c4fd3bd9211f9f475 lto-plugin/aclocal.m4
23221e361444f63c4f96b7f8575794e5 lto-plugin/ChangeLog
266147278cdeeab779ac75a4c3e2ee6d lto-plugin/Makefile.am
db5afb8268c8a17e49d078936ef6fdbc lto-plugin/Makefile.in
e0b6c77fa2326a08aa2d7a69e87e0f8c lto-plugin/aclocal.m4
e8d8e3dc8d2e134b03f22c7c567d030c lto-plugin/config.h.in
802e75d4b2005cb4479b67e27d3f97b4 lto-plugin/configure
89b687529bce49a2124315eed779ff38 lto-plugin/configure.ac
1e874a6e77178ca4bd314b190e4f347c lto-plugin/configure
829974866508d60d4cd5b6371c4f9a25 lto-plugin/configure.ac
8a917712b7d120f51eeaa5fefcf046c6 lto-plugin/lto-plugin.c
139179f8500d6f092a4f53d8f4da7f5c lto-plugin/lto-symtab.c
dee72a6a60e99528b0d17bf3ff9a1e15 ltoptions.m4
bc2f6032c98896249eadb56177c7d357 ltsugar.m4
c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4
293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4
d0b4de66c7bbcd30fc8c84c95f006342 maintainer-scripts/ChangeLog
5d1c45cea7ae8f9514004cfba1fbe0c7 maintainer-scripts/ChangeLog
33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README
a22f8ff92277d6ba55e5dcb1f25f2232 maintainer-scripts/crontab
0ab4a8ff94663c6cbd790233f4a22b45 maintainer-scripts/gcc_release
33d97164a8610c7abf67eff7d28f47ff maintainer-scripts/maintainer-addresses
c552b88b16f9d976de3c833045bbf6c6 maintainer-scripts/update_version_svn
b931f9e31f3be4f5bcd1abd7912a492c maintainer-scripts/update_web_docs_libstdcxx_svn
ec20a053df76448dc55d7f717553a764 maintainer-scripts/update_web_docs_svn
e40ff356ee9f675282b3a4ff01cabc08 maintainer-scripts/update_web_docs_svn
9d9668fb32d0542b712be2c34ca79bd7 missing
fbe2467afef81c41c166173adeb0ee20 mkdep
766574f467c38d27fc7604ca8eb6734c mkinstalldirs
f1fff2ea196cbf6fe4634bc3edc5af4d move-if-change
cf2baa0854f564a7785307e79f155efc symlink-tree
69678e72941d681665c3731bfb3044ab ylwrap
2a5e26808ee56e931b7fb7f2e2d42789 zlib/ChangeLog
fb46edf1326352806e4a256023493644 zlib/ChangeLog
74e03de7802ef546782fffb16ffc0fe0 zlib/ChangeLog.gcj
2f46720fda5ab68a1e495009895d874c zlib/FAQ
8851ace55681b1664d97c045d71e339b zlib/INDEX
@@ -71364,7 +71484,7 @@
1cf8b432cc388e9f81521bc8befa409a zlib/as400/readme.txt
b6939ef53a4f778f1896d46b3082d437 zlib/as400/zlib.inc
36221d8d590068ca5432fb4602e4219d zlib/compress.c
15670f6b93d2c192026d1a21a9e13bb5 zlib/configure
708b35947a06a17e8ddfe2586e98f0a1 zlib/configure
cba3a5456e32f4b16926c68884076a13 zlib/configure.ac
249561260ad9fb1372265976e2124a54 zlib/contrib/README.contrib
cd14a97dd8a0613bb1244a68c0c764d6 zlib/contrib/ada/buffer_demo.adb
@@ -353,6 +353,7 @@
dependencies = { module=install-gcc ; on=install-fixincludes; };
dependencies = { module=install-gcc ; on=install-lto-plugin; };
dependencies = { module=install-strip-gcc ; on=install-strip-fixincludes; };
dependencies = { module=install-strip-gcc ; on=install-strip-lto-plugin; };
dependencies = { module=configure-libcpp; on=configure-libiberty; hard=true; };
dependencies = { module=configure-libcpp; on=configure-intl; };
@@ -60025,6 +60025,7 @@
install-gcc: maybe-install-fixincludes
install-gcc: maybe-install-lto-plugin
install-strip-gcc: maybe-install-strip-fixincludes
install-strip-gcc: maybe-install-strip-lto-plugin
configure-libcpp: configure-libiberty
configure-stage1-libcpp: configure-stage1-libiberty
@@ -8,24 +8,27 @@
http://gcc.gnu.org/gcc-4.6/index.html
GCC 4.6 Release Series
October 26, 2011
March 1, 2012
The [1]GNU project and the GCC developers are pleased to announce the
release of GCC 4.6.2.
release of GCC 4.6.3.
This release is a bug-fix release, containing fixes for regressions in
GCC 4.6.1 relative to previous releases of GCC.
GCC 4.6.2 relative to previous releases of GCC.
Release History
GCC 4.6.3
March 1, 2012 ([2]changes)
GCC 4.6.2
October 26, 2011 ([2]changes)
October 26, 2011 ([3]changes)
GCC 4.6.1
June 27, 2011 ([3]changes)
June 27, 2011 ([4]changes)
GCC 4.6.0
March 25, 2011 ([4]changes)
March 25, 2011 ([5]changes)
References and Acknowledgements
@@ -33,33 +36,33 @@
supports several other languages aside from C, it now stands for the
GNU Compiler Collection.
A list of [5]successful builds is updated as new information becomes
A list of [6]successful builds is updated as new information becomes
available.
The GCC developers would like to thank the numerous people that have
contributed new features, improvements, bug fixes, and other changes as
well as test results to GCC. This [6]amazing group of volunteers is
well as test results to GCC. This [7]amazing group of volunteers is
what makes GCC successful.
For additional information about GCC please refer to the [7]GCC project
web site or contact the [8]GCC development mailing list.
For additional information about GCC please refer to the [8]GCC project
web site or contact the [9]GCC development mailing list.
To obtain GCC please use [9]our mirror sites or [10]our SVN server.
To obtain GCC please use [10]our mirror sites or [11]our SVN server.
For questions related to the use of GCC, please consult these web
pages and the [11]GCC manuals. If that fails, the
[12]gcc-help@gcc.gnu.org mailing list might help. Comments on these
pages and the [12]GCC manuals. If that fails, the
[13]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
list at [13]gcc@gcc.gnu.org. All of [14]our lists have public
list at [14]gcc@gcc.gnu.org. All of [15]our lists have public
archives.
Copyright (C) [15]Free Software Foundation, Inc. Verbatim copying and
Copyright (C) [16]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
These pages are [16]maintained by the GCC team. Last modified
2011-10-26[17].
These pages are [17]maintained by the GCC team. Last modified
2012-03-01[18].
References
@@ -67,19 +70,20 @@
2. http://gcc.gnu.org/gcc-4.6/changes.html
3. http://gcc.gnu.org/gcc-4.6/changes.html
4. http://gcc.gnu.org/gcc-4.6/changes.html
5. http://gcc.gnu.org/gcc-4.6/buildstat.html
6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
7. http://gcc.gnu.org/index.html
8. mailto:gcc@gcc.gnu.org
9. http://gcc.gnu.org/mirrors.html
10. http://gcc.gnu.org/svn.html
11. http://gcc.gnu.org/onlinedocs/
12. mailto:gcc-help@gcc.gnu.org
13. mailto:gcc@gcc.gnu.org
14. http://gcc.gnu.org/lists.html
15. http://www.fsf.org/
16. http://gcc.gnu.org/about.html
17. http://validator.w3.org/check/referer
5. http://gcc.gnu.org/gcc-4.6/changes.html
6. http://gcc.gnu.org/gcc-4.6/buildstat.html
7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
8. http://gcc.gnu.org/index.html
9. mailto:gcc@gcc.gnu.org
10. http://gcc.gnu.org/mirrors.html
11. http://gcc.gnu.org/svn.html
12. http://gcc.gnu.org/onlinedocs/
13. mailto:gcc-help@gcc.gnu.org
14. mailto:gcc@gcc.gnu.org
15. http://gcc.gnu.org/lists.html
16. http://www.fsf.org/
17. http://gcc.gnu.org/about.html
18. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.6/changes.html
GCC 4.6 Release Series
@@ -158,6 +162,8 @@
have been obsoleted.
* Support has been removed for all the [3]configurations obsoleted in
GCC 4.5.
* More information on porting to GCC 4.6 from previous versions of
GCC can be found in the [4]porting guide for this release.
General Optimizer Improvements
@@ -166,7 +172,7 @@
affect standards compliance but result in better optimized code.
For example, -Ofast enables -ffast-math.
* Link-time optimization improvements:
+ The [4]Scalable Whole Program Optimizer (WHOPR) project has
+ The [5]Scalable Whole Program Optimizer (WHOPR) project has
stabilized to the point of being usable. It has become the
default mode when using the LTO optimization model. Link time
optimization can now split itself into multiple parallel
@@ -212,7 +218,7 @@
optimization. Several scalability issues were resolved.
+ Improved auto-detection of const and pure functions. Newly,
noreturn functions are auto-detected.
The [5]-Wsuggest-attribute=[const|pure|noreturn] flag is
The [6]-Wsuggest-attribute=[const|pure|noreturn] flag is
available that informs users when adding attributes to headers
might improve code generation.
+ A number of inlining heuristic improvements. In particular:
@@ -344,7 +350,7 @@
C++
* Improved [6]experimental support for the upcoming C++0x ISO C++
* Improved [7]experimental support for the upcoming C++0x ISO C++
standard, including support for constexpr (thanks to Gabriel Dos
Reis and Jason Merrill), nullptr (thanks to Magnus Fromreide),
noexcept, unrestricted unions, range-based for loops (thanks to
@@ -354,14 +360,14 @@
* When an extern declaration within a function does not match a
declaration in the enclosing context, G++ now properly declares the
name within the namespace of the function rather than the namespace
which was open just before the function definition ([7]c++/43145).
which was open just before the function definition ([8]c++/43145).
* GCC now warns by default when casting integers to larger pointer
types. These warnings can be disabled with the option
-Wno-int-to-pointer-cast, which is now also available in C++.
* G++ no longer optimizes using the assumption that a value of
enumeration type will fall within the range specified by the
standard, since that assumption is easily violated with a
conversion from integer type ([8]c++/43680). The old behavior can
conversion from integer type ([9]c++/43680). The old behavior can
be restored with -fstrict-enums.
* The new -fnothrow-opt flag changes the semantics of a throw()
exception specification to match the proposed semantics of the
@@ -384,7 +390,7 @@
class member declarations.
* G++ now issues clearer diagnostics when a colon is used in a place
where a double-colon was intended.
* G++ no longer accepts mutable on reference members ([9]c++/33558).
* G++ no longer accepts mutable on reference members ([10]c++/33558).
Use -fpermissive to allow the old, non-conforming behaviour.
* A few mangling fixes have been made, to attribute const/volatile on
function pointer types, decltype of a plain decl, and use of a
@@ -397,7 +403,7 @@
* In 4.6.0 and 4.6.1 G++ no longer allows objects of const-qualified
type to be default initialized unless the type has a user-declared
default constructor. In 4.6.2 G++ implements the proposed
resolution of [10]DR 253, so default initialization is allowed if
resolution of [11]DR 253, so default initialization is allowed if
it initializes all subobjects. Code that fails to compile can be
fixed by providing an initializer e.g.
struct A { A(); };
@@ -407,13 +413,13 @@
Runtime Library (libstdc++)
* [11]Improved experimental support for the upcoming ISO C++
* [12]Improved experimental support for the upcoming ISO C++
standard, C++0x, including using constexpr and nullptr.
* Performance improvements to the [12]Debug Mode, thanks to Franc,ois
* Performance improvements to the [13]Debug Mode, thanks to Franc,ois
Dumont.
* Atomic operations used for reference-counting are annotated so that
they can be understood by race detectors such as Helgrind, see
[13]Data Race Hunting.
[14]Data Race Hunting.
* Most libstdc++ standard headers have been changed to no longer
include the cstddef header as an implementation detail. Code that
relied on that header being included as side-effect of including
@@ -437,7 +443,7 @@
* The -fwhole-file flag is now enabled by default. This improves code
generation and diagnostics. It can be disabled using the deprecated
-fno-whole-file flag.
* Support the generation of Makefile dependencies via the [14]-M...
* Support the generation of Makefile dependencies via the [15]-M...
flags of GCC; you may need to specify the -cpp option in addition.
The dependencies take modules, Fortran's include, and CPP's
#include into account. Note: Using -M for the module path is no
@@ -454,7 +460,7 @@
* Fortran 2003 support has been extended:
+ Improved support for polymorphism between libraries and
programs and for complicated inheritance patterns (cf.
[15]object-oriented programming).
[16]object-oriented programming).
+ Experimental support of the ASSOCIATE construct.
+ In pointer assignments it is now possible to specify the lower
bounds of the pointer and, for a rank-1 or a simply contiguous
@@ -471,8 +477,8 @@
+ Namelist variables with allocatable and pointer attribute and
nonconstant length type parameter are supported.
* Fortran 2008 support has been extended:
+ Experimental [16]coarray support (for one image only, i.e.
num_images() == 1); use the [17]-fcoarray=single flag to
+ Experimental [17]coarray support (for one image only, i.e.
num_images() == 1); use the [18]-fcoarray=single flag to
enable it.
+ The STOP and the new ERROR STOP statements now support all
constant expressions.
@@ -525,15 +531,13 @@
Go
Support for the [18]Go programming language has been added to GCC. It
Support for the [19]Go programming language has been added to GCC. It
is not enabled by default when you build GCC; use the
--enable-languages configure option to build it. The driver program for
compiling Go code is gccgo.
Go is currently known to work on GNU/Linux and RTEMS. Solaris support
is in progress. It may or may not work on other platforms.
Java (GCJ)
Objective-C and Objective-C++
@@ -745,7 +749,7 @@
section has been improved. A new command-line option,
-mcmodel=MODEL, controls this feature; valid values for MODEL are
small, medium, or large.
* The altivec builtin functions vec_ld and vec_st have been modified
* The Altivec builtin functions vec_ld and vec_st have been modified
to generate the Altivec memory instructions LVX and STVX, even if
the -mvsx option is used. In the initial GCC 4.5 release, these
builtin functions were changed to generate VSX memory reference
@@ -800,6 +804,12 @@
callee for functions taking parameters with sub-word size in 32-bit
mode, since this is redundant with the specification of the ABI.
GCC has never done so in 64-bit mode since this is also redundant.
AVR
* The command line option -mfix-at697f has been added to enable the
documented workaround for the single erratum of the Atmel AT697F
processor.
Operating Systems
@@ -886,8 +896,6 @@
pop_macro("macro-name") to its saved definition.
* Enable 128-bit long double (__float128) support on MinGW and
Cygwin.
Documentation improvements
Other significant improvements
@@ -897,11 +905,11 @@
executables, and may install libraries with unneeded or debugging
sections stripped.
* On Power7 systems, there is a potential problem if you build the
GCC compiler with a host compiler using options that enables the
VSX instruction set generation. If the host compiler has been
patched so that the vec_ld and vec_st builtin functions generate
Altivec memory instructions instead of VSX memory instructions,
then you should be able to build the compiler with VSX instruction
GCC compiler with a host compiler using options that enable the VSX
instruction set generation. If the host compiler has been patched
so that the vec_ld and vec_st builtin functions generate Altivec
memory instructions instead of VSX memory instructions, then you
should be able to build the compiler with VSX instruction
generation.
Changes for GCC Developers
@@ -917,68 +925,71 @@
GCC 4.6.1
This is the [19]list of problem reports (PRs) from GCC's bug tracking
This is the [20]list of problem reports (PRs) from GCC's bug tracking
system that are known to be fixed in the 4.6.1 release. This list might
not be complete (that is, it is possible that some PRs that have been
fixed are not listed here).
GCC 4.6.2
This is the [20]list of problem reports (PRs) from GCC's bug tracking
This is the [21]list of problem reports (PRs) from GCC's bug tracking
system that are known to be fixed in the 4.6.2 release. This list might
not be complete (that is, it is possible that some PRs that have been
fixed are not listed here).
SPARC
GCC 4.6.3
* The command line option -mfix-at697f has been added to enable the
documented workaround for the single erratum of the Atmel AT697F
processor.
This is the [22]list of problem reports (PRs) from GCC's bug tracking
system that are known to be fixed in the 4.6.3 release. This list might
not be complete (that is, it is possible that some PRs that have been
fixed are not listed here).
For questions related to the use of GCC, please consult these web
pages and the [21]GCC manuals. If that fails, the
[22]gcc-help@gcc.gnu.org mailing list might help. Comments on these
pages and the [23]GCC manuals. If that fails, the
[24]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
list at [23]gcc@gcc.gnu.org. All of [24]our lists have public
list at [25]gcc@gcc.gnu.org. All of [26]our lists have public
archives.
Copyright (C) [25]Free Software Foundation, Inc. Verbatim copying and
Copyright (C) [27]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
These pages are [26]maintained by the GCC team. Last modified
2011-10-13[27].
These pages are [28]maintained by the GCC team. Last modified
2012-03-01[29].
References
1. http://sourceware.org/bugzilla/show_bug.cgi?id=10401
2. http://gcc.gnu.org/gcc-4.5/changes.html
3. http://gcc.gnu.org/gcc-4.5/changes.html#obsoleted
4. http://gcc.gnu.org/projects/lto/whopr.pdf
5. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
6. http://gcc.gnu.org/gcc-4.6/cxx0x_status.html
7. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43145
8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43680
9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33558
10. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
11. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x
12. http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
13. http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races
14. http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html
15. http://gcc.gnu.org/wiki/OOP
16. http://gcc.gnu.org/wiki/Coarray
17. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233
18. http://golang.org/
19. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1
20. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2
21. http://gcc.gnu.org/onlinedocs/
22. mailto:gcc-help@gcc.gnu.org
23. mailto:gcc@gcc.gnu.org
24. http://gcc.gnu.org/lists.html
25. http://www.fsf.org/
26. http://gcc.gnu.org/about.html
27. http://validator.w3.org/check/referer
4. http://gcc.gnu.org/gcc-4.6/porting_to.html
5. http://gcc.gnu.org/projects/lto/whopr.pdf
6. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
7. http://gcc.gnu.org/gcc-4.6/cxx0x_status.html
8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43145
9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43680
10. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33558
11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
12. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x
13. http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
14. http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races
15. http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html
16. http://gcc.gnu.org/wiki/OOP
17. http://gcc.gnu.org/wiki/Coarray
18. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233
19. http://golang.org/
20. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1
21. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2
22. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3
23. http://gcc.gnu.org/onlinedocs/
24. mailto:gcc-help@gcc.gnu.org
25. mailto:gcc@gcc.gnu.org
26. http://gcc.gnu.org/lists.html
27. http://www.fsf.org/
28. http://gcc.gnu.org/about.html
29. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.5/index.html
GCC 4.5 Release Series
@@ -1144,10 +1155,10 @@
(e.g. csinf and csinl) are also handled.
* A new link-time optimizer has been added ([8]-flto). When this
option is used, GCC generates a bytecode representation of each
input file and writes it to special ELF sections in each object
input file and writes it to specially-named sections in each object
file. When the object files are linked together, all the function
bodies are read from these ELF sections and instantiated as if they
had been part of the same translation unit. This enables
bodies are read from these named sections and instantiated as if
they had been part of the same translation unit. This enables
interprocedural optimizations to work across different files (and
even different languages), potentially improving the performance of
the generated code. To use the link-timer optimizer, -flto needs to
@@ -1463,8 +1474,6 @@
ATAN(Y,X) is now an alias for ATAN2(Y,X).
+ The BLOCK construct has been implemented.
Java (GCJ)
New Targets and Target Specific Improvements
AIX
@@ -1568,8 +1577,6 @@
use_debug_exception_return. See the documentation for more details
about these attributes.
picochip
RS/6000 (POWER/PowerPC)
* GCC now supports the Power ISA 2.06, which includes the VSX
@@ -1616,7 +1623,7 @@
* Numerous other minor bugfixes and improvements, and substantial
enhancements to the Fortran language support library.
Documentation improvements
>
Other significant improvements
@@ -1681,7 +1688,7 @@
not be complete (that is, it is possible that some PRs that have been
fixed are not listed here).
On the PowerPC compiler, the altivec builtin functions vec_ld and
On the PowerPC compiler, the Altivec builtin functions vec_ld and
vec_st have been modified to generate the Altivec memory instructions
LVX and STVX, even if the -mvsx option is used. In the initial GCC 4.5
release, these builtin functions were changed to generate VSX memory
@@ -1704,7 +1711,7 @@
provided this notice is preserved.
These pages are [33]maintained by the GCC team. Last modified
2011-05-11[34].
2011-10-30[34].
References
@@ -5002,7 +5009,7 @@
provided this notice is preserved.
These pages are [21]maintained by the GCC team. Last modified
2011-04-25[22].
2012-02-20[22].
References
@@ -5013,7 +5020,7 @@
5. http://gcc.gnu.org/news/sms.html
6. http://www.akkadia.org/drepper/dsohowto.pdf
7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
8. http://www.codesourcery.com/public/cxx-abi/
8. http://sourcery.mentor.com/public/cxx-abi/
9. http://gcc.gnu.org/fortran/
10. http://gcc.gnu.org/install/
11. http://gcc.gnu.org/wiki/Visibility
@@ -5126,7 +5126,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
$as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
@@ -6957,10 +6957,6 @@
# harmless if we're using GNU nm or ar.
extra_arflags_for_target=" -X32_64"
extra_nmflags_for_target=" -B -X32_64"
;;
*-*-darwin[3-9]*)
# ranlib before Darwin10 requires the -c flag to look at common symbols.
extra_ranlibflags_for_target=" -c"
;;
mips*-*-pe | sh*-*-pe | *arm-wince-pe)
target_makefile_frag="config/mt-wince"
@@ -2428,10 +2428,6 @@
extra_arflags_for_target=" -X32_64"
extra_nmflags_for_target=" -B -X32_64"
;;
*-*-darwin[[3-9]]*)
# ranlib before Darwin10 requires the -c flag to look at common symbols.
extra_ranlibflags_for_target=" -c"
;;
mips*-*-pe | sh*-*-pe | *arm-wince-pe)
target_makefile_frag="config/mt-wince"
;;
@@ -2273,7 +2273,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[[123]]*) objformat=aout ;;
freebsd[[23]].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -2291,7 +2291,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -4803,7 +4803,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
_LT_TAGVAR(hardcode_direct, $1)=yes
_LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -5750,7 +5750,7 @@
esac
;;
freebsd[[12]]*)
freebsd2.*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
_LT_TAGVAR(ld_shlibs, $1)=no
@@ -1,3 +1,11 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
* acx.m4 (Test for GNAT): Update comment and add quotes in final test.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -356,9 +356,9 @@
ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
# Test for GNAT.
# We require the gnatbind program, and a compiler driver that
# understands Ada. We use the user's CC setting, already found,
# and possibly add $1 to the command-line parameters.
# We require the gnatbind & gnatmake programs, as well as a compiler driver
# that understands Ada. We use the user's CC setting, already found, and
# possibly add $1 to the command-line parameters.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
# substitutes GNATBIND and GNATMAKE.
@@ -387,7 +387,7 @@
fi
rm -f conftest.*])
if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,1 +1,1 @@
4.6.2
4.6.3
@@ -1,3 +1,931 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-02-27 Uros Bizjak <ubizjak@gmail.com>
Revert:
2012-02-02 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline:
2011-11-18 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/51118
* fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
before using TREE_TYPE accessor on expr.
2012-02-23 Jakub Jelinek <jakub@redhat.com>
Backported from trunk
2012-02-20 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/52286
* fold-const.c (fold_binary_loc): For (X & C1) | C2
optimization use double_int_to_tree instead of build_int_cst_wide,
rewrite to use double_int vars.
2012-02-23 Uros Bizjak <ubizjak@gmail.com>
PR c/52290
* c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
2012-02-22 Uros Bizjak <ubizjak@gmail.com>
PR target/52330
* config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
is not offsettable memory reference.
2012-02-21 Richard Earnshaw <rearnsha@arm.com>
PR target/52294
* thumb2.md (thumb2_shiftsi3_short): Split register and
immediate shifts. For register shifts tie operands 0 and 1.
(peephole2 for above): Check that register-controlled shifts
have suitably tied operands.
2012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
TARGET_HARD_FLOAT with TARGET_HARD_DFP.
2012-02-20 Kai Tietz <ktietz@redhat.com>
PR target/52238
* stor-layout.c (place_field): Handle desired_align for
ms-bitfields, too.
2012-02-20 Kai Tietz <ktietz@redhat.com>
PR libstdc++/52300
* gthr.h (GTHREAD_USE_WEAK): Define as zero for mingw.
2012-02-16 Jakub Jelinek <jakub@redhat.com>
PR debug/52260
* dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
children with clone_tree_hash, not after it.
2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
Backport from mainline
2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/52199
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
force_reg instead of copy_to_reg for better optimization. Force
non-register or memory operands into a register.
2012-02-15 Richard Guenther <rguenther@suse.de>
Backport from mainline
2012-02-08 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46886
* tree-flow.h (do_while_loop_p): Declare.
* tree-ssa-loop-ch.c (do_while_loop_p): Export.
* tree-parloops.c (parallelize_loops): Only parallelize do-while
loops.
2012-02-15 Eric Botcazou <ebotcazou@adacore.com>
PR target/51921
PR target/52205
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Add support for
Solaris 11 and slightly reformat.
(sparc_is_sighandler): Likewise.
2012-02-14 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2012-02-14 Jakub Jelinek <jakub@redhat.com>
PR debug/51950
* dwarf2out.c (clone_tree_hash): New function.
(copy_decls_walk): Use it instead of clone_tree.
PR c/52181
* c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
newdecl.
2012-02-13 Jakub Jelinek <jakub@redhat.com>
* cselib.c (dump_cselib_val): Don't assume l->setting_insn is
non-NULL.
PR middle-end/52230
* omp-low.c (expand_omp_for): If a static schedule without
chunk size has NULL region->cont, force fd.chunk_size to be
integer_zero_node.
PR bootstrap/51969
Backported from mainline
2011-11-08 Michael Matz <matz@suse.de>
* gengtype.c (write_field_root): Avoid out-of-scope access of newv.
2012-02-14 Bin Cheng <bin.cheng@arm.com>
Backport from mainline.
2011-06-08 Julian Brown <julian@codesourcery.com>
* config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
for double-precision helper functions in hard-float mode if only
single-precision arithmetic is supported in hardware.
2012-02-11 Uros Bizjak <ubizjak@gmail.com>
* compare-elim.c (find_comparisons_in_bb): Eliminate only compares
having the same mode as previous compare.
2012-02-09 Jack Howarth <howarth@bromo.med.uc.edu>
Backported from mainline
2011-06-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49536
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
For non-scalar inner types use a scalar type according to
the scalar inner mode.
2012-02-09 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2012-02-08 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/52139
* cfgrtl.c (cfg_layout_merge_blocks): If BB_END
is a BARRIER after emit_insn_after_noloc, move BB_END
to the last non-BARRIER insn before it.
2012-02-07 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/52060
* combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
and/or i0src_copy2 when needed.
PR middle-end/52074
* expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
if modifier < EXPAND_SUM call force_operand on the result.
2012-02-06 Jakub Jelinek <jakub@redhat.com>
PR target/52129
* calls.c (mem_overlaps_already_clobbered_arg_p): If val is
CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
2012-02-02 Jakub Jelinek <jakub@redhat.com>
PR middle-end/48071
* diagnostic.c (diagnostic_finish): Remove trailing newlines.
2012-01-28 Jakub Jelinek <jakub@redhat.com>
PR target/52006
* config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
arm_general_register_operand predicate for operand 2 instead of
register_operand.
2012-01-19 Jakub Jelinek <jakub@redhat.com>
PR libmudflap/40778
* tree-mudflap.c (mf_artificial): New function.
(execute_mudflap_function_ops, execute_mudflap_function_decls,
mx_register_decls, mudflap_enqueue_decl): Use it.
2012-01-05 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/51767
* cfgrtl.c (force_nonfallthru_and_redirect): Force addition
of jump_block and add an extra edge for degenerated asm gotos.
PR middle-end/51768
* stmt.c (check_unique_operand_names): Don't ICE during error
reporting if i is from labels chain.
PR middle-end/44777
* profile.c (branch_prob): Split bbs that have exit edge
and need a fake entry edge too.
2012-01-04 Jakub Jelinek <jakub@redhat.com>
PR debug/51695
* dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
in .debug_loc on the floor.
2011-12-15 Jakub Jelinek <jakub@redhat.com>
PR c/51360
* c-parser.c (c_parser_omp_clause_num_threads,
c_parser_omp_clause_schedule): Call mark_exp_read.
PR debug/51517
* tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test
!DECL_IGNORED_P instead of !DECL_ARTIFICIAL.
2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
Backport from mainline
2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
PR middle-end/52140
* dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
2012-02-09 Andrey Belevantsev <abel@ispras.ru>
Backport from mainline
2012-01-20 Andrey Belevantsev <abel@ispras.ru>
PR target/51106
* function.c (instantiate_virtual_regs_in_insn): Use
delete_insn_and_edges when removing a wrong asm insn.
2012-02-07 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/51994
* expr.c (get_inner_reference): If there is an offset, add a negative
bit position to it (if any).
2012-02-07 Kai Tietz <ktietz@redhat.com>
Dave Korn <dave.korn.cygwin@gmail.com>
PR target/40068
* config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
Take care that typinfo gets dllexport-attribute.
2012-02-07 Alan Modra <amodra@gmail.com>
PR target/52107
* config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
subregs of TFmode.
2012-02-02 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline:
2011-11-18 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/51118
* fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
before using TREE_TYPE accessor on expr.
2012-01-12 Georg-Johann Lay <avr@gjlay.de>
Backport from mainline r183796
PR rtl-optimization/51374
* combine.c (can_combine_p): Don't allow volatile_refs_p insns
to cross other volatile_refs_p insns.
2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
Backport from mainline.
2011-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true
condition.
2012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
to srak instruction.
2012-01-30 Bin Cheng <bin.cheng@arm.com>
Backport from mainline.
2012-01-30 Bin Cheng <bin.cheng@arm.com>
PR target/51835
* config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
2012-01-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
Backport from mainline.
2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
PR target/50313
* config/arm/arm.c (arm_load_pic_register): Use
gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
, gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
(arm_pic_static_addr): Likewise.
(arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
(arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
* config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
(pic_load_addr_unified): New.
2012-01-25 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
bases are dereferenced.
2012-01-24 Richard Guenther <rguenther@suse.de>
Forward-port to branch
2010-09-21 Jakub Jelinek <jakub@redhat.com>
PR middle-end/45678
* expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
op0 isn't sufficiently aligned and there is movmisalignM
insn for mode, use it to load op0 into a temporary register.
2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
* cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
2012-01-19 Quentin Neill <quentin.neill@amd.com>
PR target/48743
* config/i386/driver-i386.c (host_detect_local_cpu): Also check
family to distinguish PROCESSOR_ATHLON.
2012-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/49642
* ipa-split.c (forbidden_dominators): New variable.
(check_forbidden_calls): New function.
(dominated_by_forbidden): Likewise.
(consider_split): Check for forbidden dominators.
(execute_split_functions): Initialize and free forbidden
dominators info; call check_forbidden_calls.
2012-01-18 David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/rs6000.md (call_value_indirect_aix32): Fix typo
in mode of operand[4].
2012-01-15 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/51821
* recog.c (peep2_find_free_register): Determine clobbered registers
from insn pattern.
2012-01-12 Georg-Johann Lay <avr@gjlay.de>
Backport from mainline r183129
PR target/51756
* config/avr/avr.c (avr_encode_section_info): Test for absence of
DECL_EXTERNAL when checking for initializers of progmem variables.
22012-01-12 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
Backport from mainline
2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* config/arm/arm.md (mov_notscc): Use MVN for false condition.
2012-01-12 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
(x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
2012-01-10 Joseph Myers <joseph@codesourcery.com>
Revert:
2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR rtl-opt/37451
* loop-doloop.c (doloop_modify): New argument zero_extend_p and
zero extend count after the correction to it is done.
(doloop_optimize): Update call to doloop_modify, don't zero extend
count before call.
2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR rtl-opt/37782
* loop-doloop.c (doloop_modify): Add from_mode argument that says what
mode count is in.
(doloop_optimize): Update call to doloop_modify.
2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Check that the
purported sigacthandler address isn't null before dereferencing it.
(sparc_is_sighandler): Likewise.
2012-01-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
Backport from mainline
2011-11-04 Jiangning Liu <jiangning.liu@arm.com>
PR rtl-optimization/38644
* config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
for epilogue having stack adjustment.
2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
PR ada/41929
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove SAVPC and
add CFA. Revert back to old code for Solaris 8+ multi-threaded.
(sparc_is_sighandler): Likewise.
(MD_FALLBACK_FRAME_STATE_FOR): Adjust call to IS_SIGHANDLER.
2012-01-06 Eric Botcazou <ebotcazou@adacore.com>
Backport from mainline
2012-01-06 Arnaud Charlet <charlet@adacore.com>
* c-decl.c (ext_block): Moved up.
(collect_all_refs, for_each_global_decl): Take ext_block into account.
2012-01-06 Richard Sandiford <richard.sandiford@linaro.org>
PR middle-end/48660
* expr.h (copy_blkmode_to_reg): Declare.
* expr.c (copy_blkmode_to_reg): New function.
(expand_assignment): Don't expand register RESULT_DECLs before
the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a
RESULT_DECL register.
(expand_expr_real_1): Handle BLKmode decls when looking for promotion.
2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/51315
* tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
(build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
2012-01-04 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/51624
* tree-sra.c (build_ref_for_model): When replicating a chain of
COMPONENT_REFs, stop as soon as the offset would become negative.
2012-01-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49651
* tree-ssa-structalias.c (type_can_have_subvars): New function.
(var_can_have_subvars): Use it.
(get_constraint_for_1): Only consider subfields if there can be any.
2012-01-03 Sandra Loosemore <sandra@codesourcery.com>
Backport from mainline:
2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
* doc/invoke.texi (-flto and related options): Copy-edit.
2012-01-03 Richard Guenther <rguenther@suse.de>
Backport from mainline
2011-11-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51042
* tree-ssa-pre.c (phi_translate_1): Avoid recursing on
self-referential expressions. Refactor code to avoid duplication.
2012-01-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51070
* tree-loop-distribution.c (generate_builtin): Do not replace
the loop with a builtin if the partition contains statements which
results are used outside of the loop.
(stmt_has_scalar_dependences_outside_loop): Properly handle calls.
2011-12-30 Michael Meissner <meissner@linux.vnet.ibm.com>
Backport from the mainline
2011-12-30 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko
in setting options via target #pragma or attribute.
2011-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
Backport from mainline
2011-12-28 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/51623
* config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call
unlikely_text_section_p. Instead check for being in a code section.
2011-12-23 Richard Guenther <rguenther@suse.de>
PR rtl-optimization/50396
* simplify-rtx.c (simplify_binary_operation_1): Properly
guard code that only works for integers.
2011-12-22 Doug Kwan <dougkwan@google.com>
Backport from mainline
2011-03-23 Julian Brown <julian@codesourcery.com>
* expr.c (expand_expr_real_1): Only use BLKmode for volatile
accesses which are not naturally aligned.
2011-11-20 Joey Ye <joey.ye@arm.com>
* expr.c (expand_expr_real_1): Correctly handle strict volatile
bitfield loads smaller than mode size.
2011-12-21 Richard Earnshaw <rearnsha@arm.com>
PR target/51643
* arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous
change.
2011-12-21 Richard Earnshaw <rearnsha@arm.com>
PR target/51643
* arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a
weak function on bare-metal EABI targets.
2011-12-21 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline
2011-12-21 Richard Guenther <rguenther@suse.de>
PR lto/41159
* tree-outof-ssa.c (insert_value_copy_on_edge): Use the
mode of the pseudo as destination mode. Only assert that
is equal to the promoted mode of the decl if it is a REG.
2011-12-21 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/linux-unwind.h: Update copyright years.
(MD_FROB_UPDATE_CONTEXT): New define.
(alpha_frob_update_context): New function.
2011-12-19 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/51583
* tree-sra.c (load_assign_lhs_subreplacements): Call
force_gimple_operand_gsi when necessary also in case of no
corresponding replacement on the RHS.
2011-12-16 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant.
(frame_blockage): New expander.
(frame_blockage<P:mode>): New instruction.
* config/sparc/sparc.c (sparc_expand_prologue): When the sequence of
instructions establishing the frame isn't atomic, emit frame blockage.
2011-12-15 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline.
2011-10-28 Chung-Lin Tang <cltang@codesourcery.com>
PR rtl-optimization/49720
* simplify-rtx.c (simplify_relational_operation_1): Detect
infinite recursion condition in "(eq/ne (plus x cst1) cst2)
simplifies to (eq/ne x (cst2 - cst1))" case.
2011-12-15 Andreas Tobler <andreast@fgznet.ch>
Backport from mainline.
2011-12-15 Andreas Tobler <andreast@fgznet.ch>
* config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
* lto-streamer-out.c (write_symbol): Use proper 64-bit host type.
* lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
* lto-streamer-in.c (lto_read_body): Likewise.
(lto_input_toplevel_asms): Likewise.
* lto-section-in.c (lto_create_simple_input_block): Likewise.
* lto-opts.c (lto_read_file_options): Likewise.
* ipa-prop.c (ipa_prop_read_section): Likewise.
* df.h (DF_NOTE): Fix typo in comment.
2011-12-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* regmove.c (fixup_match_2): Only access call_used_regs with hard
regs.
2011-12-12 Jakub Jelinek <jakub@redhat.com>
PR middle-end/51510
* calls.c (internal_arg_pointer_based_exp_scan): Don't use
VEC_safe_grow_cleared if idx is smaller than VEC_length.
Backported from mainline
2011-12-11 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/51485
* tree-vect-data-refs.c (vect_analyze_data_refs): Give up on
DRs in call stmts.
2011-12-12 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/50569
* tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs
in the expression of MODEL instead of just the last one.
2011-12-09 Michael Meissner <meissner@the-meissners.org>
Backport from mainline
2011-12-09 Michael Meissner <meissner@the-meissners.org>
PR rtl-optimization/51469
* varasm.c (default_binds_local_p_1): If the symbol is a gnu
indirect function, mark the symbol as non-local.
2011-12-09 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
2011-12-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/51466
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy
TREE_SIDE_EFFECTS.
2011-11-28 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/50078
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
2011-12-09 Kazu Hirata <kazu@codesourcery.com>
Backport from mainline:
2011-12-05 Kazu Hirata <kazu@codesourcery.com>
PR target/51408
* config/arm/arm.md (*minmax_arithsi): Always require the else
clause in the MINUS case.
2011-12-08 Teresa Johnson <tejohnson@google.com>
Backport from mainline:
2011-08-05 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*movdi_internal_rex64): Use "!o" constraint
instead of "!m" for operand 0, alternative 4.
(*movdf_internal_rex64): Ditto for operand 0, alernative 6.
2011-12-08 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
2011-12-05 Jakub Jelinek <jakub@redhat.com>
PR debug/51410
* c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
for debug info if scope is file_scope.
PR c/51339
* c-decl.c (c_finish_incomplete_decl, finish_decl): Call
relayout_decl instead of layout_decl.
2011-12-05 Jakub Jelinek <jakub@redhat.com>
Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/51323
PR middle-end/50074
* calls.c (internal_arg_pointer_exp_state): New variable.
(internal_arg_pointer_based_exp_1,
internal_arg_pointer_exp_scan): New functions.
(internal_arg_pointer_based_exp): New function.
(mem_overlaps_already_clobbered_arg_p): Use it.
(expand_call): Free internal_arg_pointer_exp_state.cache vector
and clear internal_arg_pointer_exp_state.scan_start.
2011-11-30 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/48721
* sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
reg_pending_barrier to TRUE_BARRIER.
2011-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
PR middle-end/50074
* calls.c (mem_overlaps_already_clobbered_arg_p):
Return false if no outgoing arguments have been stored so far.
2011-12-08 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/51315
* tree-sra.c (tree_non_mode_aligned_mem_p): Rename to...
(tree_non_aligned_mem_p): ...this. Add ALIGN parameter. Look into
MEM_REFs and use get_object_or_type_alignment for them.
(build_accesses_from_assign): Adjust for above change.
(access_precludes_ipa_sra_p): Likewise.
2011-12-06 Martin Jambor <mjambor@suse.cz>
Backport from mainline:
2011-12-02 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/50622
* tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
if both lacc and racc are grp_partial_lhs.
2011-12-06 Iain Sandoe <iains@gcc.gnu.org>
* config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize
rs6000_current_abi.
2011-12-06 Alan Modra <amodra@gmail.com>
PR target/50906
* config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
Do not mark r11 setup as frame-related. Pass correct offset to
rs6000_emit_savres_rtx. Correct out-of-line rs6000_frame_related
arguments. Correct sp_offset. Remove "offset" fudge from
in-line rs6000_frame_related call. Rename misleading variable.
Fix comments and whitespace. Tidy some expressions.
(rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
to r11 in out-of-line case. Correct sp_offset. Pass correct
offset to rs6000_emit_savres_rtx. Rename misleading variable.
Fix comments and whitespace. Tidy some expressions.
(rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
adjustment when !saving_GPRs_inline. Correct register mode
used in address calcs.
(rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
!restoring_GPRs_inline.
2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
PR target/51393
* config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
parameter as long long.
2011-12-02 Georg-Johann Lay <avr@gjlay.de>
PR target/51002
PR target/51345
* config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
Enclose parts using __SP_H__ in !defined (__AVR_HAVE_8BIT_SP__).
Add FIXME comments.
* config/avr/avr.md (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Set
insn condition to !AVR_HAVE_8BIT_SP.
* config/avr/avr.c (output_movhi): "clr%B0" instead of "in
%B0,__SP_H__" if AVR_HAVE_8BIT_SP.
(avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP.
* config/avr/avr-devices.c (avr_mcu_types): ATtiny4313 and
AT86RF401 have a 16-bit SP (their manual is bogus).
2011-11-25 Richard Sandiford <richard.sandiford@linaro.org>
Backport from mainline:
2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
PR debug/48190
* dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
(cached_dw_loc_list_def): New structure.
(cached_dw_loc_list): New typedef.
(cached_dw_loc_list_table): New variable.
(cached_dw_loc_list_table_hash): New function.
(cached_dw_loc_list_table_eq): Likewise.
(add_location_or_const_value_attribute): Take a bool cache_p.
Cache the list when the parameter is true.
(gen_formal_parameter_die): Update caller.
(gen_variable_die): Likewise.
(dwarf2out_finish): Likewise.
(dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
while generating debug info for the decl.
(dwarf2out_function_decl): Clear cached_dw_loc_list_table.
(dwarf2out_init): Initialize cached_dw_loc_list_table.
(resolve_addr): Cache the result of resolving a chain of
location lists.
2011-11-24 Enkovich Ilya <ilya.enkovich@intel.com>
PR target/51287
* i386.c (distance_non_agu_define): Fix insn attr check.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/51187
* reorg.c (relax_delay_slots): Do not consider a jump useless if there
is a barrier between the jump and its target label.
2011-11-19 Richard Earnshaw <rearnsha@arm.com>
PR target/50493
* config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
overlap of src and dest operands.
2011-11-18 Iain Sandoe <iains@gcc.gnu.org>
PR target/49992
* configure.ac: Remove ranlib special-casing for Darwin.
* configure: Regenerate.
2011-11-16 Richard Earnshaw <rearnsha@arm.com>
Bernd Schmidt <bernds@coudesourcery.com>
Sebastian Huber <sebastian.huber@embedded-brains.de>
PR target/49641
* config/arm/arm.c (store_multiple_sequence): Avoid cases where
the base reg is stored iff compiling for Thumb1.
2011-11-13 Iain Sandoe <iains@gcc.gnu.org>
PR target/48108
Backport from mainline r180523
* config/darwin.c (top level): Amend comments concerning LTO output.
(lto_section_num): New variable. (darwin_lto_section_e): New GTY.
(LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
(LTO_NAMES_SECTION): Rename.
(darwin_asm_named_section): Record LTO section counts and switches
in a vec of darwin_lto_section_e.
(darwin_file_start): Remove unused code.
(darwin_file_end): Put an LTO section termination label. Handle
output of the wrapped LTO sections, index and names table.
2011-11-12 Iain Sandoe <iains@gcc.gnu.org>
PR target/45233
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
Only expand a symbol ref. into an access when the entity is defined
in the TU.
2011-11-10 Jakub Jelinek <jakub@redhat.com>
PR middle-end/51077
* tree-object-size.c (addr_object_size): Check TREE_CODE of
MEM_REF's operand rather than code of the MEM_REF itself.
2011-11-07 Alan Modra <amodra@gmail.com>
PR target/30282
* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
blockage for ABI_V4.
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
PR c++/50608
* c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
to fold_offsetof.
* c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
PR target/50979
* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
2011-11-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
2011-11-02 Eric Botcazou <ebotcazou@adacore.com>
PR target/50945
* config/sparc/sparc.md (movsf_insn): Reindent constraints.
(movsf_insn_no_fpu): Likewise.
(movdf_insn_sp32): Likewise.
(movdf_insn_sp32_no_fpu): Likewise.
(movdf_insn_sp32_v9): Likewise. Remove redundant GY constraint.
(movdf_insn_sp32_v9_no_fpu): Likewise.
(movdf_insn_sp64): Likewise.
(movdf_insn_sp64_no_fpu): Likewise.
(movtf_insn_sp32): Likewise.
(movtf_insn_sp32_no_fpu): Likewise.
(movtf_insn_sp64): Likewise.
(movtf_insn_sp64_hq): Likewise.
(movtf_insn_sp64_no_fpu): Likewise.
2011-11-02 Bernd Schmidt <bernds@codesourcery.com>
* cfgcleanup.c (try_head_merge_bb): If get_condition returns
NULL for a jump that is a cc0 insn, pick the previous insn for
move_before.
2011-11-01 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (splitters for int-float conversion): Use
SUBREG_REG on SUBREGs in splitter constraints.
2011-11-01 Julian Brown <julian@codesourcery.com>
PR rtl-optimization/47918
* reload1.c (set_initial_label_offsets): Use initial offsets
for labels on the nonlocal_goto_handler_labels chain.
2011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/50691
* config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references.
* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for
TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references.
2011-10-27 Uros Bizjak <ubizjak@gmail.com>
PR target/50875
* config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
constraints. Change alternative 1 to "x,m,1".
2011-10-26 Jakub Jelinek <jakub@redhat.com>
* BASE-VER: Set to 4.6.3.
* DEV-PHASE: Set to prerelease.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -144,8 +1072,8 @@
2011-10-07 Bernd Schmidt <bernds@codesourcery.com>
PR target/49049
* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
PR target/49049
* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
2011-10-06 Jakub Jelinek <jakub@redhat.com>
@@ -252,7 +1180,7 @@
* config/rs6000/rs6000.md (probe_stack): Use explicit operand.
* config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
2011-09-14 Diego Novillo <dnovillo@google.com>
2011-09-14 Diego Novillo <dnovillo@google.com>
* tree-vect-stmts.c (vect_transform_stmt): Remove unused
local variable ORIG_SCALAR_STMT.
@@ -2793,7 +3721,8 @@
PR lto/47497
* lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
(lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
* cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): Add node pointers.
* cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): Add node
pointers.
* cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
cgraph_add_thunk): Add node pointers.
* lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
@@ -1,1 +1,1 @@
20111026
20120301
@@ -721,7 +721,7 @@
complete_array_type (&TREE_TYPE (decl), NULL_TREE, true);
layout_decl (decl, 0);
relayout_decl (decl);
}
}
}
@@ -1200,7 +1200,7 @@
DECL_CHAIN (p) = BLOCK_VARS (block);
BLOCK_VARS (block) = p;
}
else if (VAR_OR_FUNCTION_DECL_P (p))
else if (VAR_OR_FUNCTION_DECL_P (p) && scope != file_scope)
{
/* For block local externs add a special
DECL_EXTERNAL decl for debug info generation. */
@@ -2436,6 +2436,7 @@
memcpy ((char *) olddecl + sizeof (struct tree_common),
(char *) newdecl + sizeof (struct tree_common),
sizeof (struct tree_decl_common) - sizeof (struct tree_common));
DECL_USER_ALIGN (olddecl) = DECL_USER_ALIGN (newdecl);
switch (TREE_CODE (olddecl))
{
case FUNCTION_DECL:
@@ -4261,7 +4262,7 @@
if (DECL_INITIAL (decl))
TREE_TYPE (DECL_INITIAL (decl)) = type;
layout_decl (decl, 0);
relayout_decl (decl);
}
if (TREE_CODE (decl) == VAR_DECL)
@@ -7593,7 +7594,8 @@
/* If the declarator is not suitable for a function definition,
cause a syntax error. */
if (decl1 == 0)
if (decl1 == 0
|| TREE_CODE (decl1) != FUNCTION_DECL)
return 0;
loc = DECL_SOURCE_LOCATION (decl1);
@@ -9781,6 +9783,9 @@
if (!DECL_IS_BUILTIN (decl))
collect_source_ref (LOCATION_FILE (decl_sloc (decl, false)));
}
static GTY(()) tree ext_block;
@@ -9792,6 +9797,8 @@
FOR_EACH_VEC_ELT (tree, all_translation_units, i, t)
collect_ada_nodes (BLOCK_VARS (DECL_INITIAL (t)), source_file);
collect_ada_nodes (BLOCK_VARS (ext_block), source_file);
}
@@ -9810,10 +9817,10 @@
for (decl = BLOCK_VARS (decls); decl; decl = TREE_CHAIN (decl))
callback (decl);
}
}
static GTY(()) tree ext_block;
for (decl = BLOCK_VARS (ext_block); decl; decl = TREE_CHAIN (decl))
callback (decl);
}
void
c_write_global_declarations (void)
@@ -6294,7 +6294,7 @@
c_parser_error (parser, "expected identifier");
c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
"expected %<)%>");
expr.value = fold_offsetof (offsetof_ref, NULL_TREE);
expr.value = fold_offsetof (offsetof_ref);
}
break;
case RID_CHOOSE_EXPR:
@@ -8629,6 +8629,7 @@
{
location_t expr_loc = c_parser_peek_token (parser)->location;
tree c, t = c_parser_expression (parser).value;
mark_exp_read (t);
t = c_fully_fold (t, false, NULL);
c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>");
@@ -8815,6 +8816,7 @@
here = c_parser_peek_token (parser)->location;
t = c_parser_expr_no_commas (parser, NULL).value;
mark_exp_read (t);
t = c_fully_fold (t, false, NULL);
if (OMP_CLAUSE_SCHEDULE_KIND (c) == OMP_CLAUSE_SCHEDULE_RUNTIME)
@@ -3802,11 +3802,7 @@
if (val && TREE_CODE (val) == INDIRECT_REF
&& TREE_CONSTANT (TREE_OPERAND (val, 0)))
{
tree op0 = fold_convert_loc (location, sizetype,
fold_offsetof (arg, val)), op1;
op1 = fold_convert_loc (location, argtype, TREE_OPERAND (val, 0));
ret = fold_build2_loc (location, POINTER_PLUS_EXPR, argtype, op1, op0);
ret = fold_convert_loc (location, argtype, fold_offsetof_1 (arg));
goto return_build_unary_op;
}
@@ -1548,6 +1548,131 @@
return funexp;
}
static struct
{
/* Last insn that has been scanned by internal_arg_pointer_based_exp_scan,
or NULL_RTX if none has been scanned yet. */
rtx scan_start;
/* Vector indexed by REGNO - FIRST_PSEUDO_REGISTER, recording if a pseudo is
based on crtl->args.internal_arg_pointer. The element is NULL_RTX if the
pseudo isn't based on it, a CONST_INT offset if the pseudo is based on it
with fixed offset, or PC if this is with variable or unknown offset. */
VEC(rtx, heap) *cache;
} internal_arg_pointer_exp_state;
static rtx internal_arg_pointer_based_exp (rtx, bool);
/* Helper function for internal_arg_pointer_based_exp. Scan insns in
the tail call sequence, starting with first insn that hasn't been
scanned yet, and note for each pseudo on the LHS whether it is based
on crtl->args.internal_arg_pointer or not, and what offset from that
that pointer it has. */
static void
internal_arg_pointer_based_exp_scan (void)
{
rtx insn, scan_start = internal_arg_pointer_exp_state.scan_start;
if (scan_start == NULL_RTX)
insn = get_insns ();
else
insn = NEXT_INSN (scan_start);
while (insn)
{
rtx set = single_set (insn);
if (set && REG_P (SET_DEST (set)) && !HARD_REGISTER_P (SET_DEST (set)))
{
rtx val = NULL_RTX;
unsigned int idx = REGNO (SET_DEST (set)) - FIRST_PSEUDO_REGISTER;
if (idx < VEC_length (rtx, internal_arg_pointer_exp_state.cache)
&& (VEC_index (rtx, internal_arg_pointer_exp_state.cache, idx)
!= NULL_RTX))
val = pc_rtx;
else
val = internal_arg_pointer_based_exp (SET_SRC (set), false);
if (val != NULL_RTX)
{
if (idx
>= VEC_length (rtx, internal_arg_pointer_exp_state.cache))
VEC_safe_grow_cleared (rtx, heap,
internal_arg_pointer_exp_state.cache,
idx + 1);
VEC_replace (rtx, internal_arg_pointer_exp_state.cache,
idx, val);
}
}
if (NEXT_INSN (insn) == NULL_RTX)
scan_start = insn;
insn = NEXT_INSN (insn);
}
internal_arg_pointer_exp_state.scan_start = scan_start;
}
/* Helper function for internal_arg_pointer_based_exp, called through
for_each_rtx. Return 1 if *LOC is a register based on
crtl->args.internal_arg_pointer. Return -1 if *LOC is not based on it
and the subexpressions need not be examined. Otherwise return 0. */
static int
internal_arg_pointer_based_exp_1 (rtx *loc, void *data ATTRIBUTE_UNUSED)
{
if (REG_P (*loc) && internal_arg_pointer_based_exp (*loc, false) != NULL_RTX)
return 1;
if (MEM_P (*loc))
return -1;
return 0;
}
/* Compute whether RTL is based on crtl->args.internal_arg_pointer. Return
NULL_RTX if RTL isn't based on it, a CONST_INT offset if RTL is based on
it with fixed offset, or PC if this is with variable or unknown offset.
TOPLEVEL is true if the function is invoked at the topmost level. */
static rtx
internal_arg_pointer_based_exp (rtx rtl, bool toplevel)
{
if (CONSTANT_P (rtl))
return NULL_RTX;
if (rtl == crtl->args.internal_arg_pointer)
return const0_rtx;
if (REG_P (rtl) && HARD_REGISTER_P (rtl))
return NULL_RTX;
if (GET_CODE (rtl) == PLUS && CONST_INT_P (XEXP (rtl, 1)))
{
rtx val = internal_arg_pointer_based_exp (XEXP (rtl, 0), toplevel);
if (val == NULL_RTX || val == pc_rtx)
return val;
return plus_constant (val, INTVAL (XEXP (rtl, 1)));
}
/* When called at the topmost level, scan pseudo assignments in between the
last scanned instruction in the tail call sequence and the latest insn
in that sequence. */
if (toplevel)
internal_arg_pointer_based_exp_scan ();
if (REG_P (rtl))
{
unsigned int idx = REGNO (rtl) - FIRST_PSEUDO_REGISTER;
if (idx < VEC_length (rtx, internal_arg_pointer_exp_state.cache))
return VEC_index (rtx, internal_arg_pointer_exp_state.cache, idx);
return NULL_RTX;
}
if (for_each_rtx (&rtl, internal_arg_pointer_based_exp_1, NULL))
return pc_rtx;
return NULL_RTX;
}
/* Return true if and only if SIZE storage units (usually bytes)
starting from address ADDR overlap with already clobbered argument
area. This function is used to determine if we should give up a
@@ -1557,20 +1682,22 @@
mem_overlaps_already_clobbered_arg_p (rtx addr, unsigned HOST_WIDE_INT size)
{
HOST_WIDE_INT i;
rtx val;
if (addr == crtl->args.internal_arg_pointer)
i = 0;
else if (GET_CODE (addr) == PLUS
&& XEXP (addr, 0) == crtl->args.internal_arg_pointer
&& CONST_INT_P (XEXP (addr, 1)))
i = INTVAL (XEXP (addr, 1));
else if (GET_CODE (addr) == PLUS
&& (XEXP (addr, 0) == crtl->args.internal_arg_pointer
|| XEXP (addr, 1) == crtl->args.internal_arg_pointer))
if (sbitmap_empty_p (stored_args_map))
return false;
val = internal_arg_pointer_based_exp (addr, true);
if (val == NULL_RTX)
return false;
else if (val == pc_rtx)
return true;
else
return false;
i = INTVAL (val);
#ifdef STACK_GROWS_DOWNWARD
i -= crtl->args.pretend_args_size;
#else
i += crtl->args.pretend_args_size;
#endif
#ifdef ARGS_GROW_DOWNWARD
i = -i - size;
@@ -3175,6 +3302,8 @@
}
sbitmap_free (stored_args_map);
internal_arg_pointer_exp_state.scan_start = NULL_RTX;
VEC_free (rtx, heap, internal_arg_pointer_exp_state.cache);
}
else
{
@@ -1969,7 +1969,14 @@
cond = get_condition (jump, &move_before, true, false);
if (cond == NULL_RTX)
move_before = jump;
{
#ifdef HAVE_cc0
if (reg_mentioned_p (cc0_rtx, jump))
move_before = prev_nonnote_nondebug_insn (jump);
else
#endif
move_before = jump;
}
for (ix = 0; ix < nedges; ix++)
if (EDGE_SUCC (bb, ix)->dest == EXIT_BLOCK_PTR)
@@ -2131,7 +2138,14 @@
jump = BB_END (final_dest_bb);
cond = get_condition (jump, &move_before, true, false);
if (cond == NULL_RTX)
move_before = jump;
{
#ifdef HAVE_cc0
if (reg_mentioned_p (cc0_rtx, jump))
move_before = prev_nonnote_nondebug_insn (jump);
else
#endif
move_before = jump;
}
}
do
@@ -1123,6 +1123,7 @@
rtx note;
edge new_edge;
int abnormal_edge_flags = 0;
bool asm_goto_edge = false;
int loc;
/* In the case the last instruction is conditional jump to the next
@@ -1202,8 +1203,28 @@
}
}
if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags)
/* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
don't point to target label. */
if (JUMP_P (BB_END (e->src))
&& target != EXIT_BLOCK_PTR
&& e->dest == target
&& (e->flags & EDGE_FALLTHRU)
&& (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
{
int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
for (i = 0; i < n; ++i)
if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
{
asm_goto_edge = true;
break;
}
}
if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
{
gcov_type count = e->count;
int probability = e->probability;
/* If the old block ended with a tablejump, skip its table
@@ -1214,7 +1235,7 @@
note = NEXT_INSN (note);
jump_block = create_basic_block (note, NULL, e->src);
jump_block->count = e->count;
jump_block->count = count;
jump_block->frequency = EDGE_FREQUENCY (e);
jump_block->loop_depth = target->loop_depth;
@@ -1230,12 +1251,26 @@
new_edge = make_edge (e->src, jump_block, EDGE_FALLTHRU);
new_edge->probability = e->probability;
new_edge->count = e->count;
new_edge->probability = probability;
new_edge->count = count;
redirect_edge_pred (e, jump_block);
e->probability = REG_BR_PROB_BASE;
/* If asm goto has any label refs to target's label,
add also edge from asm goto bb to target. */
if (asm_goto_edge)
{
new_edge->probability /= 2;
new_edge->count /= 2;
jump_block->count /= 2;
jump_block->frequency /= 2;
new_edge = make_edge (new_edge->src, target,
e->flags & ~EDGE_FALLTHRU);
new_edge->probability = probability - probability / 2;
new_edge->count = count - count / 2;
}
new_bb = jump_block;
}
@@ -1642,9 +1677,10 @@
putc ('\n', outf);
}
for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
insn = NEXT_INSN (insn))
print_rtl_single (outf, insn);
if (bb->index != ENTRY_BLOCK && bb->index != EXIT_BLOCK)
for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
insn = NEXT_INSN (insn))
print_rtl_single (outf, insn);
if (df)
{
@@ -2754,6 +2790,11 @@
rtx first = BB_END (a), last;
last = emit_insn_after_noloc (b->il.rtl->header, BB_END (a), a);
/* The above might add a BARRIER as BB_END, but as barriers
aren't valid parts of a bb, remove_insn doesn't update
BB_END if it is a barrier. So adjust BB_END here. */
while (BB_END (a) != first && BARRIER_P (BB_END (a)))
BB_END (a) = PREV_INSN (BB_END (a));
delete_insn_chain (NEXT_INSN (first), last, false);
b->il.rtl->header = NULL;
}
@@ -1666,6 +1666,7 @@
rtx link;
#endif
bool all_adjacent = true;
int (*is_volatile_p) (const_rtx);
if (succ)
{
@@ -1914,11 +1915,17 @@
&& REG_P (dest) && REGNO (dest) < FIRST_PSEUDO_REGISTER)
return 0;
/* If there are any volatile insns between INSN and I3, reject, because
they might affect machine state. */
/* If INSN contains volatile references (specifically volatile MEMs),
we cannot combine across any other volatile references.
Even if INSN doesn't contain volatile references, any intervening
volatile insn might affect machine state. */
is_volatile_p = volatile_refs_p (PATTERN (insn))
? volatile_refs_p
: volatile_insn_p;
for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
if (INSN_P (p) && p != succ && p != succ2 && volatile_insn_p (PATTERN (p)))
if (INSN_P (p) && p != succ && p != succ2 && is_volatile_p (PATTERN (p)))
return 0;
/* If INSN contains an autoincrement or autodecrement, make sure that
@@ -2551,8 +2558,8 @@
rtx i3dest_killed = 0;
rtx i2dest = 0, i2src = 0, i1dest = 0, i1src = 0, i0dest = 0, i0src = 0;
rtx i1src_copy = 0;
rtx i1src_copy = 0, i0src_copy = 0, i0src_copy2 = 0;
bool i2scratch = false;
@@ -3163,6 +3170,11 @@
n_occurrences = 0;
subst_low_luid = DF_INSN_LUID (i1);
/* If the following substitution will modify I1SRC, make a copy of it
for the case where it is substituted for I1DEST in I2PAT later. */
if (added_sets_2 && i1_feeds_i2_n)
i1src_copy = copy_rtx (i1src);
/* If I0 feeds into I1 and I0DEST is in I0SRC, we need to make a unique
copy of I1SRC each time we substitute it, in order to avoid creating
@@ -3191,10 +3203,14 @@
return 0;
}
/* If the following substitution will modify I1SRC, make a copy of it
for the case where it is substituted for I1DEST in I2PAT later. */
if (i0_feeds_i1_n && added_sets_2 && i1_feeds_i2_n)
i1src_copy = copy_rtx (i1src);
/* If the following substitution will modify I0SRC, make a copy of it
for the case where it is substituted for I0DEST in I1PAT later. */
if (added_sets_1 && i0_feeds_i1_n)
i0src_copy = copy_rtx (i0src);
if (added_sets_2 && ((i0_feeds_i1_n && i1_feeds_i2_n)
|| (i0_feeds_i2_n)))
i0src_copy2 = copy_rtx (i0src);
n_occurrences = 0;
subst_low_luid = DF_INSN_LUID (i0);
@@ -3260,7 +3276,7 @@
{
rtx t = i1pat;
if (i0_feeds_i1_n)
t = subst (t, i0dest, i0src, 0, 0);
t = subst (t, i0dest, i0src_copy ? i0src_copy : i0src, 0, 0);
XVECEXP (newpat, 0, --total_sets) = t;
}
@@ -3271,7 +3287,7 @@
t = subst (t, i1dest, i1src_copy ? i1src_copy : i1src, 0,
i0_feeds_i1_n && i0dest_in_i0src);
if ((i0_feeds_i1_n && i1_feeds_i2_n) || i0_feeds_i2_n)
t = subst (t, i0dest, i0src, 0, 0);
t = subst (t, i0dest, i0src_copy2 ? i0src_copy2 : i0src, 0, 0);
XVECEXP (newpat, 0, --total_sets) = t;
}
@@ -297,8 +297,11 @@
src = conforming_compare (insn);
if (src)
{
enum machine_mode src_mode = GET_MODE (src);
if (last_cmp_valid
&& src_mode == last_cmp->orig_mode
&& rtx_equal_p (last_cmp->in_a, XEXP (src, 0))
&& rtx_equal_p (last_cmp->in_b, XEXP (src, 1)))
{
@@ -311,7 +314,7 @@
last_cmp->prev_clobber = last_clobber;
last_cmp->in_a = XEXP (src, 0);
last_cmp->in_b = XEXP (src, 1);
last_cmp->orig_mode = GET_MODE (SET_DEST (single_set (insn)));
last_cmp->orig_mode = src_mode;
VEC_safe_push (comparison_struct_p, heap, all_compares, last_cmp);
/* It's unusual, but be prepared for comparison patterns that
@@ -7443,17 +7443,7 @@
RANLIB="$ac_cv_prog_RANLIB"
fi
case "${host}" in
*-*-darwin*)
# By default, the Darwin ranlib will not treat common symbols as
# definitions when building the archive table of contents. Other
# ranlibs do that; pass an option to the Darwin ranlib that makes
# it behave similarly.
ranlib_flags="-c"
;;
*)
ranlib_flags=""
esac
ranlib_flags=""
# Find a good install program. We prefer a C program (faster),
@@ -15750,7 +15740,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -16663,7 +16653,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -16681,7 +16671,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -17508,7 +17498,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 17508 "configure"
#line 17498 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -17614,7 +17604,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 17614 "configure"
#line 17604 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18540,7 +18530,7 @@
esac
;;
freebsd[12]*)
freebsd2.*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
ld_shlibs_CXX=no
@@ -20315,7 +20305,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -20333,7 +20323,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -807,17 +807,7 @@
gcc_AC_PROG_LN_S
ACX_PROG_LN($LN_S)
AC_PROG_RANLIB
case "${host}" in
*-*-darwin*)
# By default, the Darwin ranlib will not treat common symbols as
# definitions when building the archive table of contents. Other
# ranlibs do that; pass an option to the Darwin ranlib that makes
# it behave similarly.
ranlib_flags="-c"
;;
*)
ranlib_flags=""
esac
ranlib_flags=""
AC_SUBST(ranlib_flags)
gcc_AC_PROG_INSTALL
@@ -2489,8 +2489,11 @@
fputs (" locs:", out);
do
{
fprintf (out, "\n from insn %i ",
INSN_UID (l->setting_insn));
if (l->setting_insn)
fprintf (out, "\n from insn %i ",
INSN_UID (l->setting_insn));
else
fprintf (out, "\n ");
print_inline_rtx (out, l->loc, 4);
}
while ((l = l->next));
@@ -53,7 +53,7 @@
#define DF_RD 3 /* Reaching Defs. */
#define DF_CHAIN 4 /* Def-Use and/or Use-Def Chains. */
#define DF_WORD_LR 5 /* Subreg tracking lr. */
#define DF_NOTE 6 /* REG_DEF and REG_UNUSED notes. */
#define DF_NOTE 6 /* REG_DEAD and REG_UNUSED notes. */
#define DF_MD 7 /* Multiple Definitions. */
#define DF_LAST_PROBLEM_PLUS1 (DF_MD + 1)
@@ -133,12 +133,12 @@
if (context->warning_as_error_requested)
pp_verbatim (context->printer,
_("%s: all warnings being treated as errors\n"),
_("%s: all warnings being treated as errors"),
progname);
else
pp_verbatim (context->printer,
_("%s: some warnings being treated as errors\n"),
_("%s: some warnings being treated as errors"),
progname);
pp_flush (context->printer);
}
@@ -1023,7 +1023,7 @@
}
else
{
if (GET_MODE_CLASS (mode) == MODE_FLOAT
if (SCALAR_FLOAT_MODE_P (mode)
&& ! can_compare_p (code, mode, ccp_jump)
&& can_compare_p (swap_condition (code), mode, ccp_jump))
{
@@ -1034,7 +1034,7 @@
op1 = tmp;
}
else if (GET_MODE_CLASS (mode) == MODE_FLOAT
else if (SCALAR_FLOAT_MODE_P (mode)
&& ! can_compare_p (code, mode, ccp_jump)
@@ -4431,6 +4431,11 @@
const char *section;
dw_loc_descr_ref expr;
hashval_t hash;
/* True if all addresses in this and subsequent lists are known to be
resolved. */
bool resolved_addr;
bool replaced;
bool emitted;
} dw_loc_list_node;
@@ -6091,6 +6096,19 @@
static GTY ((param_is (var_loc_list))) htab_t decl_loc_table;
struct GTY (()) cached_dw_loc_list_def {
unsigned int decl_id;
dw_loc_list_ref loc_list;
};
typedef struct cached_dw_loc_list_def cached_dw_loc_list;
static GTY ((param_is (cached_dw_loc_list))) htab_t cached_dw_loc_list_table;
/* A pointer to the base of a list of references to DIE's that
are uniquely identified by their tag, presence/absence of
children DIE's, and list of attribute/value pairs. */
@@ -6439,7 +6457,7 @@
static void insert_double (double_int, unsigned char *);
static void insert_float (const_rtx, unsigned char *);
static rtx rtl_for_decl_location (tree);
static bool add_location_or_const_value_attribute (dw_die_ref, tree,
static bool add_location_or_const_value_attribute (dw_die_ref, tree, bool,
enum dwarf_attribute);
static bool tree_add_const_value_attribute (dw_die_ref, tree);
static bool tree_add_const_value_attribute_for_decl (dw_die_ref, tree);
@@ -8171,6 +8189,24 @@
return NULL;
return (var_loc_list *)
htab_find_with_hash (decl_loc_table, decl, DECL_UID (decl));
}
static hashval_t
cached_dw_loc_list_table_hash (const void *x)
{
return (hashval_t) ((const cached_dw_loc_list *) x)->decl_id;
}
/* Return nonzero if decl_id of cached_dw_loc_list X is the same as
UID of decl *Y. */
static int
cached_dw_loc_list_table_eq (const void *x, const void *y)
{
return (((const cached_dw_loc_list *) x)->decl_id
== DECL_UID ((const_tree) y));
}
@@ -10372,6 +10408,32 @@
}
return copy;
}
/* Like clone_tree, but additionally enter all the children into
the hash table decl_table. */
static dw_die_ref
clone_tree_hash (dw_die_ref die, htab_t decl_table)
{
dw_die_ref c;
dw_die_ref clone = clone_die (die);
struct decl_table_entry *entry;
void **slot = htab_find_slot_with_hash (decl_table, die,
htab_hash_pointer (die), INSERT);
/* Assert that DIE isn't in the hash table yet. If it would be there
before, the ancestors would be necessarily there as well, therefore
clone_tree_hash wouldn't be called. */
gcc_assert (*slot == HTAB_EMPTY_ENTRY);
entry = XCNEW (struct decl_table_entry);
entry->orig = die;
entry->copy = clone;
*slot = entry;
FOR_EACH_CHILD (die, c,
add_child_die (clone, clone_tree_hash (c, decl_table)));
return clone;
}
/* Walk the DIE and its children, looking for references to incomplete
@@ -10410,11 +10472,7 @@
else
{
dw_die_ref parent = unit;
dw_die_ref copy = clone_tree (targ);
/* Make sure the cloned tree is marked as part of the
type unit. */
mark_dies (copy);
dw_die_ref copy = clone_die (targ);
/* Record in DECL_TABLE that TARG has been copied.
Need to do this now, before the recursive call,
@@ -10424,7 +10482,15 @@
entry->orig = targ;
entry->copy = copy;
*slot = entry;
FOR_EACH_CHILD (targ, c,
add_child_die (copy,
clone_tree_hash (c, decl_table)));
/* Make sure the cloned tree is marked as part of the
type unit. */
mark_dies (copy);
/* If TARG has surrounding context, copy its ancestor tree
into the new type unit. */
if (targ->die_parent != NULL
@@ -11127,6 +11193,13 @@
unsigned long size;
if (strcmp (curr->begin, curr->end) == 0)
continue;
size = size_of_locs (curr->expr);
/* If the expression is too large, drop it on the floor. We could
perhaps put it into DW_TAG_dwarf_procedure and refer to that
in the expression, but >= 64KB expressions for a single value
in a single range are unlikely very useful. */
if (size > 0xffff)
continue;
if (!have_multiple_function_sections)
{
@@ -11146,7 +11219,6 @@
"Location list end address (%s)",
list_head->ll_symbol);
}
size = size_of_locs (curr->expr);
gcc_assert (size <= 0xffff);
@@ -16995,15 +17067,22 @@
these things can crop up in other ways also.) Note that one type of
constant value which can be passed into an inlined function is a constant
pointer. This can happen for example if an actual argument in an inlined
function call evaluates to a compile-time constant address. */
function call evaluates to a compile-time constant address.
CACHE_P is true if it is worth caching the location list for DECL,
so that future calls can reuse it rather than regenerate it from scratch.
This is true for BLOCK_NONLOCALIZED_VARS in inlined subroutines,
since we will need to refer to them each time the function is inlined. */
static bool
add_location_or_const_value_attribute (dw_die_ref die, tree decl,
add_location_or_const_value_attribute (dw_die_ref die, tree decl, bool cache_p,
enum dwarf_attribute attr)
{
rtx rtl;
dw_loc_list_ref list;
var_loc_list *loc_list;
cached_dw_loc_list *cache;
void **slot;
if (TREE_CODE (decl) == ERROR_MARK)
return false;
@@ -17039,8 +17118,34 @@
if ((CONSTANT_P (rtl) || GET_CODE (rtl) == CONST_STRING)
&& add_const_value_attribute (die, rtl))
return true;
}
/* If this decl is from BLOCK_NONLOCALIZED_VARS, we might need its
list several times. See if we've already cached the contents. */
list = NULL;
if (loc_list == NULL || cached_dw_loc_list_table == NULL)
cache_p = false;
if (cache_p)
{
cache = (cached_dw_loc_list *)
htab_find_with_hash (cached_dw_loc_list_table, decl, DECL_UID (decl));
if (cache)
list = cache->loc_list;
}
if (list == NULL)
{
list = loc_list_from_tree (decl, decl_by_reference_p (decl) ? 0 : 2);
/* It is usually worth caching this result if the decl is from
BLOCK_NONLOCALIZED_VARS and if the list has at least two elements. */
if (cache_p && list && list->dw_loc_next)
{
slot = htab_find_slot_with_hash (cached_dw_loc_list_table, decl,
DECL_UID (decl), INSERT);
cache = ggc_alloc_cleared_cached_dw_loc_list ();
cache->decl_id = DECL_UID (decl);
cache->loc_list = list;
*slot = cache;
}
}
list = loc_list_from_tree (decl, decl_by_reference_p (decl) ? 0 : 2);
if (list)
{
add_AT_location_description (die, attr, list);
@@ -18738,7 +18843,7 @@
equate_decl_number_to_die (node, parm_die);
if (! DECL_ABSTRACT (node_or_origin))
add_location_or_const_value_attribute (parm_die, node_or_origin,
DW_AT_location);
node == NULL, DW_AT_location);
break;
@@ -18923,6 +19028,7 @@
tree context;
int was_abstract;
htab_t old_decl_loc_table;
htab_t old_cached_dw_loc_list_table;
decl = DECL_ORIGIN (decl);
@@ -18937,6 +19043,8 @@
get locations in abstract instantces. */
old_decl_loc_table = decl_loc_table;
decl_loc_table = NULL;
old_cached_dw_loc_list_table = cached_dw_loc_list_table;
cached_dw_loc_list_table = NULL;
/* Be sure we've emitted the in-class declaration DIE (if any) first, so
we don't get confused by DECL_ABSTRACT. */
@@ -18961,6 +19069,7 @@
current_function_decl = save_fn;
decl_loc_table = old_decl_loc_table;
cached_dw_loc_list_table = old_cached_dw_loc_list_table;
pop_cfun ();
}
@@ -19745,9 +19854,8 @@
&& !TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl_or_origin)))
defer_location (decl_or_origin, var_die);
else
add_location_or_const_value_attribute (var_die,
decl_or_origin,
DW_AT_location);
add_location_or_const_value_attribute (var_die, decl_or_origin,
decl == NULL, DW_AT_location);
add_pubname (decl_or_origin, var_die);
}
else
@@ -21534,6 +21642,7 @@
dwarf2out_decl (decl);
htab_empty (decl_loc_table);
htab_empty (cached_dw_loc_list_table);
}
/* Output a marker (i.e. a label) for the beginning of the generated code for
@@ -22267,6 +22376,11 @@
decl_loc_table = htab_create_ggc (10, decl_loc_table_hash,
decl_loc_table_eq, NULL);
cached_dw_loc_list_table
= htab_create_ggc (10, cached_dw_loc_list_table_hash,
cached_dw_loc_list_table_eq, NULL);
decl_scope_table = VEC_alloc (tree, gc, 256);
@@ -22907,30 +23021,53 @@
{
dw_die_ref c;
dw_attr_ref a;
dw_loc_list_ref *curr;
dw_loc_list_ref *curr, *start, loc;
unsigned ix;
FOR_EACH_VEC_ELT (dw_attr_node, die->die_attr, ix, a)
switch (AT_class (a))
{
case dw_val_class_loc_list:
curr = AT_loc_list_ptr (a);
while (*curr)
start = curr = AT_loc_list_ptr (a);
loc = *curr;
gcc_assert (loc);
/* The same list can be referenced more than once. See if we have
already recorded the result from a previous pass. */
if (loc->replaced)
*curr = loc->dw_loc_next;
else if (!loc->resolved_addr)
{
if (!resolve_addr_in_expr ((*curr)->expr))
/* As things stand, we do not expect or allow one die to
reference a suffix of another die's location list chain.
References must be identical or completely separate.
There is therefore no need to cache the result of this
pass on any list other than the first; doing so
would lead to unnecessary writes. */
while (*curr)
{
dw_loc_list_ref next = (*curr)->dw_loc_next;
if (next && (*curr)->ll_symbol)
gcc_assert (!(*curr)->replaced && !(*curr)->resolved_addr);
if (!resolve_addr_in_expr ((*curr)->expr))
{
gcc_assert (!next->ll_symbol);
next->ll_symbol = (*curr)->ll_symbol;
dw_loc_list_ref next = (*curr)->dw_loc_next;
if (next && (*curr)->ll_symbol)
{
gcc_assert (!next->ll_symbol);
next->ll_symbol = (*curr)->ll_symbol;
}
*curr = next;
}
*curr = next;
else
curr = &(*curr)->dw_loc_next;
}
if (loc == *start)
loc->resolved_addr = 1;
else
curr = &(*curr)->dw_loc_next;
{
loc->replaced = 1;
loc->dw_loc_next = *start;
}
}
if (!AT_loc_list (a))
if (!*start)
{
remove_AT (die, a->dw_attr);
ix--;
@@ -23359,6 +23496,7 @@
add_location_or_const_value_attribute (
VEC_index (deferred_locations, deferred_locations_list, i)->die,
VEC_index (deferred_locations, deferred_locations_list, i)->variable,
false,
DW_AT_location);
}
@@ -2180,6 +2180,111 @@
return tgtblk;
}
/* Copy BLKmode value SRC into a register of mode MODE. Return the
register if it contains any data, otherwise return null.
This is used on targets that return BLKmode values in registers. */
rtx
copy_blkmode_to_reg (enum machine_mode mode, tree src)
{
int i, n_regs;
unsigned HOST_WIDE_INT bitpos, xbitpos, padding_correction = 0, bytes;
unsigned int bitsize;
rtx *dst_words, dst, x, src_word = NULL_RTX, dst_word = NULL_RTX;
enum machine_mode dst_mode;
gcc_assert (TYPE_MODE (TREE_TYPE (src)) == BLKmode);
x = expand_normal (src);
bytes = int_size_in_bytes (TREE_TYPE (src));
if (bytes == 0)
return NULL_RTX;
/* If the structure doesn't take up a whole number of words, see
whether the register value should be padded on the left or on
the right. Set PADDING_CORRECTION to the number of padding
bits needed on the left side.
In most ABIs, the structure will be returned at the least end of
the register, which translates to right padding on little-endian
targets and left padding on big-endian targets. The opposite
holds if the structure is returned at the most significant
end of the register. */
if (bytes % UNITS_PER_WORD != 0
&& (targetm.calls.return_in_msb (TREE_TYPE (src))
? !BYTES_BIG_ENDIAN
: BYTES_BIG_ENDIAN))
padding_correction = (BITS_PER_WORD - ((bytes % UNITS_PER_WORD)
* BITS_PER_UNIT));
n_regs = (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
dst_words = XALLOCAVEC (rtx, n_regs);
bitsize = MIN (TYPE_ALIGN (TREE_TYPE (src)), BITS_PER_WORD);
for (bitpos = 0, xbitpos = padding_correction;
bitpos < bytes * BITS_PER_UNIT;
bitpos += bitsize, xbitpos += bitsize)
{
/* We need a new destination pseudo each time xbitpos is
on a word boundary and when xbitpos == padding_correction
(the first time through). */
if (xbitpos % BITS_PER_WORD == 0
|| xbitpos == padding_correction)
{
dst_word = gen_reg_rtx (word_mode);
dst_words[xbitpos / BITS_PER_WORD] = dst_word;
emit_move_insn (dst_word, CONST0_RTX (word_mode));
}
/* We need a new source operand each time bitpos is on a word
boundary. */
if (bitpos % BITS_PER_WORD == 0)
src_word = operand_subword_force (x, bitpos / BITS_PER_WORD, BLKmode);
/* Use bitpos for the source extraction (left justified) and
xbitpos for the destination store (right justified). */
store_bit_field (dst_word, bitsize, xbitpos % BITS_PER_WORD, word_mode,
extract_bit_field (src_word, bitsize,
bitpos % BITS_PER_WORD, 1, false,
NULL_RTX, word_mode, word_mode));
}
if (mode == BLKmode)
{
/* Find the smallest integer mode large enough to hold the
entire structure. */
for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
if (GET_MODE_SIZE (mode) >= bytes)
break;
gcc_assert (mode != VOIDmode);
}
if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (word_mode))
dst_mode = word_mode;
else
dst_mode = mode;
dst = gen_reg_rtx (dst_mode);
for (i = 0; i < n_regs; i++)
emit_move_insn (operand_subword (dst, i, 0, dst_mode), dst_words[i]);
if (mode != dst_mode)
dst = gen_lowpart (mode, dst);
return dst;
}
/* Add a USE expression for REG to the (possibly empty) list pointed
to by CALL_FUSAGE. REG must denote a hard register. */
@@ -4382,7 +4487,9 @@
if (TREE_CODE (from) == CALL_EXPR && ! aggregate_value_p (from, from)
&& COMPLETE_TYPE_P (TREE_TYPE (from))
&& TREE_CODE (TYPE_SIZE (TREE_TYPE (from))) == INTEGER_CST
&& ! (((TREE_CODE (to) == VAR_DECL || TREE_CODE (to) == PARM_DECL)
&& ! (((TREE_CODE (to) == VAR_DECL
|| TREE_CODE (to) == PARM_DECL
|| TREE_CODE (to) == RESULT_DECL)
&& REG_P (DECL_RTL (to)))
|| TREE_CODE (to) == SSA_NAME))
{
@@ -4428,12 +4535,15 @@
rtx temp;
push_temp_slots ();
temp = expand_expr (from, NULL_RTX, GET_MODE (to_rtx), EXPAND_NORMAL);
if (REG_P (to_rtx) && TYPE_MODE (TREE_TYPE (from)) == BLKmode)
temp = copy_blkmode_to_reg (GET_MODE (to_rtx), from);
else
temp = expand_expr (from, NULL_RTX, GET_MODE (to_rtx), EXPAND_NORMAL);
if (GET_CODE (to_rtx) == PARALLEL)
emit_group_load (to_rtx, temp, TREE_TYPE (from),
int_size_in_bytes (TREE_TYPE (from)));
else
else if (temp)
emit_move_insn (to_rtx, temp);
preserve_temp_slots (to_rtx);
@@ -6186,6 +6296,24 @@
if (offset)
{
if (double_int_negative_p (bit_offset))
{
double_int mask
= double_int_mask (BITS_PER_UNIT == 8
? 3 : exact_log2 (BITS_PER_UNIT));
double_int tem = double_int_and_not (bit_offset, mask);
/* TEM is the bitpos rounded to BITS_PER_UNIT towards -Inf.
Subtract it to BIT_OFFSET and add it (scaled) to OFFSET. */
bit_offset = double_int_sub (bit_offset, tem);
tem = double_int_rshift (tem,
BITS_PER_UNIT == 8
? 3 : exact_log2 (BITS_PER_UNIT),
HOST_BITS_PER_DOUBLE_INT, true);
offset = size_binop (PLUS_EXPR, offset,
double_int_to_tree (sizetype, tem));
}
*pbitpos = double_int_to_shwi (bit_offset);
*poffset = offset;
}
@@ -6887,7 +7015,12 @@
generating ADDR_EXPR of something that isn't an LVALUE. The only
exception here is STRING_CST. */
if (CONSTANT_CLASS_P (exp))
return XEXP (expand_expr_constant (exp, 0, modifier), 0);
{
result = XEXP (expand_expr_constant (exp, 0, modifier), 0);
if (modifier < EXPAND_SUM)
result = force_operand (result, target);
return result;
}
switch (TREE_CODE (exp))
@@ -6908,7 +7041,11 @@
case CONST_DECL:
return XEXP (expand_expr_constant (DECL_INITIAL (exp), 0, modifier), 0);
result = XEXP (expand_expr_constant (DECL_INITIAL (exp),
0, modifier), 0);
if (modifier < EXPAND_SUM)
result = force_operand (result, target);
return result;
case REALPART_EXPR:
/* The real part of the complex number is always first, therefore
@@ -8533,10 +8670,15 @@
return temp;
}
/* If the mode of DECL_RTL does not match that of the decl, it
must be a promoted value. We return a SUBREG of the wanted mode,
but mark it so that we know that it was already extended. */
if (REG_P (decl_rtl) && GET_MODE (decl_rtl) != DECL_MODE (exp))
/* If the mode of DECL_RTL does not match that of the decl,
there are two cases: we are dealing with a BLKmode value
that is returned in a register, or we are dealing with
a promoted value. In the latter case, return a SUBREG
of the wanted mode, but mark it so that we know that it
was already extended. */
if (REG_P (decl_rtl)
&& DECL_MODE (exp) != BLKmode
&& GET_MODE (decl_rtl) != DECL_MODE (exp))
{
enum machine_mode pmode;
@@ -9189,8 +9331,16 @@
&& modifier != EXPAND_CONST_ADDRESS
&& modifier != EXPAND_INITIALIZER)
/* If the field is volatile, we always want an aligned
access. */
|| (volatilep && flag_strict_volatile_bitfields > 0)
access. Do this in following two situations:
1. the access is not already naturally
aligned, otherwise "normal" (non-bitfield) volatile fields
become non-addressable.
2. the bitsize is narrower than the access size. Need
to extract bitfields from the access. */
|| (volatilep && flag_strict_volatile_bitfields > 0
&& (bitpos % GET_MODE_ALIGNMENT (mode) != 0
|| (mode1 != BLKmode
&& bitsize < GET_MODE_SIZE (mode1) * BITS_PER_UNIT)))
/* If the field isn't aligned enough to fetch as a memref,
fetch it as a bit field. */
|| (mode1 != BLKmode
@@ -9486,10 +9636,32 @@
results. */
if (MEM_P (op0))
{
enum insn_code icode;
op0 = copy_rtx (op0);
if (TYPE_ALIGN_OK (type))
set_mem_align (op0, MAX (MEM_ALIGN (op0), TYPE_ALIGN (type)));
else if (mode != BLKmode
&& MEM_ALIGN (op0) < GET_MODE_ALIGNMENT (mode)
/* If the target does have special handling for unaligned
loads of mode then use them. */
&& ((icode = optab_handler (movmisalign_optab, mode))
!= CODE_FOR_nothing))
{
rtx reg, insn;
op0 = adjust_address (op0, mode, 0);
/* We've already validated the memory, and we're creating a
new pseudo destination. The predicates really can't
fail. */
reg = gen_reg_rtx (mode);
insn = GEN_FCN (icode) (reg, op0);
emit_insn (insn);
return reg;
}
else if (STRICT_ALIGNMENT
&& mode != BLKmode
&& MEM_ALIGN (op0) < GET_MODE_ALIGNMENT (mode))
@@ -324,6 +324,8 @@
extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
extern rtx copy_blkmode_to_reg (enum machine_mode, tree);
extern void use_reg (rtx *, rtx);
@@ -10617,66 +10617,50 @@
&& TREE_CODE (arg1) == INTEGER_CST
&& TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)
{
unsigned HOST_WIDE_INT hi1, lo1, hi2, lo2, hi3, lo3, mlo, mhi;
double_int c1, c2, c3, msk;
int width = TYPE_PRECISION (type), w;
hi1 = TREE_INT_CST_HIGH (TREE_OPERAND (arg0, 1));
lo1 = TREE_INT_CST_LOW (TREE_OPERAND (arg0, 1));
hi2 = TREE_INT_CST_HIGH (arg1);
lo2 = TREE_INT_CST_LOW (arg1);
c1 = tree_to_double_int (TREE_OPERAND (arg0, 1));
c2 = tree_to_double_int (arg1);
if ((hi1 & hi2) == hi1 && (lo1 & lo2) == lo1)
if (double_int_equal_p (double_int_and (c1, c2), c1))
return omit_one_operand_loc (loc, type, arg1,
TREE_OPERAND (arg0, 0));
TREE_OPERAND (arg0, 0));
if (width > HOST_BITS_PER_WIDE_INT)
{
mhi = (unsigned HOST_WIDE_INT) -1
>> (2 * HOST_BITS_PER_WIDE_INT - width);
mlo = -1;
}
else
{
mhi = 0;
mlo = (unsigned HOST_WIDE_INT) -1
>> (HOST_BITS_PER_WIDE_INT - width);
}
msk = double_int_mask (width);
if ((~(hi1 | hi2) & mhi) == 0 && (~(lo1 | lo2) & mlo) == 0)
if (double_int_zero_p (double_int_and_not (msk,
double_int_ior (c1, c2))))
return fold_build2_loc (loc, BIT_IOR_EXPR, type,
TREE_OPERAND (arg0, 0), arg1);
TREE_OPERAND (arg0, 0), arg1);
/* Minimize the number of bits set in C1, i.e. C1 := C1 & ~C2,
unless (C1 & ~C2) | (C2 & C3) for some C3 is a mask of some
mode which allows further optimizations. */
hi1 &= mhi;
lo1 &= mlo;
hi2 &= mhi;
lo2 &= mlo;
hi3 = hi1 & ~hi2;
lo3 = lo1 & ~lo2;
c1 = double_int_and (c1, msk);
c2 = double_int_and (c2, msk);
c3 = double_int_and_not (c1, c2);
for (w = BITS_PER_UNIT;
w <= width && w <= HOST_BITS_PER_WIDE_INT;
w <<= 1)
{
unsigned HOST_WIDE_INT mask
= (unsigned HOST_WIDE_INT) -1 >> (HOST_BITS_PER_WIDE_INT - w);
if (((lo1 | lo2) & mask) == mask
&& (lo1 & ~mask) == 0 && hi1 == 0)
if (((c1.low | c2.low) & mask) == mask
&& (c1.low & ~mask) == 0 && c1.high == 0)
{
hi3 = 0;
lo3 = mask;
c3 = uhwi_to_double_int (mask);
break;
}
}
if (hi3 != hi1 || lo3 != lo1)
if (!double_int_equal_p (c3, c1))
return fold_build2_loc (loc, BIT_IOR_EXPR, type,
fold_build2_loc (loc, BIT_AND_EXPR, type,
TREE_OPERAND (arg0, 0),
build_int_cst_wide (type,
lo3, hi3)),
arg1);
fold_build2_loc (loc, BIT_AND_EXPR, type,
TREE_OPERAND (arg0, 0),
double_int_to_tree (type,
c3)),
arg1);
}
@@ -1,7 +1,7 @@
/* Expands front end tree to back end RTL for GCC.
Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011 Free Software Foundation, Inc.
2010, 2011, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -1747,7 +1747,7 @@
if (!check_asm_operands (PATTERN (insn)))
{
error_for_asm (insn, "impossible constraint in %<asm%>");
delete_insn (insn);
delete_insn_and_edges (insn);
}
}
else
@@ -942,7 +942,7 @@
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 1 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
/* Process source files and output type information.
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
@@ -964,7 +964,7 @@
along with GCC; see the file COPYING3. If not see
<http:
#define YY_NO_INPUT 1
#line 25 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 25 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
#include "bconfig.h"
#include "system.h"
@@ -1174,7 +1174,7 @@
register char *yy_cp, *yy_bp;
register int yy_act;
#line 59 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 59 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
*yylval = 0;
@@ -1271,7 +1271,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 70 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 70 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return TYPEDEF;
@@ -1283,7 +1283,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 74 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 74 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return STRUCT;
@@ -1295,7 +1295,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 78 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 78 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return UNION;
@@ -1307,7 +1307,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 82 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 82 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return EXTERN;
@@ -1319,7 +1319,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 86 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 86 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return STATIC;
@@ -1331,7 +1331,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 91 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 91 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return DEFVEC_OP;
@@ -1343,7 +1343,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 95 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 95 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return DEFVEC_I;
@@ -1355,7 +1355,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 99 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 99 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
BEGIN(in_struct);
return DEFVEC_ALLOC;
@@ -1365,19 +1365,19 @@
case 9:
YY_RULE_SETUP
#line 107 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 107 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ BEGIN(in_struct_comment); }
YY_BREAK
case 10:
YY_RULE_SETUP
#line 109 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 109 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ update_lineno (yytext, yyleng); }
YY_BREAK
case 11:
YY_RULE_SETUP
#line 110 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 110 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ lexer_line.line++; }
YY_BREAK
case 12:
@@ -1386,7 +1386,7 @@
(yy_c_buf_p) = yy_cp = yy_bp + 5;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 112 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 112 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
YY_BREAK
case 13:
@@ -1395,7 +1395,7 @@
(yy_c_buf_p) = yy_cp = yy_bp + 3;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 113 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 113 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return GTY_TOKEN; }
YY_BREAK
case 14:
@@ -1404,7 +1404,7 @@
(yy_c_buf_p) = yy_cp = yy_bp + 3;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 114 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 114 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return VEC_TOKEN; }
YY_BREAK
case 15:
@@ -1413,7 +1413,7 @@
(yy_c_buf_p) = yy_cp = yy_bp + 5;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 115 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 115 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return UNION; }
YY_BREAK
case 16:
@@ -1422,7 +1422,7 @@
(yy_c_buf_p) = yy_cp = yy_bp + 6;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 116 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 116 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return STRUCT; }
YY_BREAK
case 17:
@@ -1431,7 +1431,7 @@
(yy_c_buf_p) = yy_cp = yy_bp + 4;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 117 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 117 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return ENUM; }
YY_BREAK
case 18:
@@ -1440,7 +1440,7 @@
(yy_c_buf_p) = yy_cp = yy_bp + 9;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 118 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 118 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return PTR_ALIAS; }
YY_BREAK
case 19:
@@ -1449,12 +1449,12 @@
(yy_c_buf_p) = yy_cp = yy_bp + 10;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 119 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 119 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return NESTED_PTR; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 120 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 120 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return NUM; }
YY_BREAK
case 21:
@@ -1463,7 +1463,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 121 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 121 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
*yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
return PARAM_IS;
@@ -1474,11 +1474,11 @@
*yy_cp = (yy_hold_char);
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
#line 127 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 127 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
case 23:
YY_RULE_SETUP
#line 127 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 127 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
size_t len;
@@ -1496,7 +1496,7 @@
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 139 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 139 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
*yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
return ID;
@@ -1505,7 +1505,7 @@
case 25:
YY_RULE_SETUP
#line 144 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 144 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
*yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
return STRING;
@@ -1515,7 +1515,7 @@
case 26:
YY_RULE_SETUP
#line 149 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 149 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
*yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
return ARRAY;
@@ -1524,7 +1524,7 @@
case 27:
YY_RULE_SETUP
#line 153 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 153 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
*yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
return CHAR;
@@ -1532,24 +1532,24 @@
YY_BREAK
case 28:
YY_RULE_SETUP
#line 158 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 158 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return ELLIPSIS; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 159 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 159 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ return yytext[0]; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 162 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 162 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{lexer_line.line++;}
YY_BREAK
case 31:
YY_RULE_SETUP
#line 164 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 164 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
error_at_line (&lexer_line, "unexpected character `%s'", yytext);
}
@@ -1557,30 +1557,30 @@
case 32:
YY_RULE_SETUP
#line 169 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 169 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ BEGIN(in_comment); }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 170 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 170 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ lexer_line.line++; }
YY_BREAK
case 34:
#line 172 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 172 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
case 35:
#line 173 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 173 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
case 36:
YY_RULE_SETUP
#line 173 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 173 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
YY_BREAK
case 37:
YY_RULE_SETUP
#line 174 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 174 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ update_lineno (yytext, yyleng); }
YY_BREAK
case 38:
@@ -1589,21 +1589,21 @@
(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 175 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 175 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
YY_BREAK
case 39:
YY_RULE_SETUP
#line 178 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 178 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ lexer_line.line++; }
YY_BREAK
case 40:
#line 180 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 180 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
case 41:
YY_RULE_SETUP
#line 180 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 180 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
YY_BREAK
case 42:
@@ -1612,25 +1612,25 @@
(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION;
YY_RULE_SETUP
#line 181 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 181 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
YY_BREAK
case 43:
YY_RULE_SETUP
#line 183 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 183 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ BEGIN(INITIAL); }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 184 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 184 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{ BEGIN(in_struct); }
YY_BREAK
case 45:
#line 187 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 187 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
case 46:
YY_RULE_SETUP
#line 187 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 187 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
{
error_at_line (&lexer_line,
"unterminated comment or string; unexpected EOF");
@@ -1639,12 +1639,12 @@
case 47:
YY_RULE_SETUP
#line 192 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 192 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
YY_BREAK
case 48:
YY_RULE_SETUP
#line 194 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 194 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
#line 1650 "gengtype-lex.c"
@@ -2611,7 +2611,7 @@
#define YYTABLES_NAME "yytables"
#line 194 "/d/gcc-4.6.2/gcc-4.6.2/gcc/gengtype-lex.l"
#line 194 "/d//gcc-4.6.3/gcc-4.6.3/gcc/gengtype-lex.l"
@@ -155,6 +155,14 @@
#elif defined(HAVE_GTHR_DEFAULT)
#if SUPPORTS_WEAK
/* The pe-coff weak support isn't fully compatible to ELF's weak.
For static libraries it might would work, but as we need to deal
with shared versions too, we disable it for mingw-targets. */
#ifdef __MINGW32__
#undef GTHREAD_USE_WEAK
#define GTHREAD_USE_WEAK 0
#endif
#ifndef GTHREAD_USE_WEAK
#define GTHREAD_USE_WEAK 1
#endif
@@ -2868,9 +2868,9 @@
{
const struct lto_function_header *header =
(const struct lto_function_header *) data;
const int32_t cfg_offset = sizeof (struct lto_function_header);
const int32_t main_offset = cfg_offset + header->cfg_size;
const int32_t string_offset = main_offset + header->main_size;
const int cfg_offset = sizeof (struct lto_function_header);
const int main_offset = cfg_offset + header->cfg_size;
const int string_offset = main_offset + header->main_size;
struct data_in *data_in;
struct lto_input_block ib_main;
unsigned int i;
@@ -130,6 +130,10 @@
struct split_point best_split_point;
static bitmap forbidden_dominators;
static tree find_retval (basic_block return_bb);
/* Callback for walk_stmt_load_store_addr_ops. If T is non-SSA automatic
@@ -268,6 +272,83 @@
BITMAP_FREE (seen);
VEC_free (basic_block, heap, worklist);
return ok;
}
/* If STMT is a call, check the callee against a list of forbidden
predicate functions. If a match is found, look for uses of the
call result in condition statements that compare against zero.
For each such use, find the block targeted by the condition
statement for the nonzero result, and set the bit for this block
in the forbidden dominators bitmap. The purpose of this is to avoid
selecting a split point where we are likely to lose the chance
to optimize away an unused function call. */
static void
check_forbidden_calls (gimple stmt)
{
imm_use_iterator use_iter;
use_operand_p use_p;
tree lhs;
/* At the moment, __builtin_constant_p is the only forbidden
predicate function call (see PR49642). */
if (!gimple_call_builtin_p (stmt, BUILT_IN_CONSTANT_P))
return;
lhs = gimple_call_lhs (stmt);
if (!lhs || TREE_CODE (lhs) != SSA_NAME)
return;
FOR_EACH_IMM_USE_FAST (use_p, use_iter, lhs)
{
tree op1;
basic_block use_bb, forbidden_bb;
enum tree_code code;
edge true_edge, false_edge;
gimple use_stmt = USE_STMT (use_p);
if (gimple_code (use_stmt) != GIMPLE_COND)
continue;
/* Assuming canonical form for GIMPLE_COND here, with constant
in second position. */
op1 = gimple_cond_rhs (use_stmt);
code = gimple_cond_code (use_stmt);
use_bb = gimple_bb (use_stmt);
extract_true_false_edges_from_block (use_bb, &true_edge, &false_edge);
/* We're only interested in comparisons that distinguish
unambiguously from zero. */
if (!integer_zerop (op1) || code == LE_EXPR || code == GE_EXPR)
continue;
if (code == EQ_EXPR)
forbidden_bb = false_edge->dest;
else
forbidden_bb = true_edge->dest;
bitmap_set_bit (forbidden_dominators, forbidden_bb->index);
}
}
/* If BB is dominated by any block in the forbidden dominators set,
return TRUE; else FALSE. */
static bool
dominated_by_forbidden (basic_block bb)
{
unsigned dom_bb;
bitmap_iterator bi;
EXECUTE_IF_SET_IN_BITMAP (forbidden_dominators, 1, dom_bb, bi)
{
if (dominated_by_p (CDI_DOMINATORS, bb, BASIC_BLOCK (dom_bb)))
return true;
}
return false;
}
/* We found an split_point CURRENT. NON_SSA_VARS is bitmap of all non ssa
@@ -409,8 +490,20 @@
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file,
" Refused: split part has non-ssa uses\n");
return;
}
/* If the split point is dominated by a forbidden block, reject
the split. */
if (!bitmap_empty_p (forbidden_dominators)
&& dominated_by_forbidden (current->entry_bb))
{
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file,
" Refused: split point dominated by forbidden block\n");
return;
}
/* See if retval used by return bb is computed by header or split part.
When it is computed by split part, we need to produce return statement
in the split part and add code to header to pass it around.
@@ -1328,6 +1421,10 @@
" is not inline.\n");
return 0;
}
forbidden_dominators = BITMAP_ALLOC (NULL);
calculate_dominance_info (CDI_DOMINATORS);
VEC_safe_grow_cleared (bb_info, heap, bb_info_vec, last_basic_block + 1);
@@ -1350,6 +1447,7 @@
this_time = estimate_num_insns (stmt, &eni_time_weights) * freq;
size += this_size;
time += this_time;
check_forbidden_calls (stmt);
if (dump_file && (dump_flags & TDF_DETAILS))
{
@@ -1371,6 +1469,7 @@
BITMAP_FREE (best_split_point.split_bbs);
todo = TODO_update_ssa | TODO_cleanup_cfg;
}
BITMAP_FREE (forbidden_dominators);
VEC_free (bb_info, heap, bb_info_vec);
bb_info_vec = NULL;
return todo;
@@ -334,14 +334,11 @@
describes the loop, DESC describes the number of iterations of the
loop, and DOLOOP_INSN is the low-overhead looping insn to emit at the
end of the loop. CONDITION is the condition separated from the
DOLOOP_SEQ. COUNT is the number of iterations of the LOOP.
ZERO_EXTEND_P says to zero extend COUNT after the increment of it to
word_mode from FROM_MODE. */
DOLOOP_SEQ. COUNT is the number of iterations of the LOOP. */
static void
doloop_modify (struct loop *loop, struct niter_desc *desc,
rtx doloop_seq, rtx condition, rtx count,
bool zero_extend_p, enum machine_mode from_mode)
rtx doloop_seq, rtx condition, rtx count)
{
rtx counter_reg;
rtx tmp, noloop = NULL_RTX;
@@ -415,12 +412,8 @@
}
if (increment_count)
count = simplify_gen_binary (PLUS, from_mode, count, const1_rtx);
count = simplify_gen_binary (PLUS, mode, count, const1_rtx);
if (zero_extend_p)
count = simplify_gen_unary (ZERO_EXTEND, word_mode,
count, from_mode);
start_sequence ();
tmp = force_operand (count, counter_reg);
@@ -555,7 +548,6 @@
struct niter_desc *desc;
unsigned word_mode_size;
unsigned HOST_WIDE_INT word_mode_max;
bool zero_extend_p = false;
if (dump_file)
fprintf (dump_file, "Doloop: Processing loop %d.\n", loop->num);
@@ -630,7 +622,8 @@
{
if (word_mode_size > GET_MODE_BITSIZE (mode))
{
zero_extend_p = true;
count = simplify_gen_unary (ZERO_EXTEND, word_mode,
count, mode);
iterations = simplify_gen_unary (ZERO_EXTEND, word_mode,
iterations, mode);
iterations_max = simplify_gen_unary (ZERO_EXTEND, word_mode,
@@ -674,8 +667,7 @@
return false;
}
doloop_modify (loop, desc, doloop_seq, condition, count,
zero_extend_p, mode);
doloop_modify (loop, desc, doloop_seq, condition, count);
return true;
}
@@ -1792,9 +1792,9 @@
{
const struct lto_function_header *header =
(const struct lto_function_header *) data;
const int32_t cfg_offset = sizeof (struct lto_function_header);
const int32_t main_offset = cfg_offset + header->cfg_size;
const int32_t string_offset = main_offset + header->main_size;
const int cfg_offset = sizeof (struct lto_function_header);
const int main_offset = cfg_offset + header->cfg_size;
const int string_offset = main_offset + header->main_size;
struct data_in *data_in;
struct lto_input_block ib_main;
unsigned int i;
@@ -358,7 +358,7 @@
size_t len, l, skip;
const char *data, *p;
const struct lto_simple_header *header;
int32_t opts_offset;
int opts_offset;
struct lto_input_block ib;
data = lto_get_section_data (file_data, LTO_section_opts, NULL, &len);
@@ -379,10 +379,10 @@
lto_check_version (header->lto_header.major_version,
header->lto_header.minor_version);
LTO_INIT_INPUT_BLOCK (ib, p + opts_offset, 0, header->main_size);
input_options (&ib);
skip = header->main_size + opts_offset;
l -= skip;
p += skip;
@@ -296,7 +296,7 @@
= (const struct lto_simple_header *) data;
struct lto_input_block* ib_main;
int32_t main_offset = sizeof (struct lto_simple_header);
int main_offset = sizeof (struct lto_simple_header);
if (!data)
return NULL;
@@ -1366,9 +1366,9 @@
{
const struct lto_function_header *header;
struct data_in *data_in;
int32_t cfg_offset;
int32_t main_offset;
int32_t string_offset;
int cfg_offset;
int main_offset;
int string_offset;
struct lto_input_block ib_cfg;
struct lto_input_block ib_main;
@@ -2408,7 +2408,7 @@
enum gcc_plugin_symbol_kind kind;
enum gcc_plugin_symbol_visibility visibility;
int slot_num;
uint64_t size;
unsigned HOST_WIDEST_INT size;
const char *comdat;
unsigned char c;
@@ -2466,7 +2466,7 @@
when symbol has attribute (visibility("hidden")) specified.
targetm.binds_local_p check DECL_VISIBILITY_SPECIFIED and gets this
right. */
if (DECL_EXTERNAL (t)
&& !targetm.binds_local_p (t))
visibility = GCCPV_DEFAULT;
@@ -2488,14 +2488,9 @@
}
if (kind == GCCPK_COMMON
&& DECL_SIZE (t)
&& TREE_CODE (DECL_SIZE (t)) == INTEGER_CST)
{
size = (HOST_BITS_PER_WIDE_INT >= 64)
? (uint64_t) int_size_in_bytes (TREE_TYPE (t))
: (((uint64_t) TREE_INT_CST_HIGH (DECL_SIZE_UNIT (t))) << 32)
| TREE_INT_CST_LOW (DECL_SIZE_UNIT (t));
}
&& DECL_SIZE_UNIT (t)
&& TREE_CODE (DECL_SIZE_UNIT (t)) == INTEGER_CST)
size = TREE_INT_CST_LOW (DECL_SIZE_UNIT (t));
else
size = 0;
@@ -4618,6 +4618,9 @@
{
int fn_index, start_ix, next_ix;
if (fd.chunk_size == NULL
&& fd.sched_kind == OMP_CLAUSE_SCHEDULE_STATIC)
fd.chunk_size = integer_zero_node;
gcc_assert (fd.sched_kind != OMP_CLAUSE_SCHEDULE_AUTO);
fn_index = (fd.sched_kind == OMP_CLAUSE_SCHEDULE_RUNTIME)
? 3 : fd.sched_kind;
@@ -998,6 +998,41 @@
fprintf (dump_file, "Adding fake entry edge to bb %i\n",
bb->index);
make_edge (ENTRY_BLOCK_PTR, bb, EDGE_FAKE);
/* Avoid bbs that have both fake entry edge and also some
exit edge. One of those edges wouldn't be added to the
spanning tree, but we can't instrument any of them. */
if (have_exit_edge || need_exit_edge)
{
gimple_stmt_iterator gsi;
gimple first;
tree fndecl;
gsi = gsi_after_labels (bb);
gcc_checking_assert (!gsi_end_p (gsi));
first = gsi_stmt (gsi);
if (is_gimple_debug (first))
{
gsi_next_nondebug (&gsi);
gcc_checking_assert (!gsi_end_p (gsi));
first = gsi_stmt (gsi);
}
/* Don't split the bbs containing __builtin_setjmp_receiver
or __builtin_setjmp_dispatcher calls. These are very
special and don't expect anything to be inserted before
them. */
if (!is_gimple_call (first)
|| (fndecl = gimple_call_fndecl (first)) == NULL
|| DECL_BUILT_IN_CLASS (fndecl) != BUILT_IN_NORMAL
|| (DECL_FUNCTION_CODE (fndecl) != BUILT_IN_SETJMP_RECEIVER
&& (DECL_FUNCTION_CODE (fndecl)
!= BUILT_IN_SETJMP_DISPATCHER)))
{
if (dump_file)
fprintf (dump_file, "Splitting bb %i after labels\n",
bb->index);
split_block_after_labels (bb);
}
}
}
}
@@ -3023,6 +3023,7 @@
static int search_ofs;
enum reg_class cl;
HARD_REG_SET live;
df_ref *def_rec;
int i;
gcc_assert (from < MAX_INSNS_PER_PEEP2 + 1);
@@ -3036,12 +3037,14 @@
while (from != to)
{
HARD_REG_SET this_live;
gcc_assert (peep2_insn_data[from].insn != NULL_RTX);
for (def_rec = DF_INSN_DEFS (peep2_insn_data[from].insn);
*def_rec; def_rec++)
SET_HARD_REG_BIT (live, DF_REF_REGNO (*def_rec));
from = peep2_buf_position (from + 1);
gcc_assert (peep2_insn_data[from].insn != NULL_RTX);
REG_SET_TO_HARD_REG_SET (this_live, peep2_insn_data[from].live_before);
IOR_HARD_REG_SET (live, this_live);
}
cl = (class_str[0] == 'r' ? GENERAL_REGS
@@ -860,7 +860,7 @@
if (REG_N_CALLS_CROSSED (REGNO (src)) == 0)
break;
if (call_used_regs [REGNO (dst)]
if ((HARD_REGISTER_P (dst) && call_used_regs [REGNO (dst)])
|| find_reg_fusage (p, CLOBBER, dst))
break;
}
@@ -3899,6 +3899,10 @@
if (XEXP (x, 0))
set_label_offsets (XEXP (x, 0), NULL_RTX, 1);
for (x = nonlocal_goto_handler_labels; x; x = XEXP (x, 1))
if (XEXP (x, 0))
set_label_offsets (XEXP (x, 0), NULL_RTX, 1);
for_each_eh_label (set_initial_eh_label_offset);
}
@@ -3554,9 +3554,11 @@
}
}
if (! INSN_ANNULLED_BRANCH_P (delay_insn)
&& prev_active_insn (target_label) == insn
&& ! condjump_in_parallel_p (delay_insn)
&& prev_active_insn (target_label) == insn
&& ! BARRIER_P (prev_nonnote_insn (target_label))
#ifdef HAVE_cc0
/* If the last insn in the delay slot sets CC0 for some insn,
various code assumes that it is in a delay slot. We could
@@ -2687,7 +2687,11 @@
else
sched_analyze_2 (deps, XEXP (link, 0), insn);
}
if (find_reg_note (insn, REG_SETJMP, NULL))
/* Don't schedule anything after a tail call, tail call needs
to use at least all call-saved registers. */
if (SIBLING_CALL_P (insn))
reg_pending_barrier = TRUE_BARRIER;
else if (find_reg_note (insn, REG_SETJMP, NULL))
reg_pending_barrier = MOVE_BARRIER;
}
@@ -2777,7 +2777,7 @@
}
}
}
else
else if (SCALAR_INT_MODE_P (mode))
{
if (trueop0 == CONST0_RTX (mode)
@@ -4177,10 +4177,20 @@
{
rtx x = XEXP (op0, 0);
rtx c = XEXP (op0, 1);
c = simplify_gen_binary (op0code == PLUS ? MINUS : PLUS,
cmp_mode, op1, c);
return simplify_gen_relational (code, mode, cmp_mode, x, c);
enum rtx_code invcode = op0code == PLUS ? MINUS : PLUS;
rtx tem = simplify_gen_binary (invcode, cmp_mode, op1, c);
/* Detect an infinite recursive condition, where we oscillate at this
simplification case between:
A + B == C <---> C - B == A,
where A, B, and C are all constants with non-simplifiable expressions,
usually SYMBOL_REFs. */
if (GET_CODE (tem) == invcode
&& CONSTANT_P (x)
&& rtx_equal_p (c, XEXP (tem, 1)))
return NULL_RTX;
return simplify_gen_relational (code, mode, cmp_mode, x, tem);
}
/* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is
@@ -1252,11 +1252,11 @@
static bool
check_unique_operand_names (tree outputs, tree inputs, tree labels)
{
tree i, j;
tree i, j, i_name = NULL_TREE;
for (i = outputs; i ; i = TREE_CHAIN (i))
{
tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
i_name = TREE_PURPOSE (TREE_PURPOSE (i));
if (! i_name)
continue;
@@ -1267,7 +1267,7 @@
for (i = inputs; i ; i = TREE_CHAIN (i))
{
tree i_name = TREE_PURPOSE (TREE_PURPOSE (i));
i_name = TREE_PURPOSE (TREE_PURPOSE (i));
if (! i_name)
continue;
@@ -1281,7 +1281,7 @@
for (i = labels; i ; i = TREE_CHAIN (i))
{
tree i_name = TREE_PURPOSE (i);
i_name = TREE_PURPOSE (i);
if (! i_name)
continue;
@@ -1296,8 +1296,7 @@
return true;
failure:
error ("duplicate asm operand name %qs",
TREE_STRING_POINTER (TREE_PURPOSE (TREE_PURPOSE (i))));
error ("duplicate asm operand name %qs", TREE_STRING_POINTER (i_name));
return false;
}
@@ -1177,15 +1177,14 @@
}
/* Does this field automatically have alignment it needs by virtue
of the fields that precede it and the record's own alignment?
We already align ms_struct fields, so don't re-align them. */
if (known_align < desired_align
&& !targetm.ms_bitfield_layout_p (rli->t))
of the fields that precede it and the record's own alignment? */
if (known_align < desired_align)
{
/* No, we need to skip space before this field.
Bump the cumulative size to multiple of field alignment. */
if (DECL_SOURCE_LOCATION (field) != BUILTINS_LOCATION)
if (!targetm.ms_bitfield_layout_p (rli->t)
&& DECL_SOURCE_LOCATION (field) != BUILTINS_LOCATION)
warning (OPT_Wpadded, "padding struct to align %q+D", field);
/* If the alignment is still within offset_align, just align
@@ -1207,7 +1206,8 @@
if (! TREE_CONSTANT (rli->offset))
rli->offset_align = desired_align;
if (targetm.ms_bitfield_layout_p (rli->t))
rli->prev_field = NULL;
}
/* Handle compatibility with PCC. Note that if the record has any
@@ -611,6 +611,9 @@
extern bool may_propagate_copy_into_stmt (gimple, tree);
extern bool may_propagate_copy_into_asm (tree);
bool do_while_loop_p (struct loop *);
typedef struct
@@ -63,6 +63,51 @@
predecessor a node that writes to memory. */
static bitmap upstream_mem_writes;
/* Returns true when DEF is an SSA_NAME defined in LOOP and used after
the LOOP. */
static bool
ssa_name_has_uses_outside_loop_p (tree def, loop_p loop)
{
imm_use_iterator imm_iter;
use_operand_p use_p;
FOR_EACH_IMM_USE_FAST (use_p, imm_iter, def)
if (loop != loop_containing_stmt (USE_STMT (use_p)))
return true;
return false;
}
/* Returns true when STMT defines a scalar variable used after the
loop. */
static bool
stmt_has_scalar_dependences_outside_loop (gimple stmt)
{
tree name;
switch (gimple_code (stmt))
{
case GIMPLE_CALL:
case GIMPLE_ASSIGN:
name = gimple_get_lhs (stmt);
break;
case GIMPLE_PHI:
name = gimple_phi_result (stmt);
break;
default:
return false;
}
return (name
&& TREE_CODE (name) == SSA_NAME
&& ssa_name_has_uses_outside_loop_p (name,
loop_containing_stmt (stmt)));
}
/* Update the PHI nodes of NEW_LOOP. NEW_LOOP is a duplicate of
ORIG_LOOP. */
@@ -332,10 +377,18 @@
{
gimple stmt = gsi_stmt (bsi);
if (gimple_code (stmt) != GIMPLE_LABEL
&& !is_gimple_debug (stmt)
&& bitmap_bit_p (partition, x++)
&& is_gimple_assign (stmt)
if (gimple_code (stmt) == GIMPLE_LABEL
|| is_gimple_debug (stmt))
continue;
if (!bitmap_bit_p (partition, x++))
continue;
if (stmt_has_scalar_dependences_outside_loop (stmt))
goto end;
if (is_gimple_assign (stmt)
&& !is_gimple_reg (gimple_assign_lhs (stmt)))
{
/* Don't generate the builtins when there are more than
@@ -824,48 +877,6 @@
VEC_ordered_remove (bitmap, *partitions, p2);
p2--;
}
}
/* Returns true when DEF is an SSA_NAME defined in LOOP and used after
the LOOP. */
static bool
ssa_name_has_uses_outside_loop_p (tree def, loop_p loop)
{
imm_use_iterator imm_iter;
use_operand_p use_p;
FOR_EACH_IMM_USE_FAST (use_p, imm_iter, def)
if (loop != loop_containing_stmt (USE_STMT (use_p)))
return true;
return false;
}
/* Returns true when STMT defines a scalar variable used after the
loop. */
static bool
stmt_has_scalar_dependences_outside_loop (gimple stmt)
{
tree name;
switch (gimple_code (stmt))
{
case GIMPLE_ASSIGN:
name = gimple_assign_lhs (stmt);
break;
case GIMPLE_PHI:
name = gimple_phi_result (stmt);
break;
default:
return false;
}
return TREE_CODE (name) == SSA_NAME
&& ssa_name_has_uses_outside_loop_p (name, loop_containing_stmt (stmt));
}
/* Returns true when STMT will be code generated in a partition of RDG
@@ -69,6 +69,13 @@
static gimple_seq mx_register_decls (tree, gimple_seq, location_t);
static unsigned int execute_mudflap_function_decls (void);
/* Return true if DECL is artificial stub that shouldn't be instrumented by
mf. We should instrument clones of non-artificial functions. */
static inline bool
mf_artificial (const_tree decl)
{
return DECL_ARTIFICIAL (DECL_ORIGIN (decl));
}
@@ -412,8 +419,8 @@
/* Don't instrument functions such as the synthetic constructor
built during mudflap_finish_file. */
if (mf_marked_p (current_function_decl) ||
DECL_ARTIFICIAL (current_function_decl))
if (mf_marked_p (current_function_decl)
|| mf_artificial (current_function_decl))
return 0;
push_gimplify_context (&gctx);
@@ -1014,8 +1021,8 @@
/* Don't instrument functions such as the synthetic constructor
built during mudflap_finish_file. */
if (mf_marked_p (current_function_decl) ||
DECL_ARTIFICIAL (current_function_decl))
if (mf_marked_p (current_function_decl)
|| mf_artificial (current_function_decl))
return 0;
push_gimplify_context (&gctx);
@@ -1097,7 +1104,7 @@
if (gsi_end_p (initially_stmts))
{
if (!DECL_ARTIFICIAL (decl))
if (!mf_artificial (decl))
warning (OPT_Wmudflap,
"mudflap cannot track %qE in stub function",
DECL_NAME (decl));
@@ -1268,7 +1275,7 @@
during mudflap_finish_file (). That would confuse the user,
since the text would refer to variables that don't show up in the
user's source code. */
if (DECL_P (obj) && DECL_EXTERNAL (obj) && DECL_ARTIFICIAL (obj))
if (DECL_P (obj) && DECL_EXTERNAL (obj) && mf_artificial (obj))
return;
VEC_safe_push (tree, gc, deferred_static_decls, obj);
@@ -175,7 +175,7 @@
unsigned HOST_WIDE_INT sz;
if (!osi || (object_size_type & 1) != 0
|| TREE_CODE (pt_var) != SSA_NAME)
|| TREE_CODE (TREE_OPERAND (pt_var, 0)) != SSA_NAME)
{
sz = compute_builtin_object_size (TREE_OPERAND (pt_var, 0),
object_size_type & ~1);
@@ -237,9 +237,10 @@
var = SSA_NAME_VAR (partition_to_var (SA.map, dest));
src_mode = TYPE_MODE (TREE_TYPE (src));
dest_mode = promote_decl_mode (var, &unsignedp);
dest_mode = GET_MODE (SA.partition_to_pseudo[dest]);
gcc_assert (src_mode == TYPE_MODE (TREE_TYPE (var)));
gcc_assert (dest_mode == GET_MODE (SA.partition_to_pseudo[dest]));
gcc_assert (!REG_P (SA.partition_to_pseudo[dest])
|| dest_mode == promote_decl_mode (var, &unsignedp));
if (src_mode != dest_mode)
{
@@ -2132,7 +2132,10 @@
|| loop_has_blocks_with_irreducible_flag (loop)
|| (loop_preheader_edge (loop)->src->flags & BB_IRREDUCIBLE_LOOP)
|| loop_has_vector_phi_nodes (loop))
|| loop_has_vector_phi_nodes (loop)
/* FIXME: transform_to_exit_first_loop does not handle not
header-copied loops correctly - see PR46886. */
|| !do_while_loop_p (loop))
continue;
estimated = estimated_loop_iterations_int (loop, false);
/* FIXME: Bypass this check as graphite doesn't update the
@@ -1020,31 +1020,52 @@
return false;
}
/* Return true if EXP is a memory reference less aligned than ALIGN. This is
invoked only on strict-alignment targets. */
static bool
tree_non_mode_aligned_mem_p (tree exp)
tree_non_aligned_mem_p (tree exp, unsigned int align)
{
enum machine_mode mode = TYPE_MODE (TREE_TYPE (exp));
unsigned int align;
unsigned int exp_align;
if (TREE_CODE (exp) == VIEW_CONVERT_EXPR)
exp = TREE_OPERAND (exp, 0);
if (TREE_CODE (exp) == SSA_NAME
|| TREE_CODE (exp) == MEM_REF
|| mode == BLKmode
|| is_gimple_min_invariant (exp)
|| !STRICT_ALIGNMENT)
if (TREE_CODE (exp) == SSA_NAME || is_gimple_min_invariant (exp))
return false;
align = get_object_alignment (exp, BIGGEST_ALIGNMENT);
if (GET_MODE_ALIGNMENT (mode) > align)
/* get_object_alignment will fall back to BITS_PER_UNIT if it cannot
compute an explicit alignment. Pretend that dereferenced pointers
are always aligned on strict-alignment targets. */
exp_align = get_object_alignment (exp, BIGGEST_ALIGNMENT);
if (TREE_CODE (exp) == MEM_REF || TREE_CODE (exp) == TARGET_MEM_REF)
exp_align = MAX (TYPE_ALIGN (TREE_TYPE (exp)), exp_align);
if (exp_align < align)
return true;
return false;
}
/* Return true if EXP is a memory reference less aligned than what the access
ACC would require. This is invoked only on strict-alignment targets. */
static bool
tree_non_aligned_mem_for_access_p (tree exp, struct access *acc)
{
unsigned int acc_align;
/* The alignment of the access is that of its expression. However, it may
have been artificially increased, e.g. by a local alignment promotion,
so we cap it to the alignment of the type of the base, on the grounds
that valid sub-accesses cannot be more aligned than that. */
acc_align = get_object_alignment (acc->expr, BIGGEST_ALIGNMENT);
if (acc->base && acc_align > TYPE_ALIGN (TREE_TYPE (acc->base)))
acc_align = TYPE_ALIGN (TREE_TYPE (acc->base));
return tree_non_aligned_mem_p (exp, acc_align);
}
/* Scan expressions occuring in STMT, create access structures for all accesses
to candidates for scalarization and remove those candidates which occur in
statements or expressions that prevent them from being split apart. Return
@@ -1071,7 +1092,8 @@
if (lacc)
{
lacc->grp_assignment_write = 1;
lacc->grp_unscalarizable_region |= tree_non_mode_aligned_mem_p (rhs);
if (STRICT_ALIGNMENT && tree_non_aligned_mem_for_access_p (rhs, lacc))
lacc->grp_unscalarizable_region = 1;
}
if (racc)
@@ -1080,7 +1102,8 @@
if (should_scalarize_away_bitmap && !gimple_has_volatile_ops (stmt)
&& !is_gimple_reg_type (racc->type))
bitmap_set_bit (should_scalarize_away_bitmap, DECL_UID (racc->base));
racc->grp_unscalarizable_region |= tree_non_mode_aligned_mem_p (lhs);
if (STRICT_ALIGNMENT && tree_non_aligned_mem_for_access_p (lhs, racc))
racc->grp_unscalarizable_region = 1;
}
if (lacc && racc
@@ -1434,30 +1457,68 @@
return fold_build2_loc (loc, MEM_REF, exp_type, base, off);
}
DEF_VEC_ALLOC_P_STACK (tree);
#define VEC_tree_stack_alloc(alloc) VEC_stack_alloc (tree, alloc)
/* Construct a memory reference to a part of an aggregate BASE at the given
OFFSET and of the same type as MODEL. In case this is a reference to a
component, the function will replicate the last COMPONENT_REF of model's
expr to access it. GSI and INSERT_AFTER have the same meaning as in
build_ref_for_offset. */
OFFSET and of the type of MODEL. In case this is a chain of references
to component, the function will replicate the chain of COMPONENT_REFs of
the expression of MODEL to access it. GSI and INSERT_AFTER have the same
meaning as in build_ref_for_offset. */
static tree
build_ref_for_model (location_t loc, tree base, HOST_WIDE_INT offset,
struct access *model, gimple_stmt_iterator *gsi,
bool insert_after)
{
tree type = model->type, t;
VEC(tree,stack) *cr_stack = NULL;
if (TREE_CODE (model->expr) == COMPONENT_REF)
{
tree expr = model->expr;
/* Create a stack of the COMPONENT_REFs so later we can walk them in
order from inner to outer. */
cr_stack = VEC_alloc (tree, stack, 6);
do {
tree field = TREE_OPERAND (expr, 1);
HOST_WIDE_INT bit_pos = int_bit_position (field);
/* We can be called with a model different from the one associated
with BASE so we need to avoid going up the chain too far. */
if (offset - bit_pos < 0)
break;
offset -= bit_pos;
VEC_safe_push (tree, stack, cr_stack, expr);
expr = TREE_OPERAND (expr, 0);
type = TREE_TYPE (expr);
} while (TREE_CODE (expr) == COMPONENT_REF);
}
t = build_ref_for_offset (loc, base, offset, type, gsi, insert_after);
if (TREE_CODE (model->expr) == COMPONENT_REF)
{
tree t, exp_type, fld = TREE_OPERAND (model->expr, 1);
offset -= int_bit_position (fld);
exp_type = TREE_TYPE (TREE_OPERAND (model->expr, 0));
t = build_ref_for_offset (loc, base, offset, exp_type, gsi, insert_after);
return fold_build3_loc (loc, COMPONENT_REF, TREE_TYPE (fld), t, fld,
NULL_TREE);
unsigned i;
tree expr;
FOR_EACH_VEC_ELT_REVERSE (tree, cr_stack, i, expr)
{
tree field = TREE_OPERAND (expr, 1);
t = fold_build3_loc (loc, COMPONENT_REF, TREE_TYPE (field), t, field,
NULL_TREE);
}
VEC_free (tree, stack, cr_stack);
}
else
return build_ref_for_offset (loc, base, offset, model->type,
gsi, insert_after);
return t;
}
/* Construct a memory reference consisting of component_refs and array_refs to
@@ -2594,6 +2655,10 @@
rhs = get_access_replacement (racc);
if (!useless_type_conversion_p (lacc->type, racc->type))
rhs = fold_build1_loc (loc, VIEW_CONVERT_EXPR, lacc->type, rhs);
if (racc->grp_partial_lhs && lacc->grp_partial_lhs)
rhs = force_gimple_operand_gsi (old_gsi, rhs, true, NULL_TREE,
true, GSI_SAME_STMT);
}
else
{
@@ -2609,6 +2674,9 @@
else
rhs = build_ref_for_model (loc, top_racc->base, offset, lacc,
new_gsi, true);
if (lacc->grp_partial_lhs)
rhs = force_gimple_operand_gsi (new_gsi, rhs, true, NULL_TREE,
false, GSI_NEW_STMT);
}
stmt = gimple_build_assign (get_access_replacement (lacc), rhs);
@@ -3604,7 +3672,8 @@
|| gimple_code (access->stmt) == GIMPLE_ASM))
return true;
if (tree_non_mode_aligned_mem_p (access->expr))
if (STRICT_ALIGNMENT
&& tree_non_aligned_mem_p (access->expr, TYPE_ALIGN (access->type)))
return true;
return false;
@@ -1373,7 +1373,7 @@
if (a
&& SSA_NAME_VAR (a)
&& !DECL_ARTIFICIAL (SSA_NAME_VAR (a))
&& !DECL_IGNORED_P (SSA_NAME_VAR (a))
&& (!has_zero_uses (a) || !SSA_NAME_IS_DEFAULT_DEF (a)))
{
tree *slot = (tree *) htab_find_slot (ssa_name_hash, a, INSERT);
@@ -872,7 +872,7 @@
TREE_TYPE (gimple_assign_rhs1 (use_stmt))))
{
tree *def_rhs_basep = &TREE_OPERAND (def_rhs, 0);
tree new_offset, new_base, saved;
tree new_offset, new_base, saved, new_lhs;
while (handled_component_p (*def_rhs_basep))
def_rhs_basep = &TREE_OPERAND (*def_rhs_basep, 0);
saved = *def_rhs_basep;
@@ -891,9 +891,12 @@
*def_rhs_basep = build2 (MEM_REF, TREE_TYPE (*def_rhs_basep),
new_base, new_offset);
TREE_THIS_VOLATILE (*def_rhs_basep) = TREE_THIS_VOLATILE (lhs);
TREE_SIDE_EFFECTS (*def_rhs_basep) = TREE_SIDE_EFFECTS (lhs);
TREE_THIS_NOTRAP (*def_rhs_basep) = TREE_THIS_NOTRAP (lhs);
gimple_assign_set_lhs (use_stmt,
unshare_expr (TREE_OPERAND (def_rhs, 0)));
new_lhs = unshare_expr (TREE_OPERAND (def_rhs, 0));
gimple_assign_set_lhs (use_stmt, new_lhs);
TREE_THIS_VOLATILE (new_lhs) = TREE_THIS_VOLATILE (lhs);
TREE_SIDE_EFFECTS (new_lhs) = TREE_SIDE_EFFECTS (lhs);
*def_rhs_basep = saved;
tidy_after_forward_propagate_addr (use_stmt);
/* Continue propagating into the RHS if this was not the
@@ -953,7 +956,7 @@
TREE_TYPE (TREE_OPERAND (def_rhs, 0))))
{
tree *def_rhs_basep = &TREE_OPERAND (def_rhs, 0);
tree new_offset, new_base, saved;
tree new_offset, new_base, saved, new_rhs;
while (handled_component_p (*def_rhs_basep))
def_rhs_basep = &TREE_OPERAND (*def_rhs_basep, 0);
saved = *def_rhs_basep;
@@ -972,9 +975,12 @@
*def_rhs_basep = build2 (MEM_REF, TREE_TYPE (*def_rhs_basep),
new_base, new_offset);
TREE_THIS_VOLATILE (*def_rhs_basep) = TREE_THIS_VOLATILE (rhs);
TREE_SIDE_EFFECTS (*def_rhs_basep) = TREE_SIDE_EFFECTS (rhs);
TREE_THIS_NOTRAP (*def_rhs_basep) = TREE_THIS_NOTRAP (rhs);
gimple_assign_set_rhs1 (use_stmt,
unshare_expr (TREE_OPERAND (def_rhs, 0)));
new_rhs = unshare_expr (TREE_OPERAND (def_rhs, 0));
gimple_assign_set_rhs1 (use_stmt, new_rhs);
TREE_THIS_VOLATILE (new_rhs) = TREE_THIS_VOLATILE (rhs);
TREE_SIDE_EFFECTS (new_rhs) = TREE_SIDE_EFFECTS (rhs);
*def_rhs_basep = saved;
fold_stmt_inplace (use_stmt);
tidy_after_forward_propagate_addr (use_stmt);
@@ -104,7 +104,7 @@
static bool
bool
do_while_loop_p (struct loop *loop)
{
gimple stmt = last_stmt (loop->latch);
@@ -1545,7 +1545,7 @@
tree newvuse = vuse;
VEC (vn_reference_op_s, heap) *newoperands = NULL;
bool changed = false, same_valid = true;
unsigned int i, j;
unsigned int i, j, n;
vn_reference_op_t operand;
vn_reference_t newref;
@@ -1554,100 +1554,83 @@
{
pre_expr opresult;
pre_expr leader;
tree oldop0 = operand->op0;
tree oldop1 = operand->op1;
tree oldop2 = operand->op2;
tree op0 = oldop0;
tree op1 = oldop1;
tree op2 = oldop2;
tree op[3];
tree type = operand->type;
vn_reference_op_s newop = *operand;
if (op0 && TREE_CODE (op0) == SSA_NAME)
op[0] = operand->op0;
op[1] = operand->op1;
op[2] = operand->op2;
for (n = 0; n < 3; ++n)
{
unsigned int op_val_id = VN_INFO (op0)->value_id;
leader = find_leader_in_sets (op_val_id, set1, set2);
opresult = phi_translate (leader, set1, set2, pred, phiblock);
if (opresult && opresult != leader)
unsigned int op_val_id;
if (!op[n])
continue;
if (TREE_CODE (op[n]) != SSA_NAME)
{
tree name = get_representative_for (opresult);
if (!name)
if (n != 0
&& !is_gimple_min_invariant (op[n]))
break;
op0 = name;
continue;
}
else if (!opresult)
break;
}
changed |= op0 != oldop0;
if (op1 && TREE_CODE (op1) == SSA_NAME)
{
unsigned int op_val_id = VN_INFO (op1)->value_id;
op_val_id = VN_INFO (op[n])->value_id;
leader = find_leader_in_sets (op_val_id, set1, set2);
opresult = phi_translate (leader, set1, set2, pred, phiblock);
if (opresult && opresult != leader)
if (!leader)
break;
/* Make sure we do not recursively translate ourselves
like for translating a[n_1] with the leader for
n_1 being a[n_1]. */
if (get_expression_id (leader) != get_expression_id (expr))
{
tree name = get_representative_for (opresult);
if (!name)
opresult = phi_translate (leader, set1, set2,
pred, phiblock);
if (!opresult)
break;
op1 = name;
if (opresult != leader)
{
tree name = get_representative_for (opresult);
if (!name)
break;
changed |= name != op[n];
op[n] = name;
}
}
else if (!opresult)
break;
}
else if (op1 && !is_gimple_min_invariant (op1))
break;
changed |= op1 != oldop1;
if (op2 && TREE_CODE (op2) == SSA_NAME)
if (n != 3)
{
unsigned int op_val_id = VN_INFO (op2)->value_id;
leader = find_leader_in_sets (op_val_id, set1, set2);
opresult = phi_translate (leader, set1, set2, pred, phiblock);
if (opresult && opresult != leader)
{
tree name = get_representative_for (opresult);
if (!name)
break;
op2 = name;
}
else if (!opresult)
break;
if (newoperands)
VEC_free (vn_reference_op_s, heap, newoperands);
return NULL;
}
else if (op2 && !is_gimple_min_invariant (op2))
break;
changed |= op2 != oldop2;
if (!newoperands)
newoperands = VEC_copy (vn_reference_op_s, heap, operands);
if (newop.opcode == SSA_NAME && TREE_CODE (op0) != SSA_NAME)
newop.opcode = TREE_CODE (op0);
if (newop.opcode == SSA_NAME && TREE_CODE (op[0]) != SSA_NAME)
newop.opcode = TREE_CODE (op[0]);
newop.type = type;
newop.op0 = op0;
newop.op1 = op1;
newop.op2 = op2;
newop.op0 = op[0];
newop.op1 = op[1];
newop.op2 = op[2];
/* If it transforms a non-constant ARRAY_REF into a constant
one, adjust the constant offset. */
if (newop.opcode == ARRAY_REF
&& newop.off == -1
&& TREE_CODE (op0) == INTEGER_CST
&& TREE_CODE (op1) == INTEGER_CST
&& TREE_CODE (op2) == INTEGER_CST)
&& TREE_CODE (op[0]) == INTEGER_CST
&& TREE_CODE (op[1]) == INTEGER_CST
&& TREE_CODE (op[2]) == INTEGER_CST)
{
double_int off = tree_to_double_int (op0);
double_int off = tree_to_double_int (op[0]);
off = double_int_add (off,
double_int_neg
(tree_to_double_int (op1)));
off = double_int_mul (off, tree_to_double_int (op2));
(tree_to_double_int (op[1])));
off = double_int_mul (off, tree_to_double_int (op[2]));
if (double_int_fits_in_shwi_p (off))
newop.off = off.low;
}
VEC_replace (vn_reference_op_s, newoperands, j, &newop);
/* If it transforms from an SSA_NAME to an address, fold with
a preceding indirect reference. */
if (j > 0 && op0 && TREE_CODE (op0) == ADDR_EXPR
if (j > 0 && op[0] && TREE_CODE (op[0]) == ADDR_EXPR
&& VEC_index (vn_reference_op_s,
newoperands, j - 1)->opcode == MEM_REF)
vn_reference_fold_indirect (&newoperands, &j);
@@ -546,6 +546,7 @@
tem1.type = TREE_TYPE (tem1.op0);
tem1.opcode = TREE_CODE (tem1.op0);
vro1 = &tem1;
deref1 = false;
}
if (deref2 && vro2->opcode == ADDR_EXPR)
{
@@ -554,7 +555,10 @@
tem2.type = TREE_TYPE (tem2.op0);
tem2.opcode = TREE_CODE (tem2.op0);
vro2 = &tem2;
deref2 = false;
}
if (deref1 != deref2)
return false;
if (!vn_reference_op_eq (vro1, vro2))
return false;
++j;
@@ -308,6 +308,7 @@
static varinfo_t first_or_preceding_vi_for_offset (varinfo_t,
unsigned HOST_WIDE_INT);
static varinfo_t lookup_vi_for_tree (tree);
static inline bool type_can_have_subvars (const_tree);
static alloc_pool variable_info_pool;
@@ -3353,7 +3354,8 @@
return;
cs = *VEC_last (ce_s, *results);
if (cs.type == DEREF)
if (cs.type == DEREF
&& type_can_have_subvars (TREE_TYPE (t)))
{
/* For dereferences this means we have to defer it
to solving time. */
@@ -4981,6 +4983,15 @@
VEC_qsort (fieldoff_s, fieldstack, fieldoff_compare);
}
static inline bool
type_can_have_subvars (const_tree t)
{
return TREE_CODE (t) == RECORD_TYPE;
}
/* Return true if V is a tree that we can have subvars for.
Normally, this is any aggregate type. Also complex
types which are not gimple registers can have subvars. */
@@ -4995,12 +5006,8 @@
if (!DECL_P (v))
return false;
if (TREE_CODE (TREE_TYPE (v)) == RECORD_TYPE)
return true;
return false;
return type_can_have_subvars (TREE_TYPE (v));
}
@@ -2631,6 +2631,16 @@
return false;
}
if (is_gimple_call (stmt))
{
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS))
{
fprintf (vect_dump, "not vectorized: dr in a call ");
print_gimple_stmt (vect_dump, stmt, 0, TDF_SLIM);
}
return false;
}
/* If the dataref is in an inner-loop of the loop that is considered for
@@ -5117,6 +5117,15 @@
&& GET_MODE_CLASS (inner_mode) != MODE_FLOAT)
return NULL_TREE;
/* We shouldn't end up building VECTOR_TYPEs of non-scalar components.
When the component mode passes the above test simply use a type
corresponding to that mode. The theory is that any use that
would cause problems with this will disable vectorization anyway. */
if (!SCALAR_FLOAT_TYPE_P (scalar_type)
&& !INTEGRAL_TYPE_P (scalar_type)
&& !POINTER_TYPE_P (scalar_type))
scalar_type = lang_hooks.types.type_for_mode (inner_mode, 1);
/* If no size was supplied use the mode the target prefers. Otherwise
lookup a vector mode of the specified size. */
if (size == 0)
@@ -6751,11 +6751,14 @@
if (!DECL_P (exp))
local_p = true;
/* Weakrefs may not bind locally, even though the weakref itself is
always static and therefore local.
FIXME: We can resolve this more curefuly by looking at the weakref
alias. */
else if (lookup_attribute ("weakref", DECL_ATTRIBUTES (exp)))
/* Weakrefs may not bind locally, even though the weakref itself is always
static and therefore local. Similarly, the resolver for ifunc functions
might resolve to a non-local function.
FIXME: We can resolve the weakref case more curefuly by looking at the
weakref alias. */
else if (lookup_attribute ("weakref", DECL_ATTRIBUTES (exp))
|| (TREE_CODE (exp) == FUNCTION_DECL
&& lookup_attribute ("ifunc", DECL_ATTRIBUTES (exp))))
local_p = false;
else if (! TREE_PUBLIC (exp))
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,3 +1,20 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-12-15 H.J. Lu <hongjiu.lu@intel.com>
Backport from mainline
2011-12-14 H.J. Lu <hongjiu.lu@intel.com>
* generic-morestack.c (__generic_morestack_set_initial_sp): Check
__GLIBC__ instead of __linux__ when using __SIGRTMIN.
2011-11-23 Gerald Pfeifer <gerald@pfeifer.com>
* config.host (*-*-freebsd[12], *-*-freebsd[12].*,
*-*-freebsd*aout*): Remove.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -145,15 +145,6 @@
asm_hidden_op=.private_extern
tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin"
;;
*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
# This is the place-holder for the generic a.out configuration
# of FreeBSD. No actual configuration resides here since
# there was only ever a bare-bones ix86 configuration for
# a.out and it exists solely in the machine-specific section.
# This place-holder must exist to avoid dropping into
# the generic ELF configuration of FreeBSD (i.e. it must be
# ordered before that section).
;;
*-*-freebsd*)
# This is the generic ELF configuration of FreeBSD. Later
# machine-specific sections may refine and add to this
@@ -459,8 +459,8 @@
sigemptyset (&__morestack_initial_sp.mask);
sigfillset (&__morestack_fullmask);
#ifdef __linux__
/* On Linux, the first two real time signals are used by the NPTL
#ifdef __GLIBC__
/* In glibc, the first two real time signals are used by the NPTL
threading library. By taking them out of the set of signals, we
avoiding copying the signal mask in pthread_sigmask. More
importantly, pthread_sigmask uses less stack space on x86_64. */
@@ -1,3 +1,19 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-02-15 Richard Guenther <rguenther@suse.de>
Backport from mainline
2012-02-08 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46886
* testsuite/libgomp.c/pr46886.c: New testcase.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -9317,7 +9317,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -10230,7 +10230,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -10248,7 +10248,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -13157,7 +13157,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct_FC=yes
hardcode_minus_L_FC=yes
@@ -13862,7 +13862,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -13880,7 +13880,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -1,5 +1,5 @@
This is libgomp.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/libgomp/libgomp.texi.
/d//gcc-4.6.3/gcc-4.6.3/libgomp/libgomp.texi.
Copyright (C) 2006, 2007, 2008, 2010, 2011 Free Software Foundation,
Inc.
@@ -2444,70 +2444,70 @@
Tag Table:
Node: Top2063
Node: Enabling OpenMP3257
Node: Runtime Library Routines4042
Node: omp_get_active_level6417
Node: omp_get_ancestor_thread_num7121
Node: omp_get_dynamic8048
Node: omp_get_level8926
Node: omp_get_max_active_levels9550
Node: omp_get_max_threads10253
Node: omp_get_nested11009
Node: omp_get_num_procs11921
Node: omp_get_num_threads12439
Node: omp_get_schedule13521
Node: omp_get_team_size14437
Node: omp_get_thread_limit15399
Node: omp_get_thread_num16022
Node: omp_in_parallel16890
Node: omp_set_dynamic17540
Node: omp_set_max_active_levels18380
Node: omp_set_nested19160
Node: omp_set_num_threads20039
Node: omp_set_schedule20875
Node: omp_init_lock21946
Node: omp_set_lock22597
Node: omp_test_lock23448
Node: omp_unset_lock24477
Node: omp_destroy_lock25404
Node: omp_init_nest_lock26078
Node: omp_set_nest_lock26811
Node: omp_test_nest_lock27722
Node: omp_unset_nest_lock28820
Node: omp_destroy_nest_lock29831
Node: omp_get_wtick30579
Node: omp_get_wtime31170
Node: Environment Variables31944
Node: OMP_DYNAMIC33005
Node: OMP_MAX_ACTIVE_LEVELS33573
Node: OMP_NESTED34210
Node: OMP_NUM_THREADS34814
Node: OMP_SCHEDULE35382
Node: OMP_STACKSIZE36076
Node: OMP_THREAD_LIMIT36900
Node: OMP_WAIT_POLICY37495
Node: GOMP_CPU_AFFINITY38060
Node: GOMP_STACKSIZE39561
Node: The libgomp ABI40369
Node: Implementing MASTER construct41168
Node: Implementing CRITICAL construct41582
Node: Implementing ATOMIC construct42321
Node: Implementing FLUSH construct42802
Node: Implementing BARRIER construct43073
Node: Implementing THREADPRIVATE construct43342
Node: Implementing PRIVATE clause43994
Node: Implementing FIRSTPRIVATE LASTPRIVATE COPYIN and COPYPRIVATE clauses44575
Node: Implementing REDUCTION clause45899
Node: Implementing PARALLEL construct46456
Node: Implementing FOR construct47713
Node: Implementing ORDERED construct49711
Node: Implementing SECTIONS construct50017
Node: Implementing SINGLE construct50783
Node: Reporting Bugs51445
Node: Copying51755
Node: GNU Free Documentation License70965
Node: Funding96107
Node: Index98624
Node: Top2064
Node: Enabling OpenMP3258
Node: Runtime Library Routines4043
Node: omp_get_active_level6418
Node: omp_get_ancestor_thread_num7122
Node: omp_get_dynamic8049
Node: omp_get_level8927
Node: omp_get_max_active_levels9551
Node: omp_get_max_threads10254
Node: omp_get_nested11010
Node: omp_get_num_procs11922
Node: omp_get_num_threads12440
Node: omp_get_schedule13522
Node: omp_get_team_size14438
Node: omp_get_thread_limit15400
Node: omp_get_thread_num16023
Node: omp_in_parallel16891
Node: omp_set_dynamic17541
Node: omp_set_max_active_levels18381
Node: omp_set_nested19161
Node: omp_set_num_threads20040
Node: omp_set_schedule20876
Node: omp_init_lock21947
Node: omp_set_lock22598
Node: omp_test_lock23449
Node: omp_unset_lock24478
Node: omp_destroy_lock25405
Node: omp_init_nest_lock26079
Node: omp_set_nest_lock26812
Node: omp_test_nest_lock27723
Node: omp_unset_nest_lock28821
Node: omp_destroy_nest_lock29832
Node: omp_get_wtick30580
Node: omp_get_wtime31171
Node: Environment Variables31945
Node: OMP_DYNAMIC33006
Node: OMP_MAX_ACTIVE_LEVELS33574
Node: OMP_NESTED34211
Node: OMP_NUM_THREADS34815
Node: OMP_SCHEDULE35383
Node: OMP_STACKSIZE36077
Node: OMP_THREAD_LIMIT36901
Node: OMP_WAIT_POLICY37496
Node: GOMP_CPU_AFFINITY38061
Node: GOMP_STACKSIZE39562
Node: The libgomp ABI40370
Node: Implementing MASTER construct41169
Node: Implementing CRITICAL construct41583
Node: Implementing ATOMIC construct42322
Node: Implementing FLUSH construct42803
Node: Implementing BARRIER construct43074
Node: Implementing THREADPRIVATE construct43343
Node: Implementing PRIVATE clause43995
Node: Implementing FIRSTPRIVATE LASTPRIVATE COPYIN and COPYPRIVATE clauses44576
Node: Implementing REDUCTION clause45900
Node: Implementing PARALLEL construct46457
Node: Implementing FOR construct47714
Node: Implementing ORDERED construct49712
Node: Implementing SECTIONS construct50018
Node: Implementing SINGLE construct50784
Node: Reporting Bugs51446
Node: Copying51756
Node: GNU Free Documentation License70966
Node: Funding96108
Node: Index98625
End Tag Table
@@ -1,3 +1,40 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-02-09 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2012-01-26 Jakub Jelinek <jakub@redhat.com>
* make-relative-prefix.c (make_relative_prefix_1): Avoid warning
about using preprocessor directives inside of macro arguments.
2012-01-02 Jakub Jelinek <jakub@redhat.com>
* make-relative-prefix.c (make_relative_prefix_1): Avoid
stack overflow if PATH contains just a single entry and
HOST_EXECUTABLE_SUFFIX needs to be used.
PR driver/48306
* make-relative-prefix.c: Include sys/stat.h.
(make_relative_prefix_1): If access succeeds, check also stat
if nstore is a regular file.
2011-11-13 Iain Sandoe <iains@gcc.gnu.org>
PR target/48108
Backport from mainline r180523
* simple-object-mach-o.c (GNU_WRAPPER_SECTS, GNU_WRAPPER_INDEX,
GNU_WRAPPER_NAMES): New macros.
(simple_object_mach_o_segment): Handle wrapper scheme.
(simple_object_mach_o_write_section_header): Allow the segment name
to be supplied.
(simple_object_mach_o_write_segment): Handle wrapper scheme. Ensure
that the top-level segment name in the load command is empty.
(simple_object_mach_o_write_to_file): Determine the number of
sections during segment output, use that in writing the header.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -248,17 +248,21 @@
{
char *startp, *endp, *nstore;
size_t prefixlen = strlen (temp) + 1;
size_t len;
if (prefixlen < 2)
prefixlen = 2;
nstore = (char *) alloca (prefixlen + strlen (progname) + 1);
len = prefixlen + strlen (progname) + 1;
#ifdef HAVE_HOST_EXECUTABLE_SUFFIX
len += strlen (HOST_EXECUTABLE_SUFFIX);
#endif
nstore = (char *) alloca (len);
startp = endp = temp;
while (1)
{
if (*endp == PATH_SEPARATOR || *endp == 0)
{
struct stat st;
if (endp == startp)
{
nstore[0] = '.';
@@ -267,7 +271,7 @@
}
else
{
strncpy (nstore, startp, endp - startp);
memcpy (nstore, startp, endp - startp);
if (! IS_DIR_SEPARATOR (endp[-1]))
{
nstore[endp - startp] = DIR_SEPARATOR;
@@ -276,16 +280,21 @@
else
nstore[endp - startp] = 0;
}
strcat (nstore, progname);
if ((! stat(nstore, &st) && S_ISREG (st.st_mode) && ! access (nstore, X_OK))
if (! access (nstore, X_OK)
#ifdef HAVE_HOST_EXECUTABLE_SUFFIX
|| (! stat (strcat (nstore, HOST_EXECUTABLE_SUFFIX)) && S_ISREG (st.st_mode) && ! access (nstore, X_OK))
|| ! access (strcat (nstore, HOST_EXECUTABLE_SUFFIX), X_OK)
#endif
)
{
progname = nstore;
break;
#if defined (HAVE_SYS_STAT_H) && defined (S_ISREG)
struct stat st;
if (stat (nstore, &st) >= 0 && S_ISREG (st.st_mode))
#endif
{
progname = nstore;
break;
}
}
if (*endp == 0)
@@ -1,5 +1,5 @@
/* simple-object-mach-o.c -- routines to manipulate Mach-O object files.
Copyright 2010 Free Software Foundation, Inc.
Copyright 2010, 2011 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Google.
This program is free software; you can redistribute it and/or modify it
@@ -174,6 +174,15 @@
#define GNU_SECTION_NAMES "__section_names"
/* A GNU-specific extension to wrap multiple sections using three
mach-o sections within a given segment. The section '__wrapper_sects'
is subdivided according to the index '__wrapper_index' and each sub
sect is named according to the names supplied in '__wrapper_names'. */
#define GNU_WRAPPER_SECTS "__wrapper_sects"
#define GNU_WRAPPER_INDEX "__wrapper_index"
#define GNU_WRAPPER_NAMES "__wrapper_names"
struct simple_object_mach_o_read
@@ -213,9 +222,20 @@
unsigned int reserved;
};
/* See if we have a Mach-O MH_OBJECT file:
A standard MH_OBJECT (from as) will have three load commands:
0 - LC_SEGMENT/LC_SEGMENT64
1 - LC_SYMTAB
2 - LC_DYSYMTAB
The LC_SEGMENT/LC_SEGMENT64 will introduce a single anonymous segment
containing all the sections.
Files written by simple-object will have only the segment command
(no symbol tables). */
static void *
simple_object_mach_o_match (
unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN],
@@ -355,10 +375,31 @@
+ offsetof (struct mach_o_section_64, size));
}
}
/* Handle a segment in a Mach-O Object file.
This will callback to the function pfn for each "section found" the meaning
of which depends on gnu extensions to mach-o:
If we find mach-o sections (with the segment name as specified) which also
contain: a 'sects' wrapper, an index, and a name table, we expand this into
as many sections as are specified in the index. In this case, there will
be a callback for each of these.
/* Handle a segment in a Mach-O file. Return 1 if we should continue,
0 if the caller should return. */
We will also allow an extension that permits long names (more than 16
characters) to be used with mach-o. In this case, the section name has
a specific format embedding an index into a name table, and the file must
contain such name table.
Return 1 if we should continue, 0 if the caller should return. */
#define SOMO_SECTS_PRESENT 0x01
#define SOMO_INDEX_PRESENT 0x02
#define SOMO_NAMES_PRESENT 0x04
#define SOMO_LONGN_PRESENT 0x08
#define SOMO_WRAPPING (SOMO_SECTS_PRESENT | SOMO_INDEX_PRESENT \
| SOMO_NAMES_PRESENT)
static int
simple_object_mach_o_segment (simple_object_read *sobj, off_t offset,
const unsigned char *segbuf,
@@ -378,9 +419,20 @@
unsigned int nsects;
unsigned char *secdata;
unsigned int i;
unsigned int gnu_sections_found;
unsigned int strtab_index;
unsigned int index_index;
unsigned int nametab_index;
unsigned int sections_index;
char *strtab;
char *nametab;
unsigned char *index;
size_t strtab_size;
size_t nametab_size;
size_t index_size;
unsigned int n_wrapped_sects;
size_t wrapper_sect_size;
off_t wrapper_sect_offset;
fetch_32 = (omr->is_big_endian
? simple_object_fetch_big_32
@@ -409,6 +461,8 @@
nsects));
}
secdata = XNEWVEC (unsigned char, nsects * sechdrsize);
if (!simple_object_internal_read (sobj->descriptor, offset + seghdrsize,
secdata, nsects * sechdrsize, errmsg, err))
@@ -417,9 +471,13 @@
return 0;
}
/* Scan for a __section_names section. This is in effect a GNU
extension that permits section names longer than 16 chars. */
gnu_sections_found = 0;
index_index = nsects;
sections_index = nsects;
strtab_index = nsects;
nametab_index = nsects;
for (i = 0; i < nsects; ++i)
{
size_t nameoff;
@@ -427,18 +485,103 @@
nameoff = i * sechdrsize + segname_offset;
if (strcmp ((char *) secdata + nameoff, omr->segment_name) != 0)
continue;
nameoff = i * sechdrsize + sectname_offset;
if (strcmp ((char *) secdata + nameoff, GNU_SECTION_NAMES) == 0)
break;
if (strcmp ((char *) secdata + nameoff, GNU_WRAPPER_NAMES) == 0)
{
nametab_index = i;
gnu_sections_found |= SOMO_NAMES_PRESENT;
}
else if (strcmp ((char *) secdata + nameoff, GNU_WRAPPER_INDEX) == 0)
{
index_index = i;
gnu_sections_found |= SOMO_INDEX_PRESENT;
}
else if (strcmp ((char *) secdata + nameoff, GNU_WRAPPER_SECTS) == 0)
{
sections_index = i;
gnu_sections_found |= SOMO_SECTS_PRESENT;
}
else if (strcmp ((char *) secdata + nameoff, GNU_SECTION_NAMES) == 0)
{
strtab_index = i;
gnu_sections_found |= SOMO_LONGN_PRESENT;
}
}
/* If any of the special wrapper section components is present, then
they all should be. */
strtab_index = i;
if (strtab_index >= nsects)
if ((gnu_sections_found & SOMO_WRAPPING) != 0)
{
strtab = NULL;
strtab_size = 0;
off_t nametab_offset;
off_t index_offset;
if ((gnu_sections_found & SOMO_WRAPPING) != SOMO_WRAPPING)
{
*errmsg = "GNU Mach-o section wrapper: required section missing";
*err = 0;
XDELETEVEC (secdata);
return 0;
}
simple_object_mach_o_section_info (omr->is_big_endian, is_32,
secdata + nametab_index * sechdrsize,
&nametab_offset, &nametab_size);
nametab = XNEWVEC (char, nametab_size);
if (!simple_object_internal_read (sobj->descriptor,
sobj->offset + nametab_offset,
(unsigned char *) nametab, nametab_size,
errmsg, err))
{
XDELETEVEC (nametab);
XDELETEVEC (secdata);
return 0;
}
simple_object_mach_o_section_info (omr->is_big_endian, is_32,
secdata + index_index * sechdrsize,
&index_offset, &index_size);
index = XNEWVEC (unsigned char, index_size);
if (!simple_object_internal_read (sobj->descriptor,
sobj->offset + index_offset,
index, index_size,
errmsg, err))
{
XDELETEVEC (index);
XDELETEVEC (nametab);
XDELETEVEC (secdata);
return 0;
}
/* The index contains 4 unsigned ints per sub-section:
sub-section offset/length, sub-section name/length.
We fix this for both 32 and 64 bit mach-o for now, since
other fields limit the maximum size of an object to 4G. */
n_wrapped_sects = index_size / 16;
simple_object_mach_o_section_info (omr->is_big_endian, is_32,
secdata + sections_index * sechdrsize,
&wrapper_sect_offset,
&wrapper_sect_size);
}
else
{
index = NULL;
index_size = 0;
nametab = NULL;
nametab_size = 0;
n_wrapped_sects = 0;
}
if ((gnu_sections_found & SOMO_LONGN_PRESENT) != 0)
{
off_t strtab_offset;
@@ -452,9 +595,17 @@
errmsg, err))
{
XDELETEVEC (strtab);
XDELETEVEC (index);
XDELETEVEC (nametab);
XDELETEVEC (secdata);
return 0;
}
}
else
{
strtab = NULL;
strtab_size = 0;
strtab_index = nsects;
}
@@ -462,40 +613,100 @@
for (i = 0; i < nsects; ++i)
{
const unsigned char *sechdr;
char namebuf[MACH_O_NAME_LEN + 1];
char namebuf[MACH_O_NAME_LEN * 2 + 2];
char *name;
off_t secoffset;
size_t secsize;
int l;
sechdr = secdata + i * sechdrsize;
if (i == strtab_index)
if ((gnu_sections_found & SOMO_LONGN_PRESENT) != 0
&& i == strtab_index)
continue;
sechdr = secdata + i * sechdrsize;
if (strcmp ((char *) sechdr + segname_offset, omr->segment_name) != 0)
continue;
memcpy (namebuf, sechdr + sectname_offset, MACH_O_NAME_LEN);
namebuf[MACH_O_NAME_LEN] = '\0';
name = &namebuf[0];
if (strtab != NULL && name[0] == '_' && name[1] == '_')
if ((gnu_sections_found & SOMO_WRAPPING) != 0)
{
unsigned long stringoffset;
if (i == nametab_index || i == index_index)
continue;
if (sscanf (name + 2, "%08lX", &stringoffset) == 1)
if (i == sections_index)
{
if (stringoffset >= strtab_size)
unsigned int j;
for (j = 0; j < n_wrapped_sects; ++j)
{
*errmsg = "section name offset out of range";
*err = 0;
XDELETEVEC (strtab);
XDELETEVEC (secdata);
return 0;
unsigned int subsect_offset, subsect_length, name_offset;
subsect_offset = (*fetch_32) (index + 16 * j);
subsect_length = (*fetch_32) (index + 16 * j + 4);
name_offset = (*fetch_32) (index + 16 * j + 8);
secoffset = wrapper_sect_offset + subsect_offset;
secsize = subsect_length;
name = nametab + name_offset;
if (!(*pfn) (data, name, secoffset, secsize))
{
*errmsg = NULL;
*err = 0;
XDELETEVEC (index);
XDELETEVEC (nametab);
XDELETEVEC (strtab);
XDELETEVEC (secdata);
return 0;
}
}
name = strtab + stringoffset;
continue;
}
}
if ((gnu_sections_found & SOMO_LONGN_PRESENT) != 0)
{
memcpy (namebuf, sechdr + sectname_offset, MACH_O_NAME_LEN);
namebuf[MACH_O_NAME_LEN] = '\0';
name = &namebuf[0];
if (strtab != NULL && name[0] == '_' && name[1] == '_')
{
unsigned long stringoffset;
if (sscanf (name + 2, "%08lX", &stringoffset) == 1)
{
if (stringoffset >= strtab_size)
{
*errmsg = "section name offset out of range";
*err = 0;
XDELETEVEC (index);
XDELETEVEC (nametab);
XDELETEVEC (strtab);
XDELETEVEC (secdata);
return 0;
}
name = strtab + stringoffset;
}
}
}
else
{
/* Otherwise, make a name like __segment,__section as per the
convention in mach-o asm. */
name = &namebuf[0];
memset (namebuf, 0, MACH_O_NAME_LEN * 2 + 2);
memcpy (namebuf, (char *) sechdr + segname_offset, MACH_O_NAME_LEN);
l = strlen (namebuf);
namebuf[l] = ',';
memcpy (namebuf + l + 1, (char *) sechdr + sectname_offset,
MACH_O_NAME_LEN);
}
simple_object_mach_o_section_info (omr->is_big_endian, is_32, sechdr,
@@ -505,12 +716,16 @@
{
*errmsg = NULL;
*err = 0;
XDELETEVEC (index);
XDELETEVEC (nametab);
XDELETEVEC (strtab);
XDELETEVEC (secdata);
return 0;
}
}
XDELETEVEC (index);
XDELETEVEC (nametab);
XDELETEVEC (strtab);
XDELETEVEC (secdata);
@@ -724,9 +939,9 @@
simple_object_mach_o_write_section_header (simple_object_write *sobj,
int descriptor,
size_t sechdr_offset,
const char *name, size_t secaddr,
size_t secsize, size_t offset,
unsigned int align,
const char *name, const char *segn,
size_t secaddr, size_t secsize,
size_t offset, unsigned int align,
const char **errmsg, int *err)
{
struct simple_object_mach_o_attributes *attrs =
@@ -748,7 +963,7 @@
strncpy ((char *) hdr + offsetof (struct mach_o_section_32, sectname),
name, MACH_O_NAME_LEN);
strncpy ((char *) hdr + offsetof (struct mach_o_section_32, segname),
sobj->segment_name, MACH_O_NAME_LEN);
segn, MACH_O_NAME_LEN);
set_32 (hdr + offsetof (struct mach_o_section_32, addr), secaddr);
set_32 (hdr + offsetof (struct mach_o_section_32, size), secsize);
set_32 (hdr + offsetof (struct mach_o_section_32, offset), offset);
@@ -773,7 +988,7 @@
strncpy ((char *) hdr + offsetof (struct mach_o_section_64, sectname),
name, MACH_O_NAME_LEN);
strncpy ((char *) hdr + offsetof (struct mach_o_section_64, segname),
sobj->segment_name, MACH_O_NAME_LEN);
segn, MACH_O_NAME_LEN);
set_64 (hdr + offsetof (struct mach_o_section_64, addr), secaddr);
set_64 (hdr + offsetof (struct mach_o_section_64, size), secsize);
set_32 (hdr + offsetof (struct mach_o_section_64, offset), offset);
@@ -793,11 +1008,25 @@
sechdrsize, errmsg, err);
}
/* Write out the single (anonymous) segment containing the sections of a Mach-O
Object file.
As a GNU extension to mach-o, when the caller specifies a segment name in
sobj->segment_name, all the sections passed will be output under a single
mach-o section header. The caller's sections are indexed within this
'wrapper' section by a table stored in a second mach-o section. Finally,
arbitrary length section names are permitted by the extension and these are
stored in a table in a third mach-o section.
Note that this is only likely to make any sense for the __GNU_LTO segment
at present.
If the wrapper extension is not in force, we assume that the section name
is in the form __SEGMENT_NAME,__section_name as per Mach-O asm. */
static int
simple_object_mach_o_write_segment (simple_object_write *sobj, int descriptor,
size_t nsects, const char **errmsg,
size_t *nsects, const char **errmsg,
int *err)
{
struct simple_object_mach_o_attributes *attrs =
@@ -814,6 +1043,10 @@
simple_object_write_section *section;
unsigned char hdrbuf[sizeof (struct mach_o_segment_command_64)];
unsigned char *hdr;
size_t nsects_in;
unsigned int *index;
char *snames;
unsigned int sect;
set_32 = (attrs->is_big_endian
? simple_object_set_big_32
@@ -832,21 +1065,64 @@
hdrsize = sizeof (struct mach_o_header_64);
seghdrsize = sizeof (struct mach_o_segment_command_64);
sechdrsize = sizeof (struct mach_o_section_64);
}
name_offset = 0;
*nsects = nsects_in = 0;
for (section = sobj->sections; section != NULL; section = section->next)
nsects_in++;
if (sobj->segment_name != NULL)
{
*nsects = 3;
/* The index has four entries per wrapped section:
Section Offset, length, Name offset, length.
Where the offsets are based at the start of the wrapper and name
sections respectively.
The values are stored as 32 bit int for both 32 and 64 bit mach-o
since the size of a mach-o MH_OBJECT cannot exceed 4G owing to
other constraints. */
index = XNEWVEC (unsigned int, nsects_in * 4);
/* We now need to figure out the size of the names section. This just
stores the names as null-terminated c strings, packed without any
alignment padding. */
for (section = sobj->sections, sect = 0; section != NULL;
section = section->next, sect++)
{
index[sect*4+2] = name_offset;
index[sect*4+3] = strlen (section->name) + 1;
name_offset += strlen (section->name) + 1;
}
snames = XNEWVEC (char, name_offset);
}
else
{
*nsects = nsects_in;
index = NULL;
snames = NULL;
}
sechdr_offset = hdrsize + seghdrsize;
cmdsize = seghdrsize + nsects * sechdrsize;
cmdsize = seghdrsize + *nsects * sechdrsize;
offset = hdrsize + cmdsize;
name_offset = 0;
secaddr = 0;
for (section = sobj->sections; section != NULL; section = section->next)
for (section = sobj->sections, sect = 0;
section != NULL; section = section->next, sect++)
{
size_t mask;
size_t new_offset;
size_t secsize;
struct simple_object_write_section_buffer *buffer;
char namebuf[MACH_O_NAME_LEN + 1];
mask = (1U << section->align) - 1;
new_offset = offset + mask;
@@ -875,41 +1151,128 @@
buffer->size, errmsg, err))
return 0;
secsize += buffer->size;
}
if (sobj->segment_name != NULL)
{
index[sect*4+0] = (unsigned int) offset;
index[sect*4+1] = secsize;
memcpy (snames + index[sect * 4 + 2], section->name,
index[sect * 4 + 3]);
}
else
{
char namebuf[MACH_O_NAME_LEN + 1];
char segnbuf[MACH_O_NAME_LEN + 1];
char *comma;
memset (namebuf, 0, sizeof namebuf);
memset (segnbuf, 0, sizeof segnbuf);
comma = strchr (section->name, ',');
if (comma != NULL)
{
int len = comma - section->name;
len = len > MACH_O_NAME_LEN ? MACH_O_NAME_LEN : len;
strncpy (namebuf, section->name, len);
strncpy (segnbuf, comma + 1, MACH_O_NAME_LEN);
}
else
strncpy (namebuf, section->name, MACH_O_NAME_LEN);
if (!simple_object_mach_o_write_section_header (sobj, descriptor,
sechdr_offset,
namebuf, segnbuf,
secaddr, secsize,
offset,
section->align,
errmsg, err))
return 0;
sechdr_offset += sechdrsize;
}
offset += secsize;
secaddr += secsize;
}
if (sobj->segment_name != NULL)
{
size_t secsize;
unsigned int i;
/* Account for any initial aligment - which becomes the alignment for this
created section. */
snprintf (namebuf, sizeof namebuf, "__%08X", name_offset);
secsize = (offset - index[0]);
if (!simple_object_mach_o_write_section_header (sobj, descriptor,
sechdr_offset, namebuf,
secaddr, secsize, offset,
section->align,
sechdr_offset,
GNU_WRAPPER_SECTS,
sobj->segment_name,
0 ,
secsize, index[0],
sobj->sections->align,
errmsg, err))
return 0;
/* Subtract the wrapper section start from the begining of each sub
section. */
for (i = 1; i < nsects_in; ++i)
index[4 * i] -= index[0];
index[0] = 0;
sechdr_offset += sechdrsize;
offset += secsize;
name_offset += strlen (section->name) + 1;
secaddr += secsize;
}
/* Write out the section names.
... the header ...
name_offset contains the length of the section. It is not aligned. */
if (!simple_object_mach_o_write_section_header (sobj, descriptor,
sechdr_offset,
GNU_WRAPPER_NAMES,
sobj->segment_name,
0 ,
name_offset,
offset,
0, errmsg, err))
return 0;
if (!simple_object_internal_write (descriptor, offset,
(const unsigned char *) snames,
name_offset, errmsg, err))
return 0;
sechdr_offset += sechdrsize;
secaddr += name_offset;
offset += name_offset;
if (!simple_object_mach_o_write_section_header (sobj, descriptor,
sechdr_offset,
GNU_SECTION_NAMES, secaddr,
name_offset, offset, 0,
errmsg, err))
return 0;
/* Now do the index, we'll align this to 4 bytes although the read code
will handle unaligned. */
for (section = sobj->sections; section != NULL; section = section->next)
{
size_t namelen;
offset += 3;
offset &= ~0x03;
if (!simple_object_mach_o_write_section_header (sobj, descriptor,
sechdr_offset,
GNU_WRAPPER_INDEX,
sobj->segment_name,
0 ,
nsects_in * 16,
offset,
2, errmsg, err))
return 0;
namelen = strlen (section->name) + 1;
if (!simple_object_internal_write (descriptor, offset,
(const unsigned char *) section->name,
namelen, errmsg, err))
(const unsigned char *) index,
nsects_in*16, errmsg, err))
return 0;
offset += namelen;
XDELETEVEC (index);
XDELETEVEC (snames);
}
@@ -923,9 +1286,8 @@
MACH_O_LC_SEGMENT);
set_32 (hdr + offsetof (struct mach_o_segment_command_32, cmdsize),
cmdsize);
strncpy (((char *) hdr
+ offsetof (struct mach_o_segment_command_32, segname)),
sobj->segment_name, MACH_O_NAME_LEN);
/* MH_OBJECTS have a single, anonymous, segment - so the segment name
is left empty. */
set_32 (hdr + offsetof (struct mach_o_segment_command_32, fileoff),
@@ -935,7 +1297,7 @@
set_32 (hdr + offsetof (struct mach_o_segment_command_32, nsects),
nsects);
*nsects);
}
else
@@ -951,9 +1313,8 @@
MACH_O_LC_SEGMENT);
set_32 (hdr + offsetof (struct mach_o_segment_command_64, cmdsize),
cmdsize);
strncpy (((char *) hdr
+ offsetof (struct mach_o_segment_command_64, segname)),
sobj->segment_name, MACH_O_NAME_LEN);
/* MH_OBJECTS have a single, anonymous, segment - so the segment name
is left empty. */
set_64 (hdr + offsetof (struct mach_o_segment_command_64, fileoff),
@@ -963,7 +1324,7 @@
set_32 (hdr + offsetof (struct mach_o_segment_command_64, nsects),
nsects);
*nsects);
#endif
}
@@ -978,21 +1339,15 @@
simple_object_mach_o_write_to_file (simple_object_write *sobj, int descriptor,
int *err)
{
size_t nsects;
simple_object_write_section *section;
size_t nsects = 0;
const char *errmsg;
nsects = 1;
for (section = sobj->sections; section != NULL; section = section->next)
++nsects;
if (!simple_object_mach_o_write_segment (sobj, descriptor, &nsects,
&errmsg, err))
return errmsg;
if (!simple_object_mach_o_write_header (sobj, descriptor, nsects,
&errmsg, err))
return errmsg;
if (!simple_object_mach_o_write_segment (sobj, descriptor, nsects,
&errmsg, err))
return errmsg;
return NULL;
@@ -1,3 +1,19 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-02-09 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2012-01-19 Jakub Jelinek <jakub@redhat.com>
PR libmudflap/40778
* testsuite/libmudflap.c/fail68-frag.c: New test.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -8818,7 +8818,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -9731,7 +9731,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -9749,7 +9749,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -1,3 +1,11 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -8727,7 +8727,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -9643,7 +9643,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -9661,7 +9661,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -1,5 +1,5 @@
This is libquadmath.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/libquadmath/libquadmath.texi.
/d//gcc-4.6.3/gcc-4.6.3/libquadmath/libquadmath.texi.
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -912,13 +912,13 @@
Tag Table:
Node: Top1660
Node: Typedef and constants2394
Node: Math Library Routines3812
Node: I/O Library Routines7617
Node: strtoflt1287942
Node: quadmath_snprintf8702
Node: GNU Free Documentation License10893
Node: Reporting Bugs36059
Node: Top1661
Node: Typedef and constants2395
Node: Math Library Routines3813
Node: I/O Library Routines7618
Node: strtoflt1287943
Node: quadmath_snprintf8703
Node: GNU Free Documentation License10894
Node: Reporting Bugs36060
End Tag Table
@@ -1,3 +1,11 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -8864,7 +8864,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -9780,7 +9780,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -9798,7 +9798,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -1,3 +1,205 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-02-21 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52317 (cont)
* include/profile/unordered_map: Ad Library Exception comment.
* include/profile/set: Likewise.
* include/profile/base.h: Likewise.
* include/profile/impl/profiler_list_to_slist.h: Likewise.
* include/profile/impl/profiler_container_size.h: Likewise.
* include/profile/impl/profiler_vector_size.h: Likewise.
* include/profile/impl/profiler_hash_func.h: Likewise.
* include/profile/impl/profiler_trace.h: Likewise.
* include/profile/impl/profiler_list_to_vector.h: Likewise.
* include/profile/impl/profiler_vector_to_list.h: Likewise.
* include/profile/impl/profiler.h: Likewise.
* include/profile/impl/profiler_state.h: Likewise.
* include/profile/impl/profiler_map_to_unordered_map.h: Likewise.
* include/profile/impl/profiler_algos.h: Likewise.
* include/profile/impl/profiler_hashtable_size.h: Likewise.
* include/profile/impl/profiler_node.h: Likewise.
* include/profile/vector: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/map.h: Likewise.
* include/profile/map: Likewise.
2012-02-21 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52317
* python/Makefile.am: Update boilerplate license text to GPLv3.
* include/profile/unordered_map: Likewise.
* include/profile/set: Likewise.
* include/profile/base.h: Likewise.
* include/profile/impl/profiler_list_to_slist.h: Likewise.
* include/profile/impl/profiler_container_size.h: Likewise.
* include/profile/impl/profiler_vector_size.h: Likewise.
* include/profile/impl/profiler_hash_func.h: Likewise.
* include/profile/impl/profiler_trace.h: Likewise.
* include/profile/impl/profiler_list_to_vector.h: Likewise.
* include/profile/impl/profiler_vector_to_list.h: Likewise.
* include/profile/impl/profiler.h: Likewise.
* include/profile/impl/profiler_state.h: Likewise.
* include/profile/impl/profiler_map_to_unordered_map.h: Likewise.
* include/profile/impl/profiler_algos.h: Likewise.
* include/profile/impl/profiler_hashtable_size.h: Likewise.
* include/profile/impl/profiler_node.h: Likewise.
* include/profile/vector: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/map.h: Likewise.
* include/profile/map: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/
wchar_t/dr1261.cc: Likewise.
* testsuite/21_strings/basic_string/numeric_conversions/
char/dr1261.cc: Likewise.
* testsuite/20_util/reference_wrapper/invoke-2.cc: Likewise.
2012-02-20 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52309
* include/bits/hashtable_policy.h (_Equality_base<, true,>::
_M_equal(const _Hashtable&)): Compare values with operator==.
* testsuite/23_containers/unordered_set/operators/52309.cc: New.
2012-02-01 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51795
* include/bits/random.h (linear_congruential_generator): Add
static_assert preventing instantiation for values of 'a' and 'm'
currently handled incorrectly by _Mod::__calc.
* include/bits/random.tcc (seed_seq::generate): Avoid unsafe
uses of _Mod::__calc.
2012-01-03 Chase Douglas <chase.douglas@canonical.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/shared_ptr.h: Default copy ctor and assignment.
* include/bits/shared_ptr_base.h: Likewise.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
line numbers.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
2011-12-30 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51711
* include/bits/regex.h (regex_replace): Fix thinko.
* testsuite/28_regex/algorithms/regex_replace/char/51711.cc: New.
* testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc:
Likewise.
2011-12-19 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51626
* include/bits/stl_uninitialized.h (_Construct_default_a_impl): Define
overloaded functions to conditionally use allocator::construct.
(_Construct_default_a): Define to dispatch to appropriate
_Construct_default_a_impl overload.
(__uninitialized_default_a, __uninitialized_default_n_a): Use
_Construct_default_a.
* testsuite/20_util/allocator/51626.cc: New.
2011-12-19 Jonathan Wakely <jwakely.gcc@gmail.com>
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust
dg-error line numbers.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Likewise.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
2011-12-19 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/c_global/cmath: Update copyright years.
* include/ext/type_traits.h: Likewise.
2011-12-19 Jonathan Wakely <jwakely.gcc@gmail.com>
Backport from mainline
2011-11-13 Paolo Carlini <paolo.carlini@oracle.com>
* include/c_global/cmath (atan2, pow): Simplify constraining on the
return type.
Backport from mainline
2011-11-12 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51083
* include/ext/type_traits.h (__promote): Only define __type member
for integral and floating point types, to prevent math functions
participating in overload resolution for other types.
(__promote_2, __promote_3, __promote_4): Use __promote in default
template argument values, so deduction only succeeds for integral and
floating point types.
* testsuite/26_numerics/cmath/51083.cc: New.
* testsuite/26_numerics/complex/51083.cc: New.
* testsuite/tr1/8_c_compatibility/cmath/51083.cc: New.
* testsuite/tr1/8_c_compatibility/complex/51083.cc: New.
2011-12-19 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/50862
* include/std/condition_variable (condition_variable_any::wait): Fix
deadlock and ensure _Lock::lock() is called on exit.
* testsuite/30_threads/condition_variable_any/50862.cc: New.
2011-12-18 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51540
* include/bits/stl_numeric.h (partial_sum): Adjust doxygen comments.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-11-16 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51142
* include/debug/unordered_map (unordered_map<>::erase(iterator),
unordered_multimap<>::erase(iterator)): Add, consistently with
LWG 2059.
* include/debug/unordered_set (unordered_set<>::erase(iterator),
unordered_multiset<>::erase(iterator)): Likewise.
* include/debug/map.h (map<>::erase(iterator)): Likewise.
* include/debug/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/profile/map.h (map<>::erase(iterator)): Likewise.
* include/profile/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/hashtable.h (_Hashtable<>::erase(iterator)): Likewise.
* include/bits/stl_map.h (map<>::erase(iterator)): Likewise.
* include/bits/stl_multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::erase(iterator)): Likewise.
* testsuite/23_containers/unordered_map/erase/51142.cc: New.
* testsuite/23_containers/multimap/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/set/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
* testsuite/23_containers/multiset/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
* testsuite/23_containers/map/modifiers/erase/51142.cc: Likewise.
2011-11-15 Jason Dick <dickphd@gmail.com>
PR libstdc++/51133
* include/tr1/poly_hermite.tcc (__poly_hermite_recursion): Fix
wrong sign in recursion relation.
2011-11-02 Richard B. Kreckel <kreckel@ginac.de>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50880
* include/std/complex (__complex_acosh): Fix in a better way,
use Kahan's formula.
* include/tr1/complex (__complex_acosh): Likewise.
2011-11-02 Richard B. Kreckel <kreckel@ginac.de>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50880
* include/std/complex (__complex_acosh): Fix for __z.real() < 0.
* include/tr1/complex (__complex_acosh): Likewise.
* testsuite/26_numerics/complex/50880.cc: New.
* testsuite/tr1/8_c_compatibility/complex/50880.cc: Likewise.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -9698,7 +9698,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -10614,7 +10614,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -10632,7 +10632,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -12522,7 +12522,7 @@
esac
;;
freebsd[12]*)
freebsd2.*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
ld_shlibs_CXX=no
@@ -14297,7 +14297,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -14315,7 +14315,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -1,3 +1,24 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-01-03 Richard Guenther <rguenther@suse.de>
Backport from mainline
2011-08-10 Richard Guenther <rguenther@suse.de>
PR bootstrap/49907
lto-plugin/
* configure.ac: Use ACX_PROG_CC_WARNING_OPTS to detect -Wall presence.
* Makefile.am (AM_CFLAGS): Adjust. Do not build with -Werror.
* configure: Regenerate.
* Makefile.in: Likewise.
* aclocal.m4: Likewise.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -8,7 +8,7 @@
libexecsubdir := $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS)
AM_CFLAGS = -Wall -Werror
AM_CFLAGS = @ac_lto_plugin_warn_cflags@
AM_LIBTOOLFLAGS = --tag=disable-static
libexecsub_LTLIBRARIES = liblto_plugin.la
@@ -47,6 +47,7 @@
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/lthostflags.m4 \
$(top_srcdir)/../config/override.m4 \
$(top_srcdir)/../config/warnings.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/configure.ac
@@ -167,6 +168,7 @@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_lto_plugin_warn_cflags = @ac_lto_plugin_warn_cflags@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -227,7 +229,7 @@
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
libexecsubdir := $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS)
AM_CFLAGS = -Wall -Werror
AM_CFLAGS = @ac_lto_plugin_warn_cflags@
AM_LIBTOOLFLAGS = --tag=disable-static
libexecsub_LTLIBRARIES = liblto_plugin.la
gcc_build_dir = ../$(host_subdir)/gcc
@@ -973,6 +973,7 @@
m4_include([../config/lead-dot.m4])
m4_include([../config/lthostflags.m4])
m4_include([../config/override.m4])
m4_include([../config/warnings.m4])
m4_include([../libtool.m4])
m4_include([../ltoptions.m4])
m4_include([../ltsugar.m4])
@@ -622,6 +622,7 @@
GREP
SED
LIBTOOL
ac_lto_plugin_warn_cflags
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
@@ -4040,6 +4041,45 @@
fi
fi
ac_lto_plugin_warn_cflags=
save_CFLAGS="$CFLAGS"
for option in -Wall; do
as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
$as_echo_n "checking whether $CC supports $option... " >&6; }
if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
$as_echo_n "(cached) " >&6
else
CFLAGS="$option"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
eval "$as_acx_Woption=yes"
else
eval "$as_acx_Woption=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$as_acx_Woption
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
ac_lto_plugin_warn_cflags="$ac_lto_plugin_warn_cflags${ac_lto_plugin_warn_cflags:+ }$option"
fi
done
CFLAGS="$save_CFLAGS"
case `pwd` in
*\ * | *\ *)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
@@ -8733,7 +8773,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -9646,7 +9686,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -9664,7 +9704,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -10498,7 +10538,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 10501 "configure"
#line 10541 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10604,7 +10644,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 10607 "configure"
#line 10647 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -6,6 +6,7 @@
AM_MAINTAINER_MODE
AC_PROG_CC
AC_SYS_LARGEFILE
ACX_PROG_CC_WARNING_OPTS([-Wall], [ac_lto_plugin_warn_cflags])
AM_PROG_LIBTOOL
ACX_LT_HOST_FLAGS
AC_SUBST(target_noncanonical)
@@ -1,3 +1,12 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-11-23 Gerald Pfeifer <gerald@pfeifer.com>
* update_web_docs_svn: Make $DOCSDIR group writable after
creating it.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -93,6 +93,7 @@
if [ ! -d $DOCSDIR ]; then
mkdir $DOCSDIR
chmod g+w $DOCSDIR
fi
if [ -z "$RELEASE" ]; then
@@ -1,3 +1,11 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-11-20 Andreas Tobler <andreast@fgznet.ch>
* configure: Regenerate.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -8600,7 +8600,7 @@
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*)
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@@ -9516,7 +9516,7 @@
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[123]*) objformat=aout ;;
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@@ -9534,7 +9534,7 @@
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2*)
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,3 +1,19 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
PR c++/50608
* c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
(fold_offsetof_1): Make global. Remove STOP_REF argument and adjust.
<INDIRECT_REF>: Return the argument.
<ARRAY_REF>: Remove special code for negative offset.
Call fold_build_pointer_plus instead of size_binop.
(fold_offsetof): Remove STOP_REF argument and adjust.
* c-common.h (fold_offsetof_1): Declare.
(fold_offsetof): Remove STOP_REF argument.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1236,13 +1236,7 @@
&& (op1 = get_base_address (op0)) != NULL_TREE
&& TREE_CODE (op1) == INDIRECT_REF
&& TREE_CONSTANT (TREE_OPERAND (op1, 0)))
{
tree offset = fold_offsetof (op0, op1);
op1
= fold_convert_loc (loc, TREE_TYPE (expr), TREE_OPERAND (op1, 0));
ret = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (expr), op1,
offset);
}
ret = fold_convert_loc (loc, TREE_TYPE (expr), fold_offsetof_1 (op0));
else if (op0 != orig_op0 || in_init)
ret = in_init
? fold_build1_initializer_loc (loc, code, TREE_TYPE (expr), op0)
@@ -8459,20 +8453,15 @@
return uc;
}
/* Build the result of __builtin_offsetof. EXPR is a nested sequence of
component references, with STOP_REF, or alternatively an INDIRECT_REF of
NULL, at the bottom; much like the traditional rendering of offsetof as a
macro. Returns the folded and properly cast result. */
/* Fold an offsetof-like expression. EXPR is a nested sequence of component
references with an INDIRECT_REF of a constant at the bottom; much like the
traditional rendering of offsetof as a macro. Return the folded result. */
static tree
fold_offsetof_1 (tree expr, tree stop_ref)
tree
fold_offsetof_1 (tree expr)
{
enum tree_code code = PLUS_EXPR;
tree base, off, t;
if (expr == stop_ref && TREE_CODE (expr) != ERROR_MARK)
return size_zero_node;
switch (TREE_CODE (expr))
{
case ERROR_MARK:
@@ -8489,15 +8478,15 @@
case NOP_EXPR:
case INDIRECT_REF:
if (!integer_zerop (TREE_OPERAND (expr, 0)))
if (!TREE_CONSTANT (TREE_OPERAND (expr, 0)))
{
error ("cannot apply %<offsetof%> to a non constant address");
return error_mark_node;
}
return size_zero_node;
return TREE_OPERAND (expr, 0);
case COMPONENT_REF:
base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
base = fold_offsetof_1 (TREE_OPERAND (expr, 0));
if (base == error_mark_node)
return base;
@@ -8515,21 +8504,14 @@
break;
case ARRAY_REF:
base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
base = fold_offsetof_1 (TREE_OPERAND (expr, 0));
if (base == error_mark_node)
return base;
t = TREE_OPERAND (expr, 1);
if (TREE_CODE (t) == INTEGER_CST && tree_int_cst_sgn (t) < 0)
{
code = MINUS_EXPR;
t = fold_build1_loc (input_location, NEGATE_EXPR, TREE_TYPE (t), t);
}
t = convert (sizetype, t);
off = size_binop (MULT_EXPR, TYPE_SIZE_UNIT (TREE_TYPE (expr)), t);
if (code == PLUS_EXPR && TREE_CODE (t) == INTEGER_CST)
if (TREE_CODE (t) == INTEGER_CST && tree_int_cst_sgn (t) >= 0)
{
tree upbound = array_ref_up_bound (expr);
if (upbound != NULL_TREE
@@ -8569,26 +8551,30 @@
}
}
}
t = convert (sizetype, t);
off = size_binop (MULT_EXPR, TYPE_SIZE_UNIT (TREE_TYPE (expr)), t);
break;
case COMPOUND_EXPR:
t = TREE_OPERAND (expr, 1);
gcc_assert (TREE_CODE (t) == VAR_DECL);
return fold_offsetof_1 (t, stop_ref);
return fold_offsetof_1 (t);
default:
gcc_unreachable ();
}
return size_binop (code, base, off);
return fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (base), base, off);
}
tree
fold_offsetof (tree expr, tree stop_ref)
fold_offsetof (tree expr)
{
return convert (size_type_node, fold_offsetof_1 (expr, stop_ref));
return convert (size_type_node, fold_offsetof_1 (expr));
}
/* Warn for A ?: C expressions (with B omitted) where A is a boolean
@@ -916,7 +916,8 @@
extern void verify_sequence_points (tree);
extern tree fold_offsetof (tree, tree);
extern tree fold_offsetof_1 (tree);
extern tree fold_offsetof (tree);
/* Places where an lvalue, or modifiable lvalue, may be required.
Used to select diagnostic messages in lvalue_error and
@@ -1753,19 +1753,51 @@
return (!strncmp ((const char *)p, "_OBJC_", 6));
}
/* LTO support for Mach-O.
static unsigned int lto_section_names_offset = 0;
This version uses three mach-o sections to encapsulate the (unlimited
number of) lto sections.
static struct obstack lto_section_names_obstack;
__GNU_LTO, __lto_sections contains the concatented GNU LTO section data.
__GNU_LTO, __section_names contains the GNU LTO section names.
__GNU_LTO, __section_index contains an array of values that index these.
Indexed thus:
<section offset from the start of __GNU_LTO, __lto_sections>,
<section length>
<name offset from the start of __GNU_LTO, __section_names,
<name length>.
At present, for both m32 and m64 mach-o files each of these fields is
represented by a uint32_t. This is because, AFAICT, a mach-o object
cannot exceed 4Gb because the section_64 offset field (see below) is 32bits.
uint32_t offset;
"offset An integer specifying the offset to this section in the file." */
static unsigned int lto_section_num = 0;
/* A vector of information about LTO sections, at present, we only have
the name. TODO: see if we can get the data length somehow. */
typedef struct GTY (()) darwin_lto_section_e {
const char *sectname;
} darwin_lto_section_e ;
DEF_VEC_O(darwin_lto_section_e);
DEF_VEC_ALLOC_O(darwin_lto_section_e, gc);
static GTY (()) VEC (darwin_lto_section_e, gc) * lto_section_names;
#define LTO_SEGMENT_NAME "__GNU_LTO"
#define LTO_NAMES_SECTION "__section_names"
/* Section wrapper scheme (used here to wrap the unlimited number of LTO
sections into three Mach-O ones).
NOTE: These names MUST be kept in sync with those in
libiberty/simple-object-mach-o. */
#define LTO_SECTS_SECTION "__wrapper_sects"
#define LTO_NAMES_SECTION "__wrapper_names"
#define LTO_INDEX_SECTION "__wrapper_index"
/* File to temporarily store LTO data. This is appended to asm_out_file
in darwin_end_file. */
@@ -1808,37 +1840,38 @@
unsigned int flags,
tree decl ATTRIBUTE_UNUSED)
{
/* LTO sections go in a special segment __GNU_LTO. We want to replace the
section name with something we can use to represent arbitrary-length
names (section names in Mach-O are at most 16 characters long). */
/* LTO sections go in a special section that encapsulates the (unlimited)
number of GNU LTO sections within a single mach-o one. */
if (strncmp (name, LTO_SECTION_NAME_PREFIX,
strlen (LTO_SECTION_NAME_PREFIX)) == 0)
{
darwin_lto_section_e e;
gcc_assert ((flags & (SECTION_DEBUG | SECTION_NAMED))
== (SECTION_DEBUG | SECTION_NAMED));
/* Add the section name to the things to output when we end the
current assembler output file.
This is all not very efficient, but that doesn't matter -- this
shouldn't be a hot path in the compiler... */
obstack_1grow (<o_section_names_obstack, '\t');
obstack_grow (<o_section_names_obstack, ".ascii ", 7);
obstack_1grow (<o_section_names_obstack, '"');
obstack_grow (<o_section_names_obstack, name, strlen (name));
obstack_grow (<o_section_names_obstack, "\\0\"\n", 4);
fprintf (asm_out_file, "\t# %s\n", name);
fprintf (asm_out_file, "\t.section %s,__%08X,regular,debug\n",
LTO_SEGMENT_NAME, lto_section_names_offset);
/* Update the offset for the next section name. Make sure we stay
within reasonable length. */
lto_section_names_offset += strlen (name) + 1;
gcc_assert (lto_section_names_offset > 0
&& lto_section_names_offset < ((unsigned) 1 << 31));
}
fprintf (asm_out_file, "\t.section %s,%s,regular,debug\n",
LTO_SEGMENT_NAME, LTO_SECTS_SECTION);
fprintf (asm_out_file, "L_GNU_LTO%d:\t;# %s\n",
lto_section_num, name);
/* We have to jump through hoops to get the values of the intra-section
offsets... */
fprintf (asm_out_file, "\t.set L$gnu$lto$offs%d,L_GNU_LTO%d-L_GNU_LTO0\n",
lto_section_num, lto_section_num);
fprintf (asm_out_file,
"\t.set L$gnu$lto$size%d,L_GNU_LTO%d-L_GNU_LTO%d\n",
lto_section_num, lto_section_num+1, lto_section_num);
lto_section_num++;
e.sectname = xstrdup (name);
/* Keep the names, we'll need to make a table later.
TODO: check that we do not revisit sections, that would break
the assumption of how this is done. */
if (lto_section_names == NULL)
lto_section_names = VEC_alloc (darwin_lto_section_e, gc, 16);
VEC_safe_push (darwin_lto_section_e, gc, lto_section_names, &e);
}
else if (strncmp (name, "__DWARF,", 8) == 0)
darwin_asm_dwarf_section (name, flags, decl);
else
@@ -2711,16 +2744,12 @@
darwin_asm_output_dwarf_delta (file, size, lab, sname);
}
/* Called from the within the TARGET_ASM_FILE_START for each target.
Initialize the stuff we need for LTO long section names support. */
void
darwin_file_start (void)
{
/* We fill this obstack with the complete section text for the lto section
names to write in darwin_file_end. */
obstack_init (<o_section_names_obstack);
lto_section_names_offset = 0;
}
/* Called for the TARGET_ASM_FILE_END hook.
@@ -2731,8 +2760,6 @@
void
darwin_file_end (void)
{
const char *lto_section_names;
machopic_finish (asm_out_file);
if (strcmp (lang_hooks.name, "GNU C++") == 0)
{
@@ -2762,6 +2789,13 @@
lto_asm_txt = buf = (char *) xmalloc (n + 1);
while (fgets (lto_asm_txt, n, lto_asm_out_file))
fputs (lto_asm_txt, asm_out_file);
fprintf (asm_out_file, "\t.section %s,%s,regular,debug\n",
LTO_SEGMENT_NAME, LTO_SECTS_SECTION);
fprintf (asm_out_file, "L_GNU_LTO%d:\t;# end of lto\n",
lto_section_num);
fputs ("\t.space\t1\n", asm_out_file);
}
@@ -2770,21 +2804,50 @@
free (lto_asm_out_name);
}
/* Finish the LTO section names obstack. Don't output anything if
there are no recorded section names. */
obstack_1grow (<o_section_names_obstack, '\0');
lto_section_names = XOBFINISH (<o_section_names_obstack, const char *);
if (strlen (lto_section_names) > 0)
if (lto_section_names && VEC_length (darwin_lto_section_e, lto_section_names))
{
fprintf (asm_out_file,
"\t.section %s,%s,regular,debug\n",
int count;
darwin_lto_section_e *ref;
/* For now, we'll make the offsets 4 bytes and unaligned - we'll fix
the latter up ourselves. */
const char *op = integer_asm_op (4,0);
fprintf (asm_out_file, "\t.section %s,%s,regular,debug\n",
LTO_SEGMENT_NAME, LTO_NAMES_SECTION);
fprintf (asm_out_file,
"\t# Section names in %s are offsets into this table\n",
LTO_SEGMENT_NAME);
fprintf (asm_out_file, "%s\n", lto_section_names);
FOR_EACH_VEC_ELT (darwin_lto_section_e, lto_section_names, count, ref)
{
fprintf (asm_out_file, "L_GNU_LTO_NAME%d:\n", count);
/* We have to jump through hoops to get the values of the intra-section
offsets... */
fprintf (asm_out_file,
"\t.set L$gnu$lto$noff%d,L_GNU_LTO_NAME%d-L_GNU_LTO_NAME0\n",
count, count);
fprintf (asm_out_file,
"\t.set L$gnu$lto$nsiz%d,L_GNU_LTO_NAME%d-L_GNU_LTO_NAME%d\n",
count, count+1, count);
fprintf (asm_out_file, "\t.asciz\t\"%s\"\n", ref->sectname);
}
fprintf (asm_out_file, "L_GNU_LTO_NAME%d:\t;# end\n", lto_section_num);
fputs ("\t.space\t1\n", asm_out_file);
fprintf (asm_out_file, "\t.section %s,%s,regular,debug\n",
LTO_SEGMENT_NAME, LTO_INDEX_SECTION);
fputs ("\t.align\t2\n", asm_out_file);
fputs ("# Section offset, Section length, Name offset, Name length\n",
asm_out_file);
FOR_EACH_VEC_ELT (darwin_lto_section_e, lto_section_names, count, ref)
{
fprintf (asm_out_file, "%s L$gnu$lto$offs%d\t;# %s\n",
op, count, ref->sectname);
fprintf (asm_out_file, "%s L$gnu$lto$size%d\n", op, count);
fprintf (asm_out_file, "%s L$gnu$lto$noff%d\n", op, count);
fprintf (asm_out_file, "%s L$gnu$lto$nsiz%d\n", op, count);
}
}
obstack_free (<o_section_names_obstack, NULL);
/* If we have section anchors, then we must prevent the linker from
re-arranging data. */
@@ -1,3 +1,111 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2012-02-14 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2012-02-14 Jakub Jelinek <jakub@redhat.com>
PR c++/52247
* pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
lookup_label on label's name and set TREE_USED.
PR c/52181
* decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
2012-02-09 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2012-01-03 Jakub Jelinek <jakub@redhat.com>
PR c++/51669
* semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
on OMP_CLAUSE_{IF,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
2011-12-15 Jakub Jelinek <jakub@redhat.com>
PR c/51360
* semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR
and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use.
2012-01-19 Kai Tietz <ktietz@redhat.com>
PR c++/51344
* decl2.c (save_template_attributes): Use merge_attributes
instead of chaining up via TREE_CHAIN.
2012-01-16 Jakub Jelinek <jakub@redhat.com>
PR c++/51854
* mangle.c (write_template_arg_literal): Sorry instead of aborting.
2012-01-16 Jason Merrill <jason@redhat.com>
PR c++/51868
* typeck.c (build_static_cast_1): Handle bit-fields properly.
2011-12-20 Dodji Seketeli <dodji@redhat.com>
PR debug/49951
* decl.c (cxx_maybe_build_cleanup): Don't set location of the call
to the destructor.
2011-12-16 Jason Merrill <jason@redhat.com>
PR c++/51416
* init.c (build_value_init_noctor): Check for incomplete type.
2011-12-16 Jason Merrill <jason@redhat.com>
PR c++/51331
* class.c (convert_to_base_statically): Just call
build_simple_base_path.
(build_simple_base_path): Check field offset.
2011-12-14 Jason Merrill <jason@redhat.com>
PR c++/51248
* decl.c (copy_type_enum): Also update variants.
(finish_enum): Allow variants of complete enums.
2011-12-13 Jason Merrill <jason@redhat.com>
PR c++/51406
PR c++/51161
* typeck.c (build_static_cast_1): Fix cast of lvalue to
base rvalue reference.
2011-11-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51265
* semantics.c (finish_decltype_type): Handle PTRMEM_CST.
2011-11-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51150
* pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR.
2011-11-07 Jason Merrill <jason@redhat.com>
PR c++/50870
* pt.c (tsubst_copy): Handle NAMESPACE_DECL.
(tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent
object.
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
PR c++/50608
* semantics.c (finish_offsetof): Adjust call to fold_offsetof.
* typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1.
2011-10-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50901
* call.c (build_new_op_1): Handle ABS_EXPR together with the
other unary EXPR.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -4996,6 +4996,7 @@
case POSTDECREMENT_EXPR:
case REALPART_EXPR:
case IMAGPART_EXPR:
case ABS_EXPR:
return cp_build_unary_op (code, arg1, candidates != 0, complain);
case ARRAY_REF:
@@ -464,7 +464,14 @@
if (TREE_CODE (field) == FIELD_DECL
&& DECL_FIELD_IS_BASE (field)
&& TREE_TYPE (field) == type)
&& TREE_TYPE (field) == type
/* If we're looking for a field in the most-derived class,
also check the field offset; we can have two base fields
of the same type if one is an indirect virtual base and one
is a direct non-virtual base. */
&& (BINFO_INHERITANCE_CHAIN (d_binfo)
|| tree_int_cst_equal (byte_position (field),
BINFO_OFFSET (binfo))))
{
/* We don't use build_class_member_access_expr here, as that
has unnecessary checks, and more importantly results in
@@ -540,6 +547,10 @@
if (!SAME_BINFO_TYPE_P (BINFO_TYPE (base), expr_type))
{
tree pointer_type;
if (!is_empty_class (BINFO_TYPE (base)))
return build_simple_base_path (expr, base);
pointer_type = build_pointer_type (expr_type);
@@ -2154,7 +2154,12 @@
SET_DECL_INIT_PRIORITY (olddecl, DECL_INIT_PRIORITY (newdecl));
DECL_HAS_INIT_PRIORITY_P (olddecl) = 1;
}
if (DECL_ALIGN (olddecl) > DECL_ALIGN (newdecl))
{
DECL_ALIGN (newdecl) = DECL_ALIGN (olddecl);
DECL_USER_ALIGN (newdecl) |= DECL_USER_ALIGN (olddecl);
}
DECL_USER_ALIGN (olddecl) = DECL_USER_ALIGN (newdecl);
if (TREE_CODE (newdecl) == FIELD_DECL)
DECL_PACKED (olddecl) = DECL_PACKED (newdecl);
@@ -11540,15 +11545,19 @@
static void
copy_type_enum (tree dst, tree src)
{
TYPE_MIN_VALUE (dst) = TYPE_MIN_VALUE (src);
TYPE_MAX_VALUE (dst) = TYPE_MAX_VALUE (src);
TYPE_SIZE (dst) = TYPE_SIZE (src);
TYPE_SIZE_UNIT (dst) = TYPE_SIZE_UNIT (src);
SET_TYPE_MODE (dst, TYPE_MODE (src));
TYPE_PRECISION (dst) = TYPE_PRECISION (src);
TYPE_ALIGN (dst) = TYPE_ALIGN (src);
TYPE_USER_ALIGN (dst) = TYPE_USER_ALIGN (src);
TYPE_UNSIGNED (dst) = TYPE_UNSIGNED (src);
tree t;
for (t = dst; t; t = TYPE_NEXT_VARIANT (t))
{
TYPE_MIN_VALUE (t) = TYPE_MIN_VALUE (src);
TYPE_MAX_VALUE (t) = TYPE_MAX_VALUE (src);
TYPE_SIZE (t) = TYPE_SIZE (src);
TYPE_SIZE_UNIT (t) = TYPE_SIZE_UNIT (src);
SET_TYPE_MODE (dst, TYPE_MODE (src));
TYPE_PRECISION (t) = TYPE_PRECISION (src);
TYPE_ALIGN (t) = TYPE_ALIGN (src);
TYPE_USER_ALIGN (t) = TYPE_USER_ALIGN (src);
TYPE_UNSIGNED (t) = TYPE_UNSIGNED (src);
}
}
/* Begin compiling the definition of an enumeration type.
@@ -11903,9 +11912,12 @@
return;
}
/* If this is a forward declaration, there should not be any variants,
though we can get a variant in the middle of an enum-specifier with
wacky code like 'enum E { e = sizeof(const E*) };' */
gcc_assert (enumtype == TYPE_MAIN_VARIANT (enumtype)
&& !TYPE_NEXT_VARIANT (enumtype));
&& (TYPE_VALUES (enumtype)
|| !TYPE_NEXT_VARIANT (enumtype)));
}
/* Build and install a CONST_DECL for an enumeration constant of the
@@ -13356,8 +13368,17 @@
cleanup = call;
}
/* build_delete sets the location of the destructor call to the
current location, even though the destructor is going to be
called later, at the end of the current scope. This can lead to
a "jumpy" behaviour for users of debuggers when they step around
the end of the block. So let's unset the location of the
destructor call instead. */
if (cleanup != NULL && EXPR_P (cleanup))
SET_EXPR_LOCATION (cleanup, UNKNOWN_LOCATION);
return cleanup;
}
@@ -1185,9 +1185,9 @@
old_attrs = *q;
/* Place the late attributes at the beginning of the attribute
/* Merge the late attributes at the beginning with the attribute
list. */
TREE_CHAIN (tree_last (late_attrs)) = *q;
late_attrs = merge_attributes (late_attrs, *q);
*q = late_attrs;
if (!DECL_P (*decl_p) && *decl_p == TYPE_MAIN_VARIANT (*decl_p))
@@ -141,7 +141,9 @@
zero-initialization does not simply mean filling the storage with
zero bytes. FIELD_SIZE, if non-NULL, is the bit size of the field,
subfields with bit positions at or above that bit size shouldn't
be added. */
be added. Note that this only works when the result is assigned
to a base COMPONENT_REF; if we only have a pointer to the base subobject,
expand_assignment will end up clearing the full size of TYPE. */
static tree
build_zero_init_1 (tree type, tree nelts, bool static_storage_p,
@@ -368,6 +370,12 @@
tree
build_value_init_noctor (tree type, tsubst_flags_t complain)
{
if (!COMPLETE_TYPE_P (type))
{
if (complain & tf_error)
error ("value-initialization of incomplete type %qT", type);
return error_mark_node;
}
if (CLASS_TYPE_P (type))
{
gcc_assert (!TYPE_NEEDS_CONSTRUCTING (type));
@@ -2770,7 +2770,8 @@
break;
default:
gcc_unreachable ();
sorry ("mangling %C", TREE_CODE (value));
break;
}
write_char ('E');
@@ -11439,6 +11439,9 @@
mark_used (t);
return t;
case NAMESPACE_DECL:
return t;
case OVERLOAD:
/* An OVERLOAD will always be a non-dependent overload set; an
overload set from function scope will just be represented with an
@@ -11883,8 +11886,17 @@
if (purpose)
purpose = RECUR (purpose);
value = TREE_VALUE (t);
if (value && TREE_CODE (value) != LABEL_DECL)
value = RECUR (value);
if (value)
{
if (TREE_CODE (value) != LABEL_DECL)
value = RECUR (value);
else
{
value = lookup_label (DECL_NAME (value));
gcc_assert (TREE_CODE (value) == LABEL_DECL);
TREE_USED (value) = 1;
}
}
chain = TREE_CHAIN (t);
if (chain && chain != void_type_node)
chain = RECUR (chain);
@@ -12703,6 +12715,10 @@
case IMAGPART_EXPR:
return build_x_unary_op (TREE_CODE (t), RECUR (TREE_OPERAND (t, 0)),
complain);
case FIX_TRUNC_EXPR:
return cp_build_unary_op (FIX_TRUNC_EXPR, RECUR (TREE_OPERAND (t, 0)),
0, complain);
case ADDR_EXPR:
op1 = TREE_OPERAND (t, 0);
@@ -13179,7 +13195,9 @@
if (member == error_mark_node)
return error_mark_node;
if (object_type && !CLASS_TYPE_P (object_type))
if (type_dependent_expression_p (object))
;
else if (!CLASS_TYPE_P (object_type))
{
if (SCALAR_TYPE_P (object_type))
{
@@ -3348,7 +3348,7 @@
}
if (TREE_CODE (expr) == INDIRECT_REF && REFERENCE_REF_P (expr))
expr = TREE_OPERAND (expr, 0);
return fold_offsetof (expr, NULL_TREE);
return fold_offsetof (expr);
}
/* Replace the AGGR_INIT_EXPR at *TP with an equivalent CALL_EXPR. This
@@ -3804,6 +3804,8 @@
t = maybe_convert_cond (t);
if (t == error_mark_node)
remove = true;
else if (!processing_template_decl)
t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
OMP_CLAUSE_IF_EXPR (c) = t;
break;
@@ -3817,6 +3819,13 @@
error ("num_threads expression must be integral");
remove = true;
}
else
{
t = mark_rvalue_use (t);
if (!processing_template_decl)
t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
OMP_CLAUSE_NUM_THREADS_EXPR (c) = t;
}
break;
case OMP_CLAUSE_SCHEDULE:
@@ -3830,6 +3839,13 @@
{
error ("schedule chunk size expression must be integral");
remove = true;
}
else
{
t = mark_rvalue_use (t);
if (!processing_template_decl)
t = fold_build_cleanup_point_expr (TREE_TYPE (t), t);
OMP_CLAUSE_SCHEDULE_CHUNK_EXPR (c) = t;
}
break;
@@ -4927,8 +4943,9 @@
gcc_unreachable ();
case INTEGER_CST:
case PTRMEM_CST:
/* We can get here when the id-expression refers to an
enumerator. */
enumerator or non-type template parameter. */
type = TREE_TYPE (expr);
break;
@@ -4835,9 +4835,7 @@
&& TREE_CONSTANT (TREE_OPERAND (val, 0)))
{
tree type = build_pointer_type (argtype);
tree op0 = fold_convert (type, TREE_OPERAND (val, 0));
tree op1 = fold_convert (sizetype, fold_offsetof (arg, val));
return fold_build2 (POINTER_PLUS_EXPR, type, op0, op1);
return fold_convert (type, fold_offsetof_1 (arg));
}
/* Handle complex lvalues (when permitted)
@@ -5698,11 +5696,12 @@
{
tree intype;
tree result;
cp_lvalue_kind clk;
*valid_p = true;
intype = TREE_TYPE (expr);
intype = unlowered_expr_type (expr);
used_types_insert (type);
@@ -5768,12 +5767,29 @@
cv2 T2 if cv2 T2 is reference-compatible with cv1 T1 (8.5.3)." */
if (TREE_CODE (type) == REFERENCE_TYPE
&& TYPE_REF_IS_RVALUE (type)
&& real_lvalue_p (expr)
&& (clk = real_lvalue_p (expr))
&& reference_related_p (TREE_TYPE (type), intype)
&& (c_cast_p || at_least_as_qualified_p (TREE_TYPE (type), intype)))
{
expr = build_typed_address (expr, type);
return convert_from_reference (expr);
if (clk == clk_ordinary)
{
/* Handle the (non-bit-field) lvalue case here by casting to
lvalue reference and then changing it to an rvalue reference.
Casting an xvalue to rvalue reference will be handled by the
main code path. */
tree lref = cp_build_reference_type (TREE_TYPE (type), false);
result = (perform_direct_initialization_if_possible
(lref, expr, c_cast_p, complain));
result = cp_fold_convert (type, result);
/* Make sure we don't fold back down to a named rvalue reference,
because that would be an lvalue. */
if (DECL_P (result))
result = build1 (NON_LVALUE_EXPR, type, result);
return convert_from_reference (result);
}
else
expr = rvalue (expr);
}
/* Resolve overloaded address here rather than once in
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "AOT-COMPILE 1"
.TH AOT-COMPILE 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH AOT-COMPILE 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "CPP 1"
.TH CPP 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH CPP 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,5 +1,5 @@
This is doc/cpp.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/gcc/doc/cpp.texi.
/d//gcc-4.6.3/gcc-4.6.3/gcc/doc/cpp.texi.
Copyright (C) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
@@ -5471,79 +5471,79 @@
Tag Table:
Node: Top1109
Node: Overview3841
Node: Character sets6674
Ref: Character sets-Footnote-18857
Node: Initial processing9038
Ref: trigraphs10597
Node: Tokenization14799
Ref: Tokenization-Footnote-121935
Node: The preprocessing language22046
Node: Header Files24924
Node: Include Syntax26840
Node: Include Operation28477
Node: Search Path30325
Node: Once-Only Headers33515
Node: Alternatives to Wrapper #ifndef35174
Node: Computed Includes36917
Node: Wrapper Headers40075
Node: System Headers42501
Node: Macros44551
Node: Object-like Macros45692
Node: Function-like Macros49282
Node: Macro Arguments50898
Node: Stringification55043
Node: Concatenation58249
Node: Variadic Macros61357
Node: Predefined Macros66144
Node: Standard Predefined Macros66732
Node: Common Predefined Macros72669
Node: System-specific Predefined Macros90172
Node: C++ Named Operators92193
Node: Undefining and Redefining Macros93157
Node: Directives Within Macro Arguments95261
Node: Macro Pitfalls96809
Node: Misnesting97342
Node: Operator Precedence Problems98454
Node: Swallowing the Semicolon100320
Node: Duplication of Side Effects102343
Node: Self-Referential Macros104526
Node: Argument Prescan106935
Node: Newlines in Arguments110689
Node: Conditionals111640
Node: Conditional Uses113470
Node: Conditional Syntax114828
Node: Ifdef115148
Node: If118309
Node: Defined120613
Node: Else121896
Node: Elif122466
Node: Deleted Code123755
Node: Diagnostics125002
Node: Line Control126619
Node: Pragmas130423
Node: Other Directives134740
Node: Preprocessor Output135790
Node: Traditional Mode138991
Node: Traditional lexical analysis140049
Node: Traditional macros142552
Node: Traditional miscellany146354
Node: Traditional warnings147351
Node: Implementation Details149548
Node: Implementation-defined behavior150169
Ref: Identifier characters150921
Node: Implementation limits153999
Node: Obsolete Features156673
Node: Differences from previous versions159561
Node: Invocation163769
Ref: Wtrigraphs168221
Ref: dashMF172996
Ref: fdollars-in-identifiers182707
Node: Environment Variables190870
Node: GNU Free Documentation License193836
Node: Index of Directives219000
Node: Option Index220934
Node: Concept Index227118
Node: Top1110
Node: Overview3842
Node: Character sets6675
Ref: Character sets-Footnote-18858
Node: Initial processing9039
Ref: trigraphs10598
Node: Tokenization14800
Ref: Tokenization-Footnote-121936
Node: The preprocessing language22047
Node: Header Files24925
Node: Include Syntax26841
Node: Include Operation28478
Node: Search Path30326
Node: Once-Only Headers33516
Node: Alternatives to Wrapper #ifndef35175
Node: Computed Includes36918
Node: Wrapper Headers40076
Node: System Headers42502
Node: Macros44552
Node: Object-like Macros45693
Node: Function-like Macros49283
Node: Macro Arguments50899
Node: Stringification55044
Node: Concatenation58250
Node: Variadic Macros61358
Node: Predefined Macros66145
Node: Standard Predefined Macros66733
Node: Common Predefined Macros72670
Node: System-specific Predefined Macros90173
Node: C++ Named Operators92194
Node: Undefining and Redefining Macros93158
Node: Directives Within Macro Arguments95262
Node: Macro Pitfalls96810
Node: Misnesting97343
Node: Operator Precedence Problems98455
Node: Swallowing the Semicolon100321
Node: Duplication of Side Effects102344
Node: Self-Referential Macros104527
Node: Argument Prescan106936
Node: Newlines in Arguments110690
Node: Conditionals111641
Node: Conditional Uses113471
Node: Conditional Syntax114829
Node: Ifdef115149
Node: If118310
Node: Defined120614
Node: Else121897
Node: Elif122467
Node: Deleted Code123756
Node: Diagnostics125003
Node: Line Control126620
Node: Pragmas130424
Node: Other Directives134741
Node: Preprocessor Output135791
Node: Traditional Mode138992
Node: Traditional lexical analysis140050
Node: Traditional macros142553
Node: Traditional miscellany146355
Node: Traditional warnings147352
Node: Implementation Details149549
Node: Implementation-defined behavior150170
Ref: Identifier characters150922
Node: Implementation limits154000
Node: Obsolete Features156674
Node: Differences from previous versions159562
Node: Invocation163770
Ref: Wtrigraphs168222
Ref: dashMF172997
Ref: fdollars-in-identifiers182708
Node: Environment Variables190871
Node: GNU Free Documentation License193837
Node: Index of Directives219001
Node: Option Index220935
Node: Concept Index227119
End Tag Table
@@ -1,5 +1,5 @@
This is doc/cppinternals.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/gcc/doc/cppinternals.texi.
/d//gcc-4.6.3/gcc-4.6.3/gcc/doc/cppinternals.texi.
INFO-DIR-SECTION Software development
START-INFO-DIR-ENTRY
@@ -1020,17 +1020,17 @@
Tag Table:
Node: Top971
Node: Conventions2656
Node: Lexer3598
Ref: Invalid identifiers11511
Ref: Lexing a line13460
Node: Hash Nodes18233
Node: Macro Expansion21112
Node: Token Spacing30059
Node: Line Numbering35919
Node: Guard Macros40004
Node: Files44795
Node: Concept Index48261
Node: Top972
Node: Conventions2657
Node: Lexer3599
Ref: Invalid identifiers11512
Ref: Lexing a line13461
Node: Hash Nodes18234
Node: Macro Expansion21113
Node: Token Spacing30060
Node: Line Numbering35920
Node: Guard Macros40005
Node: Files44796
Node: Concept Index48262
End Tag Table
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "FSF-FUNDING 7"
.TH FSF-FUNDING 7 "2011-10-26" "gcc-4.6.2" "GNU"
.TH FSF-FUNDING 7 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GCC 1"
.TH GCC 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GCC 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -6814,8 +6814,8 @@
bodies are read from these \s-1ELF\s0 sections and instantiated as if they
had been part of the same translation unit.
.Sp
To use the link-timer optimizer, \fB\-flto\fR needs to be specified at
compile time and during the final link. For example,
To use the link-time optimizer, \fB\-flto\fR needs to be specified at
compile time and during the final link. For example:
.Sp
.Vb 3
\& gcc \-c \-O2 \-flto foo.c
@@ -6823,25 +6823,25 @@
\& gcc \-o myprog \-flto \-O2 foo.o bar.o
.Ve
.Sp
The first two invocations to \s-1GCC\s0 will save a bytecode representation
The first two invocations to \s-1GCC\s0 save a bytecode representation
of \s-1GIMPLE\s0 into special \s-1ELF\s0 sections inside \fIfoo.o\fR and
\&\fIbar.o\fR. The final invocation will read the \s-1GIMPLE\s0 bytecode from
\&\fIfoo.o\fR and \fIbar.o\fR, merge the two files into a single
internal image, and compile the result as usual. Since both
\&\fIbar.o\fR. The final invocation reads the \s-1GIMPLE\s0 bytecode from
\&\fIfoo.o\fR and \fIbar.o\fR, merges the two files into a single
internal image, and compiles the result as usual. Since both
\&\fIfoo.o\fR and \fIbar.o\fR are merged into a single image, this
causes all the inter-procedural analyses and optimizations in \s-1GCC\s0 to
causes all the interprocedural analyses and optimizations in \s-1GCC\s0 to
work across the two files as if they were a single one. This means,
for example, that the inliner will be able to inline functions in
for example, that the inliner is able to inline functions in
\&\fIbar.o\fR into functions in \fIfoo.o\fR and vice-versa.
.Sp
Another (simpler) way to enable link-time optimization is,
Another (simpler) way to enable link-time optimization is:
.Sp
.Vb 1
\& gcc \-o myprog \-flto \-O2 foo.c bar.c
.Ve
.Sp
The above will generate bytecode for \fIfoo.c\fR and \fIbar.c\fR,
merge them together into a single \s-1GIMPLE\s0 representation and optimize
The above generates bytecode for \fIfoo.c\fR and \fIbar.c\fR,
merges them together into a single \s-1GIMPLE\s0 representation and optimizes
them as usual to produce \fImyprog\fR.
.Sp
The only important thing to keep in mind is that to enable link-time
@@ -6851,30 +6851,22 @@
To make whole program optimization effective, it is necessary to make
certain whole program assumptions. The compiler needs to know
what functions and variables can be accessed by libraries and runtime
outside of the link time optimized unit. When supported by the linker,
the linker plugin (see \fB\-fuse\-linker\-plugin\fR) passes to the
compiler information about used and externally visible symbols. When
outside of the link-time optimized unit. When supported by the linker,
the linker plugin (see \fB\-fuse\-linker\-plugin\fR) passes information
to the compiler about used and externally visible symbols. When
the linker plugin is not available, \fB\-fwhole\-program\fR should be
used to allow the compiler to make these assumptions, which will lead
used to allow the compiler to make these assumptions, which leads
to more aggressive optimization decisions.
.Sp
Note that when a file is compiled with \fB\-flto\fR, the generated
object file will be larger than a regular object file because it will
contain \s-1GIMPLE\s0 bytecodes and the usual final code. This means that
object files with \s-1LTO\s0 information can be linked as a normal object
file. So, in the previous example, if the final link is done with
object file is larger than a regular object file because it
contains \s-1GIMPLE\s0 bytecodes and the usual final code. This means that
object files with \s-1LTO\s0 information can be linked as normal object
files; if \fB\-flto\fR is not passed to the linker, no
interprocedural optimizations are applied.
.Sp
.Vb 1
\& gcc \-o myprog foo.o bar.o
.Ve
.Sp
The only difference will be that no inter-procedural optimizations
will be applied to produce \fImyprog\fR. The two object files
\&\fIfoo.o\fR and \fIbar.o\fR will be simply sent to the regular
linker.
.Sp
Additionally, the optimization flags used to compile individual files
are not necessarily related to those used at link-time. For instance,
are not necessarily related to those used at link time. For instance,
.Sp
.Vb 3
\& gcc \-c \-O0 \-flto foo.c
@@ -6882,37 +6874,42 @@
\& gcc \-o myprog \-flto \-O3 foo.o bar.o
.Ve
.Sp
This will produce individual object files with unoptimized assembler
code, but the resulting binary \fImyprog\fR will be optimized at
\&\fB\-O3\fR. Now, if the final binary is generated without
\&\fB\-flto\fR, then \fImyprog\fR will not be optimized.
This produces individual object files with unoptimized assembler
code, but the resulting binary \fImyprog\fR is optimized at
\&\fB\-O3\fR. If, instead, the final binary is generated without
\&\fB\-flto\fR, then \fImyprog\fR is not optimized.
.Sp
When producing the final binary with \fB\-flto\fR, \s-1GCC\s0 will only
apply link-time optimizations to those files that contain bytecode.
When producing the final binary with \fB\-flto\fR, \s-1GCC\s0 only
applies link-time optimizations to those files that contain bytecode.
Therefore, you can mix and match object files and libraries with
\&\s-1GIMPLE\s0 bytecodes and final object code. \s-1GCC\s0 will automatically select
\&\s-1GIMPLE\s0 bytecodes and final object code. \s-1GCC\s0 automatically selects
which files to optimize in \s-1LTO\s0 mode and which files to link without
further processing.
.Sp
There are some code generation flags that \s-1GCC\s0 will preserve when
There are some code generation flags that \s-1GCC\s0 preserves when
generating bytecodes, as they need to be used during the final link
stage. Currently, the following options are saved into the \s-1GIMPLE\s0
bytecode files: \fB\-fPIC\fR, \fB\-fcommon\fR and all the
\&\fB\-m\fR target flags.
.Sp
At link time, these options are read in and reapplied. Note that the
current implementation makes no attempt to recognize conflicting
values for these options. If different files have conflicting option
values (e.g., one file is compiled with \fB\-fPIC\fR and another
isn't), the compiler simply uses the last value read from the
bytecode files. It is recommended, then, that you compile all the files
participating in the same link with the same options.
.Sp
At link time, these options are read-in and reapplied. Note that the
current implementation makes no attempt at recognizing conflicting
values for these options. If two or more files have a conflicting
value (e.g., one file is compiled with \fB\-fPIC\fR and another
isn't), the compiler will simply use the last value read from the
bytecode files. It is recommended, then, that all the files
participating in the same link be compiled with the same options.
If \s-1LTO\s0 encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined
behavior according to \s-1ISO\s0 C99 6.2.7), a non-fatal diagnostic may be
issued. The behavior is still undefined at runtime.
.Sp
Another feature of \s-1LTO\s0 is that it is possible to apply interprocedural
optimizations on files written in different languages. This requires
some support in the language front end. Currently, the C, \*(C+ and
support in the language front end. Currently, the C, \*(C+ and
Fortran front ends are capable of emitting \s-1GIMPLE\s0 bytecodes, so
something like this should work
something like this should work:
.Sp
.Vb 4
\& gcc \-c \-flto foo.c
@@ -6924,49 +6921,43 @@
Notice that the final link is done with \fBg++\fR to get the \*(C+
runtime libraries and \fB\-lgfortran\fR is added to get the Fortran
runtime libraries. In general, when mixing languages in \s-1LTO\s0 mode, you
should use the same link command used when mixing languages in a
regular (non-LTO) compilation. This means that if your build process
was mixing languages before, all you need to add is \fB\-flto\fR to
should use the same link command options as when mixing languages in a
regular (non-LTO) compilation; all you need to add is \fB\-flto\fR to
all the compile and link commands.
.Sp
If \s-1LTO\s0 encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined
behavior according to \s-1ISO\s0 C99 6.2.7), a non-fatal diagnostic may be
issued. The behavior is still undefined at runtime.
.Sp
If object files containing \s-1GIMPLE\s0 bytecode are stored in a library archive, say
\&\fIlibfoo.a\fR, it is possible to extract and use them in an \s-1LTO\s0 link if you
are using a linker with linker plugin support. To enable this feature, use
the flag \fB\-fuse\-linker\-plugin\fR at link-time:
are using a linker with plugin support. To enable this feature, use
the flag \fB\-fuse\-linker\-plugin\fR at link time:
.Sp
.Vb 1
\& gcc \-o myprog \-O2 \-flto \-fuse\-linker\-plugin a.o b.o \-lfoo
.Ve
.Sp
With the linker plugin enabled, the linker will extract the needed
\&\s-1GIMPLE\s0 files from \fIlibfoo.a\fR and pass them on to the running \s-1GCC\s0
With the linker plugin enabled, the linker extracts the needed
\&\s-1GIMPLE\s0 files from \fIlibfoo.a\fR and passes them on to the running \s-1GCC\s0
to make them part of the aggregated \s-1GIMPLE\s0 image to be optimized.
.Sp
If you are not using a linker with linker plugin support and/or do not
enable linker plugin then the objects inside \fIlibfoo.a\fR
will be extracted and linked as usual, but they will not participate
If you are not using a linker with plugin support and/or do not
enable the linker plugin, then the objects inside \fIlibfoo.a\fR
are extracted and linked as usual, but they do not participate
in the \s-1LTO\s0 optimization process.
.Sp
Link time optimizations do not require the presence of the whole program to
Link-time optimizations do not require the presence of the whole program to
operate. If the program does not require any symbols to be exported, it is
possible to combine \fB\-flto\fR and with \fB\-fwhole\-program\fR to allow
possible to combine \fB\-flto\fR and \fB\-fwhole\-program\fR to allow
the interprocedural optimizers to use more aggressive assumptions which may
lead to improved optimization opportunities.
Use of \fB\-fwhole\-program\fR is not needed when linker plugin is
active (see \fB\-fuse\-linker\-plugin\fR).
.Sp
Regarding portability: the current implementation of \s-1LTO\s0 makes no
attempt at generating bytecode that can be ported between different
The current implementation of \s-1LTO\s0 makes no
attempt to generate bytecode that is portable between different
types of hosts. The bytecode files are versioned and there is a
strict version check, so bytecode files generated in one version of
\&\s-1GCC\s0 will not work with an older/newer version of \s-1GCC\s0.
.Sp
Link time optimization does not play well with generating debugging
Link-time optimization does not work well with generation of debugging
information. Combining \fB\-flto\fR with
\&\fB\-g\fR is currently experimental and expected to produce wrong
results.
@@ -6980,14 +6971,14 @@
You can also specify \fB\-flto=jobserver\fR to use \s-1GNU\s0 make's
job server mode to determine the number of parallel jobs. This
is useful when the Makefile calling \s-1GCC\s0 is already executing in parallel.
The parent Makefile will need a \fB+\fR prepended to the command recipe
for this to work. This will likely only work if \fB\s-1MAKE\s0\fR is
You must prepend a \fB+\fR to the command recipe in the parent Makefile
for this to work. This option likely only works if \fB\s-1MAKE\s0\fR is
\&\s-1GNU\s0 make.
.Sp
This option is disabled by default.
.IP "\fB\-flto\-partition=\fR\fIalg\fR" 4
.IX Item "-flto-partition=alg"
Specify the partitioning algorithm used by the link time optimizer.
Specify the partitioning algorithm used by the link-time optimizer.
The value is either \f(CW\*(C`1to1\*(C'\fR to specify a partitioning mirroring
the original source files or \f(CW\*(C`balanced\*(C'\fR to specify partitioning
into equally sized chunks (whenever possible). Specifying \f(CW\*(C`none\*(C'\fR
@@ -7004,27 +6995,29 @@
.IP "\fB\-flto\-report\fR" 4
.IX Item "-flto-report"
Prints a report with internal details on the workings of the link-time
optimizer. The contents of this report vary from version to version,
it is meant to be useful to \s-1GCC\s0 developers when processing object
optimizer. The contents of this report vary from version to version.
It is meant to be useful to \s-1GCC\s0 developers when processing object
files in \s-1LTO\s0 mode (via \fB\-flto\fR).
.Sp
Disabled by default.
.IP "\fB\-fuse\-linker\-plugin\fR" 4
.IX Item "-fuse-linker-plugin"
Enables the use of linker plugin during link time optimization. This option
relies on the linker plugin support in linker that is available in gold
Enables the use of a linker plugin during link-time optimization. This
option relies on the linker plugin support in linker that is available in gold
or in \s-1GNU\s0 ld 2.21 or newer.
.Sp
This option enables the extraction of object files with \s-1GIMPLE\s0 bytecode out of
library archives. This improves the quality of optimization by exposing more
code the the link time optimizer. This information specify what symbols
can be accessed externally (by non-LTO object or during dynamic linking).
Resulting code quality improvements on binaries (and shared libraries that do
use hidden visibility) is similar to \f(CW\*(C`\-fwhole\-program\*(C'\fR. See
\&\fB\-flto\fR for a description on the effect of this flag and how to use it.
.Sp
Enabled by default when \s-1LTO\s0 support in \s-1GCC\s0 is enabled and \s-1GCC\s0 was compiled
with a linker supporting plugins (\s-1GNU\s0 ld 2.21 or newer or gold).
This option enables the extraction of object files with \s-1GIMPLE\s0 bytecode out
of library archives. This improves the quality of optimization by exposing
more code to the link-time optimizer. This information specifies what
symbols can be accessed externally (by non-LTO object or during dynamic
linking). Resulting code quality improvements on binaries (and shared
libraries that use hidden visibility) are similar to \f(CW\*(C`\-fwhole\-program\*(C'\fR.
See \fB\-flto\fR for a description of the effect of this flag and how to
use it.
.Sp
This option is enabled by default when \s-1LTO\s0 support in \s-1GCC\s0 is enabled
and \s-1GCC\s0 was configured for use with
a linker supporting plugins (\s-1GNU\s0 ld 2.21 or newer or gold).
.IP "\fB\-fcompare\-elim\fR" 4
.IX Item "-fcompare-elim"
After register allocation and post-register allocation instruction splitting,
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GC-ANALYZE 1"
.TH GC-ANALYZE 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GC-ANALYZE 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GCC 1"
.TH GCC 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GCC 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -6814,8 +6814,8 @@
bodies are read from these \s-1ELF\s0 sections and instantiated as if they
had been part of the same translation unit.
.Sp
To use the link-timer optimizer, \fB\-flto\fR needs to be specified at
compile time and during the final link. For example,
To use the link-time optimizer, \fB\-flto\fR needs to be specified at
compile time and during the final link. For example:
.Sp
.Vb 3
\& gcc \-c \-O2 \-flto foo.c
@@ -6823,25 +6823,25 @@
\& gcc \-o myprog \-flto \-O2 foo.o bar.o
.Ve
.Sp
The first two invocations to \s-1GCC\s0 will save a bytecode representation
The first two invocations to \s-1GCC\s0 save a bytecode representation
of \s-1GIMPLE\s0 into special \s-1ELF\s0 sections inside \fIfoo.o\fR and
\&\fIbar.o\fR. The final invocation will read the \s-1GIMPLE\s0 bytecode from
\&\fIfoo.o\fR and \fIbar.o\fR, merge the two files into a single
internal image, and compile the result as usual. Since both
\&\fIbar.o\fR. The final invocation reads the \s-1GIMPLE\s0 bytecode from
\&\fIfoo.o\fR and \fIbar.o\fR, merges the two files into a single
internal image, and compiles the result as usual. Since both
\&\fIfoo.o\fR and \fIbar.o\fR are merged into a single image, this
causes all the inter-procedural analyses and optimizations in \s-1GCC\s0 to
causes all the interprocedural analyses and optimizations in \s-1GCC\s0 to
work across the two files as if they were a single one. This means,
for example, that the inliner will be able to inline functions in
for example, that the inliner is able to inline functions in
\&\fIbar.o\fR into functions in \fIfoo.o\fR and vice-versa.
.Sp
Another (simpler) way to enable link-time optimization is,
Another (simpler) way to enable link-time optimization is:
.Sp
.Vb 1
\& gcc \-o myprog \-flto \-O2 foo.c bar.c
.Ve
.Sp
The above will generate bytecode for \fIfoo.c\fR and \fIbar.c\fR,
merge them together into a single \s-1GIMPLE\s0 representation and optimize
The above generates bytecode for \fIfoo.c\fR and \fIbar.c\fR,
merges them together into a single \s-1GIMPLE\s0 representation and optimizes
them as usual to produce \fImyprog\fR.
.Sp
The only important thing to keep in mind is that to enable link-time
@@ -6851,30 +6851,22 @@
To make whole program optimization effective, it is necessary to make
certain whole program assumptions. The compiler needs to know
what functions and variables can be accessed by libraries and runtime
outside of the link time optimized unit. When supported by the linker,
the linker plugin (see \fB\-fuse\-linker\-plugin\fR) passes to the
compiler information about used and externally visible symbols. When
outside of the link-time optimized unit. When supported by the linker,
the linker plugin (see \fB\-fuse\-linker\-plugin\fR) passes information
to the compiler about used and externally visible symbols. When
the linker plugin is not available, \fB\-fwhole\-program\fR should be
used to allow the compiler to make these assumptions, which will lead
used to allow the compiler to make these assumptions, which leads
to more aggressive optimization decisions.
.Sp
Note that when a file is compiled with \fB\-flto\fR, the generated
object file will be larger than a regular object file because it will
contain \s-1GIMPLE\s0 bytecodes and the usual final code. This means that
object files with \s-1LTO\s0 information can be linked as a normal object
file. So, in the previous example, if the final link is done with
object file is larger than a regular object file because it
contains \s-1GIMPLE\s0 bytecodes and the usual final code. This means that
object files with \s-1LTO\s0 information can be linked as normal object
files; if \fB\-flto\fR is not passed to the linker, no
interprocedural optimizations are applied.
.Sp
.Vb 1
\& gcc \-o myprog foo.o bar.o
.Ve
.Sp
The only difference will be that no inter-procedural optimizations
will be applied to produce \fImyprog\fR. The two object files
\&\fIfoo.o\fR and \fIbar.o\fR will be simply sent to the regular
linker.
.Sp
Additionally, the optimization flags used to compile individual files
are not necessarily related to those used at link-time. For instance,
are not necessarily related to those used at link time. For instance,
.Sp
.Vb 3
\& gcc \-c \-O0 \-flto foo.c
@@ -6882,37 +6874,42 @@
\& gcc \-o myprog \-flto \-O3 foo.o bar.o
.Ve
.Sp
This will produce individual object files with unoptimized assembler
code, but the resulting binary \fImyprog\fR will be optimized at
\&\fB\-O3\fR. Now, if the final binary is generated without
\&\fB\-flto\fR, then \fImyprog\fR will not be optimized.
This produces individual object files with unoptimized assembler
code, but the resulting binary \fImyprog\fR is optimized at
\&\fB\-O3\fR. If, instead, the final binary is generated without
\&\fB\-flto\fR, then \fImyprog\fR is not optimized.
.Sp
When producing the final binary with \fB\-flto\fR, \s-1GCC\s0 will only
apply link-time optimizations to those files that contain bytecode.
When producing the final binary with \fB\-flto\fR, \s-1GCC\s0 only
applies link-time optimizations to those files that contain bytecode.
Therefore, you can mix and match object files and libraries with
\&\s-1GIMPLE\s0 bytecodes and final object code. \s-1GCC\s0 will automatically select
\&\s-1GIMPLE\s0 bytecodes and final object code. \s-1GCC\s0 automatically selects
which files to optimize in \s-1LTO\s0 mode and which files to link without
further processing.
.Sp
There are some code generation flags that \s-1GCC\s0 will preserve when
There are some code generation flags that \s-1GCC\s0 preserves when
generating bytecodes, as they need to be used during the final link
stage. Currently, the following options are saved into the \s-1GIMPLE\s0
bytecode files: \fB\-fPIC\fR, \fB\-fcommon\fR and all the
\&\fB\-m\fR target flags.
.Sp
At link time, these options are read in and reapplied. Note that the
current implementation makes no attempt to recognize conflicting
values for these options. If different files have conflicting option
values (e.g., one file is compiled with \fB\-fPIC\fR and another
isn't), the compiler simply uses the last value read from the
bytecode files. It is recommended, then, that you compile all the files
participating in the same link with the same options.
.Sp
At link time, these options are read-in and reapplied. Note that the
current implementation makes no attempt at recognizing conflicting
values for these options. If two or more files have a conflicting
value (e.g., one file is compiled with \fB\-fPIC\fR and another
isn't), the compiler will simply use the last value read from the
bytecode files. It is recommended, then, that all the files
participating in the same link be compiled with the same options.
If \s-1LTO\s0 encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined
behavior according to \s-1ISO\s0 C99 6.2.7), a non-fatal diagnostic may be
issued. The behavior is still undefined at runtime.
.Sp
Another feature of \s-1LTO\s0 is that it is possible to apply interprocedural
optimizations on files written in different languages. This requires
some support in the language front end. Currently, the C, \*(C+ and
support in the language front end. Currently, the C, \*(C+ and
Fortran front ends are capable of emitting \s-1GIMPLE\s0 bytecodes, so
something like this should work
something like this should work:
.Sp
.Vb 4
\& gcc \-c \-flto foo.c
@@ -6924,49 +6921,43 @@
Notice that the final link is done with \fBg++\fR to get the \*(C+
runtime libraries and \fB\-lgfortran\fR is added to get the Fortran
runtime libraries. In general, when mixing languages in \s-1LTO\s0 mode, you
should use the same link command used when mixing languages in a
regular (non-LTO) compilation. This means that if your build process
was mixing languages before, all you need to add is \fB\-flto\fR to
should use the same link command options as when mixing languages in a
regular (non-LTO) compilation; all you need to add is \fB\-flto\fR to
all the compile and link commands.
.Sp
If \s-1LTO\s0 encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined
behavior according to \s-1ISO\s0 C99 6.2.7), a non-fatal diagnostic may be
issued. The behavior is still undefined at runtime.
.Sp
If object files containing \s-1GIMPLE\s0 bytecode are stored in a library archive, say
\&\fIlibfoo.a\fR, it is possible to extract and use them in an \s-1LTO\s0 link if you
are using a linker with linker plugin support. To enable this feature, use
the flag \fB\-fuse\-linker\-plugin\fR at link-time:
are using a linker with plugin support. To enable this feature, use
the flag \fB\-fuse\-linker\-plugin\fR at link time:
.Sp
.Vb 1
\& gcc \-o myprog \-O2 \-flto \-fuse\-linker\-plugin a.o b.o \-lfoo
.Ve
.Sp
With the linker plugin enabled, the linker will extract the needed
\&\s-1GIMPLE\s0 files from \fIlibfoo.a\fR and pass them on to the running \s-1GCC\s0
With the linker plugin enabled, the linker extracts the needed
\&\s-1GIMPLE\s0 files from \fIlibfoo.a\fR and passes them on to the running \s-1GCC\s0
to make them part of the aggregated \s-1GIMPLE\s0 image to be optimized.
.Sp
If you are not using a linker with linker plugin support and/or do not
enable linker plugin then the objects inside \fIlibfoo.a\fR
will be extracted and linked as usual, but they will not participate
If you are not using a linker with plugin support and/or do not
enable the linker plugin, then the objects inside \fIlibfoo.a\fR
are extracted and linked as usual, but they do not participate
in the \s-1LTO\s0 optimization process.
.Sp
Link time optimizations do not require the presence of the whole program to
Link-time optimizations do not require the presence of the whole program to
operate. If the program does not require any symbols to be exported, it is
possible to combine \fB\-flto\fR and with \fB\-fwhole\-program\fR to allow
possible to combine \fB\-flto\fR and \fB\-fwhole\-program\fR to allow
the interprocedural optimizers to use more aggressive assumptions which may
lead to improved optimization opportunities.
Use of \fB\-fwhole\-program\fR is not needed when linker plugin is
active (see \fB\-fuse\-linker\-plugin\fR).
.Sp
Regarding portability: the current implementation of \s-1LTO\s0 makes no
attempt at generating bytecode that can be ported between different
The current implementation of \s-1LTO\s0 makes no
attempt to generate bytecode that is portable between different
types of hosts. The bytecode files are versioned and there is a
strict version check, so bytecode files generated in one version of
\&\s-1GCC\s0 will not work with an older/newer version of \s-1GCC\s0.
.Sp
Link time optimization does not play well with generating debugging
Link-time optimization does not work well with generation of debugging
information. Combining \fB\-flto\fR with
\&\fB\-g\fR is currently experimental and expected to produce wrong
results.
@@ -6980,14 +6971,14 @@
You can also specify \fB\-flto=jobserver\fR to use \s-1GNU\s0 make's
job server mode to determine the number of parallel jobs. This
is useful when the Makefile calling \s-1GCC\s0 is already executing in parallel.
The parent Makefile will need a \fB+\fR prepended to the command recipe
for this to work. This will likely only work if \fB\s-1MAKE\s0\fR is
You must prepend a \fB+\fR to the command recipe in the parent Makefile
for this to work. This option likely only works if \fB\s-1MAKE\s0\fR is
\&\s-1GNU\s0 make.
.Sp
This option is disabled by default.
.IP "\fB\-flto\-partition=\fR\fIalg\fR" 4
.IX Item "-flto-partition=alg"
Specify the partitioning algorithm used by the link time optimizer.
Specify the partitioning algorithm used by the link-time optimizer.
The value is either \f(CW\*(C`1to1\*(C'\fR to specify a partitioning mirroring
the original source files or \f(CW\*(C`balanced\*(C'\fR to specify partitioning
into equally sized chunks (whenever possible). Specifying \f(CW\*(C`none\*(C'\fR
@@ -7004,27 +6995,29 @@
.IP "\fB\-flto\-report\fR" 4
.IX Item "-flto-report"
Prints a report with internal details on the workings of the link-time
optimizer. The contents of this report vary from version to version,
it is meant to be useful to \s-1GCC\s0 developers when processing object
optimizer. The contents of this report vary from version to version.
It is meant to be useful to \s-1GCC\s0 developers when processing object
files in \s-1LTO\s0 mode (via \fB\-flto\fR).
.Sp
Disabled by default.
.IP "\fB\-fuse\-linker\-plugin\fR" 4
.IX Item "-fuse-linker-plugin"
Enables the use of linker plugin during link time optimization. This option
relies on the linker plugin support in linker that is available in gold
Enables the use of a linker plugin during link-time optimization. This
option relies on the linker plugin support in linker that is available in gold
or in \s-1GNU\s0 ld 2.21 or newer.
.Sp
This option enables the extraction of object files with \s-1GIMPLE\s0 bytecode out of
library archives. This improves the quality of optimization by exposing more
code the the link time optimizer. This information specify what symbols
can be accessed externally (by non-LTO object or during dynamic linking).
Resulting code quality improvements on binaries (and shared libraries that do
use hidden visibility) is similar to \f(CW\*(C`\-fwhole\-program\*(C'\fR. See
\&\fB\-flto\fR for a description on the effect of this flag and how to use it.
.Sp
Enabled by default when \s-1LTO\s0 support in \s-1GCC\s0 is enabled and \s-1GCC\s0 was compiled
with a linker supporting plugins (\s-1GNU\s0 ld 2.21 or newer or gold).
This option enables the extraction of object files with \s-1GIMPLE\s0 bytecode out
of library archives. This improves the quality of optimization by exposing
more code to the link-time optimizer. This information specifies what
symbols can be accessed externally (by non-LTO object or during dynamic
linking). Resulting code quality improvements on binaries (and shared
libraries that use hidden visibility) are similar to \f(CW\*(C`\-fwhole\-program\*(C'\fR.
See \fB\-flto\fR for a description of the effect of this flag and how to
use it.
.Sp
This option is enabled by default when \s-1LTO\s0 support in \s-1GCC\s0 is enabled
and \s-1GCC\s0 was configured for use with
a linker supporting plugins (\s-1GNU\s0 ld 2.21 or newer or gold).
.IP "\fB\-fcompare\-elim\fR" 4
.IX Item "-fcompare-elim"
After register allocation and post-register allocation instruction splitting,
@@ -1,5 +1,5 @@
This is doc/gcc.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/gcc/doc/gcc.texi.
/d//gcc-4.6.3/gcc-4.6.3/gcc/doc/gcc.texi.
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
@@ -61,7 +61,7 @@
This manual documents how to use the GNU compilers, as well as their
features and incompatibilities, and how to report bugs. It corresponds
to the compilers (GCC) version 4.6.2. The internals of the GNU
to the compilers (GCC) version 4.6.3. The internals of the GNU
compilers, including how to port them to new targets and some
information about how to write front ends for new languages, are
documented in a separate manual. *Note Introduction: (gccint)Top.
@@ -6961,31 +6961,31 @@
function bodies are read from these ELF sections and instantiated
as if they had been part of the same translation unit.
To use the link-timer optimizer, `-flto' needs to be specified at
compile time and during the final link. For example,
To use the link-time optimizer, `-flto' needs to be specified at
compile time and during the final link. For example:
gcc -c -O2 -flto foo.c
gcc -c -O2 -flto bar.c
gcc -o myprog -flto -O2 foo.o bar.o
The first two invocations to GCC will save a bytecode
representation of GIMPLE into special ELF sections inside `foo.o'
and `bar.o'. The final invocation will read the GIMPLE bytecode
from `foo.o' and `bar.o', merge the two files into a single
internal image, and compile the result as usual. Since both
`foo.o' and `bar.o' are merged into a single image, this causes
all the inter-procedural analyses and optimizations in GCC to work
across the two files as if they were a single one. This means,
for example, that the inliner will be able to inline functions in
`bar.o' into functions in `foo.o' and vice-versa.
Another (simpler) way to enable link-time optimization is,
The first two invocations to GCC save a bytecode representation of
GIMPLE into special ELF sections inside `foo.o' and `bar.o'. The
final invocation reads the GIMPLE bytecode from `foo.o' and
`bar.o', merges the two files into a single internal image, and
compiles the result as usual. Since both `foo.o' and `bar.o' are
merged into a single image, this causes all the interprocedural
analyses and optimizations in GCC to work across the two files as
if they were a single one. This means, for example, that the
inliner is able to inline functions in `bar.o' into functions in
`foo.o' and vice-versa.
Another (simpler) way to enable link-time optimization is:
gcc -o myprog -flto -O2 foo.c bar.c
The above will generate bytecode for `foo.c' and `bar.c', merge
them together into a single GIMPLE representation and optimize
them as usual to produce `myprog'.
The above generates bytecode for `foo.c' and `bar.c', merges them
together into a single GIMPLE representation and optimizes them as
usual to produce `myprog'.
The only important thing to keep in mind is that to enable
link-time optimizations the `-flto' flag needs to be passed to
@@ -6994,66 +6994,66 @@
To make whole program optimization effective, it is necessary to
make certain whole program assumptions. The compiler needs to know
what functions and variables can be accessed by libraries and
runtime outside of the link time optimized unit. When supported
runtime outside of the link-time optimized unit. When supported
by the linker, the linker plugin (see `-fuse-linker-plugin')
passes to the compiler information about used and externally
passes information to the compiler about used and externally
visible symbols. When the linker plugin is not available,
`-fwhole-program' should be used to allow the compiler to make
these assumptions, which will lead to more aggressive optimization
these assumptions, which leads to more aggressive optimization
decisions.
Note that when a file is compiled with `-flto', the generated
object file will be larger than a regular object file because it
will contain GIMPLE bytecodes and the usual final code. This
means that object files with LTO information can be linked as a
normal object file. So, in the previous example, if the final
link is done with
object file is larger than a regular object file because it
contains GIMPLE bytecodes and the usual final code. This means
that object files with LTO information can be linked as normal
object files; if `-flto' is not passed to the linker, no
interprocedural optimizations are applied.
gcc -o myprog foo.o bar.o
The only difference will be that no inter-procedural optimizations
will be applied to produce `myprog'. The two object files `foo.o'
and `bar.o' will be simply sent to the regular linker.
Additionally, the optimization flags used to compile individual
files are not necessarily related to those used at link-time. For
files are not necessarily related to those used at link time. For
instance,
gcc -c -O0 -flto foo.c
gcc -c -O0 -flto bar.c
gcc -o myprog -flto -O3 foo.o bar.o
This will produce individual object files with unoptimized
assembler code, but the resulting binary `myprog' will be
optimized at `-O3'. Now, if the final binary is generated without
`-flto', then `myprog' will not be optimized.
This produces individual object files with unoptimized assembler
code, but the resulting binary `myprog' is optimized at `-O3'.
If, instead, the final binary is generated without `-flto', then
`myprog' is not optimized.
When producing the final binary with `-flto', GCC will only apply
When producing the final binary with `-flto', GCC only applies
link-time optimizations to those files that contain bytecode.
Therefore, you can mix and match object files and libraries with
GIMPLE bytecodes and final object code. GCC will automatically
select which files to optimize in LTO mode and which files to link
without further processing.
There are some code generation flags that GCC will preserve when
GIMPLE bytecodes and final object code. GCC automatically selects
which files to optimize in LTO mode and which files to link without
further processing.
There are some code generation flags that GCC preserves when
generating bytecodes, as they need to be used during the final link
stage. Currently, the following options are saved into the GIMPLE
bytecode files: `-fPIC', `-fcommon' and all the `-m' target flags.
At link time, these options are read-in and reapplied. Note that
the current implementation makes no attempt at recognizing
conflicting values for these options. If two or more files have a
conflicting value (e.g., one file is compiled with `-fPIC' and
another isn't), the compiler will simply use the last value read
from the bytecode files. It is recommended, then, that all the
files participating in the same link be compiled with the same
At link time, these options are read in and reapplied. Note that
the current implementation makes no attempt to recognize
conflicting values for these options. If different files have
conflicting option values (e.g., one file is compiled with `-fPIC'
and another isn't), the compiler simply uses the last value read
from the bytecode files. It is recommended, then, that you
compile all the files participating in the same link with the same
options.
If LTO encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together
(undefined behavior according to ISO C99 6.2.7), a non-fatal
diagnostic may be issued. The behavior is still undefined at
runtime.
Another feature of LTO is that it is possible to apply
interprocedural optimizations on files written in different
languages. This requires some support in the language front end.
languages. This requires support in the language front end.
Currently, the C, C++ and Fortran front ends are capable of
emitting GIMPLE bytecodes, so something like this should work
emitting GIMPLE bytecodes, so something like this should work:
gcc -c -flto foo.c
g++ -c -flto bar.cc
@@ -7063,50 +7063,43 @@
Notice that the final link is done with `g++' to get the C++
runtime libraries and `-lgfortran' is added to get the Fortran
runtime libraries. In general, when mixing languages in LTO mode,
you should use the same link command used when mixing languages in
a regular (non-LTO) compilation. This means that if your build
process was mixing languages before, all you need to add is
`-flto' to all the compile and link commands.
If LTO encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together
(undefined behavior according to ISO C99 6.2.7), a non-fatal
diagnostic may be issued. The behavior is still undefined at
runtime.
you should use the same link command options as when mixing
languages in a regular (non-LTO) compilation; all you need to add
is `-flto' to all the compile and link commands.
If object files containing GIMPLE bytecode are stored in a library
archive, say `libfoo.a', it is possible to extract and use them in
an LTO link if you are using a linker with linker plugin support.
To enable this feature, use the flag `-fuse-linker-plugin' at
link-time:
an LTO link if you are using a linker with plugin support. To
enable this feature, use the flag `-fuse-linker-plugin' at link
time:
gcc -o myprog -O2 -flto -fuse-linker-plugin a.o b.o -lfoo
With the linker plugin enabled, the linker will extract the needed
GIMPLE files from `libfoo.a' and pass them on to the running GCC
With the linker plugin enabled, the linker extracts the needed
GIMPLE files from `libfoo.a' and passes them on to the running GCC
to make them part of the aggregated GIMPLE image to be optimized.
If you are not using a linker with linker plugin support and/or do
not enable linker plugin then the objects inside `libfoo.a' will
be extracted and linked as usual, but they will not participate in
the LTO optimization process.
If you are not using a linker with plugin support and/or do not
enable the linker plugin, then the objects inside `libfoo.a' are
extracted and linked as usual, but they do not participate in the
LTO optimization process.
Link time optimizations do not require the presence of the whole
Link-time optimizations do not require the presence of the whole
program to operate. If the program does not require any symbols
to be exported, it is possible to combine `-flto' and with
to be exported, it is possible to combine `-flto' and
`-fwhole-program' to allow the interprocedural optimizers to use
more aggressive assumptions which may lead to improved
optimization opportunities. Use of `-fwhole-program' is not
needed when linker plugin is active (see `-fuse-linker-plugin').
Regarding portability: the current implementation of LTO makes no
attempt at generating bytecode that can be ported between different
types of hosts. The bytecode files are versioned and there is a
strict version check, so bytecode files generated in one version of
GCC will not work with an older/newer version of GCC.
Link time optimization does not play well with generating debugging
information. Combining `-flto' with `-g' is currently
The current implementation of LTO makes no attempt to generate
bytecode that is portable between different types of hosts. The
bytecode files are versioned and there is a strict version check,
so bytecode files generated in one version of GCC will not work
with an older/newer version of GCC.
Link-time optimization does not work well with generation of
debugging information. Combining `-flto' with `-g' is currently
experimental and expected to produce wrong results.
If you specify the optional N, the optimization and code
@@ -7118,14 +7111,14 @@
You can also specify `-flto=jobserver' to use GNU make's job
server mode to determine the number of parallel jobs. This is
useful when the Makefile calling GCC is already executing in
parallel. The parent Makefile will need a `+' prepended to the
command recipe for this to work. This will likely only work if
`MAKE' is GNU make.
parallel. You must prepend a `+' to the command recipe in the
parent Makefile for this to work. This option likely only works
if `MAKE' is GNU make.
This option is disabled by default.
`-flto-partition=ALG'
Specify the partitioning algorithm used by the link time optimizer.
Specify the partitioning algorithm used by the link-time optimizer.
The value is either `1to1' to specify a partitioning mirroring the
original source files or `balanced' to specify partitioning into
equally sized chunks (whenever possible). Specifying `none' as an
@@ -7143,28 +7136,28 @@
`-flto-report'
Prints a report with internal details on the workings of the
link-time optimizer. The contents of this report vary from
version to version, it is meant to be useful to GCC developers
version to version. It is meant to be useful to GCC developers
when processing object files in LTO mode (via `-flto').
Disabled by default.
`-fuse-linker-plugin'
Enables the use of linker plugin during link time optimization.
Enables the use of a linker plugin during link-time optimization.
This option relies on the linker plugin support in linker that is
available in gold or in GNU ld 2.21 or newer.
This option enables the extraction of object files with GIMPLE
bytecode out of library archives. This improves the quality of
optimization by exposing more code the the link time optimizer.
This information specify what symbols can be accessed externally
optimization by exposing more code to the link-time optimizer.
This information specifies what symbols can be accessed externally
(by non-LTO object or during dynamic linking). Resulting code
quality improvements on binaries (and shared libraries that do use
hidden visibility) is similar to `-fwhole-program'. See `-flto'
for a description on the effect of this flag and how to use it.
quality improvements on binaries (and shared libraries that use
hidden visibility) are similar to `-fwhole-program'. See `-flto'
for a description of the effect of this flag and how to use it.
Enabled by default when LTO support in GCC is enabled and GCC was
compiled with a linker supporting plugins (GNU ld 2.21 or newer or
gold).
This option is enabled by default when LTO support in GCC is
enabled and GCC was configured for use with a linker supporting
plugins (GNU ld 2.21 or newer or gold).
`-fcompare-elim'
After register allocation and post-register allocation instruction
@@ -44326,14 +44319,14 @@
* falign-jumps: Optimize Options. (line 1444)
* falign-labels: Optimize Options. (line 1412)
* falign-loops: Optimize Options. (line 1430)
* fassociative-math: Optimize Options. (line 1875)
* fassociative-math: Optimize Options. (line 1868)
* fasynchronous-unwind-tables: Code Gen Options. (line 64)
* fauto-inc-dec: Optimize Options. (line 510)
* fbounds-check: Code Gen Options. (line 15)
* fbranch-probabilities: Optimize Options. (line 2003)
* fbranch-target-load-optimize: Optimize Options. (line 2110)
* fbranch-target-load-optimize2: Optimize Options. (line 2116)
* fbtr-bb-exclusive: Optimize Options. (line 2120)
* fbranch-probabilities: Optimize Options. (line 1996)
* fbranch-target-load-optimize: Optimize Options. (line 2103)
* fbranch-target-load-optimize2: Optimize Options. (line 2109)
* fbtr-bb-exclusive: Optimize Options. (line 2113)
* fcall-saved: Code Gen Options. (line 262)
* fcall-used: Code Gen Options. (line 248)
* fcaller-saves: Optimize Options. (line 779)
@@ -44345,7 +44338,7 @@
(line 105)
* fcompare-debug: Debugging Options. (line 156)
* fcompare-debug-second: Debugging Options. (line 182)
* fcompare-elim: Optimize Options. (line 1721)
* fcompare-elim: Optimize Options. (line 1714)
* fcond-mismatch: C Dialect Options. (line 290)
* fconserve-space: C++ Dialect Options.
(line 55)
@@ -44354,13 +44347,13 @@
(line 30)
* fconstexpr-depth: C++ Dialect Options.
(line 67)
* fcprop-registers: Optimize Options. (line 1733)
* fcprop-registers: Optimize Options. (line 1726)
* fcrossjumping: Optimize Options. (line 503)
* fcse-follow-jumps: Optimize Options. (line 431)
* fcse-skip-blocks: Optimize Options. (line 440)
* fcx-fortran-rules: Optimize Options. (line 1989)
* fcx-limited-range: Optimize Options. (line 1977)
* fdata-sections: Optimize Options. (line 2091)
* fcx-fortran-rules: Optimize Options. (line 1982)
* fcx-limited-range: Optimize Options. (line 1970)
* fdata-sections: Optimize Options. (line 2084)
* fdbg-cnt: Debugging Options. (line 420)
* fdbg-cnt-list: Debugging Options. (line 417)
* fdce: Optimize Options. (line 516)
@@ -44489,18 +44482,18 @@
* feliminate-unused-debug-types: Debugging Options. (line 1145)
* fenable-icf-debug: Debugging Options. (line 270)
* fexceptions: Code Gen Options. (line 34)
* fexcess-precision: Optimize Options. (line 1803)
* fexcess-precision: Optimize Options. (line 1796)
* fexec-charset: Preprocessor Options.
(line 508)
* fexpensive-optimizations: Optimize Options. (line 564)
* fextended-identifiers: Preprocessor Options.
(line 484)
* ffast-math: Optimize Options. (line 1826)
* ffinite-math-only: Optimize Options. (line 1901)
* ffast-math: Optimize Options. (line 1819)
* ffinite-math-only: Optimize Options. (line 1894)
* ffix-and-continue: Darwin Options. (line 106)
* ffixed: Code Gen Options. (line 236)
* ffloat-store <1>: Disappointments. (line 77)
* ffloat-store: Optimize Options. (line 1789)
* ffloat-store: Optimize Options. (line 1782)
* ffor-scope: C++ Dialect Options.
(line 121)
* fforward-propagate: Optimize Options. (line 174)
@@ -44512,7 +44505,7 @@
* ffreestanding: Standards. (line 88)
* ffriend-injection: C++ Dialect Options.
(line 91)
* ffunction-sections: Optimize Options. (line 2091)
* ffunction-sections: Optimize Options. (line 2084)
* fgcse: Optimize Options. (line 454)
* fgcse-after-reload: Optimize Options. (line 490)
* fgcse-las: Optimize Options. (line 483)
@@ -44565,7 +44558,7 @@
* floop-parallelize-all: Optimize Options. (line 1046)
* floop-strip-mine: Optimize Options. (line 982)
* flto: Optimize Options. (line 1508)
* flto-partition: Optimize Options. (line 1679)
* flto-partition: Optimize Options. (line 1672)
* fmax-errors: Warning Options. (line 18)
* fmem-report: Debugging Options. (line 311)
* fmerge-all-constants: Optimize Options. (line 337)
@@ -44575,7 +44568,7 @@
(line 15)
* fmodulo-sched: Optimize Options. (line 348)
* fmodulo-sched-allow-regmoves: Optimize Options. (line 353)
* fmove-loop-invariants: Optimize Options. (line 2081)
* fmove-loop-invariants: Optimize Options. (line 2074)
* fms-extensions <1>: Unnamed Fields. (line 36)
* fms-extensions <2>: C++ Dialect Options.
(line 156)
@@ -44632,7 +44625,7 @@
* fno-ira-share-save-slots: Optimize Options. (line 611)
* fno-ira-share-spill-slots: Optimize Options. (line 617)
* fno-jump-tables: Code Gen Options. (line 228)
* fno-math-errno: Optimize Options. (line 1840)
* fno-math-errno: Optimize Options. (line 1833)
* fno-merge-debug-strings: Debugging Options. (line 275)
* fno-nil-receivers: Objective-C and Objective-C++ Dialect Options.
(line 49)
@@ -44655,12 +44648,12 @@
* fno-show-column: Preprocessor Options.
(line 546)
* fno-signed-bitfields: C Dialect Options. (line 328)
* fno-signed-zeros: Optimize Options. (line 1913)
* fno-signed-zeros: Optimize Options. (line 1906)
* fno-stack-limit: Code Gen Options. (line 400)
* fno-threadsafe-statics: C++ Dialect Options.
(line 240)
* fno-toplevel-reorder: Optimize Options. (line 1464)
* fno-trapping-math: Optimize Options. (line 1923)
* fno-trapping-math: Optimize Options. (line 1916)
* fno-unsigned-bitfields: C Dialect Options. (line 328)
* fno-use-cxa-get-exception-ptr: C++ Dialect Options.
(line 253)
@@ -44702,7 +44695,7 @@
(line 282)
* fpch-preprocess: Preprocessor Options.
(line 290)
* fpeel-loops: Optimize Options. (line 2073)
* fpeel-loops: Optimize Options. (line 2066)
* fpermissive: C++ Dialect Options.
(line 186)
* fPIC: Code Gen Options. (line 205)
@@ -44718,18 +44711,18 @@
(line 489)
* fprofile-arcs <1>: Other Builtins. (line 247)
* fprofile-arcs: Debugging Options. (line 352)
* fprofile-correction: Optimize Options. (line 1740)
* fprofile-dir: Optimize Options. (line 1747)
* fprofile-generate: Optimize Options. (line 1757)
* fprofile-use: Optimize Options. (line 1770)
* fprofile-values: Optimize Options. (line 2022)
* fprofile-correction: Optimize Options. (line 1733)
* fprofile-dir: Optimize Options. (line 1740)
* fprofile-generate: Optimize Options. (line 1750)
* fprofile-use: Optimize Options. (line 1763)
* fprofile-values: Optimize Options. (line 2015)
* fpu: RX Options. (line 17)
* frandom-seed: Debugging Options. (line 950)
* freciprocal-math: Optimize Options. (line 1892)
* freciprocal-math: Optimize Options. (line 1885)
* frecord-gcc-switches: Code Gen Options. (line 174)
* freg-struct-return: Code Gen Options. (line 88)
* fregmove: Optimize Options. (line 571)
* frename-registers: Optimize Options. (line 2040)
* frename-registers: Optimize Options. (line 2033)
* freorder-blocks: Optimize Options. (line 1283)
* freorder-blocks-and-partition: Optimize Options. (line 1289)
* freorder-functions: Optimize Options. (line 1300)
@@ -44741,7 +44734,7 @@
(line 204)
* frerun-cse-after-loop: Optimize Options. (line 448)
* freschedule-modulo-scheduled-loops: Optimize Options. (line 755)
* frounding-math: Optimize Options. (line 1938)
* frounding-math: Optimize Options. (line 1931)
* fsched-critical-path-heuristic: Optimize Options. (line 721)
* fsched-dep-count-heuristic: Optimize Options. (line 748)
* fsched-group-heuristic: Optimize Options. (line 715)
@@ -44757,7 +44750,7 @@
* fsched2-use-superblocks: Optimize Options. (line 704)
* fschedule-insns: Optimize Options. (line 635)
* fschedule-insns2: Optimize Options. (line 645)
* fsection-anchors: Optimize Options. (line 2136)
* fsection-anchors: Optimize Options. (line 2129)
* fsel-sched-pipelining: Optimize Options. (line 769)
* fsel-sched-pipelining-outer-loops: Optimize Options. (line 774)
* fselective-scheduling: Optimize Options. (line 761)
@@ -44769,13 +44762,13 @@
(line 43)
* fshort-enums: Code Gen Options. (line 106)
* fshort-wchar: Code Gen Options. (line 125)
* fsignaling-nans: Optimize Options. (line 1958)
* fsignaling-nans: Optimize Options. (line 1951)
* fsigned-bitfields <1>: Non-bugs. (line 57)
* fsigned-bitfields: C Dialect Options. (line 328)
* fsigned-char <1>: Characters implementation.
(line 31)
* fsigned-char: C Dialect Options. (line 318)
* fsingle-precision-constant: Optimize Options. (line 1973)
* fsingle-precision-constant: Optimize Options. (line 1966)
* fsplit-ivs-in-unroller: Optimize Options. (line 1213)
* fsplit-stack <1>: Function Attributes.
(line 904)
@@ -44784,8 +44777,8 @@
* fstack-check: Code Gen Options. (line 361)
* fstack-limit-register: Code Gen Options. (line 400)
* fstack-limit-symbol: Code Gen Options. (line 400)
* fstack-protector: Optimize Options. (line 2124)
* fstack-protector-all: Optimize Options. (line 2133)
* fstack-protector: Optimize Options. (line 2117)
* fstack-protector-all: Optimize Options. (line 2126)
* fstack-usage: Debugging Options. (line 321)
* fstats: C++ Dialect Options.
(line 219)
@@ -44837,7 +44830,7 @@
* funroll-all-loops: Optimize Options. (line 1207)
* funroll-loops: Optimize Options. (line 1201)
* funsafe-loop-optimizations: Optimize Options. (line 495)
* funsafe-math-optimizations: Optimize Options. (line 1858)
* funsafe-math-optimizations: Optimize Options. (line 1851)
* funsigned-bitfields <1>: Non-bugs. (line 57)
* funsigned-bitfields <2>: Structures unions enumerations and bit-fields implementation.
(line 17)
@@ -44845,7 +44838,7 @@
* funsigned-char <1>: Characters implementation.
(line 31)
* funsigned-char: C Dialect Options. (line 300)
* funswitch-loops: Optimize Options. (line 2085)
* funswitch-loops: Optimize Options. (line 2078)
* funwind-tables: Code Gen Options. (line 57)
* fuse-cxa-atexit: C++ Dialect Options.
(line 246)
@@ -44860,7 +44853,7 @@
(line 258)
* fvisibility-ms-compat: C++ Dialect Options.
(line 286)
* fvpt: Optimize Options. (line 2031)
* fvpt: Optimize Options. (line 2024)
* fweb: Optimize Options. (line 1476)
* fwhole-program: Optimize Options. (line 1487)
* fwide-exec-charset: Preprocessor Options.
@@ -45325,7 +45318,7 @@
* mfpe: ARM Options. (line 120)
* mfpmath <1>: i386 and x86-64 Options.
(line 174)
* mfpmath: Optimize Options. (line 1818)
* mfpmath: Optimize Options. (line 1811)
* mfpr-32: FRV Options. (line 13)
* mfpr-64: FRV Options. (line 16)
* mfprnd: RS/6000 and PowerPC Options.
@@ -46220,7 +46213,7 @@
(line 603)
* p: Debugging Options. (line 291)
* pagezero_size: Darwin Options. (line 199)
* param: Optimize Options. (line 2160)
* param: Optimize Options. (line 2153)
* pass-exit-codes: Overall Options. (line 150)
* pedantic <1>: Warnings and Errors.
(line 25)
@@ -47312,7 +47305,7 @@
* flexible array members: Zero Length. (line 6)
* float as function value type: Incompatibilities. (line 141)
* floating point precision <1>: Disappointments. (line 68)
* floating point precision: Optimize Options. (line 1793)
* floating point precision: Optimize Options. (line 1786)
* floor: Other Builtins. (line 6)
* floorf: Other Builtins. (line 6)
* floorl: Other Builtins. (line 6)
@@ -48329,290 +48322,290 @@
Tag Table:
Node: Top2086
Node: G++ and GCC3852
Node: Standards5921
Node: Invoking GCC18088
Node: Option Summary21839
Node: Overall Options58540
Node: Invoking G++72876
Node: C Dialect Options74399
Node: C++ Dialect Options89479
Node: Objective-C and Objective-C++ Dialect Options114479
Node: Language Independent Options125018
Node: Warning Options127942
Node: Debugging Options191608
Node: Optimize Options239388
Ref: Type-punning295426
Node: Preprocessor Options368155
Ref: Wtrigraphs372253
Ref: dashMF377001
Ref: fdollars-in-identifiers387845
Node: Assembler Options396406
Node: Link Options397111
Ref: Link Options-Footnote-1407469
Node: Directory Options407803
Node: Spec Files414092
Node: Target Options435688
Node: Submodel Options436087
Node: ARC Options437706
Node: ARM Options438896
Node: AVR Options452627
Node: Blackfin Options458205
Node: CRIS Options466153
Node: CRX Options469894
Node: Darwin Options470319
Node: DEC Alpha Options477811
Node: DEC Alpha/VMS Options489727
Node: FR30 Options490301
Node: FRV Options490876
Node: GNU/Linux Options497593
Node: H8/300 Options498854
Node: HPPA Options499921
Node: i386 and x86-64 Options509421
Node: i386 and x86-64 Windows Options540581
Node: IA-64 Options543129
Node: IA-64/VMS Options551147
Node: LM32 Options551702
Node: M32C Options552231
Node: M32R/D Options553521
Node: M680x0 Options557108
Node: M68hc1x Options571115
Node: MCore Options572684
Node: MeP Options574191
Node: MicroBlaze Options578164
Node: MIPS Options580735
Node: MMIX Options608655
Node: MN10300 Options611137
Node: PDP-11 Options613345
Node: picoChip Options615039
Node: PowerPC Options617238
Node: RS/6000 and PowerPC Options617474
Node: RX Options654216
Node: S/390 and zSeries Options659788
Node: Score Options667719
Node: SH Options668547
Node: Solaris 2 Options679686
Node: SPARC Options681206
Node: SPU Options691024
Node: System V Options696028
Node: V850 Options696851
Node: VAX Options700430
Node: VxWorks Options700978
Node: x86-64 Options702133
Node: Xstormy16 Options702351
Node: Xtensa Options702640
Node: zSeries Options706974
Node: Code Gen Options707170
Node: Environment Variables733601
Node: Precompiled Headers741497
Node: C Implementation747696
Node: Translation implementation749359
Node: Environment implementation749933
Node: Identifiers implementation750483
Node: Characters implementation751537
Node: Integers implementation754343
Node: Floating point implementation756168
Node: Arrays and pointers implementation759097
Ref: Arrays and pointers implementation-Footnote-1760532
Node: Hints implementation760656
Node: Structures unions enumerations and bit-fields implementation762122
Node: Qualifiers implementation764108
Node: Declarators implementation765880
Node: Statements implementation766222
Node: Preprocessing directives implementation766549
Node: Library functions implementation768654
Node: Architecture implementation769294
Node: Locale-specific behavior implementation769997
Node: C++ Implementation770302
Node: Conditionally-supported behavior771582
Node: Exception handling772092
Node: C Extensions772501
Node: Statement Exprs777336
Node: Local Labels781849
Node: Labels as Values784828
Ref: Labels as Values-Footnote-1787237
Node: Nested Functions787420
Node: Constructing Calls791353
Node: Typeof796084
Node: Conditionals799399
Node: __int128800290
Node: Long Long800810
Node: Complex802312
Node: Floating Types804883
Node: Half-Precision806021
Node: Decimal Float808203
Node: Hex Floats810070
Node: Fixed-Point811111
Node: Named Address Spaces814405
Node: Zero Length815704
Node: Empty Structures818991
Node: Variable Length819407
Node: Variadic Macros822060
Node: Escaped Newlines824442
Node: Subscripting825281
Node: Pointer Arith826004
Node: Initializers826572
Node: Compound Literals827068
Node: Designated Inits829243
Node: Case Ranges832898
Node: Cast to Union833581
Node: Mixed Declarations834677
Node: Function Attributes835183
Node: Attribute Syntax916163
Node: Function Prototypes926609
Node: C++ Comments928390
Node: Dollar Signs928909
Node: Character Escapes929374
Node: Variable Attributes929668
Ref: MeP Variable Attributes944994
Ref: i386 Variable Attributes946955
Node: Type Attributes952648
Ref: MeP Type Attributes966389
Ref: i386 Type Attributes966663
Ref: PowerPC Type Attributes967503
Ref: SPU Type Attributes968365
Node: Alignment968656
Node: Inline970030
Node: Volatiles975014
Node: Extended Asm977909
Ref: Example of asm with clobbered asm reg983998
Ref: Extended asm with goto993765
Node: Constraints1001500
Node: Simple Constraints1002584
Node: Multi-Alternative1009905
Node: Modifiers1011622
Node: Machine Constraints1014516
Node: Asm Labels1053160
Node: Explicit Reg Vars1054836
Node: Global Reg Vars1056444
Node: Local Reg Vars1060994
Node: Alternate Keywords1063435
Node: Incomplete Enums1064921
Node: Function Names1065678
Node: Return Address1067840
Node: Vector Extensions1071393
Node: Offsetof1075799
Node: Atomic Builtins1076613
Node: Object Size Checking1081991
Node: Other Builtins1087419
Node: Target Builtins1114099
Node: Alpha Built-in Functions1115023
Node: ARM iWMMXt Built-in Functions1118022
Node: ARM NEON Intrinsics1124741
Node: Blackfin Built-in Functions1330941
Node: FR-V Built-in Functions1331555
Node: Argument Types1332414
Node: Directly-mapped Integer Functions1334170
Node: Directly-mapped Media Functions1335252
Node: Raw read/write Functions1342284
Node: Other Built-in Functions1343196
Node: X86 Built-in Functions1344385
Node: MIPS DSP Built-in Functions1389521
Node: MIPS Paired-Single Support1401968
Node: MIPS Loongson Built-in Functions1403469
Node: Paired-Single Arithmetic1409987
Node: Paired-Single Built-in Functions1410933
Node: MIPS-3D Built-in Functions1413603
Node: picoChip Built-in Functions1418978
Node: Other MIPS Built-in Functions1420344
Node: PowerPC AltiVec/VSX Built-in Functions1420868
Node: RX Built-in Functions1531526
Node: SPARC VIS Built-in Functions1535536
Node: SPU Built-in Functions1537215
Node: Target Format Checks1538997
Node: Solaris Format Checks1539429
Node: Darwin Format Checks1539855
Node: Pragmas1540682
Node: ARM Pragmas1541392
Node: M32C Pragmas1541995
Node: MeP Pragmas1543069
Node: RS/6000 and PowerPC Pragmas1545138
Node: Darwin Pragmas1545879
Node: Solaris Pragmas1546946
Node: Symbol-Renaming Pragmas1548107
Node: Structure-Packing Pragmas1550741
Node: Weak Pragmas1552391
Node: Diagnostic Pragmas1553125
Node: Visibility Pragmas1556153
Node: Push/Pop Macro Pragmas1556905
Node: Function Specific Option Pragmas1557878
Node: Unnamed Fields1560142
Node: Thread-Local1562380
Node: C99 Thread-Local Edits1564487
Node: C++98 Thread-Local Edits1566499
Node: Binary constants1569944
Node: C++ Extensions1570615
Node: C++ Volatiles1572263
Node: Restricted Pointers1574623
Node: Vague Linkage1576221
Node: C++ Interface1579883
Ref: C++ Interface-Footnote-11584180
Node: Template Instantiation1584317
Node: Bound member functions1591329
Node: C++ Attributes1592872
Node: Namespace Association1594530
Node: Type Traits1595944
Node: Java Exceptions1602299
Node: Deprecated Features1603696
Node: Backwards Compatibility1606661
Node: Objective-C1608019
Node: GNU Objective-C runtime API1608628
Node: Modern GNU Objective-C runtime API1609635
Node: Traditional GNU Objective-C runtime API1612072
Node: Executing code before main1613694
Node: What you can and what you cannot do in +load1616432
Node: Type encoding1618822
Node: Legacy type encoding1623898
Node: @encode1624989
Node: Method signatures1625530
Node: Garbage Collection1627525
Node: Constant string objects1630159
Node: compatibility_alias1632667
Node: Exceptions1633389
Node: Synchronization1636100
Node: Fast enumeration1637284
Node: Using fast enumeration1637596
Node: c99-like fast enumeration syntax1638807
Node: Fast enumeration details1639510
Node: Fast enumeration protocol1641851
Node: Messaging with the GNU Objective-C runtime1645003
Node: Dynamically registering methods1646374
Node: Forwarding hook1648065
Node: Compatibility1651104
Node: Gcov1657671
Node: Gcov Intro1658204
Node: Invoking Gcov1660922
Node: Gcov and Optimization1672862
Node: Gcov Data Files1675517
Node: Cross-profiling1676657
Node: Trouble1678508
Node: Actual Bugs1679993
Node: Cross-Compiler Problems1680449
Node: Interoperation1680863
Node: Incompatibilities1688000
Node: Fixed Headers1696151
Node: Standard Libraries1697814
Node: Disappointments1699186
Node: C++ Misunderstandings1703544
Node: Static Definitions1704355
Node: Name lookup1705408
Ref: Name lookup-Footnote-11710186
Node: Temporaries1710373
Node: Copy Assignment1712349
Node: Non-bugs1714156
Node: Warnings and Errors1724663
Node: Bugs1726427
Node: Bug Criteria1726991
Node: Bug Reporting1729201
Node: Service1729422
Node: Contributing1730241
Node: Funding1730981
Node: GNU Project1733470
Node: Copying1734116
Node: GNU Free Documentation License1771644
Node: Contributors1796781
Node: Option Index1833650
Node: Keyword Index2010454
Node: Top2087
Node: G++ and GCC3853
Node: Standards5922
Node: Invoking GCC18089
Node: Option Summary21840
Node: Overall Options58541
Node: Invoking G++72877
Node: C Dialect Options74400
Node: C++ Dialect Options89480
Node: Objective-C and Objective-C++ Dialect Options114480
Node: Language Independent Options125019
Node: Warning Options127943
Node: Debugging Options191609
Node: Optimize Options239389
Ref: Type-punning295427
Node: Preprocessor Options367801
Ref: Wtrigraphs371899
Ref: dashMF376647
Ref: fdollars-in-identifiers387491
Node: Assembler Options396052
Node: Link Options396757
Ref: Link Options-Footnote-1407115
Node: Directory Options407449
Node: Spec Files413738
Node: Target Options435334
Node: Submodel Options435733
Node: ARC Options437352
Node: ARM Options438542
Node: AVR Options452273
Node: Blackfin Options457851
Node: CRIS Options465799
Node: CRX Options469540
Node: Darwin Options469965
Node: DEC Alpha Options477457
Node: DEC Alpha/VMS Options489373
Node: FR30 Options489947
Node: FRV Options490522
Node: GNU/Linux Options497239
Node: H8/300 Options498500
Node: HPPA Options499567
Node: i386 and x86-64 Options509067
Node: i386 and x86-64 Windows Options540227
Node: IA-64 Options542775
Node: IA-64/VMS Options550793
Node: LM32 Options551348
Node: M32C Options551877
Node: M32R/D Options553167
Node: M680x0 Options556754
Node: M68hc1x Options570761
Node: MCore Options572330
Node: MeP Options573837
Node: MicroBlaze Options577810
Node: MIPS Options580381
Node: MMIX Options608301
Node: MN10300 Options610783
Node: PDP-11 Options612991
Node: picoChip Options614685
Node: PowerPC Options616884
Node: RS/6000 and PowerPC Options617120
Node: RX Options653862
Node: S/390 and zSeries Options659434
Node: Score Options667365
Node: SH Options668193
Node: Solaris 2 Options679332
Node: SPARC Options680852
Node: SPU Options690670
Node: System V Options695674
Node: V850 Options696497
Node: VAX Options700076
Node: VxWorks Options700624
Node: x86-64 Options701779
Node: Xstormy16 Options701997
Node: Xtensa Options702286
Node: zSeries Options706620
Node: Code Gen Options706816
Node: Environment Variables733247
Node: Precompiled Headers741143
Node: C Implementation747342
Node: Translation implementation749005
Node: Environment implementation749579
Node: Identifiers implementation750129
Node: Characters implementation751183
Node: Integers implementation753989
Node: Floating point implementation755814
Node: Arrays and pointers implementation758743
Ref: Arrays and pointers implementation-Footnote-1760178
Node: Hints implementation760302
Node: Structures unions enumerations and bit-fields implementation761768
Node: Qualifiers implementation763754
Node: Declarators implementation765526
Node: Statements implementation765868
Node: Preprocessing directives implementation766195
Node: Library functions implementation768300
Node: Architecture implementation768940
Node: Locale-specific behavior implementation769643
Node: C++ Implementation769948
Node: Conditionally-supported behavior771228
Node: Exception handling771738
Node: C Extensions772147
Node: Statement Exprs776982
Node: Local Labels781495
Node: Labels as Values784474
Ref: Labels as Values-Footnote-1786883
Node: Nested Functions787066
Node: Constructing Calls790999
Node: Typeof795730
Node: Conditionals799045
Node: __int128799936
Node: Long Long800456
Node: Complex801958
Node: Floating Types804529
Node: Half-Precision805667
Node: Decimal Float807849
Node: Hex Floats809716
Node: Fixed-Point810757
Node: Named Address Spaces814051
Node: Zero Length815350
Node: Empty Structures818637
Node: Variable Length819053
Node: Variadic Macros821706
Node: Escaped Newlines824088
Node: Subscripting824927
Node: Pointer Arith825650
Node: Initializers826218
Node: Compound Literals826714
Node: Designated Inits828889
Node: Case Ranges832544
Node: Cast to Union833227
Node: Mixed Declarations834323
Node: Function Attributes834829
Node: Attribute Syntax915809
Node: Function Prototypes926255
Node: C++ Comments928036
Node: Dollar Signs928555
Node: Character Escapes929020
Node: Variable Attributes929314
Ref: MeP Variable Attributes944640
Ref: i386 Variable Attributes946601
Node: Type Attributes952294
Ref: MeP Type Attributes966035
Ref: i386 Type Attributes966309
Ref: PowerPC Type Attributes967149
Ref: SPU Type Attributes968011
Node: Alignment968302
Node: Inline969676
Node: Volatiles974660
Node: Extended Asm977555
Ref: Example of asm with clobbered asm reg983644
Ref: Extended asm with goto993411
Node: Constraints1001146
Node: Simple Constraints1002230
Node: Multi-Alternative1009551
Node: Modifiers1011268
Node: Machine Constraints1014162
Node: Asm Labels1052806
Node: Explicit Reg Vars1054482
Node: Global Reg Vars1056090
Node: Local Reg Vars1060640
Node: Alternate Keywords1063081
Node: Incomplete Enums1064567
Node: Function Names1065324
Node: Return Address1067486
Node: Vector Extensions1071039
Node: Offsetof1075445
Node: Atomic Builtins1076259
Node: Object Size Checking1081637
Node: Other Builtins1087065
Node: Target Builtins1113745
Node: Alpha Built-in Functions1114669
Node: ARM iWMMXt Built-in Functions1117668
Node: ARM NEON Intrinsics1124387
Node: Blackfin Built-in Functions1330587
Node: FR-V Built-in Functions1331201
Node: Argument Types1332060
Node: Directly-mapped Integer Functions1333816
Node: Directly-mapped Media Functions1334898
Node: Raw read/write Functions1341930
Node: Other Built-in Functions1342842
Node: X86 Built-in Functions1344031
Node: MIPS DSP Built-in Functions1389167
Node: MIPS Paired-Single Support1401614
Node: MIPS Loongson Built-in Functions1403115
Node: Paired-Single Arithmetic1409633
Node: Paired-Single Built-in Functions1410579
Node: MIPS-3D Built-in Functions1413249
Node: picoChip Built-in Functions1418624
Node: Other MIPS Built-in Functions1419990
Node: PowerPC AltiVec/VSX Built-in Functions1420514
Node: RX Built-in Functions1531172
Node: SPARC VIS Built-in Functions1535182
Node: SPU Built-in Functions1536861
Node: Target Format Checks1538643
Node: Solaris Format Checks1539075
Node: Darwin Format Checks1539501
Node: Pragmas1540328
Node: ARM Pragmas1541038
Node: M32C Pragmas1541641
Node: MeP Pragmas1542715
Node: RS/6000 and PowerPC Pragmas1544784
Node: Darwin Pragmas1545525
Node: Solaris Pragmas1546592
Node: Symbol-Renaming Pragmas1547753
Node: Structure-Packing Pragmas1550387
Node: Weak Pragmas1552037
Node: Diagnostic Pragmas1552771
Node: Visibility Pragmas1555799
Node: Push/Pop Macro Pragmas1556551
Node: Function Specific Option Pragmas1557524
Node: Unnamed Fields1559788
Node: Thread-Local1562026
Node: C99 Thread-Local Edits1564133
Node: C++98 Thread-Local Edits1566145
Node: Binary constants1569590
Node: C++ Extensions1570261
Node: C++ Volatiles1571909
Node: Restricted Pointers1574269
Node: Vague Linkage1575867
Node: C++ Interface1579529
Ref: C++ Interface-Footnote-11583826
Node: Template Instantiation1583963
Node: Bound member functions1590975
Node: C++ Attributes1592518
Node: Namespace Association1594176
Node: Type Traits1595590
Node: Java Exceptions1601945
Node: Deprecated Features1603342
Node: Backwards Compatibility1606307
Node: Objective-C1607665
Node: GNU Objective-C runtime API1608274
Node: Modern GNU Objective-C runtime API1609281
Node: Traditional GNU Objective-C runtime API1611718
Node: Executing code before main1613340
Node: What you can and what you cannot do in +load1616078
Node: Type encoding1618468
Node: Legacy type encoding1623544
Node: @encode1624635
Node: Method signatures1625176
Node: Garbage Collection1627171
Node: Constant string objects1629805
Node: compatibility_alias1632313
Node: Exceptions1633035
Node: Synchronization1635746
Node: Fast enumeration1636930
Node: Using fast enumeration1637242
Node: c99-like fast enumeration syntax1638453
Node: Fast enumeration details1639156
Node: Fast enumeration protocol1641497
Node: Messaging with the GNU Objective-C runtime1644649
Node: Dynamically registering methods1646020
Node: Forwarding hook1647711
Node: Compatibility1650750
Node: Gcov1657317
Node: Gcov Intro1657850
Node: Invoking Gcov1660568
Node: Gcov and Optimization1672508
Node: Gcov Data Files1675163
Node: Cross-profiling1676303
Node: Trouble1678154
Node: Actual Bugs1679639
Node: Cross-Compiler Problems1680095
Node: Interoperation1680509
Node: Incompatibilities1687646
Node: Fixed Headers1695797
Node: Standard Libraries1697460
Node: Disappointments1698832
Node: C++ Misunderstandings1703190
Node: Static Definitions1704001
Node: Name lookup1705054
Ref: Name lookup-Footnote-11709832
Node: Temporaries1710019
Node: Copy Assignment1711995
Node: Non-bugs1713802
Node: Warnings and Errors1724309
Node: Bugs1726073
Node: Bug Criteria1726637
Node: Bug Reporting1728847
Node: Service1729068
Node: Contributing1729887
Node: Funding1730627
Node: GNU Project1733116
Node: Copying1733762
Node: GNU Free Documentation License1771290
Node: Contributors1796427
Node: Option Index1833296
Node: Keyword Index2010100
End Tag Table
@@ -1,5 +1,5 @@
This is doc/gccinstall.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/gcc/doc/install.texi.
/d//gcc-4.6.3/gcc-4.6.3/gcc/doc/install.texi.
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
@@ -4524,89 +4524,89 @@
Tag Table:
Node: Top1963
Node: Installing GCC2521
Node: Prerequisites4036
Node: Downloading the source14192
Node: Configuration16129
Ref: with-gnu-as30272
Ref: with-as31170
Ref: with-gnu-ld32583
Node: Building77511
Node: Testing92996
Node: Final install100693
Node: Binaries106007
Node: Specific107608
Ref: alpha-x-x108114
Ref: alpha-dec-osf51108603
Ref: arc-x-elf110801
Ref: arm-x-elf110901
Ref: avr111121
Ref: bfin111761
Ref: cris112003
Ref: crx112819
Ref: dos113497
Ref: x-x-freebsd113820
Ref: h8300-hms115657
Ref: hppa-hp-hpux116009
Ref: hppa-hp-hpux10118380
Ref: hppa-hp-hpux11118793
Ref: x-x-linux-gnu124452
Ref: ix86-x-linux124645
Ref: ix86-x-solaris289124958
Ref: ix86-x-solaris210125802
Ref: ia64-x-linux127028
Ref: ia64-x-hpux127798
Ref: x-ibm-aix128353
Ref: iq2000-x-elf134591
Ref: lm32-x-elf134731
Ref: lm32-x-uclinux134835
Ref: m32c-x-elf134963
Ref: m32r-x-elf135065
Ref: m6811-elf135167
Ref: m6812-elf135317
Ref: m68k-x-x135467
Ref: m68k-x-uclinux136439
Ref: mep-x-elf136802
Ref: microblaze-x-elf136912
Ref: mips-x-x137031
Ref: mips-sgi-irix5139708
Ref: mips-sgi-irix6139788
Ref: moxie-x-elf142856
Ref: powerpc-x-x142976
Ref: powerpc-x-darwin143181
Ref: powerpc-x-elf143675
Ref: powerpc-x-linux-gnu143760
Ref: powerpc-x-netbsd143855
Ref: powerpc-x-eabisim143943
Ref: powerpc-x-eabi144069
Ref: powerpcle-x-elf144145
Ref: powerpcle-x-eabisim144237
Ref: powerpcle-x-eabi144370
Ref: rx-x-elf144453
Ref: s390-x-linux144652
Ref: s390x-x-linux144724
Ref: s390x-ibm-tpf144811
Ref: x-x-solaris2144942
Ref: sparc-x-x150090
Ref: sparc-sun-solaris2150592
Ref: sparc-sun-solaris210153346
Ref: sparc-x-linux153722
Ref: sparc64-x-solaris2153947
Ref: sparcv9-x-solaris2154583
Ref: x-x-vxworks154670
Ref: x86-64-x-x156192
Ref: xtensa-x-elf156520
Ref: xtensa-x-linux157191
Ref: windows157532
Ref: x-x-cygwin159489
Ref: x-x-interix160042
Ref: x-x-mingw32160351
Ref: older160577
Ref: elf162694
Node: Old162952
Node: Configurations166089
Node: GNU Free Documentation License170071
Node: Concept Index195218
Node: Top1964
Node: Installing GCC2522
Node: Prerequisites4037
Node: Downloading the source14193
Node: Configuration16130
Ref: with-gnu-as30273
Ref: with-as31171
Ref: with-gnu-ld32584
Node: Building77512
Node: Testing92997
Node: Final install100694
Node: Binaries106008
Node: Specific107609
Ref: alpha-x-x108115
Ref: alpha-dec-osf51108604
Ref: arc-x-elf110802
Ref: arm-x-elf110902
Ref: avr111122
Ref: bfin111762
Ref: cris112004
Ref: crx112820
Ref: dos113498
Ref: x-x-freebsd113821
Ref: h8300-hms115658
Ref: hppa-hp-hpux116010
Ref: hppa-hp-hpux10118381
Ref: hppa-hp-hpux11118794
Ref: x-x-linux-gnu124453
Ref: ix86-x-linux124646
Ref: ix86-x-solaris289124959
Ref: ix86-x-solaris210125803
Ref: ia64-x-linux127029
Ref: ia64-x-hpux127799
Ref: x-ibm-aix128354
Ref: iq2000-x-elf134592
Ref: lm32-x-elf134732
Ref: lm32-x-uclinux134836
Ref: m32c-x-elf134964
Ref: m32r-x-elf135066
Ref: m6811-elf135168
Ref: m6812-elf135318
Ref: m68k-x-x135468
Ref: m68k-x-uclinux136440
Ref: mep-x-elf136803
Ref: microblaze-x-elf136913
Ref: mips-x-x137032
Ref: mips-sgi-irix5139709
Ref: mips-sgi-irix6139789
Ref: moxie-x-elf142857
Ref: powerpc-x-x142977
Ref: powerpc-x-darwin143182
Ref: powerpc-x-elf143676
Ref: powerpc-x-linux-gnu143761
Ref: powerpc-x-netbsd143856
Ref: powerpc-x-eabisim143944
Ref: powerpc-x-eabi144070
Ref: powerpcle-x-elf144146
Ref: powerpcle-x-eabisim144238
Ref: powerpcle-x-eabi144371
Ref: rx-x-elf144454
Ref: s390-x-linux144653
Ref: s390x-x-linux144725
Ref: s390x-ibm-tpf144812
Ref: x-x-solaris2144943
Ref: sparc-x-x150091
Ref: sparc-sun-solaris2150593
Ref: sparc-sun-solaris210153347
Ref: sparc-x-linux153723
Ref: sparc64-x-solaris2153948
Ref: sparcv9-x-solaris2154584
Ref: x-x-vxworks154671
Ref: x86-64-x-x156193
Ref: xtensa-x-elf156521
Ref: xtensa-x-linux157192
Ref: windows157533
Ref: x-x-cygwin159490
Ref: x-x-interix160043
Ref: x-x-mingw32160352
Ref: older160578
Ref: elf162695
Node: Old162953
Node: Configurations166090
Node: GNU Free Documentation License170072
Node: Concept Index195219
End Tag Table
@@ -1,5 +1,5 @@
This is doc/gccint.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/gcc/doc/gccint.texi.
/d//gcc-4.6.3/gcc-4.6.3/gcc/doc/gccint.texi.
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 Free
@@ -61,7 +61,7 @@
This manual documents the internals of the GNU compilers, including how
to port them to new targets and some information about how to write
front ends for new languages. It corresponds to the compilers
(GCC) version 4.6.2. The use of the GNU compilers is documented in a
(GCC) version 4.6.3. The use of the GNU compilers is documented in a
separate manual. *Note Introduction: (gcc)Top.
This manual is mainly a reference manual rather than a tutorial. It
@@ -47507,349 +47507,349 @@
Tag Table:
Node: Top2046
Node: Contributing5134
Node: Portability5875
Node: Interface7663
Node: Libgcc10703
Node: Integer library routines12544
Node: Soft float library routines19383
Node: Decimal float library routines31320
Node: Fixed-point fractional library routines47077
Node: Exception handling routines147475
Node: Miscellaneous routines148582
Node: Languages150702
Node: Source Tree152251
Node: Configure Terms152833
Node: Top Level155791
Node: gcc Directory159103
Node: Subdirectories160053
Node: Configuration161925
Node: Config Fragments162645
Node: System Config163874
Node: Configuration Files164810
Node: Build167167
Node: Makefile167579
Ref: Makefile-Footnote-1174382
Ref: Makefile-Footnote-2174527
Node: Library Files174599
Node: Headers175161
Node: Documentation177244
Node: Texinfo Manuals178103
Node: Man Page Generation180447
Node: Miscellaneous Docs182362
Node: Front End183751
Node: Front End Directory187444
Node: Front End Config188764
Node: Front End Makefile191706
Node: Back End195488
Node: Testsuites199167
Node: Test Idioms200098
Node: Test Directives203495
Node: Directives204022
Node: Selectors214090
Node: Effective-Target Keywords215232
Ref: arm_neon_ok222465
Ref: arm_neon_fp16_ok222626
Node: Add Options231822
Node: Require Support233019
Node: Final Actions235526
Node: Ada Tests239589
Node: C Tests240931
Node: libgcj Tests245354
Node: LTO Testing246481
Node: gcov Testing248128
Node: profopt Testing251115
Node: compat Testing252830
Node: Torture Tests257070
Node: Options258687
Node: Option file format259127
Node: Option properties266098
Node: Passes277652
Node: Parsing pass278396
Node: Gimplification pass281926
Node: Pass manager283759
Node: Tree SSA passes285553
Node: RTL passes308025
Node: RTL320368
Node: RTL Objects322556
Node: RTL Classes326430
Node: Accessors331428
Node: Special Accessors333822
Node: Flags339188
Node: Machine Modes355363
Node: Constants367675
Node: Regs and Memory373704
Node: Arithmetic391605
Node: Comparisons401432
Node: Bit-Fields405724
Node: Vector Operations407276
Node: Conversions409111
Node: RTL Declarations413609
Node: Side Effects414430
Node: Incdec430752
Node: Assembler434087
Node: Debug Information435632
Node: Insns436830
Node: Calls463030
Node: Sharing465623
Node: Reading RTL468733
Node: GENERIC469725
Node: Deficiencies471598
Node: Tree overview471839
Node: Macros and Functions475966
Node: Identifiers476791
Node: Containers478402
Node: Types479559
Node: Declarations491655
Node: Working with declarations492150
Node: Internal structure497756
Node: Current structure hierarchy498140
Node: Adding new DECL node types500234
Node: Attributes504307
Node: Expression trees505552
Node: Constant expressions507305
Node: Storage References511524
Node: Unary and Binary Expressions515043
Node: Vectors534461
Node: Statements539390
Node: Basic Statements539910
Node: Blocks544417
Node: Statement Sequences545821
Node: Empty Statements546154
Node: Jumps546728
Node: Cleanups547381
Node: OpenMP549149
Node: Functions554896
Node: Function Basics555367
Node: Function Properties559052
Node: Language-dependent trees561834
Node: C and C++ Trees562720
Node: Types for C++565624
Node: Namespaces570590
Node: Classes573697
Node: Functions for C++578775
Node: Statements for C++585028
Node: C++ Expressions593076
Node: Java Trees594577
Node: GIMPLE594690
Node: Tuple representation598311
Node: GIMPLE instruction set606587
Node: GIMPLE Exception Handling608255
Node: Temporaries610169
Ref: Temporaries-Footnote-1611484
Node: Operands611547
Node: Compound Expressions612309
Node: Compound Lvalues612543
Node: Conditional Expressions613305
Node: Logical Operators613963
Node: Manipulating GIMPLE statements620720
Node: Tuple specific accessors626654
Node: `GIMPLE_ASM'627473
Node: `GIMPLE_ASSIGN'630106
Node: `GIMPLE_BIND'634212
Node: `GIMPLE_CALL'636019
Node: `GIMPLE_CATCH'640289
Node: `GIMPLE_COND'641433
Node: `GIMPLE_DEBUG'644221
Node: `GIMPLE_EH_FILTER'647604
Node: `GIMPLE_LABEL'649092
Node: `GIMPLE_NOP'650067
Node: `GIMPLE_OMP_ATOMIC_LOAD'650436
Node: `GIMPLE_OMP_ATOMIC_STORE'651346
Node: `GIMPLE_OMP_CONTINUE'651985
Node: `GIMPLE_OMP_CRITICAL'653335
Node: `GIMPLE_OMP_FOR'654272
Node: `GIMPLE_OMP_MASTER'657787
Node: `GIMPLE_OMP_ORDERED'658170
Node: `GIMPLE_OMP_PARALLEL'658570
Node: `GIMPLE_OMP_RETURN'661342
Node: `GIMPLE_OMP_SECTION'661992
Node: `GIMPLE_OMP_SECTIONS'662658
Node: `GIMPLE_OMP_SINGLE'664264
Node: `GIMPLE_PHI'665201
Node: `GIMPLE_RESX'666616
Node: `GIMPLE_RETURN'667335
Node: `GIMPLE_SWITCH'667903
Node: `GIMPLE_TRY'670041
Node: `GIMPLE_WITH_CLEANUP_EXPR'671831
Node: GIMPLE sequences672714
Node: Sequence iterators675920
Node: Adding a new GIMPLE statement code684376
Node: Statement and operand traversals685652
Node: Tree SSA688252
Node: Annotations690038
Node: SSA Operands690564
Node: SSA705095
Node: Alias analysis717386
Node: Memory model721166
Node: Loop Analysis and Representation722529
Node: Loop representation723710
Node: Loop querying730630
Node: Loop manipulation733463
Node: LCSSA735831
Node: Scalar evolutions737903
Node: loop-iv741147
Node: Number of iterations743073
Node: Dependency analysis745882
Node: Lambda752250
Node: Omega753921
Node: Control Flow755486
Node: Basic Blocks756481
Node: Edges761049
Node: Profile information769611
Node: Maintaining the CFG774297
Node: Liveness information781174
Node: Machine Desc783300
Node: Overview785768
Node: Patterns787809
Node: Example791247
Node: RTL Template792682
Node: Output Template803337
Node: Output Statement807302
Node: Predicates811264
Node: Machine-Independent Predicates814182
Node: Defining Predicates819127
Node: Constraints825092
Node: Simple Constraints826574
Node: Multi-Alternative839430
Node: Class Preferences842271
Node: Modifiers843163
Node: Machine Constraints847295
Node: Disable Insn Alternatives886449
Node: Define Constraints889342
Node: C Constraint Interface896123
Node: Standard Names899764
Ref: shift patterns919705
Ref: prologue instruction pattern960339
Ref: epilogue instruction pattern960832
Node: Pattern Ordering970554
Node: Dependent Patterns971790
Node: Jump Patterns973410
Ref: Jump Patterns-Footnote-1975554
Node: Looping Patterns975600
Node: Insn Canonicalizations980328
Node: Expander Definitions984279
Node: Insn Splitting992397
Node: Including Patterns1001999
Node: Peephole Definitions1003779
Node: define_peephole1005032
Node: define_peephole21011363
Node: Insn Attributes1014430
Node: Defining Attributes1015536
Ref: define_enum_attr1018055
Node: Expressions1019090
Node: Tagging Insns1025692
Node: Attr Example1030045
Node: Insn Lengths1032419
Node: Constant Attributes1035478
Node: Delay Slots1036647
Node: Processor pipeline description1039871
Ref: Processor pipeline description-Footnote-11057489
Node: Conditional Execution1057811
Node: Constant Definitions1060664
Ref: define_enum1064455
Node: Iterators1064943
Node: Mode Iterators1065390
Node: Defining Mode Iterators1066368
Node: Substitutions1067862
Node: Examples1070103
Node: Code Iterators1071551
Node: Target Macros1073808
Node: Target Structure1076896
Node: Driver1078165
Node: Run-time Target1097551
Node: Per-Function Data1107188
Node: Storage Layout1109953
Node: Type Layout1135187
Node: Registers1149658
Node: Register Basics1150632
Node: Allocation Order1156137
Node: Values in Registers1158583
Node: Leaf Functions1166072
Node: Stack Registers1168930
Node: Register Classes1170202
Node: Old Constraints1199349
Node: Stack and Calling1206501
Node: Frame Layout1207035
Node: Exception Handling1217915
Node: Stack Checking1224293
Node: Frame Registers1229106
Node: Elimination1236772
Node: Stack Arguments1241001
Node: Register Arguments1247898
Node: Scalar Return1266678
Node: Aggregate Return1272757
Node: Caller Saves1276967
Node: Function Entry1278145
Node: Profiling1290773
Node: Tail Calls1292472
Node: Stack Smashing Protection1293838
Node: Varargs1295463
Node: Trampolines1302149
Node: Library Calls1308796
Node: Addressing Modes1312997
Node: Anchored Addresses1332013
Node: Condition Code1334662
Node: CC0 Condition Codes1336791
Node: MODE_CC Condition Codes1340037
Node: Cond Exec Macros1346264
Node: Costs1347241
Node: Scheduling1363452
Node: Sections1382373
Node: PIC1397674
Node: Assembler Format1399734
Node: File Framework1400872
Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1407761
Node: Data Output1411026
Node: Uninitialized Data1419375
Node: Label Output1424939
Node: Initialization1448011
Node: Macros for Initialization1453973
Node: Instruction Output1460696
Node: Dispatch Tables1471198
Node: Exception Region Output1475576
Node: Alignment Output1481920
Node: Debugging Info1486465
Node: All Debuggers1487135
Node: DBX Options1489990
Node: DBX Hooks1495439
Node: File Names and DBX1497365
Node: SDB and DWARF1499477
Node: VMS Debug1505324
Node: Floating Point1505911
Node: Mode Switching1510734
Node: Target Attributes1514660
Node: Emulated TLS1522572
Node: MIPS Coprocessors1525962
Node: PCH Target1527531
Node: C++ ABI1529073
Node: Named Address Spaces1533722
Node: Misc1538661
Ref: TARGET_SHIFT_TRUNCATION_MASK1546089
Node: Host Config1589057
Node: Host Common1590125
Node: Filesystem1592504
Node: Host Misc1596619
Node: Fragments1599068
Node: Target Fragment1600263
Node: Host Fragment1606153
Node: Collect21606393
Node: Header Dirs1609029
Node: Type Information1610452
Node: GTY Options1612809
Node: GGC Roots1624499
Node: Files1625219
Node: Invoking the garbage collector1627965
Node: Troubleshooting1629468
Node: Plugins1630544
Node: LTO1646915
Node: Funding1671961
Node: GNU Project1674444
Node: Copying1675093
Node: GNU Free Documentation License1712624
Node: Contributors1737764
Node: Option Index1774636
Node: Concept Index1775440
Node: Top2047
Node: Contributing5135
Node: Portability5876
Node: Interface7664
Node: Libgcc10704
Node: Integer library routines12545
Node: Soft float library routines19384
Node: Decimal float library routines31321
Node: Fixed-point fractional library routines47078
Node: Exception handling routines147476
Node: Miscellaneous routines148583
Node: Languages150703
Node: Source Tree152252
Node: Configure Terms152834
Node: Top Level155792
Node: gcc Directory159104
Node: Subdirectories160054
Node: Configuration161926
Node: Config Fragments162646
Node: System Config163875
Node: Configuration Files164811
Node: Build167168
Node: Makefile167580
Ref: Makefile-Footnote-1174383
Ref: Makefile-Footnote-2174528
Node: Library Files174600
Node: Headers175162
Node: Documentation177245
Node: Texinfo Manuals178104
Node: Man Page Generation180448
Node: Miscellaneous Docs182363
Node: Front End183752
Node: Front End Directory187445
Node: Front End Config188765
Node: Front End Makefile191707
Node: Back End195489
Node: Testsuites199168
Node: Test Idioms200099
Node: Test Directives203496
Node: Directives204023
Node: Selectors214091
Node: Effective-Target Keywords215233
Ref: arm_neon_ok222466
Ref: arm_neon_fp16_ok222627
Node: Add Options231823
Node: Require Support233020
Node: Final Actions235527
Node: Ada Tests239590
Node: C Tests240932
Node: libgcj Tests245355
Node: LTO Testing246482
Node: gcov Testing248129
Node: profopt Testing251116
Node: compat Testing252831
Node: Torture Tests257071
Node: Options258688
Node: Option file format259128
Node: Option properties266099
Node: Passes277653
Node: Parsing pass278397
Node: Gimplification pass281927
Node: Pass manager283760
Node: Tree SSA passes285554
Node: RTL passes308026
Node: RTL320369
Node: RTL Objects322557
Node: RTL Classes326431
Node: Accessors331429
Node: Special Accessors333823
Node: Flags339189
Node: Machine Modes355364
Node: Constants367676
Node: Regs and Memory373705
Node: Arithmetic391606
Node: Comparisons401433
Node: Bit-Fields405725
Node: Vector Operations407277
Node: Conversions409112
Node: RTL Declarations413610
Node: Side Effects414431
Node: Incdec430753
Node: Assembler434088
Node: Debug Information435633
Node: Insns436831
Node: Calls463031
Node: Sharing465624
Node: Reading RTL468734
Node: GENERIC469726
Node: Deficiencies471599
Node: Tree overview471840
Node: Macros and Functions475967
Node: Identifiers476792
Node: Containers478403
Node: Types479560
Node: Declarations491656
Node: Working with declarations492151
Node: Internal structure497757
Node: Current structure hierarchy498141
Node: Adding new DECL node types500235
Node: Attributes504308
Node: Expression trees505553
Node: Constant expressions507306
Node: Storage References511525
Node: Unary and Binary Expressions515044
Node: Vectors534462
Node: Statements539391
Node: Basic Statements539911
Node: Blocks544418
Node: Statement Sequences545822
Node: Empty Statements546155
Node: Jumps546729
Node: Cleanups547382
Node: OpenMP549150
Node: Functions554897
Node: Function Basics555368
Node: Function Properties559053
Node: Language-dependent trees561835
Node: C and C++ Trees562721
Node: Types for C++565625
Node: Namespaces570591
Node: Classes573698
Node: Functions for C++578776
Node: Statements for C++585029
Node: C++ Expressions593077
Node: Java Trees594578
Node: GIMPLE594691
Node: Tuple representation598312
Node: GIMPLE instruction set606588
Node: GIMPLE Exception Handling608256
Node: Temporaries610170
Ref: Temporaries-Footnote-1611485
Node: Operands611548
Node: Compound Expressions612310
Node: Compound Lvalues612544
Node: Conditional Expressions613306
Node: Logical Operators613964
Node: Manipulating GIMPLE statements620721
Node: Tuple specific accessors626655
Node: `GIMPLE_ASM'627474
Node: `GIMPLE_ASSIGN'630107
Node: `GIMPLE_BIND'634213
Node: `GIMPLE_CALL'636020
Node: `GIMPLE_CATCH'640290
Node: `GIMPLE_COND'641434
Node: `GIMPLE_DEBUG'644222
Node: `GIMPLE_EH_FILTER'647605
Node: `GIMPLE_LABEL'649093
Node: `GIMPLE_NOP'650068
Node: `GIMPLE_OMP_ATOMIC_LOAD'650437
Node: `GIMPLE_OMP_ATOMIC_STORE'651347
Node: `GIMPLE_OMP_CONTINUE'651986
Node: `GIMPLE_OMP_CRITICAL'653336
Node: `GIMPLE_OMP_FOR'654273
Node: `GIMPLE_OMP_MASTER'657788
Node: `GIMPLE_OMP_ORDERED'658171
Node: `GIMPLE_OMP_PARALLEL'658571
Node: `GIMPLE_OMP_RETURN'661343
Node: `GIMPLE_OMP_SECTION'661993
Node: `GIMPLE_OMP_SECTIONS'662659
Node: `GIMPLE_OMP_SINGLE'664265
Node: `GIMPLE_PHI'665202
Node: `GIMPLE_RESX'666617
Node: `GIMPLE_RETURN'667336
Node: `GIMPLE_SWITCH'667904
Node: `GIMPLE_TRY'670042
Node: `GIMPLE_WITH_CLEANUP_EXPR'671832
Node: GIMPLE sequences672715
Node: Sequence iterators675921
Node: Adding a new GIMPLE statement code684377
Node: Statement and operand traversals685653
Node: Tree SSA688253
Node: Annotations690039
Node: SSA Operands690565
Node: SSA705096
Node: Alias analysis717387
Node: Memory model721167
Node: Loop Analysis and Representation722530
Node: Loop representation723711
Node: Loop querying730631
Node: Loop manipulation733464
Node: LCSSA735832
Node: Scalar evolutions737904
Node: loop-iv741148
Node: Number of iterations743074
Node: Dependency analysis745883
Node: Lambda752251
Node: Omega753922
Node: Control Flow755487
Node: Basic Blocks756482
Node: Edges761050
Node: Profile information769612
Node: Maintaining the CFG774298
Node: Liveness information781175
Node: Machine Desc783301
Node: Overview785769
Node: Patterns787810
Node: Example791248
Node: RTL Template792683
Node: Output Template803338
Node: Output Statement807303
Node: Predicates811265
Node: Machine-Independent Predicates814183
Node: Defining Predicates819128
Node: Constraints825093
Node: Simple Constraints826575
Node: Multi-Alternative839431
Node: Class Preferences842272
Node: Modifiers843164
Node: Machine Constraints847296
Node: Disable Insn Alternatives886450
Node: Define Constraints889343
Node: C Constraint Interface896124
Node: Standard Names899765
Ref: shift patterns919706
Ref: prologue instruction pattern960340
Ref: epilogue instruction pattern960833
Node: Pattern Ordering970555
Node: Dependent Patterns971791
Node: Jump Patterns973411
Ref: Jump Patterns-Footnote-1975555
Node: Looping Patterns975601
Node: Insn Canonicalizations980329
Node: Expander Definitions984280
Node: Insn Splitting992398
Node: Including Patterns1002000
Node: Peephole Definitions1003780
Node: define_peephole1005033
Node: define_peephole21011364
Node: Insn Attributes1014431
Node: Defining Attributes1015537
Ref: define_enum_attr1018056
Node: Expressions1019091
Node: Tagging Insns1025693
Node: Attr Example1030046
Node: Insn Lengths1032420
Node: Constant Attributes1035479
Node: Delay Slots1036648
Node: Processor pipeline description1039872
Ref: Processor pipeline description-Footnote-11057490
Node: Conditional Execution1057812
Node: Constant Definitions1060665
Ref: define_enum1064456
Node: Iterators1064944
Node: Mode Iterators1065391
Node: Defining Mode Iterators1066369
Node: Substitutions1067863
Node: Examples1070104
Node: Code Iterators1071552
Node: Target Macros1073809
Node: Target Structure1076897
Node: Driver1078166
Node: Run-time Target1097552
Node: Per-Function Data1107189
Node: Storage Layout1109954
Node: Type Layout1135188
Node: Registers1149659
Node: Register Basics1150633
Node: Allocation Order1156138
Node: Values in Registers1158584
Node: Leaf Functions1166073
Node: Stack Registers1168931
Node: Register Classes1170203
Node: Old Constraints1199350
Node: Stack and Calling1206502
Node: Frame Layout1207036
Node: Exception Handling1217916
Node: Stack Checking1224294
Node: Frame Registers1229107
Node: Elimination1236773
Node: Stack Arguments1241002
Node: Register Arguments1247899
Node: Scalar Return1266679
Node: Aggregate Return1272758
Node: Caller Saves1276968
Node: Function Entry1278146
Node: Profiling1290774
Node: Tail Calls1292473
Node: Stack Smashing Protection1293839
Node: Varargs1295464
Node: Trampolines1302150
Node: Library Calls1308797
Node: Addressing Modes1312998
Node: Anchored Addresses1332014
Node: Condition Code1334663
Node: CC0 Condition Codes1336792
Node: MODE_CC Condition Codes1340038
Node: Cond Exec Macros1346265
Node: Costs1347242
Node: Scheduling1363453
Node: Sections1382374
Node: PIC1397675
Node: Assembler Format1399735
Node: File Framework1400873
Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1407762
Node: Data Output1411027
Node: Uninitialized Data1419376
Node: Label Output1424940
Node: Initialization1448012
Node: Macros for Initialization1453974
Node: Instruction Output1460697
Node: Dispatch Tables1471199
Node: Exception Region Output1475577
Node: Alignment Output1481921
Node: Debugging Info1486466
Node: All Debuggers1487136
Node: DBX Options1489991
Node: DBX Hooks1495440
Node: File Names and DBX1497366
Node: SDB and DWARF1499478
Node: VMS Debug1505325
Node: Floating Point1505912
Node: Mode Switching1510735
Node: Target Attributes1514661
Node: Emulated TLS1522573
Node: MIPS Coprocessors1525963
Node: PCH Target1527532
Node: C++ ABI1529074
Node: Named Address Spaces1533723
Node: Misc1538662
Ref: TARGET_SHIFT_TRUNCATION_MASK1546090
Node: Host Config1589058
Node: Host Common1590126
Node: Filesystem1592505
Node: Host Misc1596620
Node: Fragments1599069
Node: Target Fragment1600264
Node: Host Fragment1606154
Node: Collect21606394
Node: Header Dirs1609030
Node: Type Information1610453
Node: GTY Options1612810
Node: GGC Roots1624500
Node: Files1625220
Node: Invoking the garbage collector1627966
Node: Troubleshooting1629469
Node: Plugins1630545
Node: LTO1646916
Node: Funding1671962
Node: GNU Project1674445
Node: Copying1675094
Node: GNU Free Documentation License1712625
Node: Contributors1737765
Node: Option Index1774637
Node: Concept Index1775441
End Tag Table
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GCJ-DBTOOL 1"
.TH GCJ-DBTOOL 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GCJ-DBTOOL 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GCJ 1"
.TH GCJ 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GCJ 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,5 +1,5 @@
This is doc/gcj.info, produced by makeinfo version 4.13 from
/d/gcc-4.6.2/gcc-4.6.2/gcc/java/gcj.texi.
/d//gcc-4.6.3/gcc-4.6.3/gcc/java/gcj.texi.
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 Free
Software Foundation, Inc.
@@ -3644,51 +3644,51 @@
Tag Table:
Node: Top2801
Node: Copying4220
Node: GNU Free Documentation License41770
Node: Invoking gcj66913
Node: Input and output files67676
Node: Input Options69202
Node: Encodings72476
Node: Warnings73682
Node: Linking74795
Node: Code Generation77734
Node: Configure-time Options84514
Node: Compatibility86254
Node: Limitations86738
Node: Extensions88320
Node: Invoking jcf-dump91414
Node: Invoking gij92359
Node: Invoking gcj-dbtool95610
Node: Invoking jv-convert98076
Node: Invoking grmic99155
Node: Invoking gc-analyze100541
Node: Invoking aot-compile101982
Node: Invoking rebuild-gcj-db102931
Node: About CNI103241
Node: Basic concepts104700
Node: Packages107596
Node: Primitive types109924
Node: Reference types111602
Node: Interfaces112691
Node: Objects and Classes113602
Node: Class Initialization115797
Node: Object allocation118139
Node: Memory allocation118929
Node: Arrays119561
Node: Methods122371
Node: Strings125192
Node: Mixing with C++126696
Node: Exception Handling130167
Node: Synchronization131801
Node: Invocation133791
Node: Reflection138727
Node: System properties139188
Node: Standard Properties140065
Node: GNU Classpath Properties144497
Node: libgcj Runtime Properties145544
Node: Resources150046
Node: Index150884
Node: Top2802
Node: Copying4221
Node: GNU Free Documentation License41771
Node: Invoking gcj66914
Node: Input and output files67677
Node: Input Options69203
Node: Encodings72477
Node: Warnings73683
Node: Linking74796
Node: Code Generation77735
Node: Configure-time Options84515
Node: Compatibility86255
Node: Limitations86739
Node: Extensions88321
Node: Invoking jcf-dump91415
Node: Invoking gij92360
Node: Invoking gcj-dbtool95611
Node: Invoking jv-convert98077
Node: Invoking grmic99156
Node: Invoking gc-analyze100542
Node: Invoking aot-compile101983
Node: Invoking rebuild-gcj-db102932
Node: About CNI103242
Node: Basic concepts104701
Node: Packages107597
Node: Primitive types109925
Node: Reference types111603
Node: Interfaces112692
Node: Objects and Classes113603
Node: Class Initialization115798
Node: Object allocation118140
Node: Memory allocation118930
Node: Arrays119562
Node: Methods122372
Node: Strings125193
Node: Mixing with C++126697
Node: Exception Handling130168
Node: Synchronization131802
Node: Invocation133792
Node: Reflection138728
Node: System properties139189
Node: Standard Properties140066
Node: GNU Classpath Properties144498
Node: libgcj Runtime Properties145545
Node: Resources150047
Node: Index150885
End Tag Table
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GCOV 1"
.TH GCOV 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GCOV 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GFDL 7"
.TH GFDL 7 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GFDL 7 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GFORTRAN 1"
.TH GFORTRAN 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GFORTRAN 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1191,16 +1191,25 @@
the real and imaginary parts of local \f(CW\*(C`COMPLEX\*(C'\fR variables),
\&\fB\-finit\-logical=\fR\fI<true|false>\fR, and
\&\fB\-finit\-character=\fR\fIn\fR (where \fIn\fR is an \s-1ASCII\s0 character
value) options. These options do not initialize components of derived
type variables, nor do they initialize variables that appear in an
\&\f(CW\*(C`EQUIVALENCE\*(C'\fR statement. (This limitation may be removed in
future releases).
value) options. These options do not initialize
.RS 4
.IP "\(bu" 4
allocatable arrays
.IP "\(bu" 4
components of derived type variables
.IP "\(bu" 4
variables that appear in an \f(CW\*(C`EQUIVALENCE\*(C'\fR statement.
.RE
.RS 4
.Sp
(These limitations may be removed in future releases).
.Sp
Note that the \fB\-finit\-real=nan\fR option initializes \f(CW\*(C`REAL\*(C'\fR
and \f(CW\*(C`COMPLEX\*(C'\fR variables with a quiet NaN. For a signalling NaN
use \fB\-finit\-real=snan\fR; note, however, that compile-time
optimizations may convert them into quiet NaN and that trapping
needs to be enabled (e.g. via \fB\-ffpe\-trap\fR).
.RE
.IP "\fB\-falign\-commons\fR" 4
.IX Item "-falign-commons"
By default, \fBgfortran\fR enforces proper alignment of all variables in a
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GIJ 1"
.TH GIJ 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GIJ 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GPL 7"
.TH GPL 7 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GPL 7 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "GRMIC 1"
.TH GRMIC 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH GRMIC 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -7527,8 +7527,8 @@
bodies are read from these ELF sections and instantiated as if they
had been part of the same translation unit.
To use the link-timer optimizer, @option{-flto} needs to be specified at
compile time and during the final link. For example,
To use the link-time optimizer, @option{-flto} needs to be specified at
compile time and during the final link. For example:
@smallexample
gcc -c -O2 -flto foo.c
@@ -7536,25 +7536,25 @@
gcc -o myprog -flto -O2 foo.o bar.o
@end smallexample
The first two invocations to GCC will save a bytecode representation
The first two invocations to GCC save a bytecode representation
of GIMPLE into special ELF sections inside @file{foo.o} and
@file{bar.o}. The final invocation will read the GIMPLE bytecode from
@file{foo.o} and @file{bar.o}, merge the two files into a single
internal image, and compile the result as usual. Since both
@file{bar.o}. The final invocation reads the GIMPLE bytecode from
@file{foo.o} and @file{bar.o}, merges the two files into a single
internal image, and compiles the result as usual. Since both
@file{foo.o} and @file{bar.o} are merged into a single image, this
causes all the inter-procedural analyses and optimizations in GCC to
causes all the interprocedural analyses and optimizations in GCC to
work across the two files as if they were a single one. This means,
for example, that the inliner will be able to inline functions in
for example, that the inliner is able to inline functions in
@file{bar.o} into functions in @file{foo.o} and vice-versa.
Another (simpler) way to enable link-time optimization is,
Another (simpler) way to enable link-time optimization is:
@smallexample
gcc -o myprog -flto -O2 foo.c bar.c
@end smallexample
The above will generate bytecode for @file{foo.c} and @file{bar.c},
merge them together into a single GIMPLE representation and optimize
The above generates bytecode for @file{foo.c} and @file{bar.c},
merges them together into a single GIMPLE representation and optimizes
them as usual to produce @file{myprog}.
The only important thing to keep in mind is that to enable link-time
@@ -7564,30 +7564,22 @@
To make whole program optimization effective, it is necessary to make
certain whole program assumptions. The compiler needs to know
what functions and variables can be accessed by libraries and runtime
outside of the link time optimized unit. When supported by the linker,
the linker plugin (see @option{-fuse-linker-plugin}) passes to the
compiler information about used and externally visible symbols. When
outside of the link-time optimized unit. When supported by the linker,
the linker plugin (see @option{-fuse-linker-plugin}) passes information
to the compiler about used and externally visible symbols. When
the linker plugin is not available, @option{-fwhole-program} should be
used to allow the compiler to make these assumptions, which will lead
used to allow the compiler to make these assumptions, which leads
to more aggressive optimization decisions.
Note that when a file is compiled with @option{-flto}, the generated
object file will be larger than a regular object file because it will
contain GIMPLE bytecodes and the usual final code. This means that
object files with LTO information can be linked as a normal object
file. So, in the previous example, if the final link is done with
object file is larger than a regular object file because it
contains GIMPLE bytecodes and the usual final code. This means that
object files with LTO information can be linked as normal object
files; if @option{-flto} is not passed to the linker, no
interprocedural optimizations are applied.
@smallexample
gcc -o myprog foo.o bar.o
@end smallexample
The only difference will be that no inter-procedural optimizations
will be applied to produce @file{myprog}. The two object files
@file{foo.o} and @file{bar.o} will be simply sent to the regular
linker.
Additionally, the optimization flags used to compile individual files
are not necessarily related to those used at link-time. For instance,
are not necessarily related to those used at link time. For instance,
@smallexample
gcc -c -O0 -flto foo.c
@@ -7595,37 +7587,42 @@
gcc -o myprog -flto -O3 foo.o bar.o
@end smallexample
This will produce individual object files with unoptimized assembler
code, but the resulting binary @file{myprog} will be optimized at
@option{-O3}. Now, if the final binary is generated without
@option{-flto}, then @file{myprog} will not be optimized.
This produces individual object files with unoptimized assembler
code, but the resulting binary @file{myprog} is optimized at
@option{-O3}. If, instead, the final binary is generated without
@option{-flto}, then @file{myprog} is not optimized.
When producing the final binary with @option{-flto}, GCC will only
apply link-time optimizations to those files that contain bytecode.
When producing the final binary with @option{-flto}, GCC only
applies link-time optimizations to those files that contain bytecode.
Therefore, you can mix and match object files and libraries with
GIMPLE bytecodes and final object code. GCC will automatically select
GIMPLE bytecodes and final object code. GCC automatically selects
which files to optimize in LTO mode and which files to link without
further processing.
There are some code generation flags that GCC will preserve when
There are some code generation flags that GCC preserves when
generating bytecodes, as they need to be used during the final link
stage. Currently, the following options are saved into the GIMPLE
bytecode files: @option{-fPIC}, @option{-fcommon} and all the
@option{-m} target flags.
At link time, these options are read in and reapplied. Note that the
current implementation makes no attempt to recognize conflicting
values for these options. If different files have conflicting option
values (e.g., one file is compiled with @option{-fPIC} and another
isn't), the compiler simply uses the last value read from the
bytecode files. It is recommended, then, that you compile all the files
participating in the same link with the same options.
At link time, these options are read-in and reapplied. Note that the
current implementation makes no attempt at recognizing conflicting
values for these options. If two or more files have a conflicting
value (e.g., one file is compiled with @option{-fPIC} and another
isn't), the compiler will simply use the last value read from the
bytecode files. It is recommended, then, that all the files
participating in the same link be compiled with the same options.
If LTO encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined
behavior according to ISO C99 6.2.7), a non-fatal diagnostic may be
issued. The behavior is still undefined at runtime.
Another feature of LTO is that it is possible to apply interprocedural
optimizations on files written in different languages. This requires
some support in the language front end. Currently, the C, C++ and
support in the language front end. Currently, the C, C++ and
Fortran front ends are capable of emitting GIMPLE bytecodes, so
something like this should work
something like this should work:
@smallexample
gcc -c -flto foo.c
@@ -7637,49 +7634,43 @@
Notice that the final link is done with @command{g++} to get the C++
runtime libraries and @option{-lgfortran} is added to get the Fortran
runtime libraries. In general, when mixing languages in LTO mode, you
should use the same link command used when mixing languages in a
regular (non-LTO) compilation. This means that if your build process
was mixing languages before, all you need to add is @option{-flto} to
should use the same link command options as when mixing languages in a
regular (non-LTO) compilation; all you need to add is @option{-flto} to
all the compile and link commands.
If LTO encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined
behavior according to ISO C99 6.2.7), a non-fatal diagnostic may be
issued. The behavior is still undefined at runtime.
If object files containing GIMPLE bytecode are stored in a library archive, say
@file{libfoo.a}, it is possible to extract and use them in an LTO link if you
are using a linker with linker plugin support. To enable this feature, use
the flag @option{-fuse-linker-plugin} at link-time:
are using a linker with plugin support. To enable this feature, use
the flag @option{-fuse-linker-plugin} at link time:
@smallexample
gcc -o myprog -O2 -flto -fuse-linker-plugin a.o b.o -lfoo
@end smallexample
With the linker plugin enabled, the linker will extract the needed
GIMPLE files from @file{libfoo.a} and pass them on to the running GCC
With the linker plugin enabled, the linker extracts the needed
GIMPLE files from @file{libfoo.a} and passes them on to the running GCC
to make them part of the aggregated GIMPLE image to be optimized.
If you are not using a linker with linker plugin support and/or do not
enable linker plugin then the objects inside @file{libfoo.a}
will be extracted and linked as usual, but they will not participate
If you are not using a linker with plugin support and/or do not
enable the linker plugin, then the objects inside @file{libfoo.a}
are extracted and linked as usual, but they do not participate
in the LTO optimization process.
Link time optimizations do not require the presence of the whole program to
Link-time optimizations do not require the presence of the whole program to
operate. If the program does not require any symbols to be exported, it is
possible to combine @option{-flto} and with @option{-fwhole-program} to allow
possible to combine @option{-flto} and @option{-fwhole-program} to allow
the interprocedural optimizers to use more aggressive assumptions which may
lead to improved optimization opportunities.
Use of @option{-fwhole-program} is not needed when linker plugin is
active (see @option{-fuse-linker-plugin}).
Regarding portability: the current implementation of LTO makes no
attempt at generating bytecode that can be ported between different
The current implementation of LTO makes no
attempt to generate bytecode that is portable between different
types of hosts. The bytecode files are versioned and there is a
strict version check, so bytecode files generated in one version of
GCC will not work with an older/newer version of GCC.
Link time optimization does not play well with generating debugging
Link-time optimization does not work well with generation of debugging
information. Combining @option{-flto} with
@option{-g} is currently experimental and expected to produce wrong
results.
@@ -7693,15 +7684,15 @@
You can also specify @option{-flto=jobserver} to use GNU make's
job server mode to determine the number of parallel jobs. This
is useful when the Makefile calling GCC is already executing in parallel.
The parent Makefile will need a @samp{+} prepended to the command recipe
for this to work. This will likely only work if @env{MAKE} is
You must prepend a @samp{+} to the command recipe in the parent Makefile
for this to work. This option likely only works if @env{MAKE} is
GNU make.
This option is disabled by default.
@item -flto-partition=@var{alg}
@opindex flto-partition
Specify the partitioning algorithm used by the link time optimizer.
Specify the partitioning algorithm used by the link-time optimizer.
The value is either @code{1to1} to specify a partitioning mirroring
the original source files or @code{balanced} to specify partitioning
into equally sized chunks (whenever possible). Specifying @code{none}
@@ -7718,27 +7709,29 @@
@item -flto-report
Prints a report with internal details on the workings of the link-time
optimizer. The contents of this report vary from version to version,
it is meant to be useful to GCC developers when processing object
optimizer. The contents of this report vary from version to version.
It is meant to be useful to GCC developers when processing object
files in LTO mode (via @option{-flto}).
Disabled by default.
@item -fuse-linker-plugin
Enables the use of linker plugin during link time optimization. This option
relies on the linker plugin support in linker that is available in gold
Enables the use of a linker plugin during link-time optimization. This
option relies on the linker plugin support in linker that is available in gold
or in GNU ld 2.21 or newer.
This option enables the extraction of object files with GIMPLE bytecode out of
library archives. This improves the quality of optimization by exposing more
code the the link time optimizer. This information specify what symbols
can be accessed externally (by non-LTO object or during dynamic linking).
Resulting code quality improvements on binaries (and shared libraries that do
use hidden visibility) is similar to @code{-fwhole-program}. See
@option{-flto} for a description on the effect of this flag and how to use it.
Enabled by default when LTO support in GCC is enabled and GCC was compiled
with a linker supporting plugins (GNU ld 2.21 or newer or gold).
This option enables the extraction of object files with GIMPLE bytecode out
of library archives. This improves the quality of optimization by exposing
more code to the link-time optimizer. This information specifies what
symbols can be accessed externally (by non-LTO object or during dynamic
linking). Resulting code quality improvements on binaries (and shared
libraries that use hidden visibility) are similar to @code{-fwhole-program}.
See @option{-flto} for a description of the effect of this flag and how to
use it.
This option is enabled by default when LTO support in GCC is enabled
and GCC was configured for use with
a linker supporting plugins (GNU ld 2.21 or newer or gold).
@item -fcompare-elim
@opindex fcompare-elim
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "JCF-DUMP 1"
.TH JCF-DUMP 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH JCF-DUMP 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "JV-CONVERT 1"
.TH JV-CONVERT 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH JV-CONVERT 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,4 +1,4 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "REBUILD-GCJ-DB 1"
.TH REBUILD-GCJ-DB 1 "2011-10-26" "gcc-4.6.2" "GNU"
.TH REBUILD-GCJ-DB 1 "2012-03-01" "gcc-4.6.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -1,3 +1,14 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-12-13 Eric Botcazou <ebotcazou@adacore.com>
* lto.h (lto_parse_hex): Delete.
* lto.c (lto_read_decls): Use 'int' for offsets.
(lto_parse_hex): Make static and return proper 64-bit host type.
(lto_resolution_read): Use proper 64-bit host type.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -198,7 +198,7 @@
uint32_t ix;
tree decl;
uint32_t i, j;
ix = *data++;
decl = lto_streamer_cache_get (data_in->reader_cache, (int) ix);
if (TREE_CODE (decl) != FUNCTION_DECL)
@@ -241,9 +241,9 @@
VEC(ld_plugin_symbol_resolution_t,heap) *resolutions)
{
const struct lto_decl_header *header = (const struct lto_decl_header *) data;
const int32_t decl_offset = sizeof (struct lto_decl_header);
const int32_t main_offset = decl_offset + header->decl_state_size;
const int32_t string_offset = main_offset + header->main_size;
const int decl_offset = sizeof (struct lto_decl_header);
const int main_offset = decl_offset + header->decl_state_size;
const int string_offset = main_offset + header->main_size;
struct lto_input_block ib_main;
struct data_in *data_in;
unsigned int i;
@@ -291,17 +291,20 @@
if (data_ptr != data_end)
internal_error ("bytecode stream: garbage at the end of symbols section");
decl_data->current_decl_state = decl_data->global_decl_state;
lto_data_in_delete (data_in);
}
int64_t
lto_parse_hex (const char *p) {
uint64_t ret = 0;
static HOST_WIDEST_INT
lto_parse_hex (const char *p)
{
HOST_WIDEST_INT ret = 0;
for (; *p != '\0'; ++p)
{
char c = *p;
@@ -317,6 +320,7 @@
internal_error ("could not parse hex number");
ret |= part;
}
return ret;
}
@@ -352,7 +356,7 @@
{
int t;
char offset_p[17];
int64_t offset;
HOST_WIDEST_INT offset;
t = fscanf (resolution, "@0x%16s", offset_p);
if (t != 1)
internal_error ("could not parse file offset");
@@ -60,6 +60,4 @@
size_t len;
};
int64_t lto_parse_hex (const char *p);
#endif
@@ -1,3 +1,11 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-30 Joseph Myers <joseph@codesourcery.com>
* ja.po: Update.
2011-10-26 Release Manager
* GCC 4.6.2 released.
Binary files a/gcc/gcc/po/ja.gmo and a/gcc/gcc/po/ja.gmo differ
@@ -20,7 +20,7 @@
"Project-Id-Version: gcc 4.6.1\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
"POT-Creation-Date: 2011-06-21 10:27+0000\n"
"PO-Revision-Date: 2011-10-25 22:36+0900\n"
"PO-Revision-Date: 2011-10-30 18:48+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
"Language: ja\n"
@@ -834,12 +834,12 @@
msgid " -a, --all-blocks Show information for every basic block\n"
msgstr ""
msgstr " -a, --all-blocks 各基本ブロックに関する情報を表示する\n"
msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr ""
msgstr " -b, --branch-probabilities 出力に分岐可能性情報を含める\n"
@@ -847,6 +847,8 @@
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr ""
" -c, --branch-counts 分岐に関する百分率では無く行われた\n"
" 回数を取得する\n"
@@ -859,21 +861,23 @@
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
msgstr ""
" -l, --long-file-names インクルードされたソースファイルに関する長い\n"
" 出力ファイル名を使用する\n"
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr ""
msgstr " -f, --function-summaries 各関数に関する要約を出力する\n"
msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
msgstr ""
msgstr " -o, --object-directory DIR|FILE オブジェクトファイルを DIR 内または呼び出し用 FILE 内で検索する\n"
msgid " -p, --preserve-paths Preserve all pathname components\n"
msgstr ""
msgstr " -p, --preserve-paths すべてのパス名要素を保護する\n"
@@ -977,7 +981,7 @@
msgid "%s:cannot open data file, assuming not executed\n"
msgstr ""
msgstr "%s:データファイルを開けません。実行されていないと見なします\n"
@@ -1027,7 +1031,7 @@
msgid "%s:graph is unsolvable for '%s'\n"
msgstr ""
msgstr "%s: '%s' 用のグラフが解決できません\n"
@@ -1037,7 +1041,7 @@
msgid "Lines executed:%s of %d\n"
msgstr ""
msgstr "実行された行:%s of %d\n"
@@ -1047,7 +1051,7 @@
msgid "Branches executed:%s of %d\n"
msgstr ""
msgstr "実行された分岐:%s of %d\n"
@@ -1057,12 +1061,12 @@
msgid "No branches\n"
msgstr ""
msgstr "分岐がありません\n"
msgid "Calls executed:%s of %d\n"
msgstr ""
msgstr "実行された呼び出し:%s of %d\n"
@@ -1075,24 +1079,24 @@
msgstr "%s: '%s' に対する行がありません\n"
msgid "call %2d returned %s\n"
msgstr "呼び出し %d の戻り = %d\n"
msgstr ""
msgid "call %2d never executed\n"
msgstr "呼び出し %d は一度も実行せず\n"
msgstr ""
msgid "branch %2d taken %s%s\n"
msgstr "ブランチ %d 受理 = %d%%\n"
msgstr ""
msgid "branch %2d never executed\n"
msgstr "ブランチ %d は一度も実行されず\n"
msgstr ""
@@ -1100,9 +1104,9 @@
msgstr ""
msgid "unconditional %2d never executed\n"
msgstr "呼び出し %d は一度も実行せず\n"
msgstr ""
@@ -1412,11 +1416,11 @@
msgid "The following options take separate arguments"
msgstr ""
msgstr "次のオプションは分離した引数を取ります"
msgid "The following options take joined arguments"
msgstr ""
msgstr "次のオプションは結合した引数を取ります"
msgid "The following options are language-related"
@@ -1472,7 +1476,7 @@
msgid "created and used with differing settings of '%s'"
msgstr ""
msgstr "作成時と使用時で '%s' の設定が異なります"
msgid "out of memory"
@@ -1480,11 +1484,11 @@
msgid "created and used with different settings of -fpic"
msgstr ""
msgstr "作成時と使用時で -fpic の設定が異なります"
msgid "created and used with different settings of -fpie"
msgstr ""
msgstr "作成時と使用時で -fpie の設定が異なります"
@@ -1717,11 +1721,11 @@
msgid "The maximum depth of recursive inlining for inline functions"
msgstr ""
msgstr "インライン関数を再帰的にインライン化する時の最大深度"
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
msgstr "非インライン関数を再帰的にインライン化する時の最大深度"
msgid "Inline recursively only when the probability of call being executed exceeds the parameter"
@@ -1761,16 +1765,15 @@
msgid "The size of function body to be considered large"
msgstr ""
msgstr "大きいと見なされる関数本体のサイズ"
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
msgid "The size of translation unit to be considered large"
msgstr "翻訳単位全体をファイルにダンプする"
msgstr "大きいと見なされる翻訳単位のサイズ"
msgid "How much can given compilation unit grow because of the inlining (in percent)"
@@ -1786,20 +1789,19 @@
msgid "The size of stack frame to be considered large"
msgstr ""
msgstr "大きいと見なされるスタックフレームのサイズ"
msgid "Maximal stack frame growth due to inlining (in percent)"
msgstr ""
msgstr "インライン化によって増加するスタックフレームの最大量 (百分率)"
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
msgstr "GCSE によって配置されるメモリの最大量"
msgid "The maximum ratio of insertions to deletions of expressions in GCSE"
msgstr "RPTS 用の最大反復数を指定する"
msgstr ""
msgid "The threshold ratio for performing partial redundancy elimination after reload"
@@ -1963,9 +1965,8 @@
msgstr ""
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr "目立たない、コストのかかる最適化を行なう"
msgstr ""
msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
@@ -2044,9 +2045,8 @@
msgstr ""
msgid "The maximum number of iterations through CFG to extend regions"
msgstr "RPTS 用の最大反復数を指定する"
msgstr ""
msgid "The maximum conflict delay for an insn to be considered for speculative motion"
@@ -2077,9 +2077,8 @@
msgstr ""
msgid "The upper bound for sharing integer constants"
msgstr "`%s' の列挙値が整数定数ではありません"
msgstr "整数定数を共有するための上限値"
msgid "Minimum number of virtual mappings to consider switching to full virtual renames"
@@ -2111,11 +2110,11 @@
msgid "The number of insns executed before prefetch is completed"
msgstr ""
msgstr "プリフェッチが完了する前に実行される命令数"
msgid "The number of prefetches that can run at the same time"
msgstr ""
msgstr "同時に実行可能なプリフェッチの数"
msgid "The size of L1 cache"
@@ -2162,9 +2161,8 @@
msgstr ""
msgid "maximum number of parameters in a SCoP"
msgstr "RPTS 用の最大反復数を指定する"
msgstr "SCoP 内のパラメータの最大数"
msgid "maximum number of basic blocks per function to be analyzed by Graphite"
@@ -2597,9 +2595,9 @@
msgstr "無効な %%E 値"
msgid "unknown relocation unspec"
msgstr "不明な設定済コンストラクタ型です"
msgstr ""
@@ -3000,32 +2998,32 @@
msgid "operand is not a condition code, invalid operand code 'D'"
msgstr ""
msgstr "被演算子は条件コードではありません。無効な被演算子コード 'D' です"
msgid "operand is neither a constant nor a condition code, invalid operand code 'C'"
msgstr ""
msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'C' です"
msgid "operand is neither a constant nor a condition code, invalid operand code 'F'"
msgstr ""
msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'F' です"
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'c' です"
msgid "operand is neither a constant nor a condition code, invalid operand code 'f'"
msgstr ""
msgstr "被演算子は定数でも条件コードでもありません。無効な被演算子コード 'f' です"
msgid "operand is not a condition code, invalid operand code 'Y'"
msgstr ""
msgstr "被演算子は条件コードではありません。無効な被演算子コード 'Y' です"
@@ -3098,7 +3096,7 @@
msgid "only 0.0 can be loaded as an immediate"
msgstr ""
msgstr "即値としてロードできるのは 0.0 のみです"
msgid "bad operand"
@@ -3138,15 +3136,15 @@
msgid "pre-increment address is not a register"
msgstr ""
msgstr "前置増分アドレスがレジスタではありません"
msgid "pre-decrement address is not a register"
msgstr ""
msgstr "前置減分アドレスがレジスタではありません"
msgid "post-increment address is not a register"
msgstr ""
msgstr "後置増分アドレスがレジスタではありません"
@@ -3252,7 +3250,7 @@
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
msgstr "MMIX 内部: CONST_INT が予期されますが、異なっています"
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
@@ -3260,11 +3258,11 @@
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
msgstr "MMIX 内部: レジスタが予期されますが、異なっています"
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
msgstr "MMIX 内部: 定数が予期されますが、異なっています"
@@ -3301,7 +3299,7 @@
msgid "Bad address, not (reg+disp):"
msgstr ""
msgstr "誤ったアドレスです。 (reg+disp) ではありません:"
msgid "Bad address, not register:"
@@ -3526,15 +3524,15 @@
msgid "created and used with different architectures / ABIs"
msgstr ""
msgstr "作成時と使用時で アーキテクチャ/ABI が異なります"
msgid "created and used with different ABIs"
msgstr ""
msgstr "作成時と使用時で ABI が異なります"
msgid "created and used with different endianness"
msgstr ""
msgstr "作成時と使用時でエンディアンが異なります"
@@ -3617,7 +3615,7 @@
msgid "symbol with offset used in PIC mode"
msgstr ""
msgstr "PIC モードで使用されるオフセット付きのシンボルです"
@@ -3837,19 +3835,19 @@
msgstr "%s:%d:%d: ここから再帰的に実体化されました"
msgid "%s:%d:%d: instantiated from here"
msgstr "%s:%d:%d: ここから実体化されました"
msgid "%s:%d: recursively instantiated from here"
msgstr ""
msgstr "%s:%d: ここから再帰的に実体化されました"
msgid "%s:%d: instantiated from here"
msgstr "%s:%d: ここで実体化されました\n"
msgstr "%s:%d: ここから実体化されました"
@@ -4029,22 +4027,21 @@
msgid "Constant expression required at %C"
msgstr ""
msgstr "%C では定数式が要求されます"
msgid "Integer expression required at %C"
msgstr ""
msgstr "%C では整数式が要求されます"
msgid "Integer value too large in expression at %C"
msgstr "式の整数がオーバーフローしました"
msgstr "%C の式内で整数値が大きすぎます"
msgid "array assignment"
msgstr "代入"
msgstr "配列代入"
@@ -4080,7 +4077,7 @@
msgid "Unexpected element '%c' in format string at %L"
msgstr ""
msgstr "予期しない要素 '%c' が書式文字列内 (位置 %L) にあります"
msgid "Unexpected end of format string"
@@ -4088,15 +4085,15 @@
msgid "Zero width in format descriptor"
msgstr ""
msgstr "幅 0 の書式記述子です"
msgid "Missing leading left parenthesis"
msgstr ""
msgstr "前に左小括弧がありません"
msgid "Left parenthesis required after '*'"
msgstr ""
msgstr "'*' の後には左小括弧が必要です"
msgid "Expected P edit descriptor"
@@ -4116,9 +4113,8 @@
msgstr ""
msgid "E specifier not allowed with g0 descriptor"
msgstr "型指定子 `%s' は struct や class の後には使えません"
msgstr ""
msgid "Positive exponent width required"
@@ -4362,9 +4358,8 @@
msgstr ""
msgid "End expression in DO loop"
msgstr "オペランドとして無効な式"
msgstr ""
msgid "Step expression in DO loop"
@@ -4564,7 +4559,7 @@
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
msgstr " --extdirs PATH 拡張のディレクトリパスを設定する\n"
@@ -4734,18 +4729,18 @@
msgid "warning: consider linking with '-static' as system libraries with"
msgstr ""
msgstr "警告: システムライブラリとリンクする時は '-static' を指定することを検討してください"
msgid " profiling support are only provided in archive format"
msgstr ""
msgstr " プロファイリングサポートは書庫フォーマット内でのみ提供されます"
msgid " conflicting code gen style switches are used"
msgstr ""
msgstr " 競合しているコード生成スタイルスイッチが使用されています"
msgid "-msoft-float and -mhard_float may not be used together"
@@ -4805,7 +4800,7 @@
msgid "ax ; {int $0x80 | syscall"
msgstr ""
msgstr "ax ; {int $0x80 | syscall"
msgid "static is not supported on TPF-OS"
@@ -4869,7 +4864,7 @@
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
msgstr "--extdirs=<path>\t拡張のディレクトリパスを設定する"
msgid "Input file is a file with a list of filenames to compile"
@@ -5388,7 +5383,7 @@
msgid "Enable label alignment optimizations"
msgstr ""
msgstr "ラベル整列最適化を有効にする"
msgid "Dynamically allocate cc registers"
@@ -5452,7 +5447,7 @@
msgid "Enable use of GPREL for read-only data in FDPIC"
msgstr ""
msgstr "FDPIC 内の読み取り専用データ用 GPREL の使用を有効にする"
@@ -5460,9 +5455,8 @@
msgstr "ハードウェア浮動小数点を利用する"
msgid "Enable inlining of PLT in function calls"
msgstr "関数呼び出しの前後でレジスタの保存を有効にする"
msgstr "関数呼び出し内で PLT のインライン化を有効にする"
msgid "Enable PIC support for building libraries"
@@ -5478,7 +5472,7 @@
msgid "Use media instructions"
msgstr ""
msgstr "media 命令を使用する"
msgid "Use multiply add/subtract instructions"
@@ -5494,7 +5488,7 @@
msgid "Do not mark ABI switches in e_flags"
msgstr ""
msgstr "e_flags 内の ABI スイッチをマークしない"
msgid "Remove redundant membars"
@@ -5506,7 +5500,7 @@
msgid "Enable setting GPRs to the result of comparisons"
msgstr ""
msgstr "比較結果を汎用レジスタに設定することを有効にする"
msgid "Change the amount of scheduler lookahead"
@@ -5565,9 +5559,8 @@
msgstr ""
msgid "Allow gcc to generate LIW instructions"
msgstr "gcc が repeat/erepeat 命令を使用することを許可する"
msgstr "gcc が LIW 命令を生成することを許可する"
msgid "Enable TPF-OS tracing code"
@@ -5640,11 +5633,11 @@
msgid "Warn if a function uses alloca or creates an array with dynamic size"
msgstr ""
msgstr "関数で alloca を使用するか、または動的サイズの配列を作成した場合に、警告する"
msgid "Warn if a single function's framesize exceeds the given framesize"
msgstr ""
msgstr "一つの関数のフレームサイズが与えられたフレームサイズを超過する場合に警告する"
msgid "z/Architecture"
@@ -5692,7 +5685,7 @@
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp を定数とする(但、間接呼び出しでは gp を save/restore する)"
msgstr "gp を定数とする(ただし、間接呼び出しでは gp を save/restore する)"
msgid "Generate self-relocatable code"
@@ -5741,39 +5734,39 @@
msgid "Specify range of registers to make fixed"
msgstr ""
msgstr "固定するレジスタの範囲を指定する"
msgid "Use data speculation before reload"
msgstr ""
msgstr "reload 前にデータ投機を使用する"
msgid "Use data speculation after reload"
msgstr ""
msgstr "reload 後にデータ投機を使用する"
msgid "Use control speculation"
msgstr ""
msgstr "制御投機を使用する"
msgid "Use in block data speculation before reload"
msgstr ""
msgstr "reload 前にブロック内データ投機を使用する"
msgid "Use in block data speculation after reload"
msgstr ""
msgstr "reload 後にブロック内データ投機を使用する"
msgid "Use in block control speculation"
msgstr ""
msgstr "ブロック内制御投機を使用する"
msgid "Use simple data speculation check"
msgstr ""
msgstr "単純データ投機検査を使用する"
msgid "Use simple data speculation check for control speculation"
msgstr ""
msgstr "制御投機用の単純データ投機検査を使用する"
msgid "If set, data speculative instructions will be chosen for schedule only if there are no other choices at the moment "
@@ -5789,7 +5782,7 @@
msgid "Place a stop bit after every cycle when scheduling"
msgstr ""
msgstr "スケジューリング時の各サイクル後にストップビットを配置する"
msgid "Assume that floating-point stores and loads are not likely to cause conflict when placed into one instruction group"
@@ -5805,7 +5798,7 @@
msgid "Don't generate checks for control speculation in selective scheduling"
msgstr ""
msgstr "選択的スケジューリング内では制御投機用の検査を生成しない"
msgid "! It would be better to auto-generate this file."
@@ -6109,7 +6102,7 @@
msgid "Enable separate data segment"
msgstr ""
msgstr "分離データセグメントを有効にする"
msgid "ID of shared library to build"
@@ -6149,7 +6142,7 @@
msgid "Warn about none ISO msvcrt scanf/printf width extensions"
msgstr ""
msgstr "非 ISO の msvcrt scanf/printf の幅拡張に関して警告する"
msgid "For nested functions on stack executable permission is set."
@@ -6201,7 +6194,7 @@
msgid "Data greater than given threshold will go into .ldata section in x86-64 medium model"
msgstr ""
msgstr "x86-64 メディアモデルでは与えられた閾値より大きいデータを .ldata セクションに配置する"
msgid "Use given x86-64 code model"
@@ -6217,16 +6210,15 @@
msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack"
msgstr ""
msgstr "スタックを再整列するために動的再整列引数ポインタ (Dynamic Realigned Argument Pointer, DRAP) を常に使用する"
msgid "Return values of functions in FPU registers"
msgstr "FPU レジスタ内の機能の値を返す"
msgid "Generate floating point mathematics using given instruction set"
msgstr "ハードウェア浮動小数点命令を使用する"
msgstr "与えられた命令集合を使用して浮動小数数値計算を生成する"
msgid "Inline all known string operations"
@@ -6314,8 +6306,9 @@
msgstr "8 バイトベクトルをメモリに返す"
msgid "Generate reciprocals instead of divss and sqrtss."
msgstr ""
msgstr "divss および sqrtss の代わりに逆数 (reciprocal) を生成する"
msgid "Generate cld instruction in the function prologue."
@@ -6331,7 +6324,7 @@
msgid "Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer."
msgstr ""
msgstr "自動ベクトル化で 256 ビット AVX 命令の代わりに 128 ビット AVX 命令を使用する"
msgid "Generate 32bit i386 code"
@@ -6382,9 +6375,8 @@
msgstr "SSE4.1 と SSE4.2 の組み込み関数とコード生成をサポートしない"
msgid "%<-msse5%> was removed"
msgstr "'-msse5' は削除されました"
msgstr "%<-msse5%> は削除されました"
msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation"
@@ -6544,7 +6536,7 @@
msgid "Use PowerPC General Purpose group optional instructions"
msgstr "PowerPC 一般用途グループオプション命令を使用する"
msgstr "PowerPC 汎用グループオプション命令を使用する"
msgid "Use PowerPC Graphics group optional instructions"
@@ -7002,7 +6994,7 @@
msgid "Assume that run-time support has been provided, so omit -lsim from the linker command line"
msgstr ""
msgstr "実行時サポートが提供されると見なし、リンカコマンドラインに -lsim を含めない"
msgid "Use arbitrary sized immediates in bit operations"
@@ -7014,7 +7006,7 @@
msgid "Set the maximum amount for a single stack increment operation"
msgstr "単一のスタックインクリメント操作の最大値を設定する"
msgstr "単一のスタック増分操作の最大値を設定する"
msgid "Always treat bitfields as int-sized"
@@ -7234,7 +7226,7 @@
msgid "Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-table"
msgstr ""
msgstr "除算戦略、次のいずれか: call, call2, fp, inv, inv:minlat, inv20u, inv20l, inv:call, inv:call2, inv:fp, call-div1, call-fp, call-table"
msgid "Specify name for 32 bit signed division function"
@@ -7282,7 +7274,7 @@
msgid "Mark MAC register as call-clobbered"
msgstr ""
msgstr "MAC レジスタを呼び出しで破壊されるとマークする"
msgid "Make structs a multiple of 4 bytes (warning: ABI altered)"
@@ -7960,7 +7952,7 @@
msgid "Auto pre/post decrement increment allowed"
msgstr "自動 pre/post デクリメント インクリメントを許容する"
msgstr "自動 前置/後置 減分/増分 を許容する"
msgid "Min/max instructions allowed"
@@ -7972,7 +7964,7 @@
msgid "Auto pre/post decrement increment not allowed"
msgstr "自動 pre/post デクリメント インクリメントを許容しない"
msgstr "自動 前置/後置 減分/増分を許容しない"
msgid "Use jsr and rts for function calls and returns"
@@ -8346,7 +8338,7 @@
msgid "Link with the fast floating-point library"
msgstr ""
msgstr "高速な浮動小数ライブラリとリンクする"
msgid "Do stack checking using bounds in L1 scratch memory"
@@ -8382,7 +8374,7 @@
msgid "Specify whether the byte access instructions should be used. Enabled by default."
msgstr ""
msgstr "バイトアクセス命令を使用するかどうかを指定する。デフォルトでは有効となる"
msgid "Enable debug output to be generated."
@@ -8390,11 +8382,11 @@
msgid "Allow a symbol value to be used as an immediate value in an instruction."
msgstr ""
msgstr "命令内でシンボル値が即値として使用されることを許可する"
msgid "Generate warnings when inefficient code is known to be generated."
msgstr ""
msgstr "非効率なコードが生成された時に警告する"
msgid "Assume the VxWorks RTP environment"
@@ -8418,7 +8410,7 @@
msgid "Warn if constant CFString objects contain non-portable characters"
msgstr ""
msgstr "定数 CFString オブジェクトが移植性の無い文字を含む場合に警告する"
msgid "Generate AT&T-style stubs for Mach-O"
@@ -8430,7 +8422,7 @@
msgid "Generate code suitable for fast turn around debugging"
msgstr ""
msgstr "デバッグを高速に行うために適したコードを生成する"
msgid "The earliest MacOS X version on which this program will run"
@@ -8442,15 +8434,15 @@
msgid "Generate code for darwin loadable kernel extensions"
msgstr ""
msgstr "darwin ロード可能カーネル拡張用のコードを生成する"
msgid "Generate code for the kernel or loadable kernel extensions"
msgstr ""
msgstr "カーネル用、またはロード可能カーネル拡張用のコードを生成する"
msgid "-iframework <dir>\tAdd <dir> to the end of the system framework include path"
msgstr ""
msgstr "-iframework <dir>\t<dir> をシステムフレームワークインクルードパスの末尾に加える"
msgid "Support legacy multi-threading"
@@ -8737,7 +8729,6 @@
msgstr ""
msgid "Use hardware floating point conversion instructions"
msgstr "ハードウェア浮動小数点変換命令を使用する"
@@ -8862,7 +8853,7 @@
msgid "-MT <target>\tAdd an unquoted target"
msgstr ""
msgstr "-MT <target>\tターゲット (引用符を付けない) を追加する"
msgid "Do not generate #line directives"
@@ -8898,11 +8889,11 @@
msgid "Warn about C constructs that are not in the common subset of C and C++"
msgstr ""
msgstr "C と C++ の共通部分集合では無い C 構文に関して警告する"
msgid "Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 200x"
msgstr ""
msgstr "ISO C++ 1998 と ISO C++ 200x で意味が異なる C++ 構文に関して警告する"
msgid "Warn about casts which discard qualifiers"
@@ -8962,7 +8953,7 @@
msgid "Warn about stray tokens after #elif and #endif"
msgstr ""
msgstr "#elif および #endif の後にあるはぐれたトークンに関して警告する"
msgid "Warn about comparison of different enum types"
@@ -8977,9 +8968,8 @@
msgstr "浮動小数点数の等価比較に関して警告する"
msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
msgstr "printf/scanf/strftime/strfmon 形式の変則的なものに関して警告する"
msgstr "printf/scanf/strftime/strfmon 書式文字列異常に関して警告する"
msgid "Warn if passing too many arguments to a function for its format string"
@@ -8998,9 +8988,8 @@
msgstr "セキュリティ問題になる可能性がある書式関数に関して警告する"
msgid "Warn about strftime formats yielding 2-digit years"
msgstr "strftime 形式が二桁で年を表している時の警告しない"
msgstr "strftime 書式が 2 桁の年の場合に警告する"
msgid "Warn about zero-length formats"
@@ -9409,7 +9398,7 @@
msgid "Don't emit dllexported inline functions unless needed"
msgstr ""
msgstr "必要が無い限り dllexported インライン関数を発行しない"
msgid "Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types."
@@ -9501,7 +9490,7 @@
msgid "Generate run time type descriptor information"
msgstr ""
msgstr "実行時型記述子情報を生成する"
msgid "Use the same size for double as for float"
@@ -9889,19 +9878,16 @@
msgstr "関数が __attribute__((pure)) の候補となりそうな場合に警告する"
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr "列挙定数の switch で case 指定が欠けているものに関して警告する"
msgstr "列挙定数を使用した switch 文で default 文が無いか特定の case が無い場合に警告する"
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr "列挙定数の switch で case 指定が欠けているものに関して警告する"
msgstr "列挙定数を使用した switch 文で \"default:\" 文が無い場合に警告する"
msgid "Warn about all enumerated switches missing a specific case"
msgstr "列挙定数の switch で case 指定が欠けているものに関して警告する"
msgstr "列挙定数を使用した switch 文で特定の case が無い場合に警告する"
msgid "Do not suppress warnings from system headers"
@@ -10000,9 +9986,8 @@
msgstr "自動増加/減少命令を生成する"
msgid "Generate code to check bounds before indexing arrays"
msgstr "配列の添字と添字境界を検査するコードを生成する"
msgstr "配列の添え字を使用する前に境界検査を行うコードを生成する"
@@ -10043,7 +10028,7 @@
msgid "Looks for opportunities to reduce stack adjustments and stack references."
msgstr ""
msgstr "スタック調整およびスタック参照を削減する機会を探す"
msgid "Do not put uninitialized globals in the common section"
@@ -10058,18 +10043,16 @@
msgstr ""
msgid "Perform comparison elimination after register allocation has finished"
msgstr "グローバル共通部分式を除去する"
msgstr "レジスタは位置が完了した後に比較の除去を行う"
msgid "Do not perform optimizations increasing noticeably stack usage"
msgstr ""
msgstr "スタック使用量を著しく増加させる最適化を行わない"
msgid "Perform a register copy-propagation optimization pass"
msgstr "最適化過程のレジスタつけ変えを行なう"
msgstr ""
msgid "Perform cross-jumping optimization"
@@ -10101,7 +10084,7 @@
msgid "Map one directory name to another in debug information"
msgstr ""
msgstr "デバッグ情報内のディレクトリー名を他のものにマップする"
msgid "Defer popping functions args from stack until later"
@@ -10116,9 +10099,8 @@
msgstr "無意味な null ポインタ検査を削除する"
msgid "Try to convert virtual calls to direct ones."
msgstr "リンカが PIC 呼び出しを直接呼び出しに変更することを許可するように試みる"
msgstr "仮想呼び出しを直接呼び出しに変換することを試みる"
@@ -10137,7 +10119,7 @@
msgid "-fdump-final-insns=filename\tDump to filename the insns at the end of translation"
msgstr ""
msgstr "-fdump-final-insns=filename\t翻訳終了時に filename へ命令をダンプする"
msgid "-fdump-go-spec=filename\tWrite all declarations to file as Go code"
@@ -10173,7 +10155,7 @@
msgid "Perform unused type elimination in debug info"
msgstr ""
msgstr "デバッグ情報内で使用されていない型の除去を行う"
msgid "Do not suppress C++ class debug information."
@@ -10181,25 +10163,24 @@
msgid "Generate debug information to support Identical Code Folding (ICF)"
msgstr ""
msgstr "Identical Code Folding (ICF) をサポートするためのデバッグ情報を生成する"
msgid "Enable exception handling"
msgstr "例外処理を有効にする"
msgid "Perform a number of minor, expensive optimizations"
msgstr "目立たない、コストのかかる最適化を行なう"
msgstr "多くの、目立たないがコストが高い最適化を行う"
msgid "-fexcess-precision=[fast|standard]\tSpecify handling of excess floating-point precision"
msgstr ""
msgstr "-fexcess-precision=[fast|standard]\t余分な浮動小数点精度の取り扱いを指定する"
msgid "unknown excess precision style %qs"
msgstr ""
msgstr "不明な余分な精度スタイル %qs です"
msgid "Assume no NaNs or infinities are generated"
@@ -10222,52 +10203,45 @@
msgstr ""
msgid "unknown floating point contraction style %qs"
msgstr "浮動小数点定数を TOC 内に配置する"
msgstr "不明な浮動小数短縮形 %qs です"
msgid "Allow function addresses to be held in registers"
msgstr "関数アドレスをレジスタに持たせる事を許可する"
msgid "Place each function into its own section"
msgstr "各々の関数をそれ自身のセクションに配置する"
msgstr "それぞれの関数をそれ自身のセクションに配置する"
msgid "Perform global common subexpression elimination"
msgstr "グローバル共通部分式を除去する"
msgstr "大域共通部分式の除去を行う"
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr "グローバル共通部分式を除去する"
msgstr ""
msgid "Perform store motion after global common subexpression elimination"
msgstr "グローバル共通部分式を除去する"
msgstr ""
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr ""
msgid "Perform global common subexpression elimination after register allocation"
msgstr "グローバル共通部分式を除去する"
msgstr "レジスタ配置後に大域共通部分式の除去を行う"
msgid "Enable in and out of Graphite representation"
msgstr "自動テンプレート実体化を有効にする"
msgstr ""
msgid "Enable Graphite Identity transformation"
msgstr "呼び出しグラフ情報を送出する"
msgstr ""
msgid "Mark all loops as parallel"
@@ -10306,9 +10280,8 @@
msgstr ""
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "条件的な実行への変更のための閾値を変更する"
msgstr ""
msgid "Convert conditional jumps in innermost loops to branchless equivalents"
@@ -10376,13 +10349,12 @@
msgstr ""
msgid "Discover pure and const functions"
msgstr "使われない仮想関数を切り捨てる"
msgstr "純粋および定数関数を見つける"
msgid "Discover readonly and non addressable static variables"
msgstr ""
msgstr "読み取り専用およびアドレス付けできない静的変数を見つける"
msgid "Perform matrix layout flattening and transposing based"
@@ -10415,9 +10387,8 @@
msgstr ""
msgid "Share slots for saving different hard registers."
msgstr "引数レジスタにローカルのものを格納する"
msgstr ""
msgid "Share stack slots for spilled pseudo-registers."
@@ -10621,19 +10592,19 @@
msgid "Enable basic program profiling code"
msgstr ""
msgstr "基本プログラムプロファイリングコードを有効にする"
msgid "Insert arc-based program profiling code"
msgstr ""
msgstr "円弧ベースプログラムプロファイリングコードを挿入する"
msgid "Set the top-level directory for storing the profile data."
msgstr ""
msgstr "プロファイルデータ保存用の最上位ディレクリーを設定する"
msgid "Enable correction of flow inconsistent profile data input"
msgstr ""
msgstr "フロー一貫性が無いデータ入力の訂正を有効にする"
msgid "Enable common options for generating profile info for profile feedback directed optimizations"
@@ -10653,7 +10624,7 @@
msgid "Insert code to profile values of expressions"
msgstr ""
msgstr "式の値をプロファイルするためのコードを挿入する"
msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
@@ -11836,7 +11807,7 @@
msgid "nested function %q+D declared but never defined"
msgstr ""
msgstr "入れ子になった関数 %q+D が宣言されましたが定義されていません"
@@ -11893,7 +11864,7 @@
msgid "prototype for %q+D follows non-prototype definition"
msgstr ""
msgstr "非プロトタイプ定義に続いて %q+D 用のプロトタイプがあります"
@@ -11969,9 +11940,9 @@
msgstr "%q+D が異なる型で再定義されました"
msgid "redefinition of typedef %q+D with variably modified type"
msgstr "%q+D が異なる型で再定義されました"
msgstr ""
@@ -12016,17 +11987,17 @@
msgid "extern declaration of %q+D follows declaration with no linkage"
msgstr ""
msgstr "リンク無し宣言の後に %q+D の extern 宣言が続いています"
msgid "declaration of %q+D with no linkage follows extern declaration"
msgstr ""
msgstr "extern 宣言の後にリンク無し %q+D の宣言が続いています"
msgid "redeclaration of %q+D with no linkage"
msgstr ""
msgstr "リンク無し %q+D の再定義です"
@@ -12354,7 +12325,7 @@
msgid "defining a type in a compound literal is invalid in C++"
msgstr ""
msgstr "複合リテラル内での型定義は C++ では無効です"
@@ -13393,23 +13364,23 @@
msgid "expression in static assertion is not an integer"
msgstr ""
msgstr "静的アサーション内の式が整数ではありません"
msgid "expression in static assertion is not an integer constant expression"
msgstr ""
msgstr "静的アサーション内の式が整数定数式ではありません"
msgid "expression in static assertion is not constant"
msgstr ""
msgstr "静的アサーション内の式が定数ではありません"
msgid "static assertion failed: %E"
msgstr ""
msgstr "静的アサーションに失敗しました: %E"
@@ -14125,12 +14096,12 @@
msgid "increment of enumeration value is invalid in C++"
msgstr "列挙値のインクリメントは C++ では無効です"
msgstr "列挙値の増分は C++ では無効です"
msgid "decrement of enumeration value is invalid in C++"
msgstr "列挙値のデクリメントは C++ では無効です"
msgstr "列挙値の減分は C++ では無効です"
@@ -14140,22 +14111,22 @@
msgid "wrong type argument to increment"
msgstr "インクリメントする引数の型が間違っています"
msgstr "増分する引数の型が間違っています"
msgid "wrong type argument to decrement"
msgstr "デクリメントする引数の型が間違っています"
msgstr "減分する引数の型が間違っています"
msgid "increment of pointer to unknown structure"
msgstr "不明な構造体へのポインタのインクリメントです"
msgstr "不明な構造体へのポインタの増分です"
msgid "decrement of pointer to unknown structure"
msgstr "不明な構造体へのポインタのデクリメントです"
msgstr "不明な構造体へのポインタの減分です"
@@ -14170,12 +14141,12 @@
msgid "increment of read-only location %qE"
msgstr "読み取り専用位置 %qE のインクリメントです"
msgstr "読み取り専用位置 %qE の増分です"
msgid "decrement of read-only location %qE"
msgstr "読み取り専用位置 %qE のデクリメントです"
msgstr "読み取り専用位置 %qE の減分です"
@@ -19787,12 +19758,12 @@
msgid "increment of member %qD in read-only object"
msgstr "読み取り専用オブジェクト内のメンバ %qD のインクリメントです"
msgstr "読み取り専用オブジェクト内のメンバ %qD の増分です"
msgid "decrement of member %qD in read-only object"
msgstr "読み取り専用オブジェクト内のメンバ %qD のデクリメントです"
msgstr "読み取り専用オブジェクト内のメンバ %qD の減分です"
@@ -19807,12 +19778,12 @@
msgid "increment of read-only member %qD"
msgstr "読み取り専用メンバ %qD のインクリメントです"
msgstr "読み取り専用メンバ %qD の増分です"
msgid "decrement of read-only member %qD"
msgstr "読み取り専用メンバ %qD のデクリメントです"
msgstr "読み取り専用メンバ %qD の減分です"
@@ -19827,12 +19798,12 @@
msgid "increment of read-only variable %qD"
msgstr "読み取り専用変数 %qD のインクリメントです"
msgstr "読み取り専用変数 %qD の増分です"
msgid "decrement of read-only variable %qD"
msgstr "読み取り専用変数 %qD のデクリメントです"
msgstr "読み取り専用変数 %qD の減分です"
@@ -19847,12 +19818,12 @@
msgid "increment of read-only parameter %qD"
msgstr "読み取り専用パラメータ %qD のインクリメントです"
msgstr "読み取り専用パラメータ %qD の増分です"
msgid "decrement of read-only parameter %qD"
msgstr "読み取り専用パラメータ %qD のデクリメントです"
msgstr "読み取り専用パラメータ %qD の減分です"
@@ -19867,12 +19838,12 @@
msgid "increment of read-only named return value %qD"
msgstr "読み取り専用名前付き戻り値 %qD のインクリメントです"
msgstr "読み取り専用名前付き戻り値 %qD の増分です"
msgid "decrement of read-only named return value %qD"
msgstr "読み取り専用名前付き戻り値 %qD のデクリメントです"
msgstr "読み取り専用名前付き戻り値 %qD の減分です"
@@ -19887,12 +19858,12 @@
msgid "increment of function %qD"
msgstr "関数 %qD のインクリメントです"
msgstr "関数 %qD の増分です"
msgid "decrement of function %qD"
msgstr "関数 %qD のデクリメントです"
msgstr "関数 %qD の減分です"
@@ -19912,12 +19883,12 @@
msgid "lvalue required as increment operand"
msgstr "インクリメントの被演算子として左辺値が必要です"
msgstr "増分の被演算子として左辺値が必要です"
msgid "lvalue required as decrement operand"
msgstr "デクリメントの被演算子として左辺値が必要です"
msgstr "減分の被演算子として左辺値が必要です"
@@ -20556,12 +20527,12 @@
msgid "missing increment expression"
msgstr "インクリメント式がありません"
msgstr "増分式がありません"
msgid "invalid increment expression"
msgstr "無効なインクリメント式です"
msgstr "無効な増分式です"
@@ -20571,7 +20542,7 @@
msgid "obsolete option -I- used, please use -iquote instead"
msgstr "廃止あれたオプション -I- が使用されています。代わりに -iquote を使用してください"
msgstr "廃止されたオプション -I- が使用されています。代わりに -iquote を使用してください"
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -8,18 +8,17 @@
## This file is part of the GNU ISO C++ Library. This library is free
## software; you can redistribute it and/or modify it under the
## terms of the GNU General Public License as published by the
## Free Software Foundation; either version 2, or (at your option)
## Free Software Foundation; either version 3, or (at your option)
## any later version.
##
## This library is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this library; see the file COPYING. If not, write to the Free
## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
## USA.
## with this library; see the file COPYING3. If not see
## <http://www.gnu.org/licenses/>.
include $(top_srcdir)/fragment.am
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Alpha Linux.
Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -36,16 +36,17 @@
{
unsigned int *pc = context->ra;
struct sigcontext *sc;
long new_cfa, i;
long new_cfa;
int i;
if (pc[0] != 0x47fe0410
|| pc[2] != 0x00000083 )
|| pc[2] != 0x00000083)
return _URC_END_OF_STACK;
if (context->cfa == 0)
return _URC_END_OF_STACK;
if (pc[1] == 0x201f0067)
sc = context->cfa;
else if (pc[1] == 0x201f015f)
else if (pc[1] == 0x201f015f)
{
struct rt_sigframe {
struct siginfo info;
@@ -55,6 +56,7 @@
}
else
return _URC_END_OF_STACK;
new_cfa = sc->sc_regs[30];
fs->regs.cfa_how = CFA_REG_OFFSET;
fs->regs.cfa_reg = 30;
@@ -63,13 +65,13 @@
{
fs->regs.reg[i].how = REG_SAVED_OFFSET;
fs->regs.reg[i].loc.offset
= (long)&sc->sc_regs[i] - new_cfa;
= (long) &sc->sc_regs[i] - new_cfa;
}
for (i = 0; i < 31; ++i)
{
fs->regs.reg[i+32].how = REG_SAVED_OFFSET;
fs->regs.reg[i+32].loc.offset
= (long)&sc->sc_fpregs[i] - new_cfa;
= (long) &sc->sc_fpregs[i] - new_cfa;
}
fs->regs.reg[64].how = REG_SAVED_OFFSET;
fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
@@ -77,4 +79,21 @@
fs->signal_frame = 1;
return _URC_NO_REASON;
}
#define MD_FROB_UPDATE_CONTEXT alpha_frob_update_context
static void
alpha_frob_update_context (struct _Unwind_Context *context,
_Unwind_FrameState *fs ATTRIBUTE_UNUSED)
{
unsigned int *pc = context->ra;
if (pc[0] == 0x47fe0410
&& pc[2] == 0x00000083
&& (pc[1] == 0x201f0067
|| pc[1] == 0x201f015f))
_Unwind_SetSignalFrame (context, 1);
}
@@ -3570,6 +3570,10 @@
add_libcall (libcall_htab,
convert_optab_libfunc (trunc_optab, HFmode, SFmode));
add_libcall (libcall_htab,
convert_optab_libfunc (sfix_optab, SImode, DFmode));
add_libcall (libcall_htab,
convert_optab_libfunc (ufix_optab, SImode, DFmode));
add_libcall (libcall_htab,
convert_optab_libfunc (sfix_optab, DImode, DFmode));
add_libcall (libcall_htab,
convert_optab_libfunc (ufix_optab, DImode, DFmode));
@@ -3577,6 +3581,28 @@
convert_optab_libfunc (sfix_optab, DImode, SFmode));
add_libcall (libcall_htab,
convert_optab_libfunc (ufix_optab, DImode, SFmode));
/* Values from double-precision helper functions are returned in core
registers if the selected core only supports single-precision
arithmetic, even if we are using the hard-float ABI. The same is
true for single-precision helpers, but we will never be using the
hard-float ABI on a CPU which doesn't support single-precision
operations in hardware. */
add_libcall (libcall_htab, optab_libfunc (add_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (sdiv_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (smul_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (neg_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (sub_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (eq_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (lt_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (le_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (ge_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (gt_optab, DFmode));
add_libcall (libcall_htab, optab_libfunc (unord_optab, DFmode));
add_libcall (libcall_htab, convert_optab_libfunc (sext_optab, DFmode,
SFmode));
add_libcall (libcall_htab, convert_optab_libfunc (trunc_optab, SFmode,
DFmode));
}
return libcall && htab_find (libcall_htab, libcall) != NULL;
@@ -5075,6 +5101,14 @@
if (IS_STACKALIGN (func_type))
return false;
/* The AAPCS says that, on bare-metal, calls to unresolved weak
references should become a NOP. Don't convert such calls into
sibling calls. */
if (TARGET_AAPCS_BASED
&& arm_abi == ARM_ABI_AAPCS
&& DECL_WEAK (decl))
return false;
@@ -5379,11 +5413,7 @@
if (TARGET_32BIT)
{
emit_insn (gen_pic_load_addr_32bit (pic_reg, pic_rtx));
if (TARGET_ARM)
emit_insn (gen_pic_add_dot_plus_eight (pic_reg, pic_reg, labelno));
else
emit_insn (gen_pic_add_dot_plus_four (pic_reg, pic_reg, labelno));
emit_insn (gen_pic_load_addr_unified (pic_reg, pic_rtx, labelno));
}
else
{
@@ -5396,10 +5426,10 @@
thumb_find_work_register (saved_regs));
emit_insn (gen_pic_load_addr_thumb1 (pic_tmp, pic_rtx));
emit_insn (gen_movsi (pic_offset_table_rtx, pic_tmp));
emit_insn (gen_pic_add_dot_plus_four (pic_reg, pic_reg, labelno));
}
else
emit_insn (gen_pic_load_addr_thumb1 (pic_reg, pic_rtx));
emit_insn (gen_pic_add_dot_plus_four (pic_reg, pic_reg, labelno));
emit_insn (gen_pic_load_addr_unified (pic_reg, pic_rtx, labelno));
}
}
@@ -5428,21 +5458,8 @@
offset_rtx = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, orig, offset_rtx),
UNSPEC_SYMBOL_OFFSET);
offset_rtx = gen_rtx_CONST (Pmode, offset_rtx);
if (TARGET_32BIT)
{
emit_insn (gen_pic_load_addr_32bit (reg, offset_rtx));
if (TARGET_ARM)
insn = emit_insn (gen_pic_add_dot_plus_eight (reg, reg, labelno));
else
insn = emit_insn (gen_pic_add_dot_plus_four (reg, reg, labelno));
}
else
{
emit_insn (gen_pic_load_addr_thumb1 (reg, offset_rtx));
insn = emit_insn (gen_pic_add_dot_plus_four (reg, reg, labelno));
}
insn = emit_insn (gen_pic_load_addr_unified (reg, offset_rtx, labelno));
return insn;
}
@@ -5485,7 +5502,7 @@
will_be_in_index_register (const_rtx x)
{
return GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_PIC_SYM;
return GET_CODE (x) == UNSPEC && (XINT (x, 1) == UNSPEC_PIC_SYM);
}
@@ -7231,6 +7248,15 @@
*total = COSTS_N_INSNS (1);
else
*total = COSTS_N_INSNS (4);
return true;
case UNSPEC:
/* We cost this as high as our memory costs to allow this to
be hoisted from loops. */
if (XINT (x, 1) == UNSPEC_PIC_UNIFIED)
{
*total = COSTS_N_INSNS (2 + ARM_NUM_REGS (mode));
}
return true;
default:
@@ -9426,7 +9452,8 @@
arm_note_pic_base (rtx *x, void *date ATTRIBUTE_UNUSED)
{
if (GET_CODE (*x) == UNSPEC
&& XINT (*x, 1) == UNSPEC_PIC_BASE)
&& (XINT (*x, 1) == UNSPEC_PIC_BASE
|| XINT (*x, 1) == UNSPEC_PIC_UNIFIED))
return 1;
return 0;
}
@@ -9812,6 +9839,9 @@
rtx base_reg_rtx = NULL;
int i, stm_case;
int base_writeback = TARGET_THUMB1;
/* Can only handle up to MAX_LDM_STM_OPS insns at present, though could be
easily extended if required. */
gcc_assert (nops >= 2 && nops <= MAX_LDM_STM_OPS);
@@ -9869,7 +9899,9 @@
if (unsorted_regs[i] < 0
|| (TARGET_THUMB1 && unsorted_regs[i] > LAST_LO_REGNUM)
|| (TARGET_THUMB2 && unsorted_regs[i] == base_reg)
/* The effects are unpredictable if the base register is
both updated and stored. */
|| (base_writeback && unsorted_regs[i] == base_reg)
|| (TARGET_THUMB2 && unsorted_regs[i] == SP_REGNUM)
|| unsorted_regs[i] > 14)
return 0;
@@ -19571,39 +19603,34 @@
emit_move_insn (mem, tmp2);
}
/* Set up operands for a register copy from src to dest, taking care not to
clobber registers in the process.
FIXME: This has rather high polynomial complexity (O(n^3)?) but shouldn't
be called with a large N, so that should be OK. */
/* Set up OPERANDS for a register copy from SRC to DEST, taking care
not to early-clobber SRC registers in the process.
We assume that the operands described by SRC and DEST represent a
decomposed copy of OPERANDS[1] into OPERANDS[0]. COUNT is the
number of components into which the copy has been decomposed. */
void
neon_disambiguate_copy (rtx *operands, rtx *dest, rtx *src, unsigned int count)
{
unsigned int copied = 0, opctr = 0;
unsigned int done = (1 << count) - 1;
unsigned int i, j;
unsigned int i;
while (copied != done)
if (!reg_overlap_mentioned_p (operands[0], operands[1])
|| REGNO (operands[0]) < REGNO (operands[1]))
{
for (i = 0; i < count; i++)
{
int good = 1;
for (j = 0; good && j < count; j++)
if (i != j && (copied & (1 << j)) == 0
&& reg_overlap_mentioned_p (src[j], dest[i]))
good = 0;
if (good)
{
operands[opctr++] = dest[i];
operands[opctr++] = src[i];
copied |= 1 << i;
}
}
{
operands[2 * i] = dest[i];
operands[2 * i + 1] = src[i];
}
}
gcc_assert (opctr == count * 2);
else
{
for (i = 0; i < count; i++)
{
operands[2 * i] = dest[count - i - 1];
operands[2 * i + 1] = src[count - i - 1];
}
}
}
/* Expand an expression EXP that calls a built-in function,
@@ -20859,6 +20886,8 @@
gcc_assert (amount >= 0);
if (amount)
{
emit_insn (gen_blockage ());
if (amount < 512)
emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
GEN_INT (amount)));
@@ -104,6 +104,7 @@
(UNSPEC_SYMBOL_OFFSET 27) ; The offset of the start of the symbol from
; another symbolic address.
(UNSPEC_MEMORY_BARRIER 28) ; Represent a memory barrier.
(UNSPEC_PIC_UNIFIED 29) ; Create a common pic addressing form.
]
)
@@ -3272,7 +3273,7 @@
bool need_else;
if (which_alternative != 0 || operands[3] != const0_rtx
|| (code != PLUS && code != MINUS && code != IOR && code != XOR))
|| (code != PLUS && code != IOR && code != XOR))
need_else = true;
else
need_else = false;
@@ -5257,6 +5258,30 @@
"operands[3] = can_create_pseudo_p () ? gen_reg_rtx (SImode) : operands[0];"
)
;; operand1 is the memory address to go into
;; pic_load_addr_32bit.
;; operand2 is the PIC label to be emitted
;; from pic_add_dot_plus_eight.
;; We do this to allow hoisting of the entire insn.
(define_insn_and_split "pic_load_addr_unified"
[(set (match_operand:SI 0 "s_register_operand" "=r,r,l")
(unspec:SI [(match_operand:SI 1 "" "mX,mX,mX")
(match_operand:SI 2 "" "")]
UNSPEC_PIC_UNIFIED))]
"flag_pic"
"#"
"&& reload_completed"
[(set (match_dup 0) (unspec:SI [(match_dup 1)] UNSPEC_PIC_SYM))
(set (match_dup 0) (unspec:SI [(match_dup 0) (match_dup 3)
(match_dup 2)] UNSPEC_PIC_BASE))]
"operands[3] = TARGET_THUMB ? GEN_INT (4) : GEN_INT (8);"
[(set_attr "type" "load1,load1,load1")
(set_attr "pool_range" "4096,4096,1024")
(set_attr "neg_pool_range" "4084,0,0")
(set_attr "arch" "a,t2,t1")
(set_attr "length" "8,6,4")]
)
;; The rather odd constraints on the following are to force reload to leave
;; the insn alone, and to force the minipool generation pass to then move
;; the GOT symbol to memory.
@@ -5338,7 +5363,8 @@
(const_int 8)
(match_operand 1 "" "")]
UNSPEC_PIC_BASE))
(set (match_operand:SI 2 "register_operand" "") (mem:SI (match_dup 0)))]
(set (match_operand:SI 2 "arm_general_register_operand" "")
(mem:SI (match_dup 0)))]
"TARGET_ARM && peep2_reg_dead_p (2, operands[0])"
[(set (match_dup 2)
(mem:SI (unspec:SI [(match_dup 3)
@@ -7346,7 +7372,7 @@
(not:SI (match_operator:SI 1 "arm_comparison_operator"
[(match_operand 2 "cc_register" "") (const_int 0)])))]
"TARGET_ARM"
"mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
"mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
[(set_attr "conds" "use")
(set_attr "insn" "mov")
(set_attr "length" "8")]
@@ -257,7 +257,7 @@
(not:SI (match_operator:SI 1 "arm_comparison_operator"
[(match_operand 2 "cc_register" "") (const_int 0)])))]
"TARGET_THUMB2"
"ite\\t%D1\;mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
"ite\\t%D1\;mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
[(set_attr "conds" "use")
(set_attr "length" "10")]
)
@@ -684,6 +684,7 @@
(match_operand:SI 2 "low_reg_or_int_operand" "")]))]
"TARGET_THUMB2
&& peep2_regno_dead_p(0, CC_REGNUM)
&& (CONST_INT_P (operands[2]) || operands[1] == operands[0])
&& ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
|| REG_P(operands[2]))"
[(parallel
@@ -696,10 +697,10 @@
)
(define_insn "*thumb2_shiftsi3_short"
[(set (match_operand:SI 0 "low_register_operand" "=l")
[(set (match_operand:SI 0 "low_register_operand" "=l,l")
(match_operator:SI 3 "shift_operator"
[(match_operand:SI 1 "low_register_operand" "l")
(match_operand:SI 2 "low_reg_or_int_operand" "lM")]))
[(match_operand:SI 1 "low_register_operand" "0,l")
(match_operand:SI 2 "low_reg_or_int_operand" "l,M")]))
(clobber (reg:CC CC_REGNUM))]
"TARGET_THUMB2 && reload_completed
&& ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
@@ -70,7 +70,7 @@
{ "attiny2313a", ARCH_AVR25, "__AVR_ATtiny2313A__", 1, 0x0060, "tn2313a" },
{ "attiny24", ARCH_AVR25, "__AVR_ATtiny24__", 1, 0x0060, "tn24" },
{ "attiny24a", ARCH_AVR25, "__AVR_ATtiny24A__", 1, 0x0060, "tn24a" },
{ "attiny4313", ARCH_AVR25, "__AVR_ATtiny4313__", 1, 0x0060, "tn4313" },
{ "attiny4313", ARCH_AVR25, "__AVR_ATtiny4313__", 0, 0x0060, "tn4313" },
{ "attiny44", ARCH_AVR25, "__AVR_ATtiny44__", 0, 0x0060, "tn44" },
{ "attiny44a", ARCH_AVR25, "__AVR_ATtiny44A__", 0, 0x0060, "tn44a" },
{ "attiny84", ARCH_AVR25, "__AVR_ATtiny84__", 0, 0x0060, "tn84" },
@@ -88,7 +88,7 @@
{ "attiny87", ARCH_AVR25, "__AVR_ATtiny87__", 0, 0x0100, "tn87" },
{ "attiny48", ARCH_AVR25, "__AVR_ATtiny48__", 0, 0x0100, "tn48" },
{ "attiny88", ARCH_AVR25, "__AVR_ATtiny88__", 0, 0x0100, "tn88" },
{ "at86rf401", ARCH_AVR25, "__AVR_AT86RF401__", 1, 0x0060, "86401" },
{ "at86rf401", ARCH_AVR25, "__AVR_AT86RF401__", 0, 0x0060, "86401" },
{ "avr3", ARCH_AVR3, NULL, 0, 0x0060, "43355" },
{ "at43usb355", ARCH_AVR3, "__AVR_AT43USB355__", 0, 0x0060, "43355" },
@@ -1879,9 +1879,12 @@
}
else if (test_hard_reg_class (STACK_REG, src))
{
*l = 2;
return (AS2 (in,%A0,__SP_L__) CR_TAB
AS2 (in,%B0,__SP_H__));
*l = 2;
return AVR_HAVE_8BIT_SP
? (AS2 (in,%A0,__SP_L__) CR_TAB
AS1 (clr,%B0))
: (AS2 (in,%A0,__SP_L__) CR_TAB
AS2 (in,%B0,__SP_H__));
}
if (AVR_HAVE_MOVW)
@@ -5151,6 +5154,7 @@
if (new_decl_p
&& decl && DECL_P (decl)
&& NULL_TREE == DECL_INITIAL (decl)
&& !DECL_EXTERNAL (decl)
&& avr_progmem_p (decl, DECL_ATTRIBUTES (decl)))
{
warning (OPT_Wuninitialized,
@@ -5173,10 +5177,10 @@
default_file_start ();
fputs ("__SREG__ = 0x3f\n"
"__SP_H__ = 0x3e\n"
"__SP_L__ = 0x3d\n", asm_out_file);
fputs ("__SREG__ = 0x3f\n", asm_out_file);
if (!AVR_HAVE_8BIT_SP)
fputs ("__SP_H__ = 0x3e\n", asm_out_file);
fputs ("__SP_L__ = 0x3d\n", asm_out_file);
fputs ("__tmp_reg__ = 0\n"
"__zero_reg__ = 1\n", asm_out_file);
@@ -299,7 +299,7 @@
[(set (match_operand:HI 0 "stack_register_operand" "=q")
(unspec_volatile:HI [(match_operand:HI 1 "register_operand" "r")]
UNSPECV_WRITE_SP_IRQ_OFF))]
""
"!AVR_HAVE_8BIT_SP"
"out __SP_H__, %B1
out __SP_L__, %A1"
[(set_attr "length" "2")
@@ -309,7 +309,7 @@
[(set (match_operand:HI 0 "stack_register_operand" "=q")
(unspec_volatile:HI [(match_operand:HI 1 "register_operand" "r")]
UNSPECV_WRITE_SP_IRQ_ON))]
""
"!AVR_HAVE_8BIT_SP"
"cli
out __SP_H__, %B1
sei
@@ -582,7 +582,16 @@
push r17
push r28
push r29
#if defined (__AVR_HAVE_8BIT_SP__)
in r28,__SP_L__
sub r28,r26
clr r29
out __SP_L__,r28
#else
in r28,__SP_L__
in r29,__SP_H__
sub r28,r26
sbc r29,r27
@@ -591,6 +600,7 @@
out __SP_H__,r29
out __SREG__,__tmp_reg__
out __SP_L__,r28
#endif
#if defined (__AVR_HAVE_EIJMP_EICALL__)
eijmp
#else
@@ -625,6 +635,15 @@
ldd r16,Y+4
ldd r17,Y+3
ldd r26,Y+2
#if defined (__AVR_HAVE_8BIT_SP__)
ldd r29,Y+1
add r28,r30
out __SP_L__,r28
mov r28, r26
#else
ldd r27,Y+1
add r28,r30
adc r29,__zero_reg__
@@ -635,6 +654,7 @@
out __SP_L__,r28
mov_l r28, r26
mov_h r29, r27
#endif
ret
.endfunc
#endif /* defined (L_epilogue) */
@@ -759,7 +759,7 @@
#ifdef __x86_64__
extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm256_insert_epi64 (__m256i __X, int __D, int const __N)
_mm256_insert_epi64 (__m256i __X, long long __D, int const __N)
{
__m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
__Y = _mm_insert_epi64 (__Y, __D, __N % 2);
@@ -507,7 +507,7 @@
processor = PROCESSOR_AMDFAM10;
else if (has_sse2 || has_longmode)
processor = PROCESSOR_K8;
else if (has_3dnowp)
else if (has_3dnowp && family == 6)
processor = PROCESSOR_ATHLON;
else if (has_mmx)
processor = PROCESSOR_K6;
@@ -147,3 +147,6 @@
#if FBSD_MAJOR >= 6
#define SUBTARGET32_DEFAULT_CPU "i486"
#endif
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
@@ -14250,6 +14250,13 @@
return;
case 'H':
if (!offsettable_memref_p (x))
{
output_operand_lossage ("operand is not an offsettable memory "
"reference, invalid operand "
"code 'H'");
return;
}
/* It doesn't actually matter what mode we use here, as we're
only going to use this for printing. */
x = adjust_address_nv (x, DImode, 8);
@@ -16329,7 +16336,6 @@
basic_block bb = BLOCK_FOR_INSN (insn);
int distance = 0;
df_ref *def_rec;
enum attr_type insn_type;
if (insn != BB_HEAD (bb))
{
@@ -16345,8 +16351,8 @@
&& (regno1 == DF_REF_REGNO (*def_rec)
|| regno2 == DF_REF_REGNO (*def_rec)))
{
insn_type = get_attr_type (prev);
if (insn_type != TYPE_LEA)
if (recog_memoized (prev) < 0
|| get_attr_type (prev) != TYPE_LEA)
goto done;
}
}
@@ -16385,8 +16391,8 @@
&& (regno1 == DF_REF_REGNO (*def_rec)
|| regno2 == DF_REF_REGNO (*def_rec)))
{
insn_type = get_attr_type (prev);
if (insn_type != TYPE_LEA)
if (recog_memoized (prev) < 0
|| get_attr_type (prev) != TYPE_LEA)
goto done;
}
}
@@ -1960,7 +1960,7 @@
(define_insn "*movdi_internal_rex64"
[(set (match_operand:DI 0 "nonimmediate_operand"
"=r,r ,r,m ,!m,*y,*y,?r ,m ,?*Ym,?*y,*x,*x,?r ,m,?*Yi,*x,?*x,?*Ym")
"=r,r ,r,m ,!o,*y,*y,?r ,m ,?*Ym,?*y,*x,*x,?r ,m,?*Yi,*x,?*x,?*Ym")
(match_operand:DI 1 "general_operand"
"Z ,rem,i,re,n ,C ,*y,*Ym,*y,r ,m ,C ,*x,*Yi,*x,r ,m ,*Ym,*x"))]
"TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
@@ -2905,7 +2905,7 @@
(define_insn "*movdf_internal_rex64"
[(set (match_operand:DF 0 "nonimmediate_operand"
"=f,m,f,r ,m,!r,!m,Y2*x,Y2*x,Y2*x,m ,Yi,r ")
"=f,m,f,r ,m,!r,!o,Y2*x,Y2*x,Y2*x,m ,Yi,r ")
(match_operand:DF 1 "general_operand"
"fm,f,G,rm,r,F ,F ,C ,Y2*x,m ,Y2*x,r ,Yi"))]
"TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))
@@ -3647,7 +3647,7 @@
(match_operand:SI 1 "nonimmediate_operand" "rm,0,r ,m ,r ,m")))]
"TARGET_64BIT"
"@
mov\t{%k1, %k0|%k0, %k1}
mov{l}\t{%1, %k0|%k0, %1}
#
movd\t{%1, %0|%0, %1}
movd\t{%1, %0|%0, %1}
@@ -5103,7 +5103,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(set (match_dup 0) (float:MODEF (match_dup 1)))])
(define_split
@@ -5116,7 +5116,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(set (match_dup 2) (match_dup 1))
(set (match_dup 0) (float:MODEF (match_dup 2)))])
@@ -5207,7 +5207,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(const_int 0)]
{
rtx op1 = operands[1];
@@ -5248,7 +5248,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(const_int 0)]
{
operands[3] = simplify_gen_subreg (<ssevecmode>mode, operands[0],
@@ -5270,7 +5270,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(const_int 0)]
{
rtx op1 = operands[1];
@@ -5314,7 +5314,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(const_int 0)]
{
operands[3] = simplify_gen_subreg (<ssevecmode>mode, operands[0],
@@ -5375,7 +5375,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(set (match_dup 0) (float:MODEF (match_dup 1)))])
(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit"
@@ -5410,7 +5410,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(set (match_dup 2) (match_dup 1))
(set (match_dup 0) (float:MODEF (match_dup 2)))])
@@ -5423,7 +5423,7 @@
&& reload_completed
&& (SSE_REG_P (operands[0])
|| (GET_CODE (operands[0]) == SUBREG
&& SSE_REG_P (operands[0])))"
&& SSE_REG_P (SUBREG_REG (operands[0]))))"
[(set (match_dup 0) (float:MODEF (match_dup 1)))])
(define_insn "*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp"
@@ -9222,7 +9222,7 @@
(match_dup 0)))
(set (match_dup 1)
(if_then_else:SWI48 (ne (reg:CCZ FLAGS_REG) (const_int 0))
(match_operand:SWI48 3 "register_operand" "r")
(match_operand:SWI48 3 "register_operand" "")
(match_dup 1)))]
"TARGET_CMOVE"
"operands[4] = GEN_INT (GET_MODE_BITSIZE (<MODE>mode));")
@@ -14625,7 +14625,7 @@
emit_insn (gen_sse4_1_round<mode>2
(operands[0], operands[1], GEN_INT (0x04)));
else
ix86_expand_rint (operand0, operand1);
ix86_expand_rint (operands[0], operands[1]);
}
else
{
@@ -14649,9 +14649,9 @@
if (optimize_insn_for_size_p ())
FAIL;
if (TARGET_64BIT || (<MODE>mode != DFmode))
ix86_expand_round (operand0, operand1);
ix86_expand_round (operands[0], operands[1]);
else
ix86_expand_rounddf_32 (operand0, operand1);
ix86_expand_rounddf_32 (operands[0], operands[1]);
DONE;
})
@@ -14796,7 +14796,7 @@
{
if (optimize_insn_for_size_p ())
FAIL;
ix86_expand_lround (operand0, operand1);
ix86_expand_lround (operands[0], operands[1]);
DONE;
})
@@ -14871,9 +14871,9 @@
emit_insn (gen_sse4_1_round<mode>2
(operands[0], operands[1], GEN_INT (0x01)));
else if (TARGET_64BIT || (<MODE>mode != DFmode))
ix86_expand_floorceil (operand0, operand1, true);
ix86_expand_floorceil (operands[0], operands[1], true);
else
ix86_expand_floorceildf_32 (operand0, operand1, true);
ix86_expand_floorceildf_32 (operands[0], operands[1], true);
}
else
{
@@ -15053,7 +15053,7 @@
{
if (TARGET_64BIT && optimize_insn_for_size_p ())
FAIL;
ix86_expand_lfloorceil (operand0, operand1, true);
ix86_expand_lfloorceil (operands[0], operands[1], true);
DONE;
})
@@ -15128,9 +15128,9 @@
else if (optimize_insn_for_size_p ())
FAIL;
else if (TARGET_64BIT || (<MODE>mode != DFmode))
ix86_expand_floorceil (operand0, operand1, false);
ix86_expand_floorceil (operands[0], operands[1], false);
else
ix86_expand_floorceildf_32 (operand0, operand1, false);
ix86_expand_floorceildf_32 (operands[0], operands[1], false);
}
else
{
@@ -15308,7 +15308,7 @@
"SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH
&& !flag_trapping_math"
{
ix86_expand_lfloorceil (operand0, operand1, false);
ix86_expand_lfloorceil (operands[0], operands[1], false);
DONE;
})
@@ -15383,9 +15383,9 @@
else if (optimize_insn_for_size_p ())
FAIL;
else if (TARGET_64BIT || (<MODE>mode != DFmode))
ix86_expand_trunc (operand0, operand1);
ix86_expand_trunc (operands[0], operands[1]);
else
ix86_expand_truncdf_32 (operand0, operand1);
ix86_expand_truncdf_32 (operands[0], operands[1]);
}
else
{
@@ -18285,8 +18285,8 @@
(match_operand:SI 3 "const_int_operand" "i")]
UNSPECV_LWPVAL_INTRINSIC)]
"TARGET_LWP"
"/* Avoid unused variable warning. */
(void) operand0;")
;; Avoid unused variable warning.
"(void) operands[0];")
(define_insn "*lwp_lwpval<mode>3_1"
[(unspec_volatile [(match_operand:SWI48 0 "register_operand" "r")
@@ -4521,15 +4521,14 @@
[(set (match_operand:V4DF 0 "register_operand" "=x,x")
(vec_select:V4DF
(vec_concat:V8DF
(match_operand:V4DF 1 "nonimmediate_operand" "xm,x")
(match_operand:V4DF 2 "nonimmediate_operand" " 1,xm"))
(match_operand:V4DF 1 "nonimmediate_operand" " x,m")
(match_operand:V4DF 2 "nonimmediate_operand" "xm,1"))
(parallel [(const_int 0) (const_int 4)
(const_int 2) (const_int 6)])))]
"TARGET_AVX
&& (!MEM_P (operands[1]) || rtx_equal_p (operands[1], operands[2]))"
"TARGET_AVX"
"@
vmovddup\t{%1, %0|%0, %1}
vunpcklpd\t{%2, %1, %0|%0, %1, %2}"
vunpcklpd\t{%2, %1, %0|%0, %1, %2}
vmovddup\t{%1, %0|%0, %1}"
[(set_attr "type" "sselog")
(set_attr "prefix" "vex")
(set_attr "mode" "V4DF")])
@@ -97,6 +97,20 @@
if (lookup_attribute ("dllexport", TYPE_ATTRIBUTES (t)) != NULL_TREE)
{
tree tmv = TYPE_MAIN_VARIANT (t);
/* Make sure that we set dllexport attribute to typeinfo's
base declaration, as otherwise it would fail to be exported as
it isn't a class-member. */
if (tmv != NULL_TREE
&& CLASSTYPE_TYPEINFO_VAR (tmv) != NULL_TREE)
{
tree na, ti_decl = CLASSTYPE_TYPEINFO_VAR (tmv);
na = tree_cons (get_identifier ("dllexport"), NULL_TREE,
NULL_TREE);
decl_attributes (&ti_decl, na, 0);
}
for (member = TYPE_FIELDS (t); member; member = DECL_CHAIN (member))
if (TREE_CODE (member) == VAR_DECL)
@@ -4707,7 +4707,7 @@
;; of _gp from the start of this function. Operand 1 is the incoming
;; function address.
(define_insn_and_split "loadgp_newabi_<mode>"
[(set (match_operand:P 0 "register_operand" "=d")
[(set (match_operand:P 0 "register_operand" "=&d")
(unspec:P [(match_operand:P 1)
(match_operand:P 2 "register_operand" "d")]
UNSPEC_LOADGP))]
@@ -1863,6 +1863,11 @@
else if (register_operand (operand0, mode))
{
/* Legitimize TLS symbol references. This happens for references
that aren't a legitimate constant. */
if (PA_SYMBOL_REF_TLS_P (operand1))
operand1 = legitimize_tls_address (operand1);
if (register_operand (operand1, mode)
|| (GET_CODE (operand1) == CONST_INT
&& cint_ok_for_move (INTVAL (operand1)))
@@ -848,6 +848,9 @@
&& (NEW_HP_ASSEMBLER \
|| TARGET_GAS \
|| GET_CODE (X) != LABEL_REF) \
&& (!PA_SYMBOL_REF_TLS_P (X) \
|| (SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_GLOBAL_DYNAMIC \
&& SYMBOL_REF_TLS_MODEL (X) != TLS_MODEL_LOCAL_DYNAMIC)) \
&& (!TARGET_64BIT \
|| GET_CODE (X) != CONST_DOUBLE) \
&& (!TARGET_64BIT \
@@ -2612,6 +2612,7 @@
off. */
rs6000_altivec_abi = 1;
TARGET_ALTIVEC_VRSAVE = 1;
rs6000_current_abi = ABI_DARWIN;
if (DEFAULT_ABI == ABI_DARWIN
&& TARGET_64BIT)
@@ -5323,28 +5324,25 @@
if (VECTOR_MEM_VSX_P (mode) && (mode == V2DFmode || mode == V2DImode))
{
rtx op0 = XVECEXP (vals, 0, 0);
rtx op1 = XVECEXP (vals, 0, 1);
if (all_same)
{
rtx element = XVECEXP (vals, 0, 0);
if (!MEM_P (op0) && !REG_P (op0))
op0 = force_reg (inner_mode, op0);
if (mode == V2DFmode)
emit_insn (gen_vsx_splat_v2df (target, element));
emit_insn (gen_vsx_splat_v2df (target, op0));
else
emit_insn (gen_vsx_splat_v2di (target, element));
emit_insn (gen_vsx_splat_v2di (target, op0));
}
else
{
op0 = force_reg (inner_mode, op0);
op1 = force_reg (inner_mode, op1);
if (mode == V2DFmode)
{
rtx op0 = copy_to_mode_reg (DFmode, XVECEXP (vals, 0, 0));
rtx op1 = copy_to_mode_reg (DFmode, XVECEXP (vals, 0, 1));
emit_insn (gen_vsx_concat_v2df (target, op0, op1));
}
emit_insn (gen_vsx_concat_v2df (target, op0, op1));
else
{
rtx op0 = copy_to_mode_reg (DImode, XVECEXP (vals, 0, 0));
rtx op1 = copy_to_mode_reg (DImode, XVECEXP (vals, 0, 1));
emit_insn (gen_vsx_concat_v2di (target, op0, op1));
}
emit_insn (gen_vsx_concat_v2di (target, op0, op1));
}
return;
}
@@ -5358,7 +5356,7 @@
if (all_same)
{
rtx freg = gen_reg_rtx (V4SFmode);
rtx sreg = copy_to_reg (XVECEXP (vals, 0, 0));
rtx sreg = force_reg (SFmode, XVECEXP (vals, 0, 0));
emit_insn (gen_vsx_xscvdpsp_scalar (freg, sreg));
emit_insn (gen_vsx_xxspltw_v4sf (target, freg, const0_rtx));
@@ -5369,13 +5367,13 @@
rtx dbl_odd = gen_reg_rtx (V2DFmode);
rtx flt_even = gen_reg_rtx (V4SFmode);
rtx flt_odd = gen_reg_rtx (V4SFmode);
emit_insn (gen_vsx_concat_v2sf (dbl_even,
copy_to_reg (XVECEXP (vals, 0, 0)),
copy_to_reg (XVECEXP (vals, 0, 1))));
emit_insn (gen_vsx_concat_v2sf (dbl_odd,
copy_to_reg (XVECEXP (vals, 0, 2)),
copy_to_reg (XVECEXP (vals, 0, 3))));
rtx op0 = force_reg (SFmode, XVECEXP (vals, 0, 0));
rtx op1 = force_reg (SFmode, XVECEXP (vals, 0, 1));
rtx op2 = force_reg (SFmode, XVECEXP (vals, 0, 2));
rtx op3 = force_reg (SFmode, XVECEXP (vals, 0, 3));
emit_insn (gen_vsx_concat_v2sf (dbl_even, op0, op1));
emit_insn (gen_vsx_concat_v2sf (dbl_odd, op2, op3));
emit_insn (gen_vsx_xvcvdpsp (flt_even, dbl_even));
emit_insn (gen_vsx_xvcvdpsp (flt_odd, dbl_odd));
emit_insn (gen_vec_extract_evenv4sf (target, flt_even, flt_odd));
@@ -6824,6 +6822,7 @@
#if TARGET_MACHO
&& DEFAULT_ABI == ABI_DARWIN
&& (flag_pic || MACHO_DYNAMIC_NO_PIC_P)
&& machopic_symbol_defined_p (x)
#else
&& DEFAULT_ABI == ABI_V4
&& !flag_pic
@@ -7588,17 +7587,14 @@
if (!TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128
&& mode == TFmode && GET_CODE (operands[1]) == CONST_DOUBLE)
{
/* DImode is used, not DFmode, because simplify_gen_subreg doesn't
know how to get a DFmode SUBREG of a TFmode. */
enum machine_mode imode = (TARGET_E500_DOUBLE ? DFmode : DImode);
rs6000_emit_move (simplify_gen_subreg (imode, operands[0], mode, 0),
simplify_gen_subreg (imode, operands[1], mode, 0),
imode);
rs6000_emit_move (simplify_gen_subreg (imode, operands[0], mode,
GET_MODE_SIZE (imode)),
simplify_gen_subreg (imode, operands[1], mode,
GET_MODE_SIZE (imode)),
imode);
rs6000_emit_move (simplify_gen_subreg (DFmode, operands[0], mode, 0),
simplify_gen_subreg (DFmode, operands[1], mode, 0),
DFmode);
rs6000_emit_move (simplify_gen_subreg (DFmode, operands[0], mode,
GET_MODE_SIZE (DFmode)),
simplify_gen_subreg (DFmode, operands[1], mode,
GET_MODE_SIZE (DFmode)),
DFmode);
return;
}
@@ -16613,7 +16609,7 @@
if (TARGET_RELOCATABLE
&& in_section != toc_section
&& in_section != text_section
&& !unlikely_text_section_p (in_section)
&& (in_section && (in_section->common.flags & SECTION_CODE)) == 0
&& !recurse
&& GET_CODE (x) != CONST_INT
&& GET_CODE (x) != CONST_DOUBLE
@@ -20227,7 +20223,7 @@
{
/* This blockage is needed so that sched doesn't decide to move
the sp change before the register restores. */
if (frame_reg_rtx != sp_reg_rtx
if (DEFAULT_ABI == ABI_V4
|| (TARGET_SPE_ABI
&& info->spe_64bit_regs_used != 0
&& info->first_gp_reg_save != 32))
@@ -20644,56 +20640,52 @@
{
int i;
rtx spe_save_area_ptr;
int save_ptr_to_sp;
int ool_adjust = 0;
/* Determine whether we can address all of the registers that need
to be saved with an offset from the stack pointer that fits in
to be saved with an offset from frame_reg_rtx that fits in
the small const field for SPE memory instructions. */
int spe_regs_addressable_via_sp
= (SPE_CONST_OFFSET_OK(info->spe_gp_save_offset + sp_offset
+ (32 - info->first_gp_reg_save - 1) * reg_size)
int spe_regs_addressable
= (SPE_CONST_OFFSET_OK (info->spe_gp_save_offset + sp_offset
+ reg_size * (32 - info->first_gp_reg_save - 1))
&& saving_GPRs_inline);
int spe_offset;
if (spe_regs_addressable_via_sp)
if (spe_regs_addressable)
{
spe_save_area_ptr = frame_reg_rtx;
save_ptr_to_sp = info->total_size - sp_offset;
spe_offset = info->spe_gp_save_offset + sp_offset;
}
else
{
/* Make r11 point to the start of the SPE save area. We need
to be careful here if r11 is holding the static chain. If
it is, then temporarily save it in r0. We would use r0 as
our base register here, but using r0 as a base register in
loads and stores means something different from what we
would like. */
int ool_adjust = (saving_GPRs_inline
? 0
: (info->first_gp_reg_save
- (FIRST_SAVRES_REGISTER+1))*8);
HOST_WIDE_INT offset = (info->spe_gp_save_offset
+ sp_offset - ool_adjust);
it is, then temporarily save it in r0. */
int offset;
if (!saving_GPRs_inline)
ool_adjust = 8 * (info->first_gp_reg_save
- (FIRST_SAVRES_REGISTER + 1));
offset = info->spe_gp_save_offset + sp_offset - ool_adjust;
spe_save_area_ptr = gen_rtx_REG (Pmode, 11);
save_ptr_to_sp = info->total_size - sp_offset + offset;
spe_offset = 0;
if (using_static_chain_p)
{
rtx r0 = gen_rtx_REG (Pmode, 0);
gcc_assert (info->first_gp_reg_save > 11);
emit_move_insn (r0, gen_rtx_REG (Pmode, 11));
emit_move_insn (r0, spe_save_area_ptr);
}
spe_save_area_ptr = gen_rtx_REG (Pmode, 11);
insn = emit_insn (gen_addsi3 (spe_save_area_ptr,
frame_reg_rtx,
GEN_INT (offset)));
/* We need to make sure the move to r11 gets noted for
properly outputting unwind information. */
if (!saving_GPRs_inline)
rs6000_frame_related (insn, frame_reg_rtx, offset,
NULL_RTX, NULL_RTX);
spe_offset = 0;
emit_insn (gen_addsi3 (spe_save_area_ptr,
frame_reg_rtx, GEN_INT (offset)));
if (REGNO (frame_reg_rtx) == 11)
sp_offset = -info->spe_gp_save_offset + ool_adjust;
}
if (saving_GPRs_inline)
{
for (i = 0; i < 32 - info->first_gp_reg_save; i++)
@@ -20705,36 +20697,34 @@
/* We're doing all this to ensure that the offset fits into
the immediate offset of 'evstdd'. */
gcc_assert (SPE_CONST_OFFSET_OK (reg_size * i + spe_offset));
offset = GEN_INT (reg_size * i + spe_offset);
addr = gen_rtx_PLUS (Pmode, spe_save_area_ptr, offset);
mem = gen_rtx_MEM (V2SImode, addr);
insn = emit_move_insn (mem, reg);
rs6000_frame_related (insn, spe_save_area_ptr,
info->spe_gp_save_offset
+ sp_offset + reg_size * i,
offset, const0_rtx);
rs6000_frame_related (insn,
spe_save_area_ptr, save_ptr_to_sp,
NULL_RTX, NULL_RTX);
}
}
else
{
rtx par;
par = rs6000_make_savres_rtx (info, gen_rtx_REG (Pmode, 11),
0, reg_mode,
par = rs6000_make_savres_rtx (info, spe_save_area_ptr,
ool_adjust, reg_mode,
true, true,
false);
insn = emit_insn (par);
rs6000_frame_related (insn, frame_ptr_rtx, info->total_size,
rs6000_frame_related (insn, spe_save_area_ptr, save_ptr_to_sp,
NULL_RTX, NULL_RTX);
}
if (using_static_chain_p && !spe_regs_addressable_via_sp)
emit_move_insn (gen_rtx_REG (Pmode, 11), gen_rtx_REG (Pmode, 0));
if (using_static_chain_p && !spe_regs_addressable)
emit_move_insn (spe_save_area_ptr, gen_rtx_REG (Pmode, 0));
}
else if (!WORLD_SAVE_P (info) && !saving_GPRs_inline)
{
@@ -20743,10 +20733,12 @@
if (info->first_fp_reg_save != 64)
{
rtx dest_reg = gen_rtx_REG (reg_mode, DEFAULT_ABI == ABI_AIX
? 12 : 11);
rtx offset = GEN_INT (sp_offset
+ (-8 * (64-info->first_fp_reg_save)));
rtx dest_reg = gen_rtx_REG (Pmode, DEFAULT_ABI == ABI_AIX ? 12 : 11);
int save_off = 8 * (64 - info->first_fp_reg_save);
rtx offset = GEN_INT (sp_offset - save_off);
if (REGNO (dest_reg) == REGNO (frame_reg_rtx))
sp_offset = save_off;
emit_insn (gen_add3_insn (dest_reg, frame_reg_rtx, offset));
}
@@ -21622,40 +21614,39 @@
&& info->first_gp_reg_save != 32)
{
/* Determine whether we can address all of the registers that need
to be saved with an offset from the stack pointer that fits in
the small const field for SPE memory instructions. */
int spe_regs_addressable_via_sp
= (SPE_CONST_OFFSET_OK(info->spe_gp_save_offset + sp_offset
+ (32 - info->first_gp_reg_save - 1) * reg_size)
to be saved with an offset from frame_reg_rtx that fits in
the small const field for SPE memory instructions. */
int spe_regs_addressable
= (SPE_CONST_OFFSET_OK (info->spe_gp_save_offset + sp_offset
+ reg_size * (32 - info->first_gp_reg_save - 1))
&& restoring_GPRs_inline);
int spe_offset;
int ool_adjust = 0;
if (spe_regs_addressable_via_sp)
if (spe_regs_addressable)
spe_offset = info->spe_gp_save_offset + sp_offset;
else
{
{
rtx old_frame_reg_rtx = frame_reg_rtx;
/* Make r11 point to the start of the SPE save area. We worried about
not clobbering it when we were saving registers in the prologue.
There's no need to worry here because the static chain is passed
anew to every function. */
int ool_adjust = (restoring_GPRs_inline
? 0
: (info->first_gp_reg_save
- (FIRST_SAVRES_REGISTER+1))*8);
if (frame_reg_rtx == sp_reg_rtx)
frame_reg_rtx = gen_rtx_REG (Pmode, 11);
emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx,
/* Make r11 point to the start of the SPE save area. We worried about
not clobbering it when we were saving registers in the prologue.
There's no need to worry here because the static chain is passed
anew to every function. */
if (!restoring_GPRs_inline)
ool_adjust = 8 * (info->first_gp_reg_save
- (FIRST_SAVRES_REGISTER + 1));
frame_reg_rtx = gen_rtx_REG (Pmode, 11);
emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx,
GEN_INT (info->spe_gp_save_offset
+ sp_offset
- ool_adjust)));
/* Keep the invariant that frame_reg_rtx + sp_offset points
at the top of the stack frame. */
sp_offset = -info->spe_gp_save_offset;
sp_offset = -info->spe_gp_save_offset + ool_adjust;
spe_offset = 0;
}
spe_offset = 0;
}
if (restoring_GPRs_inline)
{
@@ -21695,8 +21686,8 @@
{
rtx par;
par = rs6000_make_savres_rtx (info, gen_rtx_REG (Pmode, 11),
0, reg_mode,
par = rs6000_make_savres_rtx (info, frame_reg_rtx,
ool_adjust, reg_mode,
false, true,
true);
emit_jump_insn (par);
@@ -21717,12 +21708,12 @@
sp_offset, can_use_exit);
else
{
emit_insn (gen_add3_insn (gen_rtx_REG (Pmode, DEFAULT_ABI == ABI_AIX
? 12 : 11),
frame_reg_rtx,
rtx src_reg = gen_rtx_REG (Pmode, DEFAULT_ABI == ABI_AIX ? 12 : 11);
emit_insn (gen_add3_insn (src_reg, frame_reg_rtx,
GEN_INT (sp_offset - info->fp_size)));
if (REGNO (frame_reg_rtx) == 11)
sp_offset += info->fp_size;
if (REGNO (frame_reg_rtx) == REGNO (src_reg))
sp_offset = info->fp_size;
}
par = rs6000_make_savres_rtx (info, frame_reg_rtx,
@@ -27763,7 +27754,7 @@
if (strcmp (r, rs6000_opt_vars[i].name) == 0)
{
size_t j = rs6000_opt_vars[i].global_offset;
((int *) &global_options)[j] = !invert;
*((int *) ((char *)&global_options + j)) = !invert;
error_p = false;
break;
}
@@ -12241,8 +12241,8 @@
"
{
operands[3] = gen_reg_rtx (SImode);
operands[4] = gen_rtx_MEM (DImode,
gen_rtx_PLUS (DImode, stack_pointer_rtx,
operands[4] = gen_rtx_MEM (SImode,
gen_rtx_PLUS (SImode, stack_pointer_rtx,
GEN_INT (20)));
operands[5] = gen_rtx_MEM (SImode,
@@ -4007,7 +4007,7 @@
(unsigned_fix:SI (match_operand:DFP 1 "register_operand" "")))
(unspec:SI [(const_int 5)] UNSPEC_ROUND)
(clobber (reg:CC CC_REGNUM))])]
"TARGET_Z196 && TARGET_HARD_FLOAT"
"TARGET_Z196 && TARGET_HARD_DFP"
"")
; fixuns_trunc(tf|df|sf|td|dd)(di|si)2 instruction patterns.
@@ -7644,6 +7644,7 @@
sra<gk>\t%0,%1,%Y2"
[(set_attr "op_type" "RS<E>,RSY")
(set_attr "atype" "reg,reg")
(set_attr "cpu_facility" "*,z196")
(set_attr "z10prop" "z10_super_E1,*")])
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for SPARC Solaris.
Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -34,7 +34,7 @@
#define IS_SIGHANDLER sparc64_is_sighandler
static int
sparc64_is_sighandler (unsigned int *pc, unsigned int *savpc, int *nframes)
sparc64_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
{
if (/* Solaris 8 - single-threaded
----------------------------
@@ -110,38 +110,66 @@
&& pc[ 0] == 0x81c7e008
&& pc[ 1] == 0x81e80000)
{
if (/* Solaris 8 /usr/lib/sparcv9/libthread.so.1
------------------------------------------
Before patch 108827-08:
<sigacthandler+1760>: st %g4, [ %i1 + 0x1c ]
Since patch 108827-08:
<sigacthandler+1816>: st %l0, [ %i4 + 0x10 ] */
savpc[-1] == 0xc826601c
|| savpc[-1] == 0xe0272010)
/* We have observed different calling frames among different
versions of the operating system, so that we need to
discriminate using the upper frame. We look for the return
address of the caller frame (there is an offset of 15 double
words between the frame address and the place where this return
address is stored) in order to do some more pattern matching. */
unsigned int cuh_pattern
= *(unsigned int *)(*(unsigned long *)(cfa + 15*8) - 4);
if (cuh_pattern == 0x92100019)
/* This matches the call_user_handler pattern for Solaris 11.
This is the same setup as for Solaris 9, see below. */
*nframes = 3;
else if (cuh_pattern == 0xd25fa7ef)
{
/* We need to move up three frames:
/* This matches the call_user_handler pattern for Solaris 10.
There are 2 cases so we look for the return address of the
caller's caller frame in order to do more pattern matching. */
unsigned long sah_address = *(unsigned long *)(cfa + 176 + 15*8);
if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
*nframes = 3;
else
/* The sigacthandler frame isn't present in the chain.
We need to move up two frames:
<signal handler> <-- context->cfa
__sighndlr
sigacthandler
call_user_handler frame
<kernel>
*/
*nframes = 2;
*/
*nframes = 2;
}
else /* Solaris 8 /usr/lib/lwp/sparcv9/libthread.so.1, Solaris 9+
---------------------------------------------------------- */
{
/* We need to move up three frames:
else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x94100013)
/* This matches the call_user_handler pattern for Solaris 9 and
for Solaris 8 running inside Solaris Containers respectively
We need to move up three frames:
<signal handler> <-- context->cfa
__sighndlr
call_user_handler
sigacthandler
<kernel>
*/
*nframes = 3;
}
*/
*nframes = 3;
else
/* This is the default Solaris 8 case.
We need to move up two frames:
<signal handler> <-- context->cfa
__sighndlr
sigacthandler
<kernel>
*/
*nframes = 2;
return 1;
}
@@ -172,7 +200,7 @@
#define IS_SIGHANDLER sparc_is_sighandler
static int
sparc_is_sighandler (unsigned int *pc, unsigned int * savpc, int *nframes)
sparc_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
{
if (/* Solaris 8, 9 - single-threaded
-------------------------------
@@ -200,7 +228,7 @@
&& pc[-1] == 0x9410001a
&& pc[ 0] == 0x80a62008)
{
/* Need to move up one frame:
/* We need to move up one frame:
<signal handler> <-- context->cfa
sigacthandler
@@ -231,7 +259,7 @@
&& pc[ 1] == 0x81e80000
&& pc[ 2] == 0x80a26000)
{
/* Need to move up one frame:
/* We need to move up one frame:
<signal handler> <-- context->cfa
__libthread_segvhdlr
@@ -258,33 +286,66 @@
&& pc[ 0] == 0x81c7e008
&& pc[ 1] == 0x81e80000)
{
if (/* Solaris 8 /usr/lib/libthread.so.1
----------------------------------
<sigacthandler+1796>: mov %i0, %o0 */
savpc[-1] == 0x90100018)
/* We have observed different calling frames among different
versions of the operating system, so that we need to
discriminate using the upper frame. We look for the return
address of the caller frame (there is an offset of 15 words
between the frame address and the place where this return
address is stored) in order to do some more pattern matching. */
unsigned int cuh_pattern
= *(unsigned int *)(*(unsigned int *)(cfa + 15*4) - 4);
if (cuh_pattern == 0x92100019)
/* This matches the call_user_handler pattern for Solaris 11.
This is the same setup as for Solaris 9, see below. */
*nframes = 3;
else if (cuh_pattern == 0xd407a04c)
{
/* We need to move up two frames:
/* This matches the call_user_handler pattern for Solaris 10.
There are 2 cases so we look for the return address of the
caller's caller frame in order to do more pattern matching. */
unsigned int sah_address = *(unsigned int *)(cfa + 96 + 15*4);
if (sah_address && *(unsigned int *)(sah_address - 4) == 0x92100019)
*nframes = 3;
else
/* The sigacthandler frame isn't present in the chain.
We need to move up two frames:
<signal handler> <-- context->cfa
__sighndlr
sigacthandler
call_user_handler frame
<kernel>
*/
*nframes = 2;
*/
*nframes = 2;
}
else /* Solaris 8 /usr/lib/lwp/libthread.so.1, Solaris 9+
-------------------------------------------------- */
{
/* We need to move up three frames:
else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x9410001b)
/* This matches the call_user_handler pattern for Solaris 9 and
for Solaris 8 running inside Solaris Containers respectively.
We need to move up three frames:
<signal handler> <-- context->cfa
__sighndlr
call_user_handler
sigacthandler
<kernel>
*/
*nframes = 3;
}
*/
*nframes = 3;
else
/* This is the default Solaris 8 case.
We need to move up two frames:
<signal handler> <-- context->cfa
__sighndlr
sigacthandler
<kernel>
*/
*nframes = 2;
return 1;
}
@@ -322,7 +383,7 @@
return _URC_NO_REASON;
}
if (IS_SIGHANDLER (pc, (unsigned int *)fp->fr_savpc, &nframes))
if (IS_SIGHANDLER (pc, this_cfa, &nframes))
{
struct handler_args {
struct frame frwin;
@@ -4569,8 +4569,9 @@
else if (actual_fsize <= 8192)
{
insn = emit_insn (gen_stack_pointer_inc (GEN_INT (-4096)));
RTX_FRAME_RELATED_P (insn) = 1;
insn
= emit_insn (gen_stack_pointer_inc (GEN_INT (4096-actual_fsize)));
}
@@ -4592,8 +4593,18 @@
else if (actual_fsize <= 8192)
{
insn = emit_insn (gen_save_register_window (GEN_INT (-4096)));
emit_insn (gen_stack_pointer_inc (GEN_INT (4096-actual_fsize)));
/* Make sure no %fp-based store is issued until after the frame is
established. The offset between the frame pointer and the stack
pointer is calculated relative to the value of the stack pointer
at the end of the function prologue, and moving instructions that
access the stack via the frame pointer between the instructions
that decrement the stack pointer could result in accessing the
register window save area, which is volatile. */
emit_insn (gen_frame_blockage ());
}
else
{
@@ -408,6 +408,7 @@
%{mcpu=sparclite:-Asparclite} \
%{mcpu=sparclite86x:-Asparclite} \
%{mcpu=f930:-Asparclite} %{mcpu=f934:-Asparclite} \
%{mcpu=v8:-Av8} \
%{mv8plus:-Av8plus} \
%{mcpu=v9:-Av9} \
%{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \
@@ -28,6 +28,7 @@
[(UNSPEC_MOVE_PIC 0)
(UNSPEC_UPDATE_RETURN 1)
(UNSPEC_LOAD_PCREL_SYM 2)
(UNSPEC_FRAME_BLOCKAGE 3)
(UNSPEC_MOVE_PIC_LABEL 5)
(UNSPEC_SETH44 6)
(UNSPEC_SETM44 7)
@@ -1813,8 +1814,8 @@
})
(define_insn "*movsf_insn"
[(set (match_operand:V32 0 "nonimmediate_operand" "=d,f,*r,*r,*r,f,*r,m,m")
(match_operand:V32 1 "input_operand" "GY,f,*rRY,Q,S,m,m,f,*rGY"))]
[(set (match_operand:V32 0 "nonimmediate_operand" "=d,f, *r,*r,*r,f,*r,m, m")
(match_operand:V32 1 "input_operand" "GY,f,*rRY, Q, S,m, m,f,*rGY"))]
"TARGET_FPU
&& (register_operand (operands[0], <V32:MODE>mode)
|| register_or_zero_operand (operands[1], <V32:MODE>mode))"
@@ -1861,8 +1862,8 @@
;; when -mno-fpu.
(define_insn "*movsf_insn_no_fpu"
[(set (match_operand:SF 0 "nonimmediate_operand" "=r,r,r,r,m")
(match_operand:SF 1 "input_operand" "rR,Q,S,m,rG"))]
[(set (match_operand:SF 0 "nonimmediate_operand" "=r,r,r,r, m")
(match_operand:SF 1 "input_operand" "rR,Q,S,m,rG"))]
"! TARGET_FPU
&& (register_operand (operands[0], SFmode)
|| register_or_zero_operand (operands[1], SFmode))"
@@ -1948,8 +1949,8 @@
;; Be careful, fmovd does not exist when !v9.
(define_insn "*movdf_insn_sp32"
[(set (match_operand:DF 0 "nonimmediate_operand" "=e,W,U,T,o,e,*r,o,e,o")
(match_operand:DF 1 "input_operand" "W#F,e,T,U,G,e,*rFo,*r,o#F,e"))]
[(set (match_operand:DF 0 "nonimmediate_operand" "= e,W,U,T,o,e, *r, o, e,o")
(match_operand:DF 1 "input_operand" "W#F,e,T,U,G,e,*rFo,*r,o#F,e"))]
"TARGET_FPU
&& ! TARGET_V9
&& (register_operand (operands[0], DFmode)
@@ -1969,8 +1970,8 @@
(set_attr "length" "*,*,*,*,2,2,2,2,2,2")])
(define_insn "*movdf_insn_sp32_no_fpu"
[(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,o,r,o")
(match_operand:DF 1 "input_operand" "T,U,G,ro,r"))]
[(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,o, r,o")
(match_operand:DF 1 "input_operand" " T,U,G,ro,r"))]
"! TARGET_FPU
&& ! TARGET_V9
&& (register_operand (operands[0], DFmode)
@@ -1986,8 +1987,8 @@
;; We have available v9 double floats but not 64-bit integer registers.
(define_insn "*movdf_insn_sp32_v9"
[(set (match_operand:V64 0 "nonimmediate_operand" "=b,e,e,T,W,U,T,f,*r,o")
(match_operand:V64 1 "input_operand" "GY,e,W#F,GY,e,T,U,o#F,*roGYDF,*rGYf"))]
[(set (match_operand:V64 0 "nonimmediate_operand" "=b,e, e, T,W,U,T, f, *r, o")
(match_operand:V64 1 "input_operand" "GY,e,W#F,GY,e,T,U,o#F,*roFD,*rGYf"))]
"TARGET_FPU
&& TARGET_V9
&& ! TARGET_ARCH64
@@ -2009,8 +2010,8 @@
(set_attr "fptype" "double,double,*,*,*,*,*,*,*,*")])
(define_insn "*movdf_insn_sp32_v9_no_fpu"
[(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,T,r,o")
(match_operand:DF 1 "input_operand" "T,U,G,ro,rG"))]
[(set (match_operand:DF 0 "nonimmediate_operand" "=U,T,T, r, o")
(match_operand:DF 1 "input_operand" " T,U,G,ro,rG"))]
"! TARGET_FPU
&& TARGET_V9
&& ! TARGET_ARCH64
@@ -2027,8 +2028,8 @@
;; We have available both v9 double floats and 64-bit integer registers.
(define_insn "*movdf_insn_sp64"
[(set (match_operand:V64 0 "nonimmediate_operand" "=b,e,e,W,*r,*r,m,*r")
(match_operand:V64 1 "input_operand" "GY,e,W#F,e,*rGY,m,*rGY,DF"))]
[(set (match_operand:V64 0 "nonimmediate_operand" "=b,e, e,W, *r,*r, m,*r")
(match_operand:V64 1 "input_operand" "GY,e,W#F,e,*rGY, m,*rGY,FD"))]
"TARGET_FPU
&& TARGET_ARCH64
&& (register_operand (operands[0], <V64:MODE>mode)
@@ -2047,8 +2048,8 @@
(set_attr "fptype" "double,double,*,*,*,*,*,*")])
(define_insn "*movdf_insn_sp64_no_fpu"
[(set (match_operand:DF 0 "nonimmediate_operand" "=r,r,m")
(match_operand:DF 1 "input_operand" "r,m,rG"))]
[(set (match_operand:DF 0 "nonimmediate_operand" "=r,r, m")
(match_operand:DF 1 "input_operand" "r,m,rG"))]
"! TARGET_FPU
&& TARGET_ARCH64
&& (register_operand (operands[0], DFmode)
@@ -2288,8 +2289,8 @@
})
(define_insn "*movtf_insn_sp32"
[(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,o,U,r")
(match_operand:TF 1 "input_operand" "G,oe,GeUr,o,roG"))]
[(set (match_operand:TF 0 "nonimmediate_operand" "=b, e, o,U, r")
(match_operand:TF 1 "input_operand" " G,oe,GeUr,o,roG"))]
"TARGET_FPU
&& ! TARGET_ARCH64
&& (register_operand (operands[0], TFmode)
@@ -2302,8 +2303,8 @@
;; when -mno-fpu.
(define_insn "*movtf_insn_sp32_no_fpu"
[(set (match_operand:TF 0 "nonimmediate_operand" "=o,U,o,r,o")
(match_operand:TF 1 "input_operand" "G,o,U,roG,r"))]
[(set (match_operand:TF 0 "nonimmediate_operand" "=o,U,o, r,o")
(match_operand:TF 1 "input_operand" " G,o,U,roG,r"))]
"! TARGET_FPU
&& ! TARGET_ARCH64
&& (register_operand (operands[0], TFmode)
@@ -2312,8 +2313,8 @@
[(set_attr "length" "4")])
(define_insn "*movtf_insn_sp64"
[(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,o,r")
(match_operand:TF 1 "input_operand" "G,oe,Ger,roG"))]
[(set (match_operand:TF 0 "nonimmediate_operand" "=b, e, o, r")
(match_operand:TF 1 "input_operand" "G,oe,Ger,roG"))]
"TARGET_FPU
&& TARGET_ARCH64
&& ! TARGET_HARD_QUAD
@@ -2323,8 +2324,8 @@
[(set_attr "length" "2")])
(define_insn "*movtf_insn_sp64_hq"
[(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,e,m,o,r")
(match_operand:TF 1 "input_operand" "G,e,m,e,rG,roG"))]
[(set (match_operand:TF 0 "nonimmediate_operand" "=b,e,e,m, o, r")
(match_operand:TF 1 "input_operand" "G,e,m,e,rG,roG"))]
"TARGET_FPU
&& TARGET_ARCH64
&& TARGET_HARD_QUAD
@@ -2341,8 +2342,8 @@
(set_attr "length" "2,*,*,*,2,2")])
(define_insn "*movtf_insn_sp64_no_fpu"
[(set (match_operand:TF 0 "nonimmediate_operand" "=r,o")
(match_operand:TF 1 "input_operand" "orG,rG"))]
[(set (match_operand:TF 0 "nonimmediate_operand" "= r, o")
(match_operand:TF 1 "input_operand" "orG,rG"))]
"! TARGET_FPU
&& TARGET_ARCH64
&& (register_operand (operands[0], TFmode)
@@ -6334,6 +6335,25 @@
(define_insn "blockage"
[(unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE)]
""
""
[(set_attr "length" "0")])
;; Do not schedule instructions accessing memory before this point.
(define_expand "frame_blockage"
[(set (match_dup 0)
(unspec:BLK [(match_dup 1)] UNSPEC_FRAME_BLOCKAGE))]
""
{
operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode));
MEM_VOLATILE_P (operands[0]) = 1;
operands[1] = stack_pointer_rtx;
})
(define_insn "*frame_blockage<P:mode>"
[(set (match_operand:BLK 0 "" "")
(unspec:BLK [(match_operand:P 1 "" "")] UNSPEC_FRAME_BLOCKAGE))]
""
""
[(set_attr "length" "0")])
@@ -1,3 +1,7 @@
2012-03-01 Release Manager
* GCC 4.6.3 released.
2011-10-26 Release Manager
* GCC 4.6.2 released.
@@ -1,0 +1,28 @@
void abort(void);
int d[1024], e[1024];
int foo (void)
{
int s = 0;
int i;
for (i = 0; i < 1024; i++)
s += d[i] - e[i];
return s;
}
int main ()
{
int i;
for (i = 0; i < 1024; i++)
{
d[i] = i * 2;
e[i] = i;
}
if (foo () != 1023 * 1024 / 2)
abort ();
return 0;
}
@@ -1,0 +1,27 @@
char p[32];
static int j;
__attribute__((noinline))
static void foo (int i)
{
if (j++ == 0)
p[i + 4] = 12;
else
p[i - 4] = 13;
}
int
main ()
{
foo (30);
foo (30);
foo (30);
return 0;
}
@@ -440,6 +440,11 @@
iterator
erase(const_iterator);
iterator
erase(iterator __it)
{ return erase(const_iterator(__it)); }
size_type
erase(const key_type&);
@@ -887,7 +887,7 @@
for (auto __itx = __this->begin(); __itx != __this->end(); ++__itx)
{
const auto __ity = __other.find(_ExtractKey()(*__itx));
if (__ity == __other.end() || *__ity != *__itx)
if (__ity == __other.end() || !bool(*__ity == *__itx))
return false;
}
return true;
@@ -925,7 +925,7 @@
for (_Uiterator __it1 = __first1; __it1 != __last1; ++__it1)
{
_Uiterator __tmp = __first1;
while (__tmp != __it1 && !(*__tmp == *__it1))
while (__tmp != __it1 && !bool(*__tmp == *__it1))
++__tmp;
@@ -1,6 +1,6 @@
@@ -173,6 +173,11 @@
"substituting _UIntType not an unsigned integral type");
static_assert(__m == 0u || (__a < __m && __c < __m),
"template argument substituting __m out of bounds");
static_assert(__m % __a < __m / __a,
"sorry, not implemented yet: try a smaller 'a' constant");
public:
@@ -1,6 +1,6 @@
// random number generation (out of line) -*- C++ -*-
// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -49,6 +49,8 @@
//
// Preconditions: a > 0, m > 0.
//
// XXX FIXME: as-is, only works correctly for __m % __a < __m / __a.
//
template<typename _Tp, _Tp __m, _Tp __a, _Tp __c, bool>
struct _Mod
{
@@ -2769,8 +2771,8 @@
^ __begin[(__k + __p) % __n]
^ __begin[(__k - 1) % __n]);
_Type __r1 = __arg ^ (__arg >> 27);
__r1 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value,
1664525u, 0u>(__r1);
__r1 = __detail::__mod<_Type,
__detail::_Shift<_Type, 32>::__value>(1664525u * __r1);
_Type __r2 = __r1;
if (__k == 0)
__r2 += __s;
@@ -2791,8 +2793,8 @@
+ __begin[(__k + __p) % __n]
+ __begin[(__k - 1) % __n]);
_Type __r3 = __arg ^ (__arg >> 27);
__r3 = __detail::__mod<_Type, __detail::_Shift<_Type, 32>::__value,
1566083941u, 0u>(__r3);
__r3 = __detail::__mod<_Type,
__detail::_Shift<_Type, 32>::__value>(1566083941u * __r3);
_Type __r4 = __r3 - __k % __n;
__r4 = __detail::__mod<_Type,
__detail::_Shift<_Type, 32>::__value>(__r4);
@@ -2219,7 +2219,7 @@
regex_constants::match_flag_type __flags
= regex_constants::match_default)
{
std::string __result;
basic_string<_Ch_type> __result;
regex_replace(std::back_inserter(__result),
__s.begin(), __s.end(), __e, __fmt, __flags);
return __result;
@@ -100,6 +100,8 @@
constexpr shared_ptr()
: __shared_ptr<_Tp>() { }
shared_ptr(const shared_ptr&) = default;
/**
* @brief Construct a %shared_ptr that owns the pointer @a __p.
* @param __p A pointer that is convertible to element_type*.
@@ -263,6 +265,8 @@
*/
constexpr shared_ptr(nullptr_t __p)
: __shared_ptr<_Tp>(__p) { }
shared_ptr& operator=(const shared_ptr&) = default;
template<typename _Tp1>
shared_ptr&
@@ -799,7 +799,8 @@
: _M_ptr(__p), _M_refcount(__r._M_refcount)
{ }
__shared_ptr(const __shared_ptr&) = default;
__shared_ptr& operator=(const __shared_ptr&) = default;
template<typename _Tp1, typename = typename
std::enable_if<std::is_convertible<_Tp1*, _Tp*>::value>::type>
@@ -612,6 +612,11 @@
iterator
erase(const_iterator __position)
{ return _M_t.erase(__position); }
iterator
erase(iterator __position)
{ return _M_t.erase(__position); }
#else
/**
* @brief Erases an element from a %map.
@@ -533,6 +533,11 @@
iterator
erase(const_iterator __position)
{ return _M_t.erase(__position); }
iterator
erase(iterator __position)
{ return _M_t.erase(__position); }
#else
/**
* @brief Erases an element from a %multimap.
@@ -222,10 +222,10 @@
/**
* @brief Return list of partial sums
*
* Accumulates the values in the range [first,last) using operator+().
* Accumulates the values in the range [first,last) using the @c + operator.
* As each successive input value is added into the total, that partial sum
* is written to @a result. Therefore, the first value in result is the
* first value of the input, the second value in result is the sum of the
* is written to @p result. Therefore, the first value in @p result is the
* first value of the input, the second value in @p result is the sum of the
* first and second input values, and so on.
*
* @param first Start of input range.
@@ -261,15 +261,16 @@
/**
* @brief Return list of partial sums
*
* Accumulates the values in the range [first,last) using operator+().
* Accumulates the values in the range [first,last) using @p binary_op.
* As each successive input value is added into the total, that partial sum
* is written to @a result. Therefore, the first value in result is the
* first value of the input, the second value in result is the sum of the
* is written to @a result. Therefore, the first value in @p result is the
* first value of the input, the second value in @p result is the sum of the
* first and second input values, and so on.
*
* @param first Start of input range.
* @param last End of input range.
* @param result Output to write sums to.
* @param binary_op Function object.
* @return Iterator pointing just beyond the values written to result.
*/
template<typename _InputIterator, typename _OutputIterator,
@@ -760,6 +760,16 @@
_M_erase_aux(__position);
return __result._M_const_cast();
}
iterator
erase(iterator __position)
{
iterator __result = __position;
++__result;
_M_erase_aux(__position);
return __result;
}
#else
void
erase(iterator __position)
@@ -1,7 +1,7 @@
@@ -530,6 +530,21 @@
__uninit_default_n(__first, __n);
}
template<typename _Tp, typename _Allocator>
inline auto
_Construct_default_a_impl(_Tp* __ptr, _Allocator& __alloc, void*)
-> decltype(__alloc.construct(__ptr))
{ return __alloc.construct(__ptr); }
template<typename _Tp, typename _Allocator>
inline void
_Construct_default_a_impl(_Tp* __ptr, _Allocator& __alloc, ...)
{ _Construct(__ptr); }
template<typename _Tp, typename _Allocator>
inline void
_Construct_default_a(_Tp* __ptr, _Allocator& __alloc)
{ _Construct_default_a_impl(__ptr, __alloc, nullptr); }
@@ -544,7 +559,7 @@
__try
{
for (; __cur != __last; ++__cur)
__alloc.construct(std::__addressof(*__cur));
_Construct_default_a(std::__addressof(*__cur), __alloc);
}
__catch(...)
{
@@ -573,7 +588,7 @@
__try
{
for (; __n > 0; --__n, ++__cur)
__alloc.construct(std::__addressof(*__cur));
_Construct_default_a(std::__addressof(*__cur), __alloc);
}
__catch(...)
{
@@ -1,7 +1,7 @@
// -*- C++ -*- C forwarding header.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008, 2009, 2010
// 2006, 2007, 2008, 2009, 2010, 2011
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -156,10 +156,7 @@
template<typename _Tp, typename _Up>
inline
typename __gnu_cxx::__promote_2<
typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value
&& __is_arithmetic<_Up>::__value,
_Tp>::__type, _Up>::__type
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
atan2(_Tp __y, _Up __x)
{
typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
@@ -374,10 +371,7 @@
template<typename _Tp, typename _Up>
inline
typename __gnu_cxx::__promote_2<
typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value
&& __is_arithmetic<_Up>::__value,
_Tp>::__type, _Up>::__type
typename __gnu_cxx::__promote_2<_Tp, _Up>::__type
pow(_Tp __x, _Up __y)
{
typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;
@@ -273,6 +273,10 @@
this->_M_invalidate_if(_Equal(__position.base()));
return iterator(_Base::erase(__position.base()), this);
}
iterator
erase(iterator __position)
{ return erase(const_iterator(__position)); }
#else
void
erase(iterator __position)
@@ -254,6 +254,10 @@
this->_M_invalidate_if(_Equal(__position.base()));
return iterator(_Base::erase(__position.base()), this);
}
iterator
erase(iterator __position)
{ return erase(const_iterator(__position)); }
#else
void
erase(iterator __position)
@@ -276,6 +276,10 @@
}
iterator
erase(iterator __it)
{ return erase(const_iterator(__it)); }
iterator
erase(const_iterator __first, const_iterator __last)
{
__glibcxx_check_erase_range(__first, __last);
@@ -556,6 +560,10 @@
this->_M_invalidate_if(_Equal(__it.base()));
return iterator(_Base::erase(__it.base()), this);
}
iterator
erase(iterator __it)
{ return erase(const_iterator(__it)); }
iterator
erase(const_iterator __first, const_iterator __last)
@@ -269,6 +269,10 @@
}
iterator
erase(iterator __it)
{ return erase(const_iterator(__it)); }
iterator
erase(const_iterator __first, const_iterator __last)
{
__glibcxx_check_erase_range(__first, __last);
@@ -537,6 +541,10 @@
this->_M_invalidate_if(_Equal(__it.base()));
return iterator(_Base::erase(__it.base()), this);
}
iterator
erase(iterator __it)
{ return erase(const_iterator(__it)); }
iterator
erase(const_iterator __first, const_iterator __last)
@@ -1,6 +1,7 @@
@@ -161,44 +162,50 @@
struct __promote
{ typedef double __type; };
template<typename _Tp>
struct __promote<_Tp, false>
{ typedef _Tp __type; };
{ };
template<>
struct __promote<long double>
{ typedef long double __type; };
template<>
struct __promote<double>
{ typedef double __type; };
template<>
struct __promote<float>
{ typedef float __type; };
template<typename _Tp, typename _Up>
template<typename _Tp, typename _Up,
typename _Tp2 = typename __promote<_Tp>::__type,
typename _Up2 = typename __promote<_Up>::__type>
struct __promote_2
{
private:
typedef typename __promote<_Tp>::__type __type1;
typedef typename __promote<_Up>::__type __type2;
public:
typedef __typeof__(__type1() + __type2()) __type;
typedef __typeof__(_Tp2() + _Up2()) __type;
};
template<typename _Tp, typename _Up, typename _Vp>
template<typename _Tp, typename _Up, typename _Vp,
typename _Tp2 = typename __promote<_Tp>::__type,
typename _Up2 = typename __promote<_Up>::__type,
typename _Vp2 = typename __promote<_Vp>::__type>
struct __promote_3
{
private:
typedef typename __promote<_Tp>::__type __type1;
typedef typename __promote<_Up>::__type __type2;
typedef typename __promote<_Vp>::__type __type3;
public:
typedef __typeof__(__type1() + __type2() + __type3()) __type;
typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type;
};
template<typename _Tp, typename _Up, typename _Vp, typename _Wp>
template<typename _Tp, typename _Up, typename _Vp, typename _Wp,
typename _Tp2 = typename __promote<_Tp>::__type,
typename _Up2 = typename __promote<_Up>::__type,
typename _Vp2 = typename __promote<_Vp>::__type,
typename _Wp2 = typename __promote<_Wp>::__type>
struct __promote_4
{
private:
typedef typename __promote<_Tp>::__type __type1;
typedef typename __promote<_Up>::__type __type2;
typedef typename __promote<_Vp>::__type __type3;
typedef typename __promote<_Wp>::__type __type4;
public:
typedef __typeof__(__type1() + __type2() + __type3() + __type4()) __type;
typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type;
};
_GLIBCXX_END_NAMESPACE_VERSION
@@ -1,32 +1,25 @@
/** @file profile/base.h
* @brief Sequential helper functions.
@@ -5,27 +5,21 @@
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// Free Software Foundation; either version 3, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
/** @file profile/map
* This file is a GNU profile extension to the Standard C++ Library.
@@ -5,27 +5,21 @@
/** @file profile/map.h
* This file is a GNU profile extension to the Standard C++ Library.
@@ -326,6 +320,10 @@
__profcxx_map_to_unordered_map_erase(this, size(), 1);
return __i;
}
iterator
erase(iterator __position)
{ return erase(const_iterator(__position)); }
#else
void
erase(iterator __position)
@@ -225,6 +225,10 @@
iterator
erase(const_iterator __position)
{ return iterator(_Base::erase(__position)); }
iterator
erase(iterator __position)
{ return iterator(_Base::erase(__position)); }
#else
void
erase(iterator __position)
@@ -5,27 +5,21 @@
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// Free Software Foundation; either version 3, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
/** @file profile/set
* This file is a GNU profile extension to the Standard C++ Library.
@@ -5,27 +5,21 @@
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// Free Software Foundation; either version 3, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
/** @file profile/unordered_map
* This file is a GNU profile extension to the Standard C++ Library.
@@ -5,27 +5,21 @@
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// Free Software Foundation; either version 3, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
/** @file profile/unordered_set
* This file is a GNU profile extension to the Standard C++ Library.
@@ -5,27 +5,21 @@
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// Free Software Foundation; either version 3, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
/** @file profile/vector
* This file is a GNU profile extension to the Standard C++ Library.
@@ -1,7 +1,7 @@
// The template and inlines for the -*- C++ -*- complex number classes.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007, 2008, 2009, 2010
// 2006, 2007, 2008, 2009, 2010, 2011
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -1695,12 +1695,9 @@
std::complex<_Tp>
__complex_acosh(const std::complex<_Tp>& __z)
{
std::complex<_Tp> __t((__z.real() - __z.imag())
* (__z.real() + __z.imag()) - _Tp(1.0),
_Tp(2.0) * __z.real() * __z.imag());
__t = std::sqrt(__t);
return std::log(__t + __z);
// Kahan's formula.
return _Tp(2.0) * std::log(std::sqrt(_Tp(0.5) * (__z + _Tp(1.0)))
+ std::sqrt(_Tp(0.5) * (__z - _Tp(1.0))));
}
#if _GLIBCXX_USE_C99_COMPLEX_TR1
@@ -198,10 +198,25 @@
void
wait(_Lock& __lock)
{
unique_lock<mutex> __my_lock(_M_mutex);
__lock.unlock();
_M_cond.wait(__my_lock);
__lock.lock();
// scoped unlock - unlocks in ctor, re-locks in dtor
struct _Unlock {
explicit _Unlock(_Lock& __lk) : _M_lock(__lk) { __lk.unlock(); }
~_Unlock() noexcept(false)
{
if (uncaught_exception())
__try { _M_lock.lock(); } __catch(...) { }
else
_M_lock.lock();
}
_Lock& _M_lock;
};
unique_lock<mutex> __my_lock(_M_mutex);
_Unlock __unlock(__lock);
// _M_mutex must be unlocked before re-locking __lock so move
// ownership of _M_mutex lock to an object with shorter lifetime.
unique_lock<mutex> __my_lock2(std::move(__my_lock));
_M_cond.wait(__my_lock2);
}
@@ -185,12 +185,9 @@
std::complex<_Tp>
__complex_acosh(const std::complex<_Tp>& __z)
{
std::complex<_Tp> __t((__z.real() - __z.imag())
* (__z.real() + __z.imag()) - _Tp(1.0),
_Tp(2.0) * __z.real() * __z.imag());
__t = std::sqrt(__t);
return std::log(__t + __z);
// Kahan's formula.
return _Tp(2.0) * std::log(std::sqrt(_Tp(0.5) * (__z + _Tp(1.0)))
+ std::sqrt(_Tp(0.5) * (__z - _Tp(1.0))));
}
#if _GLIBCXX_USE_C99_COMPLEX_TR1
@@ -1,6 +1,6 @@
// Special functions -*- C++ -*-
// Copyright (C) 2006, 2007, 2008, 2009, 2010
// Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -84,7 +84,7 @@
unsigned int __i;
for (__H_nm2 = __H_0, __H_nm1 = __H_1, __i = 2; __i <= __n; ++__i)
{
__H_n = 2 * (__x * __H_nm1 + (__i - 1) * __H_nm2);
__H_n = 2 * (__x * __H_nm1 - (__i - 1) * __H_nm2);
__H_nm2 = __H_nm1;
__H_nm1 = __H_n;
}
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler.h
* @brief Interface of the profiling runtime library.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_algos.h
* @brief Algorithms used by the profile extension.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_container_size.h
* @brief Diagnostics for container sizes.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_hash_func.h
* @brief Data structures to represent profiling traces.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_hashtable_size.h
* @brief Collection of hashtable size traces.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_list_to_slist.h
* @brief Diagnostics for list to slist.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_list_to_vector.h
* @brief diagnostics for list to vector.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_map_to_unordered_map.h
* @brief Diagnostics for map to unordered_map.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_node.h
* @brief Data structures to represent a single profiling event.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_state.h
* @brief Global profiler state.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_trace.h
* @brief Data structures to represent profiling traces.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_vector_size.h
* @brief Collection of vector size traces.
@@ -1,32 +1,25 @@
/** @file profile/impl/profiler_vector_to_list.h
* @brief diagnostics for vector to list.
@@ -1,0 +1,66 @@
#include <memory>
#include <vector>
#include <testsuite_hooks.h>
int count = 0;
template <class T>
struct allocator98 : std::allocator<T>
{
template <class U> struct rebind { typedef allocator98<U> other; };
allocator98() { }
template <class U> allocator98(const allocator98<U>&) { };
void construct(T* p, const T& val)
{
++count;
std::allocator<T>::construct(p, val);
}
};
template <class T>
struct allocator11 : std::allocator<T>
{
template <class U> struct rebind { typedef allocator11<U> other; };
allocator11() { }
template <class U> allocator11(const allocator11<U>&) { };
template<typename... Args>
void construct(T* p, Args&&... args)
{
++count;
std::allocator<T>::construct(p, std::forward<Args>(args)...);
}
};
int main()
{
std::vector< int, allocator98<int> > v98(1);
VERIFY( count == 0 );
std::vector< int, allocator11<int> > v11(1);
VERIFY( count == 1 );
}
@@ -5,7 +5,7 @@
@@ -14,9 +14,8 @@
#include <functional>
@@ -1,0 +1,62 @@
#include <cmath>
namespace a
{
template<typename> class Mat { };
template<typename T> struct Mat2 : Mat<T> { };
template<typename T>
int fdim(Mat<T>) { return 1; }
template<typename T, typename U>
int floor(Mat<T>, U) { return 1; }
template<typename T, typename U>
int floor(T, Mat<U>) { return 1; }
template<typename T, typename U, typename V>
int fma(Mat<T>, U, V) { return 1; }
template<typename T, typename U, typename V>
int fma(T, Mat<U>, V) { return 1; }
template<typename T, typename U, typename V>
int fma(T, U, Mat<V>) { return 1; }
}
int main()
{
int __attribute__((unused)) i;
using namespace std;
a::Mat2<double> c;
i = fdim(c);
i = floor(c, 0.);
i = floor(0., c);
i = floor(c, 1);
i = floor(1, c);
i = fma(c, 0., 1.);
i = fma(0., c, 1.);
i = fma(0., 1., c);
i = fma(c, 0., 1);
i = fma(0., c, 1);
i = fma(0., 1, c);
}
@@ -1,0 +1,53 @@
#include <complex>
#include <testsuite_hooks.h>
template<typename T>
void test01_do()
{
bool test __attribute__((unused)) = true;
const std::complex<T> ca(T(-2), T(2));
const std::complex<T> cb(T(-2), T(0));
const std::complex<T> cc(T(-2), T(-2));
std::complex<T> cra = std::acosh(ca);
std::complex<T> crb = std::acosh(cb);
std::complex<T> crc = std::acosh(cc);
VERIFY( cra.real() > T(0) );
VERIFY( crb.real() > T(0) );
VERIFY( crc.real() > T(0) );
}
void test01()
{
test01_do<float>();
test01_do<double>();
test01_do<long double>();
}
int main()
{
test01();
return 0;
}
@@ -1,0 +1,54 @@
#include <complex>
namespace a
{
template<typename> class Mat { };
template<typename T> struct Mat2 : Mat<T> { };
template<typename T> int arg(Mat<T>) { return 1; }
template<typename T> int conj(Mat<T>) { return 1; }
template<typename T> int imag(Mat<T>) { return 1; }
template<typename T> int norm(Mat<T>) { return 1; }
template<typename T> int proj(Mat<T>) { return 1; }
template<typename T> int real(Mat<T>) { return 1; }
template<typename T, typename U> int pow(Mat<T>, U) { return 1; }
template<typename T, typename U> int pow(T, Mat<U>) { return 1; }
}
int main()
{
int __attribute__((unused)) i;
using namespace std;
a::Mat2< std::complex<double> > c;
i = arg(c);
i = conj(c);
i = imag(c);
i = norm(c);
i = proj(c);
i = real(c);
i = pow(std::complex<float>(), c);
i = pow(c, std::complex<float>());
}
@@ -1,0 +1,80 @@
#include <condition_variable>
#include <thread>
#include <mutex>
#include <array>
#include <sstream>
struct scoped_thread
{
~scoped_thread() { if (t.joinable()) t.join(); }
std::thread t;
};
int main()
{
typedef std::unique_lock<std::mutex> Lock;
std::mutex m;
std::condition_variable_any cond;
unsigned int product = 0;
const unsigned int count = 10;
std::ostringstream out;
std::array<scoped_thread, 2> threads;
for (std::size_t i = 0; i < threads.size(); ++i)
threads[i].t
= std::thread( [&]
{
for (unsigned int i = 0; i < count; ++i)
{
std::this_thread::yield();
Lock lock(m);
while(product == 0)
cond.wait(lock);
out << "got product "
<< std::this_thread::get_id()
<< ' ' << product << std::endl;
--product;
}
} );
for (std::size_t i = 0; i < threads.size() * count; ++i)
{
std::this_thread::yield();
Lock lock(m);
++product;
out << "setting product " << std::this_thread::get_id()
<< ' ' << product << std::endl;
cond.notify_one();
}
}
@@ -35,4 +35,4 @@
}
@@ -36,4 +36,4 @@
}
@@ -35,4 +35,4 @@
}
@@ -36,4 +36,4 @@
}
@@ -35,6 +35,6 @@
std::shared_ptr<X> p9(ap());
}
@@ -42,8 +42,8 @@
return 0;
}
@@ -1,0 +1,38 @@
#include <unordered_map>
struct X
{
template<typename T>
X(T&) {}
};
bool operator==(const X&, const X&) { return false; }
void erasor(std::unordered_map<X, int>& s, X x)
{
std::unordered_map<X, int>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,38 @@
#include <unordered_map>
struct X
{
template<typename T>
X(T&) {}
};
bool operator==(const X&, const X&) { return false; }
void erasor(std::unordered_multimap<X, int>& s, X x)
{
std::unordered_multimap<X, int>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,38 @@
#include <unordered_set>
struct X
{
template<typename T>
X(T&) {}
};
bool operator==(const X&, const X&) { return false; }
void erasor(std::unordered_multiset<X>& s, X x)
{
std::unordered_multiset<X>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,38 @@
#include <unordered_set>
struct X
{
template<typename T>
X(T&) {}
};
bool operator==(const X&, const X&) { return false; }
void erasor(std::unordered_set<X>& s, X x)
{
std::unordered_set<X>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,28 @@
#include <unordered_set>
struct value {};
struct hash { std::size_t operator()(const value&) const; };
bool operator==(value const&, value const&);
std::unordered_set<value, hash> set;
bool z = (set == set);
@@ -1,0 +1,62 @@
#include <tr1/cmath>
namespace a
{
template<typename> class Mat { };
template<typename T> struct Mat2 : Mat<T> { };
template<typename T>
int fdim(Mat<T>) { return 1; }
template<typename T, typename U>
int floor(Mat<T>, U) { return 1; }
template<typename T, typename U>
int floor(T, Mat<U>) { return 1; }
template<typename T, typename U, typename V>
int fma(Mat<T>, U, V) { return 1; }
template<typename T, typename U, typename V>
int fma(T, Mat<U>, V) { return 1; }
template<typename T, typename U, typename V>
int fma(T, U, Mat<V>) { return 1; }
}
int main()
{
int __attribute__((unused)) i;
using namespace std::tr1;
a::Mat2<double> c;
i = fdim(c);
i = floor(c, 0.);
i = floor(0., c);
i = floor(c, 1);
i = floor(1, c);
i = fma(c, 0., 1.);
i = fma(0., c, 1.);
i = fma(0., 1., c);
i = fma(c, 0., 1);
i = fma(0., c, 1);
i = fma(0., 1, c);
}
@@ -1,0 +1,51 @@
#include <tr1/complex>
#include <testsuite_hooks.h>
template<typename T>
void test01_do()
{
bool test __attribute__((unused)) = true;
const std::complex<T> ca(T(-2), T(2));
const std::complex<T> cb(T(-2), T(0));
const std::complex<T> cc(T(-2), T(-2));
std::complex<T> cra = std::tr1::acosh(ca);
std::complex<T> crb = std::tr1::acosh(cb);
std::complex<T> crc = std::tr1::acosh(cc);
VERIFY( cra.real() > T(0) );
VERIFY( crb.real() > T(0) );
VERIFY( crc.real() > T(0) );
}
void test01()
{
test01_do<float>();
test01_do<double>();
test01_do<long double>();
}
int main()
{
test01();
return 0;
}
@@ -1,0 +1,54 @@
#include <tr1/complex>
namespace a
{
template<typename> class Mat { };
template<typename T> struct Mat2 : Mat<T> { };
template<typename T> int arg(Mat<T>) { return 1; }
template<typename T> int conj(Mat<T>) { return 1; }
template<typename T> int imag(Mat<T>) { return 1; }
template<typename T> int norm(Mat<T>) { return 1; }
template<typename T> int proj(Mat<T>) { return 1; }
template<typename T> int real(Mat<T>) { return 1; }
template<typename T, typename U> int pow(Mat<T>, U) { return 1; }
template<typename T, typename U> int pow(T, Mat<U>) { return 1; }
}
int main()
{
int __attribute__((unused)) i;
using namespace std::tr1;
a::Mat2< std::complex<double> > c;
i = arg(c);
i = conj(c);
i = imag(c);
i = norm(c);
i = proj(c);
i = real(c);
i = pow(std::complex<float>(), c);
i = pow(c, std::complex<float>());
}
@@ -8,18 +8,17 @@
#include <string>
#include <testsuite_hooks.h>
@@ -8,18 +8,17 @@
#include <string>
#include <testsuite_hooks.h>
@@ -1,0 +1,38 @@
#include <map>
struct X
{
template<typename T>
X(T&) {}
};
bool operator<(const X&, const X&) { return false; }
void erasor(std::map<X, int>& s, X x)
{
std::map<X, int>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,38 @@
#include <map>
struct X
{
template<typename T>
X(T&) {}
};
bool operator<(const X&, const X&) { return false; }
void erasor(std::multimap<X, int>& s, X x)
{
std::multimap<X, int>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,38 @@
#include <set>
struct X
{
template<typename T>
X(T&) {}
};
bool operator<(const X&, const X&) { return false; }
void erasor(std::multiset<X>& s, X x)
{
std::multiset<X>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,38 @@
#include <set>
struct X
{
template<typename T>
X(T&) {}
};
bool operator<(const X&, const X&) { return false; }
void erasor(std::set<X>& s, X x)
{
std::set<X>::iterator it = s.find(x);
if (it != s.end())
s.erase(it);
}
@@ -1,0 +1,31 @@
#include <regex>
#include <string>
void test01()
{
std::string toProcess("Bug\r\n");
std::string result __attribute__((unused))
= std::regex_replace(toProcess, std::regex("\\r"), std::string("\\r"));
}
@@ -1,0 +1,31 @@
#include <regex>
#include <string>
void test01()
{
std::wstring toProcess(L"Bug\r\n");
std::wstring result __attribute__((unused))
= std::regex_replace(toProcess, std::wregex(L"\\r"), std::wstring(L"\\r"));
}