# HG changeset patch # User kent # Date 1265532274 -32400 # Node ID 3bfb6c00c1e0b50277f58dbf4d30cb6311a781be # Parent b85a337e583743435640aea8b5b08ab7d77d97f4 update it from 4.4.2 to 4.4.3. diff -r b85a337e5837 -r 3bfb6c00c1e0 ChangeLog --- a/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,11 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + +2009-11-23 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 INSTALL/binaries.html --- a/INSTALL/binaries.html Sun Feb 07 17:43:48 2010 +0900 +++ b/INSTALL/binaries.html Sun Feb 07 17:44:34 2010 +0900 @@ -59,7 +59,7 @@
  • Hudson Valley Community College Open Source Software for IBM System p; -
  • AIX 5L and 6 Open Source Packages. +
  • AIX 5L and 6 Open Source Packages.
  • DOS—DJGPP. diff -r b85a337e5837 -r 3bfb6c00c1e0 INSTALL/finalinstall.html --- a/INSTALL/finalinstall.html Sun Feb 07 17:43:48 2010 +0900 +++ b/INSTALL/finalinstall.html Sun Feb 07 17:44:34 2010 +0900 @@ -150,7 +150,7 @@ ‘make pdf’ in place of ‘make dvi’, you can create documentation in the form of .pdf files; this requires texi2pdf, which is included with Texinfo version 4.8 and later. You can also -buy printed manuals from the Free Software Foundation, though such manuals may not be for the most +buy printed manuals from the Free Software Foundation, though such manuals may not be for the most recent version of GCC.

    If you would like to generate online HTML documentation, do ‘cd diff -r b85a337e5837 -r 3bfb6c00c1e0 INSTALL/specific.html --- a/INSTALL/specific.html Sun Feb 07 17:43:48 2010 +0900 +++ b/INSTALL/specific.html Sun Feb 07 17:44:34 2010 +0900 @@ -248,7 +248,6 @@

    diff -r b85a337e5837 -r 3bfb6c00c1e0 LAST_UPDATED --- a/LAST_UPDATED Sun Feb 07 17:43:48 2010 +0900 +++ b/LAST_UPDATED Sun Feb 07 17:44:34 2010 +0900 @@ -1,1 +1,1 @@ -Obtained from SVN: branches/gcc-4_4-branch revision 153041 +Obtained from SVN: tags/gcc_4_4_3_release revision 156151 diff -r b85a337e5837 -r 3bfb6c00c1e0 MD5SUMS --- a/MD5SUMS Sun Feb 07 17:43:48 2010 +0900 +++ b/MD5SUMS Sun Feb 07 17:44:34 2010 +0900 @@ -1,5 +1,5 @@ # This file contains the MD5 checksums of the files in the -# gcc-4.4-20091020.tar.bz2 tarball. +# gcc-4.4.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,18 +14,30 @@ fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB -230942da304b72d52bbbbc774495e81c ChangeLog +c4e6e0291633ac7225500aa3430df103 ChangeLog 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 23b8927fe1fb0ab321c09a4f0500aa4c INSTALL/README -9f2e9922a1bc2b2d783e68063e91bd2a LAST_UPDATED +39e103fcd4b476e830ead537db0f0ce6 INSTALL/binaries.html +964574dab7bb95e426817d6c700aeb9c INSTALL/build.html +e54594ec73b503efa9f639c0249e72f2 INSTALL/configure.html +caa67c170a7aced972a840872a2d8629 INSTALL/download.html +4d85f95f3438f045da483e624ba1bc77 INSTALL/finalinstall.html +4a4ca6ded2b8fd9a06f0504d4fafdc59 INSTALL/gfdl.html +a318bb45318622a811182dc360aaef48 INSTALL/index.html +9f302849ed05dc2816dbdc2f8909b1c3 INSTALL/old.html +f0d430e01b30f96a67254f13edba1704 INSTALL/prerequisites.html +8790051b5b47a876404f63c59431c1c0 INSTALL/specific.html +056de66b1c328aba85bcf9f25b628c7e INSTALL/test.html +ef18ce98e654478d55bb7e9c2eda213e LAST_UPDATED 8ebaee0179044912b95c64f6fb6a8282 MAINTAINERS e7c586243a1211c8c2f1b88871d84b86 Makefile.def 042ff95b3e1cd0b93d9d4b3da6cca589 Makefile.in 42b7db4fa23a15a3d75a90aeee82f5d6 Makefile.tpl +f335f6826fd3a9d28b217286a54784c2 NEWS 750a7546d281ac42eb2ce87949457731 README b510a5285eb05298b5f3d9f5ae920588 boehm-gc/AmigaOS.c 2caafacabf758bb76a9dfce1fc544b97 boehm-gc/BCC_MAKEFILE -8033a2c1601e49b427279bbf5ae3b491 boehm-gc/ChangeLog +1a448a0e87cd93456029c2019bb509b5 boehm-gc/ChangeLog c18075e3729cd116028480307a8e845d boehm-gc/EMX_MAKEFILE 3b7cc3be9ed3c2135bbda990e8a69303 boehm-gc/MacOS.c 5cf7764626b7dd7272b2fe11403d1b6a boehm-gc/MacProjects.sit.hqx @@ -193,10 +205,10 @@ 2b15399d69a04edb706a80623096dd1b boehm-gc/win32_threads.c b2a35e98453194ca837c363ee9c0d379 compile a48113a06665f2c4c3281455fadcb2b2 config-ml.in -750ac5e3ea012afd503db973cb076f70 config.guess +334a5fe7049791025bea0a0ff23afaec config.guess 6df093e787b282178d1a49a18425857d config.rpath -21e1bf1c3580193cf0906851326a0d64 config.sub -8f8416cccd9363565a3f1206bfbfb181 config/ChangeLog +6e12b36be82dce29d2800c809aa95e94 config.sub +ca6356b52bb604e8855a2feec8cccfd5 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 a925fa6ab8c1f62bc4b4d1421516deaf config/acx.m4 04bdbef77f5fd2e282f7dee0bde60444 config/codeset.m4 @@ -268,7 +280,7 @@ 3510459bb8dffa5ea06682a29bcdbfa9 config/warnings.m4 2763239b0a35057fe58042b53c90bbf8 configure e6c1ca217ddfca2559508e2706dc00a4 configure.ac -ba0d4001ed7cd7a84c0e34aa45a9733a contrib/ChangeLog +538c5c86024f67d1c609d46f2f53a547 contrib/ChangeLog 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa e0ea80d7094bf66610f2f60db444f9a1 contrib/analyze_brprob 49fe5a4a8deb2ae714614e5bb8d2feb1 contrib/check_makefile_deps.sh @@ -293,7 +305,7 @@ b747c8d95bb7534c2c0f5af32ae32520 contrib/paranoia.cc a710b8024ed1edced07e764add76de05 contrib/patch_tester.sh 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh -ccc60ab1118131d2a1680e132e524d65 contrib/reghunt/ChangeLog +8053d18a4a546f29794b158209463a62 contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup @@ -352,7 +364,7 @@ e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall -99138ab91807b835f1e178f66f3b9a82 contrib/regression/ChangeLog +d6df6d05edbd4c867dc212674c80755a 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 @@ -371,7 +383,7 @@ e00fa8f7dd72b80ca5a64130e85fe4f4 contrib/uninclude 7cb42cbdf8becd280d1e16191416fb62 contrib/warn_summary a9c51bc6c9c6d9b9d010ccd8bb4b465a depcomp -394ed012654b6a0eb52ae0a3c5d6fd9f fixincludes/ChangeLog +3bd18a371b555f5e1c5997da208359df fixincludes/ChangeLog 277051b0951b9542a73d7889ca1c753e fixincludes/Makefile.in 90d82f1be59d23a26a23bcd9df46706a fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc @@ -487,7 +499,7 @@ a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB -8539ca4015167cc74a4e55d6d973df3e gcc/ChangeLog +71c3ce546e47fd288e3be2dfb63be227 gcc/ChangeLog 0bb7e37d0205edea285403fa046364e9 gcc/ChangeLog-1997 e5efa68ab382be0d9d01c564d821c87f gcc/ChangeLog-1998 69bcc7c32f5b69af8e7d3df069413ff3 gcc/ChangeLog-1999 @@ -505,8 +517,8 @@ 206522a420b17e10401cce46f983e2ce gcc/ChangeLog.ptr f4dab29fb2c10234cb64e9c59a62f716 gcc/ChangeLog.tree-ssa 8999bd2c5951f1391f3b22cd7a46ef91 gcc/ChangeLog.tuples -8350686157419d36a5fed6b1abb00064 gcc/DATESTAMP -afbe595ca33384182f656ad1e88e8615 gcc/DEV-PHASE +15bebd4f92abcc92518b8292efb8fad1 gcc/DATESTAMP +d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE 11fe4f34d2489126efc52b010ea6f5e6 gcc/FSFChangeLog 5af5721f6387aa8aa5fb200e025dd573 gcc/FSFChangeLog.10 f7f665544fb6aa08551b37283f6c56de gcc/FSFChangeLog.11 @@ -517,7 +529,7 @@ fed64e43bbe3916d38050f44c9da9dc7 gcc/acinclude.m4 53c02c20156f46418b4889d2bde689e9 gcc/aclocal.m4 30995d78221b41ce62c92b2f601b4ebb gcc/ada/9drpc.adb -a6f5d0233b25bf6a542de9b79c5d2ed0 gcc/ada/ChangeLog +2fc551dbfdf32a5d81e792df86b82299 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 @@ -1332,7 +1344,7 @@ fb0c8300c1287e0479a602875413c13b gcc/ada/g-zspche.ads 698b837b776abdf33504479af8506a50 gcc/ada/g-zstspl.ads f51ff3b37fc6a26618f904ec4faf010a gcc/ada/gcc-interface/Make-lang.in -889df618da39da34512b0ba6006735c6 gcc/ada/gcc-interface/Makefile.in +4bdeed6f0083202e7343610149fbce9e gcc/ada/gcc-interface/Makefile.in 395fb3fdf2c15b8c180940f68870ff52 gcc/ada/gcc-interface/ada-tree.def f787729e107c1757229904ce41ae8e1e gcc/ada/gcc-interface/ada-tree.h 6e4d7699715a5948b527b9ffece68c40 gcc/ada/gcc-interface/ada.h @@ -1423,7 +1435,7 @@ d7687cbf6b1c440a90c770b40742ab35 gcc/ada/indepsw-mingw.adb fa914ddcd147d8430f947dc903d68021 gcc/ada/indepsw.adb 5b85c73b60202d26b3cccad29575fd6a gcc/ada/indepsw.ads -04886431231f6f621e2e50d2fc37340c gcc/ada/init.c +0aacb23a2b22e8a830aef5c63d0b821e gcc/ada/init.c 140e73fd59c62efa6f305e46728b5b19 gcc/ada/initialize.c 446612889243e6a7b173cbf8e9c68bd9 gcc/ada/inline.adb 0ff0b3c938f0fd1072834282df9ab486 gcc/ada/inline.ads @@ -1577,7 +1589,7 @@ bb3c4d89e0906c78c5d67860ffea0710 gcc/ada/prj-util.ads 5a03dfcbe0f79cbbef5c9d9347d3bfa2 gcc/ada/prj.adb b6ec04f08673e837354262116be16b8b gcc/ada/prj.ads -bfea70df374edbed8e2899b2e58e19ae gcc/ada/raise-gcc.c +acf304612645e7fa148b2057d81f1eaa gcc/ada/raise-gcc.c 2fcd7db0a784863487de64acb5c5d3af gcc/ada/raise.c 030b0f5c60fa385fd59416f0d6e5abc4 gcc/ada/raise.h e67bfab257dd8d3382063c4d07ed25eb gcc/ada/repinfo.adb @@ -2421,16 +2433,16 @@ b9c01436528929db1abeacb959495701 gcc/bt-load.c 0339c58e1c47c12bd2c46c1a5f7b31c9 gcc/builtin-attrs.def 3d3ef75b8105df8cc219eaf5644f9fff gcc/builtin-types.def -bdae7ce1382aadf7a3d9a305e3b093d9 gcc/builtins.c +a1cd24532baf4182cf21ced989d9610b gcc/builtins.c a255ee3446afb8cea4ebe90fa0fe039d gcc/builtins.def 73e94fd7d8fb1829d449a3e30e2afe5b gcc/c-aux-info.c -9607ca2f5906afd98f03cf17a046d7f3 gcc/c-common.c +62d30a7d4af8d629829c99d02c07d970 gcc/c-common.c 3087eb6dfdb77b30e46747d87e22c86e gcc/c-common.def cff06fcb33b371f862382f90530c95d6 gcc/c-common.h 2ceb08a28d11926cd88da8c96f18c4c7 gcc/c-config-lang.in 18f89c94aca982bf79a42bde6f9c96a2 gcc/c-convert.c a8533f134ab426532bbf9b7f0c40d30a gcc/c-cppbuiltin.c -22f442001ea3aecc1f8be07995a8005c gcc/c-decl.c +39c2310f0024e955916ffedb6be6d285 gcc/c-decl.c b5ae9db64c1aa1cc8f8d8172f9f35e8c gcc/c-dump.c 7b6ca63efd5fb2c3125f9d044b219a1b gcc/c-errors.c f22a0a77ada5edbfdeaf025da188b48c gcc/c-format.c @@ -2445,13 +2457,13 @@ 9184a376b51a416e5a0609636795b50a gcc/c-parser.c 76c4fd60dc01ae080aafef8f4dfc8686 gcc/c-pch.c fba6ef29ec98bac7054b7e56ca68baa0 gcc/c-ppoutput.c -b74a9fa59bf5c763b3d7df4732c77a54 gcc/c-pragma.c +65687cf9cc18784184c4fcaca07785a0 gcc/c-pragma.c e0f74a89a66b5f3bb46b42f64a161ee8 gcc/c-pragma.h bf4f2b3cc1024773aff57035c291ae69 gcc/c-pretty-print.c f8631d6672a1d2dd1e0cec443fc0d3a2 gcc/c-pretty-print.h 1a3c5eb5e304516c49a06a0cdc5a5d28 gcc/c-semantics.c c243d517cc28c2ae7a0040d596e22b75 gcc/c-tree.h -a3ed411d8a1656ab9a3f0b9a05b0a0b9 gcc/c-typeck.c +b67c9585ff6a52af6a677536af5c1ce1 gcc/c-typeck.c c54f11c57dde9974d397d85315a84ef6 gcc/c.opt 4ce898a5b7c039b3601f46155a35754f gcc/caller-save.c f096600761033f7e1b9793aad8f5b0b2 gcc/calls.c @@ -2459,7 +2471,7 @@ cd05048afad409e6c12b47c5aae01538 gcc/cfganal.c c3fa1dc2919fc5e43bce5bb6da791ba3 gcc/cfgbuild.c e1f5dfc5e952ea80ab629d2934ed92d2 gcc/cfgcleanup.c -149467f5f90b6c762e16afe7d6e83c5c gcc/cfgexpand.c +eace5806a0b053ad6c9f3360b581c9f3 gcc/cfgexpand.c 1c33442424e3f0450a6e8c5dc9fabede gcc/cfghooks.c 56a338efdcf6fc90c65d811ea5945ae4 gcc/cfghooks.h 4c4db0af7c7fffab033314cbc9bc7908 gcc/cfglayout.c @@ -2476,19 +2488,19 @@ 7bd9edc24c7c79b5aa46ba9cd512a12d gcc/collect2.c ea855a27372025f95b4f6ff536a5b6b2 gcc/collect2.h bb4cfd4d910574a8e2dbd629c02e2e5d gcc/combine-stack-adj.c -0e571a15eb743f72155495bf97fa10bc gcc/combine.c +19cb162fce67fdc240b28f48d6870b39 gcc/combine.c c8f82300dbae721266534683a4f57887 gcc/common.opt 162c077c493d89717647c605b5b81996 gcc/conditions.h a8b63c89b69671c024a7c874bf4ae667 gcc/config.build -e009b3d4a45d8a4f989e9eca2dd4b770 gcc/config.gcc +c303564fd5176e0d63ae20b35c3ba948 gcc/config.gcc d5475a10fd7eaca715b416fd312e6131 gcc/config.host e72988e60debc250067b965b30acea78 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 3acabb7bb274b8bf65a2a0860087641d gcc/config/alpha/alpha-modes.def 7efb6d3e66c4ad0f2a7dc5c971c0d2ba gcc/config/alpha/alpha-protos.h -cca3206febfa1dd4d68a111436e1d8c7 gcc/config/alpha/alpha.c +0ec10171523669ad2ffecd299fe50288 gcc/config/alpha/alpha.c f173b964e16a08d348f90bd2146f2fe0 gcc/config/alpha/alpha.h -3fb722497baeb406e760a63700d1431f gcc/config/alpha/alpha.md +59b6011d25439900bf8f5dd880019f83 gcc/config/alpha/alpha.md de8e700641c687562ecf731c89b7f96e gcc/config/alpha/alpha.opt bcf619652d7cdd3b04aa64ae5796607d gcc/config/alpha/constraints.md eaa470c97bd55676e6d80966007ba41e gcc/config/alpha/crtfastmath.c @@ -2507,7 +2519,7 @@ 0ba405cf8bddec16a42a7f62039b7c89 gcc/config/alpha/openbsd.h 97dce84f84165405195a00f18ee291aa gcc/config/alpha/osf.h 6f25a3dec97f461d55216191b6854bf2 gcc/config/alpha/osf5.h -d242553e07f1e91dfc65fb07febbf6ec gcc/config/alpha/predicates.md +5f8065758c742d7688707ba7debc5c12 gcc/config/alpha/predicates.md 40377d3f2ac354fe04748ece6e9906f1 gcc/config/alpha/qrnnd.asm f4d795211894d0480ee11e3c0c13eb1c gcc/config/alpha/sync.md 3bbb1cf81aa0513ee0ee3521ef1a7275 gcc/config/alpha/t-alpha @@ -2551,7 +2563,7 @@ 337e34a37f4734666b8e6d777f3f2808 gcc/config/arm/arm-modes.def b138ba59f6ab1eb39036be36d5e5740f gcc/config/arm/arm-protos.h 2e9f22a9b6c8d1e20458687a5ac9bd94 gcc/config/arm/arm-tune.md -24f48c321e565cd1815cdc954f94f108 gcc/config/arm/arm.c +71117efbde501e114c275099bc767bb2 gcc/config/arm/arm.c 623bb67695b6863f49d2cde8349dd670 gcc/config/arm/arm.h 69b1e4a8808770e5a633a16f5a416fae gcc/config/arm/arm.md 38766022e749c081f597bbaee891f44a gcc/config/arm/arm.opt @@ -2581,22 +2593,22 @@ be27ded663b5e0da464113e9282cc080 gcc/config/arm/fpa.md 2f939ea0f5e41d393950ff26a69c42fe gcc/config/arm/freebsd.h 46d77360c255b528b1f33c3082a70fc0 gcc/config/arm/gentune.sh -ec438eb3617eeb8e1f1b6e6a902ee081 gcc/config/arm/ieee754-df.S -7f9b29e2f119f1f1f5ed2d362e431256 gcc/config/arm/ieee754-sf.S +d656df963edb12b100c20f043967378d gcc/config/arm/ieee754-df.S +2ef7f83b582bc6a84849475c32e3c877 gcc/config/arm/ieee754-sf.S 13f53878ff1e2f8c964cf3934aee5eef gcc/config/arm/iwmmxt.md 80d5b69958f33aacd8262e14817a7bf9 gcc/config/arm/lib1funcs.asm cfcfd5e8b171338d69363f5e982c2a06 gcc/config/arm/libgcc-bpabi.ver 494c670e0f21c37b8da05ba1c978dace gcc/config/arm/libunwind.S -2f4bbcec61e90e26a0b75ca8fd8b3088 gcc/config/arm/linux-atomic.c +eb64e56e31523d96482d2dea2434cab2 gcc/config/arm/linux-atomic.c bfbabf64e5cdac49e7febee85286460f gcc/config/arm/linux-eabi.h 4d97c12fedaf29697766a208daa6c286 gcc/config/arm/linux-elf.h fffe0cd79badf432823a50259dd55831 gcc/config/arm/linux-gas.h 9668b0eb418f1f7400b5c479ec170230 gcc/config/arm/mmintrin.h 41e845fae9ed6bb110f628784d88aa1a gcc/config/arm/neon-docgen.ml fd306131cda795e5225949eaf38e81cc gcc/config/arm/neon-gen.ml -f70f8d441b1d6133d7857503f4d1b556 gcc/config/arm/neon-schedgen.ml +e4738f5a75ef7fd6492fac397f3bac18 gcc/config/arm/neon-schedgen.ml a8f52cd1be46a54664632bdcd35e3e18 gcc/config/arm/neon-testgen.ml -7535880e328862a46847233727d46bdd gcc/config/arm/neon.md +a89fcde59bffd3e0b8332454bc8ad9cd gcc/config/arm/neon.md 25e4b4829339b85382493d62ab51bc3a gcc/config/arm/neon.ml 5d463ccba52170e9234f1ccb47ba22ad gcc/config/arm/netbsd-elf.h fddb0dabcecea3d3cc594dbb004c12db gcc/config/arm/netbsd.h @@ -2623,7 +2635,7 @@ 841537ba46ddc813fb1de6061b4fe6ab gcc/config/arm/t-symbian 5a64f92f2a6175d8fcb5a9699eae97b3 gcc/config/arm/t-vxworks 02362d53cdae31a3212764351941f100 gcc/config/arm/t-wince-pe -d917eecaf6074780bac7b70649ea1bf6 gcc/config/arm/thumb2.md +70db29b2969e4cbdf2af775e530d7dfd 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 @@ -2803,10 +2815,10 @@ 7ba449b1d6ba00bda5d570d7f697aeb8 gcc/config/i386/crtprec.c 91c238c5ce01111f141ffc02b33f4ea6 gcc/config/i386/cygming-crtbegin.c 300d149aa9b373f3b00f36bff6e0dabd gcc/config/i386/cygming-crtend.c -c6f2b3fb54dbeabc32cf41c2a208e94a gcc/config/i386/cygming.h +fc06bffc259507ad6f7848c8b6078374 gcc/config/i386/cygming.h 8c4b95330e9dd213dd91f769a52357e3 gcc/config/i386/cygming.opt c521b701644e32f454fbf14f5cf36118 gcc/config/i386/cygwin.asm -2f160855511e74df56b2166e8149f809 gcc/config/i386/cygwin.h +5b4bb785464cc09213433c961b0cc77d gcc/config/i386/cygwin.h 602541c3ef3cdeb1e657d647ee9873ce gcc/config/i386/cygwin1.c e23697c64ed098c4907644cd86b7aeec gcc/config/i386/cygwin2.c 010c5aa15c36857f9089114ce98ab91b gcc/config/i386/darwin-libgcc.10.4.ver @@ -2836,9 +2848,9 @@ f1be9e9dbf092b26488d3768a0d21a59 gcc/config/i386/i386-interix3.h 738261834af8766a7daf88a1900523c6 gcc/config/i386/i386-modes.def 85f8badc238af7d3e39112d0fb7ae468 gcc/config/i386/i386-protos.h -d98be358db5c920827dad5edb183bc2e gcc/config/i386/i386.c +37212af2db96e3dc580b4615f3543028 gcc/config/i386/i386.c 1a5c4b2bb072a72d6dda538a833d90c8 gcc/config/i386/i386.h -16d4e4056db854b1ce6e42ffbe4f3824 gcc/config/i386/i386.md +c2a72d5122cf2261bf304495ade03607 gcc/config/i386/i386.md cc683112908f30f1ddf58eb3cd9b454d gcc/config/i386/i386.opt 4d1dce03e59fae2e895691dbe2816ff6 gcc/config/i386/i386elf.h 9a1cd85c5ebadc9c1b91053f78010f0a gcc/config/i386/immintrin.h @@ -2857,7 +2869,7 @@ a2aab639b7cc09bd945fbbd6718a4835 gcc/config/i386/mm3dnow.h 1387ea0941c0fca47d693edc1f49e7d8 gcc/config/i386/mmintrin-common.h 19220503eff53d1ec2cebfe0f487f915 gcc/config/i386/mmintrin.h -d719cf08e16a5301d57f7e7d3f1c7d56 gcc/config/i386/mmx.md +01d592a2b2363aac6bfbaebb5407ee00 gcc/config/i386/mmx.md 8e11dcff8a87dde20ef7eb27086d03eb gcc/config/i386/msformat-c.c a15f2f585ce2f85912d8f6f09e123684 gcc/config/i386/netbsd-elf.h fc16dbeb0506d46a2b6d84763d171f5e gcc/config/i386/netbsd.h @@ -2878,7 +2890,7 @@ aa297e6a75976dedc4946fa88496ddc9 gcc/config/i386/pmm_malloc.h 150b69ad9bbe39ddb4ef2b46dca8ef1e gcc/config/i386/pmmintrin.h d1419398b2f4ee51cb11e5e3d2237e20 gcc/config/i386/ppro.md -c449f862b45ec3dce29d8166bafc499b gcc/config/i386/predicates.md +f022112fa740928fc752cf5d5b74cf58 gcc/config/i386/predicates.md 5aaf9e5a27e6af65db4d947695469397 gcc/config/i386/rtemself.h a01a2ee6acd694a1911f023e9b830d14 gcc/config/i386/sfp-machine.h 62a8172c1d598948657bac57964cd1eb gcc/config/i386/smmintrin.h @@ -2888,7 +2900,7 @@ a7c56b573f7954c790824437069b36fc gcc/config/i386/sol2-cn.asm 59b63b053033b45a1ff136d858274f8a gcc/config/i386/sol2-gc1.asm ba54e99b242a3b186b050da8de7bb72c gcc/config/i386/sol2.h -e8de898ba6079ce91c449aa1ac6f2ed2 gcc/config/i386/sse.md +d3bc2e6a4cc5dc57634331e09c2376f1 gcc/config/i386/sse.md e4d06a9cea6c8fa19a844b5a96822934 gcc/config/i386/sync.md a69ad68d12e465d4dc457e6f7e335107 gcc/config/i386/sysv4.h 83d2b55a3f61c24c4920b42946f97f19 gcc/config/i386/t-crtfm @@ -2955,7 +2967,7 @@ c517746d9f7377ff4ba8008dfd9b437a gcc/config/ia64/ia64-c.c 2ce3617eaff76a6ff7c9e58039b2cc45 gcc/config/ia64/ia64-modes.def e6c06c7b85f5f92ccc621cbd0b85fadf gcc/config/ia64/ia64-protos.h -bc2c110d89eb8d448634d351395fdcae gcc/config/ia64/ia64.c +e1f8b29b7b26874edb86f1fa8654ad89 gcc/config/ia64/ia64.c 4ca32486dc723404795cf07e44471ef9 gcc/config/ia64/ia64.h a106582bb5fe39e2b47100e2906f7a1d gcc/config/ia64/ia64.md 1bb0b0d5f2b60c47b821a4ef8ac14976 gcc/config/ia64/ia64.opt @@ -3146,14 +3158,14 @@ 34b678f4fb5671a82747beb39f07eecf gcc/config/mips/loongson.h 950101cab2a0a1e6c4ce81541bf25228 gcc/config/mips/loongson.md 01025a4008d8db34be434e9233c39c33 gcc/config/mips/loongson2ef.md -1a0f27d8f093b3eb45c2b5bdbf9434b6 gcc/config/mips/mips-dsp.md +1d472b8259c8d6886a32b145f6335655 gcc/config/mips/mips-dsp.md 386f25362fa593f67cf3a57beb181e67 gcc/config/mips/mips-dspr2.md ce0b6ce72819190717f67f2a883998b8 gcc/config/mips/mips-fixed.md ca332fba9734534f8dadf9eedbe735c1 gcc/config/mips/mips-ftypes.def 808bae0e3a87b1452247d34ccf325a4a gcc/config/mips/mips-modes.def 8c98e685ae10f89a3ce17bda0c07eb5e gcc/config/mips/mips-protos.h 7d0a6b1d9245da99b19ec70272fdc9f2 gcc/config/mips/mips-ps-3d.md -702ed4ae1dfb90a0b9e30a9128bcc151 gcc/config/mips/mips.c +a5bb69452631ea92c1b1e00a54da0385 gcc/config/mips/mips.c f74cfac64c9e9f3bdd5fa517464216c3 gcc/config/mips/mips.h 19fdf7a5f58eaa393a4db8f3dced6903 gcc/config/mips/mips.md d60c425982cf768d5a28ba821dbd48a6 gcc/config/mips/mips.opt @@ -3240,9 +3252,9 @@ 217a72bceca0c1711fbad3a7a23e4551 gcc/config/pa/pa-linux.h 01b8e14468e166bb285428fdc6a20bd3 gcc/config/pa/pa-modes.def 6a0aed342a87e2a6b888fb1788fdd100 gcc/config/pa/pa-protos.h -4cc8135d7055c8e5f471e160231bb6cd gcc/config/pa/pa.c +ee1f19036e4311a2c6bcdc4fe9b79d05 gcc/config/pa/pa.c 4ca42937ab86c9c900c6a60a1f5833ad gcc/config/pa/pa.h -45052b02b8567d820011b3622146a0a0 gcc/config/pa/pa.md +77e3d25300b48254a068f067909cc3a8 gcc/config/pa/pa.md c17a7721fbfc548f190112cc544e0d7b gcc/config/pa/pa.opt 012a1e54461f76d78cd598a9cb40b3bf gcc/config/pa/pa32-linux.h 2454726670f3869f9c35f4de56656dad gcc/config/pa/pa32-regs.h @@ -3462,7 +3474,7 @@ 445109724521202eb7bfc983b3a5d03d gcc/config/rtems.h 9fd2f11c227089207172fd188d2c29af gcc/config/s390/2064.md 40a9dbc66dce81376c49aac58a345775 gcc/config/s390/2084.md -e00fb15280835157042bb8671cdfbac9 gcc/config/s390/2097.md +4bba40e954a32b99a66656c688feb1cb gcc/config/s390/2097.md 834b08227fb5d2f2ed04e9dc61dc962d gcc/config/s390/constraints.md bbf2b44b03be6c410b5ad5bf0d3d67f8 gcc/config/s390/fixdfdi.h 7b5e807ad596c64b0fa8dccd83b57812 gcc/config/s390/libgcc-glibc.ver @@ -3471,9 +3483,9 @@ caa6fb0c0ade92561223e732c2d61a5c gcc/config/s390/predicates.md 9be5cd5b98ff9760eac4fca0d0f4a83f gcc/config/s390/s390-modes.def b5dfe80ee7b40a7dde47132e44df71ed gcc/config/s390/s390-protos.h -619a13c6e49c1d4e29abc43be78a52d5 gcc/config/s390/s390.c +828e069d378a0f5c66a86937851128f7 gcc/config/s390/s390.c 35bb8f1c40f4eca8d2481ff838847811 gcc/config/s390/s390.h -41589cb98e5ab29a475f1bd96118f1d9 gcc/config/s390/s390.md +fb098ba296f47049bb0571272a2c9410 gcc/config/s390/s390.md 6f9250d15fa7fb4dbac18744755f8634 gcc/config/s390/s390.opt 0f3debf41179406f77530d752d92ad9a gcc/config/s390/s390x.h 14ef548e08c4fa033fbdeca7b33d2ac1 gcc/config/s390/t-crtstuff @@ -3710,9 +3722,9 @@ d6ac1866a639d5a4a8c811c8b148058c gcc/config/sparc/sp-elf.h ea1204fcf09118442f22dbbdfad5d91a gcc/config/sparc/sp64-elf.h 4e17170225e4c97fa22650f81efb0c19 gcc/config/sparc/sparc-modes.def -4a09812324e2d19029bd23aed82c0558 gcc/config/sparc/sparc-protos.h -5d73165143122c6dbe2495803cee63d6 gcc/config/sparc/sparc.c -28ce26473d2a075d66ce8bb90eae47da gcc/config/sparc/sparc.h +7d3b72e93b1365865629900559bb3f0a gcc/config/sparc/sparc-protos.h +4f17641da0558ce06b292d16cb829031 gcc/config/sparc/sparc.c +a86c95037ee75097322fffcb3799f235 gcc/config/sparc/sparc.h adaf74a6c60bbb94368ad00b71dd2320 gcc/config/sparc/sparc.md 75efbb9728e482e14e8ccf95301f6466 gcc/config/sparc/sparc.opt e085c3934f5520c64222de26b11c11c6 gcc/config/sparc/sparclet.md @@ -3730,7 +3742,7 @@ 47da72b040690972521b12c8550be797 gcc/config/sparc/ultra1_2.md 024bf1f19b72d95bab4eab92fe730221 gcc/config/sparc/ultra3.md 1c7e85f34f6f4cc2f9d779258cbc7953 gcc/config/sparc/vxworks.h -897dcd928d141d1fcb76d0f1e79f8d75 gcc/config/spu/constraints.md +7bb93e96772441c03510afb601a9abf0 gcc/config/spu/constraints.md 8e6370620810facdcb86830d0d248bce gcc/config/spu/divmodti4.c 094766e2a59f7e6a697563cb3ccfb423 gcc/config/spu/divv2df3.c 558d7fb3061c2878cdc7e2f61e76c132 gcc/config/spu/float_disf.c @@ -3743,16 +3755,16 @@ 010fcee17f3440a5fd5d64ccb6ce73bf gcc/config/spu/mfc_tag_reserve.c c5d08153caafcdb3a6a7d828fa4a1316 gcc/config/spu/mfc_tag_table.c 04e3ddad1c366ff0f7dc1e8f15f451aa gcc/config/spu/multi3.c -8a53e295fa9d920b33b6059c5e8bbf2e gcc/config/spu/predicates.md -0c2c205648dd9defb7780c8df1ae92e6 gcc/config/spu/spu-builtins.def -6a6209e8253504a826c88d9c1f17aabe gcc/config/spu/spu-builtins.md +bde4daebc13d31b07671caedea749601 gcc/config/spu/predicates.md +5bfbe9c68f91857781720ea038052ea6 gcc/config/spu/spu-builtins.def +7d90b7d3b40c7e1b85d9810a344f7aac gcc/config/spu/spu-builtins.md 4e032bdc17a4d5c58a5d6ef32f034d69 gcc/config/spu/spu-c.c 15e1f2ec75f5c3729c8b1e87e9ee5946 gcc/config/spu/spu-elf.h 3f6cd1148d08429aedb2066ac8d6b7c7 gcc/config/spu/spu-modes.def -e822ad84f76e8c4c4532f90b13ba3190 gcc/config/spu/spu-protos.h -5ece16c8357035ffb7d13ae6fecebfa5 gcc/config/spu/spu.c +f236b9877726d4ced11cdeb0ce0f8fbb gcc/config/spu/spu-protos.h +7f00b9fb072e5274d0f360caa8f9f655 gcc/config/spu/spu.c 20b3ec6101bd559aa2d568e0b327b24c gcc/config/spu/spu.h -c5cda62be76de9dac8feb0b85c0ca85e gcc/config/spu/spu.md +4e71e68bf288f1b3ed78b5eecaf4c4ee gcc/config/spu/spu.md c51a5ff6ee29035296427a61a5034ced gcc/config/spu/spu.opt 83d94e03e7d59518cdb25c97de0f0d14 gcc/config/spu/spu_internals.h be4dc0a7131c5429659481e534971def gcc/config/spu/spu_intrinsics.h @@ -3788,7 +3800,8 @@ be493cd1d2f6a4cc9268aace6cb86051 gcc/config/t-openbsd-thread 41115ab7ca3dcd1adeb9a2e03da42f38 gcc/config/t-rtems 399b814c7f9d95f1c3e81efd1ef1ee58 gcc/config/t-slibgcc-darwin -a253d3c6b0faf1b5daf4db04d971da8d gcc/config/t-slibgcc-elf-ver +9eee1a3df16c2c512dec06b454b7273c gcc/config/t-slibgcc-elf-ver +ec99102a9ebc03c2474c1aca00c14623 gcc/config/t-slibgcc-libgcc b5d3fe85dff400a82befa6b901b438ec gcc/config/t-slibgcc-nolc-override 068f4878a2c11051691b0efb71c66f9f gcc/config/t-slibgcc-sld b241b04bca0de03218c83989000a571e gcc/config/t-sol2 @@ -3861,7 +3874,7 @@ ff670e1fb66afb7e147476e295f3d60d gcc/coretypes.h 15415fb6900d9eef3016912a0bd54224 gcc/coverage.c 1a69bad83c84b193b55d89f3edb77ab4 gcc/coverage.h -c0e06818c4d901172863d44ec4b70940 gcc/cp/ChangeLog +86cff4d8c0acff1651865a03f8506fab gcc/cp/ChangeLog bd4aeac90a5befe0218090fe3d3d6542 gcc/cp/ChangeLog-1993 08674355375d2734400e90d47d048ccc gcc/cp/ChangeLog-1994 ba73c2557bcf66206e3cb4f90a4f81a1 gcc/cp/ChangeLog-1995 @@ -3882,7 +3895,7 @@ df30dd47773ff2170eb33bdbb02a384e gcc/cp/ChangeLog.tree-ssa e17ea8022e0f4fdd38ea0da3e416d840 gcc/cp/Make-lang.in 722817c6da9fa9d73d9f114ae094ed4f gcc/cp/NEWS -8c249baaba2d47272d972c5838e46371 gcc/cp/call.c +f1fa588c030d6f507cc1e96cdf219279 gcc/cp/call.c 9f7a823f536eacdd59e2fc31ef4da831 gcc/cp/cfns.gperf da2a64cda03f17f34340b758f89bed5f gcc/cp/cfns.h 9ec4cdff74c72d4deb10ef60069d1484 gcc/cp/class.c @@ -3892,13 +3905,13 @@ 60966d39b5286a9168e823a9669219b2 gcc/cp/cp-objcp-common.c 36e4953bbfee985290b6878d024d200f gcc/cp/cp-objcp-common.h bf58dc9f53704ab06bb6633dd79b479d gcc/cp/cp-tree.def -a3e03a8105616835573b75e3da9e361b gcc/cp/cp-tree.h +7fe585973b4d1b7b27f838361ebb7d9d gcc/cp/cp-tree.h 5ff049045c746e41c3381f25609eea9c gcc/cp/cvt.c f32993deb820146f598ba32cdb47557e gcc/cp/cxx-pretty-print.c 57f04bb8af29de0486e3be8141ca0035 gcc/cp/cxx-pretty-print.h -32a6a57566b5904187275af9361765f3 gcc/cp/decl.c +0c3c1a5c184f4c9cf2f80a1142f17ec0 gcc/cp/decl.c 0eeec2a7ef53b590eb313368952584ab gcc/cp/decl.h -84a86613743237711b8d5f10fe61b968 gcc/cp/decl2.c +e0c93acb3fc7cd26c1ac38f4b1af7aea gcc/cp/decl2.c a009584a5d3113881556b1b41458d6dd gcc/cp/dump.c e1799e9728db94f7a0a05d1bb379987d gcc/cp/error.c 0a140550646258446120c6db1551c5ce gcc/cp/except.c @@ -3908,21 +3921,21 @@ 5f5cb494343f9453cfe6ab6c7cd2b55e gcc/cp/init.c 9a34b66a3f562bb915158e929108deb8 gcc/cp/lang-specs.h 992d66abb65f75f760d515b342f24b41 gcc/cp/lex.c -619e3335a13175101756cf0d9422b1f9 gcc/cp/mangle.c -f20345e1fe0faa7ac30abdfcdaf3b656 gcc/cp/method.c -f6f47442d336b8bf21795e780f65a1b5 gcc/cp/name-lookup.c +4893efefdd7dc01c384674c06875dccf gcc/cp/mangle.c +a3d9bc49954ab9f0a7ecd89fc327dab1 gcc/cp/method.c +93fa4f01f1867d4b287dfc68598f0d7f gcc/cp/name-lookup.c 37b55918cd6cc874e2c6153e30b55f62 gcc/cp/name-lookup.h b080bcfe8e8b473de78c2cb0483a21eb gcc/cp/operators.def 5288d9bc16e1d5de8f23f84297420e47 gcc/cp/optimize.c -60fdad420ba3d73eb4b517d8dc183974 gcc/cp/parser.c -d016ae190a10134e20c94243e1b6c4ee gcc/cp/pt.c +201da1c36bef430fe23c0633b4b9d21d gcc/cp/parser.c +5040876a9c28cab6df05b5c21aee0af7 gcc/cp/pt.c 2a331e99786b101d129fa8b7d66581bb gcc/cp/ptree.c ef6d9b7df3512756ad8d60ec703caa12 gcc/cp/repo.c 4cd606661f72aa421b0652f601dea0e4 gcc/cp/rtti.c 20dc67cad9bc0638789e6134326a118c gcc/cp/search.c -7ca34f15dfe2da9d6c4cb5ce5a0053fc gcc/cp/semantics.c -71f2afa45980c190525939faa15a869f gcc/cp/tree.c -03d5bc569e545183fa6e086242a1d17d gcc/cp/typeck.c +0b4a6d9d425cee8086db7d777f4279d9 gcc/cp/semantics.c +af27ade65f7b941bad45c6ddd41eb90f gcc/cp/tree.c +96d58f0f28e427d9e1cb78eaa3293d65 gcc/cp/typeck.c e72171c196904a0bd6d1a6de21deed42 gcc/cp/typeck2.c 739f89c50b9226ba10b0a5ff3ed77ea3 gcc/cppdefault.c 8cbfd0935964cec15954e2b50ffd92c9 gcc/cppdefault.h @@ -3954,6 +3967,7 @@ 85330ce8910c600f99b937e0b41158ee gcc/diagnostic.c 9c4ce2161f78ceb6373a2fea71018067 gcc/diagnostic.def 1eeca1eb4586a7f2bb81aa7b2dce6b30 gcc/diagnostic.h +d11e25c48277b0dec007923c72e3e7ed gcc/doc/aot-compile.1 fab6e6245c13a86c0526862b93a171f5 gcc/doc/arm-neon-intrinsics.texi f14bb72f864987edc101885b31399d41 gcc/doc/bugreport.texi 60d66885a7ec8aee190214a16e4b1735 gcc/doc/c-tree.texi @@ -3964,19 +3978,38 @@ 6ed911b9535d38ab2eef4969854f0581 gcc/doc/configterms.texi 9c5bb383466ed0828e95db55aeb3dc74 gcc/doc/contrib.texi 532efd24ba5590c6aed6cc4fa92638d8 gcc/doc/contribute.texi +7f1d5058cb5a22812f32396b4afe0bff gcc/doc/cpp.1 +4e933a26b48c024597d26115717a2902 gcc/doc/cpp.info 4f7bbbd170a2d217a88bfc4811988d2b gcc/doc/cpp.texi 8462a717da44ca316c8c9ac975457a32 gcc/doc/cppenv.texi +690eadad4a5df64f367dd431cf705748 gcc/doc/cppinternals.info 55cf8ff7895a619dde004d75de18d584 gcc/doc/cppinternals.texi d5e457163f18dbaf28a84995b7545447 gcc/doc/cppopts.texi ce2f84bca5ea14dcd5d5fc4d68b6d4ff gcc/doc/extend.texi ee150f91929d3eeab1448e2abedb89f6 gcc/doc/fragments.texi 456af151776849fe8c9cbd2c5db5fc36 gcc/doc/frontends.texi +8037bd1c2ae21efc182968f7a8158751 gcc/doc/fsf-funding.7 +947104834d6e2de8e7dde8727c6650a0 gcc/doc/g++.1 +a4469521ce0d7338b5d4a3513298dc70 gcc/doc/gc-analyze.1 +947104834d6e2de8e7dde8727c6650a0 gcc/doc/gcc.1 +dba87277ba88b53ec21844a5a7b633ca gcc/doc/gcc.info f4987f24f0b85b7f7af2aa44d097d232 gcc/doc/gcc.texi +6aff98f30ad12c9cad1f01bb2d630578 gcc/doc/gccinstall.info +f600dddc4da3510f4caded341338517d gcc/doc/gccint.info 839d52ff2dd686433e4d2a60f2ad7900 gcc/doc/gccint.texi +75f824c9e4dcc2339f46e4f618092a72 gcc/doc/gcj-dbtool.1 +1abf457a6f05c3c5f2ac44b4a59157d6 gcc/doc/gcj.1 +57a73d02ea14c63ca85e6e8b89d935d1 gcc/doc/gcj.info +7de98bf33b8210553f82a1f3c1c68809 gcc/doc/gcov.1 284df058ae86fddc2593727db8ae96d6 gcc/doc/gcov.texi a9ec4aa8679b2b09e2fd9870b5374fdc gcc/doc/generic.texi +2627f3d5d3acb1186c2029c509fcec28 gcc/doc/gfdl.7 +8465d9a8c0c2bf7ebbfb6f296a99f181 gcc/doc/gfortran.1 +65223b7b253f285f2ef3f33f7846cdcc gcc/doc/gij.1 87d63a516d5d9384f41a918b6539c88f gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi +11c844aeb2cc867ceea9d0d3abcbe6be gcc/doc/gpl.7 +8d8fd9c0051ded9f36fb0ca2aba7dc4d gcc/doc/grmic.1 5ba6e85d0d744497eeb8e9277744bb5c gcc/doc/gty.texi 12712ad63a56e9d549562b21b42b1454 gcc/doc/headerdirs.texi 6fa9f66c50758cf8a1260ee0c320553b gcc/doc/hostconfig.texi @@ -3991,7 +4024,9 @@ dc9f42e3de7ab0f394df6e6af0850f59 gcc/doc/install.texi 4b06ff09435cecf7fcd8d0c095b73464 gcc/doc/install.texi2html 5407c66b804884426ce94dcac22864d1 gcc/doc/interface.texi -ffc624e2bc36b9fa821c5550fb006150 gcc/doc/invoke.texi +60dfb8f93fd670aaf69e1f75915b5cd9 gcc/doc/invoke.texi +84b55c5255922cce06acac74b99fb023 gcc/doc/jcf-dump.1 +dec9ab698561551cbf570739ea9f9e9c gcc/doc/jv-convert.1 a01aca1d7da7f482653b521ba6447f85 gcc/doc/languages.texi 368c6334d0fd27a14c988b146cb70bcb gcc/doc/libgcc.texi 83fa2ab5d6f29a73570387a1a75a425c gcc/doc/loop.texi @@ -4001,11 +4036,12 @@ a7829c305285858ae6d689e9b67e27fb gcc/doc/options.texi 935b0ead8db1245baa3edb3b52ca324d gcc/doc/passes.texi 72136dc6e58c1bb1790f0f25bbaf8897 gcc/doc/portability.texi +9a31289aea3f5c13a533af2ffebc97af gcc/doc/rebuild-gcj-db.1 c1b0a7fb3a88c4bf76b0a842b66b041b gcc/doc/rtl.texi d65d49dcfee4f97f1aea81855a0c20d6 gcc/doc/service.texi e7293f1df3af714324f8d1eeab23d902 gcc/doc/sourcebuild.texi 730fa18f95591a7df439f3a796948687 gcc/doc/standards.texi -fcc870235863d347c88ea12854a7fc58 gcc/doc/tm.texi +a6f50eb7c226c99b4ff80106816193eb gcc/doc/tm.texi 7db47935a7b0df964f4b7c6a3eab6f29 gcc/doc/tree-ssa.texi 37ec9518ff7f2e37eb431bbefd0c8527 gcc/doc/trouble.texi 4ff8e8a1f08050947183863591739e56 gcc/dojump.c @@ -4021,7 +4057,7 @@ 8758d13a311cd3e86e0ac5a43de87b76 gcc/dwarf2.h a3208db1781a7ed0caa270c6818c6d36 gcc/dwarf2asm.c 1b587a0a81a70a33e3a39bf20ced3a24 gcc/dwarf2asm.h -e5f062eea77db04b34a4dd6eda2ff2a0 gcc/dwarf2out.c +604f574cad2c1101540e61c3a6c1631f gcc/dwarf2out.c 67f3d8e6b5d126395338cd7f15524f62 gcc/dwarf2out.h 5ed1fa92d8d9a4c5dd5c87c0750d16ae gcc/ebitmap.c c093e9b997a278d8daae58eada0f3ec9 gcc/ebitmap.h @@ -4036,8 +4072,8 @@ a953cde132db16cd166c8593b0408a8b gcc/except.h f84d0b7f8dabbf46705426b4ad362f39 gcc/exec-tool.in 84d356f102e3adef6cd1d97466907ae9 gcc/explow.c -7bbb9254a631bc91aa1c96366590342f gcc/expmed.c -4b8aa765ed529a1ced01fd8d371fbf22 gcc/expr.c +8564e1701dd52d5a3e41670be23fe6be gcc/expmed.c +dac8741f7ef42df044b3f7097a601391 gcc/expr.c d2b705f062a566ec8e1c3369bf827521 gcc/expr.h 095d52f188656feb5f2be0c888428de4 gcc/final.c ec7a07adbaf86d2fb1c17bcae84c5592 gcc/fix-header.c @@ -4045,8 +4081,8 @@ 4a30b20a32ac06014df613761d7da1d5 gcc/fixed-value.h 0ecd4665279781e595a21268f5efdad6 gcc/fixproto 7acc1e466d7ae1f9de507b6e83d4575a gcc/flags.h -09b8fccffc3c4b21840d19c32107f95a gcc/fold-const.c -93d42fa7366a4e3f74e2fccdf5f53fb8 gcc/fortran/ChangeLog +7f935bbfbe03ecb4753bbad005abb0a1 gcc/fold-const.c +a95e1390d6263e5017f113d38482a297 gcc/fortran/ChangeLog a7663343404e5c8cd4fe22f4e5f8039b gcc/fortran/ChangeLog-2002 aaf400b0b954b39bafbe84581b01c429 gcc/fortran/ChangeLog-2003 7953574a6e41aeb016026a502e8baafe gcc/fortran/ChangeLog-2004 @@ -4060,7 +4096,7 @@ 928ce810d7feb7a2c5cee78be11d5f99 gcc/fortran/arith.h 3b5371aa1987fcb77374e6c8f2525c74 gcc/fortran/array.c 817271155e80b1be166eb5e28fd06cb8 gcc/fortran/bbt.c -5166fb582b5faae4152b21ee551bf071 gcc/fortran/check.c +84058044925e06c02e9f010a26619dff gcc/fortran/check.c e03bf33a41c92eb20e30bc7e3f9b09da gcc/fortran/config-lang.in 634bca5f415d68980b2793df6b88b2e2 gcc/fortran/convert.c cbc6032b4645662885302b80ba0b91df gcc/fortran/cpp.c @@ -4076,8 +4112,9 @@ 4e16e66307c24a4180f16eeb6e384f2b gcc/fortran/f95-lang.c 92bbc75b96e5988e57703619b5aaa538 gcc/fortran/gfc-internals.texi 22f34c5d0c72a1b23c5defeecd07d480 gcc/fortran/gfortran.h +5a82e898e40efd2bb339243182e7a45c gcc/fortran/gfortran.info 9219ab11c3db90d477079bc786e27191 gcc/fortran/gfortran.texi -8f302ff52473b4c94bf0ca930eb614f8 gcc/fortran/gfortranspec.c +c10e6e8727bc5532181f50b1d6517f8f gcc/fortran/gfortranspec.c 304aad78fba0dfd3e4aa255008ef283c gcc/fortran/interface.c 5dba591a2ee4b995d09fe51acc5c0245 gcc/fortran/intrinsic.c f60d6a021a936d18e15f9eb3a2bd3423 gcc/fortran/intrinsic.h @@ -4102,23 +4139,23 @@ 9da86a28036897697d90064c39559a42 gcc/fortran/parse.c 3fa472426721f9cff361ad9daefa6745 gcc/fortran/parse.h 6d56bbe0a90a69da4fd16a0f5d16f0e7 gcc/fortran/primary.c -70b84566b7fc3e10b11ec959236b9b30 gcc/fortran/resolve.c +3179257dd4c5d2a303b82af4c9d97183 gcc/fortran/resolve.c b5e56e0b94899d7a5678f301e4fc076a gcc/fortran/scanner.c 4c0d6ab7cea4845d981d9ec54a5ec6c2 gcc/fortran/simplify.c 0396796ab8ded0b7ffd90ab0832ad332 gcc/fortran/st.c 356ff2620c344566c05531162ce02926 gcc/fortran/symbol.c d0bc1c21358a981f371449b6f24d7448 gcc/fortran/target-memory.c 09fcbfd12ac93ba16ee5738f5edd71bc gcc/fortran/target-memory.h -357c4fecf9dce9c145bb8c7f10d0a866 gcc/fortran/trans-array.c +ef44b8fd4f3e949fcdfe0d6af0d22d55 gcc/fortran/trans-array.c e0ed115dac3b6d68cc5a0c5818f083b4 gcc/fortran/trans-array.h 7e3f4fd2f985618ee4aa5b1d3f9f871b gcc/fortran/trans-common.c -46bbae6ac88e665943340cab9bd5f98e gcc/fortran/trans-const.c +55bb83e12e540f6fe1551452dd46d86d gcc/fortran/trans-const.c 42384247e17c678b53520bc1a6085cb4 gcc/fortran/trans-const.h 691acac45d84267ef292ee3e343d774d gcc/fortran/trans-decl.c -b7e309d562398c39c81f91e3b521e0ae gcc/fortran/trans-expr.c -1c9dc5bed699d5292f9c2dc36d377e79 gcc/fortran/trans-intrinsic.c +c0b190bf3eb9774f4c8f6217486a2fb4 gcc/fortran/trans-expr.c +26abdc42a287fb38b008ba702a50409b gcc/fortran/trans-intrinsic.c e795a7733a7281050b9f6d0aa954de5f gcc/fortran/trans-io.c -e3c69846cdc9f333e12f4dae1ac4884b gcc/fortran/trans-openmp.c +5bcbba2d60572591394a1efc651ba367 gcc/fortran/trans-openmp.c 8ae7ad30c99fa4762bdcce168627d29d gcc/fortran/trans-stmt.c 23394537fcf50dd57acd80090140e6ae gcc/fortran/trans-stmt.h 854535ca88645782abe0948a94dc1790 gcc/fortran/trans-types.c @@ -4127,19 +4164,19 @@ 75c0b94fdeb9d7fc54497d708830ff39 gcc/fortran/trans.h e83cc8321fe62c08e6d975eaece78b64 gcc/fortran/types.def dcbfb5f59aa7c840c77285967d94c409 gcc/fp-test.c -e9c1158ca3a164cfc3f034e40b9f5ae8 gcc/function.c +de9c9daa70bf5e4ad0589ab3d64554ae gcc/function.c 11d27af2cc8506096fb550ad1fbe47e7 gcc/function.h 6eeeb28677c110262d147c3551f5260d gcc/fwprop.c f4a32f1bb7c588ee3336df3c519c89e1 gcc/gbl-ctors.h -21d0aba44b0c1bdfe2a071d0e36ecded gcc/gcc.c +f7b5957595c452b9e68ba99f9cc649eb gcc/gcc.c fc4f169f90b3170d87bc335a2b4d29e5 gcc/gcc.h 2ae300984d2ad62db01bac13ab700eb6 gcc/gccbug.in d0987235c84f3b6dc366e9c12aa0adcf gcc/gccspec.c -bfd6e899be19159693d5b815883cfa35 gcc/gcov-dump.c +e49689db39470a3bcca8cfa1efe53100 gcc/gcov-dump.c 4cdcf41dbff01c632665ab83244fcfc5 gcc/gcov-io.c 61b92fb90eacbdd488c9631a2ca2ffd9 gcc/gcov-io.h 270dc7fdad3f0bbfbb49fe93f32cc239 gcc/gcov-iov.c -1abf691d63ed08a4cfe571bc2ef4124f gcc/gcov.c +6d7e6806e4f9b867ae72ee4c959d3dd1 gcc/gcov.c 6f5e2ce7be05756ea47db26db5d308c9 gcc/gcse.c 4bd9f68380e1d07a91fcfb41253ee105 gcc/gdbinit.in 539302f9b895528d6055280376d380fb gcc/gen-protos.c @@ -4156,6 +4193,7 @@ 607570cb8bfacb1f7a22e15212a73a25 gcc/genextract.c e916713c67d4bd0ee15de2e23d625b1a gcc/genflags.c ac69af0b2bcdd35b25174278ccd40aca gcc/gengenrtl.c +0091eed084701389f5421b2db81a0f2c gcc/gengtype-lex.c d10bfac52c72465a413d4fae948a1f7c gcc/gengtype-lex.l 5e264825a46ac960fd04df6c4e6fe749 gcc/gengtype-parse.c ba8ea742fdd6e6e343047d328ca7d6d6 gcc/gengtype.c @@ -4181,7 +4219,7 @@ 985c19bc50597831c6424e03d3462e65 gcc/gimple.c 6ada5e35d8381902d289685420266a69 gcc/gimple.def b22fd270c7b6042776250b8eaa4817c6 gcc/gimple.h -6f80800a144d5f3370148aa4bb1ecadd gcc/gimplify.c +40e5987eaabd72f649744f12d605beac gcc/gimplify.c b3220d6ec518f1daa75b938e8cf0e203 gcc/ginclude/float.h 798164dd63bdd388c276bdda934db337 gcc/ginclude/iso646.h 6a912263540a2dfa8d258931158882d5 gcc/ginclude/stdarg.h @@ -4226,7 +4264,7 @@ f11c5e848450fadda50fac2c6aeec00a gcc/hosthooks-def.h a31a1f832beee0163b6a3c429b0c0c9c gcc/hosthooks.h 47afbad262e7e4ba06102398beddc930 gcc/hwint.h -97191e1cd39c68654984df1be1119536 gcc/ifcvt.c +44513b3b5ce2814b9c10a3663adb5eb1 gcc/ifcvt.c eefa8fb4a892d9594aa2fcf2987974c3 gcc/incpath.c bb322f9a267105c69a1b6bea367de2a3 gcc/incpath.h f605240c64cf9d54846eedfd1a47f7fd gcc/init-regs.c @@ -4237,7 +4275,7 @@ 8c1a1ef836cfeaba499b3620b9d76955 gcc/integrate.h 0e9c89e6dfe2424607d2e469a1c3dabf gcc/intl.c 8dde55af4a3be4115b75414868850544 gcc/intl.h -96a79fe1d0ca1e6b20210747d6e92143 gcc/ipa-cp.c +d434616032b4e26e13bdb2d46ec6b5c3 gcc/ipa-cp.c 5b091e899973ef6ee4bd666abc792b43 gcc/ipa-inline.c 73500a9c42f90380db9be71b1a7efd95 gcc/ipa-prop.c 267ffb552da3f7234f6830c3f35ce56d gcc/ipa-prop.h @@ -4260,7 +4298,7 @@ 8f725eb9fa3ac85e9d5ef84ce846038c gcc/ira-lives.c 522fb5c925b7eed9276541a9f4938362 gcc/ira.c 6e9fa63752c66d23752f24f7c3351d0f gcc/ira.h -ed9d40846fec154b897a5ac3265040d7 gcc/java/ChangeLog +af8f828e15b365475f84c2b92e73c82a gcc/java/ChangeLog 3ac37a9f1ad274538f2de05e991e7fb3 gcc/java/ChangeLog.ptr 5daac56e6d929be638ed287da3720f51 gcc/java/ChangeLog.tree-ssa 85367b2efe44791f0249fcc76f2f806b gcc/java/Make-lang.in @@ -4281,7 +4319,7 @@ 03039c3a13f897c2cce35129ef4c573a gcc/java/javaop.def 0f23716720cbbc314d5f46f7ade85d1a gcc/java/javaop.h 1a309e6d4b6865e9d539ff9692214cb0 gcc/java/jcf-depend.c -42064b002168236a42ad64c20bc5ce44 gcc/java/jcf-dump.c +4b9f3a21404f91144050da141956075d gcc/java/jcf-dump.c b82d644f53443b00cbb643fa11b35793 gcc/java/jcf-io.c 3cc6ec47988fa7ef1b98ff29936f1aed gcc/java/jcf-parse.c 2f2cb40653a3f8554b68e3cab5fea7e3 gcc/java/jcf-path.c @@ -4333,15 +4371,15 @@ 26fafd6c8fbb3b771ccf04a7ae09a379 gcc/main.c 9829be52be89a516a7e44f7a72675567 gcc/matrix-reorg.c 47b0f35ede010985345840e37ba83f9f gcc/mcf.c -dfee489087b8f33c03a1973771d9c923 gcc/mips-tdump.c -6835974fb9e7697214c3b788902bb61b gcc/mips-tfile.c +fd86c0715234f40cfbff0a99f38f53c1 gcc/mips-tdump.c +e3337b83ef2cb6432c676362d67a1e21 gcc/mips-tfile.c 972e07afea34a7dc2cc3219c16cc03e9 gcc/mkconfig.sh 415f7b6c628f89a7249999384d297830 gcc/mkmap-flat.awk 6d848d68cf713155d4d7b432a6a69606 gcc/mkmap-symver.awk 2569a0ab9b2c9f2c2b8e980aee6fbbe3 gcc/mode-classes.def 1f0275897f3a2efb5fcf26e73a67df57 gcc/mode-switching.c 5995091cdf192f93cb32cb9aebfe0f39 gcc/modulo-sched.c -74e6f72a29e2c331fb594f7963e1f3bc gcc/objc/ChangeLog +1528885c23ab6a7ad2ebe9540f46ab7d gcc/objc/ChangeLog 6db8e709895834ffea707a6c1f2ed235 gcc/objc/Make-lang.in aa5319dd541cdb0eb8622f9adf66b761 gcc/objc/README 079d3dc27e9567936ebcc70e9662b3c8 gcc/objc/config-lang.in @@ -4350,7 +4388,7 @@ 8dac305da629383aaa6696e6e28b3ea3 gcc/objc/objc-act.h b4908117ca50eef79835fdfaec14f075 gcc/objc/objc-lang.c 6779d586f851c44361fe2884d2d9192c gcc/objc/objc-tree.def -bb60da92958f69c5dec7d5e78ac9bb4f gcc/objcp/ChangeLog +96e5e78570dc70473f626d0d548dafa9 gcc/objcp/ChangeLog a56c8048658b152b957cd35f057d5822 gcc/objcp/Make-lang.in 871a47a5d40ed19c0d393bb1a52229c2 gcc/objcp/config-lang.in b69e6fb8f98a0eca7d27309f950a6974 gcc/objcp/lang-specs.h @@ -4360,7 +4398,7 @@ 490ac03e2b3629ce6c46c3e19416a9db gcc/omega.c 6b1227a03f78a60d5eddd1e818bbb9aa gcc/omega.h a3f728fda21b0771f085384774deea89 gcc/omp-builtins.def -0fd119eebab837597e947ae57bb74939 gcc/omp-low.c +d23094d68f0465298c6e1be7de19524f gcc/omp-low.c 2232b5c3b8d2decaeddc3c6eebd15e4d gcc/opt-functions.awk ecb17bb0f21652aff510a738b9235bbf gcc/opt-gather.awk 17a17bcd7efa351dee976d663a659d16 gcc/optabs.c @@ -4368,32 +4406,48 @@ 4cc9b8caea58c23f435b35ef0d8c536f gcc/optc-gen.awk eec1a199d5cd301d654e42e4296d291e gcc/opth-gen.awk 4fd462786d75ab4c40cf163b3ea7fa84 gcc/opts-common.c -a00d8fc2e8ec02f990e36748bbc90b44 gcc/opts.c +5171622df67cde55d598becc0570e9aa gcc/opts.c 46a5edb609250bf03f441f830292edf1 gcc/opts.h dc4785c464bb65b3283b1eb6be191e68 gcc/output.h 40f584abe6f0f02df429988c97a65a88 gcc/params.c fce38dd43bc377d6079adcc197d2b7b7 gcc/params.def 6521f298f456d022fb134b601239a41b gcc/params.h ef2875efcc80e05eaa1c0becbe397361 gcc/passes.c -d897e460b5cb668ed26713354c0fd7bb gcc/po/ChangeLog +ae3feb8bc2805df9e3972386332b1f14 gcc/po/ChangeLog 954b21fb36cc0d8e9f6e2d6507152f23 gcc/po/EXCLUDES +1d2722d5e15bb9d2538537ca110eee3a gcc/po/be.gmo 7a473a685fe0c9058330e0e69aea9157 gcc/po/be.po +a1c682f1ce0745bacc4f73eef9231130 gcc/po/da.gmo 6d29e9975c57ee4be4b15f9eb7bdb9e2 gcc/po/da.po +90a886f0bb1d22b2805061e55b55b5a3 gcc/po/de.gmo 2301e032173f8b07168e01c1f3f3c18d gcc/po/de.po +b1401fc9007c717b2bd80907b2385d30 gcc/po/el.gmo 1542f190ba2b8c310f8c50524bac03b2 gcc/po/el.po +966a18308412f44cd5afe8acc09a3b6e gcc/po/es.gmo a06bdff98ea9ecad1c742e66aa3f57ac gcc/po/es.po a16799fa0b0e4a780fdce277f3119ac1 gcc/po/exgettext +2b8d8f41036698c2a43bb305d6c6d90a gcc/po/fi.gmo 3c9315329b0798b906053530862e21d0 gcc/po/fi.po +228f7f79ffe28a40e035c49f53c6b3f0 gcc/po/fr.gmo b376bcf90661c5363513023a6a54b128 gcc/po/fr.po b58744f5370df20490ed225a99381046 gcc/po/gcc.pot -120a016ca16c118f4145e0b937bdbe3e gcc/po/id.po +daabba12e489f395200877635930cf48 gcc/po/id.gmo +0d32911791b876250e9b2e84e2340a67 gcc/po/id.po +fa6c66e8dbe607734fc54780647ffa85 gcc/po/ja.gmo f68aa0230c251e8e71950c44c57729ae gcc/po/ja.po +3db3a12ff8f3c18e6c8f8c6d683c9732 gcc/po/nl.gmo 2fcd6a7c17600ed94b5a021a56986851 gcc/po/nl.po +4d7bdcfdfc17e0d37099a47d43bc914a gcc/po/ru.gmo 10f79437290c0749f63b3c9f687056d9 gcc/po/ru.po +15366b682a642803f1175ee3a1debfb5 gcc/po/sr.gmo fc79a3b806c034d8df7c7e126d46d92e gcc/po/sr.po +65b100a8f0378dbab3db580a6183ac02 gcc/po/sv.gmo d239498617f571e1c90998f5b4a4346d gcc/po/sv.po +c2311599fb822ccd2881cb837cf776fc gcc/po/tr.gmo 2e11b82ed499c568243382abe1f38e8c gcc/po/tr.po +ea5dcc76042ccc446f5afbb3740febc8 gcc/po/zh_CN.gmo d88961d02623f70c8aea78961b660ca8 gcc/po/zh_CN.po +b073a4b25fc1da0d906e5e62adaf3715 gcc/po/zh_TW.gmo f0f68a375d51a30ee7a9ed427b48265b gcc/po/zh_TW.po fbd6686d270966521ff0800350352290 gcc/pointer-set.c a51eb8951c7700a5cd773501a341d8b0 gcc/pointer-set.h @@ -4423,7 +4477,7 @@ db556cefd6fbad5a901646e1653a7557 gcc/regrename.c 9f878368e024e1ca5ab65feac637e0c2 gcc/regs.h 332678c4bea66009d413e45a26db0b13 gcc/regstat.c -b4747f0c93eeda65dbdb886e9294a885 gcc/reload.c +67673b0df664f97f1db8bf1526836709 gcc/reload.c 3844576d99e09792a897790da9a7db1d gcc/reload.h 05df02ccb9f86104abb446accc33b0fa gcc/reload1.c 5d36a985f65efc52dde3558fc6aac4a1 gcc/reorg.c @@ -4434,7 +4488,7 @@ 7f4b13486225bf7e528082bfebbf91a2 gcc/rtl.c 12bcacdc0bb486aeb6726b8b6ed20987 gcc/rtl.def 012d0c2beea869b1350978e50d3e9f19 gcc/rtl.h -35417f008cb8cec33405776787a02da6 gcc/rtlanal.c +c2837126981ec53f218b36852fbdfb45 gcc/rtlanal.c 2f69f037cee3a42b47d82c4811253b8b gcc/rtlhooks-def.h 6b940bf7f9cbf0b990ade2012b4f1651 gcc/rtlhooks.c 07eed6ffb20c30b578aeda961cea7b72 gcc/sbitmap.c @@ -4457,7 +4511,7 @@ 823b054af4db790fdb125a1caff13a5b gcc/sel-sched-ir.h 4418ed09786c256afde20d2d6b352c8b gcc/sel-sched.c 35d088dd9940150e00ee4e6463c3fa39 gcc/sel-sched.h -58fcd897862aac3032b6b118d572e052 gcc/simplify-rtx.c +046306b2e7fcccce45ba071834c680d0 gcc/simplify-rtx.c 8e865a71c4e2c43eae4afbcf143af4a6 gcc/sort-protos 9d9ec4d8cc5360d6be1d37ebc30ef605 gcc/sparseset.c cd7d6d8dffb6ca3094d690e109f65269 gcc/sparseset.h @@ -4479,7 +4533,7 @@ ae4dce65dd83d608af62fade75f7d7e8 gcc/target.h e61b6e1a81185a8b2041114c6db5fb94 gcc/targhooks.c db9c3c56fd4a14315b9a82443ccd5488 gcc/targhooks.h -25fd92df78b806190a21bb9ff89a8abd gcc/testsuite/ChangeLog +689588767db6599fc84a0afae85e9ad1 gcc/testsuite/ChangeLog 627c767d2c955635f6476cec53eb0361 gcc/testsuite/ChangeLog-1993-2007 d01c0009edf6d948d50bf0075b7772d0 gcc/testsuite/ChangeLog-2008 6c2ceb0138a4f779fd6d8b6327fa8611 gcc/testsuite/ChangeLog.ptr @@ -7084,6 +7138,8 @@ 2f50ecd2b64eb3a3cefb0066c4c043a1 gcc/testsuite/ada/acats/tests/l/la140271.a 004386b31584ba3e3f7171f7674e4137 gcc/testsuite/ada/acats/tests/l/la140272.am 9c63871113de9b518e90c90fe8e20f28 gcc/testsuite/ada/acats/tests/l/la140273.a +b66284ccfb83db493209d47d81edc0c1 gcc/testsuite/c-c++-common/builtin-offsetof.c +87edf7a633ed33acea1114b550edc33b gcc/testsuite/c-c++-common/pr42674.c d01ecc4dce674b282eb2bb81f9e5ca0b gcc/testsuite/config/default.exp b87b115761d6eee98d4c2e225a2cbf3a gcc/testsuite/g++.dg/README c7c251f16058a4d4f1db8e0df28385ff gcc/testsuite/g++.dg/abi/align1.C @@ -7123,6 +7179,7 @@ bbab6b1f77eed09d3a2c4f07991cdb40 gcc/testsuite/g++.dg/abi/empty9.C 7cbe4b1023b73117f1fca798569bc98d gcc/testsuite/g++.dg/abi/enum1.C 6f15172d825edc5509c1d35da3bfb275 gcc/testsuite/g++.dg/abi/forced.C +3eec2b181cfb238503543d9d81b99eb2 gcc/testsuite/g++.dg/abi/guard2.C 111786b8402b8dd840adfb9a53cf3aac gcc/testsuite/g++.dg/abi/inline1.C a128b5b94590dd451ff32844c5adb5e7 gcc/testsuite/g++.dg/abi/key1.C 566b277074549a74732c7ed51a289742 gcc/testsuite/g++.dg/abi/key2.C @@ -7141,7 +7198,7 @@ b607e2ace0fdeea670b56e751bc27f27 gcc/testsuite/g++.dg/abi/mangle11.C 3de3f384e3accaeb680f27697b03affd gcc/testsuite/g++.dg/abi/mangle12.C bcf6566eabf2af39caacb3af143f90c8 gcc/testsuite/g++.dg/abi/mangle13.C -bdf640f5fa1612382253ce52bcaa462e gcc/testsuite/g++.dg/abi/mangle14.C +a34b61046b432b42bb70d5c1efdb3f68 gcc/testsuite/g++.dg/abi/mangle14.C 8ffaa1b19590f5f7ddf6464b1d009a9c gcc/testsuite/g++.dg/abi/mangle15.C d6cfcf12071b19ad5863b84ad45b916e gcc/testsuite/g++.dg/abi/mangle16.C f713d612b449a8bc202244d8b38880bb gcc/testsuite/g++.dg/abi/mangle17.C @@ -7164,6 +7221,8 @@ 7ea778117a3d82dba90f3647d292b1c5 gcc/testsuite/g++.dg/abi/mangle3.C 8e5a5b931b1491b101190dc53cb5bf77 gcc/testsuite/g++.dg/abi/mangle30.C 13633dcf96cb50988a92cf548dff31cb gcc/testsuite/g++.dg/abi/mangle31.C +c5d5176bf2a0d86ae5769b300e777296 gcc/testsuite/g++.dg/abi/mangle33.C +98d74115f2d27834eff6022eecd4d051 gcc/testsuite/g++.dg/abi/mangle34.C 200f21813a4ee7cb051aaf6d88d18b5b gcc/testsuite/g++.dg/abi/mangle4.C 8d713f873b380f7cb5bf13fe8019b486 gcc/testsuite/g++.dg/abi/mangle5.C 91c28df1b9796be812f1b833d650c6b1 gcc/testsuite/g++.dg/abi/mangle6.C @@ -7182,6 +7241,7 @@ a63cefdf2683d4aa005634e3368984ba gcc/testsuite/g++.dg/abi/pr39188-3.h afd0ff2e30705970415e4aa6ca6e1468 gcc/testsuite/g++.dg/abi/pr39188-3a.C 98c00465484f65e4b1d1c30fbbb31e23 gcc/testsuite/g++.dg/abi/pr39188-3b.C +1ed81d7e7edebea54ec04f2234fe6cec gcc/testsuite/g++.dg/abi/regparm1.C d90943e976dded1f4182aeb500d1f2c7 gcc/testsuite/g++.dg/abi/rtti1.C 8deae0db66776c34c77f2551c9679b7c gcc/testsuite/g++.dg/abi/rtti2.C 4b367f2168f94ba928402e9bd93e516c gcc/testsuite/g++.dg/abi/rtti3.C @@ -7190,6 +7250,7 @@ 8c08a43b9a6c3a1ec099f45dedd4965e gcc/testsuite/g++.dg/abi/thunk2.C 64d1aa038d30ffe9d535aa3f5ea90c51 gcc/testsuite/g++.dg/abi/thunk3.C c7ec06715420438ad1b0fd1169265a31 gcc/testsuite/g++.dg/abi/thunk4.C +0ec5c22fec9ed33618612b880a806f5c gcc/testsuite/g++.dg/abi/thunk5.C 9266f22cfbaad15702320f26c3b6c146 gcc/testsuite/g++.dg/abi/vague1.C 6b15aad70c63bb9bebfefe5096394d41 gcc/testsuite/g++.dg/abi/vbase1.C e36a8fd36846ca34b500150cfaf2d8fa gcc/testsuite/g++.dg/abi/vbase10.C @@ -7492,6 +7553,10 @@ 1a171945afcdcbc357d5fbf41918feb6 gcc/testsuite/g++.dg/cpp0x/initlist21.C 4bdc8b28203fe557b8c5257e826d9e95 gcc/testsuite/g++.dg/cpp0x/initlist22.C 8d226b5ec13a739254991dee1a2a148e gcc/testsuite/g++.dg/cpp0x/initlist23.C +5673b623874e372b643d0dac08b0caa4 gcc/testsuite/g++.dg/cpp0x/initlist25.C +e6ae5a0447762ea6cf21de070d7028bc gcc/testsuite/g++.dg/cpp0x/initlist26.C +d6492e6206eb4be3215f8b76de11bea1 gcc/testsuite/g++.dg/cpp0x/initlist27.C +2dfea3afb901b42654dc87a5c89c66f0 gcc/testsuite/g++.dg/cpp0x/initlist29.C ebf07d4ed58e4156777e047923969c63 gcc/testsuite/g++.dg/cpp0x/initlist3.C 6c21352d0299ee0673793ff60fe5bdb4 gcc/testsuite/g++.dg/cpp0x/initlist4.C 40bb48134a829e97a58bfec1928ca395 gcc/testsuite/g++.dg/cpp0x/initlist5.C @@ -7499,6 +7564,7 @@ a6aeee2987d053f8706edc0683945314 gcc/testsuite/g++.dg/cpp0x/initlist7.C d3a348c4b49e1b0531708a46d1a74cce gcc/testsuite/g++.dg/cpp0x/initlist8.C b047a90d8ab317f72f56eb04c872d3e7 gcc/testsuite/g++.dg/cpp0x/initlist9.C +3d2ad7021dde84320aec4eda4fa51879 gcc/testsuite/g++.dg/cpp0x/inline-ns3.C 297afa54623d300c4e7d43895152f309 gcc/testsuite/g++.dg/cpp0x/iop.C 4a0e724ac30f59cb40f4cf66c5eb935c gcc/testsuite/g++.dg/cpp0x/long_long.C d6c971d57aa73f0e85d3dc1d3ecf603f gcc/testsuite/g++.dg/cpp0x/named.C @@ -7704,6 +7770,8 @@ 761ecd4bd3764522d66074c7008f1879 gcc/testsuite/g++.dg/cpp0x/variadic93.C 102cfb8090ee7187ab5a236addf1729f gcc/testsuite/g++.dg/cpp0x/variadic94.C e9c1d06fba854d7c75a89def41ba0896 gcc/testsuite/g++.dg/cpp0x/variadic95.C +41e12174fa168c73046b0c0637085a21 gcc/testsuite/g++.dg/cpp0x/variadic96.C +ddd8ff871ff42e3b6e6a2371d1bac35e gcc/testsuite/g++.dg/cpp0x/variadic98.C af7c2d788ab7151c61d2f6a6acabf230 gcc/testsuite/g++.dg/cpp0x/vt-33964.C 13506aee1ac7be5174781e30985c4074 gcc/testsuite/g++.dg/cpp0x/vt-34050.C 0d6427afeff9588163ff9bf8ed7970ea gcc/testsuite/g++.dg/cpp0x/vt-34051-2.C @@ -7802,7 +7870,7 @@ 06ba44c6640fe57a83e614bcb293ca4d gcc/testsuite/g++.dg/debug/using2.C e3e47848d7edc7d04e996db8969c01c0 gcc/testsuite/g++.dg/debug/using3.C 9ddce3a837af3a01b33e86ac89b2a282 gcc/testsuite/g++.dg/debug/vartrack1.C -aa110a29f178e5f396118fcbb7c6ecc6 gcc/testsuite/g++.dg/dg.exp +bdc7fbbc0ee8adfc7355f87ff4c42fea gcc/testsuite/g++.dg/dg.exp 99f14d5ed8c140b0a7c970bb12a4c5f0 gcc/testsuite/g++.dg/eh/080514-1.C 562ca7c694e89bb3ac76711c239d5c5e gcc/testsuite/g++.dg/eh/alias1.C 991eb7aeea02d80e000538741bcc1603 gcc/testsuite/g++.dg/eh/arm-iwmmxt-unwind.C @@ -8071,6 +8139,7 @@ 9dd60e46feb4216f1dac3c4779c9a6b4 gcc/testsuite/g++.dg/ext/attrib32.C b4d4dad31de4936353878d38d9bf3387 gcc/testsuite/g++.dg/ext/attrib33.C 6ca90338cc7b2eaecb90e6f07f49d349 gcc/testsuite/g++.dg/ext/attrib34.C +72dcf6393fd2127116d516c2816413ba gcc/testsuite/g++.dg/ext/attrib35.C 0689e86022776421672cfd3ac67e3153 gcc/testsuite/g++.dg/ext/attrib4.C ec01dbb0bb96c7cda806a516a5cf87d4 gcc/testsuite/g++.dg/ext/attrib5.C 76284b29c6fce52f56ddbcc04acd3a97 gcc/testsuite/g++.dg/ext/attrib6.C @@ -8279,6 +8348,7 @@ e3ce25bc3f909c6ae86361551870e667 gcc/testsuite/g++.dg/ext/strncpy-chk1.C e4a78d4631d98dda8d34b1baf828c158 gcc/testsuite/g++.dg/ext/sync-1.C 7d2ab13d9258d8fc570367eacc626bf6 gcc/testsuite/g++.dg/ext/sync-2.C +96d325d0b1cb729ac3fd1b3d32a6b67b gcc/testsuite/g++.dg/ext/sync-3.C b8a7bc7b0dc38a84a435cecd41d9f4c3 gcc/testsuite/g++.dg/ext/tmplattr1.C 089638758b33bf99338184db0181179c gcc/testsuite/g++.dg/ext/tmplattr2.C ff67a3df89d9e5bed9e2259c840fd1c3 gcc/testsuite/g++.dg/ext/tmplattr3.C @@ -8413,6 +8483,7 @@ 98395fbe8def84169d327400e5e3f8dd gcc/testsuite/g++.dg/ext/vla5.C 4cff2904bf7edbed976d3dd3f67c25ba gcc/testsuite/g++.dg/ext/vla6.C f339c929810ba11885868c48c99722f6 gcc/testsuite/g++.dg/ext/vla7.C +527f30cd7292076034b829d15a5232ca gcc/testsuite/g++.dg/ext/vla8.C 11bcf00b0a6402fad7b9569e02318690 gcc/testsuite/g++.dg/ext/vlm1.C 678b0a6bbf7e0629efdf82de5e5ed01a gcc/testsuite/g++.dg/ext/vlm2.C 8c86ea641b4518800fb5154a1a151e06 gcc/testsuite/g++.dg/ext/weak1.C @@ -8555,6 +8626,8 @@ e3536eda753a0c0cd3e20c81a69447c1 gcc/testsuite/g++.dg/gomp/pr38639.C ed3154b5303e779fa2c64b81f958a2e3 gcc/testsuite/g++.dg/gomp/pr39495-1.C 7fb7abae05ae63fbbc795d7511b4ddfb gcc/testsuite/g++.dg/gomp/pr39495-2.C +260a1218e23280a02ec7cf21e4dace07 gcc/testsuite/g++.dg/gomp/pr41967.C +e8fba76fb565aa431ad94feb9ee84f58 gcc/testsuite/g++.dg/gomp/pr42234.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 @@ -8631,6 +8704,9 @@ 11e5d1f68073db04c0dcb3d956d68731 gcc/testsuite/g++.dg/inherit/template-as-base.C f54f42efb01f78d530cd6440f416587e gcc/testsuite/g++.dg/inherit/thunk1.C 1207763664f70af366a4b659c0bebe22 gcc/testsuite/g++.dg/inherit/thunk10.C +2ee5a69e51f907203553f74298376eaa gcc/testsuite/g++.dg/inherit/thunk11-aux.cc +87c44d1c4b40e8ad862b5b5e67316bc0 gcc/testsuite/g++.dg/inherit/thunk11.C +4ffade82a8dc2097dcb7349d55f57d4a gcc/testsuite/g++.dg/inherit/thunk11.h 9b88ac0413e9487e8a758280c835a160 gcc/testsuite/g++.dg/inherit/thunk2.C fbd285dcc7270a076d780f76a8ce05f4 gcc/testsuite/g++.dg/inherit/thunk3.C 36499d0eccceff40478008f2dc2f180f gcc/testsuite/g++.dg/inherit/thunk4.C @@ -8813,6 +8889,7 @@ 7d8b7ff14410173fd3e1cb0594f72583 gcc/testsuite/g++.dg/init/save1.C 2ce501fe71f97375e159963b826b5f70 gcc/testsuite/g++.dg/init/self1.C 3590ad5754f93f2ab00974878ace368e gcc/testsuite/g++.dg/init/static-init1.C +c0a507cb8b6bf9a5448427e537d93531 gcc/testsuite/g++.dg/init/static-init2.C 36c7bdcd9c002a17bbb025dd79e017b7 gcc/testsuite/g++.dg/init/static1.C 5790ab7ca9ca7303a8c59f3dbcb9058e gcc/testsuite/g++.dg/init/static2.C 004975a4245800f0c34b34b9565fc427 gcc/testsuite/g++.dg/init/static3.C @@ -8872,6 +8949,10 @@ 01aa02d07ac01945729f0db1d362c4f2 gcc/testsuite/g++.dg/lookup/error1.C 9c3013e710b3fee0c4c57b37e6edc002 gcc/testsuite/g++.dg/lookup/exception1.C d7fd3568f7492df0e27753b13c1be48f gcc/testsuite/g++.dg/lookup/extern-c-redecl.C +42649607e256c4617aa495101b2c5d8c gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C +5625a0300bd4231d19c3998fc06661ba gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C +7c60f81e64a51ac83c0d2dbdd26d17e7 gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C +61e0f5516fe31d2cad426334ee149b9a gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C c961035d55063ab35ff011e8098d8ea9 gcc/testsuite/g++.dg/lookup/forscope1.C 0a537641a6f07027fc6b83c330555682 gcc/testsuite/g++.dg/lookup/forscope2.C f095afdbf961d01e5ac006fff4dbda02 gcc/testsuite/g++.dg/lookup/friend1.C @@ -8919,6 +9000,9 @@ 982d219f3971a11f0bdf84813dcb1b80 gcc/testsuite/g++.dg/lookup/java1.C c640da1e1f515bb2b0001b9266b2da05 gcc/testsuite/g++.dg/lookup/java2.C 751d0b5e7453f5f49c388d10446f6515 gcc/testsuite/g++.dg/lookup/koenig1.C +668e482efb2099032387b8bb3bc1b61a gcc/testsuite/g++.dg/lookup/koenig10.C +b9e805fb75a33ef1129f6679048f585f gcc/testsuite/g++.dg/lookup/koenig11.C +b4c9a3125082aac3aa6b866492a89640 gcc/testsuite/g++.dg/lookup/koenig12.C c44c726de3c9ebad9efc6f0268a223d3 gcc/testsuite/g++.dg/lookup/koenig2.C 0efd4ef624e1a631dad2972522c30301 gcc/testsuite/g++.dg/lookup/koenig3.C 634eca78a66aff86cb1d96384411430c gcc/testsuite/g++.dg/lookup/koenig4.C @@ -8952,7 +9036,7 @@ 2a64c61d7cff0a81c852ac88971f57a2 gcc/testsuite/g++.dg/lookup/scoped5.C 64641117d11795558f7818829892fd86 gcc/testsuite/g++.dg/lookup/scoped6.C 36c8df686ba39d71b24a97d15b78bcba gcc/testsuite/g++.dg/lookup/scoped7.C -9ac92ac481a927433166e57356e545d2 gcc/testsuite/g++.dg/lookup/scoped8.C +3e552c46db2cd7ace6c2daed0711e289 gcc/testsuite/g++.dg/lookup/scoped8.C 7fc502120fb4ee302aaa6935aaaa66a0 gcc/testsuite/g++.dg/lookup/strong-using-1.C 87c39961e8a0148dd5421168a4d1b4ba gcc/testsuite/g++.dg/lookup/strong-using-2.C ed66c2bd8be1e94505421cb6dab7cbdd gcc/testsuite/g++.dg/lookup/strong-using-3.C @@ -8978,12 +9062,13 @@ 48b254e1c2661f3029eb99d0e76ad5a5 gcc/testsuite/g++.dg/lookup/using13.C 566f22665e5dbaacccc9bab0af697314 gcc/testsuite/g++.dg/lookup/using14.C dc21e16250c98c89c5aa0d520799c564 gcc/testsuite/g++.dg/lookup/using15.C -92db23b287986d3fbda0c7649652808a gcc/testsuite/g++.dg/lookup/using16.C +1788182ab6169bae6e77693083dd449b gcc/testsuite/g++.dg/lookup/using16.C dd59f2bb89f048e870e421f5370dda96 gcc/testsuite/g++.dg/lookup/using17.C 1444086871f0b0607a6cba4f9bcdcf10 gcc/testsuite/g++.dg/lookup/using18.C 2f7856e44d88c2a8a051c1b70aff3f85 gcc/testsuite/g++.dg/lookup/using19.C d90e987aac9e605de005cd0954d5b976 gcc/testsuite/g++.dg/lookup/using2.C de5435c6fdaa42a8c943f90be9019ea7 gcc/testsuite/g++.dg/lookup/using21.C +ddb95e89fa0dec0bbd065160a0fd5f62 gcc/testsuite/g++.dg/lookup/using22.C d56f4b6d96d8a5c73deddb44f985b2b0 gcc/testsuite/g++.dg/lookup/using3.C a9f8bb8a4c2ceef1805b242e53567377 gcc/testsuite/g++.dg/lookup/using4.C e6b9eddad8d672688c883ca8af446a66 gcc/testsuite/g++.dg/lookup/using5.C @@ -9038,6 +9123,10 @@ 903860d0fe2a846a5f1ee14453b38348 gcc/testsuite/g++.dg/opt/delay-slot-1.C b78629432d8191727f95c1df6d1b5557 gcc/testsuite/g++.dg/opt/devirt1.C efd4841018dde44e1a577570a64e42de gcc/testsuite/g++.dg/opt/dtor1.C +ed3d92d5cb7b1f5ae5f34d6c508c8b1b gcc/testsuite/g++.dg/opt/dtor2-aux.cc +1746b14290a8e8010d79689c8f79394b gcc/testsuite/g++.dg/opt/dtor2.C +55a56e7b92dedcd007fc09dfbe61cee7 gcc/testsuite/g++.dg/opt/dtor2.h +b38ce2cc80cbd8da836a5faae6d33aff gcc/testsuite/g++.dg/opt/dtor3.C c59d630e23488d9f894a7904300cdd96 gcc/testsuite/g++.dg/opt/eh1.C 4bc90d9400a86fd4bca87067006586da gcc/testsuite/g++.dg/opt/eh2.C 18b23691d6af0cdfab89ec422af1cdb1 gcc/testsuite/g++.dg/opt/eh3.C @@ -9058,6 +9147,7 @@ ade9d860b214762222f5c8cd67008323 gcc/testsuite/g++.dg/opt/inline12.C 7c12c52511f9ae9beae48523e9c4fa71 gcc/testsuite/g++.dg/opt/inline14.C 94c2ba91c95ed4edb0b97cb3f10be68f gcc/testsuite/g++.dg/opt/inline15.C +c36b321ffd275d0b9d28d12713461fdf gcc/testsuite/g++.dg/opt/inline16.C bdb061ce93c83db85373f2347c9ecdf0 gcc/testsuite/g++.dg/opt/inline2.C f8d8b6e43c65e932c2f62a1b6414e898 gcc/testsuite/g++.dg/opt/inline3.C 255209f312d67a90af5347445715b3c5 gcc/testsuite/g++.dg/opt/inline4.C @@ -9224,6 +9314,7 @@ f4cf136163ee3fd615e4a9643520781f gcc/testsuite/g++.dg/other/bitfield1.C 1c416edaf4596d6d655bbd79dbe1ca49 gcc/testsuite/g++.dg/other/bitfield2.C b0617043ce57362e6c4529ff76385728 gcc/testsuite/g++.dg/other/bitfield3.C +c11430455dce3502737769495b13d81c gcc/testsuite/g++.dg/other/bitfield4.C 4576cbaaf099a0140a4b7488cb4d9c9f gcc/testsuite/g++.dg/other/builtin1.C 011b8ddc593601155e855d2cf648258c gcc/testsuite/g++.dg/other/canon-31724.C 099265a43fd784d7e5904d87397cd678 gcc/testsuite/g++.dg/other/canon-33194.C @@ -9339,6 +9430,7 @@ 79080a10f4aca2a4c11a4d507c81dd4e gcc/testsuite/g++.dg/other/offsetof3.C a23d17ae20fd87361daea5c89ea2bf18 gcc/testsuite/g++.dg/other/offsetof4.C 224ce99cb2ab319a808ff530be72314e gcc/testsuite/g++.dg/other/offsetof5.C +19eb48777950ec2ddd6300d9e65a5288 gcc/testsuite/g++.dg/other/offsetof6.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 @@ -9373,6 +9465,8 @@ f58740da9046e1b048adeaf5bd6ac01e gcc/testsuite/g++.dg/other/pragma-re-2.C 25577f11922084372c1176d0965f2945 gcc/testsuite/g++.dg/other/profile1.C aeacbd129aa91e6acca9b9022f8e03ba gcc/testsuite/g++.dg/other/ptrmem1.C +c4c701895f8f05f8b9f262f91ecfb2c3 gcc/testsuite/g++.dg/other/ptrmem10.C +0eda791fb2398400cbddf858aa5c1474 gcc/testsuite/g++.dg/other/ptrmem11.C c79782b762cef64300df319862fcdc0f gcc/testsuite/g++.dg/other/ptrmem2.C aa501740c79db5668ed5a41a648546f6 gcc/testsuite/g++.dg/other/ptrmem3.C 76b8bc4328319b30e522cbc6e57ff4ed gcc/testsuite/g++.dg/other/ptrmem4.C @@ -9455,6 +9549,7 @@ 02856d8d11be85bdeb888d95d224df01 gcc/testsuite/g++.dg/overload/ref1.C 4d59760484bbf6fd355f658032664fa4 gcc/testsuite/g++.dg/overload/reftemp1.C f1afe21410b8c9ff2b405c0ea38c466d gcc/testsuite/g++.dg/overload/reftemp2.C +14e68b07c04d0b27c8221cd9eeab2703 gcc/testsuite/g++.dg/overload/rvalue1.C 1bd540977a3ebf0e74db36e595b11998 gcc/testsuite/g++.dg/overload/scope1.C 1e6f1679bedcc11510f7cadcb011cec3 gcc/testsuite/g++.dg/overload/template1.C 053bc5744de44c3637cdea4e8f67c443 gcc/testsuite/g++.dg/overload/template2.C @@ -9573,6 +9668,7 @@ eab4e98ede2f5e34a65b3e233498c286 gcc/testsuite/g++.dg/parse/crash50.C 4cf7d5674d2dcd5c3ed5f2b0314b425d gcc/testsuite/g++.dg/parse/crash51.C 5f07107c9f99fbf5a60fd8c4a755fba1 gcc/testsuite/g++.dg/parse/crash52.C +01dee0c926f79152e2a399f4cadb644f gcc/testsuite/g++.dg/parse/crash54.C 3cae354cb01ecb5097fe78c4d17c8ccd gcc/testsuite/g++.dg/parse/crash6.C 34393b72e5dec85fca930dee15e2f669 gcc/testsuite/g++.dg/parse/crash7.C 5818f331167c496db06ad694932a1beb gcc/testsuite/g++.dg/parse/crash9.C @@ -9620,6 +9716,7 @@ a2e4d2c70a76d509bdeab9072587529d gcc/testsuite/g++.dg/parse/dtor8.C 006eb7acb5b862fc14f95c5598738eb5 gcc/testsuite/g++.dg/parse/dtor9.C c2a5649592cbbe88e85ed2dcd1b7cc0f gcc/testsuite/g++.dg/parse/dupl-tmpl-args1.C +3e3dd82f99c9cd7fe0aea45f41ebc885 gcc/testsuite/g++.dg/parse/eh-decl.C 0901bd8fea5e1a75a81cb181e356de1b gcc/testsuite/g++.dg/parse/elab1.C 785d047c5536a633da6511c5c90214a2 gcc/testsuite/g++.dg/parse/elab2.C 4a8579808b7290439fae0d407373d254 gcc/testsuite/g++.dg/parse/else-2.C @@ -9686,6 +9783,7 @@ 9326901f7db3032f59fb639815b474a6 gcc/testsuite/g++.dg/parse/inline1.C 194fae02a7ea638b6847a1ab70d2bc49 gcc/testsuite/g++.dg/parse/int-as-enum1.C 83138d34ce254984efb81347aec13e85 gcc/testsuite/g++.dg/parse/invalid-op1.C +5d656857f6d096dcd4215aec825ca027 gcc/testsuite/g++.dg/parse/limits-initializer1.C 2d1f2fe5b6244babc7a712997b8feea6 gcc/testsuite/g++.dg/parse/linkage1.C 259a8909e0634541b2c5e19b89d8cfc7 gcc/testsuite/g++.dg/parse/linkage2.C f860807cf54031b8df626f746711d411 gcc/testsuite/g++.dg/parse/linkage3.C @@ -9970,6 +10068,7 @@ c306ff6eb2399c47b955c0f32952ba01 gcc/testsuite/g++.dg/template/arg4.C 578d898bb69e2e67cdcccff713390fe6 gcc/testsuite/g++.dg/template/arg5.C f90e567b7331a6236abd917963c61a0f gcc/testsuite/g++.dg/template/arg6.C +7e62b14830c51291d78003b50bf7c034 gcc/testsuite/g++.dg/template/arg7.C 99d7b1deba3ad5e11fcbd2dc7d70e9ee gcc/testsuite/g++.dg/template/array1-1.C 075227803fea6455eb958b3d2d173e9b gcc/testsuite/g++.dg/template/array1-2.C 2960ad36eda739b652d2efa379834c5c gcc/testsuite/g++.dg/template/array10.C @@ -9984,6 +10083,7 @@ b197e9f6e5275f99d9ff3c22fe947550 gcc/testsuite/g++.dg/template/array2-1.C 8da7cf5d73e9871b3bac6287dfe96d0a gcc/testsuite/g++.dg/template/array2-2.C dbd20d81c325cee68179c0a4fd156f81 gcc/testsuite/g++.dg/template/array20.C +00136c7ca590bf08c5e9d3fa200ab503 gcc/testsuite/g++.dg/template/array21.C 353ce65cd4b47cb87d4a7e33038e372d gcc/testsuite/g++.dg/template/array3.C 3904f7cfd18135b5f8ef1dbb020648fc gcc/testsuite/g++.dg/template/array4.C c557bdb58ff52b9fc368185880923627 gcc/testsuite/g++.dg/template/array5.C @@ -10024,7 +10124,9 @@ 4adf5b8994d7d8d914745e2569281502 gcc/testsuite/g++.dg/template/cond7.C 2096b2764f21d9bd35c06fef449c8404 gcc/testsuite/g++.dg/template/const1.C 98b1720316bc749eaed8150f3ddb776c gcc/testsuite/g++.dg/template/const2.C +968e9c62934ef6030d7cf2cf43e79dbf gcc/testsuite/g++.dg/template/const3.C 32f254d8ff7fc2dadfbb4100169c8710 gcc/testsuite/g++.dg/template/conv1.C +2c3b429768e3e6f954114fbd126e3122 gcc/testsuite/g++.dg/template/conv10.C 383f6618c1ccaddea23b36ff23d6d35e gcc/testsuite/g++.dg/template/conv2.C be5017725e9889a47d07ba0d3a3464ff gcc/testsuite/g++.dg/template/conv3.C 8e48e2a0d63cdb353b4a07380c4cf577 gcc/testsuite/g++.dg/template/conv4.C @@ -10293,6 +10395,7 @@ 0ce7717b93949f5490ac817b51482e8a gcc/testsuite/g++.dg/template/inherit.C 13bd5309700c34e9e01c5bd7fd620d7b gcc/testsuite/g++.dg/template/inherit2.C 1c9360dccd50f544e413d4c00432d88e gcc/testsuite/g++.dg/template/inherit3.C +2b089e52426f6150cf26e18b4ada5122 gcc/testsuite/g++.dg/template/inherit4.C 9783cba5cd0e48e50ecc5c42ed1dd282 gcc/testsuite/g++.dg/template/init-list.C f30fe425de51d4cb2ab5ff05b71d616a gcc/testsuite/g++.dg/template/init1.C 76f88c13708d18ca711ab8287d1caac9 gcc/testsuite/g++.dg/template/init2.C @@ -10305,6 +10408,7 @@ e11043be34a3a4669d6240f263aa30d2 gcc/testsuite/g++.dg/template/inline1.C b7c31995b79ebe4a0cc6c57f5888ed1a gcc/testsuite/g++.dg/template/instantiate1.C b6f93db83699b516b0d1578a6c9649ac gcc/testsuite/g++.dg/template/instantiate10.C +8095fd8717b385911f23d51f2a4cad60 gcc/testsuite/g++.dg/template/instantiate11.C 88e1ec74b340410f99e5bf69122404bd gcc/testsuite/g++.dg/template/instantiate2.C 22f8825ee5e0b4f528d3d4f91590529f gcc/testsuite/g++.dg/template/instantiate3.C 7d69f16e359b40571c6da6dde60dde8d gcc/testsuite/g++.dg/template/instantiate4.C @@ -10518,6 +10622,7 @@ 23d3f217b6bc78941fad8dd51cb41408 gcc/testsuite/g++.dg/template/ref1.C a02f5612e9219b8cd807bc11c6baa86d gcc/testsuite/g++.dg/template/ref2.C a81ad4984bc13a3fb8207d93cbc5f827 gcc/testsuite/g++.dg/template/ref3.C +c3bbc6f642a26de6b3238750b8f9c01f gcc/testsuite/g++.dg/template/ref4.C 3a0b9566efedfd5ec75bfbfa5b764574 gcc/testsuite/g++.dg/template/repo1.C 5a3839c8b995df789d1577d1dd8db95d gcc/testsuite/g++.dg/template/repo2.C 62140095f73953013945a8ee134b2ce5 gcc/testsuite/g++.dg/template/repo3.C @@ -10551,6 +10656,7 @@ 8af3d67f6d9f4dd6cda097137e1aaa5e gcc/testsuite/g++.dg/template/sizeof1.C c3dde08186236701373c41bd64c9338e gcc/testsuite/g++.dg/template/sizeof10.C 2bf35536cb5d6363ce87a1698f385906 gcc/testsuite/g++.dg/template/sizeof11.C +085b9f955b319ea26fa659b0342a998f gcc/testsuite/g++.dg/template/sizeof12.C 6ebf0c32bb2f9f68d5de8a2eb380e74b gcc/testsuite/g++.dg/template/sizeof2.C f459df99e9efaf925b83daefe81c3127 gcc/testsuite/g++.dg/template/sizeof3.C 70e0faea5b000e5fbde589a89ad950bd gcc/testsuite/g++.dg/template/sizeof4.C @@ -10668,6 +10774,11 @@ 921f2dfc9a3afa3309aa7aac0ef2103d gcc/testsuite/g++.dg/template/typedef19.C 91560e6058fa7ce0edbd4239eb12b810 gcc/testsuite/g++.dg/template/typedef2.C b699615985c7e85aa36ba74242c11af6 gcc/testsuite/g++.dg/template/typedef20.C +7e520cd2a2f5f287069b2ee21c8ea862 gcc/testsuite/g++.dg/template/typedef21.C +a2356f34f02acc6500996b77569f619f gcc/testsuite/g++.dg/template/typedef23.C +9061e33b2fe81615387074facf2e2518 gcc/testsuite/g++.dg/template/typedef24.C +7b7d7acd3f627bf5dad56718a978812f gcc/testsuite/g++.dg/template/typedef25.C +4b7b5ad8691fed069cf0e029ff4382dc gcc/testsuite/g++.dg/template/typedef26.C ccd975f84b8531606ff90ff87ff98010 gcc/testsuite/g++.dg/template/typedef3.C 0abf956c61b1548b77669c5d00411396 gcc/testsuite/g++.dg/template/typedef4.C 85d16af61ffdff9bc8c9e3f2444db5de gcc/testsuite/g++.dg/template/typedef5.C @@ -10824,11 +10935,20 @@ fa014de9d87f4833c5c4020ce1b29d2f gcc/testsuite/g++.dg/torture/pr40924.C 3d9da63278b38033f55230ad5c32d62f gcc/testsuite/g++.dg/torture/pr40991.C 8891afbc518a1af478d823bddfecbe7a gcc/testsuite/g++.dg/torture/pr41144.C +f28f286c697e103cd07cfc388614a22f gcc/testsuite/g++.dg/torture/pr41183.C 4cfbe910579cb6bce1d3683cc1cb4058 gcc/testsuite/g++.dg/torture/pr41257-2.C b2bf0f9adca2bf600320f6fbc03908cd gcc/testsuite/g++.dg/torture/pr41257.C 9f12519b907a84c635fb7ea8fb8fa7ba gcc/testsuite/g++.dg/torture/pr41273.C e8f19401702ff3d3395f9dcdc0536e04 gcc/testsuite/g++.dg/torture/pr41680.C +b2d53f4aa50404a2e6c3d51d0a0213f1 gcc/testsuite/g++.dg/torture/pr41775.C +6288fd3a3bd0bd1724da11910b425047 gcc/testsuite/g++.dg/torture/pr42110.C +2a7843fc7360185d8c597e00ef02ddcb gcc/testsuite/g++.dg/torture/pr42183.C +b10e8543fb804e02bf658bba9b63a306 gcc/testsuite/g++.dg/torture/pr42357.C +caab81fe664970346251ad3c65b46250 gcc/testsuite/g++.dg/torture/pr42462.C +43953aa4786b2f0d157a0429e79efabb gcc/testsuite/g++.dg/torture/pr42760.C +eb50f7b8b6b7679ccdd519260c76e1ce gcc/testsuite/g++.dg/torture/pr42773.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 27708882c7594b7b202c329549264ce2 gcc/testsuite/g++.dg/torture/stackalign/eh-alloca-1.C 1ee38b8103e5ff2dcd9ec5ef505ad12b gcc/testsuite/g++.dg/torture/stackalign/eh-fastcall-1.C @@ -10950,6 +11070,10 @@ 6162289afdc8ea2d3d209d49e210373b gcc/testsuite/g++.dg/tree-ssa/pr38104.C 02b5ab6fcca95cd2ee0233b9c2227460 gcc/testsuite/g++.dg/tree-ssa/pr38572.C 88c743ef9121547a2080de9e32812c79 gcc/testsuite/g++.dg/tree-ssa/pr41275.C +9fa7c9a1677573428aaa46e9bd0f12e7 gcc/testsuite/g++.dg/tree-ssa/pr41905.C +91fe55fdc4c162c106f9fe9a49ed7329 gcc/testsuite/g++.dg/tree-ssa/pr41906.C +b3721c1012726f86c682c19ffbad76a6 gcc/testsuite/g++.dg/tree-ssa/pr41961.C +007849af5fbebd55266eebd5fd1bb02a gcc/testsuite/g++.dg/tree-ssa/pr42337.C 901d1d30e514d3da55d461c1ba6f00b3 gcc/testsuite/g++.dg/tree-ssa/ptrmemfield.C 4b409387c124f6c52a3b106d015e09fa gcc/testsuite/g++.dg/tree-ssa/sra-1.C 393e0408cee76b2ea195f959657d773f gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C @@ -13045,7 +13169,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 -0dcccf6db8d9f879789ee84c659d9862 gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog +76739793347295f1dd13ac4cd35a076d gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog c17ab5a5d39a20786219d5cb72e8a956 gcc/testsuite/g++.old-deja/g++.oliva/ctor1.C d5a79bc5cd269747572d454134bc7e04 gcc/testsuite/g++.old-deja/g++.oliva/delete1.C 8c0b3f49c2e5d5c224c1e0aae235e1d8 gcc/testsuite/g++.old-deja/g++.oliva/delete2.C @@ -15222,7 +15346,6 @@ 83ac972512e83676cd85d42fdef09dc3 gcc/testsuite/gcc.c-torture/compile/nested-1.c b8de7b703904b672e38064eeb7129e9b gcc/testsuite/gcc.c-torture/compile/nested-2.c e718d4157d90cf3f8d7bd118d0f100e0 gcc/testsuite/gcc.c-torture/compile/packed-1.c -0af37f9181b59c8f73ad040ed941c116 gcc/testsuite/gcc.c-torture/compile/pr11832.c 33c7141fcf5b1add3ddd2be0100f1f0d gcc/testsuite/gcc.c-torture/compile/pr12517.c ec16b12ab11c499bf321be18ea59da33 gcc/testsuite/gcc.c-torture/compile/pr12578.c 86f3d5cf87d24e97aa663b79f2d0ac5d gcc/testsuite/gcc.c-torture/compile/pr12899.c @@ -15359,7 +15482,6 @@ 7b026d271b041f6ff3b6039112120d5c gcc/testsuite/gcc.c-torture/compile/pr32919.c 86ae2230b3febebb7bcafdfda9e1b408 gcc/testsuite/gcc.c-torture/compile/pr32920.c fcc627a6866d9705b4cb964d98b7c692 gcc/testsuite/gcc.c-torture/compile/pr32988.c -5158fa605069bc9286de3f2719e77961 gcc/testsuite/gcc.c-torture/compile/pr33009.c 21ff4eb2b20a1d78807dbba13a97daea gcc/testsuite/gcc.c-torture/compile/pr33122.c 0c222da044c072fc00d0a67da35ffe4d gcc/testsuite/gcc.c-torture/compile/pr33133.c 2590e8da2a90ba8653d4959bfcc7f522 gcc/testsuite/gcc.c-torture/compile/pr33146.c @@ -15504,6 +15626,20 @@ 81c74537eaeb00e0a103b8a0809f4d94 gcc/testsuite/gcc.c-torture/compile/pr41634.c 72670e4370c1e6875c04a7e99763444c gcc/testsuite/gcc.c-torture/compile/pr41646.c 702e420628ea37ef1bc8c3e0acc5dcb1 gcc/testsuite/gcc.c-torture/compile/pr41661.c +997e05bc45abef341a0933c7878ccab0 gcc/testsuite/gcc.c-torture/compile/pr41728.c +56d196cdd3ed286cf5aeb0321706fc05 gcc/testsuite/gcc.c-torture/compile/pr42025-1.c +9c73901b7aa902ab1a2dc88f4114b063 gcc/testsuite/gcc.c-torture/compile/pr42025-2.c +bbd2dfcdd7e2bc5816c1f6fe21453082 gcc/testsuite/gcc.c-torture/compile/pr42049.c +fcf3aa7fd8debe9de71a66b1daafc19f gcc/testsuite/gcc.c-torture/compile/pr42164.c +c9e3281a601b3492cb99a7a1d45d7588 gcc/testsuite/gcc.c-torture/compile/pr42196-1.c +21c33c4a4e17ca99b5e677f9fc459670 gcc/testsuite/gcc.c-torture/compile/pr42196-2.c +a491a00d59bc3267fc9a8396ddd708b5 gcc/testsuite/gcc.c-torture/compile/pr42196-3.c +ac9974a1e65b3d4e3c0ffc20a6dcce95 gcc/testsuite/gcc.c-torture/compile/pr42234.c +fad0d9cc93e33fc0747f9ef8037c2920 gcc/testsuite/gcc.c-torture/compile/pr42237.c +a7e4fec723a626b88e826ec8a1f04238 gcc/testsuite/gcc.c-torture/compile/pr42299.c +8cb4278a1c36b114c1885bb75193d53e gcc/testsuite/gcc.c-torture/compile/pr42398.c +ee60a2375439bd55a6d4449ed72ad387 gcc/testsuite/gcc.c-torture/compile/pr42559.c +919dc3f51204b5168ddbd28279174620 gcc/testsuite/gcc.c-torture/compile/pr42632.c b9e6ce52b90320c1c3803c25113844c5 gcc/testsuite/gcc.c-torture/compile/pta-1.c 8d869e3426345f0cf8837c5eaafd43b5 gcc/testsuite/gcc.c-torture/compile/simd-1.c 7249a75cf6b955efed52b5ec5cee3a79 gcc/testsuite/gcc.c-torture/compile/simd-2.c @@ -15966,6 +16102,7 @@ 8647b63cf56e61f52035f84f920e5b83 gcc/testsuite/gcc.c-torture/execute/20081117-1.x d3232dd352e9bcd62387703d83589e5a gcc/testsuite/gcc.c-torture/execute/20081218-1.c d3b47ec4afbb561dffc8b6525730f54f gcc/testsuite/gcc.c-torture/execute/20090219-1.c +8c9a29fe3843c2aab2075c3c9006bc7c gcc/testsuite/gcc.c-torture/execute/20091229-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 @@ -16764,6 +16901,20 @@ dc861ea4ab9373f64dc8037e7bcb4a12 gcc/testsuite/gcc.c-torture/execute/pr40579.c 95f4d74cd3d06dd0206fe98c3798d1ee gcc/testsuite/gcc.c-torture/execute/pr40668.c 5f54281901459a788127292e910c618a gcc/testsuite/gcc.c-torture/execute/pr40747.c +9062b9f279c8c2e6984b0216f626ee63 gcc/testsuite/gcc.c-torture/execute/pr41317.c +ba91d671a1ea8047c15dc1264595604e gcc/testsuite/gcc.c-torture/execute/pr41750.c +2ce0b0976d38963e771ac5c686d10ce3 gcc/testsuite/gcc.c-torture/execute/pr41917.c +ea0a414631d1425171b5a4eb57657931 gcc/testsuite/gcc.c-torture/execute/pr41919.c +679c8b3ae0d214054f980c16371456f7 gcc/testsuite/gcc.c-torture/execute/pr41935.c +07d0a8daf41ed4b61656e8e2d3b03c60 gcc/testsuite/gcc.c-torture/execute/pr42006.c +a1a92b38609808178913848a9c7d9ab3 gcc/testsuite/gcc.c-torture/execute/pr42142.c +e277664d785bff4dbd22887229aa5e42 gcc/testsuite/gcc.c-torture/execute/pr42154.c +9d0805fdd9a0cf21d9cc09e46a30f205 gcc/testsuite/gcc.c-torture/execute/pr42231.c +f950ad90251a238b07e78b1c6c63b7f7 gcc/testsuite/gcc.c-torture/execute/pr42269-2.c +629f87f57011accdcdd57c84d8210a7d gcc/testsuite/gcc.c-torture/execute/pr42570.c +0394c6df8e11e5645264dd8cba51ab75 gcc/testsuite/gcc.c-torture/execute/pr42614.c +9bcea59be0916064443a026a4c16acbe gcc/testsuite/gcc.c-torture/execute/pr42691.c +9fcdb1a88bbe84e741f8bce1871cc5bf gcc/testsuite/gcc.c-torture/execute/pr42721.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 @@ -16772,6 +16923,7 @@ 559d28c240437de1613fea4a132f68c1 gcc/testsuite/gcc.c-torture/execute/pta-field-2.c 25b0ab996245c8f0a89b359cb2f3d01b gcc/testsuite/gcc.c-torture/execute/ptr-arith-1.c a28bd879356d47f1e472aeb9f6dd7b5e gcc/testsuite/gcc.c-torture/execute/pure-1.c +12891c7b726aa9319e33644f1ba0a12e gcc/testsuite/gcc.c-torture/execute/pushpop_macro.c 94f371d3aceb1a9327cc749ff6604e30 gcc/testsuite/gcc.c-torture/execute/regstack-1.c d8f6a44dcbfc929191d5b0cd906ddfbb gcc/testsuite/gcc.c-torture/execute/restrict-1.c 013edb8adf936860ff13b4e3ccbc918d gcc/testsuite/gcc.c-torture/execute/scope-1.c @@ -17349,6 +17501,7 @@ cda741cce59ba0dcd70871f300400003 gcc/testsuite/gcc.dg/990213-1.c cbd8b99477ce6cd603e35085b9624323 gcc/testsuite/gcc.dg/990506-0.c eba607c17011c649eb3d7e1c5513ffdd gcc/testsuite/gcc.dg/Foundation.framework/empty +509fc4e45ca169a2f01541865c72e7d9 gcc/testsuite/gcc.dg/O16384.c 3479b5b63274f34f78d0092b07e15e3c gcc/testsuite/gcc.dg/README 92e0f6dce9be7a9119066cc81f5f6407 gcc/testsuite/gcc.dg/Wall.c dce6b37fdafd062c8c970d6f5d7adb2b gcc/testsuite/gcc.dg/Walways-true-1.c @@ -17463,6 +17616,7 @@ 11808fa08e9027f1079bbaebdfbe1d41 gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all-2.c d0997c5fed01cd2efc214b96c6556a71 gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-ref-all.c 3ac29da988040023b0dafa874e9983d2 gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-struct-included.c +1545ca240f4614ac8a8de951fe61aacf gcc/testsuite/gcc.dg/Wstrict-aliasing-bogus-vla-1.c e62be5ab2fe3bba7e87419d338c7d45e gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c 6b55f28e89d8efc0915e2c6673808588 gcc/testsuite/gcc.dg/Wstrict-aliasing-float-ptr-int-obj.c af59ad0b143483efd888a257a65c26fc gcc/testsuite/gcc.dg/Wstrict-overflow-1.c @@ -17642,6 +17796,7 @@ 4f6083c38df859567d6aab1182f8cade gcc/testsuite/gcc.dg/bitfld-16.c c90c75528ba0b1bd5a28bdd1f3c69e5b gcc/testsuite/gcc.dg/bitfld-17.c 5ae84e299d858dd174f54056c4a452d1 gcc/testsuite/gcc.dg/bitfld-18.c +286176510ee3b864448d5a5be2e4eab2 gcc/testsuite/gcc.dg/bitfld-19.c 944c0a5046ab04618cc2722199b795c0 gcc/testsuite/gcc.dg/bitfld-2.c 3c3276324e6faa6cc33175d7f10e4386 gcc/testsuite/gcc.dg/bitfld-3.c 21c6c879cfb43ec03bf3e0c0be95a676 gcc/testsuite/gcc.dg/bitfld-4.c @@ -17896,7 +18051,7 @@ 3caabbe2c04337f3d0724fed0ad26f80 gcc/testsuite/gcc.dg/cleanup-10.c 3c713ca75f62af1e700ceed20a923682 gcc/testsuite/gcc.dg/cleanup-11.c 48d31f996ab74e8d06444f001fc336d1 gcc/testsuite/gcc.dg/cleanup-12.c -f6f9cadb8a5a9827f51bbbbe35e7a5ee gcc/testsuite/gcc.dg/cleanup-13.c +6e6dd112dd88dcfd46d30cae221edcbb gcc/testsuite/gcc.dg/cleanup-13.c 78bae3132e2068a254f88515c6bf0640 gcc/testsuite/gcc.dg/cleanup-2.c c2a1d7446900f7baf929104c039559f3 gcc/testsuite/gcc.dg/cleanup-3.c fc4b23c0fc21775250b7d884eb0fe56e gcc/testsuite/gcc.dg/cleanup-4.c @@ -18483,7 +18638,7 @@ 99bde0eaa7fe7e6d2667a6ac6c349a52 gcc/testsuite/gcc.dg/cpp/pragma-once-1b.h 530736b5c9a3fd45e6b06a0a18208037 gcc/testsuite/gcc.dg/cpp/pragma-once-1c.h d59887c3a6d84e13943708de2d30ef72 gcc/testsuite/gcc.dg/cpp/pragma-once-1d.h -ad99b75b76af3a38fc4bef5f5fc567fd gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c +8804321867348b1e703e820a9a734ce7 gcc/testsuite/gcc.dg/cpp/pragma-pop_macro-1.c 07384775502bd88399fa7426580eacf7 gcc/testsuite/gcc.dg/cpp/redef1.c c1d73c4510fcf1e4c0d10749167ba7ea gcc/testsuite/gcc.dg/cpp/redef2.c dff1ad67780a4f4eb7a40b0d122249b1 gcc/testsuite/gcc.dg/cpp/redef3.c @@ -18721,6 +18876,8 @@ 478bc40c68312fa9509c382e5769f8fa gcc/testsuite/gcc.dg/debug/pr36690-3.c 2083092ce3536372d6ceebaaaee718ce gcc/testsuite/gcc.dg/debug/pr37616.c 0a65e49bd8ed4e80481a4f8c44faaffa gcc/testsuite/gcc.dg/debug/pr39412.c +612bcae6cda966f25808622fa299f228 gcc/testsuite/gcc.dg/debug/pr41717.c +69c679a8391af24d4aa578f017fa508b gcc/testsuite/gcc.dg/debug/pr42244.c e39702ba4ac8cdf1b4d7895fa15c394f gcc/testsuite/gcc.dg/debug/redecl-1.c 60c3f3165dda429cbc7646a06969d16c gcc/testsuite/gcc.dg/debug/redecl-2.c 175fa916ededdb94d71518eecbe6fa1a gcc/testsuite/gcc.dg/debug/redecl-3.c @@ -18824,7 +18981,7 @@ 67400ef897d28be27ceda6472a855ec0 gcc/testsuite/gcc.dg/dfp/decfloat-constants.c b0c002cff8051f24b9c9db05f3062f21 gcc/testsuite/gcc.dg/dfp/dfp-except.h aadafbfd9e0540666c99d31e72e91f96 gcc/testsuite/gcc.dg/dfp/dfp-round.h -86854a24a58d9e0ec0dd7d1af8bf4607 gcc/testsuite/gcc.dg/dfp/dfp.exp +9b9ef77afd25e56305aa48e7c65b9cca gcc/testsuite/gcc.dg/dfp/dfp.exp 6d1ad1d188e619dbcdf99ca9610d78a2 gcc/testsuite/gcc.dg/dfp/fe-binop.c 04f1fd7783df0deca1a05da921f6a938 gcc/testsuite/gcc.dg/dfp/fe-check.h 7890519188e503ee719ff2553b4efc93 gcc/testsuite/gcc.dg/dfp/fe-convert-1.c @@ -18883,7 +19040,7 @@ aa5c7e2acf92a1749995396abd5b4033 gcc/testsuite/gcc.dg/dfp/usual-arith-conv-const.c aa564942b5fcb59f0f53299943c09d96 gcc/testsuite/gcc.dg/dfp/usual-arith-conv.c d3d4a5e683b625b06f86ba0ddb7a6d46 gcc/testsuite/gcc.dg/dfp/wtr-conversion-1.c -2f7f8f02140c1346cf9bfe290137376a gcc/testsuite/gcc.dg/dg.exp +0cbd9fd4109ce41f42189efec25d224c gcc/testsuite/gcc.dg/dg.exp 027655a8b0ca99f061c058d32eedfa46 gcc/testsuite/gcc.dg/div-compare-1.c e4adee5ca038d0f325e2b53f790361fe gcc/testsuite/gcc.dg/div-double-1.c 800ebc8c0b6c4581219d124682bd0f28 gcc/testsuite/gcc.dg/divbyzero.c @@ -19402,6 +19559,7 @@ 100138c2fc69370cda0ec2c9b9e12815 gcc/testsuite/gcc.dg/graphite/pr39260.c 6ad1ed1da1d95a4414c996de5e13e225 gcc/testsuite/gcc.dg/graphite/pr39335.c 2e1264174319212bfe16edce2701120b gcc/testsuite/gcc.dg/graphite/pr39335_1.c +495b86bd8b74dd308a5a68e7dff6041f gcc/testsuite/gcc.dg/graphite/pr40281.c f4a92006bcc2113a0982261adc37bc65 gcc/testsuite/gcc.dg/graphite/scop-0.c 1e4a4fff232dc56bd9f4df2348cba2d7 gcc/testsuite/gcc.dg/graphite/scop-1.c 6777d4c6459af7ab94bdb6d8b105319f gcc/testsuite/gcc.dg/graphite/scop-10.c @@ -19657,6 +19815,7 @@ 5a2c3316d076f8d48f24609d416f7516 gcc/testsuite/gcc.dg/noncompile/pr35444-1.c f7b0583ef99de8104eb364054c2ab1ae gcc/testsuite/gcc.dg/noncompile/pr35444-2.c d618e883477b7e6f5b49c9142c5dfe4c gcc/testsuite/gcc.dg/noncompile/pr35447-1.c +eebc988665ccd52c01692b6d73fdf1a7 gcc/testsuite/gcc.dg/noncompile/pr40033-1.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 @@ -19779,6 +19938,8 @@ 98eb40fd35afc99b8d7a0d9037913d4a gcc/testsuite/gcc.dg/pch/macro-4.c 9dfd3f4bded8093e1bd9fe58412b43c6 gcc/testsuite/gcc.dg/pch/macro-4.hs 748dc3710b0255f9f86be6f561098ede gcc/testsuite/gcc.dg/pch/pch.exp +10e7aa3c9c88169c37fec51ab85d804b gcc/testsuite/gcc.dg/pch/pushpop-1.c +8dd7fa6bfb17e08908378d5179a15dcd gcc/testsuite/gcc.dg/pch/pushpop-1.hs 046fa096e19252044dc223b9025b6b66 gcc/testsuite/gcc.dg/pch/save-temps-1.c 2eac3fb5ef4057d96387db046e19ef2d gcc/testsuite/gcc.dg/pch/save-temps-1.hs 81a23065a357b947b990e7d22d20daed gcc/testsuite/gcc.dg/pch/static-1.c @@ -20242,6 +20403,7 @@ a5fbef8dc1ac30ffbaa04bb729109b3b gcc/testsuite/gcc.dg/pr40669.c 4355b9d97eecc32453e1b9a6a2207fa4 gcc/testsuite/gcc.dg/pr40792.c 673ce1a4238d31429263d591c75bdd28 gcc/testsuite/gcc.dg/pr40861.c +5fd4ab6526215be44a7986411c46235d gcc/testsuite/gcc.dg/pr40946.c 5f6a57438d83a786abe3c8ef0f55c9bb gcc/testsuite/gcc.dg/pr40971.c 3b0cbc09a7c7f5f18b7d1334db94a3f6 gcc/testsuite/gcc.dg/pr41033.c 613278cdaf6528aece655f0d29bffa72 gcc/testsuite/gcc.dg/pr41123.c @@ -20250,6 +20412,18 @@ bc059809ab4e6daf50b7a02da5cbf86b gcc/testsuite/gcc.dg/pr41295.c a7440be101088a22f8a5d9e279945a7a gcc/testsuite/gcc.dg/pr41470.c 84a38326fd86393828d30ef78b78b65d gcc/testsuite/gcc.dg/pr41573.c +b8458e231103ae2deb4f77330a083286 gcc/testsuite/gcc.dg/pr41574.c +9c4b10ac05eee1cf7484812291015ee7 gcc/testsuite/gcc.dg/pr41643.c +f97b6e9544624a8f838191459b559e02 gcc/testsuite/gcc.dg/pr41762.c +e10d18ba96867f4178351df66e0567ff gcc/testsuite/gcc.dg/pr41841.c +24bc92cbf6824a482059a38a2590708f gcc/testsuite/gcc.dg/pr41842.c +a1d8b0e7ece2ac1ae4afa75a4df75675 gcc/testsuite/gcc.dg/pr41935.c +c9b7dda201bc71d4b86aff390065b9c4 gcc/testsuite/gcc.dg/pr42078.c +76e69d75aa59a8bcc99483071273d8f7 gcc/testsuite/gcc.dg/pr42084.c +98dc622b6172cee1aaec9c5d3266e877 gcc/testsuite/gcc.dg/pr42215.c +991dbffb574b25d1cc587f088dbc8e79 gcc/testsuite/gcc.dg/pr42475.c +83d7dcce1cf568f9d5d11fbc065f1957 gcc/testsuite/gcc.dg/pr42611.c +fe703f1c5408673830a0564d9b17522c gcc/testsuite/gcc.dg/pr42662.c 8b7d73da2d5d78000716492365a85d5a gcc/testsuite/gcc.dg/pr8715.c 3d08410b2dd57259aa63f0e1c64b376e gcc/testsuite/gcc.dg/pr8788-1.c be04382a35ebb1cfae1b2168f1693a94 gcc/testsuite/gcc.dg/pr8835-1.c @@ -20477,6 +20651,7 @@ 7d1276380dde98bf97fdb4b855d617a2 gcc/testsuite/gcc.dg/tls/opt-12.c c8c5d1622da3df63fe0b283e2252a190 gcc/testsuite/gcc.dg/tls/opt-13.c 983d1b28bf792823238008378157240b gcc/testsuite/gcc.dg/tls/opt-14.c +aca620ebecb82f62b3ed939fcf7a3605 gcc/testsuite/gcc.dg/tls/opt-15.c 52387e08012c5f7eb8f9a3ac23e89faa gcc/testsuite/gcc.dg/tls/opt-2.c df2724f903f950e4c5165cb300467876 gcc/testsuite/gcc.dg/tls/opt-3.c 5bfb4778757fa4a6ebc6e6016543219b gcc/testsuite/gcc.dg/tls/opt-4.c @@ -20667,6 +20842,7 @@ 831e5b9981da7148c952643f329eaa25 gcc/testsuite/gcc.dg/torture/pr41094.c 90e4076b92021ee54266282003c1e753 gcc/testsuite/gcc.dg/torture/pr41261.c bfe95c052645309c3ee36c305fddcabc gcc/testsuite/gcc.dg/torture/pr41555.c +b7cc091540c52666f4ffe5f8a77404ea gcc/testsuite/gcc.dg/torture/pr42667.c 4aa5c6ba57ce4b8ecba813c14459e755 gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c 69d4c2db789443b421badc94aa305fe7 gcc/testsuite/gcc.dg/torture/pta-ptrarith-2.c c0cfd51fe6f1e14871c143f73aad0044 gcc/testsuite/gcc.dg/torture/reassoc-1.c @@ -21177,6 +21353,7 @@ c997d1737c7e7be01b3905b9e0066651 gcc/testsuite/gcc.dg/tree-ssa/pr38997.c 2898429fa039eda8310b69091ba71f44 gcc/testsuite/gcc.dg/tree-ssa/pr39007.c 2b9af42f1411f4555b7f08e421e41604 gcc/testsuite/gcc.dg/tree-ssa/pr40087.c +266dbaa0e9d48a21499420b29e27db96 gcc/testsuite/gcc.dg/tree-ssa/pr41497.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 @@ -21721,6 +21898,8 @@ 73cd1e28d3d420d7742741cc2b58deb8 gcc/testsuite/gcc.dg/vect/pr40238.c 11e882effb7744ba3c092f26846c0275 gcc/testsuite/gcc.dg/vect/pr40254.c 0f1194bea632e9e9ccfab90e11567962 gcc/testsuite/gcc.dg/vect/pr40542.c +d27423fddbfcc722a6601263a6248768 gcc/testsuite/gcc.dg/vect/pr41956.c +07589dd5124695bbb83a9add6f26a26f gcc/testsuite/gcc.dg/vect/pr42193.c 0706a6b1e589668022cd055b960dd18d gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c 260e2f31b30dda89387f41e7bfe71e1e gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c 9ac2d5d04e7a551a8b2b60af4d90d914 gcc/testsuite/gcc.dg/vect/slp-1.c @@ -21761,7 +21940,7 @@ a112625abf4185aff056b3b5603b0af9 gcc/testsuite/gcc.dg/vect/slp-multitypes-11.c e3f3affe8058e9284f376f81ebb24aea gcc/testsuite/gcc.dg/vect/slp-multitypes-12.c 085ddc7a33d549259500a983319ad15e gcc/testsuite/gcc.dg/vect/slp-multitypes-2.c -4a208edf48e3fc39bc52bbb75113dece gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c +9fd6b74d95a2cb761986d0211454c477 gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c cd789d6c66ede5b30b94a9672431360c gcc/testsuite/gcc.dg/vect/slp-multitypes-4.c 0556d2be19248e654474ad1d89b50f17 gcc/testsuite/gcc.dg/vect/slp-multitypes-5.c 0174541027ff13e962d66b8655753243 gcc/testsuite/gcc.dg/vect/slp-multitypes-6.c @@ -21891,6 +22070,7 @@ a0cb6598100ff4b2ffb39f2de1c7afd2 gcc/testsuite/gcc.dg/vect/vect-complex-2.c 8ba2b66b23af0854a386cba354154145 gcc/testsuite/gcc.dg/vect/vect-complex-4.c 34d66dadfadf90c9d4352d645c7328bd gcc/testsuite/gcc.dg/vect/vect-complex-5.c +c6b6654864748ca914d9800ad6d45ed5 gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c 34f34a67876b23053b9654dc17287ade gcc/testsuite/gcc.dg/vect/vect-dv-1.c 510ad5398f116a03d59e3bbfa6eb3124 gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c 91a5665fd80c33178f21583704e9314e gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c @@ -21927,7 +22107,7 @@ 7886961ae7994d91d287221a3bcb05af gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c 8b30b51e5185ba2e89e3b3ee8f664b14 gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c 34609bfb4d43f66573f1b2c21a62d61f gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c -826877b940c885b99b06159c082db573 gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c +d41061dc2c98a9043e1037ba27b6d320 gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c e3d7297f06df4d4f462d8671fb68d143 gcc/testsuite/gcc.dg/vect/vect-multitypes-13.c e0579eeb179d4af5d18af4fa8a443ac3 gcc/testsuite/gcc.dg/vect/vect-multitypes-14.c bf55b1f032e199cd7cf219a70468d218 gcc/testsuite/gcc.dg/vect/vect-multitypes-15.c @@ -21936,8 +22116,8 @@ 3c81e477a15e80d59cdbb189266338b2 gcc/testsuite/gcc.dg/vect/vect-multitypes-2.c ffeb6bb7671248aa5b9c0b213f143cdf gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c 8683b10d24ede6b2868ad5f2ce54ddab gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c -0b282d8683842bc96725fbca678fddda gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c -4ecebe98bc36768e238e7fb895fc4fb8 gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c +cc9af1687106ab59078f9867683daf40 gcc/testsuite/gcc.dg/vect/vect-multitypes-5.c +a7a8421fec8ebb95c94d94e54d9d7da3 gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c 1c4411886802c9304bd770bae66cef5a gcc/testsuite/gcc.dg/vect/vect-multitypes-7.c ccf4afd53aca93115711b37e8e1504b3 gcc/testsuite/gcc.dg/vect/vect-multitypes-8.c 74cc32ed467cbd5f54eed777a6ef210e gcc/testsuite/gcc.dg/vect/vect-multitypes-9.c @@ -22317,6 +22497,10 @@ f8467590e67b2b5f4718d571a9ba60c0 gcc/testsuite/gcc.target/alpha/pr22093.c b36471f8edbf2a11ce23359823ecc10b gcc/testsuite/gcc.target/alpha/pr24178.c 07622a1bc137bf2eb36bc820fd987dba gcc/testsuite/gcc.target/alpha/pr39740.c +7e0bdc9440fed8b18a36d041da4fc543 gcc/testsuite/gcc.target/alpha/pr42113.c +463af7840e4a680c4f850f8d5dfafd3f gcc/testsuite/gcc.target/alpha/pr42448-1.c +0539ee2bde042196f5382b5c738d4f43 gcc/testsuite/gcc.target/alpha/pr42448-2.c +5f0298d225684c28c36ad42548aeccbd gcc/testsuite/gcc.target/alpha/pr42774.c beda6141f6d81202e243e09ed98a701c gcc/testsuite/gcc.target/arm/20030909-1.c 4c52237cac005144f304a4d38ae996d7 gcc/testsuite/gcc.target/arm/20031108-1.c a1acd010b6cb682a38b9798f3d8ac238 gcc/testsuite/gcc.target/arm/20051215-1.c @@ -24217,6 +24401,7 @@ 7474a850002496a75a3fc07be3a92378 gcc/testsuite/gcc.target/arm/symbian3.c 6348d8c419a160922fcdffc252546f1f gcc/testsuite/gcc.target/arm/symbian4.c a7b483d7dfa030106153baa28a7406da gcc/testsuite/gcc.target/arm/symbian5.c +40ace8f9e25a205a8df50efca059bf90 gcc/testsuite/gcc.target/arm/synchronize.c dd7bfde900d68546e1d3dd468f37370b gcc/testsuite/gcc.target/arm/va_list.c d6bcedd6c4dff9dc5fd06174695e70a9 gcc/testsuite/gcc.target/arm/vfp-1.c a5ae6ce832244f839b2a2d1c4b66196a gcc/testsuite/gcc.target/avr/avr.exp @@ -24969,6 +25154,7 @@ d2b34198fe6a51be331a79cba5aa061b gcc/testsuite/gcc.target/i386/mmx-1.c e06a25d8009fb83e07df79ef139ed068 gcc/testsuite/gcc.target/i386/mmx-2.c 4055fe9aaa6fd07185517c33ca6dbd5b gcc/testsuite/gcc.target/i386/mmx-3.c +9f53c70c7d1098ec4f450314e3fa08bb gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h 2a3548e97cfcaca9778f5e2412d78613 gcc/testsuite/gcc.target/i386/mmx-4.c 015d080c487e242459a1b0c792b3b1a1 gcc/testsuite/gcc.target/i386/mmx-5.c 5ac12ccd53f7c2be83027f4233e27f7d gcc/testsuite/gcc.target/i386/mmx-6.c @@ -25160,6 +25346,17 @@ 78473935934f8f9ea9ee6952b28304be gcc/testsuite/gcc.target/i386/pr40934.c e4a2506d3c1d617b0f97ab69192105ad gcc/testsuite/gcc.target/i386/pr40957.c 5e38fdd02a4b90c3927596703b556ccf gcc/testsuite/gcc.target/i386/pr41019.c +0384ebd83a4490e8cd4ca9c512b1815c gcc/testsuite/gcc.target/i386/pr41900.c +f6fe69844b5e6689ec6d7f4fae4cd61f gcc/testsuite/gcc.target/i386/pr41963.c +7bb914e551b6d7b6e3e0856c2f49ae69 gcc/testsuite/gcc.target/i386/pr42542-1.c +019e7ec723b534d3accdf359f4d871c0 gcc/testsuite/gcc.target/i386/pr42542-1a.c +6a70bef51b3b1698f54247a6789b8ebd gcc/testsuite/gcc.target/i386/pr42542-1b.c +56957e8b5eea073a52be2bdcd2487ed0 gcc/testsuite/gcc.target/i386/pr42542-2.c +f801f2aa117f55630e7f354a6fb47a97 gcc/testsuite/gcc.target/i386/pr42542-2a.c +a3368b0415f9d03e43b203c89a2e8980 gcc/testsuite/gcc.target/i386/pr42542-2b.c +2a7f29e3fb46a16f23b2e683c0d1bee5 gcc/testsuite/gcc.target/i386/pr42542-3.c +761a94219c4b6801b40876cc2df724dc gcc/testsuite/gcc.target/i386/pr42542-3a.c +831ac40c091f8fecabc1e04f1c749092 gcc/testsuite/gcc.target/i386/pr42549.c 5e93a2c631ad41e334cfdad124bfff8e gcc/testsuite/gcc.target/i386/pr9771-1.c c605ce6b9a51e90fdc02a1a65c4b5130 gcc/testsuite/gcc.target/i386/push-1.c 267203167ae369a7a0f5d3c309117f35 gcc/testsuite/gcc.target/i386/quad-sse.c @@ -25672,6 +25869,9 @@ 300ff8ba3fa165699ca9f1b7d2377811 gcc/testsuite/gcc.target/ia64/ia64.exp 78e9bbaeebf5b8a61104ae2da0c31b16 gcc/testsuite/gcc.target/ia64/postinc-1.c f4e9379761d673b84fd5039d76143360 gcc/testsuite/gcc.target/ia64/pr29682.c +16e1396fec5164ccc957d13dccfdbc5b gcc/testsuite/gcc.target/ia64/pr42542-1.c +1b8db9215acd28ec852832eb4f47b483 gcc/testsuite/gcc.target/ia64/pr42542-2.c +e4a4f39e26380f48526c48410f2b30e8 gcc/testsuite/gcc.target/ia64/pr42542-3.c da5fed1c1687d737e6580d89111ea5c7 gcc/testsuite/gcc.target/ia64/sibcall-opt-1.c c6b9120dedb44027555b13a7b3e1db44 gcc/testsuite/gcc.target/ia64/sibcall-opt-2.c 077bd168db3c45990d24d018d5e07d0d gcc/testsuite/gcc.target/ia64/sibcall-unwind-1.c @@ -25720,6 +25920,8 @@ cc2de40aa100f40a15f004e77fad728f gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c 6bdccca11516f1b8e53b78c91199416c gcc/testsuite/gcc.target/mips/dse-1.c 7868f177dc05e8e595bf157005698f14 gcc/testsuite/gcc.target/mips/dsp-ctrl.c +3728f257eb932ca9e922a00c44592035 gcc/testsuite/gcc.target/mips/dsp-lhx.c +04bbb02a3ec8fbfe4713cf36959f8e94 gcc/testsuite/gcc.target/mips/dsp-no-lhx.c 28be1f3d963e0af13bbfc721fd703f0e gcc/testsuite/gcc.target/mips/dspr2-MULT.c f87ce462302abe4bb539b0a87feed6f2 gcc/testsuite/gcc.target/mips/dspr2-MULTU.c 6085360d56b630484cb80410b6151bb3 gcc/testsuite/gcc.target/mips/ext-1.c @@ -26313,7 +26515,7 @@ f000fdcd855b1a8e1790fdb7dc31bed6 gcc/testsuite/gcc.target/spu/fixed-range.c 4ed623422edf8e50d92b6f01b6126c16 gcc/testsuite/gcc.target/spu/intrinsics-1.c 3d71b2ed8c8527cc39573de9ec13fe60 gcc/testsuite/gcc.target/spu/intrinsics-2.c -f30a50f496ab6de2f8ceae59cab36813 gcc/testsuite/gcc.target/spu/intrinsics-3.c +628eac7dff9645301ed4cb4c91fb9d2a gcc/testsuite/gcc.target/spu/intrinsics-3.c e6baa5f795c72565e5f7f03238ce2c77 gcc/testsuite/gcc.target/spu/intrinsics-sr.c 9df57366b567dbd3aef49e217449dbff gcc/testsuite/gcc.target/spu/muldivti3.c 3cab8012baa12f76ef01d3328d5b8cb9 gcc/testsuite/gcc.target/spu/spu.exp @@ -26328,7 +26530,7 @@ 1820f27caf1d1b1dac300d252360a2a7 gcc/testsuite/gcc.target/x86_64/abi/asm-support.S d91513753b8fa7f825e225f75e5c9da6 gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp f559d61e72669fec3c7c3bb1345a001f gcc/testsuite/gcc.target/x86_64/abi/avx/args.h -8ec97d58e2d5613caf003aea1e7a4183 gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S +e41768e87869221cee5edf61e3c3839b gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S 906d3e82c934ebb0523d4487dcd5abc7 gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h d3c71d269c1b4265e86c5ace1089e848 gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c b43e5e8d171dcdbec5cac42b0b9a298c gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c @@ -26784,6 +26986,7 @@ 1f97b4f0dca764838294052acc156f85 gcc/testsuite/gfortran.dg/array_constructor_3.f90 106ae15aea322aec53f8eee6bd9ab607 gcc/testsuite/gfortran.dg/array_constructor_30.f03 9556e61bd2895f28168a9c53a5a5f128 gcc/testsuite/gfortran.dg/array_constructor_31.f90 +2cee9fb4f8702771f983d4b5e9ae6311 gcc/testsuite/gfortran.dg/array_constructor_32.f90 6b96d70766eaf58b5853527d5eb75dce gcc/testsuite/gfortran.dg/array_constructor_4.f90 9918ac77cf760a3800e94da773f0a74b gcc/testsuite/gfortran.dg/array_constructor_5.f90 6dc05669b848d267b25c38806e59d51f gcc/testsuite/gfortran.dg/array_constructor_6.f90 @@ -26815,6 +27018,7 @@ 3afaa99751f4b884afdb193178002cf8 gcc/testsuite/gfortran.dg/array_function_2.f90 dc38cfefef45c18be8c3037b75afa8f7 gcc/testsuite/gfortran.dg/array_function_3.f90 3f997eb2e7923e0ae3b19118f988be96 gcc/testsuite/gfortran.dg/array_function_4.f90 +49d0658f4bec06ecd9c6759be21b2b8a gcc/testsuite/gfortran.dg/array_function_5.f90 f7deaa09f12d6b0d7167e9ea3c764992 gcc/testsuite/gfortran.dg/array_initializer_1.f90 f089112961eb27984a439266fde9cf16 gcc/testsuite/gfortran.dg/array_initializer_2.f90 2b4bef0c22c911f907559277d9291ac5 gcc/testsuite/gfortran.dg/array_initializer_3.f90 @@ -26870,6 +27074,7 @@ 3f42fad2694e05b0c6caac75725fd3f2 gcc/testsuite/gfortran.dg/associated_5.f90 32b4a71d6d649eeafd569b412f4ca3cf gcc/testsuite/gfortran.dg/associated_target_1.f90 14ea917bbb9224466ca398e5094e8874 gcc/testsuite/gfortran.dg/associated_target_2.f90 +d4903e4ecb31d6427da0e25372aa34ae gcc/testsuite/gfortran.dg/associated_target_3.f90 04280cc7719e51d18a6ad4510745c528 gcc/testsuite/gfortran.dg/assumed_charlen_arg_1.f90 f1b97532f52bd477910c18b834c07594 gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90 67bc7908d78c221fe5ab850691c22782 gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90 @@ -27285,7 +27490,7 @@ 88c3eff0ce67fac558bd8e99011afc63 gcc/testsuite/gfortran.dg/data_implied_do_1.f90 433440f2bc7400a428ec319b70a4c7c4 gcc/testsuite/gfortran.dg/data_initialized.f90 f7e6506db3e2a2cf1acda6f7ed5bb367 gcc/testsuite/gfortran.dg/data_initialized_2.f90 -63a29ccfb8cb44e86b489b88e1e3739a gcc/testsuite/gfortran.dg/data_value_1.f90 +503918b2128c29daa249b849ffe01756 gcc/testsuite/gfortran.dg/data_value_1.f90 bed6e5db54bbf80cf32d9482e2a1f7e4 gcc/testsuite/gfortran.dg/deallocate_error_1.f90 adf3e611b5d9dd41324a93faee4fe2c9 gcc/testsuite/gfortran.dg/deallocate_error_2.f90 9fcbe2e532ad3b34161b543669b7df98 gcc/testsuite/gfortran.dg/deallocate_stat.f90 @@ -27371,6 +27576,7 @@ 32ac2c11efd1a783496999c97d06b407 gcc/testsuite/gfortran.dg/dg.exp ea4b46f100a2bfd145edbb489c0084b0 gcc/testsuite/gfortran.dg/direct_io_1.f90 2a1539169ac7a352e0c4d17620d0cc9a gcc/testsuite/gfortran.dg/direct_io_10.f +6189c74cd63d04b06db2b4ec34dbd296 gcc/testsuite/gfortran.dg/direct_io_11.f90 7d5421aad200f22bb35816d673b3531b gcc/testsuite/gfortran.dg/direct_io_2.f90 df2f28f9f16982ad455240a03d5df8d9 gcc/testsuite/gfortran.dg/direct_io_3.f90 284b669e1d4a30d12cb5bda22c4025f3 gcc/testsuite/gfortran.dg/direct_io_4.f90 @@ -27889,6 +28095,7 @@ 1246243eb6baa080a59457a8646d513f gcc/testsuite/gfortran.dg/gomp/pr39354.f90 b4570608c9f7bf1bf83b19629ce884db gcc/testsuite/gfortran.dg/gomp/pr40878-1.f90 4359c79fda5533d97ee157c4b047f274 gcc/testsuite/gfortran.dg/gomp/pr40878-2.f90 +f3677d31dd1f67614d77de630d5f14c3 gcc/testsuite/gfortran.dg/gomp/pr41344.f a0169f3f7b23f97b379a44b2968ddb97 gcc/testsuite/gfortran.dg/gomp/reduction1.f90 02484261b0434dbaf2709c34db58cd4d gcc/testsuite/gfortran.dg/gomp/reduction2.f90 cf9706c950168b12fedcd8bec1221dd2 gcc/testsuite/gfortran.dg/gomp/reduction3.f90 @@ -28040,6 +28247,7 @@ dfc15d0977d9a433c087d7c087b20872 gcc/testsuite/gfortran.dg/intent_out_3.f90 a4fb1377a7e3fd7d6f3a448f1c020623 gcc/testsuite/gfortran.dg/intent_out_4.f90 6a89e53d671cdfd24e838a401ca2b323 gcc/testsuite/gfortran.dg/intent_out_5.f90 +1ee2124fd3c6fad665c546b04979e598 gcc/testsuite/gfortran.dg/intent_out_6.f90 45e0645a8062e6313a398058d1926367 gcc/testsuite/gfortran.dg/intent_used_1.f90 887f0287c03ae099d44de6e71dc9df98 gcc/testsuite/gfortran.dg/interface_1.f90 90359889a37a4c36cbf0f9570a3b9aaa gcc/testsuite/gfortran.dg/interface_10.f90 @@ -28109,6 +28317,7 @@ fe865725bfa3323563a596d77f333f3f gcc/testsuite/gfortran.dg/intrinsic_pack_2.f90 f27ef090905c80404a023a7225a306d6 gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90 46c6f0a832541ad6ca2cbb32c01ab20d gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90 +d893e21be9605b4a95d4846656e49484 gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90 eae017e25fe53b50ef578428423c5340 gcc/testsuite/gfortran.dg/intrinsic_product_1.f90 39fab9b8b7966182b5fd74ba9db9a97f gcc/testsuite/gfortran.dg/intrinsic_shadow_1.f03 fb1b76bb32bbc5d29a9bf84a7a47d0cf gcc/testsuite/gfortran.dg/intrinsic_shadow_2.f03 @@ -28189,6 +28398,7 @@ bb3b373c21b1beb428686382a9fe319e gcc/testsuite/gfortran.dg/line_length_2.f90 fc437ac99c80ded40e13df8066e49a91 gcc/testsuite/gfortran.dg/linked_list_1.f90 b39f27bc4a3ac88f64e66083601c6489 gcc/testsuite/gfortran.dg/list_read_1.f90 +16b03bca05a6acc43f24be44e1f2ff05 gcc/testsuite/gfortran.dg/list_read_10.f90 7c3b377736340c5d3561f0919d07fed9 gcc/testsuite/gfortran.dg/list_read_2.f90 799ffeafd700d24bd3e365a8addcfa10 gcc/testsuite/gfortran.dg/list_read_3.f90 3863d02b5c121547dd6d3c9caf98e231 gcc/testsuite/gfortran.dg/list_read_4.f90 @@ -28602,6 +28812,8 @@ 38ec947ac2565424f1508621f66a31bb gcc/testsuite/gfortran.dg/pr41225.f90 b9e2c750274471b80970250d22b1f7dd gcc/testsuite/gfortran.dg/pr41229.f90 b0352cfde4ae60cc2b0b0f5e8074caec gcc/testsuite/gfortran.dg/pr41347.f90 +7474cbf3d33d0f676c86eb8e1c5076a4 gcc/testsuite/gfortran.dg/pr41928.f90 +f97bbef31f7ca1230b7b8b18d0f71473 gcc/testsuite/gfortran.dg/pr42166.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 @@ -28727,6 +28939,7 @@ bbba721f3cfd3c31867b630d4781b303 gcc/testsuite/gfortran.dg/record_marker_2.f 0c25eeccd19beac20048e5a186fb3c43 gcc/testsuite/gfortran.dg/record_marker_3.f90 3f76ccfe2c1760d8b85f37e3680f2018 gcc/testsuite/gfortran.dg/recursive_check_1.f +89db13c5d7ebc3baf5942104fb935f62 gcc/testsuite/gfortran.dg/recursive_check_15.f90 881c92b66cd57adb841f4c449922f1c6 gcc/testsuite/gfortran.dg/recursive_check_2.f90 9756d61dc4460a36cf3565371f5ccea8 gcc/testsuite/gfortran.dg/recursive_check_3.f90 9c6cbf20cf912a27030ba7479bd28f88 gcc/testsuite/gfortran.dg/recursive_check_4.f03 @@ -28924,6 +29137,7 @@ dc67674921059cc6c14a48ba9f6e8515 gcc/testsuite/gfortran.dg/transfer_hollerith_1.f90 9ceb6d0cbc45ccee3659aec7e17a8bcd gcc/testsuite/gfortran.dg/transfer_intrinsic_1.f90 5f8c3382a00823fe2620469344806fa1 gcc/testsuite/gfortran.dg/transfer_intrinsic_2.f90 +0818fe12ccb412487e694ee7d759586f gcc/testsuite/gfortran.dg/transfer_intrinsic_3.f90 d68fb0123f87274c2d884716d42b47b9 gcc/testsuite/gfortran.dg/transfer_null_1.f90 fb06cac22180b4daf49f140f6a9ad4c3 gcc/testsuite/gfortran.dg/transfer_resolve_1.f90 099850a87aba56ec7cc45b0bd6ddec3c gcc/testsuite/gfortran.dg/transfer_simplify_1.f90 @@ -30054,7 +30268,7 @@ 9a908bb507989b82eddfeb9d23c66587 gcc/testsuite/lib/scantree.exp e491de496275e2c1eaa1010c85de53ca gcc/testsuite/lib/target-libpath.exp ad5e11f87bc4eabf482e6b0c668f1b2b gcc/testsuite/lib/target-supports-dg.exp -877060f8ceab252f26caf9e81a6cc8cc gcc/testsuite/lib/target-supports.exp +4a83380989581fe40719e89b87ca5744 gcc/testsuite/lib/target-supports.exp 3247a569c87014396b4682567b02c72f gcc/testsuite/lib/timeout-dg.exp 3b7f74ee8537decb5895ed7a3c008b6e gcc/testsuite/lib/timeout.exp 79ac90a6a1627fc40f4be76ee6d3e10a gcc/testsuite/lib/torture-options.exp @@ -30487,7 +30701,7 @@ 95cd7c79620ee7114d993efc771f7fd8 gcc/tree-browser.def def2a52cc7c070df1022f36051a0c1c2 gcc/tree-call-cdce.c f2c6f3b30cdf59de3a664ffc6126c2a1 gcc/tree-cfg.c -6c67e8252792275430eed806e8e741ac gcc/tree-cfgcleanup.c +c56e5bc664dc17e25b7f4811fb953b52 gcc/tree-cfgcleanup.c 5b1197419bd4500758c335a6b756cd69 gcc/tree-chrec.c 709f9b370c5300867ea6dc891135d037 gcc/tree-chrec.h ebbda1a31c1dd3ab37b0a4ac8e446db1 gcc/tree-complex.c @@ -30521,24 +30735,24 @@ 239d4fa6cf1ced3f2b2924a57bee44a0 gcc/tree-predcom.c db575b88a4bf8a9ad70130b4b3f30da6 gcc/tree-pretty-print.c 436994a40e27a8032599006a6ccbda72 gcc/tree-profile.c -d211eb5f71a33ef7a16b96aa449c1167 gcc/tree-scalar-evolution.c +1acac502469470176cb27083cee2bfd5 gcc/tree-scalar-evolution.c 05c2fe7a7e5ab6511b6ed3df4b2b92dc gcc/tree-scalar-evolution.h a71467793efb8ef1c3eb7eda0d654900 gcc/tree-sra.c 17fdd9cae8202b75755618dabe59a9de gcc/tree-ssa-address.c -b803ee0c789bc6b8a1bf2bb39f6dd2d2 gcc/tree-ssa-alias.c -3fc413ccee17105e232d44e7bfea3b88 gcc/tree-ssa-ccp.c +5d55a4f16f35f470b2617de3710dd352 gcc/tree-ssa-alias.c +ebab544837b9684cc65cddc58bdac9b0 gcc/tree-ssa-ccp.c 35d4beef227ac5e08c4d0b8cef52f68b gcc/tree-ssa-coalesce.c 801c5e9973056ccefbf9257b5d19f30a gcc/tree-ssa-copy.c 2addd634736f8ade3525e6af92a78469 gcc/tree-ssa-copyrename.c 25f81be4dfeff8b6be3a5684e020aeee gcc/tree-ssa-dce.c -6197f17446f9c6e19840754bd634cda3 gcc/tree-ssa-dom.c +73c685432d498a7f8a860a733511e948 gcc/tree-ssa-dom.c 93fb1f957a4119cc1827e3090f597c30 gcc/tree-ssa-dse.c 38571bc8040efcb846a5ab3a8387a533 gcc/tree-ssa-forwprop.c a6562ce11cf9cdf6f140c186b991057d gcc/tree-ssa-ifcombine.c 36e1b51008629ccf0945ab931de9c07b gcc/tree-ssa-live.c 2d593505d859ddc7fd900dac818186d2 gcc/tree-ssa-live.h 9734f55b7518dbe2c9aec464add72076 gcc/tree-ssa-loop-ch.c -e2eee0d4bdeb6b8e59c699cc3ba03f7f gcc/tree-ssa-loop-im.c +dce5847171e1b0c287a4d266efb3754e gcc/tree-ssa-loop-im.c 93684356f7841216f443d7202784e0bb gcc/tree-ssa-loop-ivcanon.c 7a7339fa11c351b1276227cccb41f807 gcc/tree-ssa-loop-ivopts.c 28f15835a4cf86bb6cd27a2beb0e3717 gcc/tree-ssa-loop-manip.c @@ -30546,19 +30760,19 @@ 219c7cef73c3e7dc974da87b3805ef50 gcc/tree-ssa-loop-prefetch.c ceed1bfcc7386d0e82896eb7b73d0247 gcc/tree-ssa-loop-unswitch.c 49bb90cf6d57e8d4d5aa1c181c2f767d gcc/tree-ssa-loop.c -a7d713003d11140a9b357da6990172e9 gcc/tree-ssa-math-opts.c +6a8835bbba21f816d1eea042a66fefb8 gcc/tree-ssa-math-opts.c 4c60a90890a3ae722baf2d04bdf01f9e gcc/tree-ssa-operands.c 24fc49b7c726323b2e249fb01132d683 gcc/tree-ssa-operands.h 5c471c8182ac31faf8daa0cab1bad55c gcc/tree-ssa-phiopt.c 44a7827fe52e476e5aebb0ea4541c8ab gcc/tree-ssa-phiprop.c -7405d42ef5387ff9bf33e93468b6d723 gcc/tree-ssa-pre.c +11b4f0bc7d018ccd6763948e76a2e53d gcc/tree-ssa-pre.c b3a5cd136577d4d9764860fbb9aa2d70 gcc/tree-ssa-propagate.c 4e03d85d1b53fca9c060b5d626da09fd gcc/tree-ssa-propagate.h 4dcc9d7bbf0cda85c5b8bac32f9cef45 gcc/tree-ssa-reassoc.c 14a0b6bb22d8ada345cccf34a4162033 gcc/tree-ssa-sccvn.c 2f5411534286a67f7fc406d70facbe09 gcc/tree-ssa-sccvn.h d1b4126d8f53283460df31db7194b14b gcc/tree-ssa-sink.c -169b1cf52e1479424376fcf8b1ca61b9 gcc/tree-ssa-structalias.c +cd6ad64a42ec84773b3cdaa13d9388a7 gcc/tree-ssa-structalias.c 7ba91c9a7e0f9e2e00c0feefdd350585 gcc/tree-ssa-structalias.h 82793369250dfeeb4b267a1b3964692b gcc/tree-ssa-ter.c 5a11cf241632bb90fce4bb0d92afb48e gcc/tree-ssa-threadedge.c @@ -30569,8 +30783,8 @@ 6cdde0c031bd687bf601e3edff015a3a gcc/tree-stdarg.c 9dc7ea806141e247f0061ebed82e5f57 gcc/tree-stdarg.h d018c1f2e7e00060bd155e8d9a075a9c gcc/tree-switch-conversion.c -d43909d0f3f863ffd1c9db86842ea791 gcc/tree-tailcall.c -9c28a083a9e1df74f5571a52a4039966 gcc/tree-vect-analyze.c +0b620ad94e894b3b6b01d8ad07b28cd8 gcc/tree-tailcall.c +8b9a411fea3ada550be1075107f1a9f4 gcc/tree-vect-analyze.c b6d73aea616cb17079714ba502599e66 gcc/tree-vect-generic.c e9ea3657041d1e1af4d907315c3bb2a0 gcc/tree-vect-patterns.c e675feb81815d0d7b1a0fbb8db36993a gcc/tree-vect-transform.c @@ -30591,7 +30805,7 @@ a807230c534568fdaf561fddfa24c3ec gcc/unwind-dw2-fde-glibc.c 683c181a39a7e6fb2320e63546da34df gcc/unwind-dw2-fde.c 81ae22035fc16ea0e482548e56f0cd46 gcc/unwind-dw2-fde.h -736ca2f83a00bb00f9ae685ef08e126d gcc/unwind-dw2.c +6bb4265e34331cb538a0f6b898f9096b gcc/unwind-dw2.c 0a1db52a2a9f6c6b74676fa7a53f6afa gcc/unwind-dw2.h 5de9a1c7aa2399341c79494145dee796 gcc/unwind-generic.h 5c71e5bf75b8bda4c16eb0331bd2f82a gcc/unwind-pe.h @@ -30600,7 +30814,7 @@ 4349801f54371b50f815d43a22a2c269 gcc/value-prof.c 1ce993ddced47a3d6ff9ec62985afbea gcc/value-prof.h e1b0cc917a8e5c35e6b51cea5fa74fe8 gcc/var-tracking.c -0ff057316bcaf55812f46ee75f053b00 gcc/varasm.c +f469b5e3fb635b6e5c02e0fb61fac397 gcc/varasm.c 5261cf70b08503b266405c8d86b8264f gcc/varpool.c cfcdb2fa4870ea04c5b7995164672d84 gcc/varray.c d8f94e35840190c4f1dc252fb9cde4de gcc/varray.h @@ -30615,13 +30829,13 @@ 42adadee6c316f624c86e3ccfdeee75c gcc/xcoff.h 4bb6c12cfbacc8d214992f0f2f518c35 gcc/xcoffout.c 26455c95210e49d4944e4cb9c55be072 gcc/xcoffout.h -1aed4435e9a1588ee1440b7c22311849 gnattools/ChangeLog +9db9ac3846f2362496eab1284d93a277 gnattools/ChangeLog 5c6e51b0ba78687e3e203baf2cb8efee gnattools/Makefile.in a0ff396cebc896665506c2e467585f33 gnattools/configure fee7c8fcbc6994c9cc4cdc0f719cc7cc gnattools/configure.ac 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 -763e0826958d1e9e3c25a7182f5ed4ac include/ChangeLog +298d728244207201dff0646dd861c743 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 f7d3e7ee65516643f4847560778a30cf include/ansidecl.h 7f56ea1304d016a45770f3989736f181 include/demangle.h @@ -30646,7 +30860,7 @@ 0294cecbb1f66d640ccba3a5d862d05b include/xregex2.h 06cee0773295c3ade78d4605550102dc include/xtensa-config.h aded5875c5d5830de6653181e8ced19c install-sh -23e6199c84e4538d759980f904f16569 intl/ChangeLog +553988bbf9ebc392a476acb2c7498df4 intl/ChangeLog afcc65eba0b481722fcfcb92bae389b2 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION @@ -30688,11 +30902,11 @@ b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c -3be55ceb85b36aa963e7c5e80a2bced8 libada/ChangeLog -196b74e02f606009c455beeb8a282d26 libada/Makefile.in -ce135a427cff8d075adaf1df9aa15516 libada/configure -bf6c68df765fc58bb0c7edd22b994198 libada/configure.ac -d45b2a9bb7c2545d9b217151396e39f3 libcpp/ChangeLog +21d5c409c00621234c9fd7d78570351e libada/ChangeLog +262839d559b47e6b7e3099d78607925a libada/Makefile.in +07862146e86060f3f2fec11cdd9b0d22 libada/configure +e37a058398e43aabbe1177079b0fa59f libada/configure.ac +281d94ee8614cb2ead8f02a9edf2f81e libcpp/ChangeLog e4bd42c5b05fa59f0882ee3ae5228ca8 libcpp/Makefile.in cdb0d04b305e8a1db0b518b01a50345a libcpp/aclocal.m4 0bbe704b181f2d1f34a7ff96797032f1 libcpp/charset.c @@ -30700,7 +30914,7 @@ 8a42c64c0884d284139dd7dfa43013fb libcpp/configure f88daaf0545f0519694049f0c6c9aa86 libcpp/configure.ac 780c24b5f0e8a1ccaae19a83618c050a libcpp/directives-only.c -1a24f788c2a7bc19f6fddaa842e90b17 libcpp/directives.c +977f14e40d57cebc3314517275277729 libcpp/directives.c 317c6379fda7043238ecb83b60f72411 libcpp/errors.c b62996586102f22e21bc24f9364e7d61 libcpp/expr.c dd718fc56f7969f5a617b91ac5bf2ff3 libcpp/files.c @@ -30710,39 +30924,55 @@ 92589a2bbd9d3976bb4f98fe68d76232 libcpp/include/line-map.h 9c8b622d48414f97ec94d549a9d14052 libcpp/include/mkdeps.h 3f1b3455fbec4787e7270a57db2fffd3 libcpp/include/symtab.h -f5a0221d2bc10a25f6171cb0ba30ff33 libcpp/init.c -d4193204f65d29d924841522ad9fae5a libcpp/internal.h -6bd9343933568a6ba7e6448511d7df48 libcpp/lex.c +8b2f489c41a2ba60cda03e22e05bb189 libcpp/init.c +2067e7af9061ecfadaa9dab0184b5f15 libcpp/internal.h +d68dc437f9b05d2728d4aa7a15f7d684 libcpp/lex.c 37c1150401bd9917ed54b723a1fad022 libcpp/line-map.c 841b4db6b8f07563266d86b4b769ec1a libcpp/macro.c bd3ad232a81e8a65301172800949c9b8 libcpp/makedepend.c 2d45a726957f93e9ec053b644480b2e9 libcpp/makeucnid.c f35ae8ba1fd3553b47bcf87cc1730aeb libcpp/mkdeps.c -6093608308bb28f25cb7b6e63ff0cb5b libcpp/pch.c -dbcea2645eca3dd2e6edc5483d0ae6ef libcpp/po/ChangeLog +27f54e6a64816a2de073e04aeee5952e libcpp/pch.c +935e92d8edec3fdb9d392229d5afa721 libcpp/po/ChangeLog +fc5cc939e5c54692720d84af5a2a1d65 libcpp/po/be.gmo 19432f3b20d6c2f0837866cbc06f78e7 libcpp/po/be.po +54da3a45154df725cc7b7a1f2fa8cced libcpp/po/ca.gmo b4d569336eab0e4f22070870f276bccf libcpp/po/ca.po 36d79af1df9d15de9cd298f392fcd564 libcpp/po/cpplib.pot +0d7c06823a130acb2f72dc67f4b4796c libcpp/po/da.gmo 8ac76d9ba0034bb69dce1ada8e85b529 libcpp/po/da.po +24fe755590886fc283d3d28a15e16e92 libcpp/po/de.gmo 4e13f8b4d61ae83afdc5623e9d5b0657 libcpp/po/de.po +c4baabfb51de0ac580665bce7f0f0f8e libcpp/po/el.gmo bd6950d239d826f04fb613ec62deecb2 libcpp/po/el.po +62a57dd4bd17e676a869323bb894b5c0 libcpp/po/es.gmo 9688745dd4272bc6a02512037c5bceed libcpp/po/es.po +3965e5a2911ea781e6a19cbb60bb5484 libcpp/po/fr.gmo 912cea65f370cc34201190342a1b12a6 libcpp/po/fr.po +976db8eb3628d986987aae69fcf78263 libcpp/po/id.gmo 08fa81d6b9a13e9f5d7b6737f206a305 libcpp/po/id.po +0e976e23b41f2fa6420ff61c0c5863eb libcpp/po/ja.gmo 4cc5cd021e483ec50f1851075c157c04 libcpp/po/ja.po +c932c0b717bceb87674e76ccbaaf7646 libcpp/po/nl.gmo 3127cbdde445b1f1c54a43eacfb78eb0 libcpp/po/nl.po +9c1af1f323154383464feca253acf712 libcpp/po/sv.gmo 4f7d054bf3d2d6ee23bc17eb80c1a723 libcpp/po/sv.po +6d19c7418451bec3808a6cea8f1f5e8d libcpp/po/tr.gmo a79e6da4c439bac427d7a26b02c9c8ba libcpp/po/tr.po +1a270ad39e58c3a06522974dd0baf4df libcpp/po/uk.gmo 28164bca3e4582e086d1fe9b72aa80da libcpp/po/uk.po +7cdc5adad6108f360a3a7e1c3023391a libcpp/po/vi.gmo d7ff62c8c3c0b6d3fa51487f99fdc6d2 libcpp/po/vi.po +5d5d09bf017bc1dd648ae59cbfd8fb5b libcpp/po/zh_CN.gmo 723cbbdaeb0c3e6d517c8762a0c7462a libcpp/po/zh_CN.po +a9cbda96d6174b88bd0877ed66f4ed1e libcpp/po/zh_TW.gmo 4aa42a22ace50e18bf1c352d046ccec0 libcpp/po/zh_TW.po fb521a18156982ce2a50c28291c16622 libcpp/symtab.c 2273d800e9ff615659962b31233b73da libcpp/system.h 67fcd3d878017060c56219962e5e062b libcpp/traditional.c 11f204ddd01b33474c3de82de9192de4 libcpp/ucnid.h 524392c32703f6022427bf6bbdb833c8 libcpp/ucnid.tab -454e72754707633893c0677262461c2e libdecnumber/ChangeLog +bc4d7306a1d2133cf87fac7a90ee838e libdecnumber/ChangeLog db91d69aaa5063f52bcad6e8ffb8edea libdecnumber/Makefile.in fadf2817f83f012f9f3e7dfd466a54aa libdecnumber/aclocal.m4 a0ecbc50fa8e505f88a951c3c294ecbc libdecnumber/bid/bid-dpd.h @@ -30804,7 +31034,7 @@ 5659059205f642d272e5f9d4ba943919 libdecnumber/dpd/decimal64.c 245e62676fd97afc6b66736ed611da97 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h -aa6f1425b7e87c861e56a51c2141ec71 libffi/ChangeLog +3fbad274591f523d59f85988ccc2e9ad libffi/ChangeLog fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 085f9917800070e791f49bf4733e23fa libffi/LICENSE @@ -31006,7 +31236,7 @@ 92f1548985e720c30797e9e403807475 libffi/testsuite/libffi.special/special.exp f66daec7c7f631f03fad7424a605034b libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc -f951dc070912bd8e7ddefe3f369fc55c libgcc/ChangeLog +644d525e2eac2b11bb3011acf99b9545 libgcc/ChangeLog ff55ad4dde97e7076aad7016505db695 libgcc/Makefile.in f64c32aad25e9b04e007e11b2993e5f0 libgcc/config.host 4d2e967f3d00f422f15be583a4ca4881 libgcc/config/alpha/t-crtfm @@ -31037,7 +31267,7 @@ 721bfee787d81d97c021d28b97dc3415 libgcc/config/ia64/t-ia64 53a2b9e67710b0b8f02e3e3316cd4482 libgcc/config/ia64/t-softfp-compat 45cb97bd14177f2d809994a800675ceb libgcc/config/ia64/tf-signs.c -2ac98a6c07004db5b17ceff561d317e7 libgcc/config/libbid/ChangeLog +f4662b8a8ec94f2b1303b96d7c4b814e 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 @@ -31211,7 +31441,7 @@ c326222d0001569c09d987898e433cee libgcc/shared-object.mk e46c2a78dca584dfd7a4b4673666ab86 libgcc/siditi-object.mk 4f944647ef4ccaaaf9bb117b88d3cfd8 libgcc/static-object.mk -342e6fd56d283639e411f1777c34b2e4 libgfortran/ChangeLog +80340ce88e5ab05343268c932111dbef libgfortran/ChangeLog 2c771a7b083f9d4ba381a572d357758a libgfortran/ChangeLog-2002 67e64c8bcbf53773807721aeb4785c9e libgfortran/ChangeLog-2003 9d1927b41c85e097fe773c06a3229dba libgfortran/ChangeLog-2004 @@ -31758,7 +31988,7 @@ 503af06de7cc270a1b563b08f3a95070 libgfortran/intrinsics/malloc.c ebb9e97949249543f4909d2c772af60f libgfortran/intrinsics/move_alloc.c a3aba6768685eb60b36e12da1a5ab2a4 libgfortran/intrinsics/mvbits.c -2c3674e505a2ee867b4e5b5f7ddc1c4d libgfortran/intrinsics/pack_generic.c +dadf6eaa828ee7284c891884ff21036a libgfortran/intrinsics/pack_generic.c 483e9a3be1d1166392875ba7f4983fd1 libgfortran/intrinsics/perror.c dc8883d44bd54ed242d46008e42fbea2 libgfortran/intrinsics/rand.c 922e2646c9297cf1d2009c67a876514e libgfortran/intrinsics/random.c @@ -31796,7 +32026,7 @@ 7bc93382a79c7a6ec7499ebbdf333834 libgfortran/io/open.c 5965e452ed45cc03d1f719b61f94a385 libgfortran/io/read.c 040e81da2aa94c975d261ab697d7f2d1 libgfortran/io/size_from_kind.c -9e038b2fecf56864a3d9c23ccc69447d libgfortran/io/transfer.c +6bb6091efe841312f3913d7e85f240ff libgfortran/io/transfer.c 2d7cab0c200f88072a76cb9db85307d1 libgfortran/io/unit.c a9158466d82612d4b572636ce1af5cf0 libgfortran/io/unix.c 76a373fbeaa5a92f45721e26a5923299 libgfortran/io/write.c @@ -31863,7 +32093,7 @@ 7abfa5ebb9488b9ae9fda8bb9aa388e9 libgfortran/runtime/select_inc.c 167f1718b833039909bb6da7cb5b0dae libgfortran/runtime/stop.c feb49d9c3840163547cc8b4824eff95d libgfortran/runtime/string.c -e44465ee438a7c07479bbb5d4409802c libgomp/ChangeLog +8580abf4fb427369baf406fa2e47e8c7 libgomp/ChangeLog a957fa342ad14a799be6ec12665a02f2 libgomp/Makefile.am 6582e01473d0fdc94fb3f0e3a602735f libgomp/Makefile.in e271ea66cfb75eb496bd2ab072faf5e2 libgomp/acinclude.m4 @@ -31921,6 +32151,7 @@ acc3925b8f43fb985313663c30103701 libgomp/iter.c cf8a700a297d5418b1a70e667db6d660 libgomp/iter_ull.c 58f614974a58d0fe0d3526f923dfe827 libgomp/libgomp.h +5f031b0b5aa3f650a0cd2cb8016e246d libgomp/libgomp.info 6d09628d0d1ec45377b20f3e3391395b libgomp/libgomp.map 591ff20dfd2b81e3c919249b5db8a967 libgomp/libgomp.spec.in c6e20f2bcf9c5b57cf8e597f1f11bbf5 libgomp/libgomp.texi @@ -32121,6 +32352,7 @@ bc3be9337646882bc8533bbbc9f01dd6 libgomp/testsuite/libgomp.c/pr39591-1.c 493a1e8c69b49b1ea3ddb5ced9d0cca3 libgomp/testsuite/libgomp.c/pr39591-2.c 29fe07764851d55e5c590ddee1bdb8bb libgomp/testsuite/libgomp.c/pr39591-3.c +006c9241a06131d8b1ad87c0a7a58349 libgomp/testsuite/libgomp.c/pr42029.c ea7c9e74bda402b1663a903b26400fab libgomp/testsuite/libgomp.c/private-1.c a594cebdf052900dd0c8792068e14d85 libgomp/testsuite/libgomp.c/reduction-1.c 6a724210e4cb30df7ade4ef7ee0aa83e libgomp/testsuite/libgomp.c/reduction-2.c @@ -32226,6 +32458,7 @@ f62843db618435c4a27dcdfd8dad30be libgomp/testsuite/libgomp.fortran/pr33880.f90 d3204f7410dc2cb6ed750bb1227fd13c libgomp/testsuite/libgomp.fortran/pr34020.f90 ddd13da7e261528309013b3a49c05bca libgomp/testsuite/libgomp.fortran/pr35130.f90 +03980b5e2b32747cdeb7042e049e8ee9 libgomp/testsuite/libgomp.fortran/pr42162.f90 f7a52f7caa9a62d15b0f1270dc461c08 libgomp/testsuite/libgomp.fortran/reduction1.f90 0afa716c312eb72430b0e7e942b66c76 libgomp/testsuite/libgomp.fortran/reduction2.f90 a1f50325f7d8b04ac3e9b9f7a0baf64e libgomp/testsuite/libgomp.fortran/reduction3.f90 @@ -32257,7 +32490,7 @@ 10994954f2e9828dd2a982c245ff4a59 libgomp/testsuite/libgomp.fortran/workshare1.f90 66ffa69cccfc856bc101f397c0632b69 libgomp/work.c a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB -0dd2b263ba84f147944ea0c69f678c8a libiberty/ChangeLog +a3731da79a6e86f558ab14ca0e70523b libiberty/ChangeLog 5d7d26fcf11db09a97b1dc5814d59dcd libiberty/Makefile.in 294191545dc71f5ad13229b0a5bfd7b1 libiberty/README 8797cb1a6faa84f3c7fe3d12164a4b13 libiberty/_doprnt.c @@ -32395,7 +32628,7 @@ 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c c6e7ef53b4ff115a136d917511222656 libiberty/xstrndup.c 94d55d512a9ba36caa9b7df079bae19f libjava/COPYING -2780819a068a8fe928a053a715c923de libjava/ChangeLog +569ad86a5a6bba80e51abda5d80a080b libjava/ChangeLog 03e1f38b916604fdf1470238201325f3 libjava/ChangeLog-1998 691acb61fbd6a2235826ff55db5578be libjava/ChangeLog-1999 b58c6701706771a02bf00a77666941ef libjava/ChangeLog-2000 @@ -32409,8 +32642,8 @@ 7fdd9a738a81ed094c679bcffc0cd9e2 libjava/ChangeLog-2008 1cb331bff490ae09303ec8f39f4a33a0 libjava/HACKING e6044391ca5876bd430bc51e9e144cf6 libjava/LIBGCJ_LICENSE -d58503a64ce68083fd8e600f695912dd libjava/Makefile.am -00c4cdc3e044e2b853f0418e9eb0002b libjava/Makefile.in +8a0dadc43dc62e551d72c54c2293c947 libjava/Makefile.am +fe1da90119be3770e5afd8e93479de45 libjava/Makefile.in 9dd432872e3bbb6e7cd07279a4a71baa libjava/NEWS b8af03ff64b9879992c9382503d9910e libjava/README fcab9c26cd6f539addaab81491b62c25 libjava/THANKS @@ -32431,14 +32664,14 @@ 880a25226e4e4e4c241663041d24f8dd libjava/classpath/AUTHORS efd97e0bb913655e0c8b16fa78bdded4 libjava/classpath/BUGS af0004801732bc4b20d90f351cf80510 libjava/classpath/COPYING -a6f27e5b580de61ae08aa014f192785e libjava/classpath/ChangeLog +293a60a8d9998ba6caa1c1e868d19c44 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 -4449af948449d600a55962e379438827 libjava/classpath/ChangeLog.gcj +11bbe2f7fc59af488258283113ffd222 libjava/classpath/ChangeLog.gcj a09dff495a9043fcf7b463f0b5c4fdd6 libjava/classpath/ChangeLog.gnujaxp.1 3353fabfae7cca9e6c4f821919e4275c libjava/classpath/ChangeLog.gnujaxp.2 b35964059a02f01f39b05a95b401f586 libjava/classpath/ChangeLog.libxmlj @@ -32468,8 +32701,21 @@ b343eec566430e85d1f95c21438aa4ee libjava/classpath/doc/api/Makefile.am 179ea612146ae215bc3e7790ab2369e4 libjava/classpath/doc/api/Makefile.in 063a948da1da1787e5ad8af8cd260ffe libjava/classpath/doc/cp-hacking.texinfo +2d1b2903c2dd2210bb1c346f5fd65a7e libjava/classpath/doc/cp-tools.info 2f9243a9d8681fb57cfc14ea3839b38e libjava/classpath/doc/cp-tools.texinfo 3155d9bd9a7bf4aff2ff0dfe4a2cb878 libjava/classpath/doc/cp-vmintegration.texinfo +348b011d2b01450c8c34d6ee21c3218d libjava/classpath/doc/gappletviewer.1 +ba353bbb5a462f61c71e5fde904da1d9 libjava/classpath/doc/gjar.1 +f7686ab04139aa51c780e08be8ff3ab2 libjava/classpath/doc/gjarsigner.1 +9fc9ff6fb98c43f602a3e56a1d82ef33 libjava/classpath/doc/gjavah.1 +8f0b811a6f7df8d35466905e329af44d libjava/classpath/doc/gjdoc.1 +431cef4f42284cefdeb2c70eb1ea3777 libjava/classpath/doc/gkeytool.1 +ba3eb343515ff5e77dc734c81af1fe23 libjava/classpath/doc/gnative2ascii.1 +4aa9e773e3ad33571409318c561cae7f libjava/classpath/doc/gorbd.1 +5cd53ad19cb8392e190253f95e4c61b7 libjava/classpath/doc/grmid.1 +d7625552ed9270b39fcf8535aa2daf78 libjava/classpath/doc/grmiregistry.1 +390cd2d31581e1c34ee1dba77e2451ee libjava/classpath/doc/gserialver.1 +94a3a000d00a88ada6fd15cc826ae8cf libjava/classpath/doc/gtnameserv.1 7e4e31659df1c7e815f9151958dceef2 libjava/classpath/doc/texi2pod.pl 55dea7a47b6450cdcb103c76295441bd libjava/classpath/doc/texinfo.tex b1e0c0c30547d57d7a09b04d47c70b06 libjava/classpath/examples/.cvsignore @@ -33717,7 +33963,7 @@ 86638bd1b02c7d9605de394fb2ad3c06 libjava/classpath/gnu/java/rmi/dgc/LeaseRenewingTask.java fa12c4fcacb3fa147ead2cde47a63290 libjava/classpath/gnu/java/rmi/dgc/package.html 628463e5efd1216488ad4320938e84f9 libjava/classpath/gnu/java/rmi/package.html -cba408aca503d8bfb73c07f13ace4517 libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java +a1ce62c935b9032ce1be878500aa3c15 libjava/classpath/gnu/java/rmi/registry/RegistryImpl.java 57146752cb5e2ed5297e552e38ccbfe5 libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java 44962b9314f70c5d9bcd2bece9d23717 libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java 8527bcff2ebf8c8055492fce0ece4eb9 libjava/classpath/gnu/java/rmi/registry/package.html @@ -38187,7 +38433,7 @@ 9fbfb7100cbc41cce5240e1ddd6f9630 libjava/classpath/lib/gnu/gcj/convert/BytesToCharsetAdaptor.class b9ecae57cf513f1846e332b6c41b9355 libjava/classpath/lib/gnu/gcj/convert/BytesToUnicode.class 6a43fb30e64eaaca048e58cdd5ddfb36 libjava/classpath/lib/gnu/gcj/convert/CharsetToBytesAdaptor.class -a2cac7866a3a5e96edced31bc0ccbe72 libjava/classpath/lib/gnu/gcj/convert/Convert.class +2283dee93a997b870ce87b2df94cff17 libjava/classpath/lib/gnu/gcj/convert/Convert.class a9c7da858cbfaa9162b4b724f17cdc84 libjava/classpath/lib/gnu/gcj/convert/IOConverter.class 5cfff490165cc11ce86e23c47925c135 libjava/classpath/lib/gnu/gcj/convert/Input_8859_1.class 90b6fbb7d341d8a19e3800f3c04d986b libjava/classpath/lib/gnu/gcj/convert/Input_ASCII.class @@ -38229,9 +38475,9 @@ e70e3814406537957c62dd0b579e6aae libjava/classpath/lib/gnu/gcj/runtime/SharedLibLoader.class d14390155af90356eab7e7d20adc7f72 libjava/classpath/lib/gnu/gcj/runtime/StringBuffer.class 6b6c5f6b682a1c449032521c7660562a libjava/classpath/lib/gnu/gcj/runtime/SystemClassLoader.class -c0f415bf74016841b19267413bc0f57c libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class -8fb141e389644aa084137156b8fe7198 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class -fbb95d615ca9a00012c685a0f8dabe18 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class +b3df2870e47bcb8818bce00655b3d6d6 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class +da213c334bd942de066fd87f4db15764 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class +aef32ba9ee95445e4d50a544f6c54311 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class 026d19df1b27caba793813e93ead5a63 libjava/classpath/lib/gnu/gcj/util/Debug.class 2186748295875dfc9c5f8985ae38b509 libjava/classpath/lib/gnu/gcj/util/GCInfo.class 785ed27f069e17d8e1f80e8c953f30ac libjava/classpath/lib/gnu/gcj/util/UtilPermission.class @@ -38871,7 +39117,7 @@ 808f806e10f971a5616b2fabc18e2f5f libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Stub.class c746d98a854ee8e9807f760ef5623aab libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.class fdec72cb789255f4996668861120995e libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask.class -861478df779cb72efb9fa58985f99d53 libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class +1d5b8ae6f2214f467c78efaf3774e281 libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class f72d6d0de7c544f970ab0c33e9b0e027 libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Skel.class 682bd6038a52dbbd299e1049f5da73b8 libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Stub.class 088910184c842e2e06cdcecf28af3fff libjava/classpath/lib/gnu/java/rmi/server/ActivatableRef.class @@ -46818,7 +47064,7 @@ 94c5d243f04c9eb6e3854a4fa14152f2 libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class 7e816acd4f3c85baf223f36ffa60abaf libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class de4e6c3743bbc5763cfef7552e1f628d libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class -a3a12857829f1739f08180d611a1c599 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class +c22245cb46f366aefaa046a721622f2e libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class 031f5ba01b2e9bda33358b77e1336343 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class b599738d0dd4ac021573209bd7fcec2b libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class 830a32e8facc3c6050c47066151bee17 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class @@ -47031,7 +47277,7 @@ 7dafd7a18566eef01f66ac2d16e42bb1 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class 2c5952b6a5728d50e1de22b39e1252ee libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class f584b3f9bd9ad01dfcece71fd7020bea libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class -1c653628c29832b7a5616f6c0d3bf3c5 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class +abe858025b30b2ed6c171bd03059688f libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class a6411a773eedb34fd8960481d107f261 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class 128ffbfde1dfac0b4864585db51c8406 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class 9aecde5aee5c51ffcd2a0bc0aacf7262 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class @@ -47448,7 +47694,7 @@ eb821739ddff280b86697703195ea8a4 libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java 43b28c257ca19ff3ad25fba24263593a libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g 196fb40135fb2cada9bc59ae26016be2 libjava/classpath/tools/gnu/classpath/tools/jar/Action.java -d181333b1cdcc801bd250dd6c471d366 libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java +290102aff8889209539cdcc357a390c4 libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java db4e6a775f7ab0b30c19e8959748df59 libjava/classpath/tools/gnu/classpath/tools/jar/Entry.java 294034838869f105c36b15a6a9904b6b libjava/classpath/tools/gnu/classpath/tools/jar/Extractor.java e2ab112406bbe7da3d29b2a1b2184298 libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java @@ -47499,7 +47745,7 @@ e02210265d5903aaae97c2ac3353e46f libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java 2c8a980dc7ba6226f9b52a96c89ff01c libjava/classpath/tools/gnu/classpath/tools/native2ascii/Messages.java a9e9c87a97748106830cfa57b168578b libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java -6b2105b3c3821bdf22a1fecbde87eea8 libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java +76841048c465f306e3e7d468bf9b3d5f libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java 43391bef5a45ee6b355ff62eea01da4f libjava/classpath/tools/gnu/classpath/tools/orbd/Messages.java 1f38526007f19aea2e8812a0e5e4f39a libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java 3f5a822c50c0880f5c0550709bf57528 libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java @@ -47704,9 +47950,9 @@ 851fa7c60828ad1f1741ff4abdd6e4c2 libjava/classpath/vm/reference/sun/misc/Unsafe.java d8b9d62b3d4b77c2c9db9a8dd775afbf libjava/classpath/vm/reference/sun/reflect/Reflection.java df8921743087523404a2b30bdb83d3a6 libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java -0a728766628f8493c9982755ed42a54f libjava/configure -da8a50ab6a480b924e6b6532eba7f876 libjava/configure.ac -755dfad0479c8fb61fc187f0317af4e5 libjava/configure.host +8c6a7a7c3970dee3cb301dd710ec77d4 libjava/configure +6decd8c73806086d3caa382d8ecf2189 libjava/configure.ac +c093e2cd85abcf74ae46b3ca286a40e7 libjava/configure.host 012f2a1247de717e81d230f40da5bd94 libjava/contrib/aot-compile-rpm.in 3e89d242a7180e4fcb6d15eb171cae47 libjava/contrib/aot-compile.in 87106cfa22f791315a2a576399368d1d libjava/contrib/aotcompile.py.in @@ -47718,7 +47964,7 @@ e1dd1714c23cee8198d9b019d6f811e3 libjava/ecjx.cc 536f043fca86f336bd8c128d137b5606 libjava/exception.cc 554b018d0c459bbb31eb8dc86896eeda libjava/gcj/Makefile.am -bff6719fb6dbcb6364762fadf1ad6e09 libjava/gcj/Makefile.in +5b806ab3595f9aa1ba9dc00b4a0afbbe libjava/gcj/Makefile.in 94b9871091f1caff9dc28dce6439c7dc libjava/gcj/array.h 361e9d926f9533fff97836fc99ee52b3 libjava/gcj/cni.h f6fc5134d10d4b2698dff502db24af65 libjava/gcj/field.h @@ -48145,7 +48391,7 @@ e91c5c3f6d6462461a985ee46423319d libjava/gnu/gcj/convert/CharsetToBytesAdaptor.h 460fe9ada19f2dc0064e81f41f3545b0 libjava/gnu/gcj/convert/CharsetToBytesAdaptor.java 0cc8fa72a87d012f2d58c4b79b7c3e95 libjava/gnu/gcj/convert/Convert.h -4de28c47511d905b7ea2eeede3b870e4 libjava/gnu/gcj/convert/Convert.java +1c8413961e9ad6894e7adb23cf26f773 libjava/gnu/gcj/convert/Convert.java 136c65b2bcafceb8820a5990a5ee75fc libjava/gnu/gcj/convert/IOConverter.h 4ae64ac08a0fbed71405149f348a40ec libjava/gnu/gcj/convert/IOConverter.java a403e96541c7f08209ac036379815d13 libjava/gnu/gcj/convert/Input_8859_1.h @@ -48257,7 +48503,7 @@ 6a5c841070ac388f85fce19ce5aec854 libjava/gnu/gcj/tools/gc_analyze/ToolPrefix.java 6e78705ef5316337e414410aba345b77 libjava/gnu/gcj/tools/gcj_dbtool/Fileset.h 98f5cc4daa7dd8aa6e418a8fc43a6146 libjava/gnu/gcj/tools/gcj_dbtool/Main.h -57a2a4b442f63e933a4658625ef90d4a libjava/gnu/gcj/tools/gcj_dbtool/Main.java +c0985a57ec5efa89b47332310e8cf55e libjava/gnu/gcj/tools/gcj_dbtool/Main.java 9d75607dfec9b4810b654d155a02280b libjava/gnu/gcj/tools/gcj_dbtool/Tokenizer.h 1e7304d93092e980b91d800710886306 libjava/gnu/gcj/tools/gcj_dbtool/natMain.cc e9b037c9a3df3452bac2acace5d58fb6 libjava/gnu/gcj/util/Debug.h @@ -50704,7 +50950,7 @@ 3d72c41093f7a605ae7315ee7fd78217 libjava/gnu/xml/xpath/XPathTokenizer.h 8382aa7b5668dea930cacd8956f2b9b4 libjava/headers.txt d1b32c1999cfbaeb6ae23068c6b6144a libjava/include/Makefile.am -a0ca4f6d1c1a8bcc8b03b4e97b4d44e5 libjava/include/Makefile.in +487e796567027e2fea09f0ade8eee8da libjava/include/Makefile.in ba8fe1332300bd95cde61471b47b0f8d libjava/include/aix-signal.h 9d245167fa6bdf39d6c252734667821a libjava/include/boehm-gc.h 2355dfd8c8bb77e902ea72d2f13a675d libjava/include/config.h.in @@ -50731,7 +50977,7 @@ fbf7d330568bdaa7a956babb35183cf2 libjava/include/no-gc.h 7b87be72c28e8b06735a01a042f101bb libjava/include/no-threads.h 8de1c85740456c7a7de765e3c50522ef libjava/include/pa-signal.h -d758259bffaf054737493c8e0ae4b49e libjava/include/posix-threads.h +9cba5a995083029c95d293573fa74681 libjava/include/posix-threads.h 834bc90d74c0a2b600343975f21fa703 libjava/include/posix.h 39567a786a96e4caf11e79958c9c6478 libjava/include/powerpc-signal.h 6869fd746eb8c3dad811ceaa6bc10054 libjava/include/s390-signal.h @@ -54661,19 +54907,19 @@ 13fc127864a775b5feed8f9c90cef50f libjava/libgcj.ver 76464737aa7df6509d1446b5716a4c51 libjava/libgcj_bc.c e3eda01d9815f8d24aae2dbd89b68b06 libjava/libltdl/COPYING.LIB -2c17d75867fb4b8682f4c8d5abce594f libjava/libltdl/ChangeLog +3eaecd7297add52677af9e8925e77c6d libjava/libltdl/ChangeLog 687405b58bc7fffede3a92c2d9d39bcf libjava/libltdl/Makefile.am ac1431b3e2aa810ce3be72c06d06302a libjava/libltdl/Makefile.in 36da24f9facf00b349ea10dba3789d92 libjava/libltdl/README -db91afe05ac1d479b2ee5cd21f05dd29 libjava/libltdl/acinclude.m4 +7faa29e2f82bf6114ec1421c3f4c7b24 libjava/libltdl/acinclude.m4 6f9097b7a1a805c805e9fcefcd50545a libjava/libltdl/aclocal.m4 e2d25814a3c4fd5f7012cc69279fb3d2 libjava/libltdl/config-h.in 953749bade5256db32886b5353f73cab libjava/libltdl/config.guess 953749bade5256db32886b5353f73cab libjava/libltdl/config.sub -e1cfd696e383152a04dc97c2bf796846 libjava/libltdl/configure +1b30ce8d30a2deccf70108a753281487 libjava/libltdl/configure e17c3795014a8ee8e24090232e3a2697 libjava/libltdl/configure.ac 6b5362c8cc3aeec08dd77f5c6a6a4413 libjava/libltdl/install-sh -f6fb18c6104a3e7b903277ebcedaf291 libjava/libltdl/ltdl.c +176a06373e6b281a5695641efa8724d7 libjava/libltdl/ltdl.c 54e9ba8ad6a836a4cf9f15c3f46c5891 libjava/libltdl/ltdl.h d9b96a9dd641c4279a9e40e18998f632 libjava/libltdl/ltmain.sh fd5dd60aa8cefab9462677280ea74a61 libjava/libltdl/missing @@ -55432,7 +55678,7 @@ 59d1d8acc4bee54bd001d76c45abb268 libjava/org/xml/sax/helpers/XMLReaderAdapter.h 1ac85ce766f7c0195f78ea0156116e9a libjava/org/xml/sax/helpers/XMLReaderFactory.h 8bc9c6be20df8421c1a687421fbfde85 libjava/pkg.m4 -f21cfdee46cdc9a41d36744ef3575688 libjava/posix-threads.cc +4a6d192c09f714cf2549ae69eabc45ca libjava/posix-threads.cc 988741ff03c71aa76b896742aaffe296 libjava/posix.cc dd4f077e47c841813f6a29774188cf15 libjava/prims.cc e78ba84d733731034a4ed9d7245ce3b4 libjava/scripts/MakeCharTables.java @@ -55491,7 +55737,7 @@ 23b3bf981ed61b4c51ed381663f63809 libjava/sysdep/x86-64/locks.h bd41c02d42e4fcef561d88d14c49efc4 libjava/testsuite/ChangeLog-old 6a7dcdca006d7e1796913ce5517285c5 libjava/testsuite/Makefile.am -34286e1a0fff278625f85517e240c1c7 libjava/testsuite/Makefile.in +4a80aac64d8c7531a2cd66cc32ca66b4 libjava/testsuite/Makefile.in dce80ba7e038ca18591aabc6d3d2582c libjava/testsuite/config/default.exp 543ac3db77faa6a50903998fa552e1fe libjava/testsuite/lib/libjava.exp 5bc5f3c2b92712d89b8fa8d99293ad20 libjava/testsuite/libjava.cni/PR9577.h @@ -55595,7 +55841,7 @@ 7dcec6a8b9696aa1880f5eb5b4c4fade libjava/testsuite/libjava.jni/invoke.jar f7b0b30783fc45050cda4c538d6ac815 libjava/testsuite/libjava.jni/invoke.java bef8cafe5513c6677e1d68b5123f7244 libjava/testsuite/libjava.jni/invoke.out -6c4af1e6463ddadf2d16817f5b18f6f7 libjava/testsuite/libjava.jni/jni.exp +3f15feb7745a897a749fb835fbbf3e29 libjava/testsuite/libjava.jni/jni.exp 30671cc206534ecc057603b5591e34f9 libjava/testsuite/libjava.jni/jniutf.c 49372dd6e2998c930819c439fa871efa libjava/testsuite/libjava.jni/jniutf.h ea2ac531f4570fcb90b985de73aecec4 libjava/testsuite/libjava.jni/jniutf.jar @@ -55696,8 +55942,8 @@ 5f206d49450b97eaff0f0e510ea7c012 libjava/testsuite/libjava.jvmti/interp/natgetargssize.cc 1bf9cb33f0e0fa0f81af2945a3109917 libjava/testsuite/libjava.jvmti/interp/natgetlocalvartable.cc b512a8c00b96f4407cc204bbf8e4b00a libjava/testsuite/libjava.jvmti/interp/natgetstacktrace.cc -63218bab6eae3556a7bd7fa31e9ae452 libjava/testsuite/libjava.jvmti/jvmti-interp.exp -2d31cb82adc6eb258eb5866f525770b7 libjava/testsuite/libjava.jvmti/jvmti.exp +0b8382e3c421aa31ea93a75787cc0e3c libjava/testsuite/libjava.jvmti/jvmti-interp.exp +422e85c1351cf7855e6547f7b7c574a7 libjava/testsuite/libjava.jvmti/jvmti.exp 5ecb03fe1e421f5783d3ce1326bc80de libjava/testsuite/libjava.jvmti/natevents.cc 7869eab26b1e88b29d90114e48fdbbec libjava/testsuite/libjava.jvmti/natgetallthreads.cc 3fdb3abeab7e0a48ea787bd56a16b22d libjava/testsuite/libjava.jvmti/natgeterrorname.cc @@ -56355,7 +56601,7 @@ 434ac04eb066f5075299583492846410 libjava/verify.cc 355440a0c2fb5e16259d7ae381b37ed5 libjava/win32-threads.cc 434d5e5e91727dec004f0d1d1fab47ec libjava/win32.cc -adace5ecf9de0797d6bc90c1a7277ead libmudflap/ChangeLog +7176429a05730deb44176f91cf58781d libmudflap/ChangeLog 6d4defe09ae6115619c10f3496c4ab64 libmudflap/Makefile.am 39b46b84ef49309117e8d0d20e6571f8 libmudflap/Makefile.in 9883ed42b491d8aea83fdde90561cf2a libmudflap/acinclude.m4 @@ -56369,7 +56615,7 @@ 8a5b8b8aa7f00933ce106a9bc195afd8 libmudflap/mf-hooks2.c 396ef46979ed2d86d47fcb9544eb7f0d libmudflap/mf-hooks3.c f580104b7c64d5ce7b2c66d11827c45f libmudflap/mf-impl.h -da48626c14969a0b64ba44a1421c3e2b libmudflap/mf-runtime.c +b09e2466c023d930165dc0b0ef021c4e libmudflap/mf-runtime.c 105da97de539d731d901a5e64f821c3d libmudflap/mf-runtime.h 8f93cea3023d6f4d27e295ebcc0eef13 libmudflap/testsuite/Makefile.am 3192d37e18d1fdf55d65f1cbf44a0541 libmudflap/testsuite/Makefile.in @@ -56498,7 +56744,7 @@ 9c6e0ee7556df21372ba89fcb2612d17 libmudflap/testsuite/libmudflap.cth/pass40-frag.c 725a94441658e42a6adf2add0a0a419d libmudflap/testsuite/libmudflap.cth/pass59-frag.c 60168171460c9277504005955b1ea1b8 libmudflap/testsuite/mfconfig.exp.in -0299e4487ecad745975fc4d6fdb00db8 libobjc/ChangeLog +0287e092b4548984d5d52be6de99db26 libobjc/ChangeLog 41023a63330b3f3df8d84a9f53f51144 libobjc/Makefile.in c29f84b3cc952e29b58505493f5a83d2 libobjc/NXConstStr.m 989107befe0f3cbd2cdcf09c37efd3f1 libobjc/Object.m @@ -56556,7 +56802,7 @@ c90ce33066aad1708a9e1982519b72e6 libobjc/thr-vxworks.c 6236bc1c75de340fddb7f419e3b7ec36 libobjc/thr-win32.c fde3505ce0d880daddfed519e0f248a8 libobjc/thr.c -6cbf06fa7395e41992f6398957bcc39f libssp/ChangeLog +2fc870f4a772da49adc3bb34acdd24d5 libssp/ChangeLog 8ba45911491ce4f2901104def2a4910b libssp/Makefile.am 10621bd0b0e1fc57827c748dc30af8fd libssp/Makefile.in f7d347e8ca11532917d54d715bb150f7 libssp/aclocal.m4 @@ -56585,7 +56831,7 @@ e9ab923d2562bf5f5be6883dfb9f0184 libssp/strncpy-chk.c 5e0d8b8a766c31b12354baec1b7a159c libssp/vsnprintf-chk.c f56ab1f8922a16f7e9e4f5270ae1e34e libssp/vsprintf-chk.c -361452c52976d26ab514ed8bc005a099 libstdc++-v3/ChangeLog +5b0ac03b99138eab999915b93c288728 libstdc++-v3/ChangeLog 0cda0576312959181333fb6113d11fca libstdc++-v3/ChangeLog-1998 2ae7a1f1cc67620a3493cac4ec7a49d4 libstdc++-v3/ChangeLog-1999 7b42e2258fc86c55d4a1196c3073f514 libstdc++-v3/ChangeLog-2000 @@ -57257,7 +57503,7 @@ 121be170ea40bcb05b177ef58655fef8 libstdc++-v3/include/bits/algorithmfwd.h 9a6a2721fae3eaa7fbe5d67ae3a36bfe libstdc++-v3/include/bits/allocator.h d00353532a8e75dec2301713f0356a7e libstdc++-v3/include/bits/atomic_0.h -9ab5a48f08bdefb07812c987d37de10d libstdc++-v3/include/bits/atomic_2.h +afdb49ac961d8800fc4d9ec4c618c3e3 libstdc++-v3/include/bits/atomic_2.h d9d31baff2efff4e9818c477ec7436b9 libstdc++-v3/include/bits/atomicfwd_c.h ef99e4293c1fcf8536f0e01d1fe50ad4 libstdc++-v3/include/bits/atomicfwd_cxx.h 8978919ef26198df76b94dd259804d43 libstdc++-v3/include/bits/basic_ios.h @@ -57764,7 +58010,7 @@ 3f0e45dca39b07cca44a7f97636efea0 libstdc++-v3/include/parallel/list_partition.h ed79eb2ff6648b2abdef24b3cbbeb36f libstdc++-v3/include/parallel/losertree.h d2c0d31e7efc29841f415837e6bc0278 libstdc++-v3/include/parallel/merge.h -6263dbfc48d326b37f2a645e0f87d949 libstdc++-v3/include/parallel/multiseq_selection.h +c8158589f00560ad63812d54820d6e1d libstdc++-v3/include/parallel/multiseq_selection.h 8e66edf75be54a8554e8d555e3465a68 libstdc++-v3/include/parallel/multiway_merge.h bb51f618599616078add29923c065904 libstdc++-v3/include/parallel/multiway_mergesort.h 8c6272e2dfe51f7cd8f946838f47e170 libstdc++-v3/include/parallel/numeric @@ -57774,7 +58020,7 @@ f908068a8832b9214aa74e9e09ad2a84 libstdc++-v3/include/parallel/par_loop.h 2ac62f2b0a5cd483f0bdeaf744a1e087 libstdc++-v3/include/parallel/parallel.h ec464b1e94e5724ef85b88bd90e01388 libstdc++-v3/include/parallel/partial_sum.h -28a174293d103011b2473b0f3ae5643f libstdc++-v3/include/parallel/partition.h +3207ebf84b17d91fbc6b77aaafe0ecbd libstdc++-v3/include/parallel/partition.h cff0a5f1ef326e5d629e5f48c8067803 libstdc++-v3/include/parallel/queue.h 93d73f6d63d183b6fae59863333f2b6b libstdc++-v3/include/parallel/quicksort.h 451082e2991d4c70f7e7ee577a24661c libstdc++-v3/include/parallel/random_number.h @@ -62069,7 +62315,7 @@ bc2f6032c98896249eadb56177c7d357 ltsugar.m4 8ad9271cd6f868874ffff4223e2ff0ee ltversion.m4 13eeb5a2026d18ffe6428827fc7ab406 lt~obsolete.m4 -f81b2a88ba23dfd350e25271164a3671 maintainer-scripts/ChangeLog +693dccb886244086cb6451eb70f7b83b maintainer-scripts/ChangeLog 9bf52719995189b7572953a25ad202ed maintainer-scripts/README 907b1fc4a36a43358b745c52de228fc7 maintainer-scripts/crontab 118ebfb07a175579a51ec5b1030d7e8d maintainer-scripts/gcc_release @@ -62083,7 +62329,7 @@ a20215c156b06261d944ae7f30a3b75c move-if-change cf2baa0854f564a7785307e79f155efc symlink-tree e0a5f7e59d19edfd4b4d26479a141f02 ylwrap -f37c4607573a65c5de4b91bc7882571b zlib/ChangeLog +747f74bcfe187b026e778a2d5bb8837c zlib/ChangeLog 85fcf93ac4aa5b30b63f2f4bb3f654a3 zlib/ChangeLog.gcj 2f46720fda5ab68a1e495009895d874c zlib/FAQ 8851ace55681b1664d97c045d71e339b zlib/INDEX diff -r b85a337e5837 -r 3bfb6c00c1e0 NEWS --- a/NEWS Sun Feb 07 17:43:48 2010 +0900 +++ b/NEWS Sun Feb 07 17:44:34 2010 +0900 @@ -8,21 +8,27 @@ http://gcc.gnu.org/gcc-4.4/index.html GCC 4.4 Release Series - July 22, 2009 + October 15, 2009 The [1]GNU project and the GCC developers are pleased to announce the - release of GCC 4.4.1. + release of GCC 4.4.3. This release is a bug-fix release, containing fixes for regressions in - GCC 4.4.0 relative to previous releases of GCC. + GCC 4.4.1 relative to previous releases of GCC. Release History + GCC 4.4.3 + January 21, 2010 ([2]changes) + + GCC 4.4.2 + October 15, 2009 ([3]changes) + GCC 4.4.1 - July 22, 2009 ([2]changes) + July 22, 2009 ([4]changes) GCC 4.4.0 - April 21, 2009 ([3]changes) + April 21, 2009 ([5]changes) References and Acknowledgements @@ -30,65 +36,67 @@ supports several other languages aside from C, it now stands for the GNU Compiler Collection. - A list of [4]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 [5]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 [6]GCC project - web site or contact the [7]GCC development mailing list. - - To obtain GCC please use [8]our mirror sites or [9]our SVN server. - - Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There - are also [11]other ways to contact the FSF. - - These pages are maintained by [12]the GCC team. + 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 [10]our mirror sites or [11]our SVN server. + + Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There + are also [13]other ways to contact the FSF. + + These pages are maintained by [14]the GCC team. For questions related to the use of GCC, please consult these web - pages and the [13]GCC manuals. If that fails, the - [14]gcc-help@gcc.gnu.org mailing list might help. + pages and the [15]GCC manuals. If that fails, the + [16]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC to - our developer mailing list at [15]gcc@gnu.org or [16]gcc@gcc.gnu.org. - All of our lists have [17]public archives. + our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. + All of our lists have [19]public archives. Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. - Last modified 2009-07-22 [18]Valid XHTML 1.0 + Last modified 2010-01-21 [20]Valid XHTML 1.0 References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-4.4/changes.html 3. http://gcc.gnu.org/gcc-4.4/changes.html - 4. http://gcc.gnu.org/gcc-4.4/buildstat.html - 5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html - 6. http://gcc.gnu.org/index.html - 7. mailto:gcc@gcc.gnu.org - 8. http://gcc.gnu.org/mirrors.html - 9. http://gcc.gnu.org/svn.html - 10. mailto:gnu@gnu.org - 11. http://www.gnu.org/home.html#ContactInfo - 12. http://gcc.gnu.org/about.html - 13. http://gcc.gnu.org/onlinedocs/ - 14. mailto:gcc-help@gcc.gnu.org - 15. mailto:gcc@gnu.org - 16. mailto:gcc@gcc.gnu.org - 17. http://gcc.gnu.org/lists.html - 18. http://validator.w3.org/check/referer + 4. http://gcc.gnu.org/gcc-4.4/changes.html + 5. http://gcc.gnu.org/gcc-4.4/changes.html + 6. http://gcc.gnu.org/gcc-4.4/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. mailto:gnu@gnu.org + 13. http://www.gnu.org/home.html#ContactInfo + 14. http://gcc.gnu.org/about.html + 15. http://gcc.gnu.org/onlinedocs/ + 16. mailto:gcc-help@gcc.gnu.org + 17. mailto:gcc@gnu.org + 18. mailto:gcc@gcc.gnu.org + 19. http://gcc.gnu.org/lists.html + 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/changes.html GCC 4.4 Release Series Changes, New Features, and Fixes - The latest release in the 4.4 release series is [1]GCC 4.4.1. + The latest release in the 4.4 release series is [1]GCC 4.4.3. Caveats @@ -630,29 +638,43 @@ not be complete (that is, it is possible that some PRs that have been fixed are not listed here). - Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There - are also [15]other ways to contact the FSF. - - These pages are maintained by [16]the GCC team. +GCC 4.4.2 + + This is the [14]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 4.4.2 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.4.3 + + This is the [15]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 4.4.3 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + + Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There + are also [17]other ways to contact the FSF. + + These pages are maintained by [18]the GCC team. For questions related to the use of GCC, please consult these web - pages and the [17]GCC manuals. If that fails, the - [18]gcc-help@gcc.gnu.org mailing list might help. + pages and the [19]GCC manuals. If that fails, the + [20]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC to - our developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org. - All of our lists have [21]public archives. + our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. + All of our lists have [23]public archives. Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. - Last modified 2009-07-22 [22]Valid XHTML 1.0 + Last modified 2010-01-21 [24]Valid XHTML 1.0 References - 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.1 + 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.3 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted 3. http://gcc.gnu.org/gcc-4.4/porting_to.html 4. http://gcc.gnu.org/wiki/Graphite @@ -665,15 +687,17 @@ 11. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 12. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1 - 14. mailto:gnu@gnu.org - 15. http://www.gnu.org/home.html#ContactInfo - 16. http://gcc.gnu.org/about.html - 17. http://gcc.gnu.org/onlinedocs/ - 18. mailto:gcc-help@gcc.gnu.org - 19. mailto:gcc@gnu.org - 20. mailto:gcc@gcc.gnu.org - 21. http://gcc.gnu.org/lists.html - 22. http://validator.w3.org/check/referer + 14. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2 + 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3 + 16. mailto:gnu@gnu.org + 17. http://www.gnu.org/home.html#ContactInfo + 18. http://gcc.gnu.org/about.html + 19. http://gcc.gnu.org/onlinedocs/ + 20. mailto:gcc-help@gcc.gnu.org + 21. mailto:gcc@gnu.org + 22. mailto:gcc@gcc.gnu.org + 23. http://gcc.gnu.org/lists.html + 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/index.html GCC 4.3 Release Series @@ -681,24 +705,27 @@ January 24, 2009 The [1]GNU project and the GCC developers are pleased to announce the - release of GCC 4.3.3. + release of GCC 4.3.4. This release is a bug-fix release, containing fixes for regressions in - GCC 4.3.2 relative to previous releases of GCC. + GCC 4.3.3 relative to previous releases of GCC. Release History + GCC 4.3.4 + August 4, 2009 ([2]changes) + GCC 4.3.3 - January 24, 2009 ([2]changes) + January 24, 2009 ([3]changes) GCC 4.3.2 - August 27, 2008 ([3]changes) + August 27, 2008 ([4]changes) GCC 4.3.1 - June 6, 2008 ([4]changes) + June 6, 2008 ([5]changes) GCC 4.3.0 - March 5, 2008 ([5]changes) + March 5, 2008 ([6]changes) References and Acknowledgements @@ -706,38 +733,38 @@ supports several other languages aside from C, it now stands for the GNU Compiler Collection. - A list of [6]successful builds is updated as new information becomes + A list of [7]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 [7]amazing group of volunteers is + well as test results to GCC. This [8]amazing group of volunteers is what makes GCC successful. - 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 [10]our mirror sites or [11]our SVN server. - - Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There - are also [13]other ways to contact the FSF. - - These pages are maintained by [14]the GCC team. + For additional information about GCC please refer to the [9]GCC project + web site or contact the [10]GCC development mailing list. + + To obtain GCC please use [11]our mirror sites or [12]our SVN server. + + Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There + are also [14]other ways to contact the FSF. + + These pages are maintained by [15]the GCC team. For questions related to the use of GCC, please consult these web - pages and the [15]GCC manuals. If that fails, the - [16]gcc-help@gcc.gnu.org mailing list might help. + pages and the [16]GCC manuals. If that fails, the + [17]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC to - our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. - All of our lists have [19]public archives. + our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. + All of our lists have [20]public archives. Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. - Last modified 2009-01-24 [20]Valid XHTML 1.0 + Last modified 2009-10-15 [21]Valid XHTML 1.0 References @@ -746,27 +773,28 @@ 3. http://gcc.gnu.org/gcc-4.3/changes.html 4. http://gcc.gnu.org/gcc-4.3/changes.html 5. http://gcc.gnu.org/gcc-4.3/changes.html - 6. http://gcc.gnu.org/gcc-4.3/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. mailto:gnu@gnu.org - 13. http://www.gnu.org/home.html#ContactInfo - 14. http://gcc.gnu.org/about.html - 15. http://gcc.gnu.org/onlinedocs/ - 16. mailto:gcc-help@gcc.gnu.org - 17. mailto:gcc@gnu.org - 18. mailto:gcc@gcc.gnu.org - 19. http://gcc.gnu.org/lists.html - 20. http://validator.w3.org/check/referer + 6. http://gcc.gnu.org/gcc-4.3/changes.html + 7. http://gcc.gnu.org/gcc-4.3/buildstat.html + 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html + 9. http://gcc.gnu.org/index.html + 10. mailto:gcc@gcc.gnu.org + 11. http://gcc.gnu.org/mirrors.html + 12. http://gcc.gnu.org/svn.html + 13. mailto:gnu@gnu.org + 14. http://www.gnu.org/home.html#ContactInfo + 15. http://gcc.gnu.org/about.html + 16. http://gcc.gnu.org/onlinedocs/ + 17. mailto:gcc-help@gcc.gnu.org + 18. mailto:gcc@gnu.org + 19. mailto:gcc@gcc.gnu.org + 20. http://gcc.gnu.org/lists.html + 21. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/changes.html GCC 4.3 Release Series Changes, New Features, and Fixes - The latest release in the 4.3 release series is [1]GCC 4.3.3. + The latest release in the 4.3 release series is [1]GCC 4.3.4. Caveats @@ -1502,29 +1530,36 @@ not be complete (that is, it is possible that some PRs that have been fixed are not listed here). - Please send FSF & GNU inquiries & questions to [28]gnu@gnu.org. There - are also [29]other ways to contact the FSF. - - These pages are maintained by [30]the GCC team. +GCC 4.3.4 + + This is the [28]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 4.3.4 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + + Please send FSF & GNU inquiries & questions to [29]gnu@gnu.org. There + are also [30]other ways to contact the FSF. + + These pages are maintained by [31]the GCC team. For questions related to the use of GCC, please consult these web - pages and the [31]GCC manuals. If that fails, the - [32]gcc-help@gcc.gnu.org mailing list might help. + pages and the [32]GCC manuals. If that fails, the + [33]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC to - our developer mailing list at [33]gcc@gnu.org or [34]gcc@gcc.gnu.org. - All of our lists have [35]public archives. + our developer mailing list at [34]gcc@gnu.org or [35]gcc@gcc.gnu.org. + All of our lists have [36]public archives. Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. - Last modified 2009-04-19 [36]Valid XHTML 1.0 + Last modified 2009-08-13 [37]Valid XHTML 1.0 References - 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.3 + 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.4 2. http://gmplib.org/ 3. http://www.mpfr.org/ 4. http://gcc.gnu.org/install/prerequisites.html @@ -1551,15 +1586,16 @@ 25. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1 26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3 - 28. mailto:gnu@gnu.org - 29. http://www.gnu.org/home.html#ContactInfo - 30. http://gcc.gnu.org/about.html - 31. http://gcc.gnu.org/onlinedocs/ - 32. mailto:gcc-help@gcc.gnu.org - 33. mailto:gcc@gnu.org - 34. mailto:gcc@gcc.gnu.org - 35. http://gcc.gnu.org/lists.html - 36. http://validator.w3.org/check/referer + 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4 + 29. mailto:gnu@gnu.org + 30. http://www.gnu.org/home.html#ContactInfo + 31. http://gcc.gnu.org/about.html + 32. http://gcc.gnu.org/onlinedocs/ + 33. mailto:gcc-help@gcc.gnu.org + 34. mailto:gcc@gnu.org + 35. mailto:gcc@gcc.gnu.org + 36. http://gcc.gnu.org/lists.html + 37. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/index.html GCC 4.2 Release Series @@ -1702,7 +1738,7 @@ for most cases which currently use -fno-unit-at-a-time. The -fno-unit-at-a-time option will be removed in some future version of GCC. If you know of a case which requires -fno-unit-at-a-time - which is not fixed by -fno-toplevel-reorder, please [3]open a bug + which is not fixed by -fno-toplevel-reorder, please open a bug report. C family @@ -1778,7 +1814,7 @@ * Added support for TR1 , , and C compatibility headers. In addition, a lock-free version of shared_ptr was contributed as part of Phillip Jordan's Google Summer of Code - project on lock-free containers. ([4]Implementation status of TR1) + project on lock-free containers. ([3]Implementation status of TR1) * In association with the Summer of Code work on lock-free containers, the interface for atomic builtins was adjusted, creating simpler alternatives for non-threaded code paths. Also, @@ -1796,7 +1832,7 @@ (basic_tree, tree, trie), lists (list_update), and both collision-chaining and probing hash-based containers (basic_hash_table, cc_hash_table, gp_hash_table). More details per - the [5]documentation. + the [4]documentation. * The implementation of the debug mode was modified, whereby the debug namespaces were nested inside of namespace std and namespace __gnu_cxx in order to resolve some long standing corner cases @@ -1829,7 +1865,7 @@ gfortran used 8-byte record markers by default (on most systems). In order to change the length of the record markers, e.g. to read unformatted files created by older gfortran versions, the - [6]-frecord-marker=8 option can be used. + [5]-frecord-marker=8 option can be used. Java (GCJ) @@ -1840,7 +1876,7 @@ memory than if the shared version of libgcj were used. However caution should be used as it can also cause essential parts of the library to be omitted. Some of these issues are discussed in: - [7]http://gcc.gnu.org/wiki/Statically_linking_libgcj + [6]http://gcc.gnu.org/wiki/Statically_linking_libgcj * fastjar is no longer bundled with GCC. To build libgcj, you will need either InfoZIP (both zip and unzip) or an external jar program. In the former case, the GCC build will install a jar shell @@ -1944,44 +1980,43 @@ achieve the same effect, and works for all native and cross settings. - Please send FSF & GNU inquiries & questions to [8]gnu@gnu.org. There - are also [9]other ways to contact the FSF. - - These pages are maintained by [10]the GCC team. + Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There + are also [8]other ways to contact the FSF. + + These pages are maintained by [9]the GCC team. 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. + pages and the [10]GCC manuals. If that fails, the + [11]gcc-help@gcc.gnu.org mailing list might help. Please send comments on these web pages and the development of GCC to - our developer mailing list at [13]gcc@gnu.org or [14]gcc@gcc.gnu.org. - All of our lists have [15]public archives. + our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org. + All of our lists have [14]public archives. Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. - Last modified 2009-01-25 [16]Valid XHTML 1.0 + Last modified 2009-11-08 [15]Valid XHTML 1.0 References 1. http://gcc.gnu.org/projects/gomp/ 2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html - 3. http://gcc.gnu.org/bugs.html - 4. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1 - 5. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html - 6. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html - 7. http://gcc.gnu.org/wiki/Statically_linking_libgcj - 8. mailto:gnu@gnu.org - 9. http://www.gnu.org/home.html#ContactInfo - 10. http://gcc.gnu.org/about.html - 11. http://gcc.gnu.org/onlinedocs/ - 12. mailto:gcc-help@gcc.gnu.org - 13. mailto:gcc@gnu.org - 14. mailto:gcc@gcc.gnu.org - 15. http://gcc.gnu.org/lists.html - 16. http://validator.w3.org/check/referer + 3. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1 + 4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html + 5. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html + 6. http://gcc.gnu.org/wiki/Statically_linking_libgcj + 7. mailto:gnu@gnu.org + 8. http://www.gnu.org/home.html#ContactInfo + 9. http://gcc.gnu.org/about.html + 10. http://gcc.gnu.org/onlinedocs/ + 11. mailto:gcc-help@gcc.gnu.org + 12. mailto:gcc@gnu.org + 13. mailto:gcc@gcc.gnu.org + 14. http://gcc.gnu.org/lists.html + 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/index.html GCC 4.1 Release Series @@ -5130,7 +5165,7 @@ Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. - Last modified 2008-05-03 [420]Valid XHTML 1.0 + Last modified 2009-11-08 [420]Valid XHTML 1.0 References @@ -5145,7 +5180,7 @@ 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361 10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 - 12. http://gcc.gnu.org/bugs.html#cxx_rvalbind + 12. http://gcc.gnu.org/bugs/#cxx_rvalbind 13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html diff -r b85a337e5837 -r 3bfb6c00c1e0 config.guess --- a/config.guess Sun Feb 07 17:43:48 2010 +0900 +++ b/config.guess Sun Feb 07 17:44:34 2010 +0900 @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. -timestamp='2008-12-18' +timestamp='2009-11-19' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,16 +27,16 @@ # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -170,7 +170,7 @@ arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -324,6 +324,9 @@ case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; @@ -653,7 +656,7 @@ # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + grep -q __LP64__ then HP_ARCH="hppa2.0w" else @@ -804,12 +807,12 @@ i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) + *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd | genuineintel) + authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -819,6 +822,9 @@ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -848,6 +854,20 @@ i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -870,6 +890,17 @@ frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; @@ -879,78 +910,34 @@ m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - mips:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips - #undef mipsel + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -959,8 +946,11 @@ *) echo hppa-unknown-linux-gnu ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux @@ -983,66 +973,6 @@ xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1071,7 +1001,7 @@ i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1115,8 +1045,11 @@ pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 @@ -1154,6 +1087,16 @@ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1166,7 +1109,7 @@ rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1259,6 +1202,16 @@ *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -1340,6 +1293,9 @@ i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff -r b85a337e5837 -r 3bfb6c00c1e0 config.sub --- a/config.sub Sun Feb 07 17:43:48 2010 +0900 +++ b/config.sub Sun Feb 07 17:44:34 2010 +0900 @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. -timestamp='2008-12-11' +timestamp='2009-11-07' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -32,13 +32,16 @@ # Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -122,6 +125,7 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -148,10 +152,13 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -271,6 +278,7 @@ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ | nios | nios2 \ @@ -279,6 +287,7 @@ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ + | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ @@ -286,13 +295,14 @@ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) + m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none @@ -335,7 +345,7 @@ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -363,7 +373,7 @@ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ - | romp-* | rs6000-* \ + | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ @@ -372,6 +382,7 @@ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ + | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ @@ -445,6 +456,10 @@ basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -461,6 +476,10 @@ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; c90) basic_machine=c90-cray os=-unicos @@ -713,6 +732,9 @@ basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -1254,10 +1276,11 @@ # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ @@ -1276,7 +1299,7 @@ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1606,7 +1629,7 @@ -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) diff -r b85a337e5837 -r 3bfb6c00c1e0 config/ChangeLog --- a/config/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/config/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 contrib/ChangeLog --- a/contrib/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/contrib/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 contrib/reghunt/ChangeLog --- a/contrib/reghunt/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/contrib/reghunt/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 contrib/regression/ChangeLog --- a/contrib/regression/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/contrib/regression/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 fixincludes/ChangeLog --- a/fixincludes/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/fixincludes/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/ChangeLog --- a/gcc/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,680 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + +2010-01-20 Richard Guenther + + PR tree-optimization/41826 + * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid + access to re-allocated vector fields. + +2010-01-20 Jakub Jelinek + + * dwarf2out.c (loc_descriptor_from_tree_1): Don't handle unsigned + division. Handle signed modulo using DW_OP_{over,over,div,mul,minus}. + * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned + modulo instead of signed. + + PR middle-end/42803 + * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE + argument, call initializer_constant_valid_p_1 instead of + initializer_constant_valid_p, pass CACHE to it, return NULL + immediately if first call returns NULL. + (initializer_constant_valid_p_1): New function. + (initializer_constant_valid_p): Use it. + +2010-01-18 Uros Bizjak + + PR target/42774 + * config/alpha/predicates.md (aligned_memory_operand): Return 0 for + memory references with unaligned offsets. Remove CQImode handling. + (unaligned_memory_operand): Return 1 for memory references with + unaligned offsets. Remove CQImode handling. + +2010-01-17 H.J. Lu + + Backport from mainline: + 2010-01-13 Steve Ellcey + + PR target/42542 + * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT + for V2SI by subtracting (-(INT MAX) - 1) from both operands to make + them signed. + +2010-01-17 Richard Guenther + + PR tree-optimization/42773 + * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence. + (compute_antic_aux): Likewise. + (compute_partial_antic_aux): Likewise. + +2010-01-16 Jakub Jelinek + + PR middle-end/42760 + Backport from trunk + 2009-06-17 Steve Ellcey + + * expr.c (expand_assignment): Change complex type check. + +2010-01-15 Jing Yu + + PR rtl-optimization/42691 + * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set + a pseudo to a constant and are merged, and adjust comments. + +2010-01-15 Richard Guenther + + * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru. + +2010-01-14 Jakub Jelinek + + PR middle-end/42674 + * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in + functions with noreturn attribute. + + PR c++/42608 + * varasm.c (declare_weak): Add weak attribute to decl if it + doesn't have one already. + (assemble_external): Only add decls to weak_decls if they also + have weak attribute. + +2010-01-14 Jakub Jelinek + + PR c/42721 + Port from no-undefined-overflow branch + 2009-03-09 Richard Guenther + + * fold-const.c (add_double_with_sign): Fix unsigned overflow + detection. + +2010-01-14 Jakub Jelinek + + Backport from mainline + 2010-01-10 Richard Guenther + + PR middle-end/42667 + * builtins.c (fold_builtin_strlen): Add type argument and + convert the resulting length to it. + (fold_builtin_1): Adjust. + +2010-01-13 Sebastian Pop + + PR middle-end/40281 + * tree-scalar-evolution.c (instantiate_scev_1): Base and stride + evolutions should not variate in inner loops. + +2010-01-12 Ramana Radhakrishnan + + * Backport from mainline + 2010-01-12 Julian Brown + + * config/arm/neon-schedgen.ml (Utils): Don't try to + open missing module. + (find_with_result): New. + +2010-01-12 Jakub Jelinek + + PR debug/42662 + * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx + sharing when canonicalizing ({lt,ge}u (plus a b) b). + +2010-01-09 Jakub Jelinek + + * gcc.c (process_command): Update copyright notice dates. + * gcov.c (print_version): Likewise. + * gcov-dump.c (print_version): Likewise. + * mips-tfile.c (main): Likewise. + * mips-tdump.c (main): Likewise. + +2010-01-07 H.J. Lu + + Backport from mainline + 2010-01-05 Paolo Bonzini + H.J. Lu + + PR target/42542 + * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT + for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both + operands to make them signed. + +2010-01-07 Uros Bizjak + + * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM. + + PR target/42511 + * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when + note itself is not function_invariant_p. + +2010-01-05 Eric Botcazou + + PR target/42564 + * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete. + * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + (sparc_tls_referenced_p): Likewise. + * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address + and adjust calls to legitimize_pic_address. + (legitimate_constant_p) Use sparc_tls_referenced_p. + (legitimate_pic_operand_p): Likewise. + (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P. + (sparc_tls_symbol_ref_1): Delete. + (sparc_tls_referenced_p): Make static, recognize specific patterns. + (legitimize_tls_address): Make static, handle CONST patterns. + (legitimize_pic_address): Make static, remove unused parameter and + adjust recursive calls. + (sparc_legitimize_address): Make static, use sparc_tls_referenced_p + and adjust call to legitimize_pic_address. + (sparc_output_mi_thunk): Likewise. + +2010-01-05 Richard Guenther + + PR tree-optimization/42614 + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): + Compute SMT aliases before symbol aliases. + +2010-01-05 Jakub Jelinek + + PR other/42611 + * cfgexpand.c (expand_one_var): Diagnose too large variables. + +2010-01-04 Mikael Pettersson + + PR target/42503 + + Backport from mainline: + + 2009-09-09 Jakub Jelinek + + * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK): + New variables. + (SHLIB_LINK, SHLIB_INSTALL): Use them. + * config/t-slibgcc-libgcc: New file. + + 2009-10-19 Matthias Klose + + PR target/40134 + * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc. + +2010-01-04 Ira Rosen + + PR tree-optimization/41956 + * tree-vect-analyze.c (vect_supported_load_permutation_p): Add check + that the load indices differ. + +2010-01-02 Richard Guenther + + Backport from mainline + 2009-12-10 Richard Guenther + + PR tree-optimization/42337 + * tree-ssa-pre.c (seen_during_translate): Remove. + (phi_translate_1): Collapse into ... + (phi_translate): ... this. Remove seen parameter and + adjust recursive calls. + +2010-01-02 Uros Bizjak + + PR target/42448 + * config/alpha/predicates.md (aligned_memory_operand): Return false + for CQImode. + (unaligned_memory_operand): Return true for CQImode. + * config/alpha/alpha.c (get_aligned_mem): Assert that location + doesn not cross aligned SImode word boundary. + +2009-12-30 Ian Lance Taylor + + PR middle-end/42099 + * expmed.c (expand_divmod): Don't shift HOST_WIDE_INT value more + than HOST_BITS_PER_WIDE_INT. + +2009-12-30 Uros Bizjak + + PR target/42549 + * config/i386/mmx.md (*mmx_subv2sf3): Fix insn operand number for + alternative 1. + +2009-12-28 H.J. Lu + + Backport from mainline: + 2009-12-28 H.J. Lu + + PR middle-end/41344 + * omp-low.c (diagnose_sb_2): Handle GIMPLE_COND. + +2009-12-27 Martin Jambor + + PR tree-optimization/42231 + * ipa-cp.c (ipcp_update_cloned_node): Add missing edges manually + instead of relying on rebuild_cgraph_edges and mark them as + indirect calls. + (ipcp_update_callgraph): Always redirect indirect edges. + +2009-12-23 Jakub Jelinek + + PR rtl-optimization/42475 + * combine.c (make_compound_operation) : Use mode of + SUBREG_REG (x) instead of tem's mode. + +2009-12-21 Jakub Jelinek + + PR rtl-optimization/42429 + * reload.c (find_reloads_subreg_address): When adjusting mode of + MEM, update also MEM_SIZE if it is set. + +2009-12-17 Dave Korn + + * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin. + +2009-12-11 Ramana Radhakrishnan + + PR target/42263 + Backport from mainline + + 2009-12-03 Richard Earnshaw + + * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier + before the lock release. + +2009-12-11 Ramana Radhakrishnan + + PR target/42263 + 2009-08-11 Andrew Haley + * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize. + +2009-12-11 Ramana Radhakrishnan + + PR target/41196 + 2009-10-14 Daniel Gutson + + * config/arm/neon.md (neon_vshll_n): Checking Bounds fixed. + +2009-12-11 Ramana Radhakrishnan + + 2009-10-05 Doug Kwan + + PR rtl-optimization/41574 + * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is + floating point and we are not doing unsafe math optimizations. + +2009-12-11 Ramana Radhakrishnan + + PR target/41939 + Backport from mainline: + 2009-06-05 Julian Brown + + * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP. + * config/arm/ieee754-sf.S (cmpsf2): Likewise. + +2009-12-09 Andreas Krebbel + + * config/s390/s390.md ("copysign3"): Pattern removed. + +2009-12-07 Uros Bizjak + + * config/i386/i386.md (*iorqi_ext_2): Fix insn mnemonic typo. + +2009-12-06 Richard Henderson + + * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi + argument earlier. + +2009-12-04 Ulrich Weigand + + Backport from mainline: + + 2009-05-22 Trevor Smigiel + + * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove. + (spu_split_load, spu_split_store): Change return type to int. + (spu_split_convert): Declare. + * config/spu/predicates.md (spu_mem_operand): Remove. + (spu_mov_operand): Update. + (spu_dest_operand, shiftrt_operator, extend_operator): Define. + * config/spu/spu.c (regno_aligned_for_load): Remove. + (reg_aligned_for_addr, spu_expand_load): Define. + (spu_expand_extv): Reimplement and handle MEM. + (spu_expand_insv): Handle MEM. + (spu_sched_reorder): Handle insn's with length 0. + (spu_legitimate_address): Reimplement. + (store_with_one_insn_p): Return TRUE for any mode with size + larger than 16 bytes. + (address_needs_split): Define. + (spu_expand_mov): Call spu_split_load and spu_split_store for MEM + operands. + (spu_convert_move): Define. + (spu_split_load): Use spu_expand_load and change all MEM's to + TImode. + (spu_split_store): Change all MEM's to TImode. + (spu_init_expanders): Preallocate registers that correspond to + LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with + mark_reg_pointer. + (spu_split_convert): Define. + * config/spu/spu.md (QHSI, QHSDI): New mode iterators. + (_move, _movdi, _movti): Update predicate and condition. + (load, store): Change to define_split. + (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to + extendti2. + (zero_extendqiti2, zero_extendhiti2, lshr3_imm): Define. + (lshr3, lshr3_imm, lshr3_re): Simplify to one + define_insn_and_split of lshr3. + (shrqbybi_, shrqby_): Simplify to define_expand. + (ashr3_imm): Define. + (extv, extzv, insv): Allow MEM operands. + (trunc_shr_ti, trunc_shr_tidi, shl_ext_ti, + shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi, + sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine. + (_spu_convert2): Change to define_insn_and_split and remove the + corresponding define_peephole2. + (stack_protect_set, stack_protect_test, stack_protect_test_si): + Change predicates to memory_operand. + + 2009-04-27 Trevor Smigiel + + * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint + instruction is correct. + + 2009-04-27 Trevor Smigiel + + Allow non-constant arguments to conversion intrinsics. + * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare. + * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New. + * spu.c (print_operand): Handle 'v' and 'w'. + (exp2_immediate_p, spu_gen_exp2): Define. + * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0, + spu_convtf_1): Update parameter descriptions. + * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): + Update. + * constraints.md ('v', 'w'): New. + * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU): + Remove. + (i2f, I2F): New define_mode_attr. + (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2, + floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2, + fixuns_truncv4sfv4si2): Update to use mode attribute. + (float2_mul, float2_div, + fix_trunc2_mul, floatuns2_mul, + floatuns2_div, fixuns_trunc2_mul): New + patterns for combine. + +2009-12-03 Jakub Jelinek + + PR middle-end/42049 + * builtins.c (expand_builtin_strcpy_args): Handle COMPOUND_EXPRs + potentially returned from folding strcpy. + +2009-12-02 Chao-ying Fu + + Backport from mainline + 2009-11-30 Chao-ying Fu + + * config/mips/mips-dsp.md (mips_lhx_): Use sign_extend. + +2009-12-02 Richard Earnshaw + + * arm/thumb2.md (thumb_andsi_not_shiftsi_si): Final condition should + be TARGET_THUMB2. + +2009-12-01 Jakub Jelinek + + PR c++/42234 + * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb + contains no statements. + +2009-11-27 Andreas Krebbel + + * config/s390/s390.c (last_scheduled_insn): New variable. + (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New + functions. + (s390_sched_reorder, s390_sched_variable_issue): New functions. + (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks + defined. + +2009-11-27 Jakub Jelinek + + * opts.c (decode_options): If optimize is bigger than 255, + set it to 255. + +2009-11-25 Jakub Jelinek + + PR target/42165 + * config/i386/i386.c (print_operand): For 32-byte memory use + YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD. + * config/i386/i386.md (crc32modesuffix): Expand to nothing + in -masm=intel mode. + (sse4_2_crc32di): Print just crc32 instead of crc32q in + -masm=intel mode. + * config/i386/mmx.md (*mmx_pinsrw): Print correct size of + memory operand in -masm=intel mode. + * config/i386/sse.md (*avx_pinsr, *sse4_1_pinsrb, + *sse2_pinsrw): Likewise. + (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print + q suffix in -masm=intel mode. + +2009-11-24 John David Anglin + + * pa.c (output_call): Only use sr4 for long interspace calls if + call binds local and generating non PIC code. + (attr_length_call): Adjust length calculation for above. + +2009-11-24 Wolfgang Gellerich + + * config/s390/s390.md: Added agen condition to operand + forwarding bypasses. + Added bypass for early address generation use of int results. + Updated comments. + +2009-11-23 Uros Bizjak + + PR target/42113 + * config/alpha/alpha.md (*cmp_sadd_si): Change mode + of scratch register to SImode. + (*cmp_sadd_sidi): Ditto. + (*cmp_ssub_si): Ditto. + (*cmp_ssub_sidi): Ditto. + +2009-11-18 Matthias Klose + + * config.gcc: Update ARM --with-fpu option list. + +2009-11-17 Ulrich Weigand + + * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC + registers in leaf functions if possible. + +2009-11-14 Uros Bizjak + + * config/i386/predicates.md (call_register_no_elim_operand): + New predicate. Reject stack register as valid call operand + for 32bit targets. + (call_insn_operand): Use call_register_no_elim_operand. + +2009-11-13 Richard Henderson + + * function.c (stack_protect_prologue): Don't bypass expand_expr + for stack_protect_guard and guard_decl. + (stack_protect_epilogue): Likewise. + +2009-11-13 Uros Bizjak + + PR target/41900 + (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): Use "lsm" + as operand 1 constraint. + * config/i386/predicates.md (call_insn_operand): Depend on + index_register_operand to avoid %esp register. + +2009-11-13 Uros Bizjak + + Revert: + 2009-11-04 Uros Bizjak + + PR target/41900 + * config/i386/i386.h (ix86_arch_indices) : New. + (TARGET_CALL_ESP): New define. + * config/i386/i386.c (initial_ix86_tune_features): Initialize + X86_ARCH_CALL_ESP. + * config/i386/i386.md (*call_pop_1_esp, *call_1_esp, + *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1, + *call_1, *call_value_pop_1 and *call_value_1. Depend on + TARGET_CALL_ESP. + (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): + New patterns, use "lsm" as operand 1 constraint. + * config/i386/predicates.md (call_insn_operand): Depend on + index_register_operand for !TARGET_CALL_ESP to avoid %esp register. + +2009-11-13 Jakub Jelinek + + PR middle-end/42029 + * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on + tmp_load if needed. + +2009-11-11 Kai Tietz + + Backported from trunk + * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. + * c-pragma.c (def_pragma_macro_value): Likewise. + (def_pragma_macro): Likewise. + (pushed_macro_table): Likewise. + (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code. + * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. + +2009-11-10 Chao-ying Fu + + Backport from mainline + 2009-10-29 Chao-ying Fu + + * config/mips/mips.c (mips_emit_unary, mips_force_unary): New + functions. + (mips_expand_synci_loop): Use the length rtx to control the + synci loop from the begin rtx that points to the first byte of + the cache line. + +2009-11-09 Jakub Jelinek + + PR middle-end/40946 + Backport from mainline + 2009-09-09 Richard Guenther + + PR middle-end/41317 + * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove + code dealing with plain pointer bases. + (maybe_fold_offset_to_reference): Likewise. + (maybe_fold_stmt_addition): Adjust. + +2009-11-08 Uros Bizjak + + Backport from mainline: + 2009-11-06 Michael Matz + + PR middle-end/41963 + * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses + of a potential reciprocal to really be reciprocals. + +2009-11-07 Jakub Jelinek + + PR tree-optimization/41643 + Backport from mainline + 2009-04-03 Richard Guenther + + * tree-tailcall.c (tree_optimize_tail_calls_1): Also split the + edge from the entry block if we have degenerate PHI nodes in + the first basic block. + +2009-11-05 Jakub Jelinek + + * c-common.c (fold_offsetof_1): Revert the recently added + -Warray-bounds checking of offsetof arguments. + +2009-11-04 Jason Merrill + + PR c++/36912 + * varasm.c (initializer_constant_valid_p): A PLUS_EXPR + or MINUS_EXPR of REAL_TYPE is not a valid constant initializer. + (output_constant): Avoid crash after error. + +2009-11-04 Uros Bizjak + + PR target/41900 + * config/i386/i386.h (ix86_arch_indices) : New. + (TARGET_CALL_ESP): New define. + * config/i386/i386.c (initial_ix86_tune_features): Initialize + X86_ARCH_CALL_ESP. + * config/i386/i386.md (*call_pop_1_esp, *call_1_esp, + *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1, + *call_1, *call_value_pop_1 and *call_value_1. Depend on + TARGET_CALL_ESP. + (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): + New patterns, use "lsm" as operand 1 constraint. + * config/i386/predicates.md (call_insn_operand): Depend on + index_register_operand for !TARGET_CALL_ESP to avoid %esp register. + +2009-11-04 Jakub Jelinek + + * c-common.c (fold_offsetof_1): Use %wd instead of + HOST_WIDE_INT_PRINT_DEC. + +2009-11-03 Jakub Jelinek + + PR rtl-optimization/41917 + * rtlanal.c (num_sign_bit_copies1) : If sign bit of second + operand isn't known to be 0, return 1. + +2009-11-03 Dodji Seketeli + + * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC. + +2009-11-03 Dodji Seketeli + + PR c++/38699 + * c-common.c (fold_offsetof_1): Issue errors when the member + designator of the offsetof expression is not legitimate. + +2009-10-28 Jakub Jelinek + + PR target/41762 + * config/i386/i386.c (ix86_pic_register_p): Don't call + rtx_equal_for_cselib_p for VALUEs discarded as useless. + +2009-10-27 Jakub Jelinek + + PR c/41842 + * c-typeck.c (convert_arguments): Return -1 if any of the arguments is + error_mark_node. + +2009-10-27 Kai Tietz + + Backport from mainline: + 2009-10-20 Pascal Obry + Eric Botcazou + + * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens. + +2009-10-23 John David Anglin + + Backport from mainline: + 2009-08-19 John David Anglin + + * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New + patterns. + * pa.c (emit_move_sequence): Check if address of operand1 is valid + for mode mode of operand0 when doing secondary reload for SAR. + +2009-10-21 Jakub Jelinek + + Backport from mainline: + 2009-06-13 Joerg Sonnenberger + + * doc/invoke.texi: Add missing option -Wp,OPTION in list, + fix index entry for -Xpreprocessor. + +2009-10-20 John David Anglin + + Backport from mainline: + 2009-10-15 John David Anglin + + PR target/41702 + * pa.md (casesi): Use sign extended index in call to gen_casesi64p. + (casesi64p): Update pattern to reflect above. + 2009-10-20 Joseph Myers * config/arm/arm.c (output_move_neon): Use DImode in call to @@ -140,7 +817,7 @@ 2009-10-02 Ramana Radhakrishnan - Backport from mainline. + Backport from mainline. 2009-10-01 Ramana Radhakrishnan * config/arm/arm.c (arm_override_options): Turn off flag_dwarf2_cfi_asm for AAPCS variants. diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/DATESTAMP --- a/gcc/DATESTAMP Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/DATESTAMP Sun Feb 07 17:44:34 2010 +0900 @@ -1,1 +1,1 @@ -20091020 +20100121 diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/DEV-PHASE --- a/gcc/DEV-PHASE Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/DEV-PHASE Sun Feb 07 17:44:34 2010 +0900 @@ -1,1 +0,0 @@ -prerelease diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/builtins.c --- a/gcc/builtins.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/builtins.c Sun Feb 07 17:44:34 2010 +0900 @@ -151,7 +151,7 @@ static tree fold_builtin_constant_p (tree); static tree fold_builtin_expect (tree, tree); static tree fold_builtin_classify_type (tree); -static tree fold_builtin_strlen (tree); +static tree fold_builtin_strlen (tree, tree); static tree fold_builtin_inf (tree, int); static tree fold_builtin_nan (tree, tree, int); static tree rewrite_call_expr (tree, int, tree, int, ...); @@ -3712,7 +3712,15 @@ { tree result = fold_builtin_strcpy (fndecl, dest, src, 0); if (result) - return expand_expr (result, target, mode, EXPAND_NORMAL); + { + while (TREE_CODE (result) == COMPOUND_EXPR) + { + expand_expr (TREE_OPERAND (result, 0), const0_rtx, VOIDmode, + EXPAND_NORMAL); + result = TREE_OPERAND (result, 1); + } + return expand_expr (result, target, mode, EXPAND_NORMAL); + } return expand_movstr (dest, src, target, /*endp=*/0); } @@ -7351,7 +7359,7 @@ /* Fold a call to __builtin_strlen with argument ARG. */ static tree -fold_builtin_strlen (tree arg) +fold_builtin_strlen (tree type, tree arg) { if (!validate_arg (arg, POINTER_TYPE)) return NULL_TREE; @@ -7360,12 +7368,7 @@ tree len = c_strlen (arg, 0); if (len) - { - /* Convert from the internal "sizetype" type to "size_t". */ - if (size_type_node) - len = fold_convert (size_type_node, len); - return len; - } + return fold_convert (type, len); return NULL_TREE; } @@ -10126,7 +10129,7 @@ return fold_builtin_classify_type (arg0); case BUILT_IN_STRLEN: - return fold_builtin_strlen (arg0); + return fold_builtin_strlen (type, arg0); CASE_FLT_FN (BUILT_IN_FABS): return fold_builtin_fabs (arg0, type); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/c-common.c --- a/gcc/c-common.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/c-common.c Sun Feb 07 17:44:34 2010 +0900 @@ -7633,15 +7633,14 @@ error ("cannot apply % when % is overloaded"); return error_mark_node; - case INTEGER_CST: - gcc_assert (integer_zerop (expr)); - return size_zero_node; - case NOP_EXPR: case INDIRECT_REF: - base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); - gcc_assert (base == error_mark_node || base == size_zero_node); - return base; + if (!integer_zerop (TREE_OPERAND (expr, 0))) + { + error ("cannot apply % to a non constant address"); + return error_mark_node; + } + return size_zero_node; case COMPONENT_REF: base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/c-decl.c --- a/gcc/c-decl.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/c-decl.c Sun Feb 07 17:44:34 2010 +0900 @@ -6777,6 +6777,8 @@ && !current_function_returns_value && !current_function_returns_null /* Don't complain if we are no-return. */ && !current_function_returns_abnormally + /* Don't complain if we are declared noreturn. */ + && !TREE_THIS_VOLATILE (fndecl) /* Don't warn for main(). */ && !MAIN_NAME_P (DECL_NAME (fndecl)) /* Or if they didn't actually specify a return type. */ diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/c-pragma.c --- a/gcc/c-pragma.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/c-pragma.c Sun Feb 07 17:44:34 2010 +0900 @@ -244,146 +244,6 @@ } #endif /* HANDLE_PRAGMA_PACK */ -struct def_pragma_macro_value GTY(()) -{ - struct def_pragma_macro_value *prev; - cpp_macro *value; -}; - -struct def_pragma_macro GTY(()) -{ - hashval_t hash; - const char *name; - struct def_pragma_macro_value value; -}; - -static GTY((param_is (struct def_pragma_macro))) htab_t pushed_macro_table; - -#ifdef HANDLE_PRAGMA_PUSH_POP_MACRO -/* Hash table control functions for pushed_macro_table. */ -static hashval_t -dpm_hash (const void *p) -{ - return ((const struct def_pragma_macro *)p)->hash; -} - -static int -dpm_eq (const void *pa, const void *pb) -{ - const struct def_pragma_macro *const a = (const struct def_pragma_macro *) pa, - *const b = (const struct def_pragma_macro *) pb; - return a->hash == b->hash && strcmp (a->name, b->name) == 0; -} - -/* #pragma push_macro("MACRO_NAME") - #pragma pop_macro("MACRO_NAME") */ - -static void -handle_pragma_push_macro (cpp_reader *reader) -{ - tree x, id = 0; - enum cpp_ttype token; - struct def_pragma_macro dummy, *c; - const char *macroname; - void **slot; - - if (pragma_lex (&x) != CPP_OPEN_PAREN) - GCC_BAD ("missing %<(%> after %<#pragma push_macro%> - ignored"); - - token = pragma_lex (&id); - - /* Silently ignore */ - if (token == CPP_CLOSE_PAREN) - return; - if (token != CPP_STRING) - GCC_BAD ("invalid constant in %<#pragma push_macro%> - ignored"); - - if (pragma_lex (&x) != CPP_CLOSE_PAREN) - GCC_BAD ("missing %<)%> after %<#pragma push_macro%> - ignored"); - - if (pragma_lex (&x) != CPP_EOF) - warning (OPT_Wpragmas, "junk at end of %<#pragma push_macro%>"); - - /* Check for empty string, and silently ignore. */ - if (TREE_STRING_LENGTH (id) < 1) - return; - macroname = TREE_STRING_POINTER (id); - - if (pushed_macro_table == NULL) - pushed_macro_table = htab_create_ggc (15, dpm_hash, dpm_eq, 0); - - dummy.hash = htab_hash_string (macroname); - dummy.name = macroname; - slot = htab_find_slot_with_hash (pushed_macro_table, &dummy, - dummy.hash, INSERT); - c = (struct def_pragma_macro *) *slot; - if (c == NULL) - { - *slot = c = GGC_NEW (struct def_pragma_macro); - c->hash = dummy.hash; - c->name = ggc_alloc_string (macroname, TREE_STRING_LENGTH (id) - 1); - c->value.prev = NULL; - } - else - { - struct def_pragma_macro_value *v; - v = GGC_NEW (struct def_pragma_macro_value); - *v = c->value; - c->value.prev = v; - } - - c->value.value = cpp_push_definition (reader, macroname); -} - -static void -handle_pragma_pop_macro (cpp_reader *reader) -{ - tree x, id = 0; - enum cpp_ttype token; - struct def_pragma_macro dummy, *c; - const char *macroname; - void **slot = NULL; - - if (pragma_lex (&x) != CPP_OPEN_PAREN) - GCC_BAD ("missing %<(%> after %<#pragma pop_macro%> - ignored"); - - token = pragma_lex (&id); - - /* Silently ignore */ - if (token == CPP_CLOSE_PAREN) - return; - if (token != CPP_STRING) - GCC_BAD ("invalid constant in %<#pragma pop_macro%> - ignored"); - - if (pragma_lex (&x) != CPP_CLOSE_PAREN) - GCC_BAD ("missing %<)%> after %<#pragma pop_macro%> - ignored"); - - if (pragma_lex (&x) != CPP_EOF) - warning (OPT_Wpragmas, "junk at end of %<#pragma pop_macro%>"); - - /* Check for empty string, and silently ignore. */ - if (TREE_STRING_LENGTH (id) < 1) - return; - macroname = TREE_STRING_POINTER (id); - - dummy.hash = htab_hash_string (macroname); - dummy.name = macroname; - if (pushed_macro_table) - slot = htab_find_slot_with_hash (pushed_macro_table, &dummy, - dummy.hash, NO_INSERT); - if (slot == NULL) - return; - c = (struct def_pragma_macro *) *slot; - - cpp_pop_definition (reader, c->name, c->value.value); - - if (c->value.prev) - c->value = *c->value.prev; - else - htab_clear_slot (pushed_macro_table, slot); -} -#endif /* HANDLE_PRAGMA_PUSH_POP_MACRO */ - static GTY(()) tree pending_weaks; #ifdef HANDLE_PRAGMA_WEAK @@ -1316,10 +1176,6 @@ c_register_pragma (0, "pack", handle_pragma_pack); #endif #endif -#ifdef HANDLE_PRAGMA_PUSH_POP_MACRO - c_register_pragma (0 ,"push_macro", handle_pragma_push_macro); - c_register_pragma (0 ,"pop_macro", handle_pragma_pop_macro); -#endif #ifdef HANDLE_PRAGMA_WEAK c_register_pragma (0, "weak", handle_pragma_weak); #endif diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/c-typeck.c --- a/gcc/c-typeck.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/c-typeck.c Sun Feb 07 17:44:34 2010 +0900 @@ -2527,6 +2527,7 @@ { tree typetail, valtail; int parmnum; + bool error_args = false; const bool type_generic = fundecl && lookup_attribute ("type generic", TYPE_ATTRIBUTES(TREE_TYPE (fundecl))); tree selector; @@ -2737,6 +2738,9 @@ /* Convert `short' and `char' to full-size `int'. */ argarray[parmnum] = default_conversion (val); + if (argarray[parmnum] == error_mark_node) + error_args = true; + if (typetail) typetail = TREE_CHAIN (typetail); } @@ -2749,7 +2753,7 @@ return -1; } - return parmnum; + return error_args ? -1 : parmnum; } /* This is the entry point used by the parser to build unary operators diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/cfgexpand.c --- a/gcc/cfgexpand.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/cfgexpand.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,5 +1,5 @@ /* A pass for lowering trees to RTL. - Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 + Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -1116,6 +1116,14 @@ if (really_expand) expand_one_register_var (var); } + else if (!host_integerp (DECL_SIZE_UNIT (var), 1)) + { + if (really_expand) + { + error ("size of variable %q+D is too large", var); + expand_one_error_var (var); + } + } else if (defer_stack_allocation (var, toplevel)) add_stack_var (var); else diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/combine.c --- a/gcc/combine.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/combine.c Sun Feb 07 17:44:34 2010 +0900 @@ -2445,10 +2445,16 @@ i2dest = SET_DEST (temp); i2dest_killed = dead_or_set_p (i2, i2dest); + /* Replace the source in I2 with the new constant and make the + resulting insn the new pattern for I3. Then skip to + where we validate the pattern. Everything was set up above. */ SUBST (SET_SRC (temp), immed_double_const (olo, ohi, GET_MODE (SET_DEST (temp)))); newpat = PATTERN (i2); + + /* The dest of I3 has been replaced with the dest of I2. */ + changed_i3_dest = 1; goto validate_replacement; } } @@ -2820,8 +2826,6 @@ } } - /* We come here when we are replacing a destination in I2 with the - destination of I3. */ validate_replacement: /* Note which hard regs this insn has as inputs. */ @@ -7039,15 +7043,14 @@ tem = make_compound_operation (SUBREG_REG (x), in_code); { - rtx simplified; - simplified = simplify_subreg (GET_MODE (x), tem, GET_MODE (tem), - SUBREG_BYTE (x)); + rtx simplified = simplify_subreg (mode, tem, GET_MODE (SUBREG_REG (x)), + SUBREG_BYTE (x)); if (simplified) tem = simplified; if (GET_CODE (tem) != GET_CODE (SUBREG_REG (x)) - && GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (tem)) + && GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) && subreg_lowpart_p (x)) { rtx newer = force_to_mode (tem, mode, ~(HOST_WIDE_INT) 0, @@ -8512,6 +8515,12 @@ enum rtx_code outer_code, inner_code; rtx decomposed, distributed, inner_op0, inner_op1, new_op0, new_op1, tmp; + /* Distributivity is not true for floating point as it can change the + value. So we don't do it unless -funsafe-math-optimizations. */ + if (FLOAT_MODE_P (GET_MODE (x)) + && ! flag_unsafe_math_optimizations) + return NULL_RTX; + decomposed = XEXP (x, n); if (!ARITHMETIC_P (decomposed)) return NULL_RTX; @@ -13035,4 +13044,3 @@ TODO_ggc_collect, /* todo_flags_finish */ } }; - diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config.gcc --- a/gcc/config.gcc Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config.gcc Sun Feb 07 17:44:34 2010 +0900 @@ -714,7 +714,7 @@ case ${target} in arm*-*-linux-*eabi) tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" - tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" + tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" # The BPABI long long divmod functions return a 128-bit value in # registers r0-r3. Correctly modeling that requires the use of # TImode. @@ -2675,7 +2675,7 @@ case "$with_fpu" in "" \ - | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | neon ) + | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | vfpv3 | vfpv3-d16 | neon ) # OK ;; *) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/alpha/alpha.c --- a/gcc/config/alpha/alpha.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/alpha/alpha.c Sun Feb 07 17:44:34 2010 +0900 @@ -1457,6 +1457,10 @@ else offset = disp & 3; + /* The location should not cross aligned word boundary. */ + gcc_assert (offset + GET_MODE_SIZE (GET_MODE (ref)) + <= GET_MODE_SIZE (SImode)); + /* Access the entire aligned word. */ *paligned_mem = widen_memory_access (ref, SImode, -offset); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/alpha/alpha.md --- a/gcc/config/alpha/alpha.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/alpha/alpha.md Sun Feb 07 17:44:34 2010 +0900 @@ -4350,7 +4350,7 @@ (match_dup 4)))] { if (can_create_pseudo_p ()) - operands[5] = gen_reg_rtx (DImode); + operands[5] = gen_reg_rtx (SImode); else if (reg_overlap_mentioned_p (operands[5], operands[4])) operands[5] = operands[0]; }) @@ -4376,9 +4376,9 @@ (match_dup 4))))] { if (can_create_pseudo_p ()) - operands[5] = gen_reg_rtx (DImode); + operands[5] = gen_reg_rtx (SImode); else if (reg_overlap_mentioned_p (operands[5], operands[4])) - operands[5] = operands[0]; + operands[5] = gen_lowpart (SImode, operands[0]); }) (define_insn_and_split "*cmp_ssub_di" @@ -4426,7 +4426,7 @@ (match_dup 4)))] { if (can_create_pseudo_p ()) - operands[5] = gen_reg_rtx (DImode); + operands[5] = gen_reg_rtx (SImode); else if (reg_overlap_mentioned_p (operands[5], operands[4])) operands[5] = operands[0]; }) @@ -4452,9 +4452,9 @@ (match_dup 4))))] { if (can_create_pseudo_p ()) - operands[5] = gen_reg_rtx (DImode); + operands[5] = gen_reg_rtx (SImode); else if (reg_overlap_mentioned_p (operands[5], operands[4])) - operands[5] = operands[0]; + operands[5] = gen_lowpart (SImode, operands[0]); }) ;; Here are the CALL and unconditional branch insns. Calls on NT and OSF diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/alpha/predicates.md --- a/gcc/config/alpha/predicates.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/alpha/predicates.md Sun Feb 07 17:44:34 2010 +0900 @@ -439,9 +439,11 @@ (match_code "mem")) { rtx base; + int offset; if (MEM_ALIGN (op) >= 32) return 1; + op = XEXP (op, 0); /* LEGITIMIZE_RELOAD_ADDRESS creates (plus (plus reg const_hi) const_lo) @@ -449,14 +451,29 @@ if (reload_in_progress && GET_CODE (op) == PLUS && GET_CODE (XEXP (op, 0)) == PLUS) - base = XEXP (XEXP (op, 0), 0); + { + base = XEXP (XEXP (op, 0), 0); + offset = INTVAL (XEXP (op, 1)); + } else { if (! memory_address_p (mode, op)) return 0; - base = (GET_CODE (op) == PLUS ? XEXP (op, 0) : op); + if (GET_CODE (op) == PLUS) + { + base = XEXP (op, 0); + offset = INTVAL (XEXP (op, 1)); + } + else + { + base = op; + offset = 0; + } } + if (offset % GET_MODE_SIZE (mode)) + return 0; + return (GET_CODE (base) == REG && REGNO_POINTER_ALIGN (REGNO (base)) >= 32); }) @@ -467,9 +484,11 @@ (match_code "mem")) { rtx base; + int offset; if (MEM_ALIGN (op) >= 32) return 0; + op = XEXP (op, 0); /* LEGITIMIZE_RELOAD_ADDRESS creates (plus (plus reg const_hi) const_lo) @@ -477,14 +496,29 @@ if (reload_in_progress && GET_CODE (op) == PLUS && GET_CODE (XEXP (op, 0)) == PLUS) - base = XEXP (XEXP (op, 0), 0); + { + base = XEXP (XEXP (op, 0), 0); + offset = INTVAL (XEXP (op, 1)); + } else { if (! memory_address_p (mode, op)) return 0; - base = (GET_CODE (op) == PLUS ? XEXP (op, 0) : op); + if (GET_CODE (op) == PLUS) + { + base = XEXP (op, 0); + offset = INTVAL (XEXP (op, 1)); + } + else + { + base = op; + offset = 0; + } } + if (offset % GET_MODE_SIZE (mode)) + return 1; + return (GET_CODE (base) == REG && REGNO_POINTER_ALIGN (REGNO (base)) < 32); }) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/arm/arm.c --- a/gcc/config/arm/arm.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/arm/arm.c Sun Feb 07 17:44:34 2010 +0900 @@ -53,6 +53,7 @@ #include "debug.h" #include "langhooks.h" #include "df.h" +#include "libfuncs.h" /* Forward definitions of types. */ typedef struct minipool_node Mnode; @@ -922,6 +923,9 @@ set_optab_libfunc (umod_optab, DImode, NULL); set_optab_libfunc (smod_optab, SImode, NULL); set_optab_libfunc (umod_optab, SImode, NULL); + + if (TARGET_AAPCS_BASED) + synchronize_libfunc = init_one_libfunc ("__sync_synchronize"); } /* On AAPCS systems, this is the "struct __va_list". */ diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/arm/ieee754-df.S --- a/gcc/config/arm/ieee754-df.S Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/arm/ieee754-df.S Sun Feb 07 17:44:34 2010 +0900 @@ -1117,7 +1117,7 @@ ARM_FUNC_ALIAS eqdf2 cmpdf2 mov ip, #1 @ how should we specify unordered here? -1: str ip, [sp, #-4] +1: str ip, [sp, #-4]! @ Trap any INF/NAN first. mov ip, xh, lsl #1 @@ -1129,7 +1129,8 @@ @ Test for equality. @ Note that 0.0 is equal to -0.0. -2: orrs ip, xl, xh, lsl #1 @ if x == 0.0 or -0.0 +2: add sp, sp, #4 + orrs ip, xl, xh, lsl #1 @ if x == 0.0 or -0.0 do_it eq, e COND(orr,s,eq) ip, yl, yh, lsl #1 @ and y == 0.0 or -0.0 teqne xh, yh @ or xh == yh @@ -1168,7 +1169,7 @@ bne 2b orrs ip, yl, yh, lsl #12 beq 2b @ y is not NAN -5: ldr r0, [sp, #-4] @ unordered return code +5: ldr r0, [sp], #4 @ unordered return code RET FUNC_END gedf2 diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/arm/ieee754-sf.S --- a/gcc/config/arm/ieee754-sf.S Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/arm/ieee754-sf.S Sun Feb 07 17:44:34 2010 +0900 @@ -822,7 +822,7 @@ ARM_FUNC_ALIAS eqsf2 cmpsf2 mov ip, #1 @ how should we specify unordered here? -1: str ip, [sp, #-4] +1: str ip, [sp, #-4]! @ Trap any INF/NAN first. mov r2, r0, lsl #1 @@ -834,7 +834,8 @@ @ Compare values. @ Note that 0.0 is equal to -0.0. -2: orrs ip, r2, r3, lsr #1 @ test if both are 0, clear C flag +2: add sp, sp, #4 + orrs ip, r2, r3, lsr #1 @ test if both are 0, clear C flag do_it ne teqne r0, r1 @ if not 0 compare sign do_it pl @@ -858,7 +859,7 @@ bne 2b movs ip, r1, lsl #9 beq 2b @ r1 is not NAN -5: ldr r0, [sp, #-4] @ return unordered code. +5: ldr r0, [sp], #4 @ return unordered code. RET FUNC_END gesf2 diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/arm/linux-atomic.c --- a/gcc/config/arm/linux-atomic.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/arm/linux-atomic.c Sun Feb 07 17:44:34 2010 +0900 @@ -266,8 +266,10 @@ void HIDDEN \ __sync_lock_release_##WIDTH (TYPE *ptr) \ { \ + /* All writes before this point must be seen before we release \ + the lock itself. */ \ + __kernel_dmb (); \ *ptr = 0; \ - __kernel_dmb (); \ } SYNC_LOCK_RELEASE (int, 4) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/arm/neon-schedgen.ml --- a/gcc/config/arm/neon-schedgen.ml Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/arm/neon-schedgen.ml Sun Feb 07 17:44:34 2010 +0900 @@ -48,7 +48,14 @@ and at present we do not emit specific guards.) *) -open Utils +let find_with_result fn lst = + let rec scan = function + [] -> raise Not_found + | l::ls -> + match fn l with + Some result -> result + | _ -> scan ls in + scan lst let n1 = 1 and n2 = 2 and n3 = 3 and n4 = 4 and n5 = 5 and n6 = 6 and n7 = 7 and n8 = 8 and n9 = 9 diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/arm/neon.md --- a/gcc/config/arm/neon.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/arm/neon.md Sun Feb 07 17:44:34 2010 +0900 @@ -3611,7 +3611,8 @@ UNSPEC_VSHLL_N))] "TARGET_NEON" { - neon_const_bounds (operands[2], 0, neon_element_bits (mode)); + /* The boundaries are: 0 < imm <= size. */ + neon_const_bounds (operands[2], 0, neon_element_bits (mode) + 1); return "vshll.%T3%#\t%q0, %P1, %2"; } [(set_attr "neon_type" "neon_shift_1")] diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/arm/thumb2.md --- a/gcc/config/arm/thumb2.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/arm/thumb2.md Sun Feb 07 17:44:34 2010 +0900 @@ -57,7 +57,7 @@ [(match_operand:SI 2 "s_register_operand" "r") (match_operand:SI 3 "const_int_operand" "M")])) (match_operand:SI 1 "s_register_operand" "r")))] - "TARGET_ARM" + "TARGET_THUMB2" "bic%?\\t%0, %1, %2%S4" [(set_attr "predicable" "yes") (set_attr "shift" "2") diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/i386/cygming.h --- a/gcc/config/i386/cygming.h Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/i386/cygming.h Sun Feb 07 17:44:34 2010 +0900 @@ -49,8 +49,9 @@ target, always use the svr4_dbx_register_map for DWARF .eh_frame even if we don't use DWARF .debug_frame. */ #undef DWARF_FRAME_REGNUM -#define DWARF_FRAME_REGNUM(n) TARGET_64BIT \ - ? dbx64_register_map[(n)] : svr4_dbx_register_map[(n)] +#define DWARF_FRAME_REGNUM(n) \ + (TARGET_64BIT ? dbx64_register_map[(n)] \ + : svr4_dbx_register_map[(n)]) #ifdef HAVE_GAS_PE_SECREL32_RELOC /* Use section relative relocations for debugging offsets. Unlike @@ -126,8 +127,6 @@ /* Enable parsing of #pragma pack(push,) and #pragma pack(pop). */ #define HANDLE_PRAGMA_PACK_PUSH_POP 1 -/* Enable push_macro & pop_macro */ -#define HANDLE_PRAGMA_PUSH_POP_MACRO 1 union tree_node; #define TREE union tree_node * diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/i386/cygwin.h --- a/gcc/config/i386/cygwin.h Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/i386/cygwin.h Sun Feb 07 17:44:34 2010 +0900 @@ -94,7 +94,7 @@ %{shared|mdll: -e \ %{mno-cygwin:_DllMainCRTStartup@12} \ %{!mno-cygwin:__cygwin_dll_entry@12}}\ - %{!mno-cygwin:--dll-search-prefix=cyg}" + %{!mno-cygwin:--dll-search-prefix=cyg -tsaware}" /* Allocate space for all of the machine-spec-specific stuff. Allocate enough space for cygwin -> mingw32 munging plus diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/i386/i386.c --- a/gcc/config/i386/i386.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/i386/i386.c Sun Feb 07 17:44:34 2010 +0900 @@ -10379,7 +10379,7 @@ static bool ix86_pic_register_p (rtx x) { - if (GET_CODE (x) == VALUE) + if (GET_CODE (x) == VALUE && CSELIB_VAL_PTR (x)) return (pic_offset_table_rtx && rtx_equal_for_cselib_p (x, pic_offset_table_rtx)); else @@ -11313,13 +11313,14 @@ case 2: size = "WORD"; break; case 4: size = "DWORD"; break; case 8: size = "QWORD"; break; - case 12: size = "XWORD"; break; + case 12: size = "TBYTE"; break; case 16: if (GET_MODE (x) == XFmode) - size = "XWORD"; + size = "TBYTE"; else size = "XMMWORD"; break; + case 32: size = "YMMWORD"; break; default: gcc_unreachable (); } @@ -15674,8 +15675,9 @@ } } - /* Unsigned parallel compare is not supported by the hardware. Play some - tricks to turn this into a signed comparison against 0. */ + /* Unsigned parallel compare is not supported by the hardware. + Play some tricks to turn this into a signed comparison + against 0. */ if (code == GTU) { cop0 = force_reg (mode, cop0); @@ -15684,32 +15686,26 @@ { case V4SImode: case V2DImode: - { - rtx t1, t2, mask; - - /* Perform a parallel modulo subtraction. */ - t1 = gen_reg_rtx (mode); - emit_insn ((mode == V4SImode - ? gen_subv4si3 - : gen_subv2di3) (t1, cop0, cop1)); - - /* Extract the original sign bit of op0. */ - mask = ix86_build_signbit_mask (GET_MODE_INNER (mode), - true, false); - t2 = gen_reg_rtx (mode); - emit_insn ((mode == V4SImode - ? gen_andv4si3 - : gen_andv2di3) (t2, cop0, mask)); - - /* XOR it back into the result of the subtraction. This results - in the sign bit set iff we saw unsigned underflow. */ - x = gen_reg_rtx (mode); - emit_insn ((mode == V4SImode - ? gen_xorv4si3 - : gen_xorv2di3) (x, t1, t2)); - - code = GT; - } + { + rtx t1, t2, mask; + rtx (*gen_sub3) (rtx, rtx, rtx); + + /* Subtract (-(INT MAX) - 1) from both operands to make + them signed. */ + mask = ix86_build_signbit_mask (GET_MODE_INNER (mode), + true, false); + gen_sub3 = (mode == V4SImode + ? gen_subv4si3 : gen_subv2di3); + t1 = gen_reg_rtx (mode); + emit_insn (gen_sub3 (t1, cop0, mask)); + + t2 = gen_reg_rtx (mode); + emit_insn (gen_sub3 (t2, cop1, mask)); + + cop0 = t1; + cop1 = t2; + code = GT; + } break; case V16QImode: @@ -15719,6 +15715,8 @@ emit_insn (gen_rtx_SET (VOIDmode, x, gen_rtx_US_MINUS (mode, cop0, cop1))); + cop0 = x; + cop1 = CONST0_RTX (mode); code = EQ; negate = !negate; break; @@ -15726,9 +15724,6 @@ default: gcc_unreachable (); } - - cop0 = x; - cop1 = CONST0_RTX (mode); } } diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/i386/i386.md --- a/gcc/config/i386/i386.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/i386/i386.md Sun Feb 07 17:44:34 2010 +0900 @@ -9880,7 +9880,7 @@ (const_int 8)))) (clobber (reg:CC FLAGS_REG))] "(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))" - "ior{b}\t{%h2, %h0|%h0, %h2}" + "or{b}\t{%h2, %h0|%h0, %h2}" [(set_attr "type" "alu") (set_attr "length_immediate" "0") (set_attr "mode" "QI")]) @@ -14941,6 +14941,10 @@ ;; checked for calls. This is a bug in the generic code, but it isn't that ;; easy to fix. Ignore it for now and be prepared to fix things up. +;; P6 processors will jump to the address after the decrement when %esp +;; is used as a call operand, so they will execute return address as a code. +;; See Pentium Pro errata 70, Pentium 2 errata A33 and Pentium 3 errata E17. + ;; Call subroutine returning no value. (define_expand "call_pop" @@ -14970,11 +14974,11 @@ [(set_attr "type" "call")]) (define_insn "*call_pop_1" - [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm")) + [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "lsm")) (match_operand:SI 1 "" "")) (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (match_operand:SI 2 "immediate_operand" "i")))] - "!SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && !SIBLING_CALL_P (insn)" { if (constant_call_address_operand (operands[0], Pmode)) return "call\t%P0"; @@ -14987,7 +14991,7 @@ (match_operand:SI 1 "" "")) (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (match_operand:SI 2 "immediate_operand" "i,i")))] - "SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && SIBLING_CALL_P (insn)" "@ jmp\t%P0 jmp\t%A0" @@ -15026,9 +15030,9 @@ [(set_attr "type" "call")]) (define_insn "*call_1" - [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm")) + [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "lsm")) (match_operand 1 "" ""))] - "!SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && !SIBLING_CALL_P (insn)" { if (constant_call_address_operand (operands[0], Pmode)) return "call\t%P0"; @@ -15039,7 +15043,7 @@ (define_insn "*sibcall_1" [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "s,U")) (match_operand 1 "" ""))] - "SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && SIBLING_CALL_P (insn)" "@ jmp\t%P0 jmp\t%A0" @@ -15048,7 +15052,7 @@ (define_insn "*call_1_rex64" [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rsm")) (match_operand 1 "" ""))] - "!SIBLING_CALL_P (insn) && TARGET_64BIT + "TARGET_64BIT && !SIBLING_CALL_P (insn) && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC" { if (constant_call_address_operand (operands[0], Pmode)) @@ -15073,7 +15077,7 @@ (clobber (reg:TI XMM15_REG)) (clobber (reg:DI SI_REG)) (clobber (reg:DI DI_REG))] - "!SIBLING_CALL_P (insn) && TARGET_64BIT" + "TARGET_64BIT && !SIBLING_CALL_P (insn)" { if (constant_call_address_operand (operands[0], Pmode)) return "call\t%P0"; @@ -15084,14 +15088,14 @@ (define_insn "*call_1_rex64_large" [(call (mem:QI (match_operand:DI 0 "call_insn_operand" "rm")) (match_operand 1 "" ""))] - "!SIBLING_CALL_P (insn) && TARGET_64BIT" + "TARGET_64BIT && !SIBLING_CALL_P (insn)" "call\t%A0" [(set_attr "type" "call")]) (define_insn "*sibcall_1_rex64" [(call (mem:QI (match_operand:DI 0 "sibcall_insn_operand" "s,U")) (match_operand 1 "" ""))] - "SIBLING_CALL_P (insn) && TARGET_64BIT" + "TARGET_64BIT && SIBLING_CALL_P (insn)" "@ jmp\t%P0 jmp\t%A0" @@ -21469,11 +21473,11 @@ (define_insn "*call_value_pop_1" [(set (match_operand 0 "" "") - (call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm")) + (call (mem:QI (match_operand:SI 1 "call_insn_operand" "lsm")) (match_operand:SI 2 "" ""))) (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (match_operand:SI 3 "immediate_operand" "i")))] - "!SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && !SIBLING_CALL_P (insn)" { if (constant_call_address_operand (operands[1], Pmode)) return "call\t%P1"; @@ -21487,7 +21491,7 @@ (match_operand:SI 2 "" ""))) (set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (match_operand:SI 3 "immediate_operand" "i,i")))] - "SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && SIBLING_CALL_P (insn)" "@ jmp\t%P1 jmp\t%A1" @@ -21536,7 +21540,7 @@ (clobber (reg:TI XMM15_REG)) (clobber (reg:DI SI_REG)) (clobber (reg:DI DI_REG))] - "!SIBLING_CALL_P (insn) && TARGET_64BIT" + "TARGET_64BIT && !SIBLING_CALL_P (insn)" { if (SIBLING_CALL_P (insn)) return "jmp\t%P1"; @@ -21547,9 +21551,9 @@ (define_insn "*call_value_1" [(set (match_operand 0 "" "") - (call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm")) + (call (mem:QI (match_operand:SI 1 "call_insn_operand" "lsm")) (match_operand:SI 2 "" "")))] - "!SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && !SIBLING_CALL_P (insn)" { if (constant_call_address_operand (operands[1], Pmode)) return "call\t%P1"; @@ -21561,7 +21565,7 @@ [(set (match_operand 0 "" "") (call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "s,U")) (match_operand:SI 2 "" "")))] - "SIBLING_CALL_P (insn) && !TARGET_64BIT" + "!TARGET_64BIT && SIBLING_CALL_P (insn)" "@ jmp\t%P1 jmp\t%A1" @@ -21571,7 +21575,7 @@ [(set (match_operand 0 "" "") (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rsm")) (match_operand:DI 2 "" "")))] - "!SIBLING_CALL_P (insn) && TARGET_64BIT + "TARGET_64BIT && !SIBLING_CALL_P (insn) && ix86_cmodel != CM_LARGE && ix86_cmodel != CM_LARGE_PIC" { if (constant_call_address_operand (operands[1], Pmode)) @@ -21609,7 +21613,7 @@ [(set (match_operand 0 "" "") (call (mem:QI (match_operand:DI 1 "call_insn_operand" "rm")) (match_operand:DI 2 "" "")))] - "!SIBLING_CALL_P (insn) && TARGET_64BIT" + "TARGET_64BIT && !SIBLING_CALL_P (insn)" "call\t%A1" [(set_attr "type" "callv")]) @@ -21617,7 +21621,7 @@ [(set (match_operand 0 "" "") (call (mem:QI (match_operand:DI 1 "sibcall_insn_operand" "s,U")) (match_operand:DI 2 "" "")))] - "SIBLING_CALL_P (insn) && TARGET_64BIT" + "TARGET_64BIT && SIBLING_CALL_P (insn)" "@ jmp\t%P1 jmp\t%A1" @@ -21932,7 +21936,7 @@ [(set_attr "type" "multi")]) (define_mode_iterator CRC32MODE [QI HI SI]) -(define_mode_attr crc32modesuffix [(QI "b") (HI "w") (SI "l")]) +(define_mode_attr crc32modesuffix [(QI "{b}") (HI "{w}") (SI "{l}")]) (define_mode_attr crc32modeconstraint [(QI "qm") (HI "rm") (SI "rm")]) (define_insn "sse4_2_crc32" @@ -21955,7 +21959,7 @@ (match_operand:DI 2 "nonimmediate_operand" "rm")] UNSPEC_CRC32))] "TARGET_SSE4_2 && TARGET_64BIT" - "crc32q\t{%2, %0|%0, %2}" + "crc32{q}\t{%2, %0|%0, %2}" [(set_attr "type" "sselog1") (set_attr "prefix_rep" "1") (set_attr "prefix_extra" "1") diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/i386/mmx.md --- a/gcc/config/i386/mmx.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/i386/mmx.md Sun Feb 07 17:44:34 2010 +0900 @@ -336,7 +336,7 @@ "TARGET_3DNOW && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ pfsub\t{%2, %0|%0, %2} - pfsubr\t{%2, %0|%0, %2}" + pfsubr\t{%1, %0|%0, %1}" [(set_attr "type" "mmxadd") (set_attr "mode" "V2SF")]) @@ -1202,7 +1202,10 @@ "TARGET_SSE || TARGET_3DNOW_A" { operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3]))); - return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}"; + if (MEM_P (operands[2])) + return "pinsrw\t{%3, %2, %0|%0, %2, %3}"; + else + return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}"; } [(set_attr "type" "mmxcvt") (set_attr "mode" "DI")]) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/i386/predicates.md --- a/gcc/config/i386/predicates.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/i386/predicates.md Sun Feb 07 17:44:34 2010 +0900 @@ -519,6 +519,22 @@ FIRST_PSEUDO_REGISTER, LAST_VIRTUAL_REGISTER)); }) +;; P6 processors will jump to the address after the decrement when %esp +;; is used as a call operand, so they will execute return address as a code. +;; See Pentium Pro errata 70, Pentium 2 errata A33 and Pentium 3 errata E17. + +(define_predicate "call_register_no_elim_operand" + (match_operand 0 "register_operand") +{ + if (GET_CODE (op) == SUBREG) + op = SUBREG_REG (op); + + if (!TARGET_64BIT && op == stack_pointer_rtx) + return 0; + + return register_no_elim_operand (op, mode); +}) + ;; Similarly, but include the stack pointer. This is used to prevent esp ;; from being used as an index reg. (define_predicate "index_register_operand" @@ -547,7 +563,7 @@ ;; Test for a valid operand for a call instruction. (define_predicate "call_insn_operand" (ior (match_operand 0 "constant_call_address_operand") - (ior (match_operand 0 "register_no_elim_operand") + (ior (match_operand 0 "call_register_no_elim_operand") (match_operand 0 "memory_operand")))) ;; Similarly, but for tail calls, in which we cannot allow memory references. diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/i386/sse.md --- a/gcc/config/i386/sse.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/i386/sse.md Sun Feb 07 17:44:34 2010 +0900 @@ -2307,7 +2307,7 @@ (parallel [(const_int 0)]))] UNSPEC_FIX_NOTRUNC))] "TARGET_SSE && TARGET_64BIT" - "%vcvtss2siq\t{%1, %0|%0, %1}" + "%vcvtss2si{q}\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") (set_attr "prefix_rep" "1") @@ -2319,7 +2319,7 @@ (unspec:DI [(match_operand:SF 1 "nonimmediate_operand" "x,m")] UNSPEC_FIX_NOTRUNC))] "TARGET_SSE && TARGET_64BIT" - "%vcvtss2siq\t{%1, %0|%0, %1}" + "%vcvtss2si{q}\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") (set_attr "amdfam10_decode" "double,double") @@ -2349,7 +2349,7 @@ (match_operand:V4SF 1 "nonimmediate_operand" "x,m") (parallel [(const_int 0)]))))] "TARGET_SSE && TARGET_64BIT" - "%vcvttss2siq\t{%1, %0|%0, %1}" + "%vcvttss2si{q}\t{%1, %0|%0, %1}" [(set_attr "type" "sseicvt") (set_attr "athlon_decode" "double,vector") (set_attr "amdfam10_decode" "double,double") @@ -6590,7 +6590,10 @@ "TARGET_AVX" { operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3]))); - return "vpinsr\t{%3, %k2, %1, %0|%0, %1, %k2, %3}"; + if (MEM_P (operands[2])) + return "vpinsr\t{%3, %2, %1, %0|%0, %1, %2, %3}"; + else + return "vpinsr\t{%3, %k2, %1, %0|%0, %1, %k2, %3}"; } [(set_attr "type" "sselog") (set_attr "prefix" "vex") @@ -6606,7 +6609,10 @@ "TARGET_SSE4_1" { operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3]))); - return "pinsrb\t{%3, %k2, %0|%0, %k2, %3}"; + if (MEM_P (operands[2])) + return "pinsrb\t{%3, %2, %0|%0, %2, %3}"; + else + return "pinsrb\t{%3, %k2, %0|%0, %k2, %3}"; } [(set_attr "type" "sselog") (set_attr "prefix_extra" "1") @@ -6622,7 +6628,10 @@ "TARGET_SSE2" { operands[3] = GEN_INT (exact_log2 (INTVAL (operands[3]))); - return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}"; + if (MEM_P (operands[2])) + return "pinsrw\t{%3, %2, %0|%0, %2, %3}"; + else + return "pinsrw\t{%3, %k2, %0|%0, %k2, %3}"; } [(set_attr "type" "sselog") (set_attr "prefix_data16" "1") diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/ia64/ia64.c --- a/gcc/config/ia64/ia64.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/ia64/ia64.c Sun Feb 07 17:44:34 2010 +0900 @@ -1628,25 +1628,18 @@ { rtx t1, t2, mask; - /* Perform a parallel modulo subtraction. */ - t1 = gen_reg_rtx (V2SImode); - emit_insn (gen_subv2si3 (t1, op0, op1)); - - /* Extract the original sign bit of op0. */ - mask = GEN_INT (-0x80000000); + /* Subtract (-(INT MAX) - 1) from both operands to make + them signed. */ + mask = GEN_INT (0x80000000); mask = gen_rtx_CONST_VECTOR (V2SImode, gen_rtvec (2, mask, mask)); - mask = force_reg (V2SImode, mask); - t2 = gen_reg_rtx (V2SImode); - emit_insn (gen_andv2si3 (t2, op0, mask)); - - /* XOR it back into the result of the subtraction. This results - in the sign bit set iff we saw unsigned underflow. */ - x = gen_reg_rtx (V2SImode); - emit_insn (gen_xorv2si3 (x, t1, t2)); - + mask = force_reg (mode, mask); + t1 = gen_reg_rtx (mode); + emit_insn (gen_subv2si3 (t1, op0, mask)); + t2 = gen_reg_rtx (mode); + emit_insn (gen_subv2si3 (t2, op1, mask)); + op0 = t1; + op1 = t2; code = GT; - op0 = x; - op1 = CONST0_RTX (mode); } break; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/mips/mips-dsp.md --- a/gcc/config/mips/mips-dsp.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/mips/mips-dsp.md Sun Feb 07 17:44:34 2010 +0900 @@ -1048,7 +1048,7 @@ (define_insn "mips_lhx_" [(set (match_operand:SI 0 "register_operand" "=d") - (zero_extend:SI + (sign_extend:SI (mem:HI (plus:P (match_operand:P 1 "register_operand" "d") (match_operand:P 2 "register_operand" "d")))))] "ISA_HAS_DSP" diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/mips/mips.c --- a/gcc/config/mips/mips.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/mips/mips.c Sun Feb 07 17:44:34 2010 +0900 @@ -2328,6 +2328,28 @@ : emit_move_insn_1 (dest, src)); } +/* Emit an instruction of the form (set TARGET (CODE OP0)). */ + +static void +mips_emit_unary (enum rtx_code code, rtx target, rtx op0) +{ + emit_insn (gen_rtx_SET (VOIDmode, target, + gen_rtx_fmt_e (code, GET_MODE (op0), op0))); +} + +/* Compute (CODE OP0) and store the result in a new register of mode MODE. + Return that new register. */ + +static rtx +mips_force_unary (enum machine_mode mode, enum rtx_code code, rtx op0) +{ + rtx reg; + + reg = gen_reg_rtx (mode); + mips_emit_unary (code, reg, op0); + return reg; +} + /* Emit an instruction of the form (set TARGET (CODE OP0 OP1)). */ static void @@ -6399,7 +6421,14 @@ void mips_expand_synci_loop (rtx begin, rtx end) { - rtx inc, label, cmp, cmp_result; + rtx inc, label, end_label, cmp_result, mask, length; + + /* Create end_label. */ + end_label = gen_label_rtx (); + + /* Check if begin equals end. */ + cmp_result = gen_rtx_EQ (VOIDmode, begin, end); + emit_jump_insn (gen_condjump (cmp_result, end_label)); /* Load INC with the cache line size (rdhwr INC,$1). */ inc = gen_reg_rtx (Pmode); @@ -6407,18 +6436,36 @@ ? gen_rdhwr_synci_step_si (inc) : gen_rdhwr_synci_step_di (inc)); + /* Check if inc is 0. */ + cmp_result = gen_rtx_EQ (VOIDmode, inc, const0_rtx); + emit_jump_insn (gen_condjump (cmp_result, end_label)); + + /* Calculate mask. */ + mask = mips_force_unary (Pmode, NEG, inc); + + /* Mask out begin by mask. */ + begin = mips_force_binary (Pmode, AND, begin, mask); + + /* Calculate length. */ + length = mips_force_binary (Pmode, MINUS, end, begin); + /* Loop back to here. */ label = gen_label_rtx (); emit_label (label); emit_insn (gen_synci (begin)); - cmp = mips_force_binary (Pmode, GTU, begin, end); - + /* Update length. */ + mips_emit_binary (MINUS, length, length, inc); + + /* Update begin. */ mips_emit_binary (PLUS, begin, begin, inc); - cmp_result = gen_rtx_EQ (VOIDmode, cmp, const0_rtx); + /* Check if length is greater than 0. */ + cmp_result = gen_rtx_GT (VOIDmode, length, const0_rtx); emit_jump_insn (gen_condjump (cmp_result, label)); + + emit_label (end_label); } /* Expand a QI or HI mode atomic memory operation. diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/pa/pa.c --- a/gcc/config/pa/pa.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/pa/pa.c Sun Feb 07 17:44:34 2010 +0900 @@ -1620,7 +1620,7 @@ /* D might not fit in 14 bits either; for such cases load D into scratch reg. */ if (GET_CODE (operand1) == MEM - && !memory_address_p (Pmode, XEXP (operand1, 0))) + && !memory_address_p (GET_MODE (operand0), XEXP (operand1, 0))) { /* We are reloading the address into the scratch register, so we want to make sure the scratch register is a full register. */ @@ -7437,7 +7437,7 @@ { length += 20; - if (!TARGET_PA_20 && !TARGET_NO_SPACE_REGS && flag_pic) + if (!TARGET_PA_20 && !TARGET_NO_SPACE_REGS && (!local_call || flag_pic)) length += 8; } @@ -7457,7 +7457,7 @@ if (!sibcall) length += 8; - if (!TARGET_NO_SPACE_REGS && flag_pic) + if (!TARGET_NO_SPACE_REGS && (!local_call || flag_pic)) length += 8; } } @@ -7654,7 +7654,7 @@ if (!sibcall && !TARGET_PA_20) { output_asm_insn ("{bl|b,l} .+8,%%r2", xoperands); - if (TARGET_NO_SPACE_REGS) + if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic)) output_asm_insn ("addi 8,%%r2,%%r2", xoperands); else output_asm_insn ("addi 16,%%r2,%%r2", xoperands); @@ -7679,20 +7679,20 @@ } else { - if (!TARGET_NO_SPACE_REGS && flag_pic) + if (!TARGET_NO_SPACE_REGS && (!local_call || flag_pic)) output_asm_insn ("ldsid (%%r1),%%r31\n\tmtsp %%r31,%%sr0", xoperands); if (sibcall) { - if (TARGET_NO_SPACE_REGS || !flag_pic) + if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic)) output_asm_insn ("be 0(%%sr4,%%r1)", xoperands); else output_asm_insn ("be 0(%%sr0,%%r1)", xoperands); } else { - if (TARGET_NO_SPACE_REGS || !flag_pic) + if (TARGET_NO_SPACE_REGS || (local_call && !flag_pic)) output_asm_insn ("ble 0(%%sr4,%%r1)", xoperands); else output_asm_insn ("ble 0(%%sr0,%%r1)", xoperands); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/pa/pa.md --- a/gcc/config/pa/pa.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/pa/pa.md Sun Feb 07 17:44:34 2010 +0900 @@ -3191,6 +3191,40 @@ DONE; }") +;; Handle HImode input reloads requiring a general register as a +;; scratch register. +(define_expand "reload_inhi" + [(set (match_operand:HI 0 "register_operand" "=Z") + (match_operand:HI 1 "non_hard_reg_operand" "")) + (clobber (match_operand:HI 2 "register_operand" "=&r"))] + "" + " +{ + if (emit_move_sequence (operands, HImode, operands[2])) + DONE; + + /* We don't want the clobber emitted, so handle this ourselves. */ + emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1])); + DONE; +}") + +;; Handle HImode output reloads requiring a general register as a +;; scratch register. +(define_expand "reload_outhi" + [(set (match_operand:HI 0 "non_hard_reg_operand" "") + (match_operand:HI 1 "register_operand" "Z")) + (clobber (match_operand:HI 2 "register_operand" "=&r"))] + "" + " +{ + if (emit_move_sequence (operands, HImode, operands[2])) + DONE; + + /* We don't want the clobber emitted, so handle this ourselves. */ + emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1])); + DONE; +}") + (define_insn "" [(set (match_operand:HI 0 "move_dest_operand" "=r,r,r,r,r,Q,!*q,!r") @@ -3315,6 +3349,40 @@ DONE; }") +;; Handle QImode input reloads requiring a general register as a +;; scratch register. +(define_expand "reload_inqi" + [(set (match_operand:QI 0 "register_operand" "=Z") + (match_operand:QI 1 "non_hard_reg_operand" "")) + (clobber (match_operand:QI 2 "register_operand" "=&r"))] + "" + " +{ + if (emit_move_sequence (operands, QImode, operands[2])) + DONE; + + /* We don't want the clobber emitted, so handle this ourselves. */ + emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1])); + DONE; +}") + +;; Handle QImode output reloads requiring a general register as a +;; scratch register. +(define_expand "reload_outqi" + [(set (match_operand:QI 0 "non_hard_reg_operand" "") + (match_operand:QI 1 "register_operand" "Z")) + (clobber (match_operand:QI 2 "register_operand" "=&r"))] + "" + " +{ + if (emit_move_sequence (operands, QImode, operands[2])) + DONE; + + /* We don't want the clobber emitted, so handle this ourselves. */ + emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1])); + DONE; +}") + (define_insn "" [(set (match_operand:QI 0 "move_dest_operand" "=r,r,r,r,r,Q,!*q,!r") @@ -7503,17 +7571,6 @@ operands[0] = index; } - /* In 64bit mode we must make sure to wipe the upper bits of the register - just in case the addition overflowed or we had random bits in the - high part of the register. */ - if (TARGET_64BIT) - { - rtx index = gen_reg_rtx (DImode); - - emit_insn (gen_extendsidi2 (index, operands[0])); - operands[0] = gen_rtx_SUBREG (SImode, index, 4); - } - if (!INT_5_BITS (operands[2])) operands[2] = force_reg (SImode, operands[2]); @@ -7530,6 +7587,17 @@ emit_insn (gen_cmpsi (operands[0], operands[2])); emit_jump_insn (gen_bgtu (operands[4])); + /* In 64bit mode we must make sure to wipe the upper bits of the register + just in case the addition overflowed or we had random bits in the + high part of the register. */ + if (TARGET_64BIT) + { + rtx index = gen_reg_rtx (DImode); + + emit_insn (gen_extendsidi2 (index, operands[0])); + operands[0] = index; + } + if (TARGET_BIG_SWITCH) { if (TARGET_64BIT) @@ -7590,8 +7658,7 @@ ;;; 64-bit code, 32-bit relative branch table. (define_insn "casesi64p" [(set (pc) (mem:DI (plus:DI - (mult:DI (sign_extend:DI - (match_operand:SI 0 "register_operand" "r")) + (mult:DI (match_operand:DI 0 "register_operand" "r") (const_int 8)) (label_ref (match_operand 1 "" ""))))) (clobber (match_scratch:DI 2 "=&r")) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/s390/2097.md --- a/gcc/config/s390/2097.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/s390/2097.md Sun Feb 07 17:44:34 2010 +0900 @@ -57,7 +57,8 @@ z10_int_fr_A3" "z10_other_super, z10_other_super_c_E1, z10_other_super_E1, \ z10_int_super, z10_int_super_E1, \ - z10_lr, z10_store_super") + z10_lr, z10_store_super" + " ! s390_agen_dep_p") ; Forwarding from z10_super to frz10_ and z10_rec. @@ -68,7 +69,8 @@ z10_store_super" "z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \ z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \ - z10_other_fr_E1, z10_store_rec") + z10_other_fr_E1, z10_store_rec" + " ! s390_agen_dep_p") ; Forwarding from z10_fwd and z10_fr to z10_rec and z10_fr. @@ -84,7 +86,8 @@ z10_int_fr_A3" "z10_int_fr, z10_int_fr_E1, z10_int_fr_A3, \ z10_other_fr, z10_other_fr_A3, z10_lr_fr, z10_lr_fr_E1, \ - z10_other_fr_E1, z10_store_rec") + z10_other_fr_E1, z10_store_rec" + " ! s390_agen_dep_p") ; @@ -205,15 +208,12 @@ (and (eq_attr "type" "lr") (eq_attr "z10prop" "z10_fr"))) "z10_e1_ANY, z10_Gate_ANY") -; "z10_e1_ANY") (define_insn_reservation "z10_lr_fr_E1" 6 (and (eq_attr "cpu" "z10") (and (eq_attr "type" "lr") (eq_attr "z10prop" "z10_fr_E1"))) "z10_e1_ANY, z10_Gate_ANY") -; "z10_e1_ANY") - (define_insn_reservation "z10_la" 6 (and (eq_attr "cpu" "z10") @@ -227,14 +227,12 @@ (and (eq_attr "type" "la") (eq_attr "z10prop" "z10_fwd"))) "z10_e1_ANY, z10_Gate_ANY") -; "z10_e1_ANY") (define_insn_reservation "z10_la_fwd_A1" 6 (and (eq_attr "cpu" "z10") (and (eq_attr "type" "la") (eq_attr "z10prop" "z10_fwd_A1"))) "z10_e1_ANY, z10_Gate_ANY") -; "z10_e1_ANY") ; larl-type instructions @@ -666,13 +664,14 @@ ; Address-related bypasses ; -; Here is the cycle diagram for Address-related bypasses: +; Here is the cycle diagram for address-related bypasses: ; ... G1 G2 G3 A0 A1 A2 A3 E1 P1 P2 P3 R0 ... -; ^ ^ ^ ^ ^ -; | | | | E1-type bypasses provide the new addr AFTER this cycle -; | | | A3-type bypasses provide the new addr AFTER this cycle -; | | A1-type bypasses provide the new addr AFTER this cycle -; | AGI resolution, actual USE of address is DURING this cycle +; ^ ^ ^ ^ ^ ^ +; | | | | | without bypass, its available AFTER this cycle +; | | | | E1-type bypasses provide the new value AFTER this cycle +; | | | A3-type bypasses provide the new value AFTER this cycle +; | | A1-type bypasses provide the new value AFTER this cycle +; | AGI resolution, actual USE of new value is DURING this cycle ; AGI detection (define_bypass 3 "z10_larl_A1, z10_la_fwd_A1, z10_other_fwd_A1, \ @@ -682,7 +681,6 @@ z10_cs, z10_stm, z10_other" "s390_agen_dep_p") - (define_bypass 5 "z10_larl_fwd_A3, z10_load_fwd_A3, z10_other_fwd_A3, \ z10_other_fr_A3, z10_int_fwd_A3, z10_int_fr_A3" "z10_agen, z10_la, z10_branch, z10_call, z10_load, \ @@ -699,6 +697,12 @@ z10_cs, z10_stm, z10_other" "s390_agen_dep_p") +(define_bypass 9 "z10_int_super, z10_int_fwd, z10_int_fr" + "z10_agen, z10_la, z10_branch, z10_call, z10_load, \ + z10_store, \ + z10_cs, z10_stm, z10_other" + "s390_agen_dep_p") + ; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/s390/s390.c --- a/gcc/config/s390/s390.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/s390/s390.c Sun Feb 07 17:44:34 2010 +0900 @@ -224,6 +224,9 @@ extern int reload_completed; +/* Kept up to date using the SCHED_VARIABLE_ISSUE hook. */ +static rtx last_scheduled_insn; + /* Save information from a "cmpxx" operation until the branch or scc is emitted. */ rtx s390_compare_op0, s390_compare_op1; @@ -9973,6 +9976,119 @@ } } +/* Return true if INSN is a fp load insn writing register REGNO. */ +static inline bool +s390_fpload_toreg (rtx insn, unsigned int regno) +{ + rtx set; + enum attr_type flag = s390_safe_attr_type (insn); + + if (flag != TYPE_FLOADSF && flag != TYPE_FLOADDF) + return false; + + set = single_set (insn); + + if (set == NULL_RTX) + return false; + + if (!REG_P (SET_DEST (set)) || !MEM_P (SET_SRC (set))) + return false; + + if (REGNO (SET_DEST (set)) != regno) + return false; + + return true; +} + +/* This value describes the distance to be avoided between an + aritmetic fp instruction and an fp load writing the same register. + Z10_EARLYLOAD_DISTANCE - 1 as well as Z10_EARLYLOAD_DISTANCE + 1 is + fine but the exact value has to be avoided. Otherwise the FP + pipeline will throw an exception causing a major penalty. */ +#define Z10_EARLYLOAD_DISTANCE 7 + +/* Rearrange the ready list in order to avoid the situation described + for Z10_EARLYLOAD_DISTANCE. A problematic load instruction is + moved to the very end of the ready list. */ +static void +s390_z10_prevent_earlyload_conflicts (rtx *ready, int *nready_p) +{ + unsigned int regno; + int nready = *nready_p; + rtx tmp; + int i; + rtx insn; + rtx set; + enum attr_type flag; + int distance; + + /* Skip DISTANCE - 1 active insns. */ + for (insn = last_scheduled_insn, distance = Z10_EARLYLOAD_DISTANCE - 1; + distance > 0 && insn != NULL_RTX; + distance--, insn = prev_active_insn (insn)) + if (CALL_P (insn) || JUMP_P (insn)) + return; + + if (insn == NULL_RTX) + return; + + set = single_set (insn); + + if (set == NULL_RTX || !REG_P (SET_DEST (set)) + || GET_MODE_CLASS (GET_MODE (SET_DEST (set))) != MODE_FLOAT) + return; + + flag = s390_safe_attr_type (insn); + + if (flag == TYPE_FLOADSF || flag == TYPE_FLOADDF) + return; + + regno = REGNO (SET_DEST (set)); + i = nready - 1; + + while (!s390_fpload_toreg (ready[i], regno) && i > 0) + i--; + + if (!i) + return; + + tmp = ready[i]; + memmove (&ready[1], &ready[0], sizeof (rtx) * i); + ready[0] = tmp; +} + +/* This function is called via hook TARGET_SCHED_REORDER before + issueing one insn from list READY which contains *NREADYP entries. + For target z10 it reorders load instructions to avoid early load + conflicts in the floating point pipeline */ +static int +s390_sched_reorder (FILE *file ATTRIBUTE_UNUSED, int verbose ATTRIBUTE_UNUSED, + rtx *ready, int *nreadyp, int clock ATTRIBUTE_UNUSED) +{ + if (s390_tune == PROCESSOR_2097_Z10) + if (reload_completed && *nreadyp > 1) + s390_z10_prevent_earlyload_conflicts (ready, nreadyp); + + return s390_issue_rate (); +} + +/* This function is called via hook TARGET_SCHED_VARIABLE_ISSUE after + the scheduler has issued INSN. It stores the last issued insn into + last_scheduled_insn in order to make it available for + s390_sched_reorder. */ +static int +s390_sched_variable_issue (FILE *file ATTRIBUTE_UNUSED, + int verbose ATTRIBUTE_UNUSED, + rtx insn, int more) +{ + last_scheduled_insn = insn; + + if (GET_CODE (PATTERN (insn)) != USE + && GET_CODE (PATTERN (insn)) != CLOBBER) + return more - 1; + else + return more; +} /* Initialize GCC target structure. */ @@ -10027,6 +10143,11 @@ #undef TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD #define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD s390_first_cycle_multipass_dfa_lookahead +#undef TARGET_SCHED_VARIABLE_ISSUE +#define TARGET_SCHED_VARIABLE_ISSUE s390_sched_variable_issue +#undef TARGET_SCHED_REORDER +#define TARGET_SCHED_REORDER s390_sched_reorder + #undef TARGET_CANNOT_COPY_INSN_P #define TARGET_CANNOT_COPY_INSN_P s390_cannot_copy_insn_p #undef TARGET_RTX_COSTS diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/s390/s390.md --- a/gcc/config/s390/s390.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/s390/s390.md Sun Feb 07 17:44:34 2010 +0900 @@ -7049,21 +7049,6 @@ (set_attr "type" "fsimp")]) ;; -;;- Copy sign instructions -;; - -; cpsdr -(define_insn "copysign3" - [(set (match_operand:FP 0 "register_operand" "=f") - (unspec:FP [(match_operand:FP 1 "register_operand" "") - (match_operand:FP 2 "register_operand" "f")] - UNSPEC_COPYSIGN))] - "TARGET_DFP" - "cpsdr\t%0,%2,%1" - [(set_attr "op_type" "RRF") - (set_attr "type" "fsimp")]) - -;; ;;- Square root instructions. ;; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/sparc/sparc-protos.h --- a/gcc/config/sparc/sparc-protos.h Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/sparc/sparc-protos.h Sun Feb 07 17:44:34 2010 +0900 @@ -70,8 +70,6 @@ extern bool constant_address_p (rtx); extern bool legitimate_pic_operand_p (rtx); extern int legitimate_address_p (enum machine_mode, rtx, int); -extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx); -extern rtx legitimize_tls_address (rtx); extern rtx legitimize_address (rtx, rtx, enum machine_mode); extern void sparc_emit_call_insn (rtx, rtx); extern void sparc_defer_case_vector (rtx, rtx, int); @@ -103,7 +101,6 @@ extern int fp_sethi_p (rtx); extern int fp_mov_p (rtx); extern int fp_high_losum_p (rtx); -extern bool sparc_tls_referenced_p (rtx); extern int mem_min_alignment (rtx, int); extern int pic_address_needs_scratch (rtx); extern int reg_unused_after (rtx, rtx); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/sparc/sparc.c --- a/gcc/config/sparc/sparc.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/sparc/sparc.c Sun Feb 07 17:44:34 2010 +0900 @@ -412,6 +412,9 @@ static void sparc_va_start (tree, rtx); static tree sparc_gimplify_va_arg (tree, tree, gimple_seq *, gimple_seq *); static bool sparc_vector_mode_supported_p (enum machine_mode); +static bool sparc_tls_referenced_p (rtx); +static rtx legitimize_tls_address (rtx); +static rtx legitimize_pic_address (rtx, rtx); static bool sparc_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode, const_tree, bool); static int sparc_arg_partial_bytes (CUMULATIVE_ARGS *, @@ -986,34 +989,17 @@ /* Fixup TLS cases. */ if (TARGET_HAVE_TLS && CONSTANT_P (operands[1]) - && GET_CODE (operands[1]) != HIGH && sparc_tls_referenced_p (operands [1])) { - rtx sym = operands[1]; - rtx addend = NULL; - - if (GET_CODE (sym) == CONST && GET_CODE (XEXP (sym, 0)) == PLUS) - { - addend = XEXP (XEXP (sym, 0), 1); - sym = XEXP (XEXP (sym, 0), 0); - } - - gcc_assert (SPARC_SYMBOL_REF_TLS_P (sym)); - - sym = legitimize_tls_address (sym); - if (addend) - { - sym = gen_rtx_PLUS (mode, sym, addend); - sym = force_operand (sym, operands[0]); - } - operands[1] = sym; - } - + operands[1] = legitimize_tls_address (operands[1]); + return false; + } + /* Fixup PIC cases. */ if (flag_pic && CONSTANT_P (operands[1])) { if (pic_address_needs_scratch (operands[1])) - operands[1] = legitimize_pic_address (operands[1], mode, 0); + operands[1] = legitimize_pic_address (operands[1], NULL_RTX); /* VxWorks does not impose a fixed gap between segments; the run-time gap can be different from the object-file gap. We therefore can't @@ -1041,10 +1027,8 @@ if (symbolic_operand (operands[1], mode)) { operands[1] = legitimize_pic_address (operands[1], - mode, - (reload_in_progress ? - operands[0] : - NULL_RTX)); + reload_in_progress + ? operands[0] : NULL_RTX); return false; } } @@ -2865,23 +2849,11 @@ bool legitimate_constant_p (rtx x) { - rtx inner; - switch (GET_CODE (x)) { + case CONST: case SYMBOL_REF: - /* TLS symbols are not constant. */ - if (SYMBOL_REF_TLS_MODEL (x)) - return false; - break; - - case CONST: - inner = XEXP (x, 0); - - /* Offsets of TLS symbols are never valid. - Discourage CSE from creating them. */ - if (GET_CODE (inner) == PLUS - && SPARC_SYMBOL_REF_TLS_P (XEXP (inner, 0))) + if (sparc_tls_referenced_p (x)) return false; break; @@ -2948,10 +2920,7 @@ { if (pic_address_needs_scratch (x)) return false; - if (SPARC_SYMBOL_REF_TLS_P (x) - || (GET_CODE (x) == CONST - && GET_CODE (XEXP (x, 0)) == PLUS - && SPARC_SYMBOL_REF_TLS_P (XEXP (XEXP (x, 0), 0)))) + if (sparc_tls_referenced_p (x)) return false; return true; } @@ -2989,7 +2958,7 @@ && GET_CODE (rs2) != SUBREG && GET_CODE (rs2) != LO_SUM && GET_CODE (rs2) != MEM - && ! SPARC_SYMBOL_REF_TLS_P (rs2) + && !(GET_CODE (rs2) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs2)) && (! symbolic_operand (rs2, VOIDmode) || mode == Pmode) && (GET_CODE (rs2) != CONST_INT || SMALL_INT (rs2))) || ((REG_P (rs1) @@ -3029,7 +2998,8 @@ rs2 = NULL; imm1 = XEXP (rs1, 1); rs1 = XEXP (rs1, 0); - if (! CONSTANT_P (imm1) || SPARC_SYMBOL_REF_TLS_P (rs1)) + if (!CONSTANT_P (imm1) + || (GET_CODE (rs1) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs1))) return 0; } } @@ -3038,7 +3008,8 @@ rs1 = XEXP (addr, 0); imm1 = XEXP (addr, 1); - if (! CONSTANT_P (imm1) || SPARC_SYMBOL_REF_TLS_P (rs1)) + if (!CONSTANT_P (imm1) + || (GET_CODE (rs1) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (rs1))) return 0; /* We can't allow TFmode in 32-bit mode, because an offset greater @@ -3114,29 +3085,28 @@ return temp; } -/* Return 1 if *X is a thread-local symbol. */ - -static int -sparc_tls_symbol_ref_1 (rtx *x, void *data ATTRIBUTE_UNUSED) -{ - return SPARC_SYMBOL_REF_TLS_P (*x); -} - -/* Return 1 if X contains a thread-local symbol. */ - -bool +/* Return true if X contains a thread-local symbol. */ + +static bool sparc_tls_referenced_p (rtx x) { if (!TARGET_HAVE_TLS) return false; - return for_each_rtx (&x, &sparc_tls_symbol_ref_1, 0); + if (GET_CODE (x) == CONST && GET_CODE (XEXP (x, 0)) == PLUS) + x = XEXP (XEXP (x, 0), 0); + + if (GET_CODE (x) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (x)) + return true; + + /* That's all we handle in legitimize_tls_address for now. */ + return false; } /* ADDR contains a thread-local SYMBOL_REF. Generate code to compute this (thread-local) address. */ -rtx +static rtx legitimize_tls_address (rtx addr) { rtx temp1, temp2, temp3, ret, o0, got, insn; @@ -3260,21 +3230,34 @@ gcc_unreachable (); } + else if (GET_CODE (addr) == CONST) + { + rtx base, offset; + + gcc_assert (GET_CODE (XEXP (addr, 0)) == PLUS); + + base = legitimize_tls_address (XEXP (XEXP (addr, 0), 0)); + offset = XEXP (XEXP (addr, 0), 1); + + base = force_operand (base, NULL_RTX); + if (!(GET_CODE (offset) == CONST_INT && SMALL_INT (offset))) + offset = force_reg (Pmode, offset); + ret = gen_rtx_PLUS (Pmode, base, offset); + } + else gcc_unreachable (); /* for now ... */ return ret; } - /* Legitimize PIC addresses. If the address is already position-independent, we return ORIG. Newly generated position-independent addresses go into a reg. This is REG if nonzero, otherwise we allocate register(s) as necessary. */ -rtx -legitimize_pic_address (rtx orig, enum machine_mode mode ATTRIBUTE_UNUSED, - rtx reg) +static rtx +legitimize_pic_address (rtx orig, rtx reg) { if (GET_CODE (orig) == SYMBOL_REF /* See the comment in sparc_expand_move. */ @@ -3341,9 +3324,9 @@ } gcc_assert (GET_CODE (XEXP (orig, 0)) == PLUS); - base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg); - offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, - base == reg ? 0 : reg); + base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), reg); + offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), + base == reg ? NULL_RTX : reg); if (GET_CODE (offset) == CONST_INT) { @@ -3395,10 +3378,10 @@ if (x != orig_x && legitimate_address_p (mode, x, FALSE)) return x; - if (SPARC_SYMBOL_REF_TLS_P (x)) + if (sparc_tls_referenced_p (x)) x = legitimize_tls_address (x); else if (flag_pic) - x = legitimize_pic_address (x, mode, 0); + x = legitimize_pic_address (x, NULL_RTX); else if (GET_CODE (x) == PLUS && CONSTANT_ADDRESS_P (XEXP (x, 1))) x = gen_rtx_PLUS (Pmode, XEXP (x, 0), copy_to_mode_reg (Pmode, XEXP (x, 1))); @@ -3407,8 +3390,9 @@ copy_to_mode_reg (Pmode, XEXP (x, 0))); else if (GET_CODE (x) == SYMBOL_REF || GET_CODE (x) == CONST - || GET_CODE (x) == LABEL_REF) + || GET_CODE (x) == LABEL_REF) x = copy_to_suggested_reg (x, NULL_RTX, Pmode); + return x; } @@ -8758,7 +8742,7 @@ /* Delay emitting the PIC helper function because it needs to change the section and we are emitting assembly code. */ load_pic_register (true); /* clobbers %o7 */ - scratch = legitimize_pic_address (funexp, Pmode, scratch); + scratch = legitimize_pic_address (funexp, scratch); seq = get_insns (); end_sequence (); emit_and_preserve (seq, spill_reg, spill_reg2); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/sparc/sparc.h --- a/gcc/config/sparc/sparc.h Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/sparc/sparc.h Sun Feb 07 17:44:34 2010 +0900 @@ -2297,9 +2297,6 @@ } \ } while (0) -#define SPARC_SYMBOL_REF_TLS_P(RTX) \ - (GET_CODE (RTX) == SYMBOL_REF && SYMBOL_REF_TLS_MODEL (RTX) != 0) - #define PRINT_OPERAND_PUNCT_VALID_P(CHAR) \ ((CHAR) == '#' || (CHAR) == '*' || (CHAR) == '(' \ || (CHAR) == ')' || (CHAR) == '_' || (CHAR) == '&') diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/spu/constraints.md --- a/gcc/config/spu/constraints.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/spu/constraints.md Sun Feb 07 17:44:34 2010 +0900 @@ -16,8 +16,14 @@ ;; . -;; GCC standard constraints: g, i, m, n, o, p, r, s, E-H, I-P, V, X -;; unused for SPU: E-H, L, Q, d, e, h, q, t-z +;; ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +;; GCC: ffffiiiiiiii x x x x xxxx xx +;; SPU: xxxx xxx xxxx xxxx x xxx xx x xxx xx +;; FREE: ffff i a a a a a aa aaa +;; x - used +;; a - available +;; i - available for integer immediates +;; f - available for floating point immediates ;; For most immediate constraints we have 3 variations to deal with the ;; fact const_int has no mode. One variation treats const_int as 32 bit, @@ -159,4 +165,15 @@ && INTVAL (XEXP (op, 0)) >= 0 && INTVAL (XEXP (op, 0)) <= 0x3ffff"))) + +;; Floating-point constant constraints. +(define_constraint "v" + "Floating point power of 2 with exponent in [0..127]" + (and (match_code "const_double,const_vector") + (match_test "exp2_immediate_p (op, VOIDmode, 0, 127)"))) + +(define_constraint "w" + "Floating point power of 2 with exponent in [-126..0]" + (and (match_code "const_double,const_vector") + (match_test "exp2_immediate_p (op, VOIDmode, -126, 0)"))) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/spu/predicates.md --- a/gcc/config/spu/predicates.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/spu/predicates.md Sun Feb 07 17:44:34 2010 +0900 @@ -39,13 +39,13 @@ (ior (not (match_code "subreg")) (match_test "valid_subreg (op)")))) -(define_predicate "spu_mem_operand" - (and (match_operand 0 "memory_operand") - (match_test "reload_in_progress || reload_completed || aligned_mem_p (op)"))) +(define_predicate "spu_mov_operand" + (ior (match_operand 0 "memory_operand") + (match_operand 0 "spu_nonmem_operand"))) -(define_predicate "spu_mov_operand" - (ior (match_operand 0 "spu_mem_operand") - (match_operand 0 "spu_nonmem_operand"))) +(define_predicate "spu_dest_operand" + (ior (match_operand 0 "memory_operand") + (match_operand 0 "spu_reg_operand"))) (define_predicate "call_operand" (and (match_code "mem") @@ -104,3 +104,19 @@ (ior (match_test "GET_MODE (XEXP (op, 0)) == HImode") (match_test "GET_MODE (XEXP (op, 0)) == SImode")))) +(define_predicate "spu_inv_exp2_operand" + (and (match_code "const_double,const_vector") + (and (match_operand 0 "immediate_operand") + (match_test "exp2_immediate_p (op, mode, -126, 0)")))) + +(define_predicate "spu_exp2_operand" + (and (match_code "const_double,const_vector") + (and (match_operand 0 "immediate_operand") + (match_test "exp2_immediate_p (op, mode, 0, 127)")))) + +(define_predicate "shiftrt_operator" + (match_code "lshiftrt,ashiftrt")) + +(define_predicate "extend_operator" + (match_code "sign_extend,zero_extend")) + diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/spu/spu-builtins.def --- a/gcc/config/spu/spu-builtins.def Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/spu/spu-builtins.def Sun Feb 07 17:44:34 2010 +0900 @@ -235,8 +235,8 @@ /* definitions to support generic builtin functions: */ -DEF_BUILTIN (SPU_CONVTS, CODE_FOR_spu_cflts, "spu_convts", B_INSN, _A3(SPU_BTI_V4SI, SPU_BTI_V4SF, SPU_BTI_U7)) -DEF_BUILTIN (SPU_CONVTU, CODE_FOR_spu_cfltu, "spu_convtu", B_INSN, _A3(SPU_BTI_UV4SI, SPU_BTI_V4SF, SPU_BTI_U7)) +DEF_BUILTIN (SPU_CONVTS, CODE_FOR_spu_cflts, "spu_convts", B_INSN, _A3(SPU_BTI_V4SI, SPU_BTI_V4SF, SPU_BTI_INTSI)) +DEF_BUILTIN (SPU_CONVTU, CODE_FOR_spu_cfltu, "spu_convtu", B_INSN, _A3(SPU_BTI_UV4SI, SPU_BTI_V4SF, SPU_BTI_INTSI)) DEF_BUILTIN (SPU_ROUNDTF, CODE_FOR_spu_frds, "spu_roundtf", B_INSN, _A2(SPU_BTI_V4SF, SPU_BTI_V2DF)) DEF_BUILTIN (SPU_MULH, CODE_FOR_spu_mpyh, "spu_mulh", B_INSN, _A3(SPU_BTI_V4SI, SPU_BTI_V8HI, SPU_BTI_V8HI)) DEF_BUILTIN (SPU_MULSR, CODE_FOR_spu_mpys, "spu_mulsr", B_INSN, _A3(SPU_BTI_V4SI, SPU_BTI_V8HI, SPU_BTI_V8HI)) @@ -257,8 +257,8 @@ /* definitions to support overloaded generic builtin functions: */ DEF_BUILTIN (SPU_CONVTF, CODE_FOR_nothing, "spu_convtf", B_OVERLOAD, _A1(SPU_BTI_VOID)) -DEF_BUILTIN (SPU_CONVTF_0, CODE_FOR_spu_cuflt, "spu_convtf_0", B_INTERNAL, _A3(SPU_BTI_V4SF, SPU_BTI_UV4SI, SPU_BTI_U7)) -DEF_BUILTIN (SPU_CONVTF_1, CODE_FOR_spu_csflt, "spu_convtf_1", B_INTERNAL, _A3(SPU_BTI_V4SF, SPU_BTI_V4SI, SPU_BTI_U7)) +DEF_BUILTIN (SPU_CONVTF_0, CODE_FOR_spu_cuflt, "spu_convtf_0", B_INTERNAL, _A3(SPU_BTI_V4SF, SPU_BTI_UV4SI, SPU_BTI_UINTSI)) +DEF_BUILTIN (SPU_CONVTF_1, CODE_FOR_spu_csflt, "spu_convtf_1", B_INTERNAL, _A3(SPU_BTI_V4SF, SPU_BTI_V4SI, SPU_BTI_UINTSI)) DEF_BUILTIN (SPU_EXTEND, CODE_FOR_nothing, "spu_extend", B_OVERLOAD, _A1(SPU_BTI_VOID)) DEF_BUILTIN (SPU_EXTEND_0, CODE_FOR_spu_xsbh, "spu_extend_0", B_INTERNAL, _A2(SPU_BTI_V8HI, SPU_BTI_V16QI)) DEF_BUILTIN (SPU_EXTEND_1, CODE_FOR_spu_xshw, "spu_extend_1", B_INTERNAL, _A2(SPU_BTI_V4SI, SPU_BTI_V8HI)) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/spu/spu-builtins.md --- a/gcc/config/spu/spu-builtins.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/spu/spu-builtins.md Sun Feb 07 17:44:34 2010 +0900 @@ -527,37 +527,119 @@ [(set_attr "type" "br")]) ;; float convert -(define_insn "spu_csflt" - [(set (match_operand:V4SF 0 "spu_reg_operand" "=r") - (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand" "r") - (match_operand:SI 2 "immediate_operand" "K")] UNSPEC_CSFLT ))] +(define_expand "spu_csflt" + [(set (match_operand:V4SF 0 "spu_reg_operand") + (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand") + (match_operand:SI 2 "spu_nonmem_operand")] 0 ))] "" - "csflt\t%0,%1,%2" - [(set_attr "type" "fp7")]) +{ + if (GET_CODE (operands[2]) == CONST_INT + && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127)) + { + error ("spu_convtf expects an integer literal in the range [0, 127]."); + operands[2] = force_reg (SImode, operands[2]); + } + if (GET_CODE (operands[2]) != CONST_INT) + { + rtx exp2; + rtx cnv = gen_reg_rtx (V4SFmode); + rtx scale = gen_reg_rtx (SImode); + rtx op2 = force_reg (SImode, operands[2]); + rtx m1 = spu_gen_exp2 (V4SFmode, GEN_INT (-1)); + emit_insn (gen_subsi3 (scale, const1_rtx, op2)); + exp2 = spu_gen_exp2 (V4SFmode, scale); + emit_insn (gen_floatv4siv4sf2_mul (cnv, operands[1], m1)); + emit_insn (gen_mulv4sf3 (operands[0], cnv, exp2)); + } + else + { + rtx exp2 = spu_gen_exp2 (V4SFmode, operands[2]); + emit_insn (gen_floatv4siv4sf2_div (operands[0], operands[1], exp2)); + } + DONE; +}) -(define_insn "spu_cflts" - [(set (match_operand:V4SI 0 "spu_reg_operand" "=r") - (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand" "r") - (match_operand:SI 2 "immediate_operand" "J")] UNSPEC_CFLTS ))] +(define_expand "spu_cflts" + [(set (match_operand:V4SI 0 "spu_reg_operand") + (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand") + (match_operand:SI 2 "spu_nonmem_operand")] 0 ))] "" - "cflts\t%0,%1,%2" - [(set_attr "type" "fp7")]) +{ + rtx exp2; + if (GET_CODE (operands[2]) == CONST_INT + && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127)) + { + error ("spu_convts expects an integer literal in the range [0, 127]."); + operands[2] = force_reg (SImode, operands[2]); + } + exp2 = spu_gen_exp2 (V4SFmode, operands[2]); + if (GET_CODE (operands[2]) != CONST_INT) + { + rtx mul = gen_reg_rtx (V4SFmode); + emit_insn (gen_mulv4sf3 (mul, operands[1], exp2)); + emit_insn (gen_fix_truncv4sfv4si2 (operands[0], mul)); + } + else + emit_insn (gen_fix_truncv4sfv4si2_mul (operands[0], operands[1], exp2)); + DONE; +}) -(define_insn "spu_cuflt" +(define_expand "spu_cuflt" [(set (match_operand:V4SF 0 "spu_reg_operand" "=r") - (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand" "r") - (match_operand:SI 2 "immediate_operand" "K")] UNSPEC_CUFLT ))] + (unspec:V4SF [(match_operand:V4SI 1 "spu_reg_operand") + (match_operand:SI 2 "spu_nonmem_operand")] 0 ))] "" - "cuflt\t%0,%1,%2" - [(set_attr "type" "fp7")]) +{ + if (GET_CODE (operands[2]) == CONST_INT + && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127)) + { + error ("spu_convtf expects an integer literal in the range [0, 127]."); + operands[2] = force_reg (SImode, operands[2]); + } + if (GET_CODE (operands[2]) != CONST_INT) + { + rtx exp2; + rtx cnv = gen_reg_rtx (V4SFmode); + rtx scale = gen_reg_rtx (SImode); + rtx op2 = force_reg (SImode, operands[2]); + rtx m1 = spu_gen_exp2 (V4SFmode, GEN_INT (-1)); + emit_insn (gen_subsi3 (scale, const1_rtx, op2)); + exp2 = spu_gen_exp2 (V4SFmode, scale); + emit_insn (gen_floatunsv4siv4sf2_mul (cnv, operands[1], m1)); + emit_insn (gen_mulv4sf3 (operands[0], cnv, exp2)); + } + else + { + rtx exp2 = spu_gen_exp2 (V4SFmode, operands[2]); + emit_insn (gen_floatunsv4siv4sf2_div (operands[0], operands[1], exp2)); + } + DONE; +}) -(define_insn "spu_cfltu" - [(set (match_operand:V4SI 0 "spu_reg_operand" "=r") - (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand" "r") - (match_operand:SI 2 "immediate_operand" "J")] UNSPEC_CFLTU ))] +(define_expand "spu_cfltu" + [(set (match_operand:V4SI 0 "spu_reg_operand") + (unspec:V4SI [(match_operand:V4SF 1 "spu_reg_operand") + (match_operand:SI 2 "spu_nonmem_operand")] 0 ))] "" - "cfltu\t%0,%1,%2" - [(set_attr "type" "fp7")]) +{ + rtx exp2; + if (GET_CODE (operands[2]) == CONST_INT + && (INTVAL (operands[2]) < 0 || INTVAL (operands[2]) > 127)) + { + error ("spu_convtu expects an integer literal in the range [0, 127]."); + operands[2] = force_reg (SImode, operands[2]); + } + exp2 = spu_gen_exp2 (V4SFmode, operands[2]); + if (GET_CODE (operands[2]) != CONST_INT) + { + rtx mul = gen_reg_rtx (V4SFmode); + emit_insn (gen_mulv4sf3 (mul, operands[1], exp2)); + emit_insn (gen_fixuns_truncv4sfv4si2 (operands[0], mul)); + } + else + emit_insn (gen_fixuns_truncv4sfv4si2_mul (operands[0], operands[1], exp2)); + DONE; +}) (define_expand "spu_frds" [(set (match_operand:V4SF 0 "spu_reg_operand" "") diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/spu/spu-protos.h --- a/gcc/config/spu/spu-protos.h Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/spu/spu-protos.h Sun Feb 07 17:44:34 2010 +0900 @@ -51,6 +51,8 @@ extern int iohl_immediate_p (rtx op, enum machine_mode mode); extern int arith_immediate_p (rtx op, enum machine_mode mode, HOST_WIDE_INT low, HOST_WIDE_INT high); +extern bool exp2_immediate_p (rtx op, enum machine_mode mode, int low, + int high); extern int spu_constant_address_p (rtx x); extern int spu_legitimate_constant_p (rtx x); extern int spu_legitimate_address (enum machine_mode mode, rtx x, @@ -64,17 +66,16 @@ tree type, int *pretend_size, int no_rtl); extern void spu_conditional_register_usage (void); -extern int aligned_mem_p (rtx mem); extern int spu_expand_mov (rtx * ops, enum machine_mode mode); -extern void spu_split_load (rtx * ops); -extern void spu_split_store (rtx * ops); -extern int spu_valid_move (rtx * ops); +extern int spu_split_load (rtx * ops); +extern int spu_split_store (rtx * ops); extern int fsmbi_const_p (rtx x); extern int cpat_const_p (rtx x, enum machine_mode mode); extern rtx gen_cpat_const (rtx * ops); extern void constant_to_array (enum machine_mode mode, rtx x, unsigned char *arr); extern rtx array_to_constant (enum machine_mode mode, unsigned char *arr); +extern rtx spu_gen_exp2 (enum machine_mode mode, rtx x); extern void spu_allocate_stack (rtx op0, rtx op1); extern void spu_restore_stack_nonlocal (rtx op0, rtx op1); extern void spu_restore_stack_block (rtx op0, rtx op1); @@ -88,6 +89,7 @@ extern void spu_expand_sign_extend (rtx ops[]); extern void spu_expand_vector_init (rtx target, rtx vals); extern void spu_init_expanders (void); +extern void spu_split_convert (rtx *); /* spu-c.c */ extern tree spu_resolve_overloaded_builtin (tree fndecl, tree fnargs); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/spu/spu.c --- a/gcc/config/spu/spu.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/spu/spu.c Sun Feb 07 17:44:34 2010 +0900 @@ -189,9 +189,9 @@ static void spu_va_start (tree, rtx); static tree spu_gimplify_va_arg_expr (tree valist, tree type, gimple_seq * pre_p, gimple_seq * post_p); -static int regno_aligned_for_load (int regno); static int store_with_one_insn_p (rtx mem); static int mem_is_padded_component_ref (rtx x); +static int reg_aligned_for_addr (rtx x); static bool spu_assemble_integer (rtx x, unsigned int size, int aligned_p); static void spu_asm_globalize_label (FILE * file, const char *name); static unsigned char spu_rtx_costs (rtx x, int code, int outer_code, @@ -210,6 +210,7 @@ static int spu_sms_res_mii (struct ddg *g); static void asm_file_start (void); static unsigned int spu_section_type_flags (tree, const char *, int); +static rtx spu_expand_load (rtx, rtx, rtx, int); extern const char *reg_names[]; rtx spu_compare_op0, spu_compare_op1; @@ -576,66 +577,85 @@ void spu_expand_extv (rtx ops[], int unsignedp) { + rtx dst = ops[0], src = ops[1]; HOST_WIDE_INT width = INTVAL (ops[2]); HOST_WIDE_INT start = INTVAL (ops[3]); - HOST_WIDE_INT src_size, dst_size; - enum machine_mode src_mode, dst_mode; - rtx dst = ops[0], src = ops[1]; - rtx s; - - dst = adjust_operand (ops[0], 0); - dst_mode = GET_MODE (dst); - dst_size = GET_MODE_BITSIZE (GET_MODE (dst)); - - src = adjust_operand (src, &start); - src_mode = GET_MODE (src); - src_size = GET_MODE_BITSIZE (GET_MODE (src)); - - if (start > 0) + HOST_WIDE_INT align_mask; + rtx s0, s1, mask, r0; + + gcc_assert (REG_P (dst) && GET_MODE (dst) == TImode); + + if (MEM_P (src)) { - s = gen_reg_rtx (src_mode); - switch (src_mode) + /* First, determine if we need 1 TImode load or 2. We need only 1 + if the bits being extracted do not cross the alignment boundary + as determined by the MEM and its address. */ + + align_mask = -MEM_ALIGN (src); + if ((start & align_mask) == ((start + width - 1) & align_mask)) + { + /* Alignment is sufficient for 1 load. */ + s0 = gen_reg_rtx (TImode); + r0 = spu_expand_load (s0, 0, src, start / 8); + start &= 7; + if (r0) + emit_insn (gen_rotqby_ti (s0, s0, r0)); + } + else { - case SImode: - emit_insn (gen_ashlsi3 (s, src, GEN_INT (start))); - break; - case DImode: - emit_insn (gen_ashldi3 (s, src, GEN_INT (start))); - break; - case TImode: - emit_insn (gen_ashlti3 (s, src, GEN_INT (start))); - break; - default: - abort (); + /* Need 2 loads. */ + s0 = gen_reg_rtx (TImode); + s1 = gen_reg_rtx (TImode); + r0 = spu_expand_load (s0, s1, src, start / 8); + start &= 7; + + gcc_assert (start + width <= 128); + if (r0) + { + rtx r1 = gen_reg_rtx (SImode); + mask = gen_reg_rtx (TImode); + emit_move_insn (mask, GEN_INT (-1)); + emit_insn (gen_rotqby_ti (s0, s0, r0)); + emit_insn (gen_rotqby_ti (s1, s1, r0)); + if (GET_CODE (r0) == CONST_INT) + r1 = GEN_INT (INTVAL (r0) & 15); + else + emit_insn (gen_andsi3 (r1, r0, GEN_INT (15))); + emit_insn (gen_shlqby_ti (mask, mask, r1)); + emit_insn (gen_selb (s0, s1, s0, mask)); + } } - src = s; + } - - if (width < src_size) + else if (GET_CODE (src) == SUBREG) { - rtx pat; - int icode; - switch (src_mode) - { - case SImode: - icode = unsignedp ? CODE_FOR_lshrsi3 : CODE_FOR_ashrsi3; - break; - case DImode: - icode = unsignedp ? CODE_FOR_lshrdi3 : CODE_FOR_ashrdi3; - break; - case TImode: - icode = unsignedp ? CODE_FOR_lshrti3 : CODE_FOR_ashrti3; - break; - default: - abort (); - } - s = gen_reg_rtx (src_mode); - pat = GEN_FCN (icode) (s, src, GEN_INT (src_size - width)); - emit_insn (pat); - src = s; + rtx r = SUBREG_REG (src); + gcc_assert (REG_P (r) && SCALAR_INT_MODE_P (GET_MODE (r))); + s0 = gen_reg_rtx (TImode); + if (GET_MODE_SIZE (GET_MODE (r)) < GET_MODE_SIZE (TImode)) + emit_insn (gen_rtx_SET (VOIDmode, s0, gen_rtx_ZERO_EXTEND (TImode, r))); + else + emit_move_insn (s0, src); + } + else + { + gcc_assert (REG_P (src) && GET_MODE (src) == TImode); + s0 = gen_reg_rtx (TImode); + emit_move_insn (s0, src); } - convert_move (dst, src, unsignedp); + /* Now s0 is TImode and contains the bits to extract at start. */ + + if (start) + emit_insn (gen_rotlti3 (s0, s0, GEN_INT (start))); + + if (128 - width) + { + tree c = build_int_cst (NULL_TREE, 128 - width); + s0 = expand_shift (RSHIFT_EXPR, TImode, s0, c, s0, unsignedp); + } + + emit_move_insn (dst, s0); } void @@ -728,38 +748,41 @@ } if (GET_CODE (ops[0]) == MEM) { - rtx aligned = gen_reg_rtx (SImode); rtx low = gen_reg_rtx (SImode); - rtx addr = gen_reg_rtx (SImode); rtx rotl = gen_reg_rtx (SImode); rtx mask0 = gen_reg_rtx (TImode); + rtx addr; + rtx addr0; + rtx addr1; rtx mem; - emit_move_insn (addr, XEXP (ops[0], 0)); - emit_insn (gen_andsi3 (aligned, addr, GEN_INT (-16))); + addr = force_reg (Pmode, XEXP (ops[0], 0)); + addr0 = gen_rtx_AND (Pmode, addr, GEN_INT (-16)); emit_insn (gen_andsi3 (low, addr, GEN_INT (15))); emit_insn (gen_negsi2 (rotl, low)); emit_insn (gen_rotqby_ti (shift_reg, shift_reg, rotl)); emit_insn (gen_rotqmby_ti (mask0, mask, rotl)); - mem = change_address (ops[0], TImode, aligned); + mem = change_address (ops[0], TImode, addr0); set_mem_alias_set (mem, 0); emit_move_insn (dst, mem); emit_insn (gen_selb (dst, dst, shift_reg, mask0)); - emit_move_insn (mem, dst); if (start + width > MEM_ALIGN (ops[0])) { rtx shl = gen_reg_rtx (SImode); rtx mask1 = gen_reg_rtx (TImode); rtx dst1 = gen_reg_rtx (TImode); rtx mem1; + addr1 = plus_constant (addr, 16); + addr1 = gen_rtx_AND (Pmode, addr1, GEN_INT (-16)); emit_insn (gen_subsi3 (shl, GEN_INT (16), low)); emit_insn (gen_shlqby_ti (mask1, mask, shl)); - mem1 = adjust_address (mem, TImode, 16); + mem1 = change_address (ops[0], TImode, addr1); set_mem_alias_set (mem1, 0); emit_move_insn (dst1, mem1); emit_insn (gen_selb (dst1, dst1, shift_reg, mask1)); emit_move_insn (mem1, dst1); } + emit_move_insn (mem, dst); } else emit_insn (gen_selb (dst, copy_rtx (dst), shift_reg, mask)); @@ -1585,6 +1608,13 @@ output_addr_const (file, GEN_INT (val)); return; + case 'v': + case 'w': + constant_to_array (mode, x, arr); + val = (((arr[0] << 1) + (arr[1] >> 7)) & 0xff) - 127; + output_addr_const (file, GEN_INT (code == 'w' ? -val : val)); + return; + case 0: if (xcode == REG) fprintf (file, "%s", reg_names[REGNO (x)]); @@ -1597,7 +1627,7 @@ return; /* unused letters - o qr uvw yz + o qr u yz AB OPQR UVWXYZ */ default: output_operand_lossage ("invalid %%xn code"); @@ -1618,6 +1648,8 @@ rtx pic_reg = pic_offset_table_rtx; if (!reload_completed && !reload_in_progress) abort (); + if (current_function_is_leaf && !df_regs_ever_live_p (LAST_ARG_REGNUM)) + pic_reg = gen_rtx_REG (SImode, LAST_ARG_REGNUM); return pic_reg; } @@ -2765,6 +2797,25 @@ pad_bb (); + for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) + if (NONJUMP_INSN_P (insn) && INSN_CODE (insn) == CODE_FOR_hbr) + { + /* Adjust the LABEL_REF in a hint when we have inserted a nop + between its branch label and the branch . We don't move the + label because GCC expects it at the beginning of the block. */ + rtx unspec = SET_SRC (XVECEXP (PATTERN (insn), 0, 0)); + rtx label_ref = XVECEXP (unspec, 0, 0); + rtx label = XEXP (label_ref, 0); + rtx branch; + int offset = 0; + for (branch = NEXT_INSN (label); + !JUMP_P (branch) && !CALL_P (branch); + branch = NEXT_INSN (branch)) + if (NONJUMP_INSN_P (branch)) + offset += get_attr_length (branch); + if (offset > 0) + XVECEXP (unspec, 0, 0) = plus_constant (label_ref, offset); + } if (spu_flag_var_tracking) { @@ -2972,7 +3023,7 @@ insn = ready[i]; if (INSN_CODE (insn) == -1 || INSN_CODE (insn) == CODE_FOR_blockage - || INSN_CODE (insn) == CODE_FOR__spu_convert) + || (INSN_P (insn) && get_attr_length (insn) == 0)) { ready[i] = ready[nready - 1]; ready[nready - 1] = insn; @@ -3103,8 +3154,8 @@ || INSN_CODE (dep_insn) == CODE_FOR_blockage) return 0; - if (INSN_CODE (insn) == CODE_FOR__spu_convert - || INSN_CODE (dep_insn) == CODE_FOR__spu_convert) + if ((INSN_P (insn) && get_attr_length (insn) == 0) + || (INSN_P (dep_insn) && get_attr_length (dep_insn) == 0)) return 0; /* Make sure hbrps are spread out. */ @@ -3503,6 +3554,58 @@ return val >= low && val <= high; } +/* TRUE when op is an immediate and an exact power of 2, and given that + OP is 2^scale, scale >= LOW && scale <= HIGH. When OP is a vector, + all entries must be the same. */ +bool +exp2_immediate_p (rtx op, enum machine_mode mode, int low, int high) +{ + enum machine_mode int_mode; + HOST_WIDE_INT val; + unsigned char arr[16]; + int bytes, i, j; + + gcc_assert (GET_CODE (op) == CONST_INT || GET_CODE (op) == CONST_DOUBLE + || GET_CODE (op) == CONST_VECTOR); + + if (GET_CODE (op) == CONST_VECTOR + && !const_vector_immediate_p (op)) + return 0; + + if (GET_MODE (op) != VOIDmode) + mode = GET_MODE (op); + + constant_to_array (mode, op, arr); + + if (VECTOR_MODE_P (mode)) + mode = GET_MODE_INNER (mode); + + bytes = GET_MODE_SIZE (mode); + int_mode = mode_for_size (GET_MODE_BITSIZE (mode), MODE_INT, 0); + + /* Check that bytes are repeated. */ + for (i = bytes; i < 16; i += bytes) + for (j = 0; j < bytes; j++) + if (arr[j] != arr[i + j]) + return 0; + + val = arr[0]; + for (j = 1; j < bytes; j++) + val = (val << 8) | arr[j]; + + val = trunc_int_for_mode (val, int_mode); + + /* Currently, we only handle SFmode */ + gcc_assert (mode == SFmode); + if (mode == SFmode) + { + int exp = (val >> 23) - 127; + return val > 0 && (val & 0x007fffff) == 0 + && exp >= low && exp <= high; + } + return FALSE; +} + /* We accept: - any 32-bit constant (SImode, SFmode) - any constant that can be generated with fsmbi (any mode) @@ -3533,44 +3636,36 @@ /* Valid address are: - symbol_ref, label_ref, const - reg - - reg + const, where either reg or const is 16 byte aligned + - reg + const_int, where const_int is 16 byte aligned - reg + reg, alignment doesn't matter The alignment matters in the reg+const case because lqd and stqd - ignore the 4 least significant bits of the const. (TODO: It might be - preferable to allow any alignment and fix it up when splitting.) */ + ignore the 4 least significant bits of the const. We only care about + 16 byte modes because the expand phase will change all smaller MEM + references to TImode. */ int spu_legitimate_address (enum machine_mode mode ATTRIBUTE_UNUSED, rtx x, int reg_ok_strict) { - if (mode == TImode && GET_CODE (x) == AND + int aligned = GET_MODE_SIZE (mode) >= 16; + if (aligned + && GET_CODE (x) == AND && GET_CODE (XEXP (x, 1)) == CONST_INT - && INTVAL (XEXP (x, 1)) == (HOST_WIDE_INT) -16) + && INTVAL (XEXP (x, 1)) == (HOST_WIDE_INT) - 16) x = XEXP (x, 0); switch (GET_CODE (x)) { + case LABEL_REF: case SYMBOL_REF: - case LABEL_REF: - return !TARGET_LARGE_MEM; - case CONST: - if (!TARGET_LARGE_MEM && GET_CODE (XEXP (x, 0)) == PLUS) - { - rtx sym = XEXP (XEXP (x, 0), 0); - rtx cst = XEXP (XEXP (x, 0), 1); - - /* Accept any symbol_ref + constant, assuming it does not - wrap around the local store addressability limit. */ - if (GET_CODE (sym) == SYMBOL_REF && GET_CODE (cst) == CONST_INT) - return 1; - } - return 0; + return !TARGET_LARGE_MEM; case CONST_INT: return INTVAL (x) >= 0 && INTVAL (x) <= 0x3ffff; case SUBREG: x = XEXP (x, 0); - gcc_assert (GET_CODE (x) == REG); + if (REG_P (x)) + return 0; case REG: return INT_REG_OK_FOR_BASE_P (x, reg_ok_strict); @@ -3584,29 +3679,25 @@ op0 = XEXP (op0, 0); if (GET_CODE (op1) == SUBREG) op1 = XEXP (op1, 0); - /* We can't just accept any aligned register because CSE can - change it to a register that is not marked aligned and then - recog will fail. So we only accept frame registers because - they will only be changed to other frame registers. */ if (GET_CODE (op0) == REG && INT_REG_OK_FOR_BASE_P (op0, reg_ok_strict) && GET_CODE (op1) == CONST_INT && INTVAL (op1) >= -0x2000 && INTVAL (op1) <= 0x1fff - && (regno_aligned_for_load (REGNO (op0)) || (INTVAL (op1) & 15) == 0)) - return 1; + && (!aligned || (INTVAL (op1) & 15) == 0)) + return TRUE; if (GET_CODE (op0) == REG && INT_REG_OK_FOR_BASE_P (op0, reg_ok_strict) && GET_CODE (op1) == REG && INT_REG_OK_FOR_INDEX_P (op1, reg_ok_strict)) - return 1; + return TRUE; } break; default: break; } - return 0; + return FALSE; } /* When the address is reg + const_int, force the const_int into a @@ -4061,60 +4152,14 @@ } } -/* This is called to decide when we can simplify a load instruction. We - must only return true for registers which we know will always be - aligned. Taking into account that CSE might replace this reg with - another one that has not been marked aligned. - So this is really only true for frame, stack and virtual registers, - which we know are always aligned and should not be adversely effected - by CSE. */ +/* This is called any time we inspect the alignment of a register for + addresses. */ static int -regno_aligned_for_load (int regno) -{ - return regno == FRAME_POINTER_REGNUM - || (frame_pointer_needed && regno == HARD_FRAME_POINTER_REGNUM) - || regno == ARG_POINTER_REGNUM - || regno == STACK_POINTER_REGNUM - || (regno >= FIRST_VIRTUAL_REGISTER - && regno <= LAST_VIRTUAL_REGISTER); -} - -/* Return TRUE when mem is known to be 16-byte aligned. */ -int -aligned_mem_p (rtx mem) +reg_aligned_for_addr (rtx x) { - if (MEM_ALIGN (mem) >= 128) - return 1; - if (GET_MODE_SIZE (GET_MODE (mem)) >= 16) - return 1; - if (GET_CODE (XEXP (mem, 0)) == PLUS) - { - rtx p0 = XEXP (XEXP (mem, 0), 0); - rtx p1 = XEXP (XEXP (mem, 0), 1); - if (regno_aligned_for_load (REGNO (p0))) - { - if (GET_CODE (p1) == REG && regno_aligned_for_load (REGNO (p1))) - return 1; - if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15) == 0) - return 1; - } - } - else if (GET_CODE (XEXP (mem, 0)) == REG) - { - if (regno_aligned_for_load (REGNO (XEXP (mem, 0)))) - return 1; - } - else if (ALIGNED_SYMBOL_REF_P (XEXP (mem, 0))) - return 1; - else if (GET_CODE (XEXP (mem, 0)) == CONST) - { - rtx p0 = XEXP (XEXP (XEXP (mem, 0), 0), 0); - rtx p1 = XEXP (XEXP (XEXP (mem, 0), 0), 1); - if (GET_CODE (p0) == SYMBOL_REF - && GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15) == 0) - return 1; - } - return 0; + int regno = + REGNO (x) < FIRST_PSEUDO_REGISTER ? ORIGINAL_REGNO (x) : REGNO (x); + return REGNO_POINTER_ALIGN (regno) >= 128; } /* Encode symbol attributes (local vs. global, tls model) of a SYMBOL_REF @@ -4143,9 +4188,12 @@ static int store_with_one_insn_p (rtx mem) { + enum machine_mode mode = GET_MODE (mem); rtx addr = XEXP (mem, 0); - if (GET_MODE (mem) == BLKmode) + if (mode == BLKmode) return 0; + if (GET_MODE_SIZE (mode) >= 16) + return 1; /* Only static objects. */ if (GET_CODE (addr) == SYMBOL_REF) { @@ -4169,6 +4217,22 @@ return 0; } +/* Return 1 when the address is not valid for a simple load and store as + required by the '_mov*' patterns. We could make this less strict + for loads, but we prefer mem's to look the same so they are more + likely to be merged. */ +static int +address_needs_split (rtx mem) +{ + if (GET_MODE_SIZE (GET_MODE (mem)) < 16 + && (GET_MODE_SIZE (GET_MODE (mem)) < 4 + || !(store_with_one_insn_p (mem) + || mem_is_padded_component_ref (mem)))) + return 1; + + return 0; +} + int spu_expand_mov (rtx * ops, enum machine_mode mode) { @@ -4213,54 +4277,63 @@ return spu_split_immediate (ops); return 0; } - else + + /* Catch the SImode immediates greater than 0x7fffffff, and sign + extend them. */ + if (GET_CODE (ops[1]) == CONST_INT) { - if (GET_CODE (ops[0]) == MEM) - { - if (!spu_valid_move (ops)) - { - emit_insn (gen_store (ops[0], ops[1], gen_reg_rtx (TImode), - gen_reg_rtx (TImode))); - return 1; - } - } - else if (GET_CODE (ops[1]) == MEM) + HOST_WIDE_INT val = trunc_int_for_mode (INTVAL (ops[1]), mode); + if (val != INTVAL (ops[1])) { - if (!spu_valid_move (ops)) - { - emit_insn (gen_load - (ops[0], ops[1], gen_reg_rtx (TImode), - gen_reg_rtx (SImode))); - return 1; - } - } - /* Catch the SImode immediates greater than 0x7fffffff, and sign - extend them. */ - if (GET_CODE (ops[1]) == CONST_INT) - { - HOST_WIDE_INT val = trunc_int_for_mode (INTVAL (ops[1]), mode); - if (val != INTVAL (ops[1])) - { - emit_move_insn (ops[0], GEN_INT (val)); - return 1; - } + emit_move_insn (ops[0], GEN_INT (val)); + return 1; } } + if (MEM_P (ops[0])) + return spu_split_store (ops); + if (MEM_P (ops[1])) + return spu_split_load (ops); + return 0; } -void -spu_split_load (rtx * ops) +static void +spu_convert_move (rtx dst, rtx src) { - enum machine_mode mode = GET_MODE (ops[0]); - rtx addr, load, rot, mem, p0, p1; + enum machine_mode mode = GET_MODE (dst); + enum machine_mode int_mode = mode_for_size (GET_MODE_BITSIZE (mode), MODE_INT, 0); + rtx reg; + gcc_assert (GET_MODE (src) == TImode); + reg = int_mode != mode ? gen_reg_rtx (int_mode) : dst; + emit_insn (gen_rtx_SET (VOIDmode, reg, + gen_rtx_TRUNCATE (int_mode, + gen_rtx_LSHIFTRT (TImode, src, + GEN_INT (int_mode == DImode ? 64 : 96))))); + if (int_mode != mode) + { + reg = simplify_gen_subreg (mode, reg, int_mode, 0); + emit_move_insn (dst, reg); + } +} + +/* Load TImode values into DST0 and DST1 (when it is non-NULL) using + the address from SRC and SRC+16. Return a REG or CONST_INT that + specifies how many bytes to rotate the loaded registers, plus any + extra from EXTRA_ROTQBY. The address and rotate amounts are + normalized to improve merging of loads and rotate computations. */ +static rtx +spu_expand_load (rtx dst0, rtx dst1, rtx src, int extra_rotby) +{ + rtx addr = XEXP (src, 0); + rtx p0, p1, rot, addr0, addr1; int rot_amt; - addr = XEXP (ops[1], 0); - rot = 0; rot_amt = 0; - if (GET_CODE (addr) == PLUS) + + if (MEM_ALIGN (src) >= 128) + /* Address is already aligned; simply perform a TImode load. */ ; + else if (GET_CODE (addr) == PLUS) { /* 8 cases: aligned reg + aligned reg => lqx @@ -4274,12 +4347,34 @@ */ p0 = XEXP (addr, 0); p1 = XEXP (addr, 1); - if (REG_P (p0) && !regno_aligned_for_load (REGNO (p0))) + if (!reg_aligned_for_addr (p0)) { - if (REG_P (p1) && !regno_aligned_for_load (REGNO (p1))) + if (REG_P (p1) && !reg_aligned_for_addr (p1)) + { + rot = gen_reg_rtx (SImode); + emit_insn (gen_addsi3 (rot, p0, p1)); + } + else if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15)) { - emit_insn (gen_addsi3 (ops[3], p0, p1)); - rot = ops[3]; + if (INTVAL (p1) > 0 + && REG_POINTER (p0) + && INTVAL (p1) * BITS_PER_UNIT + < REGNO_POINTER_ALIGN (REGNO (p0))) + { + rot = gen_reg_rtx (SImode); + emit_insn (gen_addsi3 (rot, p0, p1)); + addr = p0; + } + else + { + rtx x = gen_reg_rtx (SImode); + emit_move_insn (x, p1); + if (!spu_arith_operand (p1, SImode)) + p1 = x; + rot = gen_reg_rtx (SImode); + emit_insn (gen_addsi3 (rot, p0, p1)); + addr = gen_rtx_PLUS (Pmode, p0, x); + } } else rot = p0; @@ -4289,16 +4384,21 @@ if (GET_CODE (p1) == CONST_INT && (INTVAL (p1) & 15)) { rot_amt = INTVAL (p1) & 15; - p1 = GEN_INT (INTVAL (p1) & -16); - addr = gen_rtx_PLUS (SImode, p0, p1); + if (INTVAL (p1) & -16) + { + p1 = GEN_INT (INTVAL (p1) & -16); + addr = gen_rtx_PLUS (SImode, p0, p1); + } + else + addr = p0; } - else if (REG_P (p1) && !regno_aligned_for_load (REGNO (p1))) + else if (REG_P (p1) && !reg_aligned_for_addr (p1)) rot = p1; } } - else if (GET_CODE (addr) == REG) + else if (REG_P (addr)) { - if (!regno_aligned_for_load (REGNO (addr))) + if (!reg_aligned_for_addr (addr)) rot = addr; } else if (GET_CODE (addr) == CONST) @@ -4317,7 +4417,10 @@ addr = XEXP (XEXP (addr, 0), 0); } else - rot = addr; + { + rot = gen_reg_rtx (Pmode); + emit_move_insn (rot, addr); + } } else if (GET_CODE (addr) == CONST_INT) { @@ -4325,49 +4428,96 @@ addr = GEN_INT (rot_amt & -16); } else if (!ALIGNED_SYMBOL_REF_P (addr)) - rot = addr; - - if (GET_MODE_SIZE (mode) < 4) - rot_amt += GET_MODE_SIZE (mode) - 4; + { + rot = gen_reg_rtx (Pmode); + emit_move_insn (rot, addr); + } + + rot_amt += extra_rotby; rot_amt &= 15; if (rot && rot_amt) { - emit_insn (gen_addsi3 (ops[3], rot, GEN_INT (rot_amt))); - rot = ops[3]; + rtx x = gen_reg_rtx (SImode); + emit_insn (gen_addsi3 (x, rot, GEN_INT (rot_amt))); + rot = x; rot_amt = 0; } - - load = ops[2]; - - addr = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16)); - mem = change_address (ops[1], TImode, addr); - - emit_insn (gen_movti (load, mem)); + if (!rot && rot_amt) + rot = GEN_INT (rot_amt); + + addr0 = copy_rtx (addr); + addr0 = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16)); + emit_insn (gen__movti (dst0, change_address (src, TImode, addr0))); + + if (dst1) + { + addr1 = plus_constant (copy_rtx (addr), 16); + addr1 = gen_rtx_AND (SImode, addr1, GEN_INT (-16)); + emit_insn (gen__movti (dst1, change_address (src, TImode, addr1))); + } + + return rot; +} + +int +spu_split_load (rtx * ops) +{ + enum machine_mode mode = GET_MODE (ops[0]); + rtx addr, load, rot; + int rot_amt; + + if (GET_MODE_SIZE (mode) >= 16) + return 0; + + addr = XEXP (ops[1], 0); + gcc_assert (GET_CODE (addr) != AND); + + if (!address_needs_split (ops[1])) + { + ops[1] = change_address (ops[1], TImode, addr); + load = gen_reg_rtx (TImode); + emit_insn (gen__movti (load, ops[1])); + spu_convert_move (ops[0], load); + return 1; + } + + rot_amt = GET_MODE_SIZE (mode) < 4 ? GET_MODE_SIZE (mode) - 4 : 0; + + load = gen_reg_rtx (TImode); + rot = spu_expand_load (load, 0, ops[1], rot_amt); if (rot) emit_insn (gen_rotqby_ti (load, load, rot)); - else if (rot_amt) - emit_insn (gen_rotlti3 (load, load, GEN_INT (rot_amt * 8))); - - if (reload_completed) - emit_move_insn (ops[0], gen_rtx_REG (GET_MODE (ops[0]), REGNO (load))); - else - emit_insn (gen_spu_convert (ops[0], load)); + + spu_convert_move (ops[0], load); + return 1; } -void +int spu_split_store (rtx * ops) { enum machine_mode mode = GET_MODE (ops[0]); - rtx pat = ops[2]; - rtx reg = ops[3]; + rtx reg; rtx addr, p0, p1, p1_lo, smem; int aform; int scalar; + if (GET_MODE_SIZE (mode) >= 16) + return 0; + addr = XEXP (ops[0], 0); + gcc_assert (GET_CODE (addr) != AND); + + if (!address_needs_split (ops[0])) + { + reg = gen_reg_rtx (TImode); + emit_insn (gen_spu_convert (reg, ops[1])); + ops[0] = change_address (ops[0], TImode, addr); + emit_move_insn (ops[0], reg); + return 1; + } if (GET_CODE (addr) == PLUS) { @@ -4379,19 +4529,31 @@ unaligned reg + aligned reg => lqx, c?x, shuf, stqx unaligned reg + unaligned reg => lqx, c?x, shuf, stqx unaligned reg + aligned const => lqd, c?d, shuf, stqx - unaligned reg + unaligned const -> not allowed by legitimate address + unaligned reg + unaligned const -> lqx, c?d, shuf, stqx */ aform = 0; p0 = XEXP (addr, 0); p1 = p1_lo = XEXP (addr, 1); - if (GET_CODE (p0) == REG && GET_CODE (p1) == CONST_INT) + if (REG_P (p0) && GET_CODE (p1) == CONST_INT) { p1_lo = GEN_INT (INTVAL (p1) & 15); - p1 = GEN_INT (INTVAL (p1) & -16); - addr = gen_rtx_PLUS (SImode, p0, p1); + if (reg_aligned_for_addr (p0)) + { + p1 = GEN_INT (INTVAL (p1) & -16); + if (p1 == const0_rtx) + addr = p0; + else + addr = gen_rtx_PLUS (SImode, p0, p1); + } + else + { + rtx x = gen_reg_rtx (SImode); + emit_move_insn (x, p1); + addr = gen_rtx_PLUS (SImode, p0, x); + } } } - else if (GET_CODE (addr) == REG) + else if (REG_P (addr)) { aform = 0; p0 = addr; @@ -4405,31 +4567,34 @@ p1_lo = addr; if (ALIGNED_SYMBOL_REF_P (addr)) p1_lo = const0_rtx; - else if (GET_CODE (addr) == CONST) + else if (GET_CODE (addr) == CONST + && GET_CODE (XEXP (addr, 0)) == PLUS + && ALIGNED_SYMBOL_REF_P (XEXP (XEXP (addr, 0), 0)) + && GET_CODE (XEXP (XEXP (addr, 0), 1)) == CONST_INT) { - if (GET_CODE (XEXP (addr, 0)) == PLUS - && ALIGNED_SYMBOL_REF_P (XEXP (XEXP (addr, 0), 0)) - && GET_CODE (XEXP (XEXP (addr, 0), 1)) == CONST_INT) - { - HOST_WIDE_INT v = INTVAL (XEXP (XEXP (addr, 0), 1)); - if ((v & -16) != 0) - addr = gen_rtx_CONST (Pmode, - gen_rtx_PLUS (Pmode, - XEXP (XEXP (addr, 0), 0), - GEN_INT (v & -16))); - else - addr = XEXP (XEXP (addr, 0), 0); - p1_lo = GEN_INT (v & 15); - } + HOST_WIDE_INT v = INTVAL (XEXP (XEXP (addr, 0), 1)); + if ((v & -16) != 0) + addr = gen_rtx_CONST (Pmode, + gen_rtx_PLUS (Pmode, + XEXP (XEXP (addr, 0), 0), + GEN_INT (v & -16))); + else + addr = XEXP (XEXP (addr, 0), 0); + p1_lo = GEN_INT (v & 15); } else if (GET_CODE (addr) == CONST_INT) { p1_lo = GEN_INT (INTVAL (addr) & 15); addr = GEN_INT (INTVAL (addr) & -16); } + else + { + p1_lo = gen_reg_rtx (SImode); + emit_move_insn (p1_lo, addr); + } } - addr = gen_rtx_AND (SImode, copy_rtx (addr), GEN_INT (-16)); + reg = gen_reg_rtx (TImode); scalar = store_with_one_insn_p (ops[0]); if (!scalar) @@ -4439,11 +4604,12 @@ possible, and copying the flags will prevent that in certain cases, e.g. consider the volatile flag. */ + rtx pat = gen_reg_rtx (TImode); rtx lmem = change_address (ops[0], TImode, copy_rtx (addr)); set_mem_alias_set (lmem, 0); emit_insn (gen_movti (reg, lmem)); - if (!p0 || regno_aligned_for_load (REGNO (p0))) + if (!p0 || reg_aligned_for_addr (p0)) p0 = stack_pointer_rtx; if (!p1_lo) p1_lo = const0_rtx; @@ -4451,17 +4617,6 @@ emit_insn (gen_cpat (pat, p0, p1_lo, GEN_INT (GET_MODE_SIZE (mode)))); emit_insn (gen_shufb (reg, ops[1], reg, pat)); } - else if (reload_completed) - { - if (GET_CODE (ops[1]) == REG) - emit_move_insn (reg, gen_rtx_REG (GET_MODE (reg), REGNO (ops[1]))); - else if (GET_CODE (ops[1]) == SUBREG) - emit_move_insn (reg, - gen_rtx_REG (GET_MODE (reg), - REGNO (SUBREG_REG (ops[1])))); - else - abort (); - } else { if (GET_CODE (ops[1]) == REG) @@ -4473,15 +4628,16 @@ } if (GET_MODE_SIZE (mode) < 4 && scalar) - emit_insn (gen_shlqby_ti - (reg, reg, GEN_INT (4 - GET_MODE_SIZE (mode)))); - - smem = change_address (ops[0], TImode, addr); + emit_insn (gen_ashlti3 + (reg, reg, GEN_INT (32 - GET_MODE_BITSIZE (mode)))); + + smem = change_address (ops[0], TImode, copy_rtx (addr)); /* We can't use the previous alias set because the memory has changed size and can potentially overlap objects of other types. */ set_mem_alias_set (smem, 0); emit_insn (gen_movti (smem, reg)); + return 1; } /* Return TRUE if X is MEM which is a struct member reference @@ -4580,37 +4736,6 @@ } } -int -spu_valid_move (rtx * ops) -{ - enum machine_mode mode = GET_MODE (ops[0]); - if (!register_operand (ops[0], mode) && !register_operand (ops[1], mode)) - return 0; - - /* init_expr_once tries to recog against load and store insns to set - the direct_load[] and direct_store[] arrays. We always want to - consider those loads and stores valid. init_expr_once is called in - the context of a dummy function which does not have a decl. */ - if (cfun->decl == 0) - return 1; - - /* Don't allows loads/stores which would require more than 1 insn. - During and after reload we assume loads and stores only take 1 - insn. */ - if (GET_MODE_SIZE (mode) < 16 && !reload_in_progress && !reload_completed) - { - if (GET_CODE (ops[0]) == MEM - && (GET_MODE_SIZE (mode) < 4 - || !(store_with_one_insn_p (ops[0]) - || mem_is_padded_component_ref (ops[0])))) - return 0; - if (GET_CODE (ops[1]) == MEM - && (GET_MODE_SIZE (mode) < 4 || !aligned_mem_p (ops[1]))) - return 0; - } - return 1; -} - /* Return TRUE if x is a CONST_INT, CONST_DOUBLE or CONST_VECTOR that can be generated using the fsmbi instruction. */ int @@ -6324,12 +6449,25 @@ void spu_init_expanders (void) -{ - /* HARD_FRAME_REGISTER is only 128 bit aligned when - * frame_pointer_needed is true. We don't know that until we're - * expanding the prologue. */ +{ if (cfun) - REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 8; + { + rtx r0, r1; + /* HARD_FRAME_REGISTER is only 128 bit aligned when + frame_pointer_needed is true. We don't know that until we're + expanding the prologue. */ + REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 8; + + /* A number of passes use LAST_VIRTUAL_REGISTER+1 and + LAST_VIRTUAL_REGISTER+2 to test the back-end. We want them + to be treated as aligned, so generate them here. */ + r0 = gen_reg_rtx (SImode); + r1 = gen_reg_rtx (SImode); + mark_reg_pointer (r0, 128); + mark_reg_pointer (r1, 128); + gcc_assert (REGNO (r0) == LAST_VIRTUAL_REGISTER + 1 + && REGNO (r1) == LAST_VIRTUAL_REGISTER + 2); + } } static enum machine_mode @@ -6372,5 +6510,53 @@ return default_section_type_flags (decl, name, reloc); } +/* Generate a constant or register which contains 2^SCALE. We assume + the result is valid for MODE. Currently, MODE must be V4SFmode and + SCALE must be SImode. */ +rtx +spu_gen_exp2 (enum machine_mode mode, rtx scale) +{ + gcc_assert (mode == V4SFmode); + gcc_assert (GET_MODE (scale) == SImode || GET_CODE (scale) == CONST_INT); + if (GET_CODE (scale) != CONST_INT) + { + /* unsigned int exp = (127 + scale) << 23; + __vector float m = (__vector float) spu_splats (exp); */ + rtx reg = force_reg (SImode, scale); + rtx exp = gen_reg_rtx (SImode); + rtx mul = gen_reg_rtx (mode); + emit_insn (gen_addsi3 (exp, reg, GEN_INT (127))); + emit_insn (gen_ashlsi3 (exp, exp, GEN_INT (23))); + emit_insn (gen_spu_splats (mul, gen_rtx_SUBREG (GET_MODE_INNER (mode), exp, 0))); + return mul; + } + else + { + HOST_WIDE_INT exp = 127 + INTVAL (scale); + unsigned char arr[16]; + arr[0] = arr[4] = arr[8] = arr[12] = exp >> 1; + arr[1] = arr[5] = arr[9] = arr[13] = exp << 7; + arr[2] = arr[6] = arr[10] = arr[14] = 0; + arr[3] = arr[7] = arr[11] = arr[15] = 0; + return array_to_constant (mode, arr); + } +} + +/* After reload, just change the convert into a move instruction + or a dead instruction. */ +void +spu_split_convert (rtx ops[]) +{ + if (REGNO (ops[0]) == REGNO (ops[1])) + emit_note (NOTE_INSN_DELETED); + else + { + /* Use TImode always as this might help hard reg copyprop. */ + rtx op0 = gen_rtx_REG (TImode, REGNO (ops[0])); + rtx op1 = gen_rtx_REG (TImode, REGNO (ops[1])); + emit_insn (gen_move_insn (op0, op1)); + } +} + #include "gt-spu.h" diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/spu/spu.md --- a/gcc/config/spu/spu.md Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/spu/spu.md Sun Feb 07 17:44:34 2010 +0900 @@ -136,10 +136,6 @@ (UNSPEC_HEQ 31) (UNSPEC_HGT 32) (UNSPEC_HLGT 33) - (UNSPEC_CSFLT 34) - (UNSPEC_CFLTS 35) - (UNSPEC_CUFLT 36) - (UNSPEC_CFLTU 37) (UNSPEC_STOP 38) (UNSPEC_STOPD 39) (UNSPEC_SET_INTR 40) @@ -182,6 +178,8 @@ SF V4SF DF V2DF]) +(define_mode_iterator QHSI [QI HI SI]) +(define_mode_iterator QHSDI [QI HI SI DI]) (define_mode_iterator DTI [DI TI]) (define_mode_iterator VINT [QI V16QI @@ -231,6 +229,10 @@ (DF "di") (V2DF "v2di")]) (define_mode_attr F2I [(SF "SI") (V4SF "V4SI") (DF "DI") (V2DF "V2DI")]) +(define_mode_attr i2f [(SI "sf") (V4SI "v4sf") + (DI "df") (V2DI "v2df")]) +(define_mode_attr I2F [(SI "SF") (V4SI "V4SF") + (DI "DF") (V2DI "V2DF")]) (define_mode_attr DF2I [(DF "SI") (V2DF "V2DI")]) @@ -316,9 +318,10 @@ ;; move internal (define_insn "_mov" - [(set (match_operand:MOV 0 "spu_nonimm_operand" "=r,r,r,r,r,m") + [(set (match_operand:MOV 0 "spu_dest_operand" "=r,r,r,r,r,m") (match_operand:MOV 1 "spu_mov_operand" "r,A,f,j,m,r"))] - "spu_valid_move (operands)" + "register_operand(operands[0], mode) + || register_operand(operands[1], mode)" "@ ori\t%0,%1,0 il%s1\t%0,%S1 @@ -336,9 +339,10 @@ "iohl\t%0,%2@l") (define_insn "_movdi" - [(set (match_operand:DI 0 "spu_nonimm_operand" "=r,r,r,r,r,m") + [(set (match_operand:DI 0 "spu_dest_operand" "=r,r,r,r,r,m") (match_operand:DI 1 "spu_mov_operand" "r,a,f,k,m,r"))] - "spu_valid_move (operands)" + "register_operand(operands[0], DImode) + || register_operand(operands[1], DImode)" "@ ori\t%0,%1,0 il%d1\t%0,%D1 @@ -349,9 +353,10 @@ [(set_attr "type" "fx2,fx2,shuf,shuf,load,store")]) (define_insn "_movti" - [(set (match_operand:TI 0 "spu_nonimm_operand" "=r,r,r,r,r,m") + [(set (match_operand:TI 0 "spu_dest_operand" "=r,r,r,r,r,m") (match_operand:TI 1 "spu_mov_operand" "r,U,f,l,m,r"))] - "spu_valid_move (operands)" + "register_operand(operands[0], TImode) + || register_operand(operands[1], TImode)" "@ ori\t%0,%1,0 il%t1\t%0,%T1 @@ -361,30 +366,29 @@ stq%p0\t%1,%0" [(set_attr "type" "fx2,fx2,shuf,shuf,load,store")]) -(define_insn_and_split "load" - [(set (match_operand 0 "spu_reg_operand" "=r") - (match_operand 1 "memory_operand" "m")) - (clobber (match_operand:TI 2 "spu_reg_operand" "=&r")) - (clobber (match_operand:SI 3 "spu_reg_operand" "=&r"))] - "GET_MODE(operands[0]) == GET_MODE(operands[1])" - "#" - "" +(define_split + [(set (match_operand 0 "spu_reg_operand") + (match_operand 1 "memory_operand"))] + "GET_MODE_SIZE (GET_MODE (operands[0])) < 16 + && GET_MODE(operands[0]) == GET_MODE(operands[1]) + && !reload_in_progress && !reload_completed" [(set (match_dup 0) (match_dup 1))] - { spu_split_load(operands); DONE; }) - -(define_insn_and_split "store" - [(set (match_operand 0 "memory_operand" "=m") - (match_operand 1 "spu_reg_operand" "r")) - (clobber (match_operand:TI 2 "spu_reg_operand" "=&r")) - (clobber (match_operand:TI 3 "spu_reg_operand" "=&r"))] - "GET_MODE(operands[0]) == GET_MODE(operands[1])" - "#" - "" + { if (spu_split_load(operands)) + DONE; + }) + +(define_split + [(set (match_operand 0 "memory_operand") + (match_operand 1 "spu_reg_operand"))] + "GET_MODE_SIZE (GET_MODE (operands[0])) < 16 + && GET_MODE(operands[0]) == GET_MODE(operands[1]) + && !reload_in_progress && !reload_completed" [(set (match_dup 0) (match_dup 1))] - { spu_split_store(operands); DONE; }) - + { if (spu_split_store(operands)) + DONE; + }) ;; Operand 3 is the number of bytes. 1:b 2:h 4:w 8:d (define_expand "cpat" @@ -462,33 +466,20 @@ "" "xswd\t%0,%1"); -(define_expand "extendqiti2" - [(set (match_operand:TI 0 "register_operand" "") - (sign_extend:TI (match_operand:QI 1 "register_operand" "")))] - "" - "spu_expand_sign_extend(operands); - DONE;") - -(define_expand "extendhiti2" +;; By splitting this late we don't allow much opportunity for sharing of +;; constants. That's ok because this should really be optimized away. +(define_insn_and_split "extendti2" [(set (match_operand:TI 0 "register_operand" "") - (sign_extend:TI (match_operand:HI 1 "register_operand" "")))] - "" - "spu_expand_sign_extend(operands); - DONE;") - -(define_expand "extendsiti2" - [(set (match_operand:TI 0 "register_operand" "") - (sign_extend:TI (match_operand:SI 1 "register_operand" "")))] - "" - "spu_expand_sign_extend(operands); - DONE;") - -(define_expand "extendditi2" - [(set (match_operand:TI 0 "register_operand" "") - (sign_extend:TI (match_operand:DI 1 "register_operand" "")))] - "" - "spu_expand_sign_extend(operands); - DONE;") + (sign_extend:TI (match_operand:QHSDI 1 "register_operand" "")))] + "" + "#" + "" + [(set (match_dup:TI 0) + (sign_extend:TI (match_dup:QHSDI 1)))] + { + spu_expand_sign_extend(operands); + DONE; + }) ;; zero_extend @@ -525,6 +516,22 @@ "rotqmbyi\t%0,%1,-4" [(set_attr "type" "shuf")]) +(define_insn "zero_extendqiti2" + [(set (match_operand:TI 0 "spu_reg_operand" "=r") + (zero_extend:TI (match_operand:QI 1 "spu_reg_operand" "r")))] + "" + "andi\t%0,%1,0x00ff\;rotqmbyi\t%0,%0,-12" + [(set_attr "type" "multi0") + (set_attr "length" "8")]) + +(define_insn "zero_extendhiti2" + [(set (match_operand:TI 0 "spu_reg_operand" "=r") + (zero_extend:TI (match_operand:HI 1 "spu_reg_operand" "r")))] + "" + "shli\t%0,%1,16\;rotqmbyi\t%0,%0,-14" + [(set_attr "type" "multi1") + (set_attr "length" "8")]) + (define_insn "zero_extendsiti2" [(set (match_operand:TI 0 "spu_reg_operand" "=r") (zero_extend:TI (match_operand:SI 1 "spu_reg_operand" "r")))] @@ -594,60 +601,81 @@ ;; float conversions -(define_insn "floatsisf2" - [(set (match_operand:SF 0 "spu_reg_operand" "=r") - (float:SF (match_operand:SI 1 "spu_reg_operand" "r")))] +(define_insn "float2" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (float: (match_operand:VSI 1 "spu_reg_operand" "r")))] "" "csflt\t%0,%1,0" [(set_attr "type" "fp7")]) -(define_insn "floatv4siv4sf2" - [(set (match_operand:V4SF 0 "spu_reg_operand" "=r") - (float:V4SF (match_operand:V4SI 1 "spu_reg_operand" "r")))] - "" - "csflt\t%0,%1,0" - [(set_attr "type" "fp7")]) - -(define_insn "fix_truncsfsi2" - [(set (match_operand:SI 0 "spu_reg_operand" "=r") - (fix:SI (match_operand:SF 1 "spu_reg_operand" "r")))] - "" - "cflts\t%0,%1,0" - [(set_attr "type" "fp7")]) - -(define_insn "fix_truncv4sfv4si2" - [(set (match_operand:V4SI 0 "spu_reg_operand" "=r") - (fix:V4SI (match_operand:V4SF 1 "spu_reg_operand" "r")))] +(define_insn "fix_trunc2" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (fix: (match_operand:VSF 1 "spu_reg_operand" "r")))] "" "cflts\t%0,%1,0" [(set_attr "type" "fp7")]) -(define_insn "floatunssisf2" - [(set (match_operand:SF 0 "spu_reg_operand" "=r") - (unsigned_float:SF (match_operand:SI 1 "spu_reg_operand" "r")))] - "" - "cuflt\t%0,%1,0" - [(set_attr "type" "fp7")]) - -(define_insn "floatunsv4siv4sf2" - [(set (match_operand:V4SF 0 "spu_reg_operand" "=r") - (unsigned_float:V4SF (match_operand:V4SI 1 "spu_reg_operand" "r")))] +(define_insn "floatuns2" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (unsigned_float: (match_operand:VSI 1 "spu_reg_operand" "r")))] "" "cuflt\t%0,%1,0" [(set_attr "type" "fp7")]) -(define_insn "fixuns_truncsfsi2" - [(set (match_operand:SI 0 "spu_reg_operand" "=r") - (unsigned_fix:SI (match_operand:SF 1 "spu_reg_operand" "r")))] +(define_insn "fixuns_trunc2" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (unsigned_fix: (match_operand:VSF 1 "spu_reg_operand" "r")))] "" "cfltu\t%0,%1,0" [(set_attr "type" "fp7")]) -(define_insn "fixuns_truncv4sfv4si2" - [(set (match_operand:V4SI 0 "spu_reg_operand" "=r") - (unsigned_fix:V4SI (match_operand:V4SF 1 "spu_reg_operand" "r")))] - "" - "cfltu\t%0,%1,0" +(define_insn "float2_mul" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (mult: (float: (match_operand:VSI 1 "spu_reg_operand" "r")) + (match_operand: 2 "spu_inv_exp2_operand" "w")))] + "" + "csflt\t%0,%1,%w2" + [(set_attr "type" "fp7")]) + +(define_insn "float2_div" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (div: (float: (match_operand:VSI 1 "spu_reg_operand" "r")) + (match_operand: 2 "spu_exp2_operand" "v")))] + "" + "csflt\t%0,%1,%v2" + [(set_attr "type" "fp7")]) + + +(define_insn "fix_trunc2_mul" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (fix: (mult:VSF (match_operand:VSF 1 "spu_reg_operand" "r") + (match_operand:VSF 2 "spu_exp2_operand" "v"))))] + "" + "cflts\t%0,%1,%v2" + [(set_attr "type" "fp7")]) + +(define_insn "floatuns2_mul" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (mult: (unsigned_float: (match_operand:VSI 1 "spu_reg_operand" "r")) + (match_operand: 2 "spu_inv_exp2_operand" "w")))] + "" + "cuflt\t%0,%1,%w2" + [(set_attr "type" "fp7")]) + +(define_insn "floatuns2_div" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (div: (unsigned_float: (match_operand:VSI 1 "spu_reg_operand" "r")) + (match_operand: 2 "spu_exp2_operand" "v")))] + "" + "cuflt\t%0,%1,%v2" + [(set_attr "type" "fp7")]) + +(define_insn "fixuns_trunc2_mul" + [(set (match_operand: 0 "spu_reg_operand" "=r") + (unsigned_fix: (mult:VSF (match_operand:VSF 1 "spu_reg_operand" "r") + (match_operand:VSF 2 "spu_exp2_operand" "v"))))] + "" + "cfltu\t%0,%1,%v2" [(set_attr "type" "fp7")]) (define_insn "extendsfdf2" @@ -2327,6 +2355,13 @@ "" [(set_attr "type" "*,fx3")]) +(define_insn "lshr3_imm" + [(set (match_operand:VHSI 0 "spu_reg_operand" "=r") + (lshiftrt:VHSI (match_operand:VHSI 1 "spu_reg_operand" "r") + (match_operand:VHSI 2 "immediate_operand" "W")))] + "" + "rotmi\t%0,%1,-%2" + [(set_attr "type" "fx3")]) (define_insn "rotm_" [(set (match_operand:VHSI 0 "spu_reg_operand" "=r,r") @@ -2338,89 +2373,59 @@ rotmi\t%0,%1,-%2" [(set_attr "type" "fx3")]) -(define_expand "lshr3" - [(parallel [(set (match_operand:DTI 0 "spu_reg_operand" "") - (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "") - (match_operand:SI 2 "spu_nonmem_operand" ""))) - (clobber (match_dup:DTI 3)) - (clobber (match_dup:SI 4)) - (clobber (match_dup:SI 5))])] - "" - "if (GET_CODE (operands[2]) == CONST_INT) - { - emit_insn (gen_lshr3_imm(operands[0], operands[1], operands[2])); - DONE; - } - operands[3] = gen_reg_rtx (mode); - operands[4] = gen_reg_rtx (SImode); - operands[5] = gen_reg_rtx (SImode);") - -(define_insn_and_split "lshr3_imm" - [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r") - (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r") - (match_operand:SI 2 "immediate_operand" "O,P")))] +(define_insn_and_split "lshr3" + [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r,r") + (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r,r") + (match_operand:SI 2 "spu_nonmem_operand" "r,O,P")))] "" "@ + # rotqmbyi\t%0,%1,-%h2 rotqmbii\t%0,%1,-%e2" - "!satisfies_constraint_O (operands[2]) && !satisfies_constraint_P (operands[2])" - [(set (match_dup:DTI 0) + "REG_P (operands[2]) || (!satisfies_constraint_O (operands[2]) && !satisfies_constraint_P (operands[2]))" + [(set (match_dup:DTI 3) (lshiftrt:DTI (match_dup:DTI 1) (match_dup:SI 4))) (set (match_dup:DTI 0) - (lshiftrt:DTI (match_dup:DTI 0) + (lshiftrt:DTI (match_dup:DTI 3) (match_dup:SI 5)))] { - HOST_WIDE_INT val = INTVAL(operands[2]); - operands[4] = GEN_INT (val&7); - operands[5] = GEN_INT (val&-8); + operands[3] = gen_reg_rtx (mode); + if (GET_CODE (operands[2]) == CONST_INT) + { + HOST_WIDE_INT val = INTVAL(operands[2]); + operands[4] = GEN_INT (val & 7); + operands[5] = GEN_INT (val & -8); + } + else + { + rtx t0 = gen_reg_rtx (SImode); + rtx t1 = gen_reg_rtx (SImode); + emit_insn (gen_subsi3(t0, GEN_INT(0), operands[2])); + emit_insn (gen_subsi3(t1, GEN_INT(7), operands[2])); + operands[4] = gen_rtx_AND (SImode, gen_rtx_NEG (SImode, t0), GEN_INT (7)); + operands[5] = gen_rtx_AND (SImode, gen_rtx_NEG (SImode, gen_rtx_AND (SImode, t1, GEN_INT (-8))), GEN_INT (-8)); + } } - [(set_attr "type" "shuf,shuf")]) - -(define_insn_and_split "lshr3_reg" - [(set (match_operand:DTI 0 "spu_reg_operand" "=r") - (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r") - (match_operand:SI 2 "spu_reg_operand" "r"))) - (clobber (match_operand:DTI 3 "spu_reg_operand" "=&r")) - (clobber (match_operand:SI 4 "spu_reg_operand" "=&r")) - (clobber (match_operand:SI 5 "spu_reg_operand" "=&r"))] - "" - "#" - "" - [(set (match_dup:DTI 3) - (lshiftrt:DTI (match_dup:DTI 1) - (and:SI (neg:SI (match_dup:SI 4)) - (const_int 7)))) - (set (match_dup:DTI 0) - (lshiftrt:DTI (match_dup:DTI 3) - (and:SI (neg:SI (and:SI (match_dup:SI 5) - (const_int -8))) - (const_int -8))))] - { - emit_insn (gen_subsi3(operands[4], GEN_INT(0), operands[2])); - emit_insn (gen_subsi3(operands[5], GEN_INT(7), operands[2])); - }) - -(define_insn_and_split "shrqbybi_" + [(set_attr "type" "*,shuf,shuf")]) + +(define_expand "shrqbybi_" [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r") (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r") - (and:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I") - (const_int -8)))) - (clobber (match_scratch:SI 3 "=&r,X"))] - "" - "#" - "reload_completed" - [(set (match_dup:DTI 0) - (lshiftrt:DTI (match_dup:DTI 1) - (and:SI (neg:SI (and:SI (match_dup:SI 3) (const_int -8))) + (and:SI (neg:SI (and:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I") + (const_int -8))) (const_int -8))))] + "" { if (GET_CODE (operands[2]) == CONST_INT) - operands[3] = GEN_INT (7 - INTVAL (operands[2])); + operands[2] = GEN_INT (7 - INTVAL (operands[2])); else - emit_insn (gen_subsi3 (operands[3], GEN_INT (7), operands[2])); - } - [(set_attr "type" "shuf")]) + { + rtx t0 = gen_reg_rtx (SImode); + emit_insn (gen_subsi3 (t0, GEN_INT (7), operands[2])); + operands[2] = t0; + } + }) (define_insn "rotqmbybi_" [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r") @@ -2465,25 +2470,22 @@ rotqmbii\t%0,%1,-%E2" [(set_attr "type" "shuf")]) -(define_insn_and_split "shrqby_" +(define_expand "shrqby_" [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r") (lshiftrt:DTI (match_operand:DTI 1 "spu_reg_operand" "r,r") - (mult:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I") - (const_int 8)))) - (clobber (match_scratch:SI 3 "=&r,X"))] - "" - "#" - "reload_completed" - [(set (match_dup:DTI 0) - (lshiftrt:DTI (match_dup:DTI 1) - (mult:SI (neg:SI (match_dup:SI 3)) (const_int 8))))] + (mult:SI (neg:SI (match_operand:SI 2 "spu_nonmem_operand" "r,I")) + (const_int 8))))] + "" { if (GET_CODE (operands[2]) == CONST_INT) - operands[3] = GEN_INT (-INTVAL (operands[2])); + operands[2] = GEN_INT (-INTVAL (operands[2])); else - emit_insn (gen_subsi3 (operands[3], GEN_INT (0), operands[2])); - } - [(set_attr "type" "shuf")]) + { + rtx t0 = gen_reg_rtx (SImode); + emit_insn (gen_subsi3 (t0, GEN_INT (0), operands[2])); + operands[2] = t0; + } + }) (define_insn "rotqmby_" [(set (match_operand:DTI 0 "spu_reg_operand" "=r,r") @@ -2517,6 +2519,14 @@ "" [(set_attr "type" "*,fx3")]) +(define_insn "ashr3_imm" + [(set (match_operand:VHSI 0 "spu_reg_operand" "=r") + (ashiftrt:VHSI (match_operand:VHSI 1 "spu_reg_operand" "r") + (match_operand:VHSI 2 "immediate_operand" "W")))] + "" + "rotmai\t%0,%1,-%2" + [(set_attr "type" "fx3")]) + (define_insn "rotma_" [(set (match_operand:VHSI 0 "spu_reg_operand" "=r,r") @@ -2601,11 +2611,16 @@ }) -(define_expand "ashrti3" - [(set (match_operand:TI 0 "spu_reg_operand" "") - (ashiftrt:TI (match_operand:TI 1 "spu_reg_operand" "") - (match_operand:SI 2 "spu_nonmem_operand" "")))] - "" +(define_insn_and_split "ashrti3" + [(set (match_operand:TI 0 "spu_reg_operand" "=r,r") + (ashiftrt:TI (match_operand:TI 1 "spu_reg_operand" "r,r") + (match_operand:SI 2 "spu_nonmem_operand" "r,i")))] + "" + "#" + "" + [(set (match_dup:TI 0) + (ashiftrt:TI (match_dup:TI 1) + (match_dup:SI 2)))] { rtx sign_shift = gen_reg_rtx (SImode); rtx sign_mask = gen_reg_rtx (TImode); @@ -2690,33 +2705,133 @@ ;; struct extract/insert -;; We have to handle mem's because GCC will generate invalid SUBREG's -;; if it handles them. We generate better code anyway. +;; We handle mem's because GCC will generate invalid SUBREG's +;; and inefficient code. (define_expand "extv" - [(set (match_operand 0 "register_operand" "") - (sign_extract (match_operand 1 "register_operand" "") - (match_operand:SI 2 "const_int_operand" "") - (match_operand:SI 3 "const_int_operand" "")))] - "" - { spu_expand_extv(operands, 0); DONE; }) + [(set (match_operand:TI 0 "register_operand" "") + (sign_extract:TI (match_operand 1 "nonimmediate_operand" "") + (match_operand:SI 2 "const_int_operand" "") + (match_operand:SI 3 "const_int_operand" "")))] + "" + { + spu_expand_extv (operands, 0); + DONE; + }) (define_expand "extzv" - [(set (match_operand 0 "register_operand" "") - (zero_extract (match_operand 1 "register_operand" "") + [(set (match_operand:TI 0 "register_operand" "") + (zero_extract:TI (match_operand 1 "nonimmediate_operand" "") (match_operand:SI 2 "const_int_operand" "") (match_operand:SI 3 "const_int_operand" "")))] "" - { spu_expand_extv(operands, 1); DONE; }) + { + spu_expand_extv (operands, 1); + DONE; + }) (define_expand "insv" - [(set (zero_extract (match_operand 0 "register_operand" "") + [(set (zero_extract (match_operand 0 "nonimmediate_operand" "") (match_operand:SI 1 "const_int_operand" "") (match_operand:SI 2 "const_int_operand" "")) (match_operand 3 "nonmemory_operand" ""))] "" { spu_expand_insv(operands); DONE; }) +;; Simplify a number of patterns that get generated by extv, extzv, +;; insv, and loads. +(define_insn_and_split "trunc_shr_ti" + [(set (match_operand:QHSI 0 "spu_reg_operand" "=r") + (truncate:QHSI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "0") + (const_int 96)])))] + "" + "#" + "reload_completed" + [(const_int 0)] + { + spu_split_convert (operands); + DONE; + } + [(set_attr "type" "convert") + (set_attr "length" "0")]) + +(define_insn_and_split "trunc_shr_tidi" + [(set (match_operand:DI 0 "spu_reg_operand" "=r") + (truncate:DI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "0") + (const_int 64)])))] + "" + "#" + "reload_completed" + [(const_int 0)] + { + spu_split_convert (operands); + DONE; + } + [(set_attr "type" "convert") + (set_attr "length" "0")]) + +(define_insn_and_split "shl_ext_ti" + [(set (match_operand:TI 0 "spu_reg_operand" "=r") + (ashift:TI (match_operator:TI 2 "extend_operator" [(match_operand:QHSI 1 "spu_reg_operand" "0")]) + (const_int 96)))] + "" + "#" + "reload_completed" + [(const_int 0)] + { + spu_split_convert (operands); + DONE; + } + [(set_attr "type" "convert") + (set_attr "length" "0")]) + +(define_insn_and_split "shl_ext_diti" + [(set (match_operand:TI 0 "spu_reg_operand" "=r") + (ashift:TI (match_operator:TI 2 "extend_operator" [(match_operand:DI 1 "spu_reg_operand" "0")]) + (const_int 64)))] + "" + "#" + "reload_completed" + [(const_int 0)] + { + spu_split_convert (operands); + DONE; + } + [(set_attr "type" "convert") + (set_attr "length" "0")]) + +(define_insn "sext_trunc_lshr_tiqisi" + [(set (match_operand:SI 0 "spu_reg_operand" "=r") + (sign_extend:SI (truncate:QI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r") + (const_int 120)]))))] + "" + "rotmai\t%0,%1,-24" + [(set_attr "type" "fx3")]) + +(define_insn "zext_trunc_lshr_tiqisi" + [(set (match_operand:SI 0 "spu_reg_operand" "=r") + (zero_extend:SI (truncate:QI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r") + (const_int 120)]))))] + "" + "rotmi\t%0,%1,-24" + [(set_attr "type" "fx3")]) + +(define_insn "sext_trunc_lshr_tihisi" + [(set (match_operand:SI 0 "spu_reg_operand" "=r") + (sign_extend:SI (truncate:HI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r") + (const_int 112)]))))] + "" + "rotmai\t%0,%1,-16" + [(set_attr "type" "fx3")]) + +(define_insn "zext_trunc_lshr_tihisi" + [(set (match_operand:SI 0 "spu_reg_operand" "=r") + (zero_extend:SI (truncate:HI (match_operator:TI 2 "shiftrt_operator" [(match_operand:TI 1 "spu_reg_operand" "r") + (const_int 112)]))))] + "" + "rotmi\t%0,%1,-16" + [(set_attr "type" "fx3")]) + ;; String/block move insn. ;; Argument 0 is the destination @@ -4369,21 +4484,20 @@ DONE; }) -(define_insn "_spu_convert" +(define_insn_and_split "_spu_convert" [(set (match_operand 0 "spu_reg_operand" "=r") (unspec [(match_operand 1 "spu_reg_operand" "0")] UNSPEC_CONVERT))] - "operands" - "" + "" + "#" + "reload_completed" + [(const_int 0)] + { + spu_split_convert (operands); + DONE; + } [(set_attr "type" "convert") (set_attr "length" "0")]) -(define_peephole2 - [(set (match_operand 0 "spu_reg_operand") - (unspec [(match_operand 1 "spu_reg_operand")] UNSPEC_CONVERT))] - "" - [(use (const_int 0))] - "") - ;; (include "spu-builtins.md") @@ -5252,8 +5366,8 @@ }") (define_insn "stack_protect_set" - [(set (match_operand:SI 0 "spu_mem_operand" "=m") - (unspec:SI [(match_operand:SI 1 "spu_mem_operand" "m")] UNSPEC_SP_SET)) + [(set (match_operand:SI 0 "memory_operand" "=m") + (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET)) (set (match_scratch:SI 2 "=&r") (const_int 0))] "" "lq%p1\t%2,%1\;stq%p0\t%2,%0\;xor\t%2,%2,%2" @@ -5262,8 +5376,8 @@ ) (define_expand "stack_protect_test" - [(match_operand 0 "spu_mem_operand" "") - (match_operand 1 "spu_mem_operand" "") + [(match_operand 0 "memory_operand" "") + (match_operand 1 "memory_operand" "") (match_operand 2 "" "")] "" { @@ -5289,8 +5403,8 @@ (define_insn "stack_protect_test_si" [(set (match_operand:SI 0 "spu_reg_operand" "=&r") - (unspec:SI [(match_operand:SI 1 "spu_mem_operand" "m") - (match_operand:SI 2 "spu_mem_operand" "m")] + (unspec:SI [(match_operand:SI 1 "memory_operand" "m") + (match_operand:SI 2 "memory_operand" "m")] UNSPEC_SP_TEST)) (set (match_scratch:SI 3 "=&r") (const_int 0))] "" diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/config/t-slibgcc-elf-ver --- a/gcc/config/t-slibgcc-elf-ver Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/config/t-slibgcc-elf-ver Sun Feb 07 17:44:34 2010 +0900 @@ -10,6 +10,9 @@ SHLIB_DIR = @multilib_dir@ SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ SHLIB_LC = -lc +SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) +SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ + $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ -Wl,--soname=$(SHLIB_SONAME) \ @@ -22,7 +25,7 @@ $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \ else true; fi && \ mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \ - $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) + $(SHLIB_MAKE_SOLINK) # $(slibdir) double quoted to protect it from expansion while building # libgcc.mk. We want this delayed until actual install time. SHLIB_INSTALL = \ @@ -30,7 +33,6 @@ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \ rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \ - $(LN_S) $(SHLIB_SONAME) \ - $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) + $(SHLIB_INSTALL_SOLINK) SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/aot-compile.1 --- a/gcc/doc/aot-compile.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/aot-compile.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "AOT-COMPILE 1" -.TH AOT-COMPILE 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH AOT-COMPILE 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/cpp.1 --- a/gcc/doc/cpp.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/cpp.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "CPP 1" -.TH CPP 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH CPP 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/cpp.info Binary file gcc/doc/cpp.info has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/cppinternals.info Binary file gcc/doc/cppinternals.info has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/fsf-funding.7 --- a/gcc/doc/fsf-funding.7 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/fsf-funding.7 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" -.TH FSF-FUNDING 7 "2009-07-22" "gcc-4.4.1" "GNU" +.TH FSF-FUNDING 7 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/g++.1 --- a/gcc/doc/g++.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/g++.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GCC 1" -.TH GCC 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GCC 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -468,7 +468,7 @@ \&\-mfix\-cortex\-m3\-ldrd\fR .Sp \&\fI\s-1AVR\s0 Options\fR -\&\fB\-mmcu=\fR\fImcu\fR \fB\-msize \-minit\-stack=\fR\fIn\fR \fB\-mno\-interrupts +\&\fB\-mmcu=\fR\fImcu\fR \fB\-msize \-mno\-interrupts \&\-mcall\-prologues \-mno\-tablejump \-mtiny\-stack \-mint8\fR .Sp \&\fIBlackfin Options\fR @@ -1692,6 +1692,26 @@ .Sp This option is no longer useful on most targets, now that support has been added for putting variables into \s-1BSS\s0 without making them common. +.IP "\fB\-fno\-deduce\-init\-list\fR" 4 +.IX Item "-fno-deduce-init-list" +Disable deduction of a template type parameter as +std::initializer_list from a brace-enclosed initializer list, i.e. +.Sp +.Vb 4 +\& template auto forward(T t) \-> decltype (realfn (t)) +\& { +\& return realfn (t); +\& } +\& +\& void f() +\& { +\& forward({1,2}); // call forward> +\& } +.Ve +.Sp +This option is present because this deduction is an extension to the +current specification in the \*(C+0x working draft, and there was +some concern about potential overload resolution problems. .IP "\fB\-ffriend\-injection\fR" 4 .IX Item "-ffriend-injection" Inject friend functions into the enclosing namespace, so that they are @@ -5857,7 +5877,7 @@ Enabled at levels \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR. .IP "\fB\-fstrict\-aliasing\fR" 4 .IX Item "-fstrict-aliasing" -Allows the compiler to assume the strictest aliasing rules applicable to +Allow the compiler to assume the strictest aliasing rules applicable to the language being compiled. For C (and \*(C+), this activates optimizations based on the type of expressions. In particular, an object of one type is assumed never to reside at the same address as an @@ -5875,7 +5895,7 @@ \& }; \& \& int f() { -\& a_union t; +\& union a_union t; \& t.d = 3.0; \& return t.i; \& } @@ -5889,7 +5909,7 @@ .Sp .Vb 7 \& int f() { -\& a_union t; +\& union a_union t; \& int* ip; \& t.d = 3.0; \& ip = &t.i; @@ -7100,8 +7120,8 @@ Some of these options make sense only together with \fB\-E\fR because they cause the preprocessor output to be unsuitable for actual compilation. -.Sp -.RS 4 +.IP "\fB\-Wp,\fR\fIoption\fR" 4 +.IX Item "-Wp,option" You can use \fB\-Wp,\fR\fIoption\fR to bypass the compiler driver and pass \fIoption\fR directly through to the preprocessor. If \&\fIoption\fR contains commas, it is split into multiple options at the @@ -7111,16 +7131,14 @@ interface is undocumented and subject to change, so whenever possible you should avoid using \fB\-Wp\fR and let the driver handle the options instead. -.Sp -\&\fB\-Xpreprocessor\fR \fIoption\fR -.Sp +.IP "\fB\-Xpreprocessor\fR \fIoption\fR" 4 +.IX Item "-Xpreprocessor option" Pass \fIoption\fR as an option to the preprocessor. You can use this to supply system-specific preprocessor options which \s-1GCC\s0 does not know how to recognize. .Sp If you want to pass an option that takes an argument, you must use \&\fB\-Xpreprocessor\fR twice, once for the option and once for the argument. -.RE .IP "\fB\-D\fR \fIname\fR" 4 .IX Item "-D name" Predefine \fIname\fR as a macro, with definition \f(CW1\fR. @@ -8542,10 +8560,6 @@ .IP "\fB\-msize\fR" 4 .IX Item "-msize" Output instruction sizes to the asm file. -.IP "\fB\-minit\-stack=\fR\fIN\fR" 4 -.IX Item "-minit-stack=N" -Specify the initial stack address, which may be a symbol or numeric value, -\&\fB_\|_stack\fR is the default. .IP "\fB\-mno\-interrupts\fR" 4 .IX Item "-mno-interrupts" Generated code is not compatible with hardware interrupts. @@ -15343,9 +15357,3 @@ \& software. Copies published by the Free Software Foundation raise \& funds for GNU development. .Ve -.SH "POD ERRORS" -.IX Header "POD ERRORS" -Hey! \fBThe above document had some coding errors, which are explained below:\fR -.IP "Around line 8714:" 4 -.IX Item "Around line 8714:" -You can't have =items (as at line 8727) unless the first thing after the =over is an =item diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gc-analyze.1 --- a/gcc/doc/gc-analyze.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gc-analyze.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GC-ANALYZE 1" -.TH GC-ANALYZE 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GC-ANALYZE 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gcc.1 --- a/gcc/doc/gcc.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gcc.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GCC 1" -.TH GCC 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GCC 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -468,7 +468,7 @@ \&\-mfix\-cortex\-m3\-ldrd\fR .Sp \&\fI\s-1AVR\s0 Options\fR -\&\fB\-mmcu=\fR\fImcu\fR \fB\-msize \-minit\-stack=\fR\fIn\fR \fB\-mno\-interrupts +\&\fB\-mmcu=\fR\fImcu\fR \fB\-msize \-mno\-interrupts \&\-mcall\-prologues \-mno\-tablejump \-mtiny\-stack \-mint8\fR .Sp \&\fIBlackfin Options\fR @@ -1692,6 +1692,26 @@ .Sp This option is no longer useful on most targets, now that support has been added for putting variables into \s-1BSS\s0 without making them common. +.IP "\fB\-fno\-deduce\-init\-list\fR" 4 +.IX Item "-fno-deduce-init-list" +Disable deduction of a template type parameter as +std::initializer_list from a brace-enclosed initializer list, i.e. +.Sp +.Vb 4 +\& template auto forward(T t) \-> decltype (realfn (t)) +\& { +\& return realfn (t); +\& } +\& +\& void f() +\& { +\& forward({1,2}); // call forward> +\& } +.Ve +.Sp +This option is present because this deduction is an extension to the +current specification in the \*(C+0x working draft, and there was +some concern about potential overload resolution problems. .IP "\fB\-ffriend\-injection\fR" 4 .IX Item "-ffriend-injection" Inject friend functions into the enclosing namespace, so that they are @@ -5857,7 +5877,7 @@ Enabled at levels \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR. .IP "\fB\-fstrict\-aliasing\fR" 4 .IX Item "-fstrict-aliasing" -Allows the compiler to assume the strictest aliasing rules applicable to +Allow the compiler to assume the strictest aliasing rules applicable to the language being compiled. For C (and \*(C+), this activates optimizations based on the type of expressions. In particular, an object of one type is assumed never to reside at the same address as an @@ -5875,7 +5895,7 @@ \& }; \& \& int f() { -\& a_union t; +\& union a_union t; \& t.d = 3.0; \& return t.i; \& } @@ -5889,7 +5909,7 @@ .Sp .Vb 7 \& int f() { -\& a_union t; +\& union a_union t; \& int* ip; \& t.d = 3.0; \& ip = &t.i; @@ -7100,8 +7120,8 @@ Some of these options make sense only together with \fB\-E\fR because they cause the preprocessor output to be unsuitable for actual compilation. -.Sp -.RS 4 +.IP "\fB\-Wp,\fR\fIoption\fR" 4 +.IX Item "-Wp,option" You can use \fB\-Wp,\fR\fIoption\fR to bypass the compiler driver and pass \fIoption\fR directly through to the preprocessor. If \&\fIoption\fR contains commas, it is split into multiple options at the @@ -7111,16 +7131,14 @@ interface is undocumented and subject to change, so whenever possible you should avoid using \fB\-Wp\fR and let the driver handle the options instead. -.Sp -\&\fB\-Xpreprocessor\fR \fIoption\fR -.Sp +.IP "\fB\-Xpreprocessor\fR \fIoption\fR" 4 +.IX Item "-Xpreprocessor option" Pass \fIoption\fR as an option to the preprocessor. You can use this to supply system-specific preprocessor options which \s-1GCC\s0 does not know how to recognize. .Sp If you want to pass an option that takes an argument, you must use \&\fB\-Xpreprocessor\fR twice, once for the option and once for the argument. -.RE .IP "\fB\-D\fR \fIname\fR" 4 .IX Item "-D name" Predefine \fIname\fR as a macro, with definition \f(CW1\fR. @@ -8542,10 +8560,6 @@ .IP "\fB\-msize\fR" 4 .IX Item "-msize" Output instruction sizes to the asm file. -.IP "\fB\-minit\-stack=\fR\fIN\fR" 4 -.IX Item "-minit-stack=N" -Specify the initial stack address, which may be a symbol or numeric value, -\&\fB_\|_stack\fR is the default. .IP "\fB\-mno\-interrupts\fR" 4 .IX Item "-mno-interrupts" Generated code is not compatible with hardware interrupts. @@ -15343,9 +15357,3 @@ \& software. Copies published by the Free Software Foundation raise \& funds for GNU development. .Ve -.SH "POD ERRORS" -.IX Header "POD ERRORS" -Hey! \fBThe above document had some coding errors, which are explained below:\fR -.IP "Around line 8714:" 4 -.IX Item "Around line 8714:" -You can't have =items (as at line 8727) unless the first thing after the =over is an =item diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gcc.info Binary file gcc/doc/gcc.info has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gccinstall.info Binary file gcc/doc/gccinstall.info has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gccint.info Binary file gcc/doc/gccint.info has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gcj-dbtool.1 --- a/gcc/doc/gcj-dbtool.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gcj-dbtool.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GCJ-DBTOOL 1" -.TH GCJ-DBTOOL 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GCJ-DBTOOL 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gcj.1 --- a/gcc/doc/gcj.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gcj.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GCJ 1" -.TH GCJ 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GCJ 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gcj.info Binary file gcc/doc/gcj.info has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gcov.1 --- a/gcc/doc/gcov.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gcov.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GCOV 1" -.TH GCOV 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GCOV 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gfdl.7 --- a/gcc/doc/gfdl.7 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gfdl.7 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GFDL 7" -.TH GFDL 7 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GFDL 7 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gfortran.1 --- a/gcc/doc/gfortran.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gfortran.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GFORTRAN 1" -.TH GFORTRAN 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GFORTRAN 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gij.1 --- a/gcc/doc/gij.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gij.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GIJ 1" -.TH GIJ 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GIJ 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/gpl.7 --- a/gcc/doc/gpl.7 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/gpl.7 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GPL 7" -.TH GPL 7 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GPL 7 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/grmic.1 --- a/gcc/doc/grmic.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/grmic.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "GRMIC 1" -.TH GRMIC 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH GRMIC 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/invoke.texi --- a/gcc/doc/invoke.texi Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/invoke.texi Sun Feb 07 17:44:34 2010 +0900 @@ -7817,6 +7817,7 @@ compilation. @table @gcctabopt +@item -Wp,@var{option} @opindex Wp You can use @option{-Wp,@var{option}} to bypass the compiler driver and pass @var{option} directly through to the preprocessor. If @@ -7829,7 +7830,7 @@ options instead. @item -Xpreprocessor @var{option} -@opindex preprocessor +@opindex Xpreprocessor Pass @var{option} as an option to the preprocessor. You can use this to supply system-specific preprocessor options which GCC does not know how to recognize. diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/jcf-dump.1 --- a/gcc/doc/jcf-dump.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/jcf-dump.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "JCF-DUMP 1" -.TH JCF-DUMP 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH JCF-DUMP 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/jv-convert.1 --- a/gcc/doc/jv-convert.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/jv-convert.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "JV-CONVERT 1" -.TH JV-CONVERT 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH JV-CONVERT 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/rebuild-gcj-db.1 --- a/gcc/doc/rebuild-gcj-db.1 Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/rebuild-gcj-db.1 Sun Feb 07 17:44:34 2010 +0900 @@ -132,7 +132,7 @@ .\" ======================================================================== .\" .IX Title "REBUILD-GCJ-DB 1" -.TH REBUILD-GCJ-DB 1 "2009-07-22" "gcc-4.4.1" "GNU" +.TH REBUILD-GCJ-DB 1 "2010-01-21" "gcc-4.4.3" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/doc/tm.texi --- a/gcc/doc/tm.texi Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/doc/tm.texi Sun Feb 07 17:44:34 2010 +0900 @@ -10149,18 +10149,6 @@ @samp{#pragma pack()} (that is, a small power of two). @end defmac -@findex #pragma -@findex pragma -@defmac HANDLE_PRAGMA_PUSH_POP_MACRO -Define this macro if you want to support the Win32 style pragmas -@samp{#pragma push_macro(macro-name-as-string)} and @samp{#pragma -pop_macro(macro-name-as-string)}. The @samp{#pragma push_macro( -macro-name-as-string)} pragma saves the named macro and via -@samp{#pragma pop_macro(macro-name-as-string)} it will return to the -previous value. -@end defmac - - @defmac DOLLARS_IN_IDENTIFIERS Define this macro to control use of the character @samp{$} in identifier names for the C family of languages. 0 means @samp{$} is diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/dwarf2out.c --- a/gcc/dwarf2out.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/dwarf2out.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,6 +1,7 @@ /* Output Dwarf2 format symbol table information from GCC. Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. Contributed by Gary Funck (gary@intrepid.com). Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com). Extensively modified by Jason Merrill (jason@cygnus.com). @@ -10640,6 +10641,8 @@ case CEIL_DIV_EXPR: case ROUND_DIV_EXPR: case TRUNC_DIV_EXPR: + if (TYPE_UNSIGNED (TREE_TYPE (loc))) + return 0; op = DW_OP_div; goto do_binop; @@ -10651,8 +10654,23 @@ case CEIL_MOD_EXPR: case ROUND_MOD_EXPR: case TRUNC_MOD_EXPR: - op = DW_OP_mod; - goto do_binop; + if (TYPE_UNSIGNED (TREE_TYPE (loc))) + { + op = DW_OP_mod; + goto do_binop; + } + ret = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 0), 0); + ret1 = loc_descriptor_from_tree_1 (TREE_OPERAND (loc, 1), 0); + if (ret == 0 || ret1 == 0) + return 0; + + add_loc_descr (&ret, ret1); + add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0)); + add_loc_descr (&ret, new_loc_descr (DW_OP_over, 0, 0)); + add_loc_descr (&ret, new_loc_descr (DW_OP_div, 0, 0)); + add_loc_descr (&ret, new_loc_descr (DW_OP_mul, 0, 0)); + add_loc_descr (&ret, new_loc_descr (DW_OP_minus, 0, 0)); + break; case MULT_EXPR: op = DW_OP_mul; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/expmed.c --- a/gcc/expmed.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/expmed.c Sun Feb 07 17:44:34 2010 +0900 @@ -4121,7 +4121,8 @@ else if (d == -1) quotient = expand_unop (compute_mode, neg_optab, op0, tquotient, 0); - else if (abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1)) + else if (HOST_BITS_PER_WIDE_INT >= size + && abs_d == (unsigned HOST_WIDE_INT) 1 << (size - 1)) { /* This case is not handled correctly below. */ quotient = emit_store_flag (tquotient, EQ, op0, op1, diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/expr.c --- a/gcc/expr.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/expr.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,6 +1,6 @@ /* Convert tree expression to rtl instructions, for GNU compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -4248,7 +4248,7 @@ /* Handle expand_expr of a complex value returning a CONCAT. */ if (GET_CODE (to_rtx) == CONCAT) { - if (TREE_CODE (TREE_TYPE (from)) == COMPLEX_TYPE) + if (COMPLEX_MODE_P (TYPE_MODE (TREE_TYPE (from)))) { gcc_assert (bitpos == 0); result = store_expr (from, to_rtx, false, nontemporal); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/fold-const.c --- a/gcc/fold-const.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/fold-const.c Sun Feb 07 17:44:34 2010 +0900 @@ -328,13 +328,17 @@ HOST_WIDE_INT h; l = l1 + l2; - h = h1 + h2 + (l < l1); + h = (HOST_WIDE_INT) ((unsigned HOST_WIDE_INT) h1 + + (unsigned HOST_WIDE_INT) h2 + + (l < l1)); *lv = l; *hv = h; if (unsigned_p) - return (unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1; + return ((unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1 + || (h == h1 + && l < l1)); else return OVERFLOW_SUM_SIGN (h1, h2, h); } diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/function.c --- a/gcc/function.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/function.c Sun Feb 07 17:44:34 2010 +0900 @@ -4274,12 +4274,8 @@ tree guard_decl = targetm.stack_protect_guard (); rtx x, y; - /* Avoid expand_expr here, because we don't want guard_decl pulled - into registers unless absolutely necessary. And we know that - crtl->stack_protect_guard is a local stack slot, so this skips - all the fluff. */ - x = validize_mem (DECL_RTL (crtl->stack_protect_guard)); - y = validize_mem (DECL_RTL (guard_decl)); + x = expand_normal (crtl->stack_protect_guard); + y = expand_normal (guard_decl); /* Allow the target to copy from Y to X without leaking Y into a register. */ @@ -4312,12 +4308,8 @@ rtx label = gen_label_rtx (); rtx x, y, tmp; - /* Avoid expand_expr here, because we don't want guard_decl pulled - into registers unless absolutely necessary. And we know that - crtl->stack_protect_guard is a local stack slot, so this skips - all the fluff. */ - x = validize_mem (DECL_RTL (crtl->stack_protect_guard)); - y = validize_mem (DECL_RTL (guard_decl)); + x = expand_normal (crtl->stack_protect_guard); + y = expand_normal (guard_decl); /* Allow the target to compare Y with X without leaking either into a register. */ diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/gcc.c --- a/gcc/gcc.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/gcc.c Sun Feb 07 17:44:34 2010 +0900 @@ -3642,7 +3642,7 @@ /* translate_options () has turned --version into -fversion. */ printf (_("%s %s%s\n"), programname, pkgversion_string, version_string); - printf ("Copyright %s 2009 Free Software Foundation, Inc.\n", + printf ("Copyright %s 2010 Free Software Foundation, Inc.\n", _("(C)")); fputs (_("This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/gcov-dump.c --- a/gcc/gcov-dump.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/gcov-dump.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,5 +1,5 @@ /* Dump a gcov file, for debugging use. - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Nathan Sidwell @@ -121,7 +121,7 @@ print_version (void) { printf ("gcov-dump %s%s\n", pkgversion_string, version_string); - printf ("Copyright (C) 2009 Free Software Foundation, Inc.\n"); + printf ("Copyright (C) 2010 Free Software Foundation, Inc.\n"); printf ("This is free software; see the source for copying conditions.\n" "There is NO warranty; not even for MERCHANTABILITY or \n" "FITNESS FOR A PARTICULAR PURPOSE.\n\n"); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/gcov.c --- a/gcc/gcov.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/gcov.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,7 +1,7 @@ /* Gcov.c: prepend line execution counts and branch probabilities to a source file. Copyright (C) 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by James E. Wilson of Cygnus Support. Mangled by Bob Manson of Cygnus Support. @@ -426,7 +426,7 @@ print_version (void) { fnotice (stdout, "gcov %s%s\n", pkgversion_string, version_string); - fprintf (stdout, "Copyright %s 2009 Free Software Foundation, Inc.\n", + fprintf (stdout, "Copyright %s 2010 Free Software Foundation, Inc.\n", _("(C)")); fnotice (stdout, _("This is free software; see the source for copying conditions.\n" diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/gengtype-lex.c --- a/gcc/gengtype-lex.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/gengtype-lex.c Sun Feb 07 17:44:34 2010 +0900 @@ -936,7 +936,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -#line 1 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 1 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 @@ -957,7 +957,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ -#line 23 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 23 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" #include "bconfig.h" #include "system.h" @@ -1072,7 +1072,7 @@ /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -1168,7 +1168,7 @@ register char *yy_cp, *yy_bp; register int yy_act; -#line 58 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 58 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; @@ -1265,7 +1265,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 69 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 69 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; @@ -1277,7 +1277,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 73 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 73 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; @@ -1289,7 +1289,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 77 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 77 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; @@ -1301,7 +1301,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 81 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 81 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; @@ -1313,7 +1313,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 85 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 85 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; @@ -1325,7 +1325,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 90 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 90 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return DEFVEC_OP; @@ -1337,7 +1337,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 94 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 94 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return DEFVEC_I; @@ -1349,7 +1349,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 98 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 98 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); return DEFVEC_ALLOC; @@ -1359,19 +1359,19 @@ case 9: YY_RULE_SETUP -#line 106 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 106 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 108 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 108 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 109 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 109 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 12: @@ -1380,7 +1380,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 111 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 111 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 13: @@ -1389,7 +1389,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 112 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 112 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 14: @@ -1398,7 +1398,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 113 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 113 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return VEC_TOKEN; } YY_BREAK case 15: @@ -1407,7 +1407,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 114 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 114 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 16: @@ -1416,7 +1416,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 115 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 115 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 17: @@ -1425,7 +1425,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 116 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 116 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 18: @@ -1434,7 +1434,7 @@ (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 117 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 117 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 19: @@ -1443,12 +1443,12 @@ (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 118 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 118 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 20: YY_RULE_SETUP -#line 119 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 119 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 21: @@ -1457,7 +1457,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 120 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 120 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return PARAM_IS; @@ -1468,11 +1468,11 @@ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ -#line 126 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 126 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 126 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 126 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { size_t len; @@ -1490,7 +1490,7 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 138 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 138 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; @@ -1499,7 +1499,7 @@ case 25: /* rule 25 can match eol */ YY_RULE_SETUP -#line 143 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 143 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; @@ -1509,7 +1509,7 @@ case 26: /* rule 26 can match eol */ YY_RULE_SETUP -#line 148 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 148 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; @@ -1518,7 +1518,7 @@ case 27: /* rule 27 can match eol */ YY_RULE_SETUP -#line 152 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 152 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; @@ -1526,24 +1526,24 @@ YY_BREAK case 28: YY_RULE_SETUP -#line 157 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 157 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 29: YY_RULE_SETUP -#line 158 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 158 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 30: /* rule 30 can match eol */ YY_RULE_SETUP -#line 161 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 161 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 31: YY_RULE_SETUP -#line 163 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 163 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } @@ -1551,30 +1551,30 @@ case 32: YY_RULE_SETUP -#line 168 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 168 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 33: /* rule 33 can match eol */ YY_RULE_SETUP -#line 169 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 169 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 34: -#line 171 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 171 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" case 35: /* rule 35 can match eol */ -#line 172 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 172 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" case 36: /* rule 36 can match eol */ YY_RULE_SETUP -#line 172 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 172 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP -#line 173 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 173 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 38: @@ -1583,21 +1583,21 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 174 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 174 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 177 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 177 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 40: -#line 179 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 179 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" case 41: YY_RULE_SETUP -#line 179 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 179 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: @@ -1606,25 +1606,25 @@ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 180 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 180 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 43: YY_RULE_SETUP -#line 182 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 182 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 44: YY_RULE_SETUP -#line 183 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 183 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 45: -#line 186 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 186 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP -#line 186 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 186 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); @@ -1633,20 +1633,20 @@ case 47: /* rule 47 can match eol */ YY_RULE_SETUP -#line 191 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 191 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 192 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 192 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "stray GTY marker"); } YY_BREAK case 49: YY_RULE_SETUP -#line 196 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 196 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1653 "gengtype-lex.c" @@ -2613,7 +2613,7 @@ #define YYTABLES_NAME "yytables" -#line 196 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l" +#line 196 "/d/gcc-4.4.3/gcc-4.4.3/gcc/gengtype-lex.l" diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/gimplify.c --- a/gcc/gimplify.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/gimplify.c Sun Feb 07 17:44:34 2010 +0900 @@ -6134,6 +6134,8 @@ tree tmp_load; tmp_load = create_tmp_var (type, NULL); + if (TREE_CODE (type) == COMPLEX_TYPE || TREE_CODE (type) == VECTOR_TYPE) + DECL_GIMPLE_REG_P (tmp_load) = 1; if (goa_stabilize_expr (&rhs, pre_p, addr, tmp_load) < 0) return GS_ERROR; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/ifcvt.c --- a/gcc/ifcvt.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/ifcvt.c Sun Feb 07 17:44:34 2010 +0900 @@ -4040,7 +4040,8 @@ if (! note) continue; set = single_set (insn); - if (!set || !function_invariant_p (SET_SRC (set))) + if (!set || !function_invariant_p (SET_SRC (set)) + || !function_invariant_p (XEXP (note, 0))) remove_note (insn, note); } while (insn != end && (insn = NEXT_INSN (insn))); @@ -4118,7 +4119,12 @@ #ifdef IFCVT_MULTIPLE_DUMPS if (dump_file && cond_exec_changed_p) - print_rtl_with_bb (dump_file, get_insns ()); + { + if (dump_flags & TDF_SLIM) + print_rtl_slim_with_bb (dump_file, get_insns (), dump_flags); + else + print_rtl_with_bb (dump_file, get_insns ()); + } #endif } while (cond_exec_changed_p); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/ipa-cp.c --- a/gcc/ipa-cp.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/ipa-cp.c Sun Feb 07 17:44:34 2010 +0900 @@ -191,10 +191,32 @@ static void ipcp_update_cloned_node (struct cgraph_node *new_node) { + basic_block bb; + gimple_stmt_iterator gsi; + /* We might've introduced new direct calls. */ push_cfun (DECL_STRUCT_FUNCTION (new_node->decl)); current_function_decl = new_node->decl; - rebuild_cgraph_edges (); + + FOR_EACH_BB (bb) + for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) + { + gimple stmt = gsi_stmt (gsi); + tree decl; + + if (is_gimple_call (stmt) + && (decl = gimple_call_fndecl (stmt)) + && !cgraph_edge (new_node, stmt)) + { + struct cgraph_edge *new_edge; + + new_edge = cgraph_create_edge (new_node, cgraph_node (decl), stmt, + bb->count, + compute_call_stmt_bb_frequency (bb), + bb->loop_depth); + new_edge->indirect_call = 1; + } + } /* Indirect inlinng rely on fact that we've already analyzed the body.. */ @@ -960,7 +982,9 @@ for (cs = node->callers; cs; cs = next) { next = cs->next_caller; - if (ipcp_node_is_clone (cs->caller) || !ipcp_need_redirect_p (cs)) + if (!cs->indirect_call + && (ipcp_node_is_clone (cs->caller) + || !ipcp_need_redirect_p (cs))) { gimple new_stmt; gimple_stmt_iterator gsi; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/mips-tdump.c --- a/gcc/mips-tdump.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/mips-tdump.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,6 +1,6 @@ /* Read and manage MIPS symbol tables from object modules. Copyright (C) 1991, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004, - 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by hartzell@boulder.colorado.edu, Rewritten by meissner@osf.org. @@ -1414,7 +1414,7 @@ if (version) { printf ("mips-tdump %s%s\n", pkgversion_string, version_string); - fputs ("Copyright (C) 2009 Free Software Foundation, Inc.\n", stdout); + fputs ("Copyright (C) 2010 Free Software Foundation, Inc.\n", stdout); fputs ("This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n", stdout); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/mips-tfile.c --- a/gcc/mips-tfile.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/mips-tfile.c Sun Feb 07 17:44:34 2010 +0900 @@ -3,7 +3,7 @@ in the form of comments (the mips assembler does not support assembly access to debug information). Copyright (C) 1991, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Michael Meissner (meissner@cygnus.com). @@ -4781,7 +4781,7 @@ if (version) { printf (_("mips-tfile %s%s\n"), pkgversion_string, version_string); - fputs ("Copyright (C) 2009 Free Software Foundation, Inc.\n", stdout); + fputs ("Copyright (C) 2010 Free Software Foundation, Inc.\n", stdout); fputs (_("This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"), stdout); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/omp-low.c --- a/gcc/omp-low.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/omp-low.c Sun Feb 07 17:44:34 2010 +0900 @@ -6790,6 +6790,27 @@ wi->info = context; break; + case GIMPLE_COND: + { + tree lab = gimple_cond_true_label (stmt); + if (lab) + { + n = splay_tree_lookup (all_labels, + (splay_tree_key) lab); + diagnose_sb_0 (gsi_p, context, + n ? (gimple) n->value : NULL); + } + lab = gimple_cond_false_label (stmt); + if (lab) + { + n = splay_tree_lookup (all_labels, + (splay_tree_key) lab); + diagnose_sb_0 (gsi_p, context, + n ? (gimple) n->value : NULL); + } + } + break; + case GIMPLE_GOTO: { tree lab = gimple_goto_dest (stmt); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/opts.c --- a/gcc/opts.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/opts.c Sun Feb 07 17:44:34 2010 +0900 @@ -837,6 +837,8 @@ if (optimize_val != -1) { optimize = optimize_val; + if ((unsigned int) optimize > 255) + optimize = 255; optimize_size = 0; } } diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/ChangeLog --- a/gcc/po/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/po/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,11 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + +2009-11-10 Joseph Myers + + * id.po: Update. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/be.gmo Binary file gcc/po/be.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/da.gmo Binary file gcc/po/da.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/de.gmo Binary file gcc/po/de.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/el.gmo Binary file gcc/po/el.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/es.gmo Binary file gcc/po/es.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/fi.gmo Binary file gcc/po/fi.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/fr.gmo Binary file gcc/po/fr.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/id.gmo Binary file gcc/po/id.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/id.po --- a/gcc/po/id.po Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/po/id.po Sun Feb 07 17:44:34 2010 +0900 @@ -1,14 +1,14 @@ # Pesan Bahasa Indonesia untuk GCC # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the gcc package. -# Arif E. Nugroho , 2008. +# Arif E. Nugroho , 2008, 2009. # msgid "" msgstr "" -"Project-Id-Version: gcc 4.4-b20081121\n" +"Project-Id-Version: gcc 4.4.1\n" "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" "POT-Creation-Date: 2009-07-15 13:37+0200\n" -"PO-Revision-Date: 2008-11-30 09:00+0700\n" +"PO-Revision-Date: 2009-11-10 09:00+0700\n" "Last-Translator: Arif E. Nugroho \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" @@ -628,7 +628,7 @@ #: cppspec.c:106 #, c-format msgid "\"%s\" is not a valid option to the preprocessor" -msgstr "\"%s\" bukan sebuah opsi valid untuk preprosesor" +msgstr "\"%s\" bukan sebuah pilihan valid untuk preprosesor" #: cppspec.c:128 #, c-format @@ -850,11 +850,11 @@ #: gcc.c:3225 #, c-format msgid "Usage: %s [options] file...\n" -msgstr "Penggunaan: %s [opsi] berkas...\n" +msgstr "Penggunaan: %s [pilihan] berkas...\n" #: gcc.c:3226 msgid "Options:\n" -msgstr "Opsi:\n" +msgstr "Pilihan:\n" #: gcc.c:3228 msgid " -pass-exit-codes Exit with highest error code from a phase\n" @@ -866,25 +866,23 @@ #: gcc.c:3230 msgid " --target-help Display target specific command line options\n" -msgstr " --target-help Tampilkan target spesifik opsi baris perintah\n" +msgstr " --target-help Tampilkan target spesifik pilihan baris perintah\n" #: gcc.c:3231 -#, fuzzy msgid " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n" -msgstr " --help={target|optimisasi|peringatan|tidak terdokumentasi|parameter}[,{[^]tergabung|[^]dipisahkan}]\n" +msgstr " --help={target|optimisasi|peringatan|parameter|[^]{tergabung|dipisahkan|tidak terdokumentasi}}[,...]\n" #: gcc.c:3232 msgid " Display specific types of command line options\n" -msgstr " Tampilkan tipe spesifik dari opsi baris perintah\n" +msgstr " Tampilkan tipe spesifik dari pilihan baris perintah\n" #: gcc.c:3234 msgid " (Use '-v --help' to display command line options of sub-processes)\n" -msgstr " (Gunakan '-v --help' untuk menampilkan opsi baris perintah dari sub-proses)\n" +msgstr " (Gunakan '-v --help' untuk menampilkan pilihan baris perintah dari sub-proses)\n" #: gcc.c:3235 -#, fuzzy msgid " --version Display compiler version information\n" -msgstr " --help Tampilkan informasi ini\n" +msgstr " --version Tampilkan informasi versi penyusun\n" #: gcc.c:3236 msgid " -dumpspecs Display all of the built in spec strings\n" @@ -923,7 +921,7 @@ " -print-multi-lib Display the mapping between command line options and\n" " multiple library search directories\n" msgstr "" -" -print-multi-lib Tampilkan pemetaan diantara opsi baris perintah dan\n" +" -print-multi-lib Tampilkan pemetaan diantara pilihan baris perintah dan\n" " multiple pencarian direktori perpustakaan\n" #: gcc.c:3247 @@ -940,15 +938,15 @@ #: gcc.c:3250 msgid " -Wa, Pass comma-separated on to the assembler\n" -msgstr " -Wa, Lewatkan dipisahkan-oleh-koma ke perakit\n" +msgstr " -Wa, Lewatkan dipisahkan-oleh-koma ke perakit\n" #: gcc.c:3251 msgid " -Wp, Pass comma-separated on to the preprocessor\n" -msgstr " -Wp, Lewatkan dipisahkan-oleh-koma ke preprosesor\n" +msgstr " -Wp, Lewatkan dipisahkan-oleh-koma ke preprosesor\n" #: gcc.c:3252 msgid " -Wl, Pass comma-separated on to the linker\n" -msgstr " -Wl, Lewatkan dipisahkan-oleh-koma ke penghubung\n" +msgstr " -Wl, Lewatkan dipisahkan-oleh-koma ke penghubung\n" #: gcc.c:3253 msgid " -Xassembler Pass on to the assembler\n" @@ -1012,7 +1010,7 @@ #: gcc.c:3269 msgid " -### Like -v but options quoted and commands not executed\n" -msgstr " -### Seperti -v tetapi opsi diquote dan perintah tidak dijalankan\n" +msgstr " -### Seperti -v tetapi pilihan diquote dan perintah tidak dijalankan\n" #: gcc.c:3270 msgid " -E Preprocess only; do not compile, assemble or link\n" @@ -1051,14 +1049,14 @@ " other options on to these processes the -W options must be used.\n" msgstr "" "\n" -"Opsi dimulai dengan -g, -f, -m, -O, -W, atau --param secara otomatis\n" +"Pilihan dimulai dengan -g, -f, -m, -O, -W, atau --param secara otomatis\n" " dilewatkan ke berbagai sub-proses dipanggil oleh %s. Dalam tujuan untuk melewatkan\n" -" ke opsi lain di proses ini opsi -W harus digunakan.\n" +" ke pilihan lain di proses ini pilihan -W harus digunakan.\n" #: gcc.c:3411 #, c-format msgid "'-%c' option must have argument" -msgstr "'-%c' opsi harus memiliki argumen" +msgstr "'-%c' pilihan harus memiliki argumen" #: gcc.c:3437 #, c-format @@ -1066,9 +1064,9 @@ msgstr "tidak dapat menjalankan '%s': %s" #: gcc.c:3439 -#, fuzzy, c-format +#, c-format msgid "couldn't run '%s': %s: %s" -msgstr "tidak dapat menjalankan '%s': %s" +msgstr "tidak dapat menjalankan '%s': %s: %s" #. translate_options () has turned --version into -fversion. #: gcc.c:3643 @@ -1307,7 +1305,7 @@ "\n" msgstr "" "\n" -"Opsi penghubung\n" +"Pilihan penghubung\n" "===============\n" "\n" @@ -1372,7 +1370,7 @@ "=================\n" "\n" msgstr "" -"Opsi perakit\n" +"Pilihan perakit\n" "============\n" "\n" @@ -1776,7 +1774,7 @@ #: ipa-inline.c:980 msgid "target specific option mismatch" -msgstr "opsi target spesifik tidak cocok" +msgstr "pilihan target spesifik tidak cocok" #: ipa-inline.c:1056 msgid "--param inline-unit-growth limit reached" @@ -1842,63 +1840,61 @@ #: opts.c:1283 #, c-format msgid " No options with the desired characteristics were found\n" -msgstr " Tidak ada opsi dengan karakteristik yang diinginkan ditemukan\n" +msgstr " Tidak ada pilihan dengan karakteristik yang diinginkan ditemukan\n" #: opts.c:1292 #, c-format msgid " None found. Use --help=%s to show *all* the options supported by the %s front-end\n" -msgstr " Tidak ditemukan apapun. Gunakan --help=%s untuk menunjukan *seluruh* opsi yang didukung oleh %s front-end\n" +msgstr " Tidak ditemukan apapun. Gunakan --help=%s untuk menunjukan *seluruh* pilihan yang didukung oleh %s front-end\n" #: opts.c:1298 #, c-format msgid " All options with the desired characteristics have already been displayed\n" -msgstr " Seluruh opsi dengan karakteristik yang diinginkan telah ditampilkan\n" +msgstr " Seluruh pilihan dengan karakteristik yang diinginkan telah ditampilkan\n" #: opts.c:1352 msgid "The following options are target specific" -msgstr "Opsi berikut adalah target spesifik" +msgstr "Pilihan berikut adalah target spesifik" #: opts.c:1355 msgid "The following options control compiler warning messages" -msgstr "Opsi berikut mengontrol pesan peringatan kompiler" +msgstr "Pilihan berikut mengontrol pesan peringatan kompiler" #: opts.c:1358 msgid "The following options control optimizations" -msgstr "Opsi berikut mengontrol optimisasi" +msgstr "Pilihan berikut mengontrol optimisasi" #: opts.c:1361 opts.c:1400 msgid "The following options are language-independent" -msgstr "Opsi berikut adalah independen terhadap bahasa pemrograman" +msgstr "Pilihan berikut adalah independen terhadap bahasa pemrograman" #: opts.c:1364 msgid "The --param option recognizes the following as parameters" -msgstr "Opsi --param dikenal sebagai parameters" +msgstr "Pilihan --param dikenal sebagai parameters" #: opts.c:1370 msgid "The following options are specific to just the language " -msgstr "Opsi berikut hanya spesifik terhadap bahasa " +msgstr "Pilihan berikut hanya spesifik terhadap bahasa " #: opts.c:1372 msgid "The following options are supported by the language " -msgstr "Opsi berikut tidak didukung oleh bahasa " +msgstr "Pilihan berikut tidak didukung oleh bahasa " #: opts.c:1383 msgid "The following options are not documented" -msgstr "Opsi berikut tidak terdokumentasi" +msgstr "Pilihan berikut tidak terdokumentasi" #: opts.c:1385 -#, fuzzy msgid "The following options take separate arguments" -msgstr "Opsi berikut tidak terdokumentasi" +msgstr "Pilihan berikut mengambil argumen terpisah" #: opts.c:1387 -#, fuzzy msgid "The following options take joined arguments" -msgstr "Opsi berikut tidak terdokumentasi" +msgstr "Pilihan berikut mengambil argumen tergabung" #: opts.c:1398 msgid "The following options are language-related" -msgstr "Opsi berikut adalah berhubungan dengan bahasa" +msgstr "Pilihan berikut adalah berhubungan dengan bahasa" #: opts.c:1558 #, c-format @@ -1908,7 +1904,7 @@ #: opts.c:1566 #, c-format msgid "warning: unrecognized argument to --help= option: %.*s\n" -msgstr "peringatan: argumen tidak dikenal ke opsi --help=: %.*s\n" +msgstr "peringatan: argumen tidak dikenal ke pilihan --help=: %.*s\n" #: protoize.c:583 #, c-format @@ -2335,11 +2331,11 @@ #: toplev.c:1276 msgid "options passed: " -msgstr "opsi dilewatkan: " +msgstr "pilihan dilewatkan: " #: toplev.c:1310 msgid "options enabled: " -msgstr "opsi aktif: " +msgstr "pilihan aktif: " #: toplev.c:1445 #, c-format @@ -2847,7 +2843,7 @@ #: params.def:755 msgid "max size of conflict table in MB" -msgstr "" +msgstr "ukuran maksimal dari tabel konflik dalam MB" #: params.def:763 msgid "The maximum ratio between array size and switch branches for a switch conversion to take place" @@ -2855,7 +2851,7 @@ #: params.def:771 msgid "max basic blocks number in loop for loop invariant motion" -msgstr "" +msgstr "jumlah maksimal blok dasar dalam loop untuk gerakan loop invariant" #: config/alpha/alpha.c:5039 #, c-format @@ -3303,19 +3299,19 @@ msgstr "UNSPEC tidak valid sebagai operan" #: config/i386/i386.c:11065 config/i386/i386.c:11104 config/i386/i386.c:11278 -#, fuzzy, c-format +#, c-format msgid "operand is not a condition code, invalid operand code 'D'" -msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid" +msgstr "operan bukan sebuah kode kondisi, kode operan 'D' tidak valid" #: config/i386/i386.c:11129 -#, fuzzy, c-format +#, c-format msgid "operand is neither a constant nor a condition code, invalid operand code 'C'" -msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid" +msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'C' tidak valid" #: config/i386/i386.c:11139 -#, fuzzy, c-format +#, c-format msgid "operand is neither a constant nor a condition code, invalid operand code 'F'" -msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid" +msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'F' tidak valid" #: config/i386/i386.c:11157 #, c-format @@ -3323,9 +3319,9 @@ msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid" #: config/i386/i386.c:11167 -#, fuzzy, c-format +#, c-format msgid "operand is neither a constant nor a condition code, invalid operand code 'f'" -msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'c' tidak valid" +msgstr "operan bukan sebuah konstanta ataupun sebuah kode kondisi, kode operan 'f' tidak valid" #: config/i386/i386.c:11292 #, c-format @@ -3850,17 +3846,17 @@ #: fortran/arith.c:2064 #, no-c-format msgid "Arithmetic overflow converting %s to %s at %L. This check can be disabled with the option -fno-range-check" -msgstr "Aritmetik overflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check" +msgstr "Aritmetik overflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check" #: fortran/arith.c:2069 #, no-c-format msgid "Arithmetic underflow converting %s to %s at %L. This check can be disabled with the option -fno-range-check" -msgstr "Aritmetik underflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check" +msgstr "Aritmetik underflow mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check" #: fortran/arith.c:2074 #, no-c-format msgid "Arithmetic NaN converting %s to %s at %L. This check can be disabled with the option -fno-range-check" -msgstr "Aritmetik NaN mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check" +msgstr "Aritmetik NaN mengubah %s ke %s di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check" #: fortran/arith.c:2079 #, no-c-format @@ -4083,9 +4079,9 @@ msgstr "'dim' argumen dari '%s' instrinsik di %L bukan sebuah indeks dimensi yang valid" #: fortran/check.c:431 -#, fuzzy, no-c-format +#, no-c-format msgid "Unequal character lengths (%ld/%ld) in %s at %L" -msgstr "Panjang karakter tidak sama (%ld dan %ld) dalam %s intrinsik di %L" +msgstr "Panjang karakter tidak sama (%ld/%ld) dalam %s di %L" #: fortran/check.c:537 fortran/check.c:2039 fortran/check.c:2054 #, no-c-format @@ -4211,9 +4207,9 @@ msgstr "'a1' argumen dari '%s' intrinsik di %L harus berupa INTEGER, REAL, atau KARAKTER" #: fortran/check.c:1821 -#, fuzzy, no-c-format +#, no-c-format msgid "Argument types of '%s' intrinsic at %L must match (%s/%s)" -msgstr "'a%d' argumen dari '%s' intrinsik di %L harus berupa %s(%d)" +msgstr "Tipe argumen dari '%s' intrinsik di %L harus sesuai dengan (%s/%s)" #: fortran/check.c:1835 #, no-c-format @@ -4306,9 +4302,9 @@ msgstr "Bentuk berbeda dalam dimensi %d untuk argumen MASK dan FIELD dari UNPACK di %L" #: fortran/check.c:3190 fortran/check.c:3222 -#, fuzzy, no-c-format +#, no-c-format msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)" -msgstr "'%s' argumen dari '%s' intrinsik di %L harus berupa %s" +msgstr "Ukuran dari '%s' argumen dari '%s' intrinsik di %L terlalu kecil (%i/%i)" #: fortran/check.c:3230 #, no-c-format @@ -4636,9 +4632,9 @@ msgstr "Jenis %d tidak didukung untuk tipe %s di %C" #: fortran/decl.c:1992 -#, fuzzy, no-c-format +#, no-c-format msgid "C kind type parameter is for type %s but type at %L is %s" -msgstr "parameter jenis C adalah untuk tipe %s tetapi simbol '%s' di %L adalah tipe %s" +msgstr "Jenis tipe parameter C adalah untuk tipe %s tetapi tipe di %L adalah %s" #: fortran/decl.c:2001 #, no-c-format @@ -5136,7 +5132,7 @@ #: fortran/decl.c:5619 #, no-c-format msgid "Cray pointer declaration at %C requires -fcray-pointer flag" -msgstr "Deklarasi penunjuk cray di %C membutuhkan opsi -fcray-pointer" +msgstr "Deklarasi penunjuk cray di %C membutuhkan pilihan -fcray-pointer" #: fortran/decl.c:5714 #, no-c-format @@ -5757,17 +5753,17 @@ #: fortran/expr.c:2974 fortran/resolve.c:6570 #, no-c-format msgid "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" -msgstr "Aritmetik underflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check" +msgstr "Aritmetik underflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check" #: fortran/expr.c:2978 fortran/resolve.c:6574 #, no-c-format msgid "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" -msgstr "Aritmetik overflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinonaktifkan dengan opsi -fno-range-check" +msgstr "Aritmetik overflow dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinonaktifkan dengan pilihan -fno-range-check" #: fortran/expr.c:2982 fortran/resolve.c:6578 #, no-c-format msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" -msgstr "Aritmetik NaN dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check" +msgstr "Aritmetik NaN dari bit-wise dipindahkan BOZ di %L. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check" #: fortran/expr.c:3004 #, no-c-format @@ -5810,14 +5806,14 @@ msgstr "Objek penunjuk buruk dalam prosedur PURE di %L" #: fortran/expr.c:3134 -#, fuzzy, no-c-format +#, no-c-format msgid "Invalid procedure pointer assignment at %L" -msgstr "Tingkat berbeda dalam penempatan penunjuk di %L" +msgstr "Penempatan penunjuk prosedur tidak valid di %L" #: fortran/expr.c:3140 -#, fuzzy, no-c-format +#, no-c-format msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L" -msgstr "Jenis parameter berbeda dalam penempatan penunjuk di %L" +msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L" #: fortran/expr.c:3159 #, no-c-format @@ -6202,7 +6198,7 @@ #: fortran/intrinsic.c:840 #, no-c-format msgid "The intrinsic '%s' at %L is not included in the selected standard but %s and '%s' will be treated as if declared EXTERNAL. Use an appropriate -std=* option or define -fall-intrinsics to allow this intrinsic." -msgstr "Intrinsik '%s' di %L tidak dimasukan dalam standar yang dipilih tetapi %s dan '%s' akan diperlakukan seperti jika dideklarasikan EXTERNAL. Gunakan sebuah opsi -std=* yang sesuai atau definisikan -fall-intrinsics untuk mengijinkan intrinsik ini." +msgstr "Intrinsik '%s' di %L tidak dimasukan dalam standar yang dipilih tetapi %s dan '%s' akan diperlakukan seperti jika dideklarasikan EXTERNAL. Gunakan sebuah pilihan -std=* yang sesuai atau definisikan -fall-intrinsics untuk mengijinkan intrinsik ini." #: fortran/intrinsic.c:3079 #, no-c-format @@ -6372,9 +6368,8 @@ msgstr "Fortran 2008: 'G0' dalam format di %C" #: fortran/io.c:745 -#, fuzzy msgid "E specifier not allowed with g0 descriptor" -msgstr "Diduga P edit deskripsi" +msgstr "Penspesifikasi E tidak diperbolehkan dengan pendeskripsi g0" #: fortran/io.c:759 fortran/io.c:761 fortran/io.c:822 fortran/io.c:824 #, no-c-format @@ -7303,19 +7298,19 @@ msgstr "Error menulis berkas modul '%s' untuk menulis: %s" #: fortran/module.c:4876 -#, fuzzy, no-c-format +#, no-c-format msgid "Can't delete module file '%s': %s" -msgstr "%s: tidak dapat menghapus berkas '%s': %s\n" +msgstr "tidak dapat menghapus berkas modul '%s': %s" #: fortran/module.c:4879 -#, fuzzy, no-c-format +#, no-c-format msgid "Can't rename module file '%s' to '%s': %s" -msgstr "%s: peringatan: tidak dapat mengubah nama berkas '%s' ke '%s': %s\n" +msgstr "tidak dapat mengubah nama berkas modul '%s' ke '%s': %s" #: fortran/module.c:4885 -#, fuzzy, no-c-format +#, no-c-format msgid "Can't delete temporary module file '%s': %s" -msgstr "%s: tidak dapat menghapus berkas informasi tambahan '%s': %s\n" +msgstr "Tidak dapat menghapus berkas modul sementara '%s': %s" #: fortran/module.c:4905 fortran/module.c:4987 #, no-c-format @@ -7345,12 +7340,12 @@ #: fortran/module.c:5116 #, no-c-format msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %L is incompatible with option %s" -msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %L adalah tidak kompatibel dengan opsi %s" +msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %L adalah tidak kompatibel dengan pilihan %s" #: fortran/module.c:5144 #, no-c-format msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %C is incompatible with option %s" -msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %C adalah tidak kompatibel dengan opsi %s" +msgstr "Penggunaan dari NUMERIC_STORAGE_SIZE konstanta bernama dari modul intrinsik ISO_FORTRAN_ENV di %C adalah tidak kompatibel dengan pilihan %s" #: fortran/module.c:5160 #, no-c-format @@ -7394,12 +7389,12 @@ #: fortran/module.c:5252 #, no-c-format msgid "Parse error when checking module version for file '%s' opened at %C" -msgstr "" +msgstr "Parse error ketika memeriksa versi modul untuk berkas '%s' dibuka di %C" #: fortran/module.c:5257 #, no-c-format msgid "Wrong module version '%s' (expected '" -msgstr "" +msgstr "Versi modul salah '%s' (diduga '" #: fortran/module.c:5270 #, no-c-format @@ -7640,7 +7635,7 @@ #: fortran/options.c:233 #, no-c-format msgid "Option -fwhole-program is not supported for Fortran" -msgstr "Opsi -fwhole-program tidak didukung untuk Fortran" +msgstr "Pilihan -fwhole-program tidak didukung untuk Fortran" #: fortran/options.c:287 #, no-c-format @@ -7660,32 +7655,32 @@ #: fortran/options.c:318 #, no-c-format msgid "Flag -fno-automatic overwrites -fmax-stack-var-size=%d" -msgstr "Opsi -fno-automatic overwrites -fmax-stack-var-size=%d" +msgstr "Pilihan -fno-automatic overwrites -fmax-stack-var-size=%d" #: fortran/options.c:321 #, no-c-format msgid "Flag -fno-automatic overwrites -frecursive" -msgstr "Opsi -fno-automatic overwrites -frecursive" +msgstr "Pilihan -fno-automatic overwrites -frecursive" #: fortran/options.c:323 #, no-c-format msgid "Flag -fno-automatic overwrites -frecursive implied by -fopenmp" -msgstr "Opsi -fno-automatic overwrites -frecursive diimplikasikan dengan -fopenmp" +msgstr "Pilihan -fno-automatic overwrites -frecursive diimplikasikan dengan -fopenmp" #: fortran/options.c:327 #, no-c-format msgid "Flag -frecursive overwrites -fmax-stack-var-size=%d" -msgstr "Opsi -frecursive overwrites -fmax-stack-var-size=%d" +msgstr "Pilihan -frecursive overwrites -fmax-stack-var-size=%d" #: fortran/options.c:331 #, no-c-format msgid "Flag -fmax-stack-var-size=%d overwrites -frecursive implied by -fopenmp" -msgstr "Opsi -fmax-stack-var-size=%d overwrites -frecursive diimplikasikan dengan -fopenmp" +msgstr "Pilihan -fmax-stack-var-size=%d overwrites -frecursive diimplikasikan dengan -fopenmp" #: fortran/options.c:404 #, no-c-format msgid "gfortran: Only one -J option allowed" -msgstr "gfortran: Hanya satu opsi -J diperbolehkan" +msgstr "gfortran: Hanya satu pilihan -J diperbolehkan" #: fortran/options.c:447 #, no-c-format @@ -7715,12 +7710,12 @@ #: fortran/options.c:712 #, no-c-format msgid "Unrecognized option to -finit-logical: %s" -msgstr "Opsi ke -finit-logical: %s tidak dikenal" +msgstr "Pilihan ke -finit-logical: %s tidak dikenal" #: fortran/options.c:726 #, no-c-format msgid "Unrecognized option to -finit-real: %s" -msgstr "Opsi ke -finit-real: %s tidak dikenal" +msgstr "Pilihan ke -finit-real: %s tidak dikenal" #: fortran/options.c:742 #, no-c-format @@ -8114,7 +8109,7 @@ #: fortran/primary.c:222 #, no-c-format msgid "Integer too big for its kind at %C. This check can be disabled with the option -fno-range-check" -msgstr "Integer terlalu besar untuk jenis ini di %C. Pemeriksaan ini dapat dinon-aktifkan dengan opsi -fno-range-check" +msgstr "Integer terlalu besar untuk jenis ini di %C. Pemeriksaan ini dapat dinon-aktifkan dengan pilihan -fno-range-check" #: fortran/primary.c:251 #, no-c-format @@ -8284,7 +8279,7 @@ #: fortran/primary.c:2103 #, no-c-format msgid "Fortran 2003: Structure constructor with missing optional arguments at %C" -msgstr "Fortran 2003: Konstruktor struktur dengan argumen opsional hilang di %C" +msgstr "Fortran 2003: Konstruktor struktur dengan argumen pilihanonal hilang di %C" #: fortran/primary.c:2111 #, no-c-format @@ -8589,7 +8584,7 @@ #: fortran/resolve.c:1163 #, no-c-format msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively. Declare it RECURSIVE or use -frecursive" -msgstr "" +msgstr "Bukan prosedur REKURSIF '%s' di %L mungkin memanggil dirinya sendiri secara rekursif. Deklarasikan itu secara RECURSIVE atau gunakan -frecursive" #: fortran/resolve.c:1196 fortran/resolve.c:6023 fortran/resolve.c:6778 #, no-c-format @@ -8644,7 +8639,7 @@ #: fortran/resolve.c:1523 #, no-c-format msgid "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the actual argument of an ELEMENTAL procedure unless there is a non-optional argument with the same rank (12.4.1.5)" -msgstr "'%s' di %L adalah sebuah array dan OPSIONAL; JIKA INI HILANG, ini tidak dapat berupa argumen aktual dari sebual prosedur ELEMENTAL kecuali disana ada sebuah tidak opsional argumen dengan tingkat sama (12.4.1.5)" +msgstr "'%s' di %L adalah sebuah array dan OPSIONAL; JIKA INI HILANG, ini tidak dapat berupa argumen aktual dari sebual prosedur ELEMENTAL kecuali disana ada sebuah tidak pilihanonal argumen dengan tingkat sama (12.4.1.5)" #: fortran/resolve.c:1545 msgid "elemental procedure" @@ -8776,14 +8771,14 @@ msgstr "Referensi fungsi ke '%s' di %L adalah ke sebuah prosedur bukan-PURE dalam sebuah prosedur PURE" #: fortran/resolve.c:2493 -#, fuzzy, no-c-format +#, no-c-format msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE" -msgstr "Panggilan ke MASUKAN '%s' di %L adalah rekursif, bukan fungsi '%s' tidak terdeklarasi sebagai REKURSIF" +msgstr "MASUKAN '%s' di %L tidak dapat dipanggil secara rekursif, karena fungsi '%s' tidak REKURSIF" #: fortran/resolve.c:2497 -#, fuzzy, no-c-format +#, no-c-format msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE" -msgstr "Fungsi '%s' di %L tidak dapat memanggil dirinya sendiri, karena ini bukan REKURSIF" +msgstr "Fungsi '%s' di %L tidak dapat dipanggil secara rekursif, karena ini bukan REKURSIF" #: fortran/resolve.c:2544 #, no-c-format @@ -8831,14 +8826,14 @@ msgstr "'%s' di %L memiliki sebuah tipe, yang tidak konsisten dengan CALL di %L" #: fortran/resolve.c:2957 -#, fuzzy, no-c-format +#, no-c-format msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE" -msgstr "Panggilan ke MASUKAN '%s' di %L adalah rekursif, tetapi subroutine '%s' tidak dideklarasikan sebagai REKURSIF" +msgstr "MASUKAN '%s' di %L tidak dapat dipanggil secara rekursif, karena subroutine '%s' tidak REKURSIF" #: fortran/resolve.c:2961 -#, fuzzy, no-c-format +#, no-c-format msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE" -msgstr "SUBROUTINE '%s' di %L tidak dapat memanggil dirinya sendiri, karena ini bukan REKURSIF" +msgstr "SUBROUTINE '%s' di %L tidak dapat dipanggil secara rekursif, karena ini bukan REKURSIF" #: fortran/resolve.c:3035 #, no-c-format @@ -9769,9 +9764,9 @@ msgstr "Panjang karakter dari komponen '%s' butuh untuk menjadi sebuah ekspresi spesifikasi konstan di %L" #: fortran/resolve.c:8735 -#, fuzzy, no-c-format +#, no-c-format msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L" -msgstr "Komponen '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah komponen dari '%s', yang mana adalah PUBLIK di %L" +msgstr "Fortran 2003: Komponen '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah komponen dari '%s', yang mana adalah PUBLIK di %L" #: fortran/resolve.c:8746 #, no-c-format @@ -9871,7 +9866,7 @@ #: fortran/resolve.c:9118 #, no-c-format msgid "The intrinsic '%s' declared INTRINSIC at %L is not available in the current standard settings but %s. Use an appropriate -std=* option or enable -fall-intrinsics in order to use it." -msgstr "Intrinsik '%s' dideklarasikan INTRINSIC di %L tidak tersedia dalam konfigurasi baku sekarang tetapi %s. Gunakan sebuah opsi -std=* yang sesuai atau aktifkan -fall-intrinsics untuk menggunakan itu." +msgstr "Intrinsik '%s' dideklarasikan INTRINSIC di %L tidak tersedia dalam konfigurasi baku sekarang tetapi %s. Gunakan sebuah pilihan -std=* yang sesuai atau aktifkan -fall-intrinsics untuk menggunakan itu." #: fortran/resolve.c:9162 #, no-c-format @@ -9929,9 +9924,9 @@ msgstr "Threadprivate di %L bukan SAVEd" #: fortran/resolve.c:9448 -#, fuzzy, no-c-format +#, no-c-format msgid "non-constant DATA value at %L" -msgstr "bukan-konstanta array dalam pernyataan DATA %L" +msgstr "bukan-konstanta nilai DATA di %L" #: fortran/resolve.c:9488 #, no-c-format @@ -10066,12 +10061,12 @@ #: fortran/resolve.c:10349 #, no-c-format msgid "First argument of operator interface at %L cannot be optional" -msgstr "Argumen pertama dari antar-muka operator di %L tidak dapat berupa opsional" +msgstr "Argumen pertama dari antar-muka operator di %L tidak dapat berupa pilihanonal" #: fortran/resolve.c:10361 #, no-c-format msgid "Second argument of operator interface at %L cannot be optional" -msgstr "Argumen kedua dari antar-muka operator di %L tidak dapat berupa opsional" +msgstr "Argumen kedua dari antar-muka operator di %L tidak dapat berupa pilihanonal" #: fortran/resolve.c:10365 #, no-c-format @@ -10768,7 +10763,7 @@ #: fortran/trans-array.c:3957 #, no-c-format msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See -fmax-array-constructor option" -msgstr "Jumlah dari elemen dalam konstruktor array di %L membutuhkan sebuah peningkatan dari batas atas %d yang diijinkan. Lihat opsi -fmax-array-constructor" +msgstr "Jumlah dari elemen dalam konstruktor array di %L membutuhkan sebuah peningkatan dari batas atas %d yang diijinkan. Lihat pilihan -fmax-array-constructor" #: fortran/trans-array.c:5315 #, no-c-format @@ -11198,7 +11193,7 @@ #: config/vax/netbsd-elf.h:41 msgid "the -shared option is not currently supported for VAX ELF" -msgstr "opsi -shared saat ini tidak didukung untuk VAX ELF" +msgstr "pilihan -shared saat ini tidak didukung untuk VAX ELF" #: config/i386/nwld.h:34 msgid "Static linking is not supported.\n" @@ -11598,7 +11593,7 @@ #: config/mcore/mcore.opt:56 config/fr30/fr30.opt:27 msgid "Assume that run-time support has been provided, so omit -lsim from the linker command line" -msgstr "" +msgstr "Asumsikan bahwa dukungan waktu jalan telah disediakan, jadi abaikan -lsim dari baris perintah penggabung" #: config/mcore/mcore.opt:60 msgid "Use arbitrary sized immediates in bit operations" @@ -12161,9 +12156,8 @@ msgstr "Ijinkan percabangan untuk dipack dengan instruksi lain" #: config/picochip/picochip.opt:23 -#, fuzzy msgid "Specify which type of AE to target. This option sets the mul-type and byte-access." -msgstr "Spesifikasikan tipe mana dari AE untuk target. Opsi in menset tipe-mul" +msgstr "Spesifikasikan tipe mana dari AE untuk target. Pilihan ini menset mul-type dan byte-access." #: config/picochip/picochip.opt:27 msgid "Specify which type of multiplication to use. Can be mem, mac or none." @@ -12178,9 +12172,8 @@ msgstr "Aktifkan keluaran debug untuk dihasilkan." #: config/picochip/picochip.opt:39 -#, fuzzy msgid "Allow a symbol value to be used as an immediate value in an instruction." -msgstr "Ijinkan sebuah nilai simbol untuk digunakan sebagai sebuah nilai langsung dalam sebuah" +msgstr "Ijinkan sebuah nilai simbol untuk digunakan sebagai sebuah nilai langsung dalam sebuah instruksi." #: config/picochip/picochip.opt:43 msgid "Generate warnings when inefficient code is known to be generated." @@ -12689,7 +12682,7 @@ #: config/cris/cris.opt:149 msgid "Use the most feature-enabling options allowed by other options" -msgstr "Gunakan opsi paling feature-enabling yang diijinkan oleh opsi lain" +msgstr "Gunakan pilihan paling feature-enabling yang diijinkan oleh pilihan lain" #: config/cris/cris.opt:158 msgid "Override -mbest-lib-options" @@ -12883,11 +12876,11 @@ #: config/rs6000/rs6000.opt:48 msgid "Use PowerPC General Purpose group optional instructions" -msgstr "Gunakan grup opsional instruksi PowerPC General Purpose" +msgstr "Gunakan grup pilihanonal instruksi PowerPC General Purpose" #: config/rs6000/rs6000.opt:52 msgid "Use PowerPC Graphics group optional instructions" -msgstr "Gunakan grup opsional instruksi PowerPC Graphics" +msgstr "Gunakan grup pilihanonal instruksi PowerPC Graphics" #: config/rs6000/rs6000.opt:56 msgid "Use PowerPC V2.01 single field mfcr instruction" @@ -12955,7 +12948,7 @@ #: config/rs6000/rs6000.opt:124 msgid "Avoid generation of indexed load/store instructions when possible" -msgstr "" +msgstr "Abaikan pembuatan dari indeks instruksi muat/simpan jika memungkinkan" #: config/rs6000/rs6000.opt:128 msgid "Do not generate fused multiply/add instructions" @@ -13015,7 +13008,7 @@ #: config/rs6000/rs6000.opt:194 msgid "Deprecated option. Use -mvrsave/-mno-vrsave instead" -msgstr "Opsi ditinggalkan. Gunakan -mvrsave/-mno-vrsave lebih baik" +msgstr "Pilihan ditinggalkan. Gunakan -mvrsave/-mno-vrsave lebih baik" #: config/rs6000/rs6000.opt:198 msgid "Generate isel instructions" @@ -13023,7 +13016,7 @@ #: config/rs6000/rs6000.opt:202 msgid "Deprecated option. Use -misel/-mno-isel instead" -msgstr "Opsi ditinggalkan. Gunakan -misel/-mno-isel lebih baik" +msgstr "Pilihan ditinggalkan. Gunakan -misel/-mno-isel lebih baik" #: config/rs6000/rs6000.opt:206 msgid "Generate SPE SIMD instructions on E500" @@ -13035,7 +13028,7 @@ #: config/rs6000/rs6000.opt:214 msgid "Deprecated option. Use -mspe/-mno-spe instead" -msgstr "Opsi ditinggalkan. Gunakan -mspe/-mno-spe lebih baik" +msgstr "Pilihan ditinggalkan. Gunakan -mspe/-mno-spe lebih baik" #: config/rs6000/rs6000.opt:218 msgid "Enable debug output" @@ -14607,7 +14600,7 @@ #: config/bfin/bfin.opt:101 msgid "Assume ICPLBs are enabled at runtime." -msgstr "" +msgstr "Asumsikan ICPLB telah aktif di waktu jalan." #: java/lang.opt:69 msgid "Warn if deprecated empty statements are found" @@ -14719,7 +14712,7 @@ #: common.opt:32 msgid "Display descriptions of a specific class of options. is one or more of optimizers, target, warnings, undocumented, params" -msgstr "Tampilkan deskripsi dari opsi spesifik class. adalah satu atau lebih dari pengoptimasi, target, peringatan, tidak terdokumentasi, params" +msgstr "Tampilkan deskripsi dari pilihan spesifik class. adalah satu atau lebih dari pengoptimasi, target, peringatan, tidak terdokumentasi, params" #: common.opt:36 msgid "Alias for --help=target" @@ -14743,7 +14736,7 @@ #: common.opt:71 msgid "This switch is deprecated; use -Wextra instead" -msgstr "Opsi ini sudah ditinggalkan; lebih baik gunakan -Wextra" +msgstr "Pilihan ini sudah ditinggalkan; lebih baik gunakan -Wextra" #: common.opt:75 msgid "Warn about returning structures, unions or arrays" @@ -15055,7 +15048,7 @@ #: common.opt:448 msgid "Amend appropriate diagnostic messages with the command line option that controls them" -msgstr "Tambahkan pesan diagnosa yang sesuai dengan opsi baris perintah yang mengontrolnya" +msgstr "Tambahkan pesan diagnosa yang sesuai dengan pilihan baris perintah yang mengontrolnya" #: common.opt:452 msgid "Dump various compiler internals to a file" @@ -15255,13 +15248,12 @@ msgstr "Lakukan optimisasi berdasarkan struktur layout" #: common.opt:680 -#, fuzzy msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm" -msgstr "-fire-algorithm=[regional|CB|mixed] Set penggunaan algoritma IRA" +msgstr "-fire-algorithm=[CB|prioritas] Set penggunaan algoritma IRA" #: common.opt:684 msgid "-fira-region=[one|all|mixed] Set regions for IRA" -msgstr "" +msgstr "-fira-region=[one|all|mixed] Set daerah untuk IRA" #: common.opt:688 msgid "Do optimistic coalescing." @@ -15445,19 +15437,19 @@ #: common.opt:880 msgid "Enable common options for generating profile info for profile feedback directed optimizations" -msgstr "Aktifkan opsi umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi" +msgstr "Aktifkan pilihan umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi" #: common.opt:884 msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=" -msgstr "Aktifkan opsi umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi, dan set -fprofile-dir=" +msgstr "Aktifkan pilihan umum untuk menghasilkan informasi profile untuk feedback profile direkted optimisasi, dan set -fprofile-dir=" #: common.opt:888 msgid "Enable common options for performing profile feedback directed optimizations" -msgstr "Aktifkan opsi umum untuk melakukan profile feedback directed optimisasi" +msgstr "Aktifkan pilihan umum untuk melakukan profile feedback directed optimisasi" #: common.opt:892 msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=" -msgstr "Aktifkan opsi umum untuk melakukan profile feedback directed optimisasi, dan set -fprofile-dir=" +msgstr "Aktifkan pilihan umum untuk melakukan profile feedback directed optimisasi, dan set -fprofile-dir=" #: common.opt:896 msgid "Insert code to profile values of expressions" @@ -15469,7 +15461,7 @@ #: common.opt:913 msgid "Record gcc command line switches in the object file." -msgstr "Rekam opsi baris perintah gcc dalam berkas objek." +msgstr "Rekam pilihan baris perintah gcc dalam berkas objek." #: common.opt:917 msgid "Return small aggregates in registers" @@ -16105,7 +16097,7 @@ #: c.opt:216 msgid "This switch is deprecated; use -Werror=implicit-function-declaration instead" -msgstr "Opsi ini sudah ditinggalkan; lebih baik gunakan -Werror=implicit-function-declaration" +msgstr "Pilihan ini sudah ditinggalkan; lebih baik gunakan -Werror=implicit-function-declaration" #: c.opt:220 msgid "Warn if testing floating point numbers for equality" @@ -16253,7 +16245,7 @@ #: c.opt:373 msgid "Warn about packed bit-fields whose offset changed in GCC 4.4" -msgstr "" +msgstr "Peringatkan tentang pemaketan bit-filed yang offset-nya berbah dalam GCC 4.4" #: c.opt:377 msgid "Warn about possibly missing parentheses" @@ -16325,7 +16317,7 @@ #: c.opt:445 msgid "Deprecated. This switch has no effect" -msgstr "Ditinggalkan. Opsi ini tidak memiliki efek" +msgstr "Ditinggalkan. Pilihan ini tidak memiliki efek" #: c.opt:453 msgid "Warn about features not present in traditional C" @@ -16520,9 +16512,8 @@ msgstr "Aktifkan Objectif-C setjmp eksepsi penanganan waktu-jalan" #: c.opt:694 -#, fuzzy msgid "Enable OpenMP (implies -frecursive in Fortran)" -msgstr "Aktifkan OpenMP (juga sets frecursive)" +msgstr "Aktifkan OpenMP (mengindikasikan -frecursive dalam Fortran)" #: c.opt:698 msgid "Recognize C++ keywords like \"compl\" and \"xor\"" @@ -16530,7 +16521,7 @@ #: c.opt:702 msgid "Enable optional diagnostics" -msgstr "Aktifkan opsional diagnosa" +msgstr "Aktifkan pilihanonal diagnosa" #: c.opt:709 msgid "Look for and use PCH files even when preprocessing" @@ -16674,7 +16665,7 @@ #: c.opt:862 msgid "Specify as a prefix for next two options" -msgstr "Spesifikasikan sebagai sebuah prefix untuk dua opsi berikutnya" +msgstr "Spesifikasikan sebagai sebuah prefix untuk dua pilihan berikutnya" #: c.opt:866 msgid "Set to be the system root directory" @@ -16774,7 +16765,7 @@ #: ada/gcc-interface/lang.opt:100 msgid "Specify options to GNAT" -msgstr "Spesifikasikan opsi ke GNAT" +msgstr "Spesifikasikan pilihan ke GNAT" #: attribs.c:284 #, gcc-internal-format @@ -17277,7 +17268,7 @@ #: c-common.c:4763 #, gcc-internal-format msgid "multiple default labels in one switch" -msgstr "multiple default label dalam satu opsi" +msgstr "multiple default label dalam satu pilihan" #: c-common.c:4764 #, gcc-internal-format @@ -17642,12 +17633,12 @@ #: c-common.c:7074 #, gcc-internal-format msgid "Bad option %s to optimize attribute." -msgstr "Opsi %s buruk untuk mengoptimasi atribut." +msgstr "Pilihan %s buruk untuk mengoptimasi atribut." #: c-common.c:7077 #, gcc-internal-format msgid "Bad option %s to pragma attribute" -msgstr "Opsi %s buruk untuk atribut pragma" +msgstr "Pilihan %s buruk untuk atribut pragma" #: c-common.c:7270 #, gcc-internal-format @@ -18551,9 +18542,9 @@ #. C99 6.7.5.2p4 #: c-decl.c:4431 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<[*]%> not in a declaration" -msgstr "%<[*]%> tidak diperbolehkan selain dari sebuah deklarasi" +msgstr "%<[*]%> tidak dalam sebuah deklarasi" #: c-decl.c:4444 #, gcc-internal-format @@ -18985,7 +18976,7 @@ #: c-decl.c:6859 #, gcc-internal-format msgid "use option -std=c99 or -std=gnu99 to compile your code" -msgstr "gunakan opsi -std=c99 atau -std=gnu99 untuk mengkompile kode anda" +msgstr "gunakan pilihan -std=c99 atau -std=gnu99 untuk mengkompile kode anda" #: c-decl.c:6890 #, gcc-internal-format @@ -19897,7 +19888,7 @@ #: c-opts.c:324 #, gcc-internal-format msgid "obsolete option -I- used, please use -iquote instead" -msgstr "opsi ditinggalkan -I- digunakan, lebih baik mohon gunakan -iquote" +msgstr "pilihan ditinggalkan -I- digunakan, lebih baik mohon gunakan -iquote" #: c-opts.c:495 #, gcc-internal-format @@ -19907,7 +19898,7 @@ #: c-opts.c:582 #, gcc-internal-format msgid "switch %qs is no longer supported" -msgstr "opsi %qs tidak lagi didukung" +msgstr "pilihan %qs tidak lagi didukung" #: c-opts.c:689 #, gcc-internal-format @@ -19962,22 +19953,22 @@ #: c-opts.c:1226 #, gcc-internal-format msgid "The C parser does not support -dy, option ignored" -msgstr "C parser tidak mendukung -dy, opsi diabaikan" +msgstr "C parser tidak mendukung -dy, pilihan diabaikan" #: c-opts.c:1230 #, gcc-internal-format msgid "The Objective-C parser does not support -dy, option ignored" -msgstr "Objective-C parser tidak mendukung -dy, opsi diabaikan" +msgstr "Objective-C parser tidak mendukung -dy, pilihan diabaikan" #: c-opts.c:1233 #, gcc-internal-format msgid "The C++ parser does not support -dy, option ignored" -msgstr "C++ parser tidak mendukung -dy, opsi diabaikan" +msgstr "C++ parser tidak mendukung -dy, pilihan diabaikan" #: c-opts.c:1237 #, gcc-internal-format msgid "The Objective-C++ parser does not support -dy, option ignored" -msgstr "Objective-C++ parser tidak mendukung -dy, opsi diabaikan" +msgstr "Objective-C++ parser tidak mendukung -dy, pilihan diabaikan" #: c-opts.c:1287 #, gcc-internal-format @@ -20734,12 +20725,12 @@ #: c-pragma.c:852 #, gcc-internal-format msgid "missing option after %<#pragma GCC diagnostic%> kind" -msgstr "hilang jenis opsi setelah %<#pragma GCC diagnosa%>" +msgstr "hilang jenis pilihan setelah %<#pragma GCC diagnosa%>" #: c-pragma.c:866 #, gcc-internal-format msgid "unknown option after %<#pragma GCC diagnostic%> kind" -msgstr "jenis opsi tidak dikenal setelah %<#pragma GCC diagnosa%>" +msgstr "jenis pilihan tidak dikenal setelah %<#pragma GCC diagnosa%>" #: c-pragma.c:879 #, gcc-internal-format @@ -21553,7 +21544,7 @@ #: c-typeck.c:7375 #, gcc-internal-format msgid "% switch expression not converted to % in ISO C" -msgstr "opsi % ekspresi tidak diubah ke % dalam ISO C" +msgstr "pilihan % ekspresi tidak diubah ke % dalam ISO C" #: c-typeck.c:7418 #, gcc-internal-format @@ -22616,17 +22607,17 @@ #: gcc.c:1325 #, gcc-internal-format msgid "incomplete '%s' option" -msgstr "opsi '%s' tidak lengkap" +msgstr "pilihan '%s' tidak lengkap" #: gcc.c:1336 #, gcc-internal-format msgid "missing argument to '%s' option" -msgstr "hilang argumen ke opsi '%s'" +msgstr "hilang argumen ke pilihan '%s'" #: gcc.c:1349 #, gcc-internal-format msgid "extraneous argument to '%s' option" -msgstr "kelebihan argumen ke opsi '%s'" +msgstr "kelebihan argumen ke pilihan '%s'" #: gcc.c:4029 #, gcc-internal-format @@ -22654,7 +22645,7 @@ #: gcc.c:5495 #, gcc-internal-format msgid "spec failure: unrecognized spec option '%c'" -msgstr "spec gagal: opsi spec tidak dikenal '%c'" +msgstr "spec gagal: pilihan spec tidak dikenal '%c'" #: gcc.c:6401 #, gcc-internal-format @@ -22669,7 +22660,7 @@ #: gcc.c:6511 #, gcc-internal-format msgid "unrecognized option '-%s'" -msgstr "opsi '-%s' tidak dikenal" +msgstr "pilihan '-%s' tidak dikenal" #: gcc.c:6726 gcc.c:6789 #, gcc-internal-format @@ -22884,17 +22875,17 @@ #: opts.c:442 #, gcc-internal-format msgid "command line option \"%s\" is valid for %s but not for %s" -msgstr "opsi baris perintah \"%s\" valid untuk %s tetapi tidak untuk %s" +msgstr "pilihan baris perintah \"%s\" valid untuk %s tetapi tidak untuk %s" #: opts.c:473 opts.c:769 #, gcc-internal-format msgid "unrecognized command line option \"%s\"" -msgstr "opsi baris perintah \"%s\" tidak dikenal" +msgstr "pilihan baris perintah \"%s\" tidak dikenal" #: opts.c:534 #, gcc-internal-format msgid "command line option %qs is not supported by this configuration" -msgstr "opsi baris perintah %qs tidak didukung dalam konfigurasi ini" +msgstr "pilihan baris perintah %qs tidak didukung dalam konfigurasi ini" #: opts.c:587 #, gcc-internal-format @@ -22937,9 +22928,9 @@ msgstr "-freorder-blocks-and-partition tidak bekerja dalam arsitektur ini" #: opts.c:1081 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "-fira-algorithm=CB does not work on this architecture" -msgstr "-fira tidak bekerja dalam arsitektur ini" +msgstr "-fira-algorithm=CB tidak bekerja dalam arsitektur ini" #: opts.c:1390 #, gcc-internal-format @@ -22977,9 +22968,9 @@ msgstr "algoritma ira \"%s\" tidak diketahui" #: opts.c:1980 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unknown ira region \"%s\"" -msgstr "algoritma ira \"%s\" tidak diketahui" +msgstr "daerah ira \"%s\" tidak diketahui" #: opts.c:2083 #, gcc-internal-format @@ -23014,7 +23005,7 @@ #: opts.c:2313 #, gcc-internal-format msgid "-Werror=%s: No option -%s" -msgstr "-Werror=%s: Tidak ada opsi -%s" +msgstr "-Werror=%s: Tidak ada pilihan -%s" #: params.c:69 #, gcc-internal-format @@ -23399,7 +23390,7 @@ #: stor-layout.c:969 #, gcc-internal-format msgid "Offset of packed bit-field %qD has changed in GCC 4.4" -msgstr "" +msgstr "Offset dari packet bit-field %qD telah berubah dalam GCC 4.4" #: stor-layout.c:1273 #, gcc-internal-format @@ -23464,7 +23455,7 @@ #: toplev.c:519 #, gcc-internal-format msgid "invalid option argument %qs" -msgstr "opsi argumen %qs tidak valid" +msgstr "pilihan argumen %qs tidak valid" #: toplev.c:617 #, gcc-internal-format @@ -23514,7 +23505,7 @@ #: toplev.c:1090 #, gcc-internal-format msgid "unrecognized gcc debugging option: %c" -msgstr "opsi debuggin gcc: %c tidak dikenal" +msgstr "pilihan debuggin gcc: %c tidak dikenal" #: toplev.c:1347 #, gcc-internal-format @@ -23589,7 +23580,7 @@ #: toplev.c:1920 #, gcc-internal-format msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)" -msgstr "-fprefetch-loop-array tidak didukung untuk target ini (coba opsi -march)" +msgstr "-fprefetch-loop-array tidak didukung untuk target ini (coba pilihan -march)" #: toplev.c:1929 #, gcc-internal-format @@ -23599,7 +23590,7 @@ #: toplev.c:1940 #, gcc-internal-format msgid "-fassociative-math disabled; other options take precedence" -msgstr "-fassociative-math non-aktif; opsi lain mengambil prioritas" +msgstr "-fassociative-math non-aktif; pilihan lain mengambil prioritas" #: toplev.c:1956 #, gcc-internal-format @@ -23632,9 +23623,9 @@ msgstr "SSA nama dalam daftar bebas tetapi tetap direferensikan" #: tree-cfg.c:2829 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "Indirect reference's operand is not a register or a constant." -msgstr "%s: Sumber operan ketiga bukan sebuah konstanta" +msgstr "Referensi tidak langsung operan bukan sebuah register atau konstanta." #: tree-cfg.c:2838 #, gcc-internal-format @@ -23644,7 +23635,7 @@ #: tree-cfg.c:2844 #, gcc-internal-format msgid "MODIFY_EXPR not expected while having tuples." -msgstr "" +msgstr "MODIFY_EXPR tidak terduga ketika memiliki tuples." #: tree-cfg.c:2865 #, gcc-internal-format @@ -24079,7 +24070,7 @@ #: tree-dump.c:1060 #, gcc-internal-format msgid "ignoring unknown option %q.*s in %<-fdump-%s%>" -msgstr "mengabaikan opsi tidak dikenal %q.*s dalam %<-fdump-%s%>" +msgstr "mengabaikan pilihan tidak dikenal %q.*s dalam %<-fdump-%s%>" #: tree-eh.c:1993 #, gcc-internal-format @@ -24244,19 +24235,19 @@ msgstr "fungsionalitas tidak terimplementasi" #: tree-ssa-structalias.c:4791 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "initialized from %qE" -msgstr "tidak terinisialisasi const %qD" +msgstr "terinisialisasi dari %qE" #: tree-ssa-structalias.c:4795 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "initialized from here" -msgstr "dipanggil dari sini" +msgstr "terinisialisasi dari sini" #: tree-ssa-structalias.c:4844 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "dereferencing pointer %qD does break strict-aliasing rules" -msgstr "dereferencing tipe-punned penunjuk %D akan melanggar aturan strict aliasing" +msgstr "dereferencing penunjuk %qD akan melanggar aturan strict aliasing" #: tree-ssa.c:252 #, gcc-internal-format @@ -24782,13 +24773,13 @@ #: config/darwin-c.c:85 #, gcc-internal-format msgid "too many #pragma options align=reset" -msgstr "terlalu banyak opsi #pragma align=reset" +msgstr "terlalu banyak pilihan #pragma align=reset" #: config/darwin-c.c:105 config/darwin-c.c:108 config/darwin-c.c:110 #: config/darwin-c.c:112 #, gcc-internal-format msgid "malformed '#pragma options', ignoring" -msgstr "salah bentuk '#pragma opsi', diabaikan" +msgstr "salah bentuk '#pragma pilihan', diabaikan" #: config/darwin-c.c:115 #, gcc-internal-format @@ -24944,7 +24935,7 @@ #: config/alpha/alpha.c:233 config/rs6000/rs6000.c:2193 #, gcc-internal-format msgid "bad value %qs for -mtls-size switch" -msgstr "nilai buruk %qs untuk opsi -mtls-size" +msgstr "nilai buruk %qs untuk pilihan -mtls-size" #: config/alpha/alpha.c:287 #, gcc-internal-format @@ -24964,22 +24955,22 @@ #: config/alpha/alpha.c:339 #, gcc-internal-format msgid "bad value %qs for -mtrap-precision switch" -msgstr "nilai buruk %qs untuk opsi -mtrap-precision" +msgstr "nilai buruk %qs untuk pilihan -mtrap-precision" #: config/alpha/alpha.c:353 #, gcc-internal-format msgid "bad value %qs for -mfp-rounding-mode switch" -msgstr "nilai buruk %qs untuk opsi -mfp-rounding-mode" +msgstr "nilai buruk %qs untuk pilihan -mfp-rounding-mode" #: config/alpha/alpha.c:368 #, gcc-internal-format msgid "bad value %qs for -mfp-trap-mode switch" -msgstr "nilai buruk %qs untuk opsi -mfp-trap-mode" +msgstr "nilai buruk %qs untuk pilihan -mfp-trap-mode" #: config/alpha/alpha.c:382 config/alpha/alpha.c:394 #, gcc-internal-format msgid "bad value %qs for -mcpu switch" -msgstr "nilai buruk %qs untuk opsi -mcpu" +msgstr "nilai buruk %qs untuk pilihan -mcpu" #: config/alpha/alpha.c:401 #, gcc-internal-format @@ -25035,17 +25026,17 @@ #: config/arm/arm.c:1182 #, gcc-internal-format msgid "switch -mcpu=%s conflicts with -march= switch" -msgstr "opsi -mcpu=%s konflik dengan opsi -march=" +msgstr "pilihan -mcpu=%s konflik dengan pilihan -march=" #: config/arm/arm.c:1192 config/rs6000/rs6000.c:1593 config/sparc/sparc.c:764 #, gcc-internal-format msgid "bad value (%s) for %s switch" -msgstr "nilai (%s) buruk untuk opsi %s" +msgstr "nilai (%s) buruk untuk pilihan %s" #: config/arm/arm.c:1305 #, gcc-internal-format msgid "invalid ABI option: -mabi=%s" -msgstr "opsi ABI tidak valid: -mabi=%s" +msgstr "pilihan ABI tidak valid: -mabi=%s" #: config/arm/arm.c:1313 #, gcc-internal-format @@ -25115,12 +25106,12 @@ #: config/arm/arm.c:1445 #, gcc-internal-format msgid "invalid floating point emulation option: -mfpe=%s" -msgstr "opsi emulasi titik pecahan tidak valid: -mfpe=%s" +msgstr "pilihan emulasi titik pecahan tidak valid: -mfpe=%s" #: config/arm/arm.c:1462 #, gcc-internal-format msgid "invalid floating point option: -mfpu=%s" -msgstr "opsi titik pecahan tidak valid: -mfpu=%s" +msgstr "pilihan titik pecahan tidak valid: -mfpu=%s" #: config/arm/arm.c:1502 #, gcc-internal-format @@ -25145,7 +25136,7 @@ #: config/arm/arm.c:1542 #, gcc-internal-format msgid "invalid thread pointer option: -mtp=%s" -msgstr "opsi thread pointer tidak valid: -mtp=%s" +msgstr "pilihan thread pointer tidak valid: -mtp=%s" #: config/arm/arm.c:1555 #, gcc-internal-format @@ -25224,7 +25215,7 @@ #: config/arm/arm.c:19618 #, gcc-internal-format msgid "the mangling of % has changed in GCC 4.4" -msgstr "" +msgstr "mangling dari % telah berubah dalam GCC 4.4" #: config/arm/pe.c:158 config/mcore/mcore.c:2900 #, gcc-internal-format @@ -25239,17 +25230,17 @@ #: config/avr/avr.c:399 #, gcc-internal-format msgid "the -mno-tablejump switch is deprecated" -msgstr "" +msgstr "pilihan -mno-tablejump sudah ditinggalkan" #: config/avr/avr.c:400 #, gcc-internal-format msgid "GCC 4.4 is the last release with this switch" -msgstr "" +msgstr "GCC 4.4 adalah keluaran terakhir dengan pilihan ini" #: config/avr/avr.c:401 #, gcc-internal-format msgid "use the -fno-jump-tables switch instead" -msgstr "" +msgstr "lebih baik gunakan pilihan -fno-jump-tables" #: config/avr/avr.c:4626 #, gcc-internal-format @@ -25419,7 +25410,7 @@ #: config/cris/cris.c:2454 #, gcc-internal-format msgid "that particular -g option is invalid with -maout and -melinux" -msgstr "opsi -g tertentu tidak valid dengan -maout dan -melinux" +msgstr "pilihan -g tertentu tidak valid dengan -maout dan -melinux" #: config/cris/cris.c:2680 #, gcc-internal-format @@ -25608,12 +25599,12 @@ #: config/i386/i386.c:2713 #, gcc-internal-format msgid "generic CPU can be used only for %stune=%s %s" -msgstr "CPU generik hanya dapat digunakan untuk opsi %stune=%s %s" +msgstr "CPU generik hanya dapat digunakan untuk pilihan %stune=%s %s" #: config/i386/i386.c:2716 config/i386/i386.c:2844 #, gcc-internal-format msgid "bad value (%s) for %sarch=%s %s" -msgstr "nilai (%s) buruk untuk opsi %sarch=%s %s" +msgstr "nilai (%s) buruk untuk pilihan %sarch=%s %s" #: config/i386/i386.c:2728 #, gcc-internal-format @@ -25623,12 +25614,12 @@ #: config/i386/i386.c:2734 #, gcc-internal-format msgid "bad value (%s) for %scmodel=%s %s" -msgstr "nilai (%s) buruk untuk opsi %scmodel=%s %s" +msgstr "nilai (%s) buruk untuk pilihan %scmodel=%s %s" #: config/i386/i386.c:2758 #, gcc-internal-format msgid "bad value (%s) for %sasm=%s %s" -msgstr "nilai (%s) buruk untuk opsi %sasm=%s %s" +msgstr "nilai (%s) buruk untuk pilihan %sasm=%s %s" #: config/i386/i386.c:2762 #, gcc-internal-format @@ -25656,9 +25647,9 @@ msgstr "%sregparm=%d%s tidak berada diantara 0 dan %d" #: config/i386/i386.c:2918 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%salign-loops%s is obsolete, use -falign-loops%s" -msgstr "%salign-loops%s sudah ditinggalkan, gunakan %salign-loops%s" +msgstr "%salign-loops%s sudah ditinggalkan, gunakan -falign-loops%s" #: config/i386/i386.c:2924 config/i386/i386.c:2939 config/i386/i386.c:2954 #, gcc-internal-format @@ -25666,14 +25657,14 @@ msgstr "%salign-loops=%d%s tidak berada diantara 0 dan %d" #: config/i386/i386.c:2933 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%salign-jumps%s is obsolete, use -falign-jumps%s" -msgstr "%salign-jumps%s sudah ditinggalkan, gunakan %salign-jumps%s" +msgstr "%salign-jumps%s sudah ditinggalkan, gunakan -falign-jumps%s" #: config/i386/i386.c:2948 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%salign-functions%s is obsolete, use -falign-functions%s" -msgstr "%salign-functions%s sudah ditinggalkan, gunakan %salign-functions%s" +msgstr "%salign-functions%s sudah ditinggalkan, gunakan -falign-functions%s" #: config/i386/i386.c:2983 #, gcc-internal-format @@ -25688,7 +25679,7 @@ #: config/i386/i386.c:3005 #, gcc-internal-format msgid "bad value (%s) for %stls-dialect=%s %s" -msgstr "nilai (%s) buruk untuk opsi %stls-dialect=%s %s" +msgstr "nilai (%s) buruk untuk pilihan %stls-dialect=%s %s" #: config/i386/i386.c:3013 #, gcc-internal-format @@ -25728,12 +25719,12 @@ #: config/i386/i386.c:3155 #, gcc-internal-format msgid "bad value (%s) for %sfpmath=%s %s" -msgstr "nilai (%s) buruk untuk opsi %sfpmath=%s %s" +msgstr "nilai (%s) buruk untuk pilihan %sfpmath=%s %s" #: config/i386/i386.c:3171 #, gcc-internal-format msgid "unknown vectorization library ABI type (%s) for %sveclibabi=%s %s" -msgstr "perpusatakaan vektorisasi tidak dikenal tipe ABI (%s) untuk opsi %sveclibabi=%s %s" +msgstr "perpusatakaan vektorisasi tidak dikenal tipe ABI (%s) untuk pilihan %sveclibabi=%s %s" #: config/i386/i386.c:3191 #, gcc-internal-format @@ -25753,7 +25744,7 @@ #: config/i386/i386.c:3637 #, gcc-internal-format msgid "option(\"%s\") was already specified" -msgstr "opsi(\"%s\") telah dispesifikasikan" +msgstr "pilihan(\"%s\") telah dispesifikasikan" #: config/i386/i386.c:4231 config/i386/i386.c:4275 #, gcc-internal-format @@ -25808,7 +25799,7 @@ #: config/i386/i386.c:4722 #, gcc-internal-format msgid "ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it" -msgstr "" +msgstr "atribut ms_abi membutuhkan -maccumulate-outgoing-args atau mengindikasikan optimasi subtarget" #: config/i386/i386.c:4840 #, gcc-internal-format @@ -25818,17 +25809,17 @@ #: config/i386/i386.c:5020 #, gcc-internal-format msgid "The ABI of passing struct with a flexible array member has changed in GCC 4.4" -msgstr "" +msgstr "ABI dari melewatkan struct dengan sebuah anggota array flexible telah berubah dalam GCC 4.4" #: config/i386/i386.c:5139 #, gcc-internal-format msgid "The ABI of passing union with long double has changed in GCC 4.4" -msgstr "" +msgstr "ABI dari melewatkan union dengan long double telah berubah dalam GCC 4.4" #: config/i386/i386.c:5254 #, gcc-internal-format msgid "The ABI of passing structure with complex float member has changed in GCC 4.4" -msgstr "" +msgstr "ABI dari melewatkan structure dengan anggota float kompleks telah berubah dalam GCC 4.4" #: config/i386/i386.c:5399 #, gcc-internal-format @@ -25928,12 +25919,12 @@ #: config/i386/i386.c:24864 #, gcc-internal-format msgid "%qE needs unknown isa option" -msgstr "%qE membutuhkan opsi isa tidak diketahui" +msgstr "%qE membutuhkan pilihan isa tidak diketahui" #: config/i386/i386.c:24868 #, gcc-internal-format msgid "%qE needs isa option %s" -msgstr "%qE membutuhkan opsi isa %s" +msgstr "%qE membutuhkan pilihan isa %s" #: config/i386/i386.c:26511 #, gcc-internal-format @@ -25988,7 +25979,7 @@ #: config/i386/djgpp.h:180 #, gcc-internal-format msgid "-mbnu210 is ignored (option is obsolete)" -msgstr "-mbnu210 diabaikan (opsi ini sudah ditinggalkan)" +msgstr "-mbnu210 diabaikan (pilihan ini sudah ditinggalkan)" #: config/i386/i386-interix.h:256 #, gcc-internal-format @@ -26035,22 +26026,22 @@ #: config/ia64/ia64.c:5225 #, gcc-internal-format msgid "bad value %<%s%> for -mtls-size= switch" -msgstr "nilai %<%s%> buruk untuk opsi -mtls-size=" +msgstr "nilai %<%s%> buruk untuk pilihan -mtls-size=" #: config/ia64/ia64.c:5254 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "value %<%s%> for -mtune= switch is deprecated" -msgstr "nilai %<%s%> buruk untuk opsi -mtune=" +msgstr "nilai %<%s%> untuk pilihan -mtune= sudah ditinggalkan" #: config/ia64/ia64.c:5256 #, gcc-internal-format msgid "GCC 4.4 is the last release with Itanium1 tuning support" -msgstr "" +msgstr "GCC 4.4 adalah keluaran terakhir dengan dukungan penyesuaian Itanium1" #: config/ia64/ia64.c:5263 #, gcc-internal-format msgid "bad value %<%s%> for -mtune= switch" -msgstr "nilai %<%s%> buruk untuk opsi -mtune=" +msgstr "nilai %<%s%> buruk untuk pilihan -mtune=" #: config/ia64/ia64.c:5282 #, gcc-internal-format @@ -26235,7 +26226,7 @@ #: config/mips/mips.c:13777 #, gcc-internal-format msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor" -msgstr "%<-%s%> konflik dengan opsi arsitektur lain, yang menspesifikasikan sebuah %s prosesor" +msgstr "%<-%s%> konflik dengan pilihan arsitektur lain, yang menspesifikasikan sebuah %s prosesor" #: config/mips/mips.c:13793 #, gcc-internal-format @@ -26388,7 +26379,7 @@ #: config/pa/pa.c:494 #, gcc-internal-format msgid "-g option disabled" -msgstr "-g opsi tidak aktif" +msgstr "-g pilihan tidak aktif" #: config/pa/pa.c:8388 #, gcc-internal-format @@ -26398,7 +26389,7 @@ #: config/pa/pa-hpux11.h:84 #, gcc-internal-format msgid "-munix=98 option required for C89 Amendment 1 features.\n" -msgstr "-munix=98 opsi dibutuhkan untuk feature C89 Amendment 1.\n" +msgstr "-munix=98 pilihan dibutuhkan untuk feature C89 Amendment 1.\n" #: config/picochip/picochip.c:379 #, gcc-internal-format @@ -26489,7 +26480,7 @@ #: config/picochip/picochip.c:4128 #, gcc-internal-format msgid "%s (disable warning using -mno-inefficient-warnings)" -msgstr "%s (Non-aktifkan peringatan menggunakan opsi -mno-inefficient-warnings)" +msgstr "%s (Non-aktifkan peringatan menggunakan pilihan -mno-inefficient-warnings)" #: config/rs6000/host-darwin.c:62 #, gcc-internal-format @@ -26618,7 +26609,7 @@ #: config/rs6000/rs6000.c:1655 #, gcc-internal-format msgid "unknown -mdebug-%s switch" -msgstr "opsi -mdebug-%s tidak dikenal" +msgstr "pilihan -mdebug-%s tidak dikenal" #: config/rs6000/rs6000.c:1667 #, gcc-internal-format @@ -26628,12 +26619,12 @@ #: config/rs6000/rs6000.c:2176 #, gcc-internal-format msgid "unknown -m%s= option specified: '%s'" -msgstr "opsi -m%s= tidak diketahui dispesifikasikan: '%s'" +msgstr "pilihan -m%s= tidak diketahui dispesifikasikan: '%s'" #: config/rs6000/rs6000.c:2222 #, gcc-internal-format msgid "unknown value %s for -mfpu" -msgstr "nilai %s tidak diketahui untuk opsi -mfpu" +msgstr "nilai %s tidak diketahui untuk pilihan -mfpu" #: config/rs6000/rs6000.c:2415 #, gcc-internal-format @@ -26668,12 +26659,12 @@ #: config/rs6000/rs6000.c:2478 #, gcc-internal-format msgid "invalid option for -mfloat-gprs: '%s'" -msgstr "opsi untuk -mfloat-gprs tidak valid: '%s'" +msgstr "pilihan untuk -mfloat-gprs tidak valid: '%s'" #: config/rs6000/rs6000.c:2488 #, gcc-internal-format msgid "Unknown switch -mlong-double-%s" -msgstr "opsi -mlong-double-%s tidak diketahui" +msgstr "pilihan -mlong-double-%s tidak diketahui" #: config/rs6000/rs6000.c:2509 #, gcc-internal-format @@ -26683,17 +26674,17 @@ #: config/rs6000/rs6000.c:2517 #, gcc-internal-format msgid "unknown -malign-XXXXX option specified: '%s'" -msgstr "opsi -malign-XXXXX tidak diketahui dispesifikasikan: '%s'" +msgstr "pilihan -malign-XXXXX tidak diketahui dispesifikasikan: '%s'" #: config/rs6000/rs6000.c:2524 #, gcc-internal-format msgid "-msingle-float option equivalent to -mhard-float" -msgstr "opsi -msingle-float ekuivalen dengan -mhard-float" +msgstr "pilihan -msingle-float ekuivalen dengan -mhard-float" #: config/rs6000/rs6000.c:2540 #, gcc-internal-format msgid "-msimple-fpu option ignored" -msgstr "opsi -msimple-fpu diabaikan" +msgstr "pilihan -msimple-fpu diabaikan" #: config/rs6000/rs6000.c:5376 #, gcc-internal-format @@ -27177,7 +27168,7 @@ #: config/sparc/sparc.c:728 #, gcc-internal-format msgid "bad value (%s) for -mcmodel= switch" -msgstr "nilai (%s) buruk untuk opsi -mcmodel=" +msgstr "nilai (%s) buruk untuk pilihan -mcmodel=" #: config/sparc/sparc.c:733 #, gcc-internal-format @@ -27242,7 +27233,7 @@ #: config/stormy16/stormy16.c:1875 #, gcc-internal-format msgid "switch statement of size %lu entries too large" -msgstr "pernyataan opsi dari ukuran %lu masukan terlalu besar" +msgstr "pernyataan pilihan dari ukuran %lu masukan terlalu besar" #: config/stormy16/stormy16.c:2244 #, gcc-internal-format @@ -27377,7 +27368,7 @@ #: config/xtensa/xtensa.c:2061 #, gcc-internal-format msgid "boolean registers required for the floating-point option" -msgstr "register boolean dibutuhkan untuk opsi titik pecahan" +msgstr "register boolean dibutuhkan untuk pilihan titik pecahan" #: config/xtensa/xtensa.c:2096 #, gcc-internal-format @@ -27577,9 +27568,9 @@ msgstr "mengubah % ke tipe penunjuk untuk argumen %P dari %qD" #: cp/call.c:4573 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "too many braces around initializer for %qT" -msgstr "hilang kurung diantara penginisialisasi untuk %qT" +msgstr "terlalu banyak kurung diantara penginisialisasi untuk %qT" #: cp/call.c:4595 cp/cvt.c:217 #, gcc-internal-format @@ -27698,19 +27689,19 @@ msgstr " karena urutan konversi untuk argumen lebih baik" #: cp/call.c:6899 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "default argument mismatch in overload resolution" -msgstr "argumen baku dispesifikasikan dalam spesialisasi eksplisit" +msgstr "argumen baku tidak cocok dalam kelebihan beban resolusi" #: cp/call.c:6902 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid " candidate 1: %q+#F" -msgstr "kandidat adalah: %+#D" +msgstr " kandidat 1: %q+#F" #: cp/call.c:6904 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid " candidate 2: %q+#F" -msgstr "kandidat adalah: %+#D" +msgstr " kandidat 2: %q+#F" #: cp/call.c:6942 #, gcc-internal-format @@ -28707,9 +28698,9 @@ msgstr "tidak dapat menginisialisasi %qT dari %qT" #: cp/decl.c:4437 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "name used in a GNU-style designated initializer for an array" -msgstr "nama %qD digunakan dalam sebuah gaya GNU didesign penginisialisasi untuk sebuah array" +msgstr "nama digunakan dalam sebuah gaya GNU diperuntukan penginisialisasi untuk sebuah array" #: cp/decl.c:4442 #, gcc-internal-format @@ -29377,9 +29368,9 @@ msgstr "tidak dapat mendeklarasikan penunjuk ke %q#T anggota" #: cp/decl.c:8500 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "cannot declare %s to qualified function type %qT" -msgstr "tidak dapat mendeklarasikan bit-field %qD dengan tipe fungsi" +msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT" #: cp/decl.c:8537 #, gcc-internal-format @@ -29627,9 +29618,9 @@ msgstr "% penspesifikasi tidak valid untuk fungsi %qs dideklarasikan diluar dari lingkup global" #: cp/decl.c:9365 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%q#T is not a class or a namespace" -msgstr "%qT bukan sebuah class atau namespace" +msgstr "%q#T bukan sebuah kelas atau ruang nama" #: cp/decl.c:9373 #, gcc-internal-format @@ -29637,9 +29628,9 @@ msgstr "virtual bukan kelas fungsi %qs" #: cp/decl.c:9380 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qs defined in a non-class scope" -msgstr "%qE atribut diabaikan dalam tipe bukan-class" +msgstr "%qs didefinisikan dalam sebuah lingkup bukan kelas" #: cp/decl.c:9413 #, gcc-internal-format @@ -29975,9 +29966,9 @@ msgstr "% seharusnya mengembalikan referensi ke %<*this%>" #: cp/decl.c:11874 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid function declaration" -msgstr "deklarasi anggota fungsi tidak valid" +msgstr "deklarasi fungsi tidak valid" #: cp/decl.c:11958 #, gcc-internal-format @@ -30050,9 +30041,9 @@ msgstr "metoda Java %qD memiliki tipe parameter %qT bukan Java" #: cp/decl2.c:579 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "template parameter lists provided don't match the template parameters of %qD" -msgstr "parameter template tidak cocok dengan template" +msgstr "daftar parameter template yang disediakan tidak cocok dengan paramter template dari %qD" #: cp/decl2.c:647 #, gcc-internal-format @@ -30368,9 +30359,9 @@ msgstr "%J%qD seharusnya diinisialisasi dalam daftar anggota inisialisasi" #: cp/init.c:454 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%Jvalue-initialization of %q#D, which has reference type" -msgstr "%J inisialisasi-baku dari %q#D, yang memiliki tipe referensi" +msgstr "%Jinisialisasi-nilai dari %q#D, yang memiliki tipe referensi" #. TYPE_NEEDS_CONSTRUCTING can be set just because we have a #. vtable; still give this diagnostic. @@ -30530,9 +30521,9 @@ msgstr "permintaan untuk anggota %qD adalah ambigu" #: cp/init.c:2136 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "non-constant array size in new, unable to verify length of initializer-list" -msgstr "indeks array bukan konstan dalam penginisialisasi" +msgstr "bukan ukuran konstanta array dalam new, tidak dapat memverifikasi panjang dari daftar penginisialisasi" #: cp/init.c:2145 #, gcc-internal-format @@ -30657,17 +30648,17 @@ #: cp/mangle.c:1903 #, gcc-internal-format msgid "mangling unknown fixed point type" -msgstr "" +msgstr "mangling tipe fixed point tidak diketahui" #: cp/mangle.c:2332 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "mangling %C" -msgstr "peringatan: " +msgstr "mangling %C" #: cp/mangle.c:2387 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "mangling new-expression" -msgstr "hilang ekspresi peningkatan" +msgstr "mangling ekspresi-baru" #: cp/mangle.c:2407 #, gcc-internal-format @@ -31104,9 +31095,9 @@ msgstr "%Htidak didukung akhiran bukan-standar di konstanta floating" #: cp/parser.c:3154 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%Hfixed-point types not supported in C++" -msgstr "tipe titik tetap tidak didukung untuk target ini" +msgstr "%Htipe titik tetap tidak didukung dalam C++" #: cp/parser.c:3235 #, gcc-internal-format @@ -31354,9 +31345,9 @@ msgstr "gunakan %<%T::template %D%> untuk mengindikasikan bahwa ini adalah template" #: cp/parser.c:10483 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%Hexpected parameter pack before %<...%>" -msgstr "diduga deklarasi penspesifikasi atau %<...%>" +msgstr "%Hdiduga parameter pack sebelum %<...%>" #: cp/parser.c:10893 #, gcc-internal-format @@ -32127,14 +32118,14 @@ msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena objek %qD bukan eksternal linkage" #: cp/pt.c:4578 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qE is not a valid template argument for type %qT" -msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena ini adalah sebuah penunjuk" +msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT" #: cp/pt.c:4579 #, gcc-internal-format msgid "it must be the address of a function with external linkage" -msgstr "" +msgstr "ini harus berupa alamat dari sebuah fungsi dengan hubungan eksternal" #: cp/pt.c:4593 #, gcc-internal-format @@ -32199,9 +32190,9 @@ #. Not sure if this is reachable, but it doesn't hurt #. to be robust. #: cp/pt.c:5091 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "type mismatch in nontype parameter pack" -msgstr "tipe tidak cocok dalam referensi komponen" +msgstr "tipe tidak cocok dalam paket parameter bukan tipe" #: cp/pt.c:5113 #, gcc-internal-format @@ -33108,9 +33099,9 @@ msgstr "penggunaan tidak valid dari %qD" #: cp/typeck.c:2150 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "object type %qT does not match destructor name ~%qT" -msgstr "tipe kualifikasi %qT tidak cocok dengan nama destruktor ~%qT" +msgstr "tipe objek %qT tidak cocok dengan nama destruktor ~%qT" #: cp/typeck.c:2158 #, gcc-internal-format @@ -33796,9 +33787,9 @@ msgstr "penunjuk ke anggota tipe %qT tidak kompatibel dengan tipe objek %qT" #: cp/typeck2.c:1450 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid value-initialization of reference types" -msgstr "nilai-inisialisasi dari referensi" +msgstr "nilai-inisialisasi dari referensi tidak valid" #: cp/typeck2.c:1637 #, gcc-internal-format @@ -33883,12 +33874,12 @@ #: fortran/trans-types.c:378 #, gcc-internal-format msgid "integer kind=8 not available for -fdefault-integer-8 option" -msgstr "integer kind=8 tidak tersedia untuk opsi -fdefault-integer-8" +msgstr "integer kind=8 tidak tersedia untuk pilihan -fdefault-integer-8" #: fortran/trans-types.c:401 #, gcc-internal-format msgid "real kind=8 not available for -fdefault-real-8 option" -msgstr "real kind=8 tidak tersedia untuk opsi -fdefault-real-8" +msgstr "real kind=8 tidak tersedia untuk pilihan -fdefault-real-8" #: fortran/trans-types.c:414 #, gcc-internal-format diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/ja.gmo Binary file gcc/po/ja.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/nl.gmo Binary file gcc/po/nl.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/ru.gmo Binary file gcc/po/ru.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/sr.gmo Binary file gcc/po/sr.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/sv.gmo Binary file gcc/po/sv.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/tr.gmo Binary file gcc/po/tr.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/zh_CN.gmo Binary file gcc/po/zh_CN.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/po/zh_TW.gmo Binary file gcc/po/zh_TW.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/reload.c --- a/gcc/reload.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/reload.c Sun Feb 07 17:44:34 2010 +0900 @@ -6096,6 +6096,9 @@ PUT_MODE (tem, GET_MODE (x)); if (MEM_OFFSET (tem)) set_mem_offset (tem, plus_constant (MEM_OFFSET (tem), offset)); + if (MEM_SIZE (tem) + && INTVAL (MEM_SIZE (tem)) != (HOST_WIDE_INT) outer_size) + set_mem_size (tem, GEN_INT (outer_size)); /* If this was a paradoxical subreg that we replaced, the resulting memory must be sufficiently aligned to allow diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/rtlanal.c --- a/gcc/rtlanal.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/rtlanal.c Sun Feb 07 17:44:34 2010 +0900 @@ -4508,8 +4508,16 @@ known_x, known_mode, known_ret); case UMOD: - /* The result must be <= the second operand. */ - return cached_num_sign_bit_copies (XEXP (x, 1), mode, + /* The result must be <= the second operand. If the second operand + has (or just might have) the high bit set, we know nothing about + the number of sign bit copies. */ + if (bitwidth > HOST_BITS_PER_WIDE_INT) + return 1; + else if ((nonzero_bits (XEXP (x, 1), mode) + & ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0) + return 1; + else + return cached_num_sign_bit_copies (XEXP (x, 1), mode, known_x, known_mode, known_ret); case DIV: diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/simplify-rtx.c --- a/gcc/simplify-rtx.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/simplify-rtx.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,6 +1,6 @@ /* RTL simplification functions for GNU compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -3863,7 +3863,8 @@ && rtx_equal_p (op1, XEXP (op0, 1)) /* Don't recurse "infinitely" for (LTU/GEU (PLUS b b) b). */ && !rtx_equal_p (op1, XEXP (op0, 0))) - return simplify_gen_relational (code, mode, cmp_mode, op0, XEXP (op0, 0)); + return simplify_gen_relational (code, mode, cmp_mode, op0, + copy_rtx (XEXP (op0, 0))); if (op1 == const0_rtx) { diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-cfgcleanup.c --- a/gcc/tree-cfgcleanup.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-cfgcleanup.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,5 +1,5 @@ /* CFG cleanup for trees. - Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. @@ -517,7 +517,7 @@ control_bb = single_pred (bb); stmt = last_stmt (control_bb); - if (gimple_code (stmt) != GIMPLE_OMP_SECTIONS_SWITCH) + if (stmt == NULL || gimple_code (stmt) != GIMPLE_OMP_SECTIONS_SWITCH) return false; /* The block with the control statement normally has two entry edges -- one diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-scalar-evolution.c --- a/gcc/tree-scalar-evolution.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-scalar-evolution.c Sun Feb 07 17:44:34 2010 +0900 @@ -2186,8 +2186,19 @@ if (CHREC_LEFT (chrec) != op0 || CHREC_RIGHT (chrec) != op1) { + unsigned var = CHREC_VARIABLE (chrec); + + /* When the instantiated stride or base has an evolution in an + innermost loop, return chrec_dont_know, as this is not a + valid SCEV representation. In the reduced testcase for + PR40281 we would have {0, +, {1, +, 1}_2}_1 that has no + meaning. */ + if ((tree_is_chrec (op0) && CHREC_VARIABLE (op0) > var) + || (tree_is_chrec (op1) && CHREC_VARIABLE (op1) > var)) + return chrec_dont_know; + op1 = chrec_convert_rhs (chrec_type (op0), op1, NULL); - chrec = build_polynomial_chrec (CHREC_VARIABLE (chrec), op0, op1); + chrec = build_polynomial_chrec (var, op0, op1); } return chrec; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-ssa-alias.c --- a/gcc/tree-ssa-alias.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-ssa-alias.c Sun Feb 07 17:44:34 2010 +0900 @@ -2335,6 +2335,61 @@ size_t i; timevar_push (TV_FLOW_INSENSITIVE); + + /* Since this analysis is based exclusively on symbols, it fails to + handle cases where two pointers P and Q have different memory + tags with conflicting alias set numbers but no aliased symbols in + common. + + For example, suppose that we have two memory tags SMT.1 and SMT.2 + such that + + may-aliases (SMT.1) = { a } + may-aliases (SMT.2) = { b } + + and the alias set number of SMT.1 conflicts with that of SMT.2. + Since they don't have symbols in common, loads and stores from + SMT.1 and SMT.2 will seem independent of each other, which will + lead to the optimizers making invalid transformations (see + testsuite/gcc.c-torture/execute/pr15262-[12].c). + + To avoid this problem, we do a final traversal of AI->POINTERS + looking for pairs of pointers that have no aliased symbols in + common and yet have conflicting alias set numbers. + + Note this has to be done first as we only can avoid adding + aliases for common memory tag aliases, not for common symbol + aliases as they might get pruned by the operand scanner later. */ + for (i = 0; i < ai->num_pointers; i++) + { + size_t j; + struct alias_map_d *p_map1 = ai->pointers[i]; + tree tag1 = symbol_mem_tag (p_map1->var); + bitmap may_aliases1 = MTAG_ALIASES (tag1); + + for (j = 0; j < ai->num_pointers; j++) + { + struct alias_map_d *p_map2 = ai->pointers[j]; + tree tag2 = symbol_mem_tag (p_map2->var); + bitmap may_aliases2 = may_aliases (tag2); + + /* By convention tags don't alias themselves. */ + if (tag1 == tag2) + continue; + + /* If the pointers may not point to each other, do nothing. */ + if (!may_alias_p (p_map1->var, p_map1->set, tag2, p_map2->set, true)) + continue; + + /* The two pointers may alias each other. If they already have + symbols in common, do nothing. */ + if (have_common_aliases_p (may_aliases1, may_aliases2)) + continue; + + add_may_alias (tag1, tag2); + } + } + /* For every pointer P, determine which addressable variables may alias with P's symbol memory tag. */ for (i = 0; i < ai->num_pointers; i++) @@ -2368,56 +2423,6 @@ } } - /* Since this analysis is based exclusively on symbols, it fails to - handle cases where two pointers P and Q have different memory - tags with conflicting alias set numbers but no aliased symbols in - common. - - For example, suppose that we have two memory tags SMT.1 and SMT.2 - such that - - may-aliases (SMT.1) = { a } - may-aliases (SMT.2) = { b } - - and the alias set number of SMT.1 conflicts with that of SMT.2. - Since they don't have symbols in common, loads and stores from - SMT.1 and SMT.2 will seem independent of each other, which will - lead to the optimizers making invalid transformations (see - testsuite/gcc.c-torture/execute/pr15262-[12].c). - - To avoid this problem, we do a final traversal of AI->POINTERS - looking for pairs of pointers that have no aliased symbols in - common and yet have conflicting alias set numbers. */ - for (i = 0; i < ai->num_pointers; i++) - { - size_t j; - struct alias_map_d *p_map1 = ai->pointers[i]; - tree tag1 = symbol_mem_tag (p_map1->var); - bitmap may_aliases1 = MTAG_ALIASES (tag1); - - for (j = 0; j < ai->num_pointers; j++) - { - struct alias_map_d *p_map2 = ai->pointers[j]; - tree tag2 = symbol_mem_tag (p_map2->var); - bitmap may_aliases2 = may_aliases (tag2); - - /* By convention tags don't alias themselves. */ - if (tag1 == tag2) - continue; - - /* If the pointers may not point to each other, do nothing. */ - if (!may_alias_p (p_map1->var, p_map1->set, tag2, p_map2->set, true)) - continue; - - /* The two pointers may alias each other. If they already have - symbols in common, do nothing. */ - if (have_common_aliases_p (may_aliases1, may_aliases2)) - continue; - - add_may_alias (tag1, tag2); - } - } - /* We have to add all HEAP variables to all SMTs aliases bitmaps. As we don't know which effective type the HEAP will have we cannot do better here and we need the conflicts with obfuscated pointers diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-ssa-ccp.c --- a/gcc/tree-ssa-ccp.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-ssa-ccp.c Sun Feb 07 17:44:34 2010 +0900 @@ -1727,7 +1727,7 @@ static tree maybe_fold_offset_to_component_ref (tree record_type, tree base, tree offset, - tree orig_type, bool base_is_ptr) + tree orig_type) { tree f, t, field_type, tail_array_field, field_offset; tree ret; @@ -1779,8 +1779,6 @@ if (cmp == 0 && useless_type_conversion_p (orig_type, field_type)) { - if (base_is_ptr) - base = build1 (INDIRECT_REF, record_type, base); t = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE); return t; } @@ -1805,11 +1803,7 @@ /* If we matched, then set offset to the displacement into this field. */ - if (base_is_ptr) - new_base = build1 (INDIRECT_REF, record_type, base); - else - new_base = base; - new_base = build3 (COMPONENT_REF, field_type, new_base, f, NULL_TREE); + new_base = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE); /* Recurse to possibly find the match. */ ret = maybe_fold_offset_to_array_ref (new_base, t, orig_type, @@ -1817,7 +1811,7 @@ if (ret) return ret; ret = maybe_fold_offset_to_component_ref (field_type, new_base, t, - orig_type, false); + orig_type); if (ret) return ret; } @@ -1831,8 +1825,6 @@ /* If we get here, we've got an aggregate field, and a possibly nonzero offset into them. Recurse and hope for a valid match. */ - if (base_is_ptr) - base = build1 (INDIRECT_REF, record_type, base); base = build3 (COMPONENT_REF, field_type, base, f, NULL_TREE); t = maybe_fold_offset_to_array_ref (base, offset, orig_type, @@ -1840,7 +1832,7 @@ if (t) return t; return maybe_fold_offset_to_component_ref (field_type, base, offset, - orig_type, false); + orig_type); } /* Attempt to express (ORIG_TYPE)BASE+OFFSET as BASE->field_of_orig_type @@ -1854,57 +1846,44 @@ { tree ret; tree type; - bool base_is_ptr = true; STRIP_NOPS (base); - if (TREE_CODE (base) == ADDR_EXPR) + if (TREE_CODE (base) != ADDR_EXPR) + return NULL_TREE; + + base = TREE_OPERAND (base, 0); + + /* Handle case where existing COMPONENT_REF pick e.g. wrong field of union, + so it needs to be removed and new COMPONENT_REF constructed. + The wrong COMPONENT_REF are often constructed by folding the + (type *)&object within the expression (type *)&object+offset */ + if (handled_component_p (base)) { - base_is_ptr = false; - - base = TREE_OPERAND (base, 0); - - /* Handle case where existing COMPONENT_REF pick e.g. wrong field of union, - so it needs to be removed and new COMPONENT_REF constructed. - The wrong COMPONENT_REF are often constructed by folding the - (type *)&object within the expression (type *)&object+offset */ - if (handled_component_p (base)) + HOST_WIDE_INT sub_offset, size, maxsize; + tree newbase; + newbase = get_ref_base_and_extent (base, &sub_offset, + &size, &maxsize); + gcc_assert (newbase); + if (size == maxsize + && size != -1 + && !(sub_offset & (BITS_PER_UNIT - 1))) { - HOST_WIDE_INT sub_offset, size, maxsize; - tree newbase; - newbase = get_ref_base_and_extent (base, &sub_offset, - &size, &maxsize); - gcc_assert (newbase); - if (size == maxsize - && size != -1 - && !(sub_offset & (BITS_PER_UNIT - 1))) - { - base = newbase; - if (sub_offset) - offset = int_const_binop (PLUS_EXPR, offset, - build_int_cst (TREE_TYPE (offset), - sub_offset / BITS_PER_UNIT), 1); - } + base = newbase; + if (sub_offset) + offset = int_const_binop (PLUS_EXPR, offset, + build_int_cst (TREE_TYPE (offset), + sub_offset / BITS_PER_UNIT), 1); } - if (useless_type_conversion_p (orig_type, TREE_TYPE (base)) - && integer_zerop (offset)) - return base; - type = TREE_TYPE (base); } - else - { - base_is_ptr = true; - if (!POINTER_TYPE_P (TREE_TYPE (base))) - return NULL_TREE; - type = TREE_TYPE (TREE_TYPE (base)); - } - ret = maybe_fold_offset_to_component_ref (type, base, offset, - orig_type, base_is_ptr); + if (useless_type_conversion_p (orig_type, TREE_TYPE (base)) + && integer_zerop (offset)) + return base; + type = TREE_TYPE (base); + + ret = maybe_fold_offset_to_component_ref (type, base, offset, orig_type); if (!ret) - { - if (base_is_ptr) - base = build1 (INDIRECT_REF, type, base); - ret = maybe_fold_offset_to_array_ref (base, offset, orig_type, true); - } + ret = maybe_fold_offset_to_array_ref (base, offset, orig_type, true); + return ret; } @@ -2143,7 +2122,7 @@ t = maybe_fold_offset_to_array_ref (op0, op1, ptd_type, true); if (!t) t = maybe_fold_offset_to_component_ref (TREE_TYPE (op0), op0, op1, - ptd_type, false); + ptd_type); if (t) t = build1 (ADDR_EXPR, res_type, t); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-ssa-dom.c --- a/gcc/tree-ssa-dom.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-ssa-dom.c Sun Feb 07 17:44:34 2010 +0900 @@ -2491,6 +2491,8 @@ if (arg == lhs) continue; + else if (!arg) + break; else if (!val) val = arg; else if (!operand_equal_p (arg, val, 0)) diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-ssa-loop-im.c --- a/gcc/tree-ssa-loop-im.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-ssa-loop-im.c Sun Feb 07 17:44:34 2010 +0900 @@ -1767,8 +1767,8 @@ name = get_name (TREE_OPERAND (ref, 1)); if (!name) name = "F"; - lsm_tmp_name_add ("_"); lsm_tmp_name_add (name); + break; case ARRAY_REF: gen_lsm_tmp_name (TREE_OPERAND (ref, 0)); diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-ssa-math-opts.c --- a/gcc/tree-ssa-math-opts.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-ssa-math-opts.c Sun Feb 07 17:44:34 2010 +0900 @@ -528,7 +528,9 @@ || DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD)) { enum built_in_function code; - bool md_code; + bool md_code, fail; + imm_use_iterator ui; + use_operand_p use_p; code = DECL_FUNCTION_CODE (fndecl); md_code = DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD; @@ -537,12 +539,34 @@ if (!fndecl) continue; + /* Check that all uses of the SSA name are divisions, + otherwise replacing the defining statement will do + the wrong thing. */ + fail = false; + FOR_EACH_IMM_USE_FAST (use_p, ui, arg1) + { + gimple stmt2 = USE_STMT (use_p); + if (!is_gimple_assign (stmt2) + || gimple_assign_rhs_code (stmt2) != RDIV_EXPR + || gimple_assign_rhs1 (stmt2) == arg1 + || gimple_assign_rhs2 (stmt2) != arg1) + { + fail = true; + break; + } + } + if (fail) + continue; + gimple_call_set_fndecl (stmt1, fndecl); update_stmt (stmt1); - gimple_assign_set_rhs_code (stmt, MULT_EXPR); - fold_stmt_inplace (stmt); - update_stmt (stmt); + FOR_EACH_IMM_USE_STMT (stmt, ui, arg1) + { + gimple_assign_set_rhs_code (stmt, MULT_EXPR); + fold_stmt_inplace (stmt); + update_stmt (stmt); + } } } } diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-ssa-pre.c --- a/gcc/tree-ssa-pre.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-ssa-pre.c Sun Feb 07 17:44:34 2010 +0900 @@ -453,9 +453,6 @@ cleaned up. */ static bitmap need_eh_cleanup; -/* Which expressions have been seen during a given phi translation. */ -static bitmap seen_during_translate; - /* The phi_translate_table caches phi translations for a given expression and predecessor. */ @@ -1400,14 +1397,12 @@ /* Translate EXPR using phis in PHIBLOCK, so that it has the values of - the phis in PRED. SEEN is a bitmap saying which expression we have - translated since we started translation of the toplevel expression. - Return NULL if we can't find a leader for each part of the - translated expression. */ + the phis in PRED. Return NULL if we can't find a leader for each part + of the translated expression. */ static pre_expr -phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, - basic_block pred, basic_block phiblock, bitmap seen) +phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, + basic_block pred, basic_block phiblock) { pre_expr oldexpr = expr; pre_expr phitrans; @@ -1422,16 +1417,6 @@ if (phitrans) return phitrans; - /* Prevent cycles when we have recursively dependent leaders. This - can only happen when phi translating the maximal set. */ - if (seen) - { - unsigned int expr_id = get_expression_id (expr); - if (bitmap_bit_p (seen, expr_id)) - return NULL; - bitmap_set_bit (seen, expr_id); - } - switch (expr->kind) { /* Constants contain no values that need translation. */ @@ -1455,10 +1440,10 @@ continue; else { + pre_expr leader, result; unsigned int op_val_id = VN_INFO (newnary.op[i])->value_id; - pre_expr leader = find_leader_in_sets (op_val_id, set1, set2); - pre_expr result = phi_translate_1 (leader, set1, set2, - pred, phiblock, seen); + leader = find_leader_in_sets (op_val_id, set1, set2); + result = phi_translate (leader, set1, set2, pred, phiblock); if (result && result != leader) { tree name = get_representative_for (result); @@ -1559,8 +1544,7 @@ { unsigned int op_val_id = VN_INFO (op0)->value_id; leader = find_leader_in_sets (op_val_id, set1, set2); - opresult = phi_translate_1 (leader, set1, set2, - pred, phiblock, seen); + opresult = phi_translate (leader, set1, set2, pred, phiblock); if (opresult && opresult != leader) { tree name = get_representative_for (opresult); @@ -1577,8 +1561,7 @@ { unsigned int op_val_id = VN_INFO (op1)->value_id; leader = find_leader_in_sets (op_val_id, set1, set2); - opresult = phi_translate_1 (leader, set1, set2, - pred, phiblock, seen); + opresult = phi_translate (leader, set1, set2, pred, phiblock); if (opresult && opresult != leader) { tree name = get_representative_for (opresult); @@ -1594,8 +1577,7 @@ { unsigned int op_val_id = VN_INFO (op2)->value_id; leader = find_leader_in_sets (op_val_id, set1, set2); - opresult = phi_translate_1 (leader, set1, set2, - pred, phiblock, seen); + opresult = phi_translate (leader, set1, set2, pred, phiblock); if (opresult && opresult != leader) { tree name = get_representative_for (opresult); @@ -1724,20 +1706,6 @@ } } -/* Translate EXPR using phis in PHIBLOCK, so that it has the values of - the phis in PRED. - Return NULL if we can't find a leader for each part of the - translated expression. */ - -static pre_expr -phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, - basic_block pred, basic_block phiblock) -{ - bitmap_clear (seen_during_translate); - return phi_translate_1 (expr, set1, set2, pred, phiblock, - seen_during_translate); -} - /* For each expression in SET, translate the values through phi nodes in PHIBLOCK using edge PHIBLOCK->PRED, and store the resulting expressions in DEST. */ @@ -1750,7 +1718,7 @@ pre_expr expr; int i; - if (!phi_nodes (phiblock)) + if (gimple_seq_empty_p (phi_nodes (phiblock))) { bitmap_set_copy (dest, set); return; @@ -2132,14 +2100,14 @@ goto maybe_dump_sets; } - if (phi_nodes (first)) + if (!gimple_seq_empty_p (phi_nodes (first))) phi_translate_set (ANTIC_OUT, ANTIC_IN (first), block, first); else bitmap_set_copy (ANTIC_OUT, ANTIC_IN (first)); for (i = 0; VEC_iterate (basic_block, worklist, i, bprime); i++) { - if (phi_nodes (bprime)) + if (!gimple_seq_empty_p (phi_nodes (bprime))) { bitmap_set_t tmp = bitmap_set_new (); phi_translate_set (tmp, ANTIC_IN (bprime), block, bprime); @@ -2289,7 +2257,7 @@ FOR_EACH_EXPR_ID_IN_SET (ANTIC_IN (bprime), i, bi) bitmap_value_insert_into_set (PA_OUT, expression_for_id (i)); - if (phi_nodes (bprime)) + if (!gimple_seq_empty_p (phi_nodes (bprime))) { bitmap_set_t pa_in = bitmap_set_new (); phi_translate_set (pa_in, PA_IN (bprime), block, bprime); @@ -4146,7 +4114,6 @@ expression_to_id = htab_create (num_ssa_names * 3, pre_expr_hash, pre_expr_eq, NULL); - seen_during_translate = BITMAP_ALLOC (&grand_bitmap_obstack); bitmap_set_pool = create_alloc_pool ("Bitmap sets", sizeof (struct bitmap_set), 30); pre_expr_pool = create_alloc_pool ("pre_expr nodes", diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-ssa-structalias.c --- a/gcc/tree-ssa-structalias.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-ssa-structalias.c Sun Feb 07 17:44:34 2010 +0900 @@ -2803,7 +2803,7 @@ get_constraint_for_ptr_offset (tree ptr, tree offset, VEC (ce_s, heap) **results) { - struct constraint_expr *c; + struct constraint_expr c; unsigned int j, n; unsigned HOST_WIDE_INT rhsunitoffset, rhsoffset; @@ -2854,13 +2854,13 @@ for (j = 0; j < n; j++) { varinfo_t curr; - c = VEC_index (ce_s, *results, j); - curr = get_varinfo (c->var); - - if (c->type == ADDRESSOF + c = *VEC_index (ce_s, *results, j); + curr = get_varinfo (c.var); + + if (c.type == ADDRESSOF && !curr->is_full_var) { - varinfo_t temp, curr = get_varinfo (c->var); + varinfo_t temp, curr = get_varinfo (c.var); /* Search the sub-field which overlaps with the pointed-to offset. As we deal with positive offsets @@ -2896,15 +2896,17 @@ c2.offset = 0; VEC_safe_push (ce_s, heap, *results, &c2); } - c->var = temp->id; - c->offset = 0; + c.var = temp->id; + c.offset = 0; } - else if (c->type == ADDRESSOF + else if (c.type == ADDRESSOF /* If this varinfo represents a full variable just use it. */ && curr->is_full_var) - c->offset = 0; + c.offset = 0; else - c->offset = rhsoffset; + c.offset = rhsoffset; + + VEC_replace (ce_s, *results, j, &c); } } diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-tailcall.c --- a/gcc/tree-tailcall.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-tailcall.c Sun Feb 07 17:44:34 2010 +0900 @@ -920,8 +920,10 @@ if (!phis_constructed) { - /* Ensure that there is only one predecessor of the block. */ - if (!single_pred_p (first)) + /* Ensure that there is only one predecessor of the block + or if there are existing degenerate PHI nodes. */ + if (!single_pred_p (first) + || !gimple_seq_empty_p (phi_nodes (first))) first = split_edge (single_succ_edge (ENTRY_BLOCK_PTR)); /* Copy the args if needed. */ diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/tree-vect-analyze.c --- a/gcc/tree-vect-analyze.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/tree-vect-analyze.c Sun Feb 07 17:44:34 2010 +0900 @@ -3213,6 +3213,7 @@ { int i = 0, j, prev = -1, next, k; bool supported; + sbitmap load_index; /* FORNOW: permutations are only supported for loop-aware SLP. */ if (!slp_instn) @@ -3233,6 +3234,8 @@ return false; supported = true; + load_index = sbitmap_alloc (group_size); + sbitmap_zero (load_index); for (j = 0; j < group_size; j++) { for (i = j * group_size, k = 0; @@ -3246,9 +3249,19 @@ } prev = next; - } + } + + if (TEST_BIT (load_index, prev)) + { + supported = false; + break; + } + + SET_BIT (load_index, prev); } + sbitmap_free (load_index); + if (supported && i == group_size * group_size && vect_supported_slp_permutation_p (slp_instn)) return true; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/unwind-dw2.c --- a/gcc/unwind-dw2.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/unwind-dw2.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,6 +1,6 @@ /* DWARF2 exception handling and frame unwind runtime interface routines. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2008, 2009 Free Software Foundation, Inc. + 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -765,7 +765,7 @@ result = second - first; break; case DW_OP_mod: - result = (_Unwind_Sword) second % (_Unwind_Sword) first; + result = second % first; break; case DW_OP_mul: result = second * first; diff -r b85a337e5837 -r 3bfb6c00c1e0 gcc/varasm.c --- a/gcc/varasm.c Sun Feb 07 17:43:48 2010 +0900 +++ b/gcc/varasm.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,7 +1,7 @@ /* Output variables, constants and external declarations, for GNU compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, - 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -2309,13 +2309,15 @@ /* We want to output annotation for weak and external symbols at very last to check if they are references or not. */ - if (SUPPORTS_WEAK && DECL_WEAK (decl) + if (SUPPORTS_WEAK + && DECL_WEAK (decl) /* TREE_STATIC is a weird and abused creature which is not generally the right test for whether an entity has been locally emitted, inlined or otherwise not-really-extern, but for declarations that can be weak, it happens to be match. */ - && !TREE_STATIC (decl)) + && !TREE_STATIC (decl) + && lookup_attribute ("weak", DECL_ATTRIBUTES (decl))) weak_decls = tree_cons (NULL, decl, weak_decls); #ifdef ASM_OUTPUT_EXTERNAL @@ -4070,6 +4072,9 @@ && !VEC_empty (constructor_elt, CONSTRUCTOR_ELTS (ctor))); } +static tree initializer_constant_valid_p_1 (tree value, tree endtype, + tree *cache); + /* A subroutine of initializer_constant_valid_p. VALUE is a MINUS_EXPR, PLUS_EXPR or POINTER_PLUS_EXPR. This looks for cases of VALUE which are valid when ENDTYPE is an integer of any size; in @@ -4079,7 +4084,7 @@ returns NULL. */ static tree -narrowing_initializer_constant_valid_p (tree value, tree endtype) +narrowing_initializer_constant_valid_p (tree value, tree endtype, tree *cache) { tree op0, op1; @@ -4118,11 +4123,14 @@ op1 = inner; } - op0 = initializer_constant_valid_p (op0, endtype); - op1 = initializer_constant_valid_p (op1, endtype); - + op0 = initializer_constant_valid_p_1 (op0, endtype, cache); + if (!op0) + return NULL_TREE; + + op1 = initializer_constant_valid_p_1 (op1, endtype, + cache ? cache + 2 : NULL); /* Both initializers must be known. */ - if (op0 && op1) + if (op1) { if (op0 == op1 && (op0 == null_pointer_node @@ -4143,7 +4151,8 @@ return NULL_TREE; } -/* Return nonzero if VALUE is a valid constant-valued expression +/* Helper function of initializer_constant_valid_p. + Return nonzero if VALUE is a valid constant-valued expression for use in initializing a static variable; one that can be an element of a "constant" initializer. @@ -4151,10 +4160,12 @@ if it is relocatable, return the variable that determines the relocation. We assume that VALUE has been folded as much as possible; therefore, we do not need to check for such things as - arithmetic-combinations of integers. */ - -tree -initializer_constant_valid_p (tree value, tree endtype) + arithmetic-combinations of integers. + + Use CACHE (pointer to 2 tree values) for caching if non-NULL. */ + +static tree +initializer_constant_valid_p_1 (tree value, tree endtype, tree *cache) { tree ret; @@ -4167,18 +4178,33 @@ tree elt; bool absolute = true; + if (cache && cache[0] == value) + return cache[1]; FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (value), idx, elt) { tree reloc; - reloc = initializer_constant_valid_p (elt, TREE_TYPE (elt)); + reloc = initializer_constant_valid_p_1 (elt, TREE_TYPE (elt), + NULL); if (!reloc) - return NULL_TREE; + { + if (cache) + { + cache[0] = value; + cache[1] = NULL_TREE; + } + return NULL_TREE; + } if (reloc != null_pointer_node) absolute = false; } /* For a non-absolute relocation, there is no single variable that can be "the variable that determines the relocation." */ + if (cache) + { + cache[0] = value; + cache[1] = absolute ? null_pointer_node : error_mark_node; + } return absolute ? null_pointer_node : error_mark_node; } @@ -4219,7 +4245,8 @@ } case NON_LVALUE_EXPR: - return initializer_constant_valid_p (TREE_OPERAND (value, 0), endtype); + return initializer_constant_valid_p_1 (TREE_OPERAND (value, 0), + endtype, cache); case VIEW_CONVERT_EXPR: { @@ -4234,13 +4261,13 @@ if (AGGREGATE_TYPE_P (src_type) && !AGGREGATE_TYPE_P (dest_type)) { if (TYPE_MODE (endtype) == TYPE_MODE (dest_type)) - return initializer_constant_valid_p (src, endtype); + return initializer_constant_valid_p_1 (src, endtype, cache); else return NULL_TREE; } /* Allow all other kinds of view-conversion. */ - return initializer_constant_valid_p (src, endtype); + return initializer_constant_valid_p_1 (src, endtype, cache); } CASE_CONVERT: @@ -4255,18 +4282,18 @@ || (FLOAT_TYPE_P (dest_type) && FLOAT_TYPE_P (src_type)) || (TREE_CODE (dest_type) == OFFSET_TYPE && TREE_CODE (src_type) == OFFSET_TYPE)) - return initializer_constant_valid_p (src, endtype); + return initializer_constant_valid_p_1 (src, endtype, cache); /* Allow length-preserving conversions between integer types. */ if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type) && (TYPE_PRECISION (dest_type) == TYPE_PRECISION (src_type))) - return initializer_constant_valid_p (src, endtype); + return initializer_constant_valid_p_1 (src, endtype, cache); /* Allow conversions between other integer types only if explicit value. */ if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type)) { - tree inner = initializer_constant_valid_p (src, endtype); + tree inner = initializer_constant_valid_p_1 (src, endtype, cache); if (inner == null_pointer_node) return null_pointer_node; break; @@ -4275,7 +4302,7 @@ /* Allow (int) &foo provided int is as wide as a pointer. */ if (INTEGRAL_TYPE_P (dest_type) && POINTER_TYPE_P (src_type) && (TYPE_PRECISION (dest_type) >= TYPE_PRECISION (src_type))) - return initializer_constant_valid_p (src, endtype); + return initializer_constant_valid_p_1 (src, endtype, cache); /* Likewise conversions from int to pointers, but also allow conversions from 0. */ @@ -4289,77 +4316,119 @@ if (integer_zerop (src)) return null_pointer_node; else if (TYPE_PRECISION (dest_type) <= TYPE_PRECISION (src_type)) - return initializer_constant_valid_p (src, endtype); + return initializer_constant_valid_p_1 (src, endtype, cache); } /* Allow conversions to struct or union types if the value inside is okay. */ if (TREE_CODE (dest_type) == RECORD_TYPE || TREE_CODE (dest_type) == UNION_TYPE) - return initializer_constant_valid_p (src, endtype); + return initializer_constant_valid_p_1 (src, endtype, cache); } break; case POINTER_PLUS_EXPR: case PLUS_EXPR: - if (! INTEGRAL_TYPE_P (endtype) - || TYPE_PRECISION (endtype) >= POINTER_SIZE) - { - tree valid0 = initializer_constant_valid_p (TREE_OPERAND (value, 0), - endtype); - tree valid1 = initializer_constant_valid_p (TREE_OPERAND (value, 1), - endtype); - /* If either term is absolute, use the other term's relocation. */ - if (valid0 == null_pointer_node) - return valid1; - if (valid1 == null_pointer_node) - return valid0; - } - - /* Support narrowing pointer differences. */ - ret = narrowing_initializer_constant_valid_p (value, endtype); - if (ret != NULL_TREE) - return ret; - - break; - - case MINUS_EXPR: + /* Any valid floating-point constants will have been folded by now; + with -frounding-math we hit this with addition of two constants. */ + if (TREE_CODE (endtype) == REAL_TYPE) + return NULL_TREE; + if (cache && cache[0] == value) + return cache[1]; if (! INTEGRAL_TYPE_P (endtype) || TYPE_PRECISION (endtype) >= POINTER_SIZE) { - tree valid0 = initializer_constant_valid_p (TREE_OPERAND (value, 0), - endtype); - tree valid1 = initializer_constant_valid_p (TREE_OPERAND (value, 1), - endtype); + tree ncache[4] = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE }; + tree valid0 + = initializer_constant_valid_p_1 (TREE_OPERAND (value, 0), + endtype, ncache); + tree valid1 + = initializer_constant_valid_p_1 (TREE_OPERAND (value, 1), + endtype, ncache + 2); + /* If either term is absolute, use the other term's relocation. */ + if (valid0 == null_pointer_node) + ret = valid1; + else if (valid1 == null_pointer_node) + ret = valid0; + /* Support narrowing pointer differences. */ + else + ret = narrowing_initializer_constant_valid_p (value, endtype, + ncache); + } + else + /* Support narrowing pointer differences. */ + ret = narrowing_initializer_constant_valid_p (value, endtype, NULL); + if (cache) + { + cache[0] = value; + cache[1] = ret; + } + return ret; + + case MINUS_EXPR: + if (TREE_CODE (endtype) == REAL_TYPE) + return NULL_TREE; + if (cache && cache[0] == value) + return cache[1]; + if (! INTEGRAL_TYPE_P (endtype) + || TYPE_PRECISION (endtype) >= POINTER_SIZE) + { + tree ncache[4] = { NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE }; + tree valid0 + = initializer_constant_valid_p_1 (TREE_OPERAND (value, 0), + endtype, ncache); + tree valid1 + = initializer_constant_valid_p_1 (TREE_OPERAND (value, 1), + endtype, ncache + 2); /* Win if second argument is absolute. */ if (valid1 == null_pointer_node) - return valid0; + ret = valid0; /* Win if both arguments have the same relocation. Then the value is absolute. */ - if (valid0 == valid1 && valid0 != 0) - return null_pointer_node; - + else if (valid0 == valid1 && valid0 != 0) + ret = null_pointer_node; /* Since GCC guarantees that string constants are unique in the generated code, a subtraction between two copies of the same constant string is absolute. */ - if (valid0 && TREE_CODE (valid0) == STRING_CST - && valid1 && TREE_CODE (valid1) == STRING_CST - && operand_equal_p (valid0, valid1, 1)) - return null_pointer_node; + else if (valid0 && TREE_CODE (valid0) == STRING_CST + && valid1 && TREE_CODE (valid1) == STRING_CST + && operand_equal_p (valid0, valid1, 1)) + ret = null_pointer_node; + /* Support narrowing differences. */ + else + ret = narrowing_initializer_constant_valid_p (value, endtype, + ncache); } - - /* Support narrowing differences. */ - ret = narrowing_initializer_constant_valid_p (value, endtype); - if (ret != NULL_TREE) - return ret; - - break; + else + /* Support narrowing differences. */ + ret = narrowing_initializer_constant_valid_p (value, endtype, NULL); + if (cache) + { + cache[0] = value; + cache[1] = ret; + } + return ret; default: break; } - return 0; + return NULL_TREE; +} + +/* Return nonzero if VALUE is a valid constant-valued expression + for use in initializing a static variable; one that can be an + element of a "constant" initializer. + + Return null_pointer_node if the value is absolute; + if it is relocatable, return the variable that determines the relocation. + We assume that VALUE has been folded as much as possible; + therefore, we do not need to check for such things as + arithmetic-combinations of integers. */ +tree +initializer_constant_valid_p (tree value, tree endtype) +{ + return initializer_constant_valid_p_1 (value, endtype, NULL); } /* Output assembler code for constant EXP to FILE, with no label. @@ -4485,8 +4554,8 @@ case REAL_TYPE: if (TREE_CODE (exp) != REAL_CST) error ("initializer for floating value is not a floating constant"); - - assemble_real (TREE_REAL_CST (exp), TYPE_MODE (TREE_TYPE (exp)), align); + else + assemble_real (TREE_REAL_CST (exp), TYPE_MODE (TREE_TYPE (exp)), align); break; case COMPLEX_TYPE: @@ -5002,6 +5071,9 @@ warning (0, "weak declaration of %q+D not supported", decl); mark_weak (decl); + if (!lookup_attribute ("weak", DECL_ATTRIBUTES (decl))) + DECL_ATTRIBUTES (decl) + = tree_cons (get_identifier ("weak"), NULL, DECL_ATTRIBUTES (decl)); } static void diff -r b85a337e5837 -r 3bfb6c00c1e0 include/ChangeLog --- a/include/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/include/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 intl/ChangeLog --- a/intl/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/intl/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/ChangeLog --- a/libcpp/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libcpp/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,31 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + +2009-11-11 Kai Tietz + + Backported from trunk + * directives.c (do_pragma_push_macro): New pragma handler. + (do_pragma_pop_macro): Likewise. + (_cpp_init_internal_pragmas): Add push_macro and + pop_macro handler to internal pragmas. + (lex_macro_node_from_str): Removed. + (cpp_push_definition): Replace lex_macro_node_from_str + by _cpp_lex_identifier. + (cpp_pop_definition): Likewise. + * internal.h (_cpp_lex_identifier): New prototype. + (def_pragma_macro): New structure. + (cpp_reader): New member pushed_macros. + * lex.c (_cpp_lex_identifier): New function. + (lex_identifier_intern): New function. + * init.c (cpp_create_reader): Initialize pushed_macros + member. + (cpp_destroy): Free elements in pushed_macros member. + * pch.c (_cpp_save_pushed_macros): New function. + (_cpp_restore_pushed_macros): Likewise. + (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros. + (cpp_read_state): Use _cpp_restore_pushed_macros. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/directives.c --- a/libcpp/directives.c Sun Feb 07 17:43:48 2010 +0900 +++ b/libcpp/directives.c Sun Feb 07 17:44:34 2010 +0900 @@ -125,6 +125,8 @@ static cpp_hashnode *parse_assertion (cpp_reader *, struct answer **, int); static struct answer ** find_answer (cpp_hashnode *, const struct answer *); static void handle_assertion (cpp_reader *, const char *, int); +static void do_pragma_push_macro (cpp_reader *); +static void do_pragma_pop_macro (cpp_reader *); /* This is the table of directive handlers. It is ordered by frequency of occurrence; the numbers at the end are directive @@ -1226,6 +1228,8 @@ { /* Pragmas in the global namespace. */ register_pragma_internal (pfile, 0, "once", do_pragma_once); + register_pragma_internal (pfile, 0, "push_macro", do_pragma_push_macro); + register_pragma_internal (pfile, 0, "pop_macro", do_pragma_pop_macro); /* New GCC-specific pragmas should be put in the GCC namespace. */ register_pragma_internal (pfile, "GCC", "poison", do_pragma_poison); @@ -1405,6 +1409,96 @@ _cpp_mark_file_once_only (pfile, pfile->buffer->file); } +/* Handle #pragma push_macro(STRING). */ +static void +do_pragma_push_macro (cpp_reader *pfile) +{ + char *macroname, *dest; + const char *limit, *src; + const cpp_token *txt; + struct def_pragma_macro *c; + + txt = get__Pragma_string (pfile); + if (!txt) + { + source_location src_loc = pfile->cur_token[-1].src_loc; + cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, + "invalid #pragma push_macro directive"); + check_eol (pfile); + skip_rest_of_line (pfile); + return; + } + dest = macroname = (char *) alloca (txt->val.str.len + 2); + src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L')); + limit = (const char *) (txt->val.str.text + txt->val.str.len - 1); + while (src < limit) + { + /* We know there is a character following the backslash. */ + if (*src == '\\' && (src[1] == '\\' || src[1] == '"')) + src++; + *dest++ = *src++; + } + *dest = 0; + check_eol (pfile); + skip_rest_of_line (pfile); + c = XNEW (struct def_pragma_macro); + c->name = XNEWVAR (char, strlen (macroname) + 1); + strcpy (c->name, macroname); + c->next = pfile->pushed_macros; + c->value = cpp_push_definition (pfile, c->name); + pfile->pushed_macros = c; +} + +/* Handle #pragma pop_macro(STRING). */ +static void +do_pragma_pop_macro (cpp_reader *pfile) +{ + char *macroname, *dest; + const char *limit, *src; + const cpp_token *txt; + struct def_pragma_macro *l = NULL, *c = pfile->pushed_macros; + txt = get__Pragma_string (pfile); + if (!txt) + { + source_location src_loc = pfile->cur_token[-1].src_loc; + cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, + "invalid #pragma pop_macro directive"); + check_eol (pfile); + skip_rest_of_line (pfile); + return; + } + dest = macroname = (char *) alloca (txt->val.str.len + 2); + src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L')); + limit = (const char *) (txt->val.str.text + txt->val.str.len - 1); + while (src < limit) + { + /* We know there is a character following the backslash. */ + if (*src == '\\' && (src[1] == '\\' || src[1] == '"')) + src++; + *dest++ = *src++; + } + *dest = 0; + check_eol (pfile); + skip_rest_of_line (pfile); + + while (c != NULL) + { + if (!strcmp (c->name, macroname)) + { + if (!l) + pfile->pushed_macros = c->next; + else + l->next = c->next; + cpp_pop_definition (pfile, c->name, c->value); + free (c->name); + free (c); + break; + } + l = c; + c = c->next; + } +} + /* Handle #pragma GCC poison, to poison one or more identifiers so that the lexer produces a hard error for each subsequent usage. */ static void @@ -2200,28 +2294,11 @@ run_directive (pfile, T_UNDEF, buf, len); } -/* Like lex_macro_node, but read the input from STR. */ -static cpp_hashnode * -lex_macro_node_from_str (cpp_reader *pfile, const char *str) -{ - size_t len = strlen (str); - uchar *buf = (uchar *) alloca (len + 1); - cpp_hashnode *node; - - memcpy (buf, str, len); - buf[len] = '\n'; - cpp_push_buffer (pfile, buf, len, true); - node = lex_macro_node (pfile, true); - _cpp_pop_buffer (pfile); - - return node; -} - /* If STR is a defined macro, return its definition node, else return NULL. */ cpp_macro * cpp_push_definition (cpp_reader *pfile, const char *str) { - cpp_hashnode *node = lex_macro_node_from_str (pfile, str); + cpp_hashnode *node = _cpp_lex_identifier (pfile, str); if (node && node->type == NT_MACRO) return node->value.macro; else @@ -2233,7 +2310,7 @@ void cpp_pop_definition (cpp_reader *pfile, const char *str, cpp_macro *dfn) { - cpp_hashnode *node = lex_macro_node_from_str (pfile, str); + cpp_hashnode *node = _cpp_lex_identifier (pfile, str); if (node == NULL) return; diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/init.c --- a/libcpp/init.c Sun Feb 07 17:43:48 2010 +0900 +++ b/libcpp/init.c Sun Feb 07 17:44:34 2010 +0900 @@ -216,6 +216,9 @@ pfile->a_buff = _cpp_get_buff (pfile, 0); pfile->u_buff = _cpp_get_buff (pfile, 0); + /* Initialize table for push_macro/pop_macro. */ + pfile->pushed_macros = 0; + /* The expression parser stack. */ _cpp_expand_op_stack (pfile); @@ -245,6 +248,7 @@ cpp_destroy (cpp_reader *pfile) { cpp_context *context, *contextn; + struct def_pragma_macro *pmacro; tokenrun *run, *runn; int i; @@ -296,6 +300,17 @@ free (pfile->comments.entries); } + if (pfile->pushed_macros) + { + do + { + pmacro = pfile->pushed_macros; + pfile->pushed_macros = pmacro->next; + free (pmacro->name); + free (pmacro); + } + while (pfile->pushed_macros); + } free (pfile); } diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/internal.h --- a/libcpp/internal.h Sun Feb 07 17:43:48 2010 +0900 +++ b/libcpp/internal.h Sun Feb 07 17:44:34 2010 +0900 @@ -305,6 +305,16 @@ struct cset_converter input_cset_desc; }; +/* The list of saved macros by push_macro pragma. */ +struct def_pragma_macro { + /* Chain element to previous saved macro. */ + struct def_pragma_macro *next; + /* Name of the macro. */ + char *name; + /* The stored macro content. */ + cpp_macro *value; +}; + /* A cpp_reader encapsulates the "state" of a pre-processor run. Applying cpp_get_token repeatedly yields a stream of pre-processor tokens. Usually, there is only one cpp_reader object active. */ @@ -474,6 +484,9 @@ /* Table of comments, when state.save_comments is true. */ cpp_comment_table comments; + + /* List of saved macros by push_macro. */ + struct def_pragma_macro *pushed_macros; }; /* Character classes. Based on the more primitive macros in safe-ctype.h. @@ -574,6 +587,7 @@ extern cpp_token *_cpp_lex_direct (cpp_reader *); extern int _cpp_equiv_tokens (const cpp_token *, const cpp_token *); extern void _cpp_init_tokenrun (tokenrun *, unsigned int); +extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *); /* In init.c. */ extern void _cpp_maybe_push_include_file (cpp_reader *); diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/lex.c --- a/libcpp/lex.c Sun Feb 07 17:43:48 2010 +0900 +++ b/libcpp/lex.c Sun Feb 07 17:44:34 2010 +0900 @@ -504,6 +504,57 @@ return false; } +/* Helper function to get the cpp_hashnode of the identifier BASE. */ +static cpp_hashnode * +lex_identifier_intern (cpp_reader *pfile, const uchar *base) +{ + cpp_hashnode *result; + const uchar *cur; + unsigned int len; + unsigned int hash = HT_HASHSTEP (0, *base); + + cur = base + 1; + while (ISIDNUM (*cur)) + { + hash = HT_HASHSTEP (hash, *cur); + cur++; + } + len = cur - base; + hash = HT_HASHFINISH (hash, len); + result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table, + base, len, hash, HT_ALLOC)); + + /* Rarely, identifiers require diagnostics when lexed. */ + if (__builtin_expect ((result->flags & NODE_DIAGNOSTIC) + && !pfile->state.skipping, 0)) + { + /* It is allowed to poison the same identifier twice. */ + if ((result->flags & NODE_POISONED) && !pfile->state.poisoned_ok) + cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"", + NODE_NAME (result)); + + /* Constraint 6.10.3.5: __VA_ARGS__ should only appear in the + replacement list of a variadic macro. */ + if (result == pfile->spec_nodes.n__VA_ARGS__ + && !pfile->state.va_args_ok) + cpp_error (pfile, CPP_DL_PEDWARN, + "__VA_ARGS__ can only appear in the expansion" + " of a C99 variadic macro"); + } + + return result; +} + +/* Get the cpp_hashnode of an identifier specified by NAME in + the current cpp_reader object. If none is found, NULL is returned. */ +cpp_hashnode * +_cpp_lex_identifier (cpp_reader *pfile, const char *name) +{ + cpp_hashnode *result; + result = lex_identifier_intern (pfile, (uchar *) name); + return result; +} + /* Lex an identifier starting at BUFFER->CUR - 1. */ static cpp_hashnode * lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn, diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/pch.c --- a/libcpp/pch.c Sun Feb 07 17:43:48 2010 +0900 +++ b/libcpp/pch.c Sun Feb 07 17:44:34 2010 +0900 @@ -33,6 +33,8 @@ static int collect_ht_nodes (cpp_reader *, cpp_hashnode *, void *); static int write_defs (cpp_reader *, cpp_hashnode *, void *); static int save_macros (cpp_reader *, cpp_hashnode *, void *); +static int _cpp_save_pushed_macros (cpp_reader *, FILE *); +static int _cpp_restore_pushed_macros (cpp_reader *, FILE *); /* This structure represents a macro definition on disk. */ struct macrodef_struct @@ -378,9 +380,140 @@ return -1; } + /* Write saved macros. */ + if (! _cpp_save_pushed_macros (r, f)) + { + cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header"); + return -1; + } + return 0; } +static int +_cpp_restore_pushed_macros (cpp_reader *r, FILE *f) +{ + size_t count_saved = 0; + size_t i; + struct def_pragma_macro *p; + size_t nlen; + cpp_hashnode *h = NULL; + cpp_macro *m; + uchar *defn; + size_t defnlen; + + if (fread (&count_saved, sizeof (count_saved), 1, f) != 1) + return 0; + if (! count_saved) + return 1; + for (i = 0; i < count_saved; i++) + { + if (fread (&nlen, sizeof (nlen), 1, f) != 1) + return 0; + p = XNEW (struct def_pragma_macro); + p->name = XNEWVAR (char, nlen + 1); + p->name[nlen] = 0; + if (fread (p->name, nlen, 1, f) != 1) + return 0; + /* Save old state. */ + m = cpp_push_definition (r, p->name); + if (fread (&defnlen, sizeof (defnlen), 1, f) != 1) + return 0; + defn = XNEWVAR (uchar, defnlen + 2); + defn[defnlen] = '\n'; + defn[defnlen + 1] = 0; + + if (fread (defn, defnlen, 1, f) != 1) + return 0; + cpp_pop_definition (r, p->name, NULL); + { + size_t namelen; + uchar *dn; + + namelen = ustrcspn (defn, "( \n"); + h = cpp_lookup (r, defn, namelen); + dn = defn + namelen; + + h->type = NT_VOID; + h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED); + if (cpp_push_buffer (r, dn, ustrchr (dn, '\n') - dn, true) + != NULL) + { + _cpp_clean_line (r); + if (!_cpp_create_definition (r, h)) + abort (); + _cpp_pop_buffer (r); + } + else + abort (); + } + p->value = cpp_push_definition (r, p->name); + + free (defn); + p->next = r->pushed_macros; + r->pushed_macros = p; + /* Restore current state. */ + cpp_pop_definition (r, p->name, m); + } + return 1; +} + +static int +_cpp_save_pushed_macros (cpp_reader *r, FILE *f) +{ + size_t count_saved = 0; + size_t i; + struct def_pragma_macro *p,**pp; + cpp_hashnode *node; + cpp_macro *m; + size_t defnlen; + const uchar *defn; + + /* Get count. */ + p = r->pushed_macros; + while (p != NULL) + { + count_saved++; + p = p->next; + } + if (fwrite (&count_saved, sizeof (count_saved), 1, f) != 1) + return 0; + if (!count_saved) + return 1; + + pp = (struct def_pragma_macro **) alloca (sizeof (struct def_pragma_macro *) + * count_saved); + /* Store them in reverse order. */ + p = r->pushed_macros; + i = count_saved; + while (p != NULL) + { + --i; + pp[i] = p; + p = p->next; + } + for (i = 0; i < count_saved; i++) + { + /* Save old state. */ + m = cpp_push_definition (r, pp[i]->name); + /* Set temporary macro name to saved state. */ + cpp_pop_definition (r, pp[i]->name, pp[i]->value); + node = _cpp_lex_identifier (r, pp[i]->name); + defnlen = strlen (pp[i]->name); + if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1 + || fwrite (pp[i]->name, defnlen, 1, f) != 1) + return 0; + defn = cpp_macro_definition (r, node); + defnlen = ustrlen (defn); + if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1 + || fwrite (defn, defnlen, 1, f) != 1) + return 0; + /* Restore current state. */ + cpp_pop_definition (r, pp[i]->name, m); + } + return 1; +} + /* Data structure to transform hash table nodes into a sorted list */ @@ -752,6 +885,9 @@ if (!r->counter) r->counter = counter; + /* Read pushed macros. */ + if (! _cpp_restore_pushed_macros (r, f)) + goto error; return 0; error: diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/ChangeLog --- a/libcpp/po/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libcpp/po/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/be.gmo Binary file libcpp/po/be.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/ca.gmo Binary file libcpp/po/ca.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/da.gmo Binary file libcpp/po/da.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/de.gmo Binary file libcpp/po/de.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/el.gmo Binary file libcpp/po/el.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/es.gmo Binary file libcpp/po/es.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/fr.gmo Binary file libcpp/po/fr.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/id.gmo Binary file libcpp/po/id.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/ja.gmo Binary file libcpp/po/ja.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/nl.gmo Binary file libcpp/po/nl.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/sv.gmo Binary file libcpp/po/sv.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/tr.gmo Binary file libcpp/po/tr.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/uk.gmo Binary file libcpp/po/uk.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/vi.gmo Binary file libcpp/po/vi.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/zh_CN.gmo Binary file libcpp/po/zh_CN.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libcpp/po/zh_TW.gmo Binary file libcpp/po/zh_TW.gmo has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libdecnumber/ChangeLog --- a/libdecnumber/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libdecnumber/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libgcc/ChangeLog --- a/libgcc/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libgcc/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libgcc/config/libbid/ChangeLog --- a/libgcc/config/libbid/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libgcc/config/libbid/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libgomp/ChangeLog --- a/libgomp/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libgomp/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,17 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + +2009-11-25 Jakub Jelinek + + PR fortran/42162 + * testsuite/libgomp.fortran/pr42162.f90: New test. + +2009-11-13 Jakub Jelinek + + PR middle-end/42029 + * testsuite/libgomp.c/pr42029.c: New test. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libgomp/libgomp.info Binary file libgomp/libgomp.info has changed diff -r b85a337e5837 -r 3bfb6c00c1e0 libiberty/ChangeLog --- a/libiberty/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libiberty/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libmudflap/ChangeLog --- a/libmudflap/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libmudflap/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,11 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + +2010-01-09 Jakub Jelinek + + * mf-runtime.c (__mf_usage): Update copyright notice dates. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 libmudflap/mf-runtime.c --- a/libmudflap/mf-runtime.c Sun Feb 07 17:43:48 2010 +0900 +++ b/libmudflap/mf-runtime.c Sun Feb 07 17:44:34 2010 +0900 @@ -1,5 +1,5 @@ /* Mudflap: narrow-pointer bounds-checking by tree rewriting. - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009 + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Frank Ch. Eigler and Graydon Hoare @@ -440,7 +440,7 @@ fprintf (stderr, "This is a %s%sGCC \"mudflap\" memory-checked binary.\n" - "Mudflap is Copyright (C) 2002-2009 Free Software Foundation, Inc.\n" + "Mudflap is Copyright (C) 2002-2010 Free Software Foundation, Inc.\n" "\n" "The mudflap code can be controlled by an environment variable:\n" "\n" diff -r b85a337e5837 -r 3bfb6c00c1e0 libssp/ChangeLog --- a/libssp/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/libssp/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released. diff -r b85a337e5837 -r 3bfb6c00c1e0 maintainer-scripts/ChangeLog --- a/maintainer-scripts/ChangeLog Sun Feb 07 17:43:48 2010 +0900 +++ b/maintainer-scripts/ChangeLog Sun Feb 07 17:44:34 2010 +0900 @@ -1,3 +1,7 @@ +2010-01-21 Release Manager + + * GCC 4.4.3 released. + 2009-10-15 Release Manager * GCC 4.4.2 released.