1. 29 Jul, 2017 21 commits
    • debug.h (struct gcc_debug_hooks): Add IMPLICIT argument to imported_module_or_decl hook. · e071b767
      	* debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
      	to imported_module_or_decl hook.
      	(debug_nothing_tree_tree_tree_bool): Remove.
      	(debug_nothing_tree_tree_tree_bool_bool): New declaration.
      	* debug.c (do_nothing_debug_hooks): Use
      	debug_nothing_tree_tree_tree_bool_bool instead of
      	debug_nothing_tree_tree_tree_bool.
      	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
      	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
      	* sdbout.c (sdb_debug_hooks): Likewise.
      	* dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
      	(gen_namespace_die): Add DW_AT_export_symbols attribute if
      	langhook wants it.
      	(dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
      	if true, -gdwarf-5 and decl will have DW_AT_export_symbols
      	attribute, don't add anything.
      cp/
      	* cp-objcp-common.c (cp_decl_dwarf_attribute): Handle
      	DW_AT_export_symbols.
      	* name-lookup.c (emit_debug_info_using_namespace): Add IMPLICIT
      	argument, pass it through to the debug hook.
      	(finish_namespace_using_directive): Adjust
      	emit_debug_info_using_namespace caller.
      	(push_namespace): Likewise.  Call it after setting
      	DECL_NAMESPACE_INLINE_P.
      	(cp_emit_debug_info_for_using): Pass false as new argument to
      	the imported_module_or_decl debug hook.
      fortran/
      	* trans-decl.c (gfc_trans_use_stmts): Pass false as new argument to
      	the imported_module_or_decl debug hook.
      ada/
      	* gcc-interface/utils.c (gnat_write_global_declarations): Pass false
      	as new argument to the imported_module_or_decl debug hook.
      testsuite/
      	* g++.dg/debug/dwarf2/inline-ns-1.C: New test.
      	* g++.dg/debug/dwarf2/inline-ns-2.C: New test.
      
      From-SVN: r250713
      Jakub Jelinek committed
    • use c++ for fold_buildN_loc · 226b8289
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* fold-const.c (fold_build1_stat_loc): Remove _stat from name.
      	(fold_build2_stat_loc): Likewise.
      	(fold_build3_stat_loc): Likewise.
      	* fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
      	(fold_build1_loc): Remove macro.
      	(fold_build2_loc): Likewise.
      	(fold_build3_loc): Likewise.
      
      From-SVN: r250712
      Trevor Saunders committed
    • use c++ for gimple_build_debug_bind{,_source} · 59cdeebc
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
      	(gimple_build_debug_bind_source_stat): Likewise.
      	* gimple.h (gimple_build_debug_bind): Remove macro.
      	(gimple_build_debug_bind_source): Likewise.
      
      From-SVN: r250711
      Trevor Saunders committed
    • use c++ for bitmap_initialize · 2a1a5f30
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* bitmap.c (bitmap_alloc): Adjust.
      	(bitmap_gc_alloc): Likewise.
      	* bitmap.h (bitmap_initialize_stat): Remove _stat from name.
      
      From-SVN: r250710
      Trevor Saunders committed
    • simplify the bitmap alloc_stat functions with c++ · 3fe793df
      gcc/fortran/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* resolve.c (find_reachable_labels): Adjust.
      
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
      	(bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
      	* bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
      	(bitmap_gc_alloc_stat): Likewise.
      	(BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
      
      From-SVN: r250709
      Trevor Saunders committed
    • replace shallow_copy_rtx_stat with c++ · 22a7303d
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
      	* rtl.h (shallow_copy_rtx): Remove macro.
      
      From-SVN: r250708
      Trevor Saunders committed
    • replace rtx_alloc_stat with c++ · 84c2ad23
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* emit-rtl.c (gen_raw_REG): Adjust.
      	* gengenrtl.c (gendef): Likewise.
      	* rtl.c (rtx_alloc_stat): Remove _stat from name.
      	* rtl.h (rtx_alloc): Remove macro.
      
      From-SVN: r250707
      Trevor Saunders committed
    • use c++ for build_tree_list{,_vec}_stat · 623ee285
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (build_tree_list_vec_stat): Remove _stat from name.
      	(build_tree_list_stat): Likewise.
      	* tree.h (build_tree_list): Remove macro.
      	(build_tree_list_vec): Likewise.
      
      From-SVN: r250706
      Trevor Saunders committed
    • use C++ for {make,build}_vector_stat · 7488a79f
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (make_vector_stat): Remove _stat from name.
      	(build_vector_stat): Likewise.
      	* tree.h (make_vector_stat): Remove macro.
      	(build_vector_stat): Likewise.
      
      From-SVN: r250705
      Trevor Saunders committed
    • remove unused build_var_debug_value prototype · b1614049
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.h (build_var_debug_value): Remove prototype.
      
      From-SVN: r250704
      Trevor Saunders committed
    • use c++ for tree_cons_stat · 126d0cd4
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (tree_cons_stat): Remove _stat from name.
      	* tree.h (tree_cons): Remove macro.
      
      From-SVN: r250703
      Trevor Saunders committed
    • use c++ instead of build_vl_exp_stat · 7aa717c1
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (build_vl_exp_stat): Remove _stat from name.
      	* tree.h (build_vl_exp): Remove macro.
      
      From-SVN: r250702
      Trevor Saunders committed
    • use c++ instead of build_decl_stat · 31b8d81f
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (build_decl_stat): Remove _stat from name.
      	* tree.h (build_decl): Remove macro.
      
      From-SVN: r250701
      Trevor Saunders committed
    • replace gimple_alloc_stat with c++ · 9e2d7f46
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* gimple.c (gimple_build_with_ops_stat): Adjust.
      	(gimple_alloc_stat): Remove _stat from name.
      	* gimple.h (gimple_alloc): Remove macro.
      
      From-SVN: r250700
      Trevor Saunders committed
    • use c++ instead of {make,grow}_tree_vec_stat · 9f896a45
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (make_tree_vec_stat): Remove _stat from name.
      	(grow_tree_vec_stat): Likewise.
      	* tree.h (make_tree_vec_stat): Adjust prototype.
      	(grow_tree_vec_stat): Likewise.
      	(make_tree_vec): Remove macro.
      	(grow_tree_vec): Likewise.
      
      From-SVN: r250699
      Trevor Saunders committed
    • use c++ instead of buildN_stat{,_loc} · 6db60760
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* fold-const.c (fold_build1_stat_loc): Adjust.
      	(fold_build2_stat_loc): Likewise.
      	(fold_build3_stat_loc): Likewise.
      	* tree.c (build0_stat): Remove _stat from name.
      	(build1_stat): Likewise.
      	(build2_stat): Likewise.
      	(build3_stat): Likewise.
      	(build4_stat): Likewise.
      	(build5_stat): Likewise.
      	* tree.h (build1_loc): Remove macro, and rename _stat function
      	to this.
      	(build2_loc): Likewise.
      	(build3_loc): Likewise.
      	(build4_loc): Likewise.
      	(build5_loc): Likewise.
      
      From-SVN: r250698
      Trevor Saunders committed
    • use c++ for make_int_cst_stat · 4bd2de4b
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (make_int_cst_stat): Remove _stat from name.
      	* tree.h (make_int_cst_stat): Adjust prototype.
      	(make_int_cst): Remove macro.
      
      From-SVN: r250697
      Trevor Saunders committed
    • use cxx instead of make_tree_binfo_stat · 86cbccd7
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (make_tre_binfo_stat): Remove _stat from name.
      	* tree.h (make_tree_binfo_stat): Adjust prototype.
      	(make_tree_binfo): Remove.
      
      From-SVN: r250696
      Trevor Saunders committed
    • use c++ instead of _stat for copy_node_stat · 39d970d7
      gcc/cp/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* lex.c (copy_decl): Adjust.
      	(copy_type): Likewise.
      
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (copy_node_stat): Rename to copy_node.
      	(build_distinct_type_copy): Adjust.
      	* tree.h (copy_node_stat): Adjust prototype.
      	(copy_node): Remove macro.
      
      From-SVN: r250695
      Trevor Saunders committed
    • use c++ instead of make_node_stat · f719e2f1
      gcc/ChangeLog:
      
      2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (make_node_stat): rename to make_node.
      	(build_tree_list_stat): Adjust.
      	(build0_stat): Likewise.
      	(build2_stat): Likewise.
      	(build3_stat): Likewise.
      	(build4_stat): Likewise.
      	(build5_stat): Likewise.
      	(build_decl_stat): Likewise.
      	* tree.h (make_node_stat): Adjust prototype.
      	(make_node): remove macro.
      
      From-SVN: r250694
      Trevor Saunders committed
    • Daily bump. · 57a93c6a
      From-SVN: r250693
      GCC Administrator committed
  2. 28 Jul, 2017 19 commits
    • ppc-auxv.h (PPC_FEATURE2_DARN): New define. · 782a7850
      gcc/
      	* config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
      	(PPC_FEATURE2_SCV): Likewise.
      	* config/rs6000/rs6000.c (cpu_supports_info): Use them.
      
      gcc/testsuite/
      	* gcc.target/powerpc/cpu-builtin-1.c (darn, scv): Add tests.
      
      From-SVN: r250687
      Peter Bergner committed
    • compiler: add backend type conversion · 02c7e7eb
          
          Tweak Interface_field_reference_expression::do_get_backend to apply an
          additional backend type conversion to the returned result.  This is
          needed due to the fact that the top level type of the expression is a
          function descriptor, however the value being manufactured is a pointer
          to <thunk-descriptor, value> struct.
          
          Reviewed-on: https://go-review.googlesource.com/51712
      
      From-SVN: r250686
      Ian Lance Taylor committed
    • configure.ac (target-libffi): Don't disable for AIX. · 5a427c63
      2017-07-28  Tony Reix  <tony.reix@atos.net>
      
              * configure.ac (target-libffi): Don't disable for AIX.
              (go): Don't add to unsupported_languages on AIX.
              (target-libgo): Don't disable for AIX.
              * configure: Regenerate.
      
      From-SVN: r250685
      Tony Reix committed
    • compiler: track placeholder pointer types for conversion · 9761988f
          
          We recently started walking through the hash table of pointer types to
          finalize them.  Unfortunately it is possible to create a new pointer
          type while finalizing an existing one (test case: test/fixedbugs/issue5291)
          and that breaks the iteration.  So, instead, keep a list of
          placeholder pointer types, and iterate through them while permitting
          the list to be extended as we go.
          
          Reviewed-on: https://go-review.googlesource.com/51771
      
      From-SVN: r250683
      Ian Lance Taylor committed
    • compiler: use a single temporary for calls with multiple results · 97a0928c
          
          For calls that return multiple results we used to create a temporary
          of struct type to hold the results, and also create a separate
          temporary for each result.  Then the call expression would copy each
          result out of the struct to the temporary, and Call_result_expression
          would refer to the desired temporary.
          
          Simplify this to just use a single temporary of struct type, and
          change Call_result_expression to fetch a field of the struct.
          
          This may reduce some incorrect tree sharing in the backend code.
          
          Reviewed-on: https://go-review.googlesource.com/51770
      
      From-SVN: r250682
      Ian Lance Taylor committed
    • 2017-07-28 Tamar Christina <tamar.christina@arm.com> · 9de00935
      	* config/aarch64/aarch64.c
      	(aarch64_internal_mov_immediate): Add new special pattern.
      	* config/aarch64/aarch64.md (*movdi_aarch64):
      	Add reg/32bit const mov case.
      
      gcc/testsuite/
      2017-07-28  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.target/aarch64/int_mov_immediate_1.c: New.
      
      From-SVN: r250680
      Tamar Christina committed
    • pr80815-3.c: Require vect_perm. · 8de33df2
      	gcc/testsuite
      	* gcc.dg/vect/pr80815-3.c: Require vect_perm.
      
      From-SVN: r250676
      Bin Cheng committed
    • Fix pid_t printing · cf311b03
      	* fileline.c (fileline_initialize): Print pid_t as long.
      
      From-SVN: r250675
      Rainer Orth committed
    • dbl_mov_immediate_1.c: New. · 8acb8421
      2017-07-28  Tamar Christina  <tamar.christina@arm.com>
      	    Bilyan Borisov  <bilyan.borisov@arm.com>
      
      	* gcc.target/aarch64/dbl_mov_immediate_1.c: New.
      	* gcc.target/aarch64/flt_mov_immediate_1.c: New.
      	* gcc.target/aarch64/f16_mov_immediate_1.c: New.
      	* gcc.target/aarch64/f16_mov_immediate_2.c: New.
      	* gcc.target/aarch64/pr63304_1.c: Changed to double.
      
      
      Co-Authored-By: Bilyan Borisov <bilyan.borisov@arm.com>
      
      From-SVN: r250674
      Tamar Christina committed
    • aarch64.md (mov<mode>): Generalize. · 90e6443f
      2017-07-28  Tamar Christina  <tamar.christina@arm.com>
                  Richard Sandiford <richard.sandiford@linaro.org>
      
              * config/aarch64/aarch64.md (mov<mode>): Generalize.
              (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
              Add integer and movi cases.
              (movi-split-hf-df-sf split, fp16): New.
              (enabled): Added TARGET_FP_F16INST.
              * config/aarch64/iterators.md (GPF_HF): New.
              * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
      
      
      Co-Authored-By: Richard Sandiford <richard.sandiford@linaro.org>
      
      From-SVN: r250673
      Tamar Christina committed
    • 2017-07-28 Tamar Christina <tamar.christina@arm.com> · a2170965
      	* config/aarch64/aarch64.c
      	(aarch64_simd_container_mode): Add prototype.
      	(aarch64_expand_mov_immediate): Add HI support.
      	(aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
      	(aarch64_can_const_movi_rtx_p): New.
      	(aarch64_preferred_reload_class):
      	Remove restrictions of using FP registers for certain SIMD operations.
      	(aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
      	(aarch64_valid_floating_const): Add integer move validation.
      	(aarch64_simd_imm_scalar_p): Remove.
      	(aarch64_output_scalar_simd_mov_immediate): Generalize function.
      	(aarch64_legitimate_constant_p): Expand list of supported cases.
      	* config/aarch64/aarch64-protos.h
      	(aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
      	(aarch64_reinterpret_float_as_int): New.
      	(aarch64_simd_imm_scalar_p): Remove.
      	* config/aarch64/constraints.md (Uvi): New.
      	(Dd): Split into Ds and new Dd.
      	* config/aarch64/aarch64.md (*movsi_aarch64):
      	Add SIMD mov case.
      	(*movdi_aarch64): Add SIMD mov case.
      
      From-SVN: r250672
      Tamar Christina committed
    • tree-predcom.c: (struct chain): Handle store-store chain in which stores for elimination only... · 39ff50ce
      	* tree-predcom.c: (struct chain): Handle store-store chain in which
      	stores for elimination only store loop invariant values.
      	(execute_pred_commoning_chain): Ditto.
      	(prepare_initializers_chain_store_elim): Ditto.
      	(prepare_finalizers): Ditto.
      	(is_inv_store_elimination_chain): New function.
      	(initialize_root_vars_store_elim_1): New function.
      
      From-SVN: r250670
      Bin Cheng committed
    • tree-predcom.c: Revise general description of the pass. · d9c259ef
      	* tree-predcom.c: Revise general description of the pass.
      	(enum chain_type): New enum type for store elimination.
      	(struct chain): New field supporting store elimination.
      	(struct component): Ditto.
      	(dump_chain): Dump store-stores chain.
      	(release_chain): Release resources.
      	(split_data_refs_to_components): Compute and create component
      	contains only stores for elimination.
      	(get_chain_last_ref_at): New function.
      	(make_invariant_chain): Initialization.
      	(make_rooted_chain): Specify chain type in parameter and record it.
      	(add_looparound_copies): Skip for store-stores chain.
      	(determine_roots_comp): Compute type of chain and pass it to
      	make_rooted_chain.
      	(initialize_root_vars_store_elim_2): New function.
      	(finalize_eliminated_stores): New function.
      	(remove_stmt): Handle store for elimination.
      	(execute_pred_commoning_chain): Execute predictive commoning on
      	store-store chains.
      	(determine_unroll_factor): Skip unroll for store-stores chain.
      	(prepare_initializers_chain_store_elim): New function.
      	(prepare_initializers_chain): Hanlde store-store chain.
      	(prepare_finalizers_chain, prepare_finalizers): New function.
      	(tree_predictive_commoning_loop): Return integer value indicating
      	if loop is unrolled or lcssa form is corrupted.
      	(tree_predictive_commoning): Rewrite for lcssa form if necessary.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/predcom-dse-1.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-2.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-3.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-4.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-5.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-6.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-7.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-8.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-9.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-10.c: New test.
      	* gcc.dg/tree-ssa/predcom-dse-11.c: New test.
      
      From-SVN: r250669
      Bin Cheng committed
    • tree-predcom.c (initialize_root): Delete. · 10dfaf9a
      	* tree-predcom.c (initialize_root): Delete.
      	(execute_pred_commoning_chain): Initialize root vars and replace
      	reference of non-combined chain directly, rather than call above
      	function.
      
      From-SVN: r250668
      Bin Cheng committed
    • tree-predcom.c (ref_at_iteration): Add parameter NITERS. · 3c62a7fb
      	* tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
      	memory reference to DR at (NITERS + ITERS)-th iteration of loop.
      
      From-SVN: r250667
      Bin Cheng committed
    • tree-predcom.c (struct chain): New field init_seq. · aa4de160
      	* tree-predcom.c (struct chain): New field init_seq.
      	(release_chain): Release init_seq.
      	(prepare_initializers_chain): Record intialization stmts in above
      	field.
      	(insert_init_seqs): New function.
      	(tree_predictive_commoning_loop): Call insert_init_seqs.
      
      From-SVN: r250666
      Bin Cheng committed
    • match.pd: Remove superfluous :c. · 6c35e5b0
      2017-07-28  Richard Biener  <rguenther@suse.de>
      
      	* match.pd: Remove superfluous :c.
      	* genmatch.c (simplify::id): Add member.
      	(lower_commutative, lower_opt_convert, lower_cond, lower_for):
      	Copy id.
      	(current_id): New global.
      	(dt_node::parent): Move from ...
      	(dt_operand::parent): ... here.  Add for_id member.
      	(is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
      	(decision_tree::find_node): Relax order requirement when
      	merging DT_TRUE nodes to ones inbetween the current simplify
      	and the one we try to merge with.  Add diagnostic whenever
      	we need to enforce pattern order by not merging.
      	(decision_tree::insert): Set current_id.
      	(decision_tree::print_node): Dump parent node and for_id.
      	(parser::last_id): Add member.
      	(parser::push_simplify): Assign unique id.
      	(parser::parser): Initialize last_id.
      
      From-SVN: r250664
      Richard Biener committed