- 11 Oct, 2017 14 commits
-
-
2017-10-11 Martin Liska <mliska@suse.cz> PR sanitizer/82490 * opts.c (parse_no_sanitize_attribute): Do not use error_value variable. * opts.h (parse_no_sanitize_attribute): Remove last argument. 2017-10-11 Martin Liska <mliska@suse.cz> PR sanitizer/82490 * c-attribs.c (handle_no_sanitize_attribute): Report directly Wattributes warning. 2017-10-11 Martin Liska <mliska@suse.cz> PR sanitizer/82490 * c-c++-common/ubsan/attrib-5.c: New test. From-SVN: r253640
Martin Liska committed -
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
Martin Liska committed -
From-SVN: r253638
Martin Liska committed -
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
Martin Liska committed -
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
Martin Liska committed -
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
Adhemerval Zanella committed -
From-SVN: r253634
Nathan Sidwell committed -
2017-10-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/80412 * g++.dg/cpp1z/class-deduction44.C: New. From-SVN: r253632
Paolo Carlini committed -
re PR c++/82230 (ICE: in tsubst, at cp/pt.c:13686 when binding lambda to 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
Paolo Carlini committed -
2017-10-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81299 * g++.dg/cpp1y/lambda-generic-ice7.C: New. From-SVN: r253630
Paolo Carlini committed -
tree-scalar-evolution.c (get_scalar_evolution): Handle default-defs and 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
Richard Biener committed -
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
James E Wilson committed -
From-SVN: r253627
GCC Administrator committed -
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
Segher Boessenkool committed
-
- 10 Oct, 2017 26 commits
-
-
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
Nathan Sidwell committed -
2017-10-10 Paolo Carlini <paolo.carlini@oracle.com> PR c++/78006 * g++.dg/cpp1y/auto-fn40.C: New. From-SVN: r253621
Paolo Carlini committed -
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00621.html * cp-tree.h (default_hash_traits <lang_identifier *>): Delete specialization. From-SVN: r253620
Nathan Sidwell committed -
2017-10-10 Paolo Carlini <paolo.carlini@oracle.com> PR c++/81032 * g++.dg/cpp1y/lambda-generic-ice6.C: New. From-SVN: r253619
Paolo Carlini committed -
re PR rtl-optimization/68205 (ICE compiling 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
Jakub Jelinek committed -
2017-10-10 Jakub Jelinek <jakub@redhat.com> PR c++/67625 * g++.dg/cpp0x/pr67625.C: New test. From-SVN: r253617
Jakub Jelinek committed -
2017-10-10 Jakub Jelinek <jakub@redhat.com> PR middle-end/70887 * g++.dg/cpp0x/pr70887.C: New test. From-SVN: r253616
Jakub Jelinek committed -
re PR c++/70338 (ICE combining debug symbols, range-for in lambda in function template accessing captured variable-size array) PR c++/70338 * g++.dg/cpp0x/pr70338.C: New test. From-SVN: r253615
Jakub Jelinek committed -
PR c++/77786 * g++.dg/cpp1y/pr77786.C: New test. From-SVN: r253614
Jakub Jelinek committed -
PR c++/71875 * g++.dg/cpp1y/pr71875.C: New test. From-SVN: r253613
Jakub Jelinek committed -
PR c++/77578 * g++.dg/gomp/pr77578.C: New test. From-SVN: r253612
Jakub Jelinek committed -
PR middle-end/70100 * g++.dg/opt/pr70100.C: New test. From-SVN: r253611
Jakub Jelinek committed -
2017-10-10 Jakub Jelinek <jakub@redhat.com> PR c++/68252 * g++.dg/other/pr68252.C: New test. From-SVN: r253610
Jakub Jelinek committed -
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
Jakub Jelinek committed -
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
Nathan Sidwell committed -
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
Will Schmidt committed -
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
Nathan Sidwell committed -
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
Andreas Tobler committed -
* 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
Jason Merrill committed -
* 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
Jason Merrill committed -
* 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
Jason Merrill committed -
* 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
Jan Hubicka committed -
[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
Will Schmidt committed -
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
Richard Sandiford committed -
re PR libfortran/82233 (execute_command_line causes program to stop when 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
Thomas Koenig committed -
|-------* gcc.target/powerpc/fold-vec-splat-16.c: New |-------* 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
Will Schmidt committed
-