1. 25 Sep, 2014 7 commits
    • 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 24 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
    • re PR sanitizer/63316 (False asan positive) · acf816a3
      	PR sanitizer/63316
      	* asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
      
      	* c-c++-common/asan/pr63316.c: New test.
      
      From-SVN: r215547
      Jakub Jelinek committed
    • re PR tree-optimization/63266 (Test regression: gcc.target/sh/pr53568-1.c) · aa29ea0c
      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.
      
      From-SVN: r215546
      Thomas Preud'homme committed
    • AVX-512. Add cvtps2 insn patterns. · 415ebad0
      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.
      
      
      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: r215545
      Alexander Ivchenko committed
    • AVX-512. Add vpshuf[lh]w insn patterns. · 41755b52
      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.
      
      
      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: r215544
      Alexander Ivchenko committed
    • AVX-512. Add shuffles (pd, 32x4, etc.). · d286410b
      gcc/
      	* config/i386/i386.c
      	(ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
      	CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
      	CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
      	CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
      	CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
      	* config/i386/sse.md
      	(define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
      	(define_insn
      	"<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
      	(define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
      	(define_insn
      	"<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
      	(define_expand "avx512vl_pshufdv3_mask"): Ditto.
      	(define_insn "avx2_pshufd_1<mask_name>"): Add masking.
      	(define_expand "avx512vl_pshufd_mask"): New.
      	(define_insn "sse2_pshufd_1<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: r215543
      Alexander Ivchenko committed
    • AVX-512. Add insert insn patterns. · d0337ddc
      gcc/
      	* config/i386/i386.c
      	(CODE_FOR_avx2_extracti128): Rename to ...
      	(CODE_FOR_avx_vextractf128v4di): this.
      	(CODE_FOR_avx2_inserti128): Rename to ...
      	(CODE_FOR_avx_vinsertf128v4di): this.
      	(ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
      	CODE_FOR_avx_vextractf128v4di.
      	(ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
      	CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
      	CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
      	CODE_FOR_avx512vl_vinsertv8si.
      	* config/i386/sse.md
      	(define_expand
      	"<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
      	AVX512_VEC mode iterator.
      	(define_insn
      	"<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
      	Ditto.
      	(define_expand
      	"<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
      	AVX512_VEC_2 mode iterator.
      	(define_insn "vec_set_lo_<mode><mask_name>"): New.
      	(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
      	(define_expand "avx512vl_vinsert<mode>"): Ditto.
      	(define_insn "avx2_vec_set_lo_v4di"): Delete.
      	(define_insn "avx2_vec_set_hi_v4di"): Ditto.
      	(define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
      	(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
      	(define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
      	(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
      	(define_expand "avx2_extracti128"): Delete.
      	(define_expand "avx2_inserti128"): Ditto.
      
      
      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: r215542
      Alexander Ivchenko committed
    • AVX-512. Add widening pmov. · f95dcc81
      gcc/
      	* config/i386/sse.md
      	(define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
      	(define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
      	(define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
      	(define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
      	(define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
      	(define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
      	(define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
      	(define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
      	(define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
      	(define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
      	(define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
      	(define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
      	(define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
      
      
      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: r215541
      Alexander Ivchenko committed
    • re PR rtl-optimization/63210 (ira does not select the best register compared… · 4ef20c29
      re PR rtl-optimization/63210 (ira does not select the best register compared with gcc 4.8 for ARM THUMB1)
      
      ChangeLog:
      2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
      
      	PR rtl-optimization/63210
      	* ira-color.c (assign_hard_reg): Ignore conflict cost if the
      	HARD_REGNO is not availabe for CONFLICT_A.
      
      testsuite/ChangeLog:
      2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
      
      	* gcc.target/arm/pr63210.c: New test.
      
      From-SVN: r215540
      Zhenqiang Chen committed
    • Add test cases for noreorder · f704cf4c
      Add some simple test cases for noreorder behaving like
      -fno-toplevel-reorder and -fno-toplevel-reorder still working.
      
      gcc/testsuite/:
      
      2014-09-23  Andi Kleen  <ak@linux.intel.com>
      
      	* gcc.dg/noreorder.c: New test.
      	* gcc.dg/noreorder2.c: New test.
      	* gcc.dg/noreorder3.c: New test.
      	* gcc.dg/noreorder4.c: New test.
      
      From-SVN: r215538
      Andi Kleen committed
    • Add an no_reorder attribute for LTO · 7861b648
      Some projects need to prevent reordering of specific top level
      declarations with LTO, in particular declarations defining init calls.
      
      The only way to do that with LTO was to use -fno-toplevel-reorder,
      which stops reordering for all declarations and makes LTO partitioning
      less efficient.
      
      This patch adds a new no_reorder attribute that stops reordering only
      for the marked declaration. The program can then only mark e.g. the
      initcalls and leave all the other declarations alone.
      
      The patch does:
      
      - Adds the new no_reorder attribute for the C family.
      - Initializes a new no_reorder flag in the symtab_nodes in the
      function visibility flag.
      - Maintains the no_reorder flag when creating new nodes.
      - Changes the partition code to always keep a separate
      sorted queue of ordered nodes and flush them in order with the other
      nodes. This is used by all nodes with -fno-toplevel-reorder,
      and only the marked ones without it.
      Parts of the old -fno-toplevel-reorder code paths are reused.
      - Adds various checks throughout the tree to make no_reorder
      marked functions behave the same as with -fno-toplevel-reorder
      - Changes the LTO streamer to serialize the no_reorder attribute.
      
      gcc/c-family/:
      
      2014-09-23  Andi Kleen  <ak@linux.intel.com>
      
      	* c-common.c (handle_no_reorder_attribute): New function.
      	(c_common_attribute_table): Add no_reorder attribute.
      
      gcc/:
      
      2014-09-23  Andi Kleen  <ak@linux.intel.com>
      
      	* cgraph.h (symtab_node): Add no_reorder attribute.
      	(symbol_table::output_asm_statements): Remove.
      	* cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
      	(cgraph_node::create_version_clone): Dito.
      	(symbol_table::output_asm_statements): Remove.
      	* trans-mem.c (ipa_tm_create_version_alias): Dito.
      	* cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
      	(output_in_order): Add no_reorder flag. Only handle no_reorder
      	nodes when set.
      	(symbol_table::compile): Add separate pass for no_reorder nodes.
      	(process_common_attributes): Set no_reorder flag in symtab node.
      	Add node argument.
      	(process_function_and_variable_attributes): Pass symtab nodes to
      	process_common_attributes.
      	* doc/extend.texi (no_reorder): Document no_reorder attribute.
      	* lto-cgraph.c (lto_output_node): Serialize no_reorder.
      	(lto_output_varpool_node): Dito.
      	(input_overwrite_node): Dito.
      	(input_varpool_node): Dito.
      	* varpool.c (varpool_node::add): Set no_reorder attribute.
      	(symbol_table::remove_unreferenced_decls): Handle no_reorder.
      	(symbol_table::output_variables): Dito.
      	* symtab.c (symtab_node::dump_base): Print no_reorder.
      
      gcc/lto/:
      
      2014-09-23  Andi Kleen  <ak@linux.intel.com>
      
      	* lto-partition.c (node_cmp): Update comment.
      	(varpool_node_cmp): Use symtab_node for comparison.
      	(add_sorted_nodes): New function.
      	(lto_balanced_map): Change to keep ordered queue
      	of ordered node. Handle no_reorder attribute.
      
      From-SVN: r215537
      Andi Kleen committed
    • Daily bump. · 2f4a54f2
      From-SVN: r215536
      GCC Administrator committed
  3. 23 Sep, 2014 9 commits