1. 11 May, 2017 32 commits
    • 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
    • tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Skip unreachable… · 7581ce9a
      tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Skip unreachable blocks and destinations.
      
      2017-05-11  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
      	Skip unreachable blocks and destinations.
      	(eliminate): Move stmt removal and fixup ...
      	(fini_eliminate): ... here.  Skip inserted exprs.
      	(pass_pre::execute): Move fini_pre after fini_eliminate.
      	* tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
      	(tail_merge_optimize): Run cleanup_tree_cfg if requested by
      	PRE to get rid of dead code that has invalid SSA form and
      	split critical edges again.
      
      From-SVN: r247882
      Richard Biener committed
    • * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. · 86b001e0
      From-SVN: r247881
      Bin Cheng committed
    • re PR c++/80682 (__is_trivially_constructible(void, int) returns true.) · e81c8328
      PR c++/80682
      
      cp/
      
      PR c++/80682
      * method.c (is_trivially_xible): Reject void types.
      
      testsuite/
      
      PR c++/80682
      * g++.dg/ext/is_trivially_constructible1.C: Add tests for void target.
      
      From-SVN: r247880
      Ville Voutilainen committed
    • passes.c (execute_function_todo): Verify loops if they are said to be up-to-date. · 687aed9c
      2017-05-11  Richard Biener  <rguenther@suse.de>
      
      	* passes.c (execute_function_todo): Verify loops if they are
      	said to be up-to-date.
      	* cfgexpand.c (pass_expand::execute): Discard loops for -dx.
      	* trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
      
      From-SVN: r247879
      Richard Biener committed
    • Daily bump. · eb5095f8
      From-SVN: r247878
      GCC Administrator committed
  2. 10 May, 2017 8 commits