1. 11 May, 2017 40 commits
    • cp-lang.c (get_global_decls, [...]): Move to ... · 505dd180
      	* cp-lang.c (get_global_decls, cxx_pushdecl, LANG_HOOK_GETDECLS)
      	LANG_HOOKS_PUSHDECL): Move to ...
      	* cp-objcp-common.c (cp_get_global_decls, cp_pushdec)
      	LANG_HOOK_DECLS, LANG_HOOKS_PUSHDECL): ... here.
      	* cp-objcp-common.h (cp_get_global_decls, cp_pushdecl): Declare.
      ((--This line, and those below, will be ignored--
      
      M    cp/ChangeLog
      M    cp/cp-lang.c
      M    cp/cp-objcp-common.c
      M    cp/cp-objcp-common.h
      
      From-SVN: r247923
      Nathan Sidwell committed
    • re PR target/80706 (peephole2 uses uninitialized stack variables on i686) · 7c85c9fe
      	PR target/80706
      	* config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
      	(UNSPEC_STX_ATOMIC): Ditto.
      	(loaddi_via_sse): New insn.
      	(storedi_via_sse): Ditto.
      	(atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
      	Update corresponding peephole2 patterns.
      	(atomic_storedi_fpu): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/80706
      	* gcc.target/i386/pr80706.c: New test.
      
      From-SVN: r247921
      Uros Bizjak committed
    • * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd) · d7a33a4c
      	(_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
      	New intrinsics.
      	* config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
      	(__builtin_ia32_rsqrt14ss_mask): New builtins.
      	* config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/avx512f-vrsqrt14sd-1.c: Test new intrinsics.
      	* gcc.target/i386/avx512f-vrsqrt14sd-2.c: Ditto.
      	* gcc.target/i386/avx512f-vrsqrt14ss-1.c: Ditto.
      	* gcc.target/i386/avx512f-vrsqrt14ss-2.c: Ditto.
      
      From-SVN: r247920
      Julia Koval committed
    • * graphite-poly.c: Include dumpfile.h. · 31cf88b6
      From-SVN: r247919
      Nathan Sidwell committed
    • name-lookup.h (pushdecl): Add default friend parm. · 4f15a5da
      	* name-lookup.h (pushdecl): Add default friend parm.
      	(pushdecl_maybe_friend): Delete.
      	(pushdecl_top_level): Add default friend parm.
      	(pushdecl_top_level_maybe_friend): Delete.
      	* name-lookup.c (pushdecl_maybe_friend): Delete.
      	(pushdecl): Add is_friend parm.
      	(pushdecl_top_level): Add is friend_parm.
      	(pushdecl_top_level_maybe_friend, pushdecl_top_level_1): Delete.
      	(pushdecl_top_level_and_finish): Do pushing and finishing
      	directly.
      	* friend.c (do_friend): Adjust.
      	* pt.c (tsubst_friend_class): Adjust.
      
      From-SVN: r247918
      Nathan Sidwell committed
    • re PR c++/70538 (ICE on a deprecated access declaration in… · 59fbddcf
      re PR c++/70538 (ICE on a deprecated access declaration in instantiate_template_1, at cp/pt.c:17310)
      
      2017-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70538
      	* g++.dg/cpp0x/pr70538.C: New.
      
      From-SVN: r247917
      Paolo Carlini committed
    • dumpfle.h (dump_function): Declare here ... · c24e924f
      	* dumpfle.h (dump_function): Declare here ...
      	* tree-dump.h (dump_function): ... not here.
      	* dumpfile.c: #include tree-cfg.h.
      	(dump_function): Move here from ...
      	* tree-dump.c (dump_function): ... here.
      	* gimplify.c: #include splay-tree.h, not tree-dump.h.
      	* graphite-poly.c: Don't include tree-dump.h.
      	* cgraphclones.c: Include dumpfile.h not tree-dump.h.
      	* print-tree.c: Likewise.
      	* stor-layout.c: Likewise.
      	* tree-nested.c: Likewise.
      
      	c/
      	* gimple-parser.c: Don't #include tree-dump.h.
      
      	fortran/
      	* trans-decl.c: Include dumpfile.h not tree-dump.h,
      
      From-SVN: r247916
      Nathan Sidwell committed
    • Revert pushdecl_top_level_and_finish name change. · 2e3757e7
      	* name-lookup.h (pushdecl_top_level_and_finish): Resurrect old
      	name.
      	* name-lookup.c (pushdecl_top_level_and_finish): Likewise.
      	* decl.c (cp_make_fname_decl): Adjust.
      	* decl2.c (get_guard, handle_tls_init):  Adjust.
      	* rtti.c (get_tinfo_decl, tinfo_base_init):  Adjust.
      
      From-SVN: r247915
      Nathan Sidwell committed
    • pr22152.c: Fix undefined testcase. · cc09ff60
      	* gcc.target/i386/pr22152.c: Fix undefined testcase.  Remove
      	unnecessary loop.  Run on 32-bit targets only.
      	(dg-options): Remove -fno-tree-sink.
      
      From-SVN: r247914
      Uros Bizjak committed
    • As I will be working on X86 intrinsic equivalents for PowerPC64LE · 75ad901a
      adding myself to Write After Approval list.
      
      2017-05-11  Steven Munroe  <munroesj@gcc.gnu.org>
      
      	* MAINTAINERS: Add myself to Write After Approval section.
      
      From-SVN: r247913
      Steven Munroe committed
    • Fix ViewCVS URLs in libstdc++ manual · 395ec8f3
      	* doc/xml/manual/allocator.xml: Fix ViewCVS URLs.
      	* doc/xml/manual/mt_allocator.xml: Likewise.
      	* doc/html/*: Regenerate.
      
      From-SVN: r247911
      Jonathan Wakely committed
    • name-lookup.c (pushdecl_outermost_localscope): Always conditionally stop timer. · c8634a1a
      	* name-lookup.c (pushdecl_outermost_localscope): Always
      	conditionally stop timer.
      
      From-SVN: r247910
      Nathan Sidwell committed
    • decl.c (xref_tag_1): Don't frob ts_lambda scope here. · c443f3d5
      	* decl.c (xref_tag_1): Don't frob ts_lambda scope here.
      	* name-lookup.c (pushtag_1): Deal with ts_lambda scope.
      
      From-SVN: r247909
      Nathan Sidwell committed
    • dumpfile.h (TDF_FLAGS): New. · 2cd47092
      	* dumpfile.h (TDF_FLAGS): New.
      	* dumpfile.c (dump_start): Use TDF_FLAGS.
      	(dump_enable_all): Fix TDF_KIND check thinko.
      
      From-SVN: r247908
      Nathan Sidwell committed
    • cmpb-1.c: New test. · 4fd18c78
      gcc/testsuite/ChangeLog:
      
      2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/cmpb-1.c: New test.
      	* gcc.target/powerpc/cmpb-2.c: New test.
      	* gcc.target/powerpc/cmpb-3.c: New test.
      	* gcc.target/powerpc/cmpb32-1.c: New test.
      	* gcc.target/powerpc/cmpb32-2.c: New test.
      
      gcc/ChangeLog:
      
      2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
      	array entries to represent two legal parameterizations of the
      	overloaded __builtin_cmpb function, as represented by the
      	P6_OV_BUILTIN_CMPB constant.
      	(altivec_resolve_overloaded_builtin): Add special case handling
      	for the __builtin_cmpb function, as represented by the
      	P6_OV_BUILTIN_CMPB constant.
      	* config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
      	(BU_P6_64BIT_2): New macro.
      	(BU_P6_OVERLOAD_2): New macro
      	(CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
      	(CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
      	(CMPB): Add overload support to represent both 32-bit and 64-bit
      	compare-bytes function.
      	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
      	support for TARGET_CMPB.
      	* config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
      	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
      	documentation of the __builtin_cmpb overloaded built-in function.
      
      From-SVN: r247907
      Kelvin Nilsen committed
    • re PR tree-optimization/80705 (Incorrect code generated for profile counter updates due to SLP+LIM) · 43b883a9
      2017-05-11  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80705
      	* tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
      	bases are not vectorizable.
      
      	* gcc.dg/vect/bb-slp-pr80705.c: New testcase.
      
      From-SVN: r247906
      Richard Biener committed
    • PR libstdc++/80285 optimize std::make_shared for -fno-rtti · f8cba3aa
      	PR libstdc++/80285
      	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Define
      	function to get unique fake std::type_info reference.
      	(_Sp_counted_ptr_inplace::_M_get_deleter) [!__cpp_rtti]: Compare to
      	_S_ti() fake reference.
      	(__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Share
      	single implementation with or without RTTI enable.
      	[!__cpp_rtti]: Pass fake reference to _M_get_deleter.
      	* testsuite/20_util/shared_ptr/creation/alloc.cc: Change expected
      	allocation and deallocation counts.
      	* testsuite/20_util/shared_ptr/creation/single_allocation.cc: New.
      	* testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
      	New.
      
      From-SVN: r247905
      Jonathan Wakely committed
    • scanlang.exp: New. · 29b871ec
      	* lib/scanlang.exp: New.
      	* lib/gcc-dg.exp: Load scanlang.exp.
      	* g++.dg/inherit/covariant7.C: Use scan-lang-dump.
      
      From-SVN: r247904
      Nathan Sidwell committed
    • GIMPLEFE: Handle invalid SSA names · c587104e
      gcc/testsuite/
      
      	PR testsuite/80580
      	* gcc.dg/gimplefe-error-6.c: New test.
      
      gcc/c/
      
      	PR testsuite/80580
      	* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
      
      From-SVN: r247903
      Mikhail Maltsev committed
    • cp-tree.h (pushdecl, [...]): Move declarations to ... · 056a17ee
      	* cp-tree.h (pushdecl, pushdecl_maybe_friend, pushtag)
      	pushtag_top_level_maybe_friend,
      	pushdecl_top_level_and_finish):	Move declarations to ...
      	* name-lookup.h: ... here.  Group pushdecl variants.
      	(pushdecl_top_level_and_finish): Rename to ...
      	(pushdecl_top_level_with_init): ... here.
      	* decl.c (cp_make_fname_decl): Use pushdecl_top_level_with_init.
      	* decl2.c (get_guard, handle_tls_init): Likewise.
      	* rtti.c (get_tinfo_decl, tinfo_base_init): Likewise.
      	* lambda.c (maybe_add_lambda_conv_op): Use namespace_bindings_p.
      	* method.c (implicitly_declare_fn): Likewise.
      	* searchc (node_debug_info_needed): Likewise.
      	* name-lookup.c (pushdecl_top_level_and_finish): Rename to ...
      	(pushdecl_top_level_with_init): ... here.
      	(pop_everything): Use namespace_bindings_p.
      (--This line, and those below, will be ignored--
      
      M    cp/ChangeLog
      M    cp/method.c
      M    cp/cp-tree.h
      M    cp/decl.c
      M    cp/lambda.c
      M    cp/rtti.c
      M    cp/name-lookup.c
      M    cp/decl2.c
      M    cp/name-lookup.h
      M    cp/search.c
      
      From-SVN: r247902
      Nathan Sidwell committed
    • name-lookup.h (pop_binding): Rename to pop_local_binding. · 9c82d7b6
      	* name-lookup.h (pop_binding): Rename to pop_local_binding.
      	(getdecls): Rename to get_local_decls.
      	* name-lookup.c (pop_binding): Rename to ...
      	(pop_local_binding): ... here.
      	(pop_bindings_and_leave_scope): Adjust.
      	(getdecls): Rename to ...
      	(get_local_decls): ... here.  Assert local scope.
      	* decl.c (poplevel): Assert not namespace.  Adjust and simplify
      	logic.
      	(store_parm_decls): Adjust get_local_decls call.
      	(parser.c (synthesize_implicit_template_parm): Likewise.
      
      From-SVN: r247901
      Nathan Sidwell committed
    • GIMPLEFE: handle invalid __MEM · 67ac9a9d
      gcc/c/
      
      	PR testsuite/80580
      	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
      	incorrect __MEM syntax.
      
      gcc/testsuite/
      
      	PR testsuite/80580
      	* gcc.dg/gimplefe-error-5.c: New test.
      
      From-SVN: r247900
      Mikhail Maltsev committed
    • GIMPLEFE: Handle invalid unary "*" operand type · ac4eb40f
      gcc/c/
      
      	PR testsuite/80580
      	* gimple-parser.c (c_parser_gimple_unary_expression): Check argument
      	type of unary '*'.
      
      gcc/testsuite/
      
      	PR testsuite/80580
      	* gcc.dg/gimplefe-error-4.c: New test.
      
      From-SVN: r247899
      Mikhail Maltsev committed
    • tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger when counting register pressure. · ab9e91f9
      	* tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
      	when counting register pressure.
      
      From-SVN: r247898
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (compare_cost_pair): New. · e292d606
      	* tree-ssa-loop-ivopts.c (compare_cost_pair): New.
      	(iv_ca_more_deps): Renamed to ...
      	(iv_ca_compare_deps): ... this.
      	(iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
      
      From-SVN: r247897
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump to ... · e97cac02
      	* tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
      	to ...
      	(determine_group_iv_costs): ... here.
      	(find_inv_vars_cb): Record inv var if it's not recorded before.
      
      From-SVN: r247896
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments. · ac5344e0
      	* tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
      	(get_shiftadd_cost): Ditto.
      
      From-SVN: r247895
      Bin Cheng committed
    • tree-ssa-address.c: Include header file. · 7a89b97a
      	* tree-ssa-address.c: Include header file.
      	(move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
      	address.
      	(add_to_parts): Refactor.
      	(addr_to_parts): New parameter.  Update use of move_hint_to_base.
      	(create_mem_ref): Update use of addr_to_parts.  Re-associate addr
      	in new order.
      
      From-SVN: r247894
      Bin Cheng committed
    • re PR tree-optimization/53090 (suboptimal ivopt) · 80ca1cfa
      	PR tree-optimization/53090
      	* tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
      	COMP_IV_EXPR_2.
      	(extract_cond_operands): Detect condition with IV on both sides
      	and return COMP_IV_EXPR_2.
      	(find_interesting_uses_cond): Add iv_use for both IVs in condition.
      	(rewrite_use_compare): Simplify by removing call to function
      	extract_cond_operands.
      
      From-SVN: r247893
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New. · b6a2258f
      	* tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
      	(extract_cond_operands): Detect condition comparing against non-
      	invariant bound and return appropriate enum value.
      	(find_interesting_uses_cond): Update use of extract_cond_operands.
      	Handle its return value accordingly.
      	(determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
      
      From-SVN: r247892
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate nonlinear… · 014ef6e1
      tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate nonlinear iv_use computation in loop invariant sensitive way.
      
      	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
      	nonlinear iv_use computation in loop invariant sensitive way.
      
      From-SVN: r247891
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New. · 06fd3160
      	* tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
      	(find_iv_candidates): Call relate_compare_use_with_all_cands.
      
      From-SVN: r247890
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs. · 4c11bdff
      	* tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
      	(dump_cand): Support iv_cand.inv_exprs.
      	(add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
      	for candidates.
      	(iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
      	iv_cand.inv_exprs.
      
      From-SVN: r247889
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move from ... · 3df50a94
      	* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
      	from ...
      	* tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
      	as local function.  Include necessary header files.
      	* tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
      
      From-SVN: r247888
      Bin Cheng committed
    • * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify. · 37708714
      From-SVN: r247887
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more operators... · c544114f
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
      	operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
      	RSHIFT_EXPR and BIT_NOT_EXPR.
      
      From-SVN: r247886
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify. · f9f69dd6
      	* tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
      	(adjust_setup_cost): New parameter supporting round up adjustment.
      	(struct address_cost_data): Delete.
      	(force_expr_to_var_cost): Don't bound cost with spill_cost.
      	(split_address_cost, ptr_difference_cost): Delete.
      	(difference_cost, compare_aff_trees, record_inv_expr): Delete.
      	(struct ainc_cost_data): New struct.
      	(get_address_cost_ainc): New function.
      	(get_address_cost, get_computation_cost): Reimplement.
      	(determine_group_iv_cost_address): Record inv_expr for all uses of
      	a group.
      	(determine_group_iv_cost_cond): Call get_loop_invariant_expr.
      	(iv_ca_has_deps): Reimplemented to ...
      	(iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
      	than OLD_CP.
      	(iv_ca_extend): Call iv_ca_more_deps.
      
      From-SVN: r247885
      Bin Cheng committed
    • tree-ssa-address.c (struct mem_address): Move to header file. · c2b64cea
      	* tree-ssa-address.c (struct mem_address): Move to header file.
      	(valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
      	* tree-ssa-address.h (struct mem_address): Move from C file.
      	(valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
      
      From-SVN: r247884
      Bin Cheng committed
    • tree-affine.h (aff_combination_type): New interface. · b7b5203d
      	* tree-affine.h (aff_combination_type): New interface.
      	(aff_combination_zero_p): Remove static.
      	(aff_combination_const_p): New interface.
      	(aff_combination_singleton_var_p): New interfaces.
      
      From-SVN: r247883
      Bin Cheng committed