aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-10-13Make more use of byte_lowpart_offsetRichard Sandiford6-61/+22
This patch uses byte_lowpart_offset in places that open-coded the calculation. 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset. * combine.c (gen_lowpart_for_combine): Likewise. * dwarf2out.c (rtl_for_decl_location): Likewise. * final.c (alter_subreg): Likewise. * rtlhooks.c (gen_lowpart_general): Likewise. (gen_lowpart_if_possible): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r253714
2017-10-13Make more use of subreg_lowpart_offsetRichard Sandiford4-25/+15
This patch uses subreg_lowpart_offset in places that open-coded the calculation. It also uses it in regcprop.c to test whether, after a mode change, the first register in a multi-register group is still the right one. 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * calls.c (expand_call): Use subreg_lowpart_offset. * cse.c (cse_insn): Likewise. * regcprop.c (copy_value): Likewise. (copyprop_hardreg_forward_1): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r253713
2017-10-13re PR target/82524 (expensive-optimizations produces wrong results)Jakub Jelinek4-16/+80
PR target/82524 * config/i386/i386.md (addqi_ext_1, andqi_ext_1, *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change =Q constraints to +Q and into insn condition add check that operands[0] and operands[1] are equal. (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change =Q constraints to +Q and into insn condition add check that operands[0] is equal to either operands[1] or operands[2]. * gcc.c-torture/execute/pr82524.c: New test. From-SVN: r253710
2017-10-13re PR target/82498 (Missed optimization for x86 rotate instruction)Jakub Jelinek4-38/+108
PR target/82498 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups, instead of handling MINUS_EXPR twice (once for each argument), canonicalize operand order and handle just once, use rtype where possible. Handle (A << B) | (A >> (-B & (Z - 1))). * gcc.dg/tree-ssa/pr82498.c: New test. From-SVN: r253709
2017-10-13re PR target/82498 (Missed optimization for x86 rotate instruction)Jakub Jelinek4-4/+179
PR target/82498 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow any values of __C while still being pattern recognizable as a simple rotate instruction. * gcc.dg/ubsan/pr82498.c: New test. From-SVN: r253708
2017-10-13re PR tree-optimization/82451 ([GRAPHITE] codegen error in get_rename_from_scev)Richard Biener18-280/+324
2017-10-13 Richard Biener <rguenther@suse.de> PR tree-optimization/82451 Revert 2017-10-02 Richard Biener <rguenther@suse.de> PR tree-optimization/82355 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build a mapping for the enclosing loop but avoid generating one for the loop tree root. (copy_bb_and_scalar_dependences): Remove premature codegen error on PHIs in blocks duplicated into multiple places. * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_refs_p): For a loop not in the region use it as loop and nest to analyze the DR in. (try_generate_gimple_bb): Likewise. * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. (add_loop_constraints): For blocks in a loop not in the region create a dimension with a single iteration. * sese.h (gbb_loop_at_index): Remove assert. * cfgloop.c (loop_preheader_edge): For the loop tree root return the single successor of the entry block. * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Reset the SCEV hashtable and niters. * graphite-scop-detection.c (scop_detection::graphite_can_represent_scev): Add SCOP parameter, assert that we only have POLYNOMIAL_CHREC that vary in loops contained in the region. (scop_detection::graphite_can_represent_expr): Adjust. (scop_detection::stmt_has_simple_data_refs_p): For loops not in the region set loop to NULL. The nest is now the entry edge to the region. (try_generate_gimple_bb): Likewise. * sese.c (scalar_evolution_in_region): Adjust for instantiate_scev change. * tree-data-ref.h (graphite_find_data_references_in_stmt): Make nest parameter the edge into the region. (create_data_ref): Likewise. * tree-data-ref.c (dr_analyze_indices): Make nest parameter an entry edge into a region and adjust instantiate_scev calls. (create_data_ref): Likewise. (graphite_find_data_references_in_stmt): Likewise. (find_data_references_in_stmt): Pass the loop preheader edge from the nest argument. * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below parameter the edge into the region. (instantiate_parameters): Use the loop preheader edge as entry. * tree-scalar-evolution.c (analyze_scalar_evolution): Handle NULL loop. (get_instantiated_value_entry): Make instantiate_below parameter the edge into the region. (instantiate_scev_name): Likewise. Adjust dominance checks, when we cannot use loop-based instantiation instantiate by walking use-def chains. (instantiate_scev_poly): Adjust. (instantiate_scev_binary): Likewise. (instantiate_scev_convert): Likewise. (instantiate_scev_not): Likewise. (instantiate_array_ref): Remove. (instantiate_scev_3): Likewise. (instantiate_scev_2): Likewise. (instantiate_scev_1): Likewise. (instantiate_scev_r): Do not blindly handle N-operand trees. Do not instantiate array-refs. Handle all constants and invariants. (instantiate_scev): Make instantiate_below parameter the edge into the region. (resolve_mixers): Use the loop preheader edge for the region parameter to instantiate_scev_r. * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust. * gcc.dg/graphite/pr82451.c: New testcase. * gfortran.dg/graphite/id-27.f90: Likewise. * gfortran.dg/graphite/pr82451.f: Likewise. From-SVN: r253707
2017-10-13re PR tree-optimization/82525 ([GRAPHITE] codegen error for modulo ↵Richard Biener5-44/+94
operations we cannot represent) 2017-10-13 Richard Biener <rguenther@suse.de> PR tree-optimization/82525 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split out from ... (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here. Fail code generation when we cannot represent the isl integer. (binary_op_to_tree): Elide modulo operations that are no-ops in the type we code generate. Remove now superfluous code generation errors. * gcc.dg/graphite/id-30.c: New testcase. * gfortran.dg/graphite/id-28.f90: Likewise. From-SVN: r253706
2017-10-13graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.Richard Biener2-37/+8
2017-10-13 Richard Biener <rguenther@suse.de> * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove. (scop_detection::harmful_loop_in_region): Remove premature IV type restriction. (scop_detection::graphite_can_represent_scev): We can handle pointer IVs just fine. From-SVN: r253705
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 Taylor1-1/+1
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