AVX-512. Add vpshuf[lh]w insn patterns.

gcc/
	* config/i386/sse.md
	(define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
	(define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
	(define_expand "avx512vl_pshuflwv3_mask"): Ditto.
	(define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
	(define_expand "avx512vl_pshuflw_mask"): New.
	(define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
	(define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
	(define_expand "avx512vl_pshufhwv3_mask"): Ditto.
	(define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
	(define_expand "avx512vl_pshufhw_mask"): New.
	(define_insn "sse2_pshufhw_1<mask_name>"): Add masking.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215544 138bc75d-0d04-0410-961f-82ee72b054a4
AVX-512. Add cvtps2 insn patterns.

gcc/
	* config/i386/sse.md
	(define_insn
	"<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
	Add masking.
	(define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
	(define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215545 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/63266
    * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
    marker for unknown byte value.
    (MARKER_MASK): New macro.
    (MARKER_BYTE_UNKNOWN): New macro.
    (HEAD_MARKER): New macro.
    (do_shift_rotate): Mark bytes with unknown values due to sign
    extension when doing an arithmetic right shift. Replace hardcoded
    mask for marker by new MARKER_MASK macro.
    (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
    numbers accordingly.

    gcc/testsuite/
    PR tree-optimization/63266
    * gcc.dg/optimize-bswapsi-1.c (swap32_d): New bswap pass test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215546 138bc75d-0d04-0410-961f-82ee72b054a4
	PR sanitizer/63316
	* asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.

	* c-c++-common/asan/pr63316.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215547 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/63353
	* src/c++11/ios.cc (ios_base::_M_swap): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215549 138bc75d-0d04-0410-961f-82ee72b054a4
PR bootstrap/63235

gcc/
	* varpool.c (varpool_node::add): Pass decl attributes
	to lookup_attribute.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215552 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Use __aarch64_vget_lane* macros for getting the lane in some lane multiply intrinsics.

	* 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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215553 138bc75d-0d04-0410-961f-82ee72b054a4
	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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215559 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215560 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Improve regmove_costs for 128-bit types.

  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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215562 138bc75d-0d04-0410-961f-82ee72b054a4
Improve prepare_shrink_wrap to sink more instructions

  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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215563 138bc75d-0d04-0410-961f-82ee72b054a4
[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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215564 138bc75d-0d04-0410-961f-82ee72b054a4
    	* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215567 138bc75d-0d04-0410-961f-82ee72b054a4
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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215568 138bc75d-0d04-0410-961f-82ee72b054a4
	* 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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215569 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/abi/pre/gnu.ver: Make GLIBCXX_3.4 patterns stricter so the
	new GLIBCXX_3.4.21 symbols don't match them.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215570 138bc75d-0d04-0410-961f-82ee72b054a4
	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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215571 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215574 138bc75d-0d04-0410-961f-82ee72b054a4
	* 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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215575 138bc75d-0d04-0410-961f-82ee72b054a4
Fix previous commit.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215576 138bc75d-0d04-0410-961f-82ee72b054a4