summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rs6000: New attributes for load/store: "sign_extend", "update" and "indexed"Segher Boessenkool2014-05-0831-757/+647
| | | | | | | | | | | | | | | | | | | | | | The new attributes replace the instruction types *_ext*, *_u, *_ux. This simplifies all code that does not care about the addressing modes, putting the burden on the code that does care (mostly the scheduling descriptions for certain CPUs). It fixes a few minor bugs in the process. The "update" and "indexed" attributes are automatic for any insn that has a MEM as operand 0 or 1. Other insns have to set it manually, if they do not like the default (which is "no"). Insns that are type load/store/fpload/fpstore but have fewer than two operands need to set it too, or the compiler will crash. There are very few of those. This tries not to change semantics anywhere; in particular, the string and multiple instructions set both "update" and "indexed" (although they are neither). From-SVN: r210190
* mksysinfo: Define CLONE flags.Ian Lance Taylor2014-05-074-2/+12
| | | | From-SVN: r210189
* re PR target/60884 ([SH] improve inlined strlen-like builtin functions)Oleg Endo2014-05-074-33/+23
| | | | | | | | | | | | | | gcc/ PR target/60884 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting unrolled byte insns. Emit address increments after move insns. gcc/testsuite/ PR target/60884 * gcc.target/sh/pr53976-1.c (test_02): Remove inappropriate test case. (test_03): Rename to test_02. From-SVN: r210187
* Const-correctness of gimple_call_builtin_pDavid Malcolm2014-05-073-8/+17
| | | | | | | | | | | | | | gcc/ 2014-05-07 David Malcolm <dmalcolm@redhat.com> * gimple.h (gimple_builtin_call_types_compatible_p): Accept a const_gimple, rather than a gimple. (gimple_call_builtin_p): Likewise, for the three variants. * gimple.c (gimple_builtin_call_types_compatible_p): Likewise. (gimple_call_builtin_p): Likewise, for the three variants. From-SVN: r210185
* re PR c++/61083 ([C++11] Ambiguous member pointer results in failure, even ↵Paolo Carlini2014-05-074-41/+108
| | | | | | | | | | | | | | | | | | | if used in SFINAE.) /cp 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/61083 * pt.c (convert_nontype_argument): Protect all the error calls with complain & tf_error. /testsuite 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/61083 * g++.dg/cpp0x/sfinae50.C: New. From-SVN: r210184
* re PR sanitizer/61095 (miscompile: tsan is broken in gcc trunk, works in 4.9)Richard Sandiford2014-05-072-1/+7
| | | | | | | | gcc/ PR tree-optimization/61095 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi. From-SVN: r210181
* MAINTAINERS (Write After Approval): Add myself.Charles Baylis2014-05-072-0/+5
| | | | | | | | 2014-05-07 Charles Baylis <charles.baylis@linaro.org> * MAINTAINERS (Write After Approval): Add myself. From-SVN: r210164
* re PR libstdc++/61086 (ubsan detects undefined behaviour in the standard ↵Jonathan Wakely2014-05-079-27/+37
| | | | | | | | | | | | | | | | | | | | | | library) PR libstdc++/61086 * include/bits/stl_iterator.h (__normal_iterator::_M_const_cast): Remove. * include/bits/stl_vector.h (vector::insert, vector::erase): Use arithmetic to obtain a mutable iterator from const_iterator. * include/bits/vector.tcc (vector::insert): Likewise. * include/debug/vector (vector::erase): Likewise. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Adjust dg-error line number. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Likewise. From-SVN: r210162
* re PR c++/61080 (Spurious no return statement warning with deleted operators)Paolo Carlini2014-05-074-16/+70
| | | | | | | | | | | | | | | | | /cp 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/61080 * pt.c (instantiate_decl): Avoid generating the body of a deleted function. /testsuite 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/61080 * g++.dg/cpp0x/deleted7.C: New. From-SVN: r210161
* re PR tree-optimization/61034 (Optimizing takes too many passes)Richard Biener2014-05-077-18/+145
| | | | | | | | | | | | | | | | | | | | | | | | | 2014-05-07 Richard Biener <rguenther@suse.de> PR tree-optimization/61034 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export. (maybe_skip_until): Use translate to take into account lattices when trying to do disambiguations. (get_continuation_for_phi_1): Likewise. (get_continuation_for_phi): Adjust for added translate arguments. (walk_non_aliased_vuses): Likewise. * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype. (walk_non_aliased_vuses): Likewise. (call_may_clobber_ref_p_1): Declare. * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against calls. Stop early if we are only supposed to disambiguate. * tree-ssa-pre.c (translate_vuse_through_block): Adjust. * g++.dg/tree-ssa/pr61034.C: New testcase. From-SVN: r210160
* re PR libstdc++/61023 (set/map move assignment doesn't move (or copy) the ↵Jonathan Wakely2014-05-073-0/+64
| | | | | | | | | | | comparator) PR libstdc++/61023 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): Copy the comparison function. * testsuite/23_containers/set/cons/61023.cc: New. From-SVN: r210159
* epiphany.c (epiphany_handle_interrupt_attribute): Emit an error when the ↵Joern Rennecke2014-05-074-3/+34
| | | | | | | | | | | | function has arguments. gcc: * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute): Emit an error when the function has arguments. gcc/testsuite: * gcc.target/epiphany/isr-arg.c: New file. From-SVN: r210157
* More gcc/loop-unswitch.c cleanup.Thomas Schwinge2014-05-074-9/+9
| | | | | | | | | gcc/ * cfgloop.h (unswitch_loops): Remove. * doc/passes.texi: Remove references to loop-unswitch.c * timevar.def (TV_LOOP_UNSWITCH): Remove. From-SVN: r210156
* re PR tree-optimization/52252 (An opportunity for x86 gcc vectorizer (gain ↵Evgeny Stupachenko2014-05-075-44/+184
| | | | | | | | | | | | | | | | | | up to 3 times)) gcc/ * tree-vect-data-refs.c (vect_grouped_load_supported): New check for loads group of length 3. (vect_permute_load_chain): New permutations for loads group of length 3. * tree-vect-stmts.c (vect_model_load_cost): Change cost of vec_perm_shuffle for the new permutations. gcc/testsuite/ PR tree-optimization/52252 * gcc.dg/vect/pr52252-ld.c: Test on loads group of size 3. From-SVN: r210155
* Add execution + assembler tests of AArch64 REV Neon Intrinsics.Alan Lawrence2014-05-0773-0/+1227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc.target/aarch64/simd/vrev16p8_1.c: New file. * gcc.target/aarch64/simd/vrev16p8.x: New file. * gcc.target/aarch64/simd/vrev16qp8_1.c: New file. * gcc.target/aarch64/simd/vrev16qp8.x: New file. * gcc.target/aarch64/simd/vrev16qs8_1.c: New file. * gcc.target/aarch64/simd/vrev16qs8.x: New file. * gcc.target/aarch64/simd/vrev16qu8_1.c: New file. * gcc.target/aarch64/simd/vrev16qu8.x: New file. * gcc.target/aarch64/simd/vrev16s8_1.c: New file. * gcc.target/aarch64/simd/vrev16s8.x: New file. * gcc.target/aarch64/simd/vrev16u8_1.c: New file. * gcc.target/aarch64/simd/vrev16u8.x: New file. * gcc.target/aarch64/simd/vrev32p16_1.c: New file. * gcc.target/aarch64/simd/vrev32p16.x: New file. * gcc.target/aarch64/simd/vrev32p8_1.c: New file. * gcc.target/aarch64/simd/vrev32p8.x: New file. * gcc.target/aarch64/simd/vrev32qp16_1.c: New file. * gcc.target/aarch64/simd/vrev32qp16.x: New file. * gcc.target/aarch64/simd/vrev32qp8_1.c: New file. * gcc.target/aarch64/simd/vrev32qp8.x: New file. * gcc.target/aarch64/simd/vrev32qs16_1.c: New file. * gcc.target/aarch64/simd/vrev32qs16.x: New file. * gcc.target/aarch64/simd/vrev32qs8_1.c: New file. * gcc.target/aarch64/simd/vrev32qs8.x: New file. * gcc.target/aarch64/simd/vrev32qu16_1.c: New file. * gcc.target/aarch64/simd/vrev32qu16.x: New file. * gcc.target/aarch64/simd/vrev32qu8_1.c: New file. * gcc.target/aarch64/simd/vrev32qu8.x: New file. * gcc.target/aarch64/simd/vrev32s16_1.c: New file. * gcc.target/aarch64/simd/vrev32s16.x: New file. * gcc.target/aarch64/simd/vrev32s8_1.c: New file. * gcc.target/aarch64/simd/vrev32s8.x: New file. * gcc.target/aarch64/simd/vrev32u16_1.c: New file. * gcc.target/aarch64/simd/vrev32u16.x: New file. * gcc.target/aarch64/simd/vrev32u8_1.c: New file. * gcc.target/aarch64/simd/vrev32u8.x: New file. * gcc.target/aarch64/simd/vrev64f32_1.c: New file. * gcc.target/aarch64/simd/vrev64f32.x: New file. * gcc.target/aarch64/simd/vrev64p16_1.c: New file. * gcc.target/aarch64/simd/vrev64p16.x: New file. * gcc.target/aarch64/simd/vrev64p8_1.c: New file. * gcc.target/aarch64/simd/vrev64p8.x: New file. * gcc.target/aarch64/simd/vrev64qf32_1.c: New file. * gcc.target/aarch64/simd/vrev64qf32.x: New file. * gcc.target/aarch64/simd/vrev64qp16_1.c: New file. * gcc.target/aarch64/simd/vrev64qp16.x: New file. * gcc.target/aarch64/simd/vrev64qp8_1.c: New file. * gcc.target/aarch64/simd/vrev64qp8.x: New file. * gcc.target/aarch64/simd/vrev64qs16_1.c: New file. * gcc.target/aarch64/simd/vrev64qs16.x: New file. * gcc.target/aarch64/simd/vrev64qs32_1.c: New file. * gcc.target/aarch64/simd/vrev64qs32.x: New file. * gcc.target/aarch64/simd/vrev64qs8_1.c: New file. * gcc.target/aarch64/simd/vrev64qs8.x: New file. * gcc.target/aarch64/simd/vrev64qu16_1.c: New file. * gcc.target/aarch64/simd/vrev64qu16.x: New file. * gcc.target/aarch64/simd/vrev64qu32_1.c: New file. * gcc.target/aarch64/simd/vrev64qu32.x: New file. * gcc.target/aarch64/simd/vrev64qu8_1.c: New file. * gcc.target/aarch64/simd/vrev64qu8.x: New file. * gcc.target/aarch64/simd/vrev64s16_1.c: New file. * gcc.target/aarch64/simd/vrev64s16.x: New file. * gcc.target/aarch64/simd/vrev64s32_1.c: New file. * gcc.target/aarch64/simd/vrev64s32.x: New file. * gcc.target/aarch64/simd/vrev64s8_1.c: New file. * gcc.target/aarch64/simd/vrev64s8.x: New file. * gcc.target/aarch64/simd/vrev64u16_1.c: New file. * gcc.target/aarch64/simd/vrev64u16.x: New file. * gcc.target/aarch64/simd/vrev64u32_1.c: New file. * gcc.target/aarch64/simd/vrev64u32.x: New file. * gcc.target/aarch64/simd/vrev64u8_1.c: New file. * gcc.target/aarch64/simd/vrev64u8.x: New file. From-SVN: r210153
* Add execution + assembler tests of AArch64 EXT intrinsics.Alan Lawrence2014-05-0747-0/+2229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc.target/aarch64/simd/ext_f32.x: New file. gcc.target/aarch64/simd/ext_f32_1.c: New file. gcc.target/aarch64/simd/ext_p16.x: New file. gcc.target/aarch64/simd/ext_p16_1.c: New file. gcc.target/aarch64/simd/ext_p8.x: New file. gcc.target/aarch64/simd/ext_p8_1.c: New file. gcc.target/aarch64/simd/ext_s16.x: New file. gcc.target/aarch64/simd/ext_s16_1.c: New file. gcc.target/aarch64/simd/ext_s32.x: New file. gcc.target/aarch64/simd/ext_s32_1.c: New file. gcc.target/aarch64/simd/ext_s64.x: New file. gcc.target/aarch64/simd/ext_s64_1.c: New file. gcc.target/aarch64/simd/ext_s8.x: New file. gcc.target/aarch64/simd/ext_s8_1.c: New file. gcc.target/aarch64/simd/ext_u16.x: New file. gcc.target/aarch64/simd/ext_u16_1.c: New file. gcc.target/aarch64/simd/ext_u32.x: New file. gcc.target/aarch64/simd/ext_u32_1.c: New file. gcc.target/aarch64/simd/ext_u64.x: New file. gcc.target/aarch64/simd/ext_u64_1.c: New file. gcc.target/aarch64/simd/ext_u8.x: New file. gcc.target/aarch64/simd/ext_u8_1.c: New file. gcc.target/aarch64/simd/ext_f64.c: New file. gcc.target/aarch64/simd/extq_f32.x: New file. gcc.target/aarch64/simd/extq_f32_1.c: New file. gcc.target/aarch64/simd/extq_p16.x: New file. gcc.target/aarch64/simd/extq_p16_1.c: New file. gcc.target/aarch64/simd/extq_p8.x: New file. gcc.target/aarch64/simd/extq_p8_1.c: New file. gcc.target/aarch64/simd/extq_s16.x: New file. gcc.target/aarch64/simd/extq_s16_1.c: New file. gcc.target/aarch64/simd/extq_s32.x: New file. gcc.target/aarch64/simd/extq_s32_1.c: New file. gcc.target/aarch64/simd/extq_s64.x: New file. gcc.target/aarch64/simd/extq_s64_1.c: New file. gcc.target/aarch64/simd/extq_s8.x: New file. gcc.target/aarch64/simd/extq_s8_1.c: New file. gcc.target/aarch64/simd/extq_u16.x: New file. gcc.target/aarch64/simd/extq_u16_1.c: New file. gcc.target/aarch64/simd/extq_u32.x: New file. gcc.target/aarch64/simd/extq_u32_1.c: New file. gcc.target/aarch64/simd/extq_u64.x: New file. gcc.target/aarch64/simd/extq_u64_1.c: New file. gcc.target/aarch64/simd/extq_u8.x: New file. gcc.target/aarch64/simd/extq_u8_1.c: New file. gcc.target/aarch64/simd/extq_f64.c: New file. From-SVN: r210152
* Reimplement AArch64 TRN intrinsics with __builtin_shuffle.Alan Lawrence2014-05-076-468/+455
| | | | | | | | | | | | | | | | | | | | | gcc/testsuite/ChangeLog: * gcc.target/aarch64/vtrns32.c: Expect zip[12] insn rather than trn[12]. * gcc.target/aarch64/vtrnu32.c: Likewise. * gcc.target/aarch64/vtrnf32.c: Likewise. gcc/ChangeLog: * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8, vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32, vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32, vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32, vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8, vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16, vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16, vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle. From-SVN: r210151
* Really delete gcc/loop-unswitch.c.Thomas Schwinge2014-05-072-478/+4
| | | | | | | gcc/ * loop-unswitch.c: Delete. From-SVN: r210150
* configure.ac: Always set need_64bit_hwint to yes.Richard Biener2014-05-075-3/+12
| | | | | | | | | | | | 2014-05-07 Richard Biener <rguenther@suse.de> libcpp/ * configure.ac: Always set need_64bit_hwint to yes. * configure: Regenerated. * config.gcc: Always set need_64bit_hwint to yes. From-SVN: r210149
* Add execution + assembler tests of AArch64 TRN Intrinsics.Alan Lawrence2014-05-0737-0/+726
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc.target/aarch64/simd/vtrnf32_1.c: New file. * gcc.target/aarch64/simd/vtrnf32.x: New file. * gcc.target/aarch64/simd/vtrnp16_1.c: New file. * gcc.target/aarch64/simd/vtrnp16.x: New file. * gcc.target/aarch64/simd/vtrnp8_1.c: New file. * gcc.target/aarch64/simd/vtrnp8.x: New file. * gcc.target/aarch64/simd/vtrnqf32_1.c: New file. * gcc.target/aarch64/simd/vtrnqf32.x: New file. * gcc.target/aarch64/simd/vtrnqp16_1.c: New file. * gcc.target/aarch64/simd/vtrnqp16.x: New file. * gcc.target/aarch64/simd/vtrnqp8_1.c: New file. * gcc.target/aarch64/simd/vtrnqp8.x: New file. * gcc.target/aarch64/simd/vtrnqs16_1.c: New file. * gcc.target/aarch64/simd/vtrnqs16.x: New file. * gcc.target/aarch64/simd/vtrnqs32_1.c: New file. * gcc.target/aarch64/simd/vtrnqs32.x: New file. * gcc.target/aarch64/simd/vtrnqs8_1.c: New file. * gcc.target/aarch64/simd/vtrnqs8.x: New file. * gcc.target/aarch64/simd/vtrnqu16_1.c: New file. * gcc.target/aarch64/simd/vtrnqu16.x: New file. * gcc.target/aarch64/simd/vtrnqu32_1.c: New file. * gcc.target/aarch64/simd/vtrnqu32.x: New file. * gcc.target/aarch64/simd/vtrnqu8_1.c: New file. * gcc.target/aarch64/simd/vtrnqu8.x: New file. * gcc.target/aarch64/simd/vtrns16_1.c: New file. * gcc.target/aarch64/simd/vtrns16.x: New file. * gcc.target/aarch64/simd/vtrns32_1.c: New file. * gcc.target/aarch64/simd/vtrns32.x: New file. * gcc.target/aarch64/simd/vtrns8_1.c: New file. * gcc.target/aarch64/simd/vtrns8.x: New file. * gcc.target/aarch64/simd/vtrnu16_1.c: New file. * gcc.target/aarch64/simd/vtrnu16.x: New file. * gcc.target/aarch64/simd/vtrnu32_1.c: New file. * gcc.target/aarch64/simd/vtrnu32.x: New file. * gcc.target/aarch64/simd/vtrnu8_1.c: New file. * gcc.target/aarch64/simd/vtrnu8.x: New file. From-SVN: r210148
* re PR tree-optimization/57864 (ICE in bitmap_set_replace_value, at ↵Richard Biener2014-05-072-0/+42
| | | | | | | | | | | tree-ssa-pre.c:862) 2014-05-07 Richard Biener <rguenther@suse.de> PR tree-optimization/57864 * gcc.dg/torture/pr57864.c: New testcase. From-SVN: r210142
* re PR c++/60999 (ICE when static_cast from constexpr in specialization of ↵Paolo Carlini2014-05-071-0/+6
| | | | | | | | | | | | | | | | | | | | template-class) /cp 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60999 * pt.c (maybe_begin_member_template_processing): Use uses_template_parms. /testsuite 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60999 * g++.dg/cpp0x/nsdmi-template9.C: New. * g++.dg/cpp0x/nsdmi-template10.C: Likewise. From-SVN: r210140
* Fix date in ChangeLog.Chung-Ju Wu2014-05-071-1/+1
| | | | From-SVN: r210138
* nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor of using optimize_size.Chung-Ju Wu2014-05-072-1/+6
| | | | | | | * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor of using optimize_size. From-SVN: r210137
* re PR libfortran/61049 (NIST test FM906 fails)Jerry DeLisle2014-05-072-0/+18
| | | | | | | | | 2014-05-06 Jerry DeLisle <jvdelisle@gcc.gnu> PR libfortran/61049 * gfortran.dg/list_read_13.f: New test. From-SVN: r210135
* re PR libfortran/61049 (NIST test FM906 fails)Jerry DeLisle2014-05-072-14/+8
| | | | | | | | | | 2014-05-06 Jerry DeLisle <jvdelisle@gcc.gnu> PR libfortran/61049 * io/list_read.c (list_formatted_read_scalar): Use eat_separator and delete extraneous code. From-SVN: r210134
* Makefile.in: Regenerate.Paolo Carlini2014-05-072-0/+5
| | | | | | | | 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com> * include/Makefile.in: Regenerate. From-SVN: r210133
* Daily bump.GCC Administrator2014-05-071-1/+1
| | | | From-SVN: r210132
* * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.Mike Stump2014-05-062-2/+4
| | | | From-SVN: r210128
* re PR c++/60999 (ICE when static_cast from constexpr in specialization of ↵Paolo Carlini2014-05-064-3/+43
| | | | | | | | | | | | | | | | | | | | template-class) /cp 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60999 * pt.c (maybe_begin_member_template_processing): Use uses_template_parms. /testsuite 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60999 * g++.dg/cpp0x/nsdmi-template9.C: New. * g++.dg/cpp0x/nsdmi-template10.C: Likewise. From-SVN: r210126
* * config/i386/sse.md (*mov<mode>_internal)Joseph Myers2014-05-062-13/+30
| | | | | | | | | | | (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>) (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>) (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3) (*<code><mode>3, *andnot<mode>3<mask_name>) (<mask_codefor><code><mode>3<mask_name>): Only consider TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16. From-SVN: r210124
* macros.h [...]: Add parameter to pass the 2 instances to check allocator ↵François Dumont2014-05-0673-1366/+2934
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | equality. 2014-05-06 François Dumont <fdumont@gcc.gnu.org> * include/debug/macros.h [__glibcxx_check_equal_allocs]: Add parameter to pass the 2 instances to check allocator equality. * include/debug/safe_container.h: New, define _Safe_container<>. * include/Makefile.am: Add previous. * include/debug/deque (std::__debug::deque<>): Inherit _Safe_container<>. Use default implementation for all special functions. * include/debug/forward_list (std::__debug::forward_list<>): Likewise. * include/debug/list (std::__debug::list<>): Likewise. * include/debug/map.h (std::__debug::map<>): Likewise. * include/debug/multimap.h (std::__debug::multimap<>): Likewise. * include/debug/set.h (std::__debug::set<>): Likewise. * include/debug/multiset.h (std::__debug::multiset<>): Likewise. * include/debug/string (std::__debug::basic_string<>): Likewise. * include/debug/unordered_map (std::__debug::unordered_map<>): Likewise. (std::__debug::unordered_multimap<>): Likewise. * include/debug/unordered_set (std::__debug::unordered_set<>): Likewise. (std::__debug::unordered_multiset<>): Likewise. * include/debug/vector (std::__debug::vector<>): Likewise. * include/debug/safe_base.h (_Safe_sequence_base()): Add noexcept. (_Safe_sequence_base(_Safe_sequence_base&&): Remove. (~_Safe_sequence_base()): Add noexcept. * include/debug/safe_sequence.h (std::__debug::_Safe_node_sequence<>): New. * include/debug/safe_unordered_base.h (_Safe_unordered_container_base()): Add noexcept. (~_Safe_unordered_container_base()): Likewise. (_M_swap(_Safe_unordered_container_base&)): Likewise. * include/debug/safe_unordered_container.h: (_Safe_unordered_container<>::_M_invalidate_locals()): New. (_Safe_unordered_container<>::_M_invalidate_all()): New. * src/c++11/debug.cc: Limit includes, adapt methods noexcept qualifications. * testsuite/util/debug/checks.h (check_construct1): Just implement an invalid constructor invocation and no other operations potentially not supported by some types of container. (check_construct2): Likewise. (check_construct3): Likewise. * testsuite/23_containers/forward_list/allocator/move.cc: Add check on iterators to make sure they are correctly moved in debug mode. * testsuite/23_containers/forward_list/allocator/move_assign.cc: Likewise. * testsuite/23_containers/map/allocator/move.cc: Likewise. * testsuite/23_containers/map/allocator/move_assign.cc: Likewise. * testsuite/23_containers/multimap/allocator/move.cc: Likewise. * testsuite/23_containers/multimap/allocator/move_assign.cc: Likewise. * testsuite/23_containers/multiset/allocator/move.cc: Likewise. * testsuite/23_containers/multiset/allocator/move_assign.cc: Likewise. * testsuite/23_containers/set/allocator/move.cc: Likewise. * testsuite/23_containers/set/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/move.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/move_assign.cc: Likewise. * testsuite/23_containers/forward_list/debug/construct1_neg.cc: New. * testsuite/23_containers/forward_list/debug/construct2_neg.cc: New. * testsuite/23_containers/forward_list/debug/construct3_neg.cc: New. * testsuite/23_containers/forward_list/debug/construct4_neg.cc: New. * testsuite/23_containers/forward_list/debug/move_assign_neg.cc: New. * testsuite/23_containers/forward_list/debug/move_neg.cc: New. * testsuite/23_containers/map/debug/construct5_neg.cc: New. * testsuite/23_containers/map/debug/move_assign_neg.cc: New. * testsuite/23_containers/map/debug/move_neg.cc: New. * testsuite/23_containers/multimap/debug/construct5_neg.cc: New. * testsuite/23_containers/multimap/debug/move_assign_neg.cc: New. * testsuite/23_containers/multimap/debug/move_neg.cc: New. * testsuite/23_containers/multiset/debug/construct5_neg.cc: New. * testsuite/23_containers/multiset/debug/move_assign_neg.cc: New. * testsuite/23_containers/multiset/debug/move_neg.cc: New. * testsuite/23_containers/set/debug/construct5_neg.cc: New. * testsuite/23_containers/set/debug/move_assign_neg.cc: New. * testsuite/23_containers/set/debug/move_neg.cc: New. * testsuite/23_containers/unordered_map/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_map/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_map/debug/move_neg.cc: New. * testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_multimap/debug/move_neg.cc: New. * testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_multiset/debug/move_neg.cc: New. * testsuite/23_containers/unordered_set/debug/construct5_neg.cc: New. * testsuite/23_containers/unordered_set/debug/move_assign_neg.cc: New. * testsuite/23_containers/unordered_set/debug/move_neg.cc: New. * testsuite/23_containers/vector/debug/move_neg.cc: New. From-SVN: r210123
* compiler: Use backend interface for expressions.Chris Manghane2014-05-0610-718/+554
| | | | | | | | | | | | | | | | | | * go-gcc.cc (Gcc_backend::nil_pointer_expression): New method. (Gcc_backend::boolean_constant_expression): New method. (Gcc_backend::zero_expression): Use this->make_expression rather than tree_to_expr. (Gcc_backend::var_expression): Likewise. (Gcc_backend::integer_constant_expression): Likewise. (Gcc_backend::float_constant_expression): Likewise. (Gcc_backend::complex_constant_expression): Likewise. (Gcc_backend::struct_field_expression): Likewise. (tree_to_type, tree_to_expr, tree_to_stat): Remove functions. (tree_to_function, tree_to_block): Remove functions. (type_to_tree, expr_to_tree, stat_to_tree): Remove functions. (block_to_tree, var_to_tree, function_to_tree): Remove functions. From-SVN: r210122
* revert: lra-constraints.c (valid_address_p): Move earlier in file.Richard Sandiford2014-05-062-92/+71
| | | | | | | | | | | | | | | | gcc/ Revert: 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com> * lra-constraints.c (valid_address_p): Move earlier in file. Add a constraint argument to the address_info version. (satisfies_memory_constraint_p): New function. (satisfies_address_constraint_p): Likewise. (process_alt_operands, curr_insn_transform): Use them. (process_address): Pass the constraint to valid_address_p when checking address operands. From-SVN: r210121
* lto-cgraph.c (compute_ltrans_boundary): Make node variables local to their ↵Richard Sandiford2014-05-062-4/+8
| | | | | | | | | | respective blocks. gcc/ * lto-cgraph.c (compute_ltrans_boundary): Make node variables local to their respective blocks. Fix inadvertent use of "node". From-SVN: r210120
* boehm.c (mark_reference_fields): Don't update the mask when setting ↵Richard Sandiford2014-05-062-9/+14
| | | | | | | | | | pointer_after_end. gcc/java/ * boehm.c (mark_reference_fields): Don't update the mask when setting pointer_after_end. From-SVN: r210119
* emit-rtl.c (init_derived_machine_modes): New functionm, split out from...Richard Sandiford2014-05-064-30/+36
| | | | | | | | | | | gcc/ * emit-rtl.c (init_derived_machine_modes): New functionm, split out from... (init_emit_once): ...here. * rtl.h (init_derived_machine_modes): Declare. * toplev.c (do_compile): Call it even if no_backend. From-SVN: r210118
* Update ChangeLogs for wide-int work.Kenneth Zadeck2014-05-0612-899/+920
| | | | | | | | Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com> Co-Authored-By: Mike Stump <mikestump@comcast.net> Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com> From-SVN: r210116
* Merge in wide-int.Kenneth Zadeck2014-05-06195-4876/+11301
| | | | From-SVN: r210113
* compiler: Store flags for division checks in Gogo object instead of using ↵Chris Manghane2014-05-066-11/+49
| | | | | | | | | | | global variables. * go-c.h (go_create_gogo): Update declaration to add check_divide_zero and check_divide_overflow parameters. * go-lang.c (go_langhook_init): Pass new arguments to go_create_gogo. From-SVN: r210109
* avr.c (avr_can_eliminate): Mark unused argument.Jan-Benedict Glaw2014-05-062-1/+5
| | | | | | | | 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de> * config/avr/avr.c (avr_can_eliminate): Mark unused argument. From-SVN: r210108
* tree-pass.h (TODO_verify_ssa, [...]): Remove.Richard Biener2014-05-0686-184/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2014-05-06 Richard Biener <rguenther@suse.de> * tree-pass.h (TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts, TODO_verify_rtl_sharing): Remove. (TODO_verify_all): Adjust. * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts and TODO_verify_rtl_sharing. * bb-reorder.c: Likewise. * cfgexpand.c: Likewise. * cprop.c: Likewise. * cse.c: Likewise. * function.c: Likewise. * fwprop.c: Likewise. * gcse.c: Likewise. * gimple-ssa-isolate-paths.c: Likewise. * gimple-ssa-strength-reduction.c: Likewise. * ipa-split.c: Likewise. * loop-init.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * modulo-sched.c: Likewise. * postreload-gcse.c: Likewise. * predict.c: Likewise. * recog.c: Likewise. * sched-rgn.c: Likewise. * store-motion.c: Likewise. * tracer.c: Likewise. * trans-mem.c: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-complex.c: Likewise. * tree-eh.c: Likewise. * tree-emutls.c: Likewise. * tree-if-conv.c: Likewise. * tree-into-ssa.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-object-size.c: Likewise. * tree-parloops.c: Likewise. * tree-pass.h: Likewise. * tree-sra.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-copy.c: Likewise. * tree-ssa-copyrename.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-dse.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-ifcombine.c: Likewise. * tree-ssa-loop-ch.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sink.c: Likewise. * tree-ssa-strlen.c: Likewise. * tree-ssa-tail-merge.c: Likewise. * tree-ssa-uncprop.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-tailcall.c: Likewise. * tree-vect-generic.c: Likewise. * tree-vectorizer.c: Likewise. * tree-vrp.c: Likewise. * tsan.c: Likewise. * var-tracking.c: Likewise. * bt-load.c: Likewise. * cfgcleanup.c: Likewise. * combine-stack-adj.c: Likewise. * combine.c: Likewise. * compare-elim.c: Likewise. * config/epiphany/resolve-sw-modes.c: Likewise. * config/i386/i386.c: Likewise. * config/mips/mips.c: Likewise. * config/s390/s390.c: Likewise. * config/sh/sh_treg_combine.cc: Likewise. * config/sparc/sparc.c: Likewise. * dce.c: Likewise. * dse.c: Likewise. * final.c: Likewise. * ifcvt.c: Likewise. * mode-switching.c: Likewise. * passes.c: Likewise. * postreload.c: Likewise. * ree.c: Likewise. * reg-stack.c: Likewise. * regcprop.c: Likewise. * regrename.c: Likewise. * web.c: Likewise. From-SVN: r210106
* c-opts.c (c_common_post_options): For -freestanding...Richard Biener2014-05-062-0/+12
| | | | | | | | | | | 2014-05-06 Richard Biener <rguenther@suse.de> c-family/ * c-opts.c (c_common_post_options): For -freestanding, -fno-hosted and -fno-builtin disable pattern recognition if not enabled explicitely. From-SVN: r210100
* re PR debug/61070 (debug_bitmap writes to stdout)Richard Biener2014-05-063-3/+9
| | | | | | | | | | 2014-05-06 Richard Biener <rguenther@suse.de> PR middle-end/61070 * bitmap.c (debug_bitmap): Dump to stderr, not stdout. * tree-ssa-structalias.c (dump_solution_for_var): Likewise. From-SVN: r210098
* compiler: Fix bug in embedded method handling.Ian Lance Taylor2014-05-062-21/+26
| | | | | | | | | | | | If the same type was embedded in a struct at different levels, only the first embedded instance was considered when building the set of all methods. A second instance was ignored, even if it was at a higher level and should therefore override the first instance. Test case is bug485.go in master repository. From-SVN: r210096
* compiler: Use backend interface for array length.Ian Lance Taylor2014-05-062-62/+48
| | | | From-SVN: r210093
* Daily bump.GCC Administrator2014-05-061-1/+1
| | | | From-SVN: r210092
* compiler: Use backend interface for slice construction.Chris Manghane2014-05-065-111/+96
| | | | | | | * go-gcc.cc (Gcc_backend::implicit_variable): Rename from gc_root_variable. Add name and is_constant parameters. From-SVN: r210088
* compiler: Handle recursive pointer types for unary indirection.Chris Manghane2014-05-055-32/+58
| | | | | | | | * go-gcc.cc (Gcc_backend::indirect_expression): Add btype parameter. (Gcc_backend::temporary_variable): Check for erroneous function. From-SVN: r210087
* re PR ipa/60965 (IPA: Devirtualization versus placement new)Jan Hubicka2014-05-054-0/+44
| | | | | | | | PR ipa/60965 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD. * g++.dg/ipa/devirt-32.C: New testcase. From-SVN: r210086