aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-10-13Daily bump.GCC Administrator1-1/+1
From-SVN: r253704
2017-10-13Clobbers and Scratch RegistersAlan Modra2-5/+83
* doc/extend.texi (Extended Asm <Clobbers>): Rename to "Clobbers and Scratch Registers". Add paragraph on alternative to clobbers for scratch registers and OpenBLAS example. From-SVN: r253701
2017-10-13Asm memory constraintsAlan Modra4-7/+135
* doc/extend.texi (Clobbers): Correct vax example. Delete old example of a memory input for a string of known length. Move commentary out of table. Add a number of new examples covering array memory inputs. testsuite/ * gcc.target/i386/asm-mem.c: New test. From-SVN: r253700
2017-10-12re PR tree-optimization/82493 (UBSAN in gcc/sbitmap.c:368:28: runtime error: ↵Martin Liska5-18/+115
shift exponent 64 is too large for 64-bit type 'long unsigned int') PR tree-optimization/82493 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation. (test_range_functions): New function. (sbitmap_c_tests): Likewise. * selftest-run-tests.c (selftest::run_tests): Run new tests. * selftest.h (sbitmap_c_tests): New function. * tree-ssa-dse.c (live_bytes_read): Fix thinko. From-SVN: r253699
2017-10-12Fix spacing issue.Michael Meissner2-152/+156
From-SVN: r253696
2017-10-12re PR target/82498 (Missed optimization for x86 rotate instruction)Jakub Jelinek5-0/+220
PR target/82498 * config/i386/i386.md (*ashl<mode>3_mask_1, *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split patterns. * gcc.target/i386/pr82498-1.c: New test. * gcc.target/i386/pr82498-2.c: New test. From-SVN: r253695
2017-10-12compiler: fix import of indirectly imported type aliasIan Lance Taylor2-8/+8
We were looking for the " = " before the optional package name that appears for an indirect reference, but the exporter was putting it after. Test is https://golang.org/cl/70290. Reviewed-on: https://go-review.googlesource.com/70330 From-SVN: r253694
2017-10-12[C++ PATCH] cp_expr tweak and delete unused enumerationsNathan Sidwell2-4/+10
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00784.html * cp-tree.h (cp_expr): Add const operator * and operator-> accessors. (cp_tree_node_structure_enum): Delete TS_CP_BINDING, TS_CP_WRAPPER, LAST_TS_CP_ENUM. From-SVN: r253693
2017-10-12profile-count.c (safe_scale_64bit): Fix GCC4.x path.Jan Hubicka7-25/+49
* profile-count.c (safe_scale_64bit): Fix GCC4.x path. (profile_probability): Set max_probability to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows in temporaries. * profile-count.c (profile_probability::differs_from_p): Do not rely on max_probaiblity == 10000 * gcc.dg/predict-13.c: Update template for probaility change. * gcc.dg/predict-8.c: Likewise. From-SVN: r253692
2017-10-12tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with negative offsets.Jeff Law2-0/+6
* tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with negative offsets. From-SVN: r253691
2017-10-12C/C++: add fix-it hints for various missing symbolsDavid Malcolm29-57/+528
The patch improves our C/C++ frontends' handling of missing symbols, by making c_parser_require and cp_parser_require use "better" locations for the diagnostic, and insert fix-it hints, under certain circumstances (see the comments in the patch for full details). For example, for this code with a missing semicolon: $ cat test.c int missing_semicolon (void) { return 42 } trunk currently emits: test.c:4:1: error: expected ';' before '}' token } ^ This patch adds a fix-it hint for the missing semicolon, and puts the error at the location of the missing semicolon, printing the followup token as a secondary location: test.c:3:12: error: expected ';' before '}' token return 42 ^ ; } ~ More examples can be seen in the test cases. gcc/c-family/ChangeLog: * c-common.c (enum missing_token_insertion_kind): New enum. (get_missing_token_insertion_kind): New function. (maybe_suggest_missing_token_insertion): New function. * c-common.h (maybe_suggest_missing_token_insertion): New decl. gcc/c/ChangeLog: * c-parser.c (c_parser_require): Add "type_is_unique" param and use it to guard calls to maybe_suggest_missing_token_insertion. (c_parser_parms_list_declarator): Override default value of new "type_is_unique" param to c_parser_require. (c_parser_asm_statement): Likewise. * c-parser.h (c_parser_require): Add "type_is_unique" param, defaulting to true. gcc/cp/ChangeLog: * parser.c (get_required_cpp_ttype): New function. (cp_parser_error_1): Call it, using the result to call maybe_suggest_missing_token_insertion. gcc/testsuite/ChangeLog: * c-c++-common/cilk-plus/AN/parser_errors.c: Update expected output to reflect changes to reported locations of missing symbols. * c-c++-common/cilk-plus/AN/parser_errors2.c: Likewise. * c-c++-common/cilk-plus/AN/parser_errors3.c: Likewise. * c-c++-common/cilk-plus/AN/pr61191.c: Likewise. * c-c++-common/gomp/pr63326.c: Likewise. * c-c++-common/missing-close-symbol.c: Likewise, also update for new fix-it hints. * c-c++-common/missing-symbol.c: Likewise, also add test coverage for missing colon in ternary operator. * g++.dg/cpp1y/digit-sep-neg.C: Likewise. * g++.dg/cpp1y/pr65202.C: Likewise. * g++.dg/missing-symbol-2.C: New test case. * g++.dg/other/do1.C: Update expected output to reflect changes to reported locations of missing symbols. * g++.dg/parse/error11.C: Likewise. * g++.dg/template/error11.C: Likewise. * gcc.dg/missing-symbol-2.c: New test case. * gcc.dg/missing-symbol-3.c: New test case. * gcc.dg/noncompile/940112-1.c: Update expected output to reflect changes to reported locations of missing symbols. * gcc.dg/noncompile/971104-1.c: Likewise. * obj-c++.dg/exceptions-6.mm: Likewise. * obj-c++.dg/pr48187.mm: Likewise. * objc.dg/exceptions-6.m: Likewise. From-SVN: r253690
2017-10-12PR c/82301 - Updated test case g++.dg/ext/attr-ifunc-1.C (and others) in ↵Martin Sebor14-112/+282
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
2017-10-12C++: avoid partial duplicate implementation of cp_parser_errorDavid Malcolm4-76/+112
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
2017-10-12revert: re PR sanitizer/82353 (runtime ubsan crash)Vladimir Makarov3-8/+15
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
2017-10-12* x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.Jan Hubicka2-1/+33
From-SVN: r253684
2017-10-12alpha.c (alpha_split_conditional_move): Use std::swap instead of manually ↵Uros Bizjak2-8/+11
swapping. * 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
2017-10-12tree-loop-distribution.c (struct builtin_info): New struct.Bin Cheng7-198/+405
* 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
2017-10-12tree-loop-distribution.c: Adjust the general comment.Bin Cheng7-105/+230
* 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
2017-10-12tree-loop-distribution.c (break_alias_scc_partitions): Add comment and set ↵Bin Cheng2-2/+13
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
2017-10-12re PR tree-optimization/69728 (internal compiler error: in ↵Richard Biener4-17/+30
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
2017-10-12genrecog.c (validate_pattern): For VEC_SELECT verify that CONST_INT ↵Jakub Jelinek2-0/+20
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
2017-10-12Makefile.in (TAGS): Merge all the *.def files into one pattern.Aldy Hernandez2-2/+6
* Makefile.in (TAGS): Merge all the *.def files into one pattern. Handle params.def. From-SVN: r253674
2017-10-12re PR c++/82159 (ICE: in assign_temp, at function.c:961)Jakub Jelinek4-2/+79
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
2017-10-12re PR sanitizer/82353 (runtime ubsan crash)Jakub Jelinek3-2/+9
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
2017-10-12rs6000: Remove TARGET_ISEL64Segher Boessenkool3-10/+13
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
2017-10-12Daily bump.GCC Administrator1-1/+1
From-SVN: r253670
2017-10-11* config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common): Test ↵David Edelsohn2-1/+7
for NULL decl. From-SVN: r253667
2017-10-11go-system.h (__STDC_FORMAT_MACROS): Define before including any system ↵Tony Reix2-0/+11
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
2017-10-12rs6000: Improve iselSegher Boessenkool5-57/+57
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
2017-10-11runtime: fix issues on AIX about uintptr(_t)Ian Lance Taylor3-3/+3
Reviewed-on: https://go-review.googlesource.com/69891 From-SVN: r253664
2017-10-11i386.c (ix86_canonicalize_comparison): New function.Uros Bizjak4-14/+60
* 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
2017-10-11re PR middle-end/80421 (Case dispatch is scrambled in switch-statement)Jakub Jelinek2-0/+124
PR middle-end/80421 * gcc.c-torture/execute/pr80421.c: New test. From-SVN: r253662
2017-10-11re PR tree-optimization/78558 (Incorrect loop optimization leads to crash)Jakub Jelinek2-0/+47
PR tree-optimization/78558 * gcc.dg/vect/pr78558.c: New test. From-SVN: r253661
2017-10-11re PR c++/82414 (Issue with ODR/LTO in G++)Jakub Jelinek2-0/+16
PR c++/82414 * g++.dg/lto/pr82414_0.C: New test. From-SVN: r253660
2017-10-11re PR c++/78523 (ICE on valid lambda code with implicit capture)Jakub Jelinek2-0/+15
PR c++/78523 * g++.dg/cpp1y/pr78523.C: New test. From-SVN: r253659
2017-10-11re PR c++/80194 (ICE with local constant referenced by a lambda expression)Jakub Jelinek2-0/+22
PR c++/80194 * g++.dg/cpp1y/pr80194.C: New test. From-SVN: r253658
2017-10-11re PR target/81422 ([aarch64] internal compiler error: in update_equiv_regs, ↵Qing Zhao4-4/+34
at ira.c:3425) /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
2017-10-11re PR sanitizer/82353 (runtime ubsan crash)Vladimir Makarov6-5/+84
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
2017-10-11[PATCH] Include path enumerationNathan Sidwell9-57/+92
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
2017-10-11i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): Do not use float_operator ↵Uros Bizjak7-187/+71
operator predicate. * 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
2017-10-11profile-count.h (slow_safe_scale_64bit): New function.Jan Hubicka3-14/+63
* 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
2017-10-11struct-layout-1_generate.c (generate_fields): Fix typo in address ↵Jeff Law2-1/+6
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
2017-10-11[PATCH] DECL_ASSEMBLER_NAME and friendsNathan Sidwell10-48/+61
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
2017-10-11[PATCH] DECL_ASSEMBLER_NAME and friendsNathan Sidwell7-15/+36
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
2017-10-11config.gcc (i386, x86_64): Add extra objects.Jan Hubicka10-3867/+4145
* 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
2017-10-11pretty-print.c [_WIN32] (colorize_init): Remove.Liu Hao3-10/+697
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
2017-10-11tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Properly call ↵Richard Biener2-1/+7
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
2017-10-11tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.Richard Biener7-12/+23
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
2017-10-11X+Y < X iff Y<0 moved to match.pdMarc Glisse6-138/+62
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
2017-10-11re PR tree-optimization/82472 (ICE in generate_code_for_partition, at ↵Bin Cheng4-8/+53
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