1. 12 Oct, 2017 16 commits
    • PR c/82301 - Updated test case g++.dg/ext/attr-ifunc-1.C (and others) in r253041… · 7a866e7e
      PR c/82301 - Updated test case g++.dg/ext/attr-ifunc-1.C (and others) in r253041 segfault on powerpc64
      
      PR c/82301 - Updated test case g++.dg/ext/attr-ifunc-1.C (and others) in r253041 segfault on powerpc64
      PR c/82435 - new __attribute__((alias)) warning gets in the way
      
      gcc/ChangeLog:
      
      	PR other/82301
      	PR c/82435
      	* cgraphunit.c (maybe_diag_incompatible_alias): New function.
      	(handle_alias_pairs): Call it.
      	* common.opt (-Wattribute-alias): New option.
      	* doc/extend.texi (ifunc attribute): Discuss C++ specifics.
      	* doc/invoke.texi (-Wattribute-alias): Document.
      
      gcc/testsuite/ChangeLog:
      
      	PR other/82301
      	PR c/82435
      	* g++.dg/ext/attr-ifunc-1.C: Update.
      	* g++.dg/ext/attr-ifunc-2.C: Same.
      	* g++.dg/ext/attr-ifunc-3.C: Same.
      	* g++.dg/ext/attr-ifunc-4.C: Same.
      	* g++.dg/ext/attr-ifunc-5.C: Same.
      	* g++.dg/ext/attr-ifunc-6.C: New test.
      	* g++.old-deja/g++.abi/vtable2.C: Update.
      	* gcc.dg/attr-ifunc-6.c: New test.
      	* gcc.dg/attr-ifunc-7.c: New test.
      	* gcc.dg/pr81854.c: Update.
      	* lib/target-supports.exp: Update.
      
      From-SVN: r253688
      Martin Sebor committed
    • C++: avoid partial duplicate implementation of cp_parser_error · e95c9129
      In r251026 (aka 3fe34694f0990d1d649711ede0326497f8a849dc,
      "C/C++: show pertinent open token when missing a close token")
      I copied part of cp_parser_error into cp_parser_required_error,
      leading to duplication of code.
      
      This patch eliminates this duplication by merging the two copies of the
      code into a new cp_parser_error_1 subroutine.
      
      Doing so removes an indentation level, making the patch appear to have
      more churn than it really does.
      
      The patch also undoes the change to g++.dg/parse/pragma2.C, as the
      old behavior is restored.
      
      From-SVN: r253686
      David Malcolm committed
    • revert: re PR sanitizer/82353 (runtime ubsan crash) · 2c79bfcf
      2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
      
      	Revert
      	2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
      	PR sanitizer/82353
      	* lra.c (collect_non_operand_hard_regs): Don't ignore operator
      	locations.
      	* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
      	(make_hard_regno_born, make_hard_regno_dead): Update
      	bb_killed_pseudos and bb_gen_pseudos.
      
      From-SVN: r253685
      Vladimir Makarov committed
    • * x86-tune-sched.c (ix86_adjust_cost): Fix Zen support. · 3edf8a98
      From-SVN: r253684
      Jan Hubicka committed
    • alpha.c (alpha_split_conditional_move): Use std::swap instead of manually swapping. · 7159f19c
      	* config/alpha/alpha.c (alpha_split_conditional_move):
      	Use std::swap instead of manually swapping.
      	(alpha_stdarg_optimize_hook): Ditto.
      	(alpha_canonicalize_comparison): Ditto.
      
      From-SVN: r253681
      Uros Bizjak committed
    • tree-loop-distribution.c (struct builtin_info): New struct. · 939cf90f
      	* tree-loop-distribution.c (struct builtin_info): New struct.
      	(struct partition): Refactor fields into struct builtin_info.
      	(partition_free): Free struct builtin_info.
      	(build_size_arg_loc, build_addr_arg_loc): Delete.
      	(generate_memset_builtin, generate_memcpy_builtin): Get memory range
      	information from struct builtin_info.
      	(find_single_drs): New function refactored from classify_partition.
      	Also moved builtin validity checks to this function.
      	(compute_access_range, alloc_builtin): New functions.
      	(classify_builtin_st, classify_builtin_ldst): New functions.
      	(classify_partition): Refactor code into functions find_single_drs,
      	classify_builtin_st and classify_builtin_ldst.
      	(distribute_loop): Don't do runtime alias check when distributing
      	loop nest.
      	(find_seed_stmts_for_distribution): New function.
      	(pass_loop_distribution::execute): Refactor code finding seed
      	stmts into above function.  Support distribution for the innermost
      	two-level loop nest.  Adjust dump information.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/ldist-28.c: New test.
      	* gcc.dg/tree-ssa/ldist-29.c: New test.
      	* gcc.dg/tree-ssa/ldist-30.c: New test.
      	* gcc.dg/tree-ssa/ldist-31.c: New test.
      
      From-SVN: r253680
      Bin Cheng committed
    • tree-loop-distribution.c: Adjust the general comment. · 163aa51b
      	* tree-loop-distribution.c: Adjust the general comment.
      	(NUM_PARTITION_THRESHOLD): New macro.
      	(ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
      	(classify_partition): Skip builtin pattern of loop nest's inner loop.
      	(merge_dep_scc_partitions): New parameter ignore_alias_p and use it
      	in call to build_partition_graph.
      	(finalize_partitions): New parameter.  Make loop distribution more
      	conservative by fusing more partitions.
      	(distribute_loop): Don't do runtime alias check in case of loop nest
      	distribution.
      	(find_seed_stmts_for_distribution): New function.
      	(prepare_perfect_loop_nest): New function.
      	(pass_loop_distribution::execute): Refactor code finding seed stmts
      	and loop nest into above functions.  Support loop nest distribution.
      	Adjust dump information accordingly.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/ldist-7.c: Adjust test string.
      	* gcc.dg/tree-ssa/ldist-16.c: Ditto.
      	* gcc.dg/tree-ssa/ldist-25.c: Ditto.
      	* gcc.dg/tree-ssa/ldist-33.c: New test.
      
      From-SVN: r253679
      Bin Cheng committed
    • tree-loop-distribution.c (break_alias_scc_partitions): Add comment and set… · 6dc29d3a
      tree-loop-distribution.c (break_alias_scc_partitions): Add comment and set PTYPE_SEQUENTIAL for merged partition.
      
      	* tree-loop-distribution.c (break_alias_scc_partitions): Add comment
      	and set PTYPE_SEQUENTIAL for merged partition.
      
      From-SVN: r253678
      Bin Cheng committed
    • re PR tree-optimization/69728 (internal compiler error: in… · f0c216e1
      re PR tree-optimization/69728 (internal compiler error: in outer_projection_mupa, at graphite-sese-to-poly.c:1175)
      
      2017-10-12  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/69728
      	Revert
      	2017-09-19  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/69728
      	* graphite-sese-to-poly.c (schedule_error): New global.
      	(add_loop_schedule): Handle empty domain by failing the
      	schedule.
      	(build_original_schedule): Handle schedule_error.
      
      	* graphite-sese-to-poly.c (add_loop_schedule): Handle empty
      	domain by returning an unchanged schedule.
      
      	* gcc.dg/graphite/pr69728.c: Adjust to reflect we can handle
      	the loop now.  Remove unrelated undefined behavior.
      
      From-SVN: r253677
      Richard Biener committed
    • genrecog.c (validate_pattern): For VEC_SELECT verify that CONST_INT selectors… · b989ffb2
      genrecog.c (validate_pattern): For VEC_SELECT verify that CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
      
      	* genrecog.c (validate_pattern): For VEC_SELECT verify that
      	CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
      
      From-SVN: r253676
      Jakub Jelinek committed
    • Makefile.in (TAGS): Merge all the *.def files into one pattern. · 712716d2
      	* Makefile.in (TAGS): Merge all the *.def files into one pattern.
      	Handle params.def.
      
      From-SVN: r253674
      Aldy Hernandez committed
    • re PR c++/82159 (ICE: in assign_temp, at function.c:961) · 6089393b
      	PR c++/82159
      	* expr.c (store_field): Don't optimize away bitsize == 0 store
      	from CALL_EXPR with addressable return type.
      
      	* g++.dg/opt/pr82159-2.C: New test.
      
      From-SVN: r253673
      Jakub Jelinek committed
    • re PR sanitizer/82353 (runtime ubsan crash) · 281ff779
      	PR target/82353
      	* gcc.target/i386/i386.exp (tests): Revert the '.C' extension change.
      	* gcc.target/i386/pr82353.C: Moved to ...
      	* g++.dg/ubsan/pr82353.C: ... here.  Restrict to i?86/x86_64 && lp64.
      
      From-SVN: r253672
      Jakub Jelinek committed
    • rs6000: Remove TARGET_ISEL64 · 79f421e1
      TARGET_ISEL64 just means TARGET_ISEL && TARGET_POWERPC64.  Since
      everywhere it is used uses :GPR already, we can just as well use
      TARGET_ISEL always.
      
      
      	* config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
      	* config/rs6000/rs6000.md (sel): Delete mode attribute.
      	(mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
      	*isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
      	TARGET_ISEL instead of TARGET_ISEL<sel>.
      
      From-SVN: r253671
      Segher Boessenkool committed
    • Daily bump. · 7c754ceb
      From-SVN: r253670
      GCC Administrator committed
  2. 11 Oct, 2017 24 commits
    • go-system.h (__STDC_FORMAT_MACROS): Define before including any system header… · e94574b3
      go-system.h (__STDC_FORMAT_MACROS): Define before including any system header files, as is done in ../system.h.
      
      	* go-system.h (__STDC_FORMAT_MACROS): Define before including any
      	system header files, as is done in ../system.h.
      
      From-SVN: r253666
      Tony Reix committed
    • rs6000: Improve isel · e7d77cf9
      This removes output_isel.  Instead, the define_insn's now output the
      isel instructions directly.
      
      It adds a reg_or_zero operand predicate, too, because the reg_or_cint
      predicate is too lax here.  Also use it in the "reversed" variants of
      the instructions.
      
      
      	* config/rs6000/predicates.md (zero_constant, all_ones_constant):
      	Move up in file.
      	(reg_or_cint_operand): Fix comment.
      	(reg_or_zero_operand): New predicate.
      	* config/rs6000/rs6000-protos.h (output_isel): Delete.
      	* config/rs6000/rs6000.c (output_isel): Delete.
      	* config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
      	instead of reg_or_cint_operand.  Output instruction directly (not via
      	output_isel).
      	(isel_unsigned_<mode>): Ditto.
      	(*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
      	gpc_reg_operand.  Add an instruction alternative for this.  Output
      	instruction directly.
      	(*isel_reversed_unsigned_<mode>): Ditto.
      
      From-SVN: r253665
      Segher Boessenkool committed
    • i386.c (ix86_canonicalize_comparison): New function. · 07a5fe52
      	* config/i386/i386.c (ix86_canonicalize_comparison): New function.
      	(TARGET_CANONICALIZE_COMPARISON): Define.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/387-ficom-2.c: New test.
      
      From-SVN: r253663
      Uros Bizjak committed
    • re PR middle-end/80421 (Case dispatch is scrambled in switch-statement) · ca38a07b
      	PR middle-end/80421
      	* gcc.c-torture/execute/pr80421.c: New test.
      
      From-SVN: r253662
      Jakub Jelinek committed
    • re PR tree-optimization/78558 (Incorrect loop optimization leads to crash) · 69c328ec
      	PR tree-optimization/78558
      	* gcc.dg/vect/pr78558.c: New test.
      
      From-SVN: r253661
      Jakub Jelinek committed
    • re PR c++/82414 (Issue with ODR/LTO in G++) · 1d5b9dd5
      	PR c++/82414
      	* g++.dg/lto/pr82414_0.C: New test.
      
      From-SVN: r253660
      Jakub Jelinek committed
    • re PR c++/78523 (ICE on valid lambda code with implicit capture) · fbb0add7
      	PR c++/78523
      	* g++.dg/cpp1y/pr78523.C: New test.
      
      From-SVN: r253659
      Jakub Jelinek committed
    • re PR c++/80194 (ICE with local constant referenced by a lambda expression) · 666a1c32
      	PR c++/80194
      	* g++.dg/cpp1y/pr80194.C: New test.
      
      From-SVN: r253658
      Jakub Jelinek committed
    • re PR target/81422 ([aarch64] internal compiler error: in update_equiv_regs, at ira.c:3425) · 241dbd9d
      /gcc
      2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
      
      	PR target/81422
      	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
      	Check whether the dest is REG before adding REG_EQUIV note.
      
      /gcc/testsuite
      2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
      
      	PR target/81422
            	* gcc.target/aarch64/pr81422.C: New test.
      
      From-SVN: r253657
      Qing Zhao committed
    • re PR sanitizer/82353 (runtime ubsan crash) · 6dcb9e91
      2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR sanitizer/82353
      	* lra.c (collect_non_operand_hard_regs): Don't ignore operator
      	locations.
      	* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
      	(make_hard_regno_born, make_hard_regno_dead): Update
      	bb_killed_pseudos and bb_gen_pseudos.
      
      2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR sanitizer/82353
      	* gcc.target/i386/i386.exp (tests): Permit '.C' extension.
      	* gcc.target/i386/pr82353.C: New.
      
      From-SVN: r253656
      Vladimir Makarov committed
    • [PATCH] Include path enumeration · b90c9338
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00693.html
      	gcc/
      	* incpath.h (enum incpath_kind): Name enum, prefix values.
      	(add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
      	* incpath.c (heads, tails): Use INC_MAX.
      	(add_env_var_paths, add_standard_paths): Use incpath_kind.
      	(merge_include_chains, split_quote_chain,
      	register_include_chains): Update incpath_kind names.
      	(add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
      	* config/darwin-c.c (add_system_framework_path): Update incpath_kind
      	names.
      	(add_framework_path, darwin_register_objc_includes): Likewise.
      	* config/vms/vms-c.c (vms_c_register_includes): Likewise.
      	gcc/c-family/
      	* c-opts.c (add_prefixed_path): Change chain to incpath_kind.
      	(c_common_handle_option): Update incpath_kind names.
      	gcc/fortran/
      	* cpp.c (gfc_cpp_add_include_path): Update incpath_e names.
      	(gfc_cpp_add_include_path_after): Likewise.
      
      From-SVN: r253654
      Nathan Sidwell committed
    • i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): Do not use float_operator operator predicate. · 42851ff8
      	* config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
      	Do not use float_operator operator predicate.
      	(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
      	* config/i386/predicates.md (float_operator): Remove predicate.
      
      	* config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
      	(*jccxf_i387): Ditto.
      	(*jcc<mode>_i387): Ditto.
      	(*jccu<mode>_i387): Ditto.
      	(*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
      	(*jcc_*_i387 splitters): Remove.
      	* config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
      	* config/i386/i386.c (ix86_split_fp_branch): Remove.
      	* config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
      	Remove predicate.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/387-ficom-1.c: New test.
      
      From-SVN: r253653
      Uros Bizjak committed
    • profile-count.h (slow_safe_scale_64bit): New function. · 9588ea78
      	* profile-count.h (slow_safe_scale_64bit): New function.
      	(safe_scale_64bit): New inline.
      	(profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
      	* profile-count.c: Include wide-int.h
      	(slow_safe_scale_64bit): New.
      
      From-SVN: r253652
      Jan Hubicka committed
    • struct-layout-1_generate.c (generate_fields): Fix typo in address computation of… · 278a8434
      struct-layout-1_generate.c (generate_fields): Fix typo in address computation of end of complex_attrib_array_types.
      
      	* gcc.dg/struct-layout-1_generate.c (generate_fields): Fix typo in
      	address computation of end of complex_attrib_array_types.
      
      From-SVN: r253650
      Jeff Law committed
    • [PATCH] DECL_ASSEMBLER_NAME and friends · a92f6726
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html
      	* tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
      	HAS_DECL_ASSEMBLER_NAME_P.
      	* gimple-expr.c (gimple_decl_printable_name: Check
      	HAS_DECL_ASSEMBLER_NAME_P too.
      	* ipa-utils.h (type_in_anonymous_namespace_p): Check
      	DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
      	(odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
      	* passes.c (rest_of_decl_compilation): Check
      	HAS_DECL_ASSEMBLER_NAME_P too.
      	* recog.c (verify_changes): Likewise.
      	* tree-pretty-print.c (dump_decl_name): Likewise.
      	* tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
      
      	c/
      	* c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
      
      From-SVN: r253649
      Nathan Sidwell committed
    • [PATCH] DECL_ASSEMBLER_NAME and friends · 4e7d0260
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html
      	* tree.h (DECL_ASSEMBLER_NAME_RAW): New.
      	(SET_DECL_ASSEMBLER_NAME): Use it.
      	(DECL_ASSEMBLER_NAME_SET_P): Likewise.
      	(COPY_DECL_ASSEMBLER_NAME): Likewise.
      	* tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
      
      	lto/
      	* lto.c (mentions_vars_p_decl_with_vis): Use
      	DECL_ASSEMBLER_NAME_RAW.
      	(lto_fixup_prevailing_decls): Likewise.
      
      	cp
      	* decl2.c (struct mangled_decl_hash): Use DECL_ASSEMBLER_NAME_RAW.
      	(record_mangling): Likewise.
      
      From-SVN: r253647
      Nathan Sidwell committed
    • config.gcc (i386, x86_64): Add extra objects. · 64766e8d
      
      
      	* config.gcc (i386, x86_64): Add extra objects.
      	* i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
      	(ix86_min_insn_size): Declare.
      	(ix86_issue_rate): Declare.
      	(ix86_adjust_cost): Declare.
      	(ia32_multipass_dfa_lookahead): Declare.
      	(ix86_macro_fusion_p): Declare.
      	(ix86_macro_fusion_pair_p): Declare.
      	(ix86_bd_has_dispatch): Declare.
      	(ix86_bd_do_dispatch): Declare.
      	(ix86_core2i7_init_hooks): Declare.
      	(ix86_atom_sched_reorder): Declare.
      	* i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
      	(COSTS_N_BYTES): Move to x86-tune-costs.h.
      	(DUMMY_STRINGOP_ALGS):x86-tune-costs.h.
      	(rip_relative_addr_p): Rename to ...
      	(ix86_rip_relative_addr_p): ... this one; export.
      	(memory_address_length): Update.
      	(ix86_issue_rate): Move to x86-tune-sched.c.
      	(ix86_flags_dependent): Move to x86-tune-sched.c.
      	(ix86_agi_dependent): Move to x86-tune-sched.c.
      	(exact_dependency_1): Move to x86-tune-sched.c.
      	(exact_store_load_dependency): Move to x86-tune-sched.c.
      	(ix86_adjust_cost): Move to x86-tune-sched.c.
      	(ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
      	(ix86_macro_fusion_p): Move to x86-tune-sched.c.
      	(ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
      	(do_reorder_for_imul): Move to x86-tune-sched-atom.c.
      	(swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
      	(ix86_sched_reorder): Move to x86-tune-sched-atom.c.
      	(core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
      	(core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
      	(min_insn_size): Rename to ...
      	(ix86_min_insn_size): ... this one; export.
      	(core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_backtrack): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
      	(ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
      	(ix86_avoid_jump_mispredicts): Update.
      	(TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
      	(TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
      	(TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
      	(DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
      	(MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
      	(MAX_INSN): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM_32): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM_64): Move to ix86-tune-sched-bd.c.
      	(MAX_LOAD): Move to ix86-tune-sched-bd.c.
      	(MAX_STORE): Move to ix86-tune-sched-bd.c.
      	(BIG): Move to ix86-tune-sched-bd.c.
      	(enum dispatch_group): Move to ix86-tune-sched-bd.c.
      	(enum insn_path): Move to ix86-tune-sched-bd.c.
      	(get_mem_group): Move to ix86-tune-sched-bd.c.
      	(is_cmp): Move to ix86-tune-sched-bd.c.
      	(dispatch_violation): Move to ix86-tune-sched-bd.c.
      	(is_branch): Move to ix86-tune-sched-bd.c.
      	(is_prefetch): Move to ix86-tune-sched-bd.c.
      	(init_window): Move to ix86-tune-sched-bd.c.
      	(allocate_window): Move to ix86-tune-sched-bd.c.
      	(init_dispatch_sched): Move to ix86-tune-sched-bd.c.
      	(is_end_basic_block): Move to ix86-tune-sched-bd.c.
      	(process_end_window): Move to ix86-tune-sched-bd.c.
      	(allocate_next_window): Move to ix86-tune-sched-bd.c.
      	(find_constant): Move to ix86-tune-sched-bd.c.
      	(get_num_immediates): Move to ix86-tune-sched-bd.c.
      	(has_immediate): Move to ix86-tune-sched-bd.c.
      	(get_insn_path): Move to ix86-tune-sched-bd.c.
      	(get_insn_group): Move to ix86-tune-sched-bd.c.
      	(count_num_restricted): Move to ix86-tune-sched-bd.c.
      	(fits_dispatch_window): Move to ix86-tune-sched-bd.c.
      	(add_insn_window): Move to ix86-tune-sched-bd.c.
      	(add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
      	(debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
      	(debug_dispatch_window): Move to ix86-tune-sched-bd.c.
      	(debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
      	(debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
      	(do_dispatch): Move to ix86-tune-sched-bd.c.
      	(has_dispatch): Move to ix86-tune-sched-bd.c.
      	* i386/t-i386: Add new object files.
      	* i386/x86-tune-costs.h: New file.
      	* i386/x86-tune-sched-atom.c: New file.
      	* i386/x86-tune-sched-bd.c: New file.
      	* i386/x86-tune-sched-core.c: New file.
      	* i386/x86-tune-sched.c: New file.
      
      From-SVN: r253646
      Jan Hubicka committed
    • pretty-print.c [_WIN32] (colorize_init): Remove. · db0d1bae
      2017-10-11  Liu Hao  <lh_mouse@126.com>
      
      	* pretty-print.c [_WIN32] (colorize_init): Remove.  Use
      	the generic version below instead.
      	(should_colorize): Recognize Windows consoles as terminals
      	for MinGW targets.
      	* pretty-print.c [__MINGW32__] (write_all): New function.
      	[__MINGW32__] (find_esc_head): Likewise.
      	[__MINGW32__] (find_esc_terminator): Likewise.
      	[__MINGW32__] (eat_esc_sequence): Likewise.
      	[__MINGW32__] (mingw_ansi_fputs): New function that handles
      	ANSI escape codes.
      	(pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
      	for MinGW targets.
      
      From-SVN: r253645
      Liu Hao committed
    • tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Properly call… · 85866209
      tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Properly call analyze_scalar_evolution with the loop of the stmt.
      
      2017-10-11  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
      	Properly call analyze_scalar_evolution with the loop of the stmt.
      
      From-SVN: r253644
      Richard Biener committed
    • tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand. · d2ec0277
      2017-10-11  Richard Biener  <rguenther@suse.de>
      
      	* tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
      	* tree-core.h (tree_base): Add chrec_var union member.
      	* tree.h (CHREC_VAR): Remove.
      	(CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
      	* tree-chrec.h (build_polynomial_chrec): Adjust.
      	* tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
      	* tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
      
      From-SVN: r253643
      Richard Biener committed
    • X+Y < X iff Y<0 moved to match.pd · 6358a676
      2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
      	* match.pd: ... here.
      	((T) X == (T) Y): Relax condition.
      
      gcc/testsuite/
      	* gcc.dg/Wstrict-overflow-7.c: Xfail.
      	* gcc.dg/pragma-diag-3.c: Likewise.
      
      From-SVN: r253642
      Marc Glisse committed
    • re PR tree-optimization/82472 (ICE in generate_code_for_partition, at… · b4ec1d31
      re PR tree-optimization/82472 (ICE in generate_code_for_partition, at tree-loop-distribution.c:1145)
      
      	PR tree-optimization/82472
      	* tree-loop-distribution.c (sort_partitions_by_post_order): Refine
      	comment.
      	(break_alias_scc_partitions): Update postorder number.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr82472.c: New test.
      
      From-SVN: r253641
      Bin Cheng committed
    • Do not error for no_sanitize attributes (PR sanitizer/82490). · 3a266bcd
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82490
      	* opts.c (parse_no_sanitize_attribute): Do not use error_value
      	variable.
      	* opts.h (parse_no_sanitize_attribute): Remove last argument.
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82490
      	* c-attribs.c (handle_no_sanitize_attribute): Report directly
      	Wattributes warning.
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82490
      	* c-c++-common/ubsan/attrib-5.c: New test.
      
      From-SVN: r253640
      Martin Liska committed