1. 25 Sep, 2014 27 commits
    • ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder for better storage. · 2f28755f
      
      	* ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
      	for better storage.
      	(polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
      	(possible_polymorphic_call_targets): Instead of computing both
      	speculative and non-speculative answers, do just one at a time.
      	Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
      	(dump_targets): Break out from ...
      	(dump_possible_polymorphic_call_targets): ... here; dump both speculative
      	and non-speculative lists.
      	(ipa_devirt): Update for new possible_polymorphic_call_targets API.
      	* ipa-utils.h (possible_polymorphic_call_targets): Update.
      
      	* testsuite/g++.dg/ipa/devirt-34.C: Update template.
      
      From-SVN: r215614
      Jan Hubicka committed
    • re PR rtl-optimization/63348 (gcc.dg/pr43670.c fail on MIPS) · 0be35aa0
      	PR rtl-optimization/63348
      	* emit-rtl.c (try_split): Do not emit extra barrier.
      
      From-SVN: r215613
      Uros Bizjak committed
    • [AArch64] Tighten predicates on SIMD shift intrinsics · cb23a30c
      gcc/
      
      	* config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
      	* config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
      	new predicates.
      	(aarch64_<sur>shll2_n<mode>): Likewise.
      	(aarch64_<sur>shr_n<mode>): Likewise.
      	(aarch64_<sur>sra_n<mode>: Likewise.
      	(aarch64_<sur>s<lr>i_n<mode>): Likewise.
      	(aarch64_<sur>qshl<u>_n<mode>): Likewise.
      	* config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
      	* config/aarch64/iterators.md (ve_mode): New.
      	(offsetlr): Remap to infix text for use in new predicates.
      	* config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
      	(aarch64_simd_shift_imm_hi): Likewise.
      	(aarch64_simd_shift_imm_si): Likewise.
      	(aarch64_simd_shift_imm_di): Likewise.
      	(aarch64_simd_shift_imm_offset_qi): Likewise.
      	(aarch64_simd_shift_imm_offset_hi): Likewise.
      	(aarch64_simd_shift_imm_offset_si): Likewise.
      	(aarch64_simd_shift_imm_offset_di): Likewise.
      	(aarch64_simd_shift_imm_bitsize_qi): Likewise.
      	(aarch64_simd_shift_imm_bitsize_hi): Likewise.
      	(aarch64_simd_shift_imm_bitsize_si): Likewise.
      	(aarch64_simd_shift_imm_bitsize_di): Likewise.
      
      gcc/testsuite/
      
      	* gcc.target/aarch64/simd/vqshlb_1.c: New.
      
      From-SVN: r215612
      James Greenhalgh committed
    • Improve live-in calculation for splitted block · d0d9aad7
        gcc/
          * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of new
          created BB as the intersection of live-in from "old_dest" and live-out from
          "bb".
      
        gcc/testsuite/
          * gcc.target/i386/shrink_wrap_1.c: New test.
      
      From-SVN: r215611
      Jiong Wang committed
    • lra.c (lra_set_insn_recog_data): Fix typo in comment. · 0e9e0a21
              * lra.c (lra_set_insn_recog_data): Fix typo in comment.
              * genautomata.c (merge_states): Ditto.
      
      From-SVN: r215610
      Felix Yang committed
    • re PR target/62218 (gcc produces invalid SH instruction (stc r2,sr) when building libgcc) · ad19968e
      gcc/
      	PR target/62218
      	* config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
      	in instruction sequence.
      
      From-SVN: r215607
      Oleg Endo committed
    • DR 1339 · e51cf2f5
      	DR 1339
      	* doc/xml/manual/status_cxx2011.xml: Update.
      	* include/bits/stl_uninitialized.h (uninitialized_fill_n): Return
      	an iterator.
      	(__uninitialized_fill_n_a, __uninitialized_default_n_a): Likewise.
      	* include/bits/stl_vector.h (vector::_M_fill_initialize,
      	vector::_M_default_initialize): Use returned iterator.
      	* include/bits/vector.tcc (vector::_M_fill_assign,
      	vector::_M_fill_insert, vector::_M_default_append): Likewise.
      	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
      	16505.cc: Adjust return type.
      	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
      	dr1339.cc: New.
      
      From-SVN: r215606
      Jonathan Wakely committed
    • re PR target/62218 (gcc produces invalid SH instruction (stc r2,sr) when building libgcc) · 72b497da
      	PR target/62218
      	* config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
      	in instruction sequence.
      
      From-SVN: r215602
      Nick Clifton committed
    • re PR target/63335 (GCC:failures for vector double on calls to bif vec_[all|any]_[nge|nle]) · eb1f7a0a
      [gcc]
      
      2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/63335
      	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
      	Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
      
      [gcc/testsuite]
      
      2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/63335
      	* gcc.target/powerpc/pr63335.c: New test.
      
      From-SVN: r215599
      Bill Schmidt committed
    • re PR c++/61945 (tree check fail with -Woverloaded-virtual) · 6597738a
      	PR c++/61945
      	* class.c (warn_hidden): Check for FUNCTION_DECL.
      
      	* g++.dg/warn/pr61945.C: New test.
      
      From-SVN: r215597
      Marek Polacek committed
    • bool_neg.cc: New. · 7569cc57
      	* testsuite/27_io/basic_ios/conv/bool_neg.cc: New.
      	* testsuite/27_io/basic_ios/conv/bool.cc: New.
      	* testsuite/27_io/basic_ios/conv/voidptr.cc: New.
      
      From-SVN: r215592
      Jonathan Wakely committed
    • AVX-512. Extend `perm' insn patterns. · e2a2165d
      gcc/
      	* config/i386/sse.md
      	(define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
      	(define_expand "<avx2_avx512>_perm<mode>"): ... this.
      	(define_expand "avx512f_perm<mode>_mask"): Rename to ...
      	(define_expand "<avx512>_perm<mode>_mask"): ... this.
      	Use VI8F_256_512 mode iterator.
      	(define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
      	(define_insn "<avx2_avx512>_perm<mode>_1<mask_name>"): ... this.
      
      
      Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
      Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
      Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
      Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
      From-SVN: r215590
      Alexander Ivchenko committed
    • AVX-512. Add mov[dlh]dup insns support. · 6eacd27c
      gcc/
      	* config/i386/sse.md
      	(define_insn "avx_movshdup256<mask_name>"): Add masking.
      	(define_insn "sse3_movshdup<mask_name>"): Ditto.
      	(define_insn "avx_movsldup256<mask_name>"): Ditto.
      	(define_insn "sse3_movsldup<mask_name>"): Ditto.
      	(define_insn "vec_dupv2df<mask_name>"): Ditto.
      	(define_insn "*vec_concatv2df"): Add EVEX version.
      
      Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
      Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
      Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
      Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
      From-SVN: r215589
      Alexander Ivchenko committed
    • AVX-512. Update vec_set<mode>_0 pattern. · deb90bb5
      gcc/
      	* config/i386/sse.md
      	(define_insn "vec_set<mode>_0"): Add EVEX version.
      
      Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
      Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
      Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
      Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
      From-SVN: r215588
      Alexander Ivchenko committed
    • AVX-512. Add convert ps2pd and ps2dq. · 1bdf255a
      gcc/
      	* config/i386/sse.md
      	(define_insn
      	"<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
      	New.
      	(define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
      	(define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
      	(define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
      	"nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
      	(define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
      	(define_expand "sse2_cvtpd2ps_mask): New.
      	(define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
      	(define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
      
      Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
      Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
      Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
      Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
      From-SVN: r215586
      Alexander Ivchenko committed
    • AVX-512. Add pd2dq and dq2pd converts. · 42815c48
      gcc/
      	* config/i386/i386.c
      	(avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
      	(ufix_notruncv8dfv8si2_mask_round): ... this.
      	* config/i386/sse.md
      	(define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
      	(define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
      	(define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
      	(define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
      	(define_expand "sse2_cvtpd2dq"): Delete.
      	(define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
      	make 2nd operand const0 vector.
      	(define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
      	Delete.
      	(define_mode_attr pd2udqsuff): New.
      	(define_insn
      	"ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
      	(define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
      	(define_insn "*avx_cvttpd2dq256_2"): Delete.
      	(define_expand "sse2_cvttpd2dq"): Ditto.
      	(define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
      	make 2nd operand const0 vector.
      
      Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
      Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
      Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
      Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
      Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
      
      From-SVN: r215584
      Alexander Ivchenko committed
    • re PR tree-optimization/63341 (Vectorization miscompilation with -mcpu=power7) · 356bbc4c
      	PR tree-optimization/63341
      	* tree-vectorizer.h (vect_create_data_ref_ptr,
      	vect_create_addr_base_for_vector_ref): Add another tree argument
      	defaulting to NULL_TREE.
      	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
      	argument, pass it down to vect_create_addr_base_for_vector_ref.
      	(vect_create_addr_base_for_vector_ref): Add byte_offset argument,
      	add that to base_offset too if non-NULL.
      	* tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
      	for dr_explicit_realign_optimized set it to vector byte size
      	- 1 instead of setting offset, pass byte_offset down to
      	vect_create_data_ref_ptr.
      
      	* gcc.dg/vect/pr63341-1.c: New test.
      	* gcc.dg/vect/pr63341-2.c: New test.
      
      From-SVN: r215583
      Jakub Jelinek committed
    • [multiple changes] · abdc17f8
      2014-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
      
      	PR 63300/debug
      	* tree.c (check_base_type): New.
      	(check_qualified_type): Exploit new helper function above.
      	* tree.h (check_base_type): New prototype.
      	* dwarf2out.c (get_nearest_type_subqualifiers): New.
      	(modified_type_die): Fix handling for qualifiers.  Qualifiers to
      	"peel off" are now determined using get_nearest_type_subqualifiers.
      
      2014-09-25  Mark Wielaard  <mjw@redhat.com>
      
      	PR 63300/debug
      	* gcc.dg/debug/dwarf2/stacked-qualified-types-1.c: New testcase.
      	* gcc.dg/debug/dwarf2/stacked-qualified-types-2.c: Likewise.
      	* gcc.dg/guality/pr63300-const-volatile.c: New testcase.
      
      From-SVN: r215582
      Andreas Krebbel committed
    • re PR c++/63249 ([OpenMP] Spurious »set but not used« warnings when actually… · d90c0a59
      re PR c++/63249 ([OpenMP] Spurious »set but not used« warnings when actually used in OpenMP target's array section's lower-bound and length)
      
      	PR c++/63249
      	* semantics.c (handle_omp_array_sections_1): Call mark_rvalue_use
      	on low_bound and length.
      
      	* g++.dg/gomp/pr63249.C: New test.
      	* c-c++-common/gomp/pr63249.c: New test.
      
      2014-09-25  Thomas Schwinge  <thomas@codesourcery.com>
      
      	PR c++/63249
      	* c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
      	on low_bound and length.
      
      From-SVN: r215580
      Jakub Jelinek committed
    • check.c (check_co_collective): Renamed from · a16ee379
      2014-09-25  Tobias Burnus  <burnus@net-b.de>
      
      gcc/fortran
              * check.c (check_co_collective): Renamed from
              * check_co_minmaxsum,
              handle co_reduce.
              (gfc_check_co_minmax, gfc_check_co_sum): Update call.
              (gfc_check_co_broadcast, gfc_check_co_reduce): New.
              * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
              GFC_ISYM_CO_REDUCE.
              * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
              * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
              proto types.
              * intrinsic.texi (CO_BROADCAST): Add.
              * trans.h (gfor_fndecl_co_broadcast): New.
              * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
              (gfc_build_builtin_function_decls): Add decl for it,
              * trans-intrinsic.c (conv_co_collective): Renamed from
              conv_co_minmaxsum. Handle co_reduce.
              (gfc_conv_intrinsic_subroutine): Handle co_reduce.
      
      gcc/testsuite/
              * gfortran.dg/coarray/collectives_3.f90: New.
              * gfortran.dg/coarray_collectives_9.f90: New.
              * gfortran.dg/coarray_collectives_10.f90: New.
              * gfortran.dg/coarray_collectives_11.f90: New.
              * gfortran.dg/coarray_collectives_12.f90: New.
      
      libgfortran/
              * caf/libcaf.h (_gfortran_caf_co_broadcast): New prototype.
              * caf/single.c (_gfortran_caf_co_broadcast): New.
      
      From-SVN: r215579
      Tobias Burnus committed
    • re PR libstdc++/63199 (Inserting std::wregex to std::vector loses some std::wregex values) · 2bde8cac
      	PR libstdc++/63199
      	* include/bits/regex.h (basic_regex::basic_regex, basic_regex::assign,
      	basic_regex::imbue, basic_regex::getloc, basic_regex::swap): Add
      	_M_loc for basic_regex.
      	* include/bits/regex_automaton.h: Add _M_traits for _NFA.
      	* include/bits/regex_compiler.h (_Compiler::_M_get_nfa, __compile_nfa):
      	Make _Compiler::_M_nfa heap allocated.
      	* include/bits/regex_compiler.tcc (_Compiler::_Compiler): Make
      	_Compiler::_M_nfa heap allocated.
      	* include/bits/regex_executor.h (_Executor::_M_is_word):
      	Fix accessing _M_traits.
      	* include/bits/regex_executor.tcc (_Executor::_M_dfs):
      	Fix accessing _M_traits.
      	* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc:
      	New testcase.
      
      From-SVN: r215578
      Tim Shen committed
    • ipa-devirt.c (possible_polymorphic_call_targets): Remove forgotten debug output;… · 21a9ce6e
      ipa-devirt.c (possible_polymorphic_call_targets): Remove forgotten debug output; canonicalize querries more wtih LTO.
      
      
      	* ipa-devirt.c (possible_polymorphic_call_targets): Remove
      	forgotten debug output; canonicalize querries more wtih LTO.
      
      From-SVN: r215577
      Jan Hubicka committed
    • Fix previous commit. · 00d31d5e
      From-SVN: r215576
      Jan Hubicka committed
    • cgraph.h (class ipa_polymorphic_call_context): Move here from ipa-utils.h; add… · ba392339
      cgraph.h (class ipa_polymorphic_call_context): Move here from ipa-utils.h; add stream_int and stream_out methods.
      
      
      	* cgraph.h (class ipa_polymorphic_call_context): Move here from
      	ipa-utils.h; add stream_int and stream_out methods.
      	(cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
      	OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
      	MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
      	add CONTEXT.
      	(ipa_polymorphic_call_context::ipa_polymorphic_call_context,
      	ipa_polymorphic_call_context::ipa_polymorphic_call_context,
      	ipa_polymorphic_call_context::clear_speculation,
      	ipa_polymorphic_call_context::clear_outer_type): Move here from
      	ipa-utils.h
      	* ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
      	(ipa_polymorphic_call_context::ipa_polymorphic_call_context,
      	ipa_polymorphic_call_context::ipa_polymorphic_call_context,
      	ipa_polymorphic_call_context::clear_speculation,
      	ipa_polymorphic_call_context::clear_outer_type): Likewise.
      	* ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
      	streamer-hooks.h
      	(ipa_polymorphic_call_context::stream_out): New method.
      	(ipa_polymorphic_call_context::stream_in): New method.
      	(noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
      	* ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
      	OUTER_TYPE.
      	(ipa_analyze_call_uses): Simplify.
      	(update_indirect_edges_after_inlining): Do not care about outer_type.
      	(ipa_write_indirect_edge_info): Update.
      	(ipa_write_indirect_edge_info): Likewise.
      	* cgraph.c (cgraph_node::create_indirect_edge): Simplify.
      	(dump_edge_flags): Break out from ...
      	(cgraph_node::dump): ... here; dump indirect edges.
      
      From-SVN: r215575
      Jan Hubicka committed
    • Daily bump. · 20149bd2
      From-SVN: r215574
      GCC Administrator committed
  2. 24 Sep, 2014 13 commits
    • re PR libstdc++/56193 (ios_base should replace operator void* with explicit… · 2d578726
      re PR libstdc++/56193 (ios_base should replace operator void* with explicit operator bool in C++11 onwards.)
      
      	PR libstdc++/56193
      	* config/abi/pre/gnu.ver: Add new exports.
      	* include/bits/basic_ios.h (basic_ios::operator bool): Define.
      	* src/c++98/ios_locale.cc (basic_ios::operator void*): Instantiate.
      
      From-SVN: r215571
      Jonathan Wakely committed
    • gnu.ver: Make GLIBCXX_3.4 patterns stricter so the new GLIBCXX_3.4.21 symbols don't... · 407f9471
      	* config/abi/pre/gnu.ver: Make GLIBCXX_3.4 patterns stricter so the
      	new GLIBCXX_3.4.21 symbols don't match them.
      
      From-SVN: r215570
      Jonathan Wakely committed
    • ipa-utils.h (polymorphic_call_context): Add metdhos dump, debug and clear_outer_type. · a1981458
      
      	* ipa-utils.h (polymorphic_call_context): Add
      	metdhos dump, debug and clear_outer_type.
      	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
      	(ipa_polymorphic_call_context::clear_outer_type): New method.
      	* ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
      	* ipa-devirt.c (types_odr_comparable): New function.
      	(types_must_be_same_for_odr): New function.
      	(odr_subtypes_equivalent_p): Simplify.
      	(possible_placement_new): Break out from ...
      	(ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
      	be more cuatious about returning false in cases the context may be
      	valid in derived type or via placement new.
      	(contains_type_p): Clear maybe_derived_type
      	(ipa_polymorphic_call_context::dump): New method.
      	(ipa_polymorphic_call_context::debug): New method.
      	(ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
      	(ipa_polymorphic_call_context::set_by_invariant): Simplify.
      	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
      	(possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
      	to suceed on all valid cases; remove confused sanity check.
      	(dump_possible_polymorphic_call_targets): Simplify.
      
      From-SVN: r215569
      Jan Hubicka committed
    • re PR libstdc++/29988 (More stl_tree.h enhancements: improving operator=) · c6195f58
      2014-09-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/29988
      	* include/bits/stl_tree.h (_Rb_tree_reuse_or_alloc_node<>): New.
      	(_Rb_tree_alloc_node<>): New.
      	(_Rb_tree<>::operator=(_Rb_tree<>&&)): New.
      	(_Rb_tree<>::_M_assign_unique): New.
      	(_Rb_tree<>::_M_assign_equal): New.
      	(_Rb_tree<>): Adapt to reuse allocated nodes as much as possible.
      	* include/bits/stl_map.h
      	(std::map<>::operator=(std::map<>&&)): Default implementation.
      	(std::map<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_unique.
      	* include/bits/stl_multimap.h
      	(std::multimap<>::operator=(std::multimap<>&&)): Default implementation.
      	(std::multimap<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_equal.
      	* include/bits/stl_set.h
      	(std::set<>::operator=(std::set<>&&)): Default implementation.
      	(std::set<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_unique.
      	* include/bits/stl_multiset.h
      	(std::multiset<>::operator=(std::multiset<>&&)): Default implementation.
      	(std::multiset<>::operator=(initializer_list<>)): Adapt to use
      	_Rb_tree::_M_assign_equal.
      	* testsuite/23_containers/map/allocator/copy_assign.cc (test03): New.
      	* testsuite/23_containers/map/allocator/init-list.cc: New.
      	* testsuite/23_containers/map/allocator/move_assign.cc (test03): New.
      	* testsuite/23_containers/multimap/allocator/copy_assign.cc
      	(test03): New.
      	* testsuite/23_containers/multimap/allocator/init-list.cc: New.
      	* testsuite/23_containers/multimap/allocator/move_assign.cc
      	(test03): New.
      	* testsuite/23_containers/multiset/allocator/copy_assign.cc
      	(test03): New.
      	* testsuite/23_containers/multiset/allocator/init-list.cc: New.
      	* testsuite/23_containers/multiset/allocator/move_assign.cc
      	(test03): New.
      	* testsuite/23_containers/set/allocator/copy_assign.cc (test03): New.
      	* testsuite/23_containers/set/allocator/init-list.cc: New.
      	* testsuite/23_containers/set/allocator/move_assign.cc (test03): New.
      
      From-SVN: r215568
      François Dumont committed
    • cgraph.h, [...]: Rename all instances of DECL_ABSTRACT to DECL_ABSTRACT_P. · 00de328a
          	* cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
          	lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
          	tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
          	varpool.c: Rename all instances of DECL_ABSTRACT to
          	DECL_ABSTRACT_P.
      
          cp/
          	* class.c, decl.c, optimize.c: Rename all instances of
          	DECL_ABSTRACT to DECL_ABSTRACT_P.
      
          lto/
          	* lto-symtab.c, lto.c: Rename all instances of DECL_ABSTRACT to
          	DECL_ABSTRACT_P.
      
      From-SVN: r215567
      Aldy Hernandez committed
    • rs6000.c (insn_is_swappable_p): Don't provide special handling for stores whose… · 7606cbae
      rs6000.c (insn_is_swappable_p): Don't provide special handling for stores whose SET_SRC is an UNSPEC (such as...
      
      [gcc]
      
      2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
      	special handling for stores whose SET_SRC is an UNSPEC (such as
      	UNSPEC_STVE).
      
      
      [gcc/testsuite]
      
      2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/swaps-p8-17.c: New test.
      
      From-SVN: r215564
      Bill Schmidt committed
    • Improve prepare_shrink_wrap to sink more instructions · 2b63a3ac
        gcc/
          * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
          !REG_P (src) to release more instruction sink opportunities.
      
        gcc/testsuite/
          * gcc.target/aarch64/shrink_wrap_symbol_ref_1.c: New testcase.
      
      From-SVN: r215563
      Jiong Wang committed
    • [AArch64] Improve regmove_costs for 128-bit types. · 8919453c
        2014-09-24  Wilco Dijkstra <wdijkstr@arm.com>
      
        gcc/
          * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register move
          costs for 128-bit types.
      
      From-SVN: r215562
      Wilco Dijkstra committed
    • ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count when… · 6fe45955
      ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count when duplicating a PASS_THROUGH jump function when...
      
      2014-09-24  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
      	when duplicating a PASS_THROUGH jump function when creating a
      	speculative edge.
      
      From-SVN: r215560
      Martin Jambor committed
    • re PR c/61405 (Not emitting "enumeration value not handled in switch" warning for bit-field enums) · 083e891e
      	PR c/61405
      	PR c/53874
      gcc/
      	* asan.c (maybe_instrument_call): Add default case.
      	* ipa-pure-const.c (special_builtin_state): Likewise.
      	* predict.c (expr_expected_value_1): Likewise.
      	* lto-streamer-out.c (write_symbol): Initialize variable.
      gcc/c-family/
      	* c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
      gcc/c/
      	* c-parser.c: Don't define CPP_KEYWORD.
      	(c_parser_switch_statement): Pass original type to c_finish_case.
      	* c-tree.h (c_finish_case): Update declaration.
      	* c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
      	conditionally to c_do_switch_warnings.
      gcc/cp/
      	* semantics.c (finish_switch_cond): Call unlowered_expr_type.
      	* tree.c (bot_manip): Add default case.
      	* parser.c (cp_parser_primary_expression): Cast the controlling
      	expression of a switch to an int.
      	(cp_parser_unqualified_id): Likewise.
      gcc/testsuite/
      	* c-c++-common/pr53874.c: New test.
      	* c-c++-common/pr61405.c: New test.
      libcpp/
      	* include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.
      
      From-SVN: r215559
      Marek Polacek committed
    • [AArch64] Use __aarch64_vget_lane* macros for getting the lane in some lane multiply intrinsics. · dc9c1b91
      	* config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
      	the lane.
      	(vmuld_laneq_f64): Likewise.
      	(vmuls_lane_f32): Likewise.
      	(vmuls_laneq_f32): Likewise.
      
      	* gcc.target/aarch64/simd/vmul_lane_const_lane_1.c: New test.
      
      From-SVN: r215553
      Kyrylo Tkachov committed
    • re PR bootstrap/63235 (building fails with --disable-bootstrap) · 0f549a67
      PR bootstrap/63235
      
      gcc/
      	* varpool.c (varpool_node::add): Pass decl attributes
      	to lookup_attribute.
      
      From-SVN: r215552
      Kirill Yukhin committed
    • re PR libstdc++/63353 (libstdc++-v3/src/c++11/ios.cc:232: possible typo ?) · 8d6b3c16
      	PR libstdc++/63353
      	* src/c++11/ios.cc (ios_base::_M_swap): Fix typo.
      
      From-SVN: r215549
      Jonathan Wakely committed