1. 15 May, 2017 5 commits
  2. 14 May, 2017 18 commits
    • PR target/80600 - hidden symbol '__cpu_model' is referenced by DSO · eac8c9f2
      gcc/ChangeLog:
      
              PR target/80600
              * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
      
      libgcc/ChangeLog:
      
              PR target/80600
              * config.host (*-*-netbsd*): Add t-slibgcc-libgcc to tmake_file.
      
      From-SVN: r248037
      Krister Walfridsson committed
    • i386.i386.c (ix86_cc_modes_compatible): CCNOmode is compatible with CCGOCmode and with CCZmode. · 9430f7b8
      	* config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
      	compatible with CCGOCmode and with CCZmode.
      
      From-SVN: r248036
      Uros Bizjak committed
    • PR middle-end/77671 - missing -Wformat-overflow warning on sprintf overflow with %s · a104bd88
      gcc/ChangeLog:
      
      	PR middle-end/77671
      	* gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
      	(gimple_fold_builtin_snprintf): Same.
      	* gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
      	(gimple_fold_builtin_snprintf): Same.
      	* gimple-ssa-sprintf.c (get_format_string): Correct the detection
      	of character types.
      	(is_call_safe): New function.
      	(try_substitute_return_value): Call it.
      	(try_simplify_call): New function.
      	(pass_sprintf_length::handle_gimple_call): Call it.
      
      gcc/testsuite/ChangeLog:
      
      PR middle-end/77671
      	* gcc.dg/tree-ssa/builtin-sprintf-7.c: New test.
      	* gcc.dg/tree-ssa/builtin-sprintf-8.c: New test.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Adjust.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Adjust.
      
      From-SVN: r248035
      Martin Sebor committed
    • PR middle-end/80669 - Bad -Wstringop-overflow warnings for stpncpy · c6c02519
      gcc/ChangeLog:
      
      	PR middle-end/80669
      	* builtins.c (expand_builtin_stpncpy): Simplify.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/80669
      	* gcc.dg/builtin-stpncpy.c: New test.
      
      From-SVN: r248034
      Martin Sebor committed
    • i386.opt: Add option -mcall-ms2sysv-xlogues. · d6d4d770
      gcc/ChangeLog:
      
      	* config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
      	* config/i386/i386.h
      	(x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
      	(NUM_X86_64_MS_CLOBBERED_REGS): New macro.
      	(struct machine_function): Add new members call_ms2sysv,
      	call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
      	(struct machine_frame_state): New fields sp_realigned and
      	sp_realigned_offset.
      	* config/i386/i386.c
      	(enum xlogue_stub): New enum.
      	(enum xlogue_stub_sets): New enum.
      	(class xlogue_layout): New class.
      	(struct ix86_frame): New fields stack_realign_allocate_offset,
      	stack_realign_offset and outlined_save_offset.  Modify comments to
      	detail stack layout when using out-of-line stubs.
      	(ix86_target_string): Add -mcall-ms2sysv-xlogues option.
      	(ix86_option_override_internal): Add sorry() for TARGET_SEH and
      	-mcall-ms2sysv-xlogues.
      	(stub_managed_regs): New static variable.
      	(ix86_save_reg): Add new parameter ignore_outlined to optionally omit
      	registers managed by out-of-line stub.
      	(disable_call_ms2sysv_xlogues): New function.
      	(ix86_compute_frame_layout): Modify re-alignment calculations, disable
      	m->call_ms2sysv when appropriate and compute frame layout for
      	out-of-line stubs.
      	(sp_valid_at, fp_valid_at): New inline functions.
      	(choose_basereg): New function.
      	(choose_baseaddr): Add align parameter, use choose_basereg and modify
      	all callers.
      	(ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
      	Use align parameter of choose_baseaddr to generated aligned SSE movs
      	when possible.
      	(pro_epilogue_adjust_stack): Modify to track
      	machine_frame_state::sp_realigned.
      	(ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
      	(ix86_nsaved_sseregs): Likewise.
      	(ix86_emit_save_regs): Likewise.
      	(ix86_emit_save_regs_using_mov): Likewise.
      	(ix86_emit_save_sse_regs_using_mov): Likewise.
      	(get_scratch_register_on_entry): Likewise.
      	(gen_frame_set): New function.
      	(gen_frame_load): Likewise.
      	(gen_frame_store): Likewise.
      	(emit_outlined_ms2sysv_save): Likewise.
      	(emit_outlined_ms2sysv_restore): Likewise.
      	(ix86_expand_prologue): Modify stack re-alignment code and call
      	emit_outlined_ms2sysv_save when appropriate.
      	(ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
      	parameter rtx_insn *insn, which allows the function to be used to only
      	generate the notes.
      	(ix86_expand_epilogue): Modify validity checks of frame and stack
      	pointers, and call emit_outlined_ms2sysv_restore when appropriate.
      	(ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
      	* config/i386/predicates.md
      	(save_multiple): New predicate.
      	(restore_multiple): Likewise.
      	* config/i386/sse.md
      	(save_multiple<mode>): New pattern.
      	(save_multiple_realign<mode>): Likewise.
      	(restore_multiple<mode>): Likewise.
      	(restore_multiple_and_return<mode>): Likewise.
      	(restore_multiple_leave_return<mode>): Likewise.
      	* Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/x86_64/abi/ms-sysv/do-test.S: New file.
      	* gcc.target/x86_64/abi/ms-sysv/gen.cc: Likewise.
      	* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Likewise.
      	* gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Likewise.
      
      libgcc/ChangeLog:
      
      	* config.host: Add i386/t-msabi to i386/t-linux file list.
      	* config/i386/i386-asm.h: New file.
      	* config/i386/resms64.S: New file.
      	* config/i386/resms64f.S: New file.
      	* config/i386/resms64fx.S: New file.
      	* config/i386/resms64x.S: New file.
      	* config/i386/savms64.S: New file.
      	* config/i386/savms64f.S: New file.
      	* config/i386/t-msabi: New file.
      
      From-SVN: r248029
      Daniel Santos committed
    • i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type. · b9bdd60b
      	* config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
      	* config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
      	(__builtin_ia32_xsetbv): New builtins.
      	* config/i386/i386.c (ix86_expand_special_args_builtin):
      	Process new types.
      	(ix86_expand_builtin): Special expand for new intrinsics.
      	* config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
      	(xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
      	* config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/xgetsetbv.c: New test.
      
      From-SVN: r248028
      Julia Koval committed
    • make inverted_post_order_compute() operate on a vec · 6fa95e09
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* cfganal.c (inverted_post_order_compute): Change argument type
      	to vec *.
      	* cfganal.h (inverted_post_order_compute): Adjust prototype.
      	* df-core.c (rest_of_handle_df_initialize): Adjust.
      	(rest_of_handle_df_finish): Likewise.
      	(df_analyze_1): Likewise.
      	(df_analyze): Likewise.
      	(loop_inverted_post_order_compute): Change argument to be a vec *.
      	(df_analyze_loop): Adjust.
      	(df_get_n_blocks): Likewise.
      	(df_get_postorder): Likewise.
      	* df.h (struct df_d): Change field to be a vec.
      	* lcm.c (compute_laterin): Adjust.
      	(compute_available): Likewise.
      	* lra-lives.c (lra_create_live_ranges_1): Likewise.
      	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
      	* tree-ssa-pre.c (compute_antic): Likewise.
      
      From-SVN: r248027
      Trevor Saunders committed
    • make depth_first_search_ds a class · 35bfaf4d
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* cfganal.c (connect_infinite_loops_to_exit): Adjust.
      	(depth_first_search::depth_first_search): Change structure init
      	function to this constructor.
      	(depth_first_search::add_bb): Rename function to this member.
      	(depth_first_search::execute): Likewise.
      	(flow_dfs_compute_reverse_finish): Adjust.
      
      From-SVN: r248026
      Trevor Saunders committed
    • make more vars auto_sbitmaps · 8f48c622
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* ddg.c (find_nodes_on_paths): Use auto_sbitmap.
      	(longest_simple_path): Likewise.
      	* shrink-wrap.c (spread_components): Likewise.
      	(disqualify_problematic_components): Likewise.
      	(emit_common_heads_for_components): Likewise.
      	(emit_common_tails_for_components): Likewise.
      	(insert_prologue_epilogue_for_components): Likewise.
      
      From-SVN: r248025
      Trevor Saunders committed
    • make a member an auto_sbitmap · 0236bb04
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
      	auto_sbitmap.
      
      From-SVN: r248024
      Trevor Saunders committed
    • use auto_bitmap more with alternate obstacks · d648b5ff
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* df-core.c (df_set_blocks): Start using auto_bitmap.
      	(df_compact_blocks): Likewise.
      	* df-problems.c (df_rd_confluence_n): Likewise.
      	* df-scan.c (df_insn_rescan_all): Likewise.
      	(df_process_deferred_rescans): Likewise.
      	(df_update_entry_block_defs): Likewise.
      	(df_update_exit_block_uses): Likewise.
      	(df_entry_block_bitmap_verify): Likewise.
      	(df_exit_block_bitmap_verify): Likewise.
      	(df_scan_verify): Likewise.
      	* lra-constraints.c (lra_constraints): Likewise.
      	(undo_optional_reloads): Likewise.
      	(lra_undo_inheritance): Likewise.
      	* lra-remat.c (calculate_gen_cands): Likewise.
      	(do_remat): Likewise.
      	* lra-spills.c (assign_spill_hard_regs): Likewise.
      	(spill_pseudos): Likewise.
      	* tree-ssa-pre.c (bitmap_set_and): Likewise.
      	(bitmap_set_subtract_values): Likewise.
      
      From-SVN: r248023
      Trevor Saunders committed
    • move several bitmaps from gc memory to the default obstack and use auto_bitmap · 8f9b31f7
      These places where probably trying to use the default bitmap obstack,
      but passing 0 to bitmap_initialize actually uses gc allocation.  In any
      case they are all cleaned up before going out of scope so using
      auto_bitmap should be fine.
      
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
      	management with auto_bitmap.
      	(fix_inter_tick): Likewise.
      	(fix_recovery_deps): Likewise.
      	* ira.c (add_store_equivs): Likewise.
      	(find_moveable_pseudos): Likewise.
      	(split_live_ranges_for_shrink_wrap): Likewise.
      	* print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
      	(rtx_reuse_manager::seen_def_p): Likewise.
      	(rtx_reuse_manager::set_seen_def): Likewise.
      	* print-rtl.h (class rtx_reuse_manager): Likewise.
      
      From-SVN: r248022
      Trevor Saunders committed
    • use auto_bitmap more · 0e3de1d4
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
      	lifetime.
      	(migrate_btr_def): Likewise.
      	* cfgloop.c (get_loop_body_in_bfs_order): Likewise.
      	* df-core.c (loop_post_order_compute): Likewise.
      	(loop_inverted_post_order_compute): Likewise.
      	* hsa-common.h: Likewise.
      	* hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
      	* init-regs.c (initialize_uninitialized_regs): Likewise.
      	* ipa-inline.c (resolve_noninline_speculation): Likewise.
      	(inline_small_functions): Likewise.
      	* ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
      	* ira.c (combine_and_move_insns): Likewise.
      	(build_insn_chain): Likewise.
      	* loop-invariant.c (find_invariants): Likewise.
      	* lower-subreg.c (propagate_pseudo_copies): Likewise.
      	* predict.c (tree_predict_by_opcode): Likewise.
      	(predict_paths_leading_to): Likewise.
      	(predict_paths_leading_to_edge): Likewise.
      	(estimate_loops_at_level): Likewise.
      	(estimate_loops): Likewise.
      	* shrink-wrap.c (try_shrink_wrapping): Likewise.
      	(spread_components): Likewise.
      	* tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
      	* tree-loop-distribution.c (rdg_build_partitions): Likewise.
      	* tree-predcom.c (tree_predictive_commoning_loop): Likewise.
      	* tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
      	* tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
      	* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
      	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
      	* tree-ssa-threadupdate.c (compute_path_counts): Likewise.
      	(mark_threaded_blocks): Likewise.
      	(thread_through_all_blocks): Likewise.
      	* tree-ssa.c (verify_ssa): Likewise.
      	(execute_update_addresses_taken): Likewise.
      	* tree-ssanames.c (verify_ssaname_freelists): Likewise.
      
      From-SVN: r248021
      Trevor Saunders committed
    • replace some manual stacks with auto_vec · 792bb49b
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* cfganal.c (mark_dfs_back_edges): Replace manual stack with
      	auto_vec.
      	(post_order_compute): Likewise.
      	(inverted_post_order_compute): Likewise.
      	(pre_and_rev_post_order_compute_fn): Likewise.
      
      From-SVN: r248020
      Trevor Saunders committed
    • allow constructing a auto_vec with a preallocation, and a possibly larger actual allocation size · a5c9f2b7
      This allows us to set the capacity of the vector when we construct it,
      and still use a stack buffer when the size is small enough.
      
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* genrecog.c (int_set::int_set): Explicitly construct our
      	auto_vec base class.
      	* vec.h (auto_vec::auto_vec): New constructor.
      
      From-SVN: r248019
      Trevor Saunders committed
    • allow auto_bitmap to use other bitmap obstacks · 4b5c84f4
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* bitmap.h (class auto_bitmap): New constructor taking
      	bitmap_obstack * argument.
      
      From-SVN: r248018
      Trevor Saunders committed
    • store the bitmap_head within the auto_bitmap · a4d51bfb
      This gets rid of one allocation per bitmap.  Often the bitmap_head is
      now on the stack, when it isn't its part of some other struct on the
      heap instead of being refered to by that struct.  On 64 bit platforms
      this will increase the size of such structs by 24 bytes, but its an over
      all win since we don't need an 8 byte pointer pointing at the
      bitmap_head.  Given that the auto_bitmap owns the bitmap_head anyway we
      know there would never be a place where two auto_bitmaps would refer to
      the same bitmap_head object.
      
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* bitmap.h (class auto_bitmap): Change type of m_bits to
      	bitmap_head, and adjust ctor / dtor and member operators.
      
      From-SVN: r248017
      Trevor Saunders committed
    • Daily bump. · 470e7e56
      From-SVN: r248016
      GCC Administrator committed
  3. 13 May, 2017 7 commits
    • re PR fortran/80442 (Rejects DATA statement with array slice) · 28ae01cd
      
      2017-05-09  Nicolas Koenig  <koenigni@student.ethz.ch>
      
      	PR fortran/80442
      	* array.c (gfc_ref_dimen_size): Simplify stride
      	expression
      	* data.c (gfc_advance_section): Simplify start,
      	end and stride expressions
      	(gfc_advance_section): Simplify start and end
      	expressions
      	(gfc_get_section_index): Simplify start expression 
      
      2017-05-09  Nicolas Koenig  <koenigni@student.ethz.ch>
      
      	PR fortran/80442
      	* gfortran.dg/impl_do_var_data.f90: New Test
      
      From-SVN: r248012
      Nicolas Koenig committed
    • compare-elim.c (equivalent_reg_at_start): Return NULL_RTX when returned register… · 36449020
      compare-elim.c (equivalent_reg_at_start): Return NULL_RTX when returned register mode doesn't match original mode.
      
      	* compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
      	when returned register mode doesn't match original mode.
      
      From-SVN: r248009
      Uros Bizjak committed
    • io.c (gfc_resolve_dt): Fix returns to bool type. · 2263019d
      2017-05-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	* io.c (gfc_resolve_dt): Fix returns to bool type.
      
      From-SVN: r248008
      Jerry DeLisle committed
    • mn10300.c (mn10300_match_ccmode): Fix where we look for cc setter after the compare-elim changes. · 65fdd5e9
      2017-05-12  Jeff Law  <law@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	* config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
      	we look for cc setter after the compare-elim changes.
      	* config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
      	within the vector to match what compare-elim now expects.
      	(subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
      	(xorsi3_flags, one_cmplsi2_flags): Likewise.
      
      	* config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
      	after the compare-elim changes.
      	* config/rx/rx.md (abssi2_flags): Fix order of patterns within
      	the vector to match what compare-elim now expects.
      	(addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
      	(andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
      	(iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
      	(ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
      	(ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
      
      	* config/visium/visium.c (single_set_and_flags): Fix where
      	we look for cc setter after the compare-elim changes.
      	* config/visium/visium.md (flags_subst_logic): Fix order of patterns
      	with the vector to match what compare-elim now expects.
      	(flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
      	(add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
      	(addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
      	(sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
      	(subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
      	(neg<mode>2_insn_set_overflow): Likewise.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r248007
      Jeff Law committed
    • BRIG FE: Fix an assertion when doing an 'lda' of · c7488b4f
      a private array offset.
      
      From-SVN: r248006
      Pekka Jääskeläinen committed
    • Patch for RTL expand bug affecting aarch64 vector code. · f96bf49a
      	gcc/
      	PR middle-end/79794
          	* expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
      	maybe_expand_insn call, set ops[0].target.  If still set after call,
      	set alt_rtl.  Add extra arg to recursive calls.
      	(extract_bit_field): Add alt_rtl argument.  Pass to
      	extract_bit_field.
      	* expmed.h (extract_bit_field): Fix prototype.
      	* expr.c (emit_group_load_1, copy_blkmode_from_reg)
      	(copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
      	to extract_bit_field_calls.
      	(expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
      	Pass alt_rtl to extract_bit_field calls.
      	* calls.c (store_unaligned_arguments_into_psuedos)
      	load_register_parameters): Pass extra NULL to extract_bit_field calls.
      	* optabs.c (maybe_legitimize_operand): Clear op->target when call
      	gen_reg_rtx.
      	* optabs.h (struct expand_operand): Add target bitfield.
      
      From-SVN: r248004
      Jim Wilson committed
    • Daily bump. · 7f390a7b
      From-SVN: r248003
      GCC Administrator committed
  4. 12 May, 2017 10 commits