Commit Graph

154867 Commits

Author SHA1 Message Date
Andreas Krebbel
5ef4d61d2b profile-count.h: Fix typos and whitespace issues.
gcc/ChangeLog:

2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* profile-count.h (enum profile_quality): Fix typos and whitespace
	issues.

From-SVN: r249830
2017-06-30 06:46:42 +00:00
Andreas Krebbel
8f746f8c89 S/390: Adjust to the recent branch probability changes.
This fixes the bootstrap failure triggered by the recent changes wrt
branch probabilities aka emit_cmp_and_jump_insns does not accept
integers as branch probability anymore.

gcc/ChangeLog:

2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_setmem): Adjust to the new data
	type for branch probabilities.

From-SVN: r249829
2017-06-30 06:45:51 +00:00
Julian Brown
00c7c57f0d aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
2017-06-29  Julian Brown  <julian@codesourcery.com>
	    Naveen H.S  <Naveen.Hurugalawadi@cavium.com>

	* config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
	* config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
	(thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
	(aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.


Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com>

From-SVN: r249828
2017-06-30 03:58:48 +00:00
Naveen H.S
509f819a8e aarch64.c (aarch_macro_fusion_pair_p): Push the check for CC usage into AARCH64_FUSE_CMP_BRANCH.
2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>

	* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
	check for CC usage into AARCH64_FUSE_CMP_BRANCH.
	* config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
	CC usage from generic code to here.
	* sched-deps.c (sched_macro_fuse_insns): Move the condition for
	CC usage into the target macros.

From-SVN: r249827
2017-06-30 03:50:44 +00:00
GCC Administrator
44b222cee6 Daily bump.
From-SVN: r249826
2017-06-30 00:16:27 +00:00
Maya Rashish
9b260ce0b7 netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared objects.
2017-06-29  Maya Rashish  <coypu@sdf.org>

	* config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
	objects.

From-SVN: r249822
2017-06-29 17:23:06 -06:00
Jan Hubicka
84a1b7fe02 arm-builtins.c: Include profile-count.h
* arm/arm-builtins.c: Include profile-count.h
	* except.c (sjlj_emit_function_enter): Use
	profile_probability::unlikely.

From-SVN: r249821
2017-06-29 22:38:30 +00:00
Paolo Carlini
8e09cb8b39 class.c (add_method): Change pair of errors to error + inform.
/cp
2017-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* class.c (add_method): Change pair of errors to error + inform.
	(handle_using_decl): Likewise.

/testsuite
2017-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp0x/inh-ctor3.C: Adjust for dg-message vs dg-error.
	* g++.dg/diagnostic/variadic1.C: Likewise.
	* g++.dg/gomp/udr-3.C: Likewise.
	* g++.dg/overload/error1.C: Likewise.
	* g++.dg/overload/error2.C: Likewise.
	* g++.dg/template/duplicate1.C: Likewise.
	* g++.old-deja/g++.benjamin/warn02.C: Likewise.
	* g++.old-deja/g++.brendan/arm2.C: Likewise.
	* g++.old-deja/g++.other/redecl2.C: Likewise.
	* g++.old-deja/g++.other/redecl4.C: Likewise.
	* g++.old-deja/g++.pt/memtemp78.C: Likewise.

From-SVN: r249820
2017-06-29 22:32:33 +00:00
Jason Merrill
0395a464ed * constexpr.c, error.c, tree.c: Remove WITH_CLEANUP_EXPR handling.
From-SVN: r249818
2017-06-29 17:44:11 -04:00
Jason Merrill
47304c6a0b PR c++/81180 - ICE with C++17 deduction of member class template.
* pt.c (build_deduction_guide): Correct member template handling.

From-SVN: r249816
2017-06-29 17:13:43 -04:00
Aaron Sawdey
f990f3a3b6 rs6000.c (toc_relative_expr_p): Make tocrel_base and tocrel_offset be pointer args rather than implicitly using...
2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

        * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
        and tocrel_offset be pointer args rather than implicitly using
        static versions.
        (legitimate_constant_pool_address_p, rs6000_emit_move,
        const_load_sequence_p, adjust_vperm): Add local tocrel_base and
        tocrel_offset and use in toc_relative_expr_p call.
        (print_operand, print_operand_address): Use static tocrel_base_oac
        and tocrel_offset_oac.
        (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
        tocrel_offset_oac.

From-SVN: r249815
2017-06-29 15:10:05 -05:00
Jason Merrill
5497bd2bb6 PR c++/81188 - matching decltype of member function call.
* tree.c (cp_tree_equal): Remove COMPONENT_REF special case.

From-SVN: r249813
2017-06-29 15:44:12 -04:00
Maya Rashish
becb93d02c builtins.md (ffssi2_internal): Correct constraint.
2017-06-29  Maya Rashish  <coypu@sdf.org>

	* config/vax/builtins.md (ffssi2_internal): Correct constraint.

From-SVN: r249812
2017-06-29 13:43:15 -06:00
Eric Botcazou
3ba358bf20 expr.c (expand_expr): When testing for unaligned objects...
* expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
	objects, take into account only the alignment of 'op0' and 'mode1' if
	'op0' is a MEM.

From-SVN: r249811
2017-06-29 19:21:25 +00:00
Cesar Philippidis
74582a3e2e re PR fortran/77765 (ICE in gfc_match_oacc_routine, at fortran/openmp.c:1781)
PR fortran/77765

	gcc/fortran/
	* openmp.c (gfc_match_oacc_routine): Check if proc_name exist before
	comparing the routine name against it.

	gcc/testsuite/
	* gfortran.dg/goacc/pr77765.f90: New test.

From-SVN: r249809
2017-06-29 12:03:43 -07:00
Steve Ellcey
6da4066f34 ccmp_2.c: New test.
2017-06-29  Steve Ellcey  <sellcey@cavium.com>

	* gcc.target/aarch64/ccmp_2.c: New test.

From-SVN: r249806
2017-06-29 18:23:40 +00:00
Steve Ellcey
f580a969d7 ccmp.c (ccmp_tree_comparison_p): New function.
2017-06-29  Steve Ellcey  <sellcey@cavium.com>

	* ccmp.c (ccmp_tree_comparison_p): New function.
	(ccmp_candidate_p): Update to use above function.
	(get_compare_parts): New function.
	(expand_ccmp_next): Update to use new functions.
	(expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
	new functions.
	(expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
	take mode as argument.
	* ccmp.h (expand_ccmp_expr): Add mode as argument.
	* expr.c (expand_expr_real_1): Pass mode as argument.

From-SVN: r249805
2017-06-29 18:20:14 +00:00
Nathan Sidwell
be3b7dcf5c re PR c++/81247 (ICE on invalid C++ code with malformed namespace declaration: in do_push_nested_namespace, at cp/name-lookup.c:6002)
PR c++/81247
	* parser.c (cp_parser_namespace_definition): Immediately close the
	namespace if there's no open-brace.
	* name-lookup.c (do_pushdecl): Reset OLD when pushing into new
	namespace.

From-SVN: r249804
2017-06-29 18:20:13 +00:00
Sylvestre Ledru
6044f5e327 bid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace.
* bid/bid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace.
	(_dpd_to_bid32): Simplify identical code on multiple branches.
	Fix whitespace.
	(_bid_to_dpd64, _dpd_to_bid64): Likewise.
	(_bid_to_dpd128, _dpd_to_bid128): Likewise.

From-SVN: r249803
2017-06-29 11:35:03 -06:00
Segher Boessenkool
e9d22c8ab3 combine: Print insns with the cost dump
In the combine dump file, at the start there is a list of the RTL cost
of every insn.  The only thing listed about the insns is the UID though.
To make it more useful, this patch prints the insn itself as well (in
slim format).


	* combine.c (combine_instructions): Print insns to dump_file, together
	with their costs.

From-SVN: r249802
2017-06-29 19:28:47 +02:00
Jan Hubicka
357067f243 asan.c (asan_emit_stack_protection): Update.
* asan.c (asan_emit_stack_protection): Update.
	(create_cond_insert_point): Update.
	* auto-profile.c (afdo_propagate_circuit): Update.
	* basic-block.h (struct edge_def): Turn probability to
	profile_probability.
	(EDGE_FREQUENCY): Update.
	* bb-reorder.c (find_traces_1_round): Update.
	(better_edge_p): Update.
	(sanitize_hot_paths): Update.
	* cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
	(make_single_succ_edge): Update.
	(check_bb_profile): Update.
	(dump_edge_info): Update.
	(update_bb_profile_for_threading): Update.
	* cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
	probabilitycount to 0.
	* cfgbuild.c (compute_outgoing_frequencies): Update.
	* cfgcleanup.c (try_forward_edges): Update.
	(outgoing_edges_match): Update.
	(try_crossjump_to_edge): Update.
	* cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
	(expand_gimple_tailcall): Update.
	(construct_init_block): Use make_single_succ_edge.
	(construct_exit_block): Use make_single_succ_edge.
	* cfghooks.c (verify_flow_info): Update.
	(redirect_edge_succ_nodup): Update.
	(split_edge): Update.
	(account_profile_record): Update.
	* cfgloopanal.c (single_likely_exit): Update.
	* cfgloopmanip.c (scale_loop_profile): Update.
	(set_zero_probability): Remove.
	(duplicate_loop_to_header_edge): Update.
	* cfgloopmanip.h (loop_version): Update prototype.
	* cfgrtl.c (try_redirect_by_replacing_jump): Update.
	(force_nonfallthru_and_redirect): Update.
	(update_br_prob_note): Update.
	(rtl_verify_edges): Update.
	(purge_dead_edges): Update.
	(rtl_lv_add_condition_to_bb): Update.
	* cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
	* cgraphunit.c (init_lowered_empty_function): Update.
	(cgraph_node::expand_thunk): Update.
	* cilk-common.c: Include profile-count.h
	* dojump.c (inv): Remove.
	(jumpifnot): Update.
	(jumpifnot_1): Update.
	(do_jump_1): Update.
	(do_jump): Update.
	(do_jump_by_parts_greater_rtx): Update.
	(do_compare_rtx_and_jump): Update.
	* dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
	do_jump_1. do_compare_rtx_and_jump): Update prototype.
	* dwarf2cfi.c: Include profile-count.h
	* except.c (dw2_build_landing_pads): Use make_single_succ_edge.
	(sjlj_emit_dispatch_table): Likewise.
	* explow.c: Include profile-count.h
	* expmed.c (emit_store_flag_force): Update.
	(do_cmp_and_jump): Update.
	* expr.c (compare_by_pieces_d::generate): Update.
	(compare_by_pieces_d::finish_mode): Update.
	(emit_block_move_via_loop): Update.
	(store_expr_with_bounds): Update.
	(store_constructor): Update.
	(expand_expr_real_2): Update.
	(expand_expr_real_1): Update.
	* expr.h (try_casesi, try_tablejump): Update prototypes.
	* gimple-pretty-print.c (dump_probability): Update.
	(dump_profile): New.
	(dump_gimple_label): Update.
	(dump_gimple_bb_header): Update.
	* graph.c (draw_cfg_node_succ_edges): Update.
	* hsa-gen.c (convert_switch_statements): Update.
	* ifcvt.c (cheap_bb_rtx_cost_p): Update.
	(find_if_case_1): Update.
	(find_if_case_2): Update.
	* internal-fn.c (expand_arith_overflow_result_store): Update.
	(expand_addsub_overflow): Update.
	(expand_neg_overflow): Update.
	(expand_mul_overflow): Update.
	(expand_vector_ubsan_overflow): Update.
	* ipa-cp.c (good_cloning_opportunity_p): Update.
	* ipa-split.c (split_function): Use make_single_succ_edge.
	* ipa-utils.c (ipa_merge_profiles): Update.
	* loop-doloop.c (add_test): Update.
	(doloop_modify): Update.
	* loop-unroll.c (compare_and_jump_seq): Update.
	(unroll_loop_runtime_iterations): Update.
	* lra-constraints.c (lra_inheritance): Update.
	* lto-streamer-in.c (input_cfg): Update.
	* lto-streamer-out.c (output_cfg): Update.
	* mcf.c (adjust_cfg_counts): Update.
	* modulo-sched.c (sms_schedule): Update.
	* omp-expand.c (expand_omp_for_init_counts): Update.
	(extract_omp_for_update_vars): Update.
	(expand_omp_ordered_sink): Update.
	(expand_omp_for_ordered_loops): Update.
	(expand_omp_for_generic): Update.
	(expand_omp_for_static_nochunk): Update.
	(expand_omp_for_static_chunk): Update.
	(expand_cilk_for): Update.
	(expand_omp_simd): Update.
	(expand_omp_taskloop_for_outer): Update.
	(expand_omp_taskloop_for_inner): Update.
	* omp-simd-clone.c (simd_clone_adjust): Update.
	* optabs.c (expand_doubleword_shift): Update.
	(expand_abs): Update.
	(emit_cmp_and_jump_insn_1): Update.
	(expand_compare_and_swap_loop): Update.
	* optabs.h (emit_cmp_and_jump_insns): Update prototype.
	* predict.c (predictable_edge_p): Update.
	(edge_probability_reliable_p): Update.
	(set_even_probabilities): Update.
	(combine_predictions_for_insn): Update.
	(combine_predictions_for_bb): Update.
	(propagate_freq): Update.
	(estimate_bb_frequencies): Update.
	(force_edge_cold): Update.
	* profile-count.c (profile_count::dump): Add missing space into dump.
	(profile_count::debug): Add newline.
	(profile_count::differs_from_p): Explicitly convert to unsigned.
	(profile_count::stream_in): Update.
	(profile_probability::dump): New member function.
	(profile_probability::debug): New member function.
	(profile_probability::differs_from_p): New member function.
	(profile_probability::differs_lot_from_p): New member function.
	(profile_probability::stream_in): New member function.
	(profile_probability::stream_out): New member function.
	* profile-count.h (profile_count_quality): Rename to ...
	(profile_quality): ... this one.
	(profile_probability): New.
	(profile_count): Update.
	* profile.c (compute_branch_probabilities): Update.
	* recog.c (peep2_attempt): Update.
	* sched-ebb.c (schedule_ebbs): Update.
	* sched-rgn.c (find_single_block_region): Update.
	(compute_dom_prob_ps): Update.
	(schedule_region): Update.
	* sel-sched-ir.c (compute_succs_info): Update.
	* stmt.c (struct case_node): Update.
	(do_jump_if_equal): Update.
	(get_outgoing_edge_probs): Update.
	(conditional_probability): Update.
	(emit_case_dispatch_table): Update.
	(expand_case): Update.
	(expand_sjlj_dispatch_table): Update.
	(emit_case_nodes): Update.
	* targhooks.c: Update.
	* tracer.c (better_p): Update.
	(find_best_successor): Update.
	* trans-mem.c (expand_transaction): Update.
	* tree-call-cdce.c: Update.
	* tree-cfg.c (gimple_split_edge): Upate.
	(move_sese_region_to_fn): Upate.
	* tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
	* tree-eh.c (lower_resx): Upate.
	(cleanup_empty_eh_move_lp): Upate.
	* tree-if-conv.c (version_loop_for_if_conversion): Update.
	* tree-inline.c (copy_edges_for_bb): Update.
	(copy_cfg_body): Update.
	* tree-parloops.c (gen_parallel_loop): Update.
	* tree-profile.c (gimple_gen_ic_func_profiler): Update.
	(gimple_gen_time_profiler): Update.
	* tree-ssa-dce.c (remove_dead_stmt): Update.
	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
	* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
	(unloop_loops): Update.
	(try_peel_loop): Update.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
	* tree-ssa-loop-split.c (connect_loops): Update.
	(split_loop): Update.
	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
	(hoist_guard): Update.
	* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
	(value_replacement): Update.
	* tree-ssa-reassoc.c (branch_fixup): Update.
	* tree-ssa-tail-merge.c (replace_block_by): Update.
	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
	(create_edge_and_update_destination_phis): Update.
	(compute_path_counts): Update.
	(recompute_probabilities): Update.
	(update_joiner_offpath_counts): Update.
	(freqs_to_counts_path): Update.
	(duplicate_thread_path): Update.
	* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
	(struct switch_conv_info): Update.
	(gen_inbound_check): Update.
	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
	(vect_do_peeling): Update.
	(vect_loop_versioning): Update.
	* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
	(optimize_mask_stores): Update.
	* ubsan.c (ubsan_expand_null_ifn): Update.
	* value-prof.c (gimple_divmod_fixed_value): Update.
	(gimple_divmod_fixed_value_transform): Update.
	(gimple_mod_pow2): Update.
	(gimple_mod_pow2_value_transform): Update.
	(gimple_mod_subtract): Update.
	(gimple_mod_subtract_transform): Update.
	(gimple_ic): Update.
	(gimple_stringop_fixed_value): Update.
	(gimple_stringops_transform): Update.
	* value-prof.h: Update.

From-SVN: r249800
2017-06-29 16:40:53 +00:00
Ian Lance Taylor
fac877a14a Makefile.am (MOSTLYCLEANFILES): Remove testing files and logs.
* Makefile.am (MOSTLYCLEANFILES): Remove testing files and logs.
	(mostlyclean-local): Remove check-runtime-dir, cgo-test-dir,
	carchive-test-dir.
	(ECHO_ENV): Define.
	(check-go-tool): Depend on cgo.  Write command to testlog.
	(check-runtime): New target.
	(check-cgo-test): New target.
	(check-carchive-test): New target.
	(check): Depend on check-runtime, check-cgo-test,
	check-carchive-test.  Add @ to prettify output.
	(.PHONY): Add check-runtime, check-cgo-test, check-carchive-test.
	* Makefile.in: Rebuild.

From-SVN: r249799
2017-06-29 16:01:38 +00:00
Carl Love
e5898daf4c rs6000-c.c: Add support for built-in functions vector signed int vec_signed (vector float)...
gcc/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000-c.c: Add support for built-in functions
	vector signed int vec_signed (vector float);
	vector signed long long vec_signed (vector double);
	vector signed int vec_signed2 (vector double, vector double);
	vector signed int vec_signede (vector double);
	vector signed int vec_signedo (vector double);
	* config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
	instruction generator.
	* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
	UNSPEC_VSX_VSIGNED2): Add UNSPECS.
	(vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
	Add define_insn.
	(vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
	vunsignede_v2df): Add define_expands.
	* config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
	VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
	VEC_UNSIGNEDO): Add definitions.
	* config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
	UNSPEC_VSX_VSIGNED2): Add UNSPECs.
	(vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
	(vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
	vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
	* config/rs6000/altivec.h (vec_signed, vec_signed2,
	vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
	vec_unsignede, vec_unsignedo): Add builtin defines.
	* config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
	declaration.
	* doc/extend.texi: Update the built-in documentation file for the
	new built-in functions.

gcc/testsuite/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-3-runnable.c (test_int_result,
	test_unsigned_int_result, test_ll_int_result,
	test_ll_unsigned_int_result): Add result checking functions, add
	debug support.
	(main): Add builtin function tests.

From-SVN: r249798
2017-06-29 15:39:57 +00:00
Jason Merrill
84eb0f1a3b PR c++/81164 - ICE with invalid inherited constructor.
* search.c (binfo_direct_p): New.
	* name-lookup.c (do_class_using_decl): Use it.

From-SVN: r249797
2017-06-29 11:30:11 -04:00
Ian Lance Taylor
8ff22ea5a8 misc/cgo/testcarchive: fix test to work for gccgo
This test is not yet run, but it will be soon.
    
    Reviewed-on: https://go-review.googlesource.com/47038

From-SVN: r249795
2017-06-29 15:17:20 +00:00
Ian Lance Taylor
1a7ad6ad66 cmd/go: fix -buildmode={c-archive,c-shared,pie} for gccgo
The tests are misc/cgo tests that are not currently run but will be
    run soon.
    
    Reviewed-on: https://go-review.googlesource.com/47037

From-SVN: r249794
2017-06-29 15:14:05 +00:00
Carl Love
14836f38b4 builtins-3-vec_reve-runnable.c (dg-options, dg-skip-if): Add -mvsx -mcpu=power7.
gcc/testsuite/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-3-vec_reve-runnable.c (dg-options,
	dg-skip-if): Add -mvsx -mcpu=power7.

From-SVN: r249792
2017-06-29 15:11:25 +00:00
Nathan Sidwell
e3e6cc260a cp-tree.h (THIS_NAME, [...]): Delete.
* cp-tree.h (THIS_NAME, IN_CHARGE_NAME, VTBL_PTR_TYPE,
	VTABLE_DELTA_NAME, VTABLE_PFN_NAME): Delete.
	* decl.c (initialize_predefined_identifiers): Name cdtor special
	names consistently.  Use literals for above deleted defines.
	(cxx_init_decl_processing): Use literal for vtbl_ptr_type name,

From-SVN: r249791
2017-06-29 14:49:46 +00:00
Nathan Sidwell
2de0ccc88c lex.c (maybe_add_lang_type_raw): Exit early, rather than use a flag.
* lex.c (maybe_add_lang_type_raw): Exit early, rather than use a
	flag.

From-SVN: r249790
2017-06-29 14:45:44 +00:00
Nathan Sidwell
56b2a94b43 call.c (check_dtor_name): Use constructor_name for enums too.
* call.c (check_dtor_name): Use constructor_name for enums too.
	(build_new_method_call_1): Use constructor_name for cdtors and
	show ~ for dtor.
	* class.c (build_self_reference): Use TYPE_NAME to get name of
	self reference.
	* name-lookup (constructor_name): Use DECL_NAME directly.
	(constructor_name_p): Reimplement.
	(push_class_level_binding_1): Use TYPE_NAME directly.

From-SVN: r249789
2017-06-29 14:38:09 +00:00
Nathan Sidwell
79a2e690b4 class.c (finish_struct): Use OVL_P.
* class.c (finish_struct): Use OVL_P.
	(get_vfield_name): Measure constructor_name length.
	* cp-tree.h (SET_CLASS_TYPE_P): Add RECORD_OR_UNION_CHECK.
	(NON_UNION_CLASS_TYPE_P): Check RECORD_TYPE up front.
	* cxx-pretty-print.c (is_destructor_name): Delete.
	(pp_cxx_unqualified_id): Remove bogus destructor name checking.
	* decl.c (grokfndecl): Move cheap checks first when looking for
	implicit extern cness.

From-SVN: r249788
2017-06-29 14:28:24 +00:00
Nathan Sidwell
9a82bd058d parser.c (cp_parser_direct_declarator): Reorder if to avoid indentation.
* parser.c (cp_parser_direct_declarator): Reorder if to avoid
	indentation. Remove unnecessary assignment of constructor name.

From-SVN: r249787
2017-06-29 14:16:58 +00:00
Nathan Sidwell
e98889226c Whitespace cleanups.
* call.c (name_as_c_string): Move CONST_CAST to return.
	(build_new_method_call_1): Remove unneeded bracing.
	* class.c (include_empty_classes): Unbreak line.
	* constraint.cc (tsubst_check_constraint): Add space.
	* cp-tree.h (lang_decl_ns): Add comment.
	(PTRMEM_CST_MEMBER): Break line.
	* decl.c (grokfndecl): Add blank lines. Unbreak some others.
	(grokdeclarator): Remove lines, move declaration to first use.
	* decl2.c (decl_needed_p): Fix indentation.
	(c_parse_final_cleanups): Remove blank line.
	* method.c (implicitly_declare_fn): Move declaration to first use.
	* search.c (current_scope): Add blank lines.

From-SVN: r249786
2017-06-29 14:13:11 +00:00
Richard Biener
0630a4ecda tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to LOOP_VINFO_REDUCTIONS.
2017-06-29  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
	reduction chains to LOOP_VINFO_REDUCTIONS.
	* tree-vect-slp.c (vect_analyze_slp): Continue looking for
	SLP reductions after processing reduction chains.

	* gcc.dg/vect/slp-reduc-8.c: New testcase.

From-SVN: r249785
2017-06-29 14:04:02 +00:00
Nathan Sidwell
f76b422479 builtins.c (fold_builtin_FUNCTION): Use lang_hooks.decl_printable_name.
gcc/
	* builtins.c (fold_builtin_FUNCTION): Use
	lang_hooks.decl_printable_name.

	gcc/cp/
	* g++.dg/cpp1y/builtin_FUNCTION.C: New.

From-SVN: r249784
2017-06-29 14:00:44 +00:00
Peter Bergner
f66459c160 re PR middle-end/81194 (ICE during RTL pass: expand)
gcc/
	PR middle-end/81194
	* cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
	with only one label.
	* stmt.c (expand_case): Assert NCASES is greater than one.

gcc/testsuite/
	PR middle-end/81194
	* g++.dg/pr81194.C: New test.

From-SVN: r249783
2017-06-29 07:58:32 -05:00
H.J. Lu
3c7bb48912 Add a testcase for PR ipa/80565
The testcase in

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80565

is passing now.  Check in the testcase and resolve it as fixed.

	PR ipa/80565
	* gcc.dg/torture/pr80565.c: New file.

From-SVN: r249782
2017-06-29 05:53:47 -07:00
Richard Biener
4e3e8a5f81 tree-cfg.c (group_case_labels_stmt): Return whether we changed anything.
2017-06-29  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (group_case_labels_stmt): Return whether we changed
	anything.
	(group_case_labels): Likewise.
	(find_taken_edge): Push sanity checking on val to workers...
	(find_taken_edge_cond_expr): ... here
	(find_taken_edge_switch_expr): ... and here, handle cases
	with just a default label.
	* tree-cfg.h (group_case_labels_stmt): Adjust prototype.
	(group_case_labels): Likewise.
	* tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
	group_case_labels does anything cleanup the CFG again.

From-SVN: r249780
2017-06-29 11:25:29 +00:00
Bin Cheng
6cd83bec4b re PR tree-optimization/81196 (Number of iterations found for p!=q but not for p<q)
PR tree-optimization/81196
	* tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
	exit condition comparing two IVs.

	gcc/testsuite
	* gcc.dg/vect/pr81196.c: New.

From-SVN: r249778
2017-06-29 10:41:28 +00:00
Richard Earnshaw
a7c9a30424 [arm] Fix bootstrap - missing initializer in tail entry of autogenerated code
My patch yesterday accidentally missed a hunk that added the
update to the tail entry of the autogenerated data structure
produced by parsecpu.awk.  This causes native bootstraps to
fail.

This patch adds back the missing hunk.

2017-06-29  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/parsecpu.awk (gen_comm_data): Add initializer for
	profile to the dummy entry at the end of the list of architectures.
	* config/arm/arm-cpu-cdata.h: Regenerated.

From-SVN: r249777
2017-06-29 10:24:04 +00:00
Michael Collison
4c6a51a05f 2017-06-29 Michael Collison <michael.collison@arm.com>
Fix date on prevfious ChangeLog entry.

From-SVN: r249775
2017-06-29 09:24:45 +00:00
Kyrylo Tkachov
7813b28043 re PR target/70119 (AArch64 should take advantage of implicit truncation of variable shift amount without defining SHIFT_COUNT_TRUNCATED)
2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Michael Collison <michael.collison@arm.com>

	PR target/70119
	* config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
	New pattern.
	(*aarch64_reg_<mode>3_neg_mask2): New pattern.
	(*aarch64_reg_<mode>3_minus_mask): New pattern.
	(*aarch64_<optab>_reg_di3_mask2): New pattern.
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
	of shift when the shift amount is masked with constant equal to
	the size of the mode.
	* config/aarch64/predicates.md (subreg_lowpart_operator): New
	predicate.


2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Michael Collison <michael.collison@arm.com>

	PR target/70119
	* gcc.target/aarch64/var_shift_mask_1.c: New test.

Co-Authored-By: Michael Collison <michael.collison@arm.com>

From-SVN: r249774
2017-06-29 09:21:57 +00:00
Martin Liska
696bafe613 Fix -mbranch-cost range.
2017-06-29  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.opt: Change range from [1,5] to [0,5].

From-SVN: r249773
2017-06-29 09:01:27 +00:00
Yury Gribov
c8fb20d8bd re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on x86_64-linux-gnu (in edge_badness, at ipa-inline.c:1028))
2017-06-29  Yury Gribov  <tetra2005@gmail.com>

	PR bootstrap/80565
        * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
	code.
        * ipa-inline.h
	(edge_growth_cache_entry::edge_growth_cache_entry): New
	function.
        (reset_edge_growth_cache): Update to use constructor.

From-SVN: r249771
2017-06-29 11:50:21 +03:00
GCC Administrator
1cc6250db0 Daily bump.
From-SVN: r249769
2017-06-29 00:16:28 +00:00
Ramana Radhakrishnan
9850348784 [AArch64] Do not increase data alignment at -Os and with -fconserve-stack.
We unnecessarily align data to 8 byte alignments even when -Os is
specified. This brings the logic in the AArch64 backend more in line
with the ARM backend and helps gain some image size in a few
places. Caught by an internal report on the size of rodata sections
being high with aarch64 gcc.

* config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
  (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
  (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.

Bootstrapped and regression tested on aarch64-none-linux-gnu with no
regressions.

From-SVN: r249764
2017-06-28 22:09:50 +00:00
Jason Merrill
cffc4a68d7 PR c++/72764 - ICE with invalid template typename.
* decl.c (build_typename_type): No longer static.
	* tree.c (strip_typedefs): Use it instead of make_typename_type.

From-SVN: r249760
2017-06-28 17:06:35 -04:00
Sebastian Peryt
395a191d0b * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
(_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.

testsuite/ChangeLog:

	* gcc.target/i386/avx512vl-vpermd-1.c (_mm256_permutexvar_epi32):
	Test new intrinsic.
	* gcc.target/i386/avx512vl-vpermq-imm-1.c (_mm256_permutex_epi64):
	Ditto.
	* gcc.target/i386/avx512vl-vpermq-var-1.c (_mm256_permutexvar_epi64):
	Ditto.
	* gcc.target/i386/avx512f-vpermd-2.c: Do not check for AVX512F_LEN.
	* gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto.
	* gcc.target/i386/avx512f-vpermq-var-2.c: Ditto.

From-SVN: r249759
2017-06-28 22:59:51 +02:00
Jason Merrill
38a79c5a95 PR c++/69300 - ICE with self-referential noexcept
* pt.c (maybe_instantiate_noexcept): Check for recursion.

From-SVN: r249757
2017-06-28 16:02:12 -04:00
Jason Merrill
7e61b3d4fd PR c++/61022 - error with variadic template template parm
* pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION.

From-SVN: r249756
2017-06-28 15:59:44 -04:00