aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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
2017-10-11Do not error for no_sanitize attributes (PR sanitizer/82490).Martin Liska7-13/+35
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
2017-10-11Fix use-after-scope error.Martin Liska2-1/+6
2017-10-11 Martin Liska <mliska@suse.cz> * print-rtl.c (print_insn): Move declaration of idbuf to same scope as name. From-SVN: r253639
2017-10-11Revert last commit.Martin Liska4-8/+16
From-SVN: r253638
2017-10-11Do not handled volatile arguments (PR sanitizer/82484).Martin Liska4-1/+19
2017-10-11 Martin Liska <mliska@suse.cz> PR sanitizer/82484 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle volatile arguments. 2017-10-11 Martin Liska <mliska@suse.cz> PR sanitizer/82484 * gcc.dg/asan/pr82484.c: New test. From-SVN: r253637
2017-10-11Fix a test-case for Darwin.Martin Liska2-4/+7
2017-10-11 Martin Liska <mliska@suse.cz> * c-c++-common/ubsan/ptr-overflow-sanitization-1.c: Scan optimized dump rather than assembly. From-SVN: r253636
2017-10-11Enable ifunc attribute by default for ARM GNU/LinuxAdhemerval Zanella2-1/+6
Similar to other architectures with IFUNC binutils/glibc support, this patch enables the ifunc attribute for ARM GNU/Linux. Although not required for build master GLIBC, the intention is to allow refactor its assembly implementation to C. Tested compilation of glibc (in conjunction with a glibc patch to support using the attribute on ARM) with build-many-glibcs.py (with a patch to add a armv7 variant which enables multiarch). I have not run the GCC tests for ARM. * config.gcc (default_gnu_indirect_function): Default to yes for arm*-*-linux* with glibc. From-SVN: r253635
2017-10-11* g++.dg/cpp/string-3.C: Fix dg-final.Nathan Sidwell2-1/+5
From-SVN: r253634
2017-10-11re PR c++/80412 ([c++17] crash with class template deduction guide and ↵Paolo Carlini2-0/+10
inheritance) 2017-10-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/80412 * g++.dg/cpp1z/class-deduction44.C: New. From-SVN: r253632
2017-10-11re PR c++/82230 (ICE: in tsubst, at cp/pt.c:13686 when binding lambda to ↵Paolo Carlini2-0/+21
variable inside a generic lambda inside a template member function inside a template class) 2017-10-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/82230 * g++.dg/cpp1y/lambda-generic-ice8.C: New. From-SVN: r253631
2017-10-11re PR c++/81299 (Spurious "set but not used" warning with constexpr variable)Paolo Carlini2-0/+20
2017-10-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81299 * g++.dg/cpp1y/lambda-generic-ice7.C: New. From-SVN: r253630
2017-10-11tree-scalar-evolution.c (get_scalar_evolution): Handle default-defs and ↵Richard Biener2-61/+40
types we do not want to analyze. 2017-10-11 Richard Biener <rguenther@suse.de> * tree-scalar-evolution.c (get_scalar_evolution): Handle default-defs and types we do not want to analyze. (interpret_loop_phi): Replace unreachable code with an assert. (compute_scalar_evolution_in_loop): Remove and inline ... (analyze_scalar_evolution_1): ... here, replacing condition with what makes the intent clearer. Remove handling of cases get_scalar_evolution now handles. From-SVN: r253629
2017-10-10Allow 2 insns from sched group to issue in same cycle, if no stalls needed.James E Wilson2-4/+12
gcc/ PR rtl-optimization/81434 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update comment for main loop. In sched_group_found if, also add checks for pass and min_cost_group. From-SVN: r253628
2017-10-11Daily bump.GCC Administrator1-1/+1
From-SVN: r253627
2017-10-11rs6000: insn_costSegher Boessenkool3-0/+94
This adds an implementation of the insn_cost hook to rs6000. This implementations is very minimal (so far). It is mostly based on how many machine instructions are generated by an RTL insn, and it also looks at the instruction type. Floating point insns are costed as if all machine instructions it generates are floating point; the other insns are treated as if all but one are integer insns (and one is the specified type). Load instructions are treated as costing twice as much, and load locked and sync insns as three times as much (just like the original costs), and integer div and mul are handled as well. Each define_insn (etc.) can set a "cost" attribute to override this general cost. With optimization for size, the cost is set equal to the value of the "length" attribute. With this, the majority of cost differences between old and new are where the old was wrong. Also, benchmarks show a slight win (if anything). Some refinements are obviously needed. * config/rs6000/rs6000.c (TARGET_INSN_COST): New. (rs6000_insn_cost): New function. * config/rs6000/rs6000.md (cost): New attribute. From-SVN: r253624
2017-10-10[C++ PATCH] hash-table for extern-c fns.Nathan Sidwell7-26/+65
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00614.html * name-lookup.c (extern_c_fns): Rename to ... (extern_c_decls): ... here. (check_extern_c_conflict, extern_c_linkage_bindings): Update. (do_pushdecl): Check extern-c fns and vars. * g++.dg/lookup/extern-c-redecl6.C: New. * g++.dg/lookup/extern-c-hidden.C: Adjust diagnostics. * g++.dg/lookup/extern-c-redecl.C: Likewise. * g++.old-deja/g++.other/using9.C: Likewise. From-SVN: r253622
2017-10-10re PR c++/78006 (Segmentation fault with 'using' and generic lambda trailing ↵Paolo Carlini2-0/+42
return types) 2017-10-10 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78006 * g++.dg/cpp1y/auto-fn40.C: New. From-SVN: r253621
2017-10-10[C++ PATCH] Kill unneeded hash specializationNathan Sidwell2-24/+3
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00621.html * cp-tree.h (default_hash_traits <lang_identifier *>): Delete specialization. From-SVN: r253620
2017-10-10re PR c++/81032 (ICE with lambda and broken constexpr)Paolo Carlini2-0/+18
2017-10-10 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81032 * g++.dg/cpp1y/lambda-generic-ice6.C: New. From-SVN: r253619
2017-10-10re PR rtl-optimization/68205 (ICE compiling ↵Jakub Jelinek2-0/+8
gcc.c-torture/execute/20040709-2.c with -fno-common on arm-none-eabi) PR rtl-optimization/68205 * gcc.c-torture/execute/20040709-3.c: New test. From-SVN: r253618
2017-10-10re PR c++/67625 (some constexpr expressions rejected as enumerator value)Jakub Jelinek2-0/+15
2017-10-10 Jakub Jelinek <jakub@redhat.com> PR c++/67625 * g++.dg/cpp0x/pr67625.C: New test. From-SVN: r253617