1. 29 Jun, 2017 27 commits
    • bid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace. · 6044f5e3
      	* 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
      Sylvestre Ledru committed
    • combine: Print insns with the cost dump · e9d22c8a
      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
      Segher Boessenkool committed
    • asan.c (asan_emit_stack_protection): Update. · 357067f2
      
      	* 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
      Jan Hubicka committed
    • Makefile.am (MOSTLYCLEANFILES): Remove testing files and logs. · fac877a1
      	* 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
      Ian Lance Taylor committed
    • rs6000-c.c: Add support for built-in functions vector signed int vec_signed (vector float)... · e5898daf
      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
      Carl Love committed
    • PR c++/81164 - ICE with invalid inherited constructor. · 84eb0f1a
      	* search.c (binfo_direct_p): New.
      	* name-lookup.c (do_class_using_decl): Use it.
      
      From-SVN: r249797
      Jason Merrill committed
    • misc/cgo/testcarchive: fix test to work for gccgo · 8ff22ea5
          
          This test is not yet run, but it will be soon.
          
          Reviewed-on: https://go-review.googlesource.com/47038
      
      From-SVN: r249795
      Ian Lance Taylor committed
    • cmd/go: fix -buildmode={c-archive,c-shared,pie} for gccgo · 1a7ad6ad
          
          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
      Ian Lance Taylor committed
    • builtins-3-vec_reve-runnable.c (dg-options, dg-skip-if): Add -mvsx -mcpu=power7. · 14836f38
      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
      Carl Love committed
    • cp-tree.h (THIS_NAME, [...]): Delete. · e3e6cc26
      	* 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
      Nathan Sidwell committed
    • lex.c (maybe_add_lang_type_raw): Exit early, rather than use a flag. · 2de0ccc8
      	* lex.c (maybe_add_lang_type_raw): Exit early, rather than use a
      	flag.
      
      From-SVN: r249790
      Nathan Sidwell committed
    • call.c (check_dtor_name): Use constructor_name for enums too. · 56b2a94b
      	* 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
      Nathan Sidwell committed
    • class.c (finish_struct): Use OVL_P. · 79a2e690
      	* 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
      Nathan Sidwell committed
    • parser.c (cp_parser_direct_declarator): Reorder if to avoid indentation. · 9a82bd05
      	* parser.c (cp_parser_direct_declarator): Reorder if to avoid
      	indentation. Remove unnecessary assignment of constructor name.
      
      From-SVN: r249787
      Nathan Sidwell committed
    • Whitespace cleanups. · e9888922
      	* 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
      Nathan Sidwell committed
    • tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to… · 0630a4ec
      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
      Richard Biener committed
    • builtins.c (fold_builtin_FUNCTION): Use lang_hooks.decl_printable_name. · f76b4224
      	gcc/
      	* builtins.c (fold_builtin_FUNCTION): Use
      	lang_hooks.decl_printable_name.
      
      	gcc/cp/
      	* g++.dg/cpp1y/builtin_FUNCTION.C: New.
      
      From-SVN: r249784
      Nathan Sidwell committed
    • re PR middle-end/81194 (ICE during RTL pass: expand) · f66459c1
      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
      Peter Bergner committed
    • Add a testcase for PR ipa/80565 · 3c7bb489
      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
      H.J. Lu committed
    • tree-cfg.c (group_case_labels_stmt): Return whether we changed anything. · 4e3e8a5f
      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
      Richard Biener committed
    • re PR tree-optimization/81196 (Number of iterations found for p!=q but not for p<q) · 6cd83bec
      	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
      Bin Cheng committed
    • [arm] Fix bootstrap - missing initializer in tail entry of autogenerated code · a7c9a304
      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
      Richard Earnshaw committed
    • 2017-06-29 Michael Collison <michael.collison@arm.com> · 4c6a51a0
      	Fix date on prevfious ChangeLog entry.
      
      From-SVN: r249775
      Michael Collison committed
    • re PR target/70119 (AArch64 should take advantage of implicit truncation of… · 7813b280
      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
      Kyrylo Tkachov committed
    • Fix -mbranch-cost range. · 696bafe6
      2017-06-29  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.opt: Change range from [1,5] to [0,5].
      
      From-SVN: r249773
      Martin Liska committed
    • re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on… · c8fb20d8
      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
      Yury Gribov committed
    • Daily bump. · 1cc6250d
      From-SVN: r249769
      GCC Administrator committed
  2. 28 Jun, 2017 13 commits
    • [AArch64] Do not increase data alignment at -Os and with -fconserve-stack. · 98503487
      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
      Ramana Radhakrishnan committed
    • PR c++/72764 - ICE with invalid template typename. · cffc4a68
      	* decl.c (build_typename_type): No longer static.
      	* tree.c (strip_typedefs): Use it instead of make_typename_type.
      
      From-SVN: r249760
      Jason Merrill committed
    • * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64) · 395a191d
      	(_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
      Sebastian Peryt committed
    • PR c++/69300 - ICE with self-referential noexcept · 38a79c5a
      	* pt.c (maybe_instantiate_noexcept): Check for recursion.
      
      From-SVN: r249757
      Jason Merrill committed
    • PR c++/61022 - error with variadic template template parm · 7e61b3d4
      	* pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION.
      
      From-SVN: r249756
      Jason Merrill committed
    • PR c++/72801 - ICE with variadic partial specialization · d778c637
      	* pt.c (unify_pack_expansion): Use PACK_EXPANSION_EXTRA_ARGS.
      
      From-SVN: r249755
      Jason Merrill committed
    • PR c++/55639 - partial specialization with ::template · 4516a545
      	* parser.c (cp_parser_class_head): Handle ::template.
      
      From-SVN: r249754
      Jason Merrill committed
    • PR c++/45976 - error with ::template in declarator. · 36f48ebd
      	* pt.c (resolve_typename_type): Fix TEMPLATE_ID_EXPR handling.
      
      From-SVN: r249753
      Jason Merrill committed
    • PR c++/54769 - wrong lookup of dependent template-name. · 1e5f79b6
      	* parser.c (cp_parser_template_name): Handle dependent object type.
      	(cp_parser_nested_name_specifier_opt): Make template_keyword_p a
      	parameter.
      	(cp_parser_id_expression): Pass it.
      	(cp_parser_diagnose_invalid_type_name): Handle TEMPLATE_ID_EXPR.
      
      From-SVN: r249752
      Jason Merrill committed
    • Make the TEMPLATE_ID_EXPR location a range. · dc3b932e
      	* parser.c (cp_parser_template_id): Use the range location on the
      	TEMPLATE_ID_EXPR.
      
      From-SVN: r249751
      Jason Merrill committed
    • PR c++/81204 - parse error with dependent template-name · 2a4754f5
      	* parser.c (cp_parser_lookup_name): Disqualify function templates
      	after lookup.
      
      From-SVN: r249750
      Jason Merrill committed
    • multiarch support for non-glibc linux systems · ad669a1a
      Current multiarch directory name is always *-linux-gnu* on linux,
      this patch configures different names for uclibc and musl targets.
      
      2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
      
      	* config.gcc (*-linux-musl*): Add t-musl tmake_file.
      	(*-linux-uclibc*): Add t-uclibc tmake_file.
      	* config/t-musl: New.
      	* config/t-uclibc: New.
      
      From-SVN: r249745
      Szabolcs Nagy committed
    • [ARM] Consistently check for neon in vect effective targets · 0ddc0ebc
      Conditions checked for ARM targets in vector-related effective targets
      are inconsistent:
      
      * sometimes arm*-*-* is checked
      * sometimes Neon is checked
      * sometimes arm_neon_ok and sometimes arm_neon is used for neon check
      * sometimes check_effective_target_* is used, sometimes
      * is-effective-target
      
      This patch consolidate all of these check into using is-effective-target
      arm_neon and when little endian was checked, the check is kept.
      
      2017-06-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * lib/target-supports.exp (check_effective_target_vect_int): Replace
          current ARM check by ARM NEON's availability check.
          (check_effective_target_vect_intfloat_cvt): Likewise.
          (check_effective_target_vect_uintfloat_cvt): Likewise.
          (check_effective_target_vect_floatint_cvt): Likewise.
          (check_effective_target_vect_floatuint_cvt): Likewise.
          (check_effective_target_vect_shift): Likewise.
          (check_effective_target_whole_vector_shift): Likewise.
          (check_effective_target_vect_bswap): Likewise.
          (check_effective_target_vect_shift_char): Likewise.
          (check_effective_target_vect_long): Likewise.
          (check_effective_target_vect_float): Likewise.
          (check_effective_target_vect_perm): Likewise.
          (check_effective_target_vect_perm_byte): Likewise.
          (check_effective_target_vect_perm_short): Likewise.
          (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise.
          (check_effective_target_vect_widen_sum_qi_to_hi): Likewise.
          (check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
          (check_effective_target_vect_widen_mult_hi_to_si): Likewise.
          (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
          (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
          (check_effective_target_vect_widen_shift): Likewise.
          (check_effective_target_vect_extract_even_odd): Likewise.
          (check_effective_target_vect_interleave): Likewise.
          (check_effective_target_vect_multiple_sizes): Likewise.
          (check_effective_target_vect64): Likewise.
          (check_effective_target_vect_max_reduc): Likewise.
      
      From-SVN: r249744
      Thomas Preud'homme committed