Joseph Myers [Mon, 21 May 2012 20:12:05 +0000 (21:12 +0100)]
re PR c/53418 (ICE at gimplify.c:7773)
PR c/53418
* c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
from folded operands before wrapping another around the
conditional expression.
testsuite:
* gcc.c-torture/compile/pr53418-1.c,
gcc.c-torture/compile/pr53418-2.c: New tests.
PR target/46098
* config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
(avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
(*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
(<sse>_movu<ssemodesuffix>): New expander.
(*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
(avx_movdqu<avxmodesuffix>): New expander.
(*sse2_movdqu): Rename from sse2_movdqu.
(sse2_movdqu): New expander.
Uros Bizjak [Fri, 4 May 2012 17:48:56 +0000 (19:48 +0200)]
backport: re PR target/53228 (target attributes in libcpp/lex.c cause illegal instructions to be used elsewhere)
Backport from mainline
2012-05-04 Uros Bizjak <ubizjak@gmail.com>
PR target/53228
* config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
(TARGET_CMOV): Rename from TARGET_CMOVE.
(TARGET_CMOVE): New define.
* config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
Do not set TARGET_CMOVE here.
re PR target/53199 (__builtin_bswap64 and __builtin_bswap32 generate errors if -mcpu=power6)
[gcc]
2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/53199
* config/rs6000/rs6000.md (bswapdi splitters): If
-mavoid-indexed-addresses (or -mcpu=power6 which sets it by
default) is used, generate an alternate sequence that does not
depend on using indexed addressing.
[gcc/testsuite]
2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/53199
* gcc.target/powwerpc/pr53199.c: New file.
Michael Meissner [Fri, 13 Apr 2012 21:55:15 +0000 (21:55 +0000)]
re PR target/52775 (Change default for using FCFID instruction)
[gcc]
2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/52775
* config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
the list of options to enable the FCFID instruction.
(TARGET_EXTRA_BUILTINS): Adjust comment.
[gcc/testsuite]
2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/52775
* gcc.target/powerpc/pr52775.c: New file.
Fix PR52822 by explicitly checking for object identity before move-assigning.
Fix PR52822 by explicitly checking for object identity before
move-assigning. This is a simpler fix than was committed to 4.7 and
4.8.
2012-04-12 Jeffrey Yasskin <jyasskin@google.com>
PR libstdc++/52822
* include/bits/stl_algo.h (__stable_partition_adaptive): Avoid
move-assigning an object to itself by explicitly testing for
identity.
* testsuite/25_algorithms/stable_partition/pr52822.cc: Test
vectors, which have a destructive self-move-assignment.
* testsuite/25_algorithms/stable_partition/moveable.cc (test02):
Test with rvalstruct, which explicitly checks
self-move-assignment.
re PR middle-end/52894 (Stage1 bootstrap fails with gcc-4.6.3: Infinite loop in pointer_set_insert)
PR middle-end/52894
* varasm.c (process_pending_assemble_externals): Set
pending_assemble_externals_processed true.
(assemble_external): Call assemble_external_real if the pending
assemble externals have been processed.
Uros Bizjak [Thu, 29 Mar 2012 19:19:26 +0000 (21:19 +0200)]
backport: re PR target/52698 (-maddress-mode=long doesn't work)
Backported from mainline
2012-03-27 Uros Bizjak <ubizjak@gmail.com>
PR target/52698
* config/i386/i386-protos.h (ix86_legitimize_reload_address):
New prototype.
* config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
* config/i386/i386.c: Include reload.h.
(ix86_legitimize_reload_address): New function.
Joey Ye [Thu, 29 Mar 2012 02:15:29 +0000 (02:15 +0000)]
backport: [multiple changes]
2012-03-28 Joey Ye <joey.ye@arm.com>
Backported from mainline
2011-12-20 Bernd Schmidt <bernds@codesourcery.com>
PR middle-end/51200
* expr.c (store_field): Avoid a direct store if the mode is larger
than the size of the bit field.
* stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
treat non-volatile bit fields like volatile ones.
* toplev.c (process_options): Disallow combination of
-fstrict-volatile-bitfields and ABI versions less than 2.
* config/arm/arm.c (arm_option_override): Don't enable
flag_strict_volatile_bitfields if the ABI version is less than 2.
* config/h8300/h8300.c (h8300_option_override): Likewise.
* config/rx/rx.c (rx_option_override): Likewise.
* config/m32c/m32c.c (m32c_option_override): Likewise.
* config/sh/sh.c (sh_option_override): Likewise.
2011-12-22 Joey Ye <joey.ye@arm.com>
* toplev.c (process_options): Fix typo.
testcases:
Backported from mainline
2011-12-20 Bernd Schmidt <bernds@codesourcery.com>
PR middle-end/51200
* gcc.target/arm/volatile-bitfields-4.c: New test.
* c-c++-common/abi-bf.c: New test.
2011-12-26 Joey Ye <joey.ye@arm.com>
PR middle-end/51200
* gcc.dg/volatile-bitfields-2.c: New test.
Steven Bosscher [Sat, 24 Mar 2012 13:47:46 +0000 (13:47 +0000)]
re PR middle-end/52640 (performance bottleneck: gcc/tree.c;value_member)
gcc/
PR middle-end/52640
* varasm.c: Include pointer-set.h.
(pending_assemble_externals_set): New pointer set.
(process_pending_assemble_externals): Destroy the pointer set.
(assemble_external): See if decl is in pending_assemble_externals_set,
and add it to pending_assemble_externals if necessary.
(init_varasm_once): Allocate pending_assemble_externals_set.
testsuite/
PR middle-end/52640
* gcc.c-torture/compile/limits-externdecl.c: New test.