aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
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
2017-10-10re PR middle-end/70887 (internal compiler error in trunc_int_for_mode, at ↵Jakub Jelinek2-0/+34
explow.c:78) 2017-10-10 Jakub Jelinek <jakub@redhat.com> PR middle-end/70887 * g++.dg/cpp0x/pr70887.C: New test. From-SVN: r253616
2017-10-10re PR c++/70338 (ICE combining debug symbols, range-for in lambda in ↵Jakub Jelinek2-0/+20
function template accessing captured variable-size array) PR c++/70338 * g++.dg/cpp0x/pr70338.C: New test. From-SVN: r253615
2017-10-10re PR c++/77786 (ICE in tsubst_copy, at cp/pt.c:13040)Jakub Jelinek2-0/+24
PR c++/77786 * g++.dg/cpp1y/pr77786.C: New test. From-SVN: r253614
2017-10-10re PR c++/71875 (template specialization compile error)Jakub Jelinek2-0/+27
PR c++/71875 * g++.dg/cpp1y/pr71875.C: New test. From-SVN: r253613
2017-10-10re PR c++/77578 (ICE in cp_parser_omp_for_loop (cp/parser.c:29404))Jakub Jelinek2-0/+34
PR c++/77578 * g++.dg/gomp/pr77578.C: New test. From-SVN: r253612
2017-10-10re PR middle-end/70100 (ICE: in execute, at cfgexpand.c:6066)Jakub Jelinek2-0/+24
PR middle-end/70100 * g++.dg/opt/pr70100.C: New test. From-SVN: r253611
2017-10-10re PR c++/68252 (left operand of shift expression, while we shift > 0 integer)Jakub Jelinek2-0/+8
2017-10-10 Jakub Jelinek <jakub@redhat.com> PR c++/68252 * g++.dg/other/pr68252.C: New test. From-SVN: r253610
2017-10-10re PR target/79565 (ICE in copy_to_mode_reg, at explow.c:612)Jakub Jelinek6-43/+142
PR target/79565 PR target/82483 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq, __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi. (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly to OPTION_MASK_ISA_AVX512VL - builtins that have both OPTION_MASK_ISA_MMX and some other bit set require both mmx and the ISAs without the mmx bit. * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi, __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps, __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw, __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub, __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb, __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi, __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd, __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw, __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd, __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd, __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw, __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb, __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq, __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr): Add OPTION_MASK_ISA_MMX. * gcc.target/i386/pr82483-1.c: New test. * gcc.target/i386/pr82483-2.c: New test. Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com> From-SVN: r253609
2017-10-10[C++ PATCH] Hash mangling aliasNathan Sidwell2-12/+46
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00618.html * decl2.c (struct mangled_decl_hash): New hash traits. (mangled_decls): Make hash_table<mangled_decl_hash>. (generate_mangling_alias, record_mangling): Adjust. From-SVN: r253608
2017-10-10fold-vec-mult-int128-p8.c: Update optionsWill Schmidt3-6/+14
2017-10-10 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-mult-int128-p8.c: Update options * gcc.target/powerpc/fold-vec-mult-int128-p9.c: Update expected instruction list. From-SVN: r253606
2017-10-10[PATCH] preprocessor stringizing raw stringsNathan Sidwell2-0/+14
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00611.html libcpp/ PR preprocessor/82506 * macro.c (cpp_quote_string): Escape raw LFs. gcc/testsuite/ PR preprocessor/82506 * g++.dg/cpp/string-3.C: New. From-SVN: r253605
2017-10-10config.gcc (armv7*-*-freebsd*): New target.Andreas Tobler2-1/+9
2017-10-10 Andreas Tobler <andreast@gcc.gnu.org> * config.gcc (armv7*-*-freebsd*): New target. (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define. From-SVN: r253602
2017-10-10More delayed lambda capture fixes.Jason Merrill16-74/+300
* call.c (add_function_candidate): Use build_address. (build_op_call_1): Call mark_lvalue_use early. (build_over_call): Handle error from build_this. * constexpr.c (cxx_bind_parameters_in_call): Use build_address. (cxx_eval_increment_expression): Don't use rvalue(). * cvt.c (convert_to_void): Use mark_discarded_use. * expr.c (mark_use): Handle PARM_DECL, NON_DEPENDENT_EXPR. Fix reference handling. Don't copy the expression. (mark_discarded_use): New. * lambda.c (insert_capture_proxy): Add some sanity checking. (maybe_add_lambda_conv_op): Set cp_unevaluated_operand. * pt.c (register_local_specialization): Add sanity check. * semantics.c (process_outer_var_ref): Fix check for existing proxy. * typeck.c (cp_build_addr_expr_1): Handle error from mark_lvalue_use. (cp_build_modify_expr): Call mark_lvalue_use_nonread, handle error from rvalue. Handle generic lambda capture in dependent expressions. * lambda.c (need_generic_capture, dependent_capture_r) (do_dependent_capture): New. * pt.c (processing_nonlambda_template): Use need_generic_capture. * semantics.c (maybe_cleanup_point_expr) (maybe_cleanup_point_expr_void, finish_goto_stmt) (maybe_convert_cond): Call do_dependent_capture. * typeck.c (build_static_cast): Remove dependent capture handling. From-SVN: r253601
2017-10-10Various small C++ fixes.Jason Merrill5-31/+41
* typeck.c (condition_conversion): Assert !processing_template_decl. * semantics.c (finish_omp_clauses): Don't fold_build_cleanup_point_expr if processing_template_decl. (outer_var_p): A temporary can't be from an outer scope. * pt.c (type_dependent_expression_p): Fix dependency checking of functions without DECL_TEMPLATE_INFO. (instantiate_decl): Use lss_copy. * constexpr.c (is_valid_constexpr_fn): Fix lambdas before C++17. From-SVN: r253600
2017-10-10Check non-dependent conversion in return from template fn.Jason Merrill5-8/+30
* typeck.c (check_return_expr): Check non-dependent conversion in templates. * constraint.cc (check_function_concept): Don't complain about an empty concept if seen_error. From-SVN: r253599
2017-10-10x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, [...]): Move to right spot ↵Jan Hubicka2-16/+22
in the file. * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right spot in the file. From-SVN: r253598
2017-10-10fold-vec-cmp-char.c: New.Will Schmidt7-0/+453
[testsuite] 2017-10-10 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-cmp-char.c: New. * gcc.target/powerpc/fold-vec-cmp-double.c: New. * gcc.target/powerpc/fold-vec-cmp-float.c: New. * gcc.target/powerpc/fold-vec-cmp-int.c: New. * gcc.target/powerpc/fold-vec-cmp-longlong.c: New. * gcc.target/powerpc/fold-vec-cmp-short.c: New. From-SVN: r253597
2017-10-10Require wi::to_wide for treesRichard Sandiford86-559/+896
The wide_int routines allow things like: wi::add (t, 1) to add 1 to an INTEGER_CST T in its native precision. But we also have: wi::to_offset (t) // Treat T as an offset_int wi::to_widest (t) // Treat T as a widest_int Recently we also gained: wi::to_wide (t, prec) // Treat T as a wide_int in preccision PREC This patch therefore requires: wi::to_wide (t) when operating on INTEGER_CSTs in their native precision. This is just as efficient, and makes it clearer that a deliberate choice is being made to treat the tree as a wide_int in its native precision. This also removes the inconsistency that a) INTEGER_CSTs in their native precision can be used without an accessor but must use wi:: functions instead of C++ operators b) the other forms need an explicit accessor but the result can be used with C++ operators. It also helps with SVE, where there's the additional possibility that the tree could be a runtime value. 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * wide-int.h (wide_int_ref_storage): Make host_dependent_precision a template parameter. (WIDE_INT_REF_FOR): Update accordingly. * tree.h (wi::int_traits <const_tree>): Delete. (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs. (wi::to_widest, wi::to_offset): Use them. Expand commentary. (wi::tree_to_wide_ref): New typedef. (wi::to_wide): New function. * calls.c (get_size_range): Use wi::to_wide when operating on trees as wide_ints. * cgraph.c (cgraph_node::create_thunk): Likewise. * config/i386/i386.c (ix86_data_alignment): Likewise. (ix86_local_alignment): Likewise. * dbxout.c (stabstr_O): Likewise. * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise. * expr.c (const_vector_from_tree): Likewise. * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise. * fold-const.c (may_negate_without_overflow_p, negate_expr_p) (fold_negate_expr_1, int_const_binop_1, const_binop) (fold_convert_const_int_from_real, optimize_bit_field_compare) (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1) (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr) (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc) (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const) (fold_not_const, round_up_loc): Likewise. * gimple-fold.c (gimple_fold_indirect_ref): Likewise. * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise. (alloca_call_type): Likewise. * gimple.c (preprocess_case_label_vec_for_gimple): Likewise. * godump.c (go_output_typedef): Likewise. * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise. * internal-fn.c (get_min_precision): Likewise. * ipa-cp.c (ipcp_store_vr_results): Likewise. * ipa-polymorphic-call.c (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise. * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise. (ipa_modify_call_arguments): Likewise. * match.pd: Likewise. * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise. * print-tree.c (print_node_brief, print_node): Likewise. * stmt.c (expand_case): Likewise. * stor-layout.c (layout_type): Likewise. * tree-affine.c (tree_to_aff_combination): Likewise. * tree-cfg.c (group_case_labels_stmt): Likewise. * tree-data-ref.c (dr_analyze_indices): Likewise. (prune_runtime_alias_test_list): Likewise. * tree-dump.c (dequeue_and_dump): Likewise. * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise. * tree-predcom.c (is_inv_store_elimination_chain): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree-scalar-evolution.c (iv_can_overflow_p): Likewise. (simple_iv_with_niters): Likewise. * tree-ssa-address.c (addr_for_mem_ref): Likewise. * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise. * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise. * tree-ssa-loop-niter.c (split_to_var_and_offset) (refine_value_range_using_guard, number_of_iterations_ne_max) (number_of_iterations_lt_to_ne, number_of_iterations_lt) (get_cst_init_from_scev, record_nonwrapping_iv) (scev_var_range_cant_overflow): Likewise. * tree-ssa-phiopt.c (minmax_replacement): Likewise. * tree-ssa-pre.c (compute_avail): Likewise. * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise. (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise. * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise. * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise. * tree-switch-conversion.c (collect_switch_conv_info, array_value_type) (dump_case_nodes, try_switch_expansion): Likewise. * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise. (vect_do_peeling): Likewise. * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. * tree-vect-stmts.c (vectorizable_load): Likewise. * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise. (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise. (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise. (overflow_comparison_p_1, register_edge_assert_for_2): Likewise. (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits) (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise. (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise. (evrp_dom_walker::before_dom_children): Likewise. * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop) (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2) (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit) (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise. (get_type_static_bounds, num_ending_zeros, drop_tree_overflow) (get_range_pos_neg): Likewise. * ubsan.c (ubsan_expand_ptr_ifn): Likewise. * config/darwin.c (darwin_mergeable_constant_section): Likewise. * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise. * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise. * config/avr/avr.c (avr_fold_builtin): Likewise. * config/bfin/bfin.c (bfin_local_alignment): Likewise. * config/msp430/msp430.c (msp430_attr): Likewise. * config/nds32/nds32.c (nds32_insert_attributes): Likewise. * config/powerpcspe/powerpcspe-c.c (altivec_resolve_overloaded_builtin): Likewise. * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate) (rs6000_expand_ternop_builtin): Likewise. * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Likewise. * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise. (rs6000_expand_ternop_builtin): Likewise. * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise. gcc/ada/ * gcc-interface/decl.c (annotate_value): Use wi::to_wide when operating on trees as wide_ints. gcc/c/ * c-parser.c (c_parser_cilk_clause_vectorlength): Use wi::to_wide when operating on trees as wide_ints. * c-typeck.c (build_c_cast, c_finish_omp_clauses): Likewise. (c_tree_equal): Likewise. gcc/c-family/ * c-ada-spec.c (dump_generic_ada_node): Use wi::to_wide when operating on trees as wide_ints. * c-common.c (pointer_int_sum): Likewise. * c-pretty-print.c (pp_c_integer_constant): Likewise. * c-warn.c (match_case_to_enum_1): Likewise. (c_do_switch_warnings): Likewise. (maybe_warn_shift_overflow): Likewise. gcc/cp/ * cvt.c (ignore_overflows): Use wi::to_wide when operating on trees as wide_ints. * decl.c (check_array_designated_initializer): Likewise. * mangle.c (write_integer_cst): Likewise. * semantics.c (cp_finish_omp_clause_depend_sink): Likewise. gcc/fortran/ * target-memory.c (gfc_interpret_logical): Use wi::to_wide when operating on trees as wide_ints. * trans-const.c (gfc_conv_tree_to_mpz): Likewise. * trans-expr.c (gfc_conv_cst_int_power): Likewise. * trans-intrinsic.c (trans_this_image): Likewise. (gfc_conv_intrinsic_bound): Likewise. (conv_intrinsic_cobound): Likewise. gcc/lto/ * lto.c (compare_tree_sccs_1): Use wi::to_wide when operating on trees as wide_ints. gcc/objc/ * objc-act.c (objc_decl_method_attributes): Use wi::to_wide when operating on trees as wide_ints. From-SVN: r253595
2017-10-10re PR libfortran/82233 (execute_command_line causes program to stop when ↵Thomas Koenig2-0/+29
command fails (or does not exist)) 2017-10-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/82233 * intrinsics/execute_command_line.c (execute_command_line): No call to runtime_error if cmdstat is present. 2017-10-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/82233 * gfortran.dg/execute_command_line_3.f90: New test. From-SVN: r253593
2017-10-10|-------* gcc.target/powerpc/fold-vec-splat-16.c: New |-------* ↵Will Schmidt4-0/+144
gcc.target/powerpc/fold-vec-splat-32.c: New. 2017-10-10 Will Schmidt <will_schmidt@vnet.ibm.com> [testsuite] |-------* gcc.target/powerpc/fold-vec-splat-16.c: New |-------* gcc.target/powerpc/fold-vec-splat-32.c: New. |-------* gcc.target/powerpc/fold-vec-splat-8.c: New. From-SVN: r253591
2017-10-10fold-vec-splats-char.c: New.Will Schmidt6-0/+124
[testsuite] 2017-10-10 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-splats-char.c: New. * gcc.target/powerpc/fold-vec-splats-floatdouble.c: New. * gcc.target/powerpc/fold-vec-splats-int.c: New. * gcc.target/powerpc/fold-vec-splats-longlong.c: New. * gcc.target/powerpc/fold-vec-splats-short.c: New. From-SVN: r253590
2017-10-10re PR c/82437 (false-positive -Wtautological-compare warning with -std=gnu89)Jakub Jelinek4-2/+24
PR c/82437 * c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_wide instead of wide_int::from. * c-c++-common/Wtautological-compare-7.c: New test. From-SVN: r253589
2017-10-10[C++ PATCH] set_global_binding tweakNathan Sidwell2-15/+10
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00592.html * name-lookup.c (set_global_binding): Don't deal with STAT_HACK. From-SVN: r253587