1. 11 Oct, 2017 1 commit
    • rs6000: insn_cost · ca158af3
      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
  2. 10 Oct, 2017 39 commits
    • [C++ PATCH] hash-table for extern-c fns. · 7cd6ea64
      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
    • re PR c++/78006 (Segmentation fault with 'using' and generic lambda trailing return types) · 507ea98d
      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
    • [C++ PATCH] Kill unneeded hash specialization · d6b605f6
      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
    • re PR c++/81032 (ICE with lambda and broken constexpr) · 92395f1c
      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… · 16d926d2
      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
    • re PR c++/67625 (some constexpr expressions rejected as enumerator value) · b2ca2504
      2017-10-10  Jakub Jelinek  <jakub@redhat.com>
      
      	PR c++/67625
      	* g++.dg/cpp0x/pr67625.C: New test.
      
      From-SVN: r253617
      Jakub Jelinek committed
    • re PR middle-end/70887 (internal compiler error in trunc_int_for_mode, at explow.c:78) · c9a0dec5
      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… · aaf58ab1
      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
    • re PR c++/77786 (ICE in tsubst_copy, at cp/pt.c:13040) · 10885d13
      	PR c++/77786
      	* g++.dg/cpp1y/pr77786.C: New test.
      
      From-SVN: r253614
      Jakub Jelinek committed
    • re PR c++/71875 (template specialization compile error) · da31baba
      	PR c++/71875
      	* g++.dg/cpp1y/pr71875.C: New test.
      
      From-SVN: r253613
      Jakub Jelinek committed
    • re PR c++/77578 (ICE in cp_parser_omp_for_loop (cp/parser.c:29404)) · 24f8d391
      	PR c++/77578
      	* g++.dg/gomp/pr77578.C: New test.
      
      From-SVN: r253612
      Jakub Jelinek committed
    • re PR middle-end/70100 (ICE: in execute, at cfgexpand.c:6066) · 4407c309
      	PR middle-end/70100
      	* g++.dg/opt/pr70100.C: New test.
      
      From-SVN: r253611
      Jakub Jelinek committed
    • re PR c++/68252 (left operand of shift expression, while we shift > 0 integer) · 7094f0d3
      2017-10-10  Jakub Jelinek  <jakub@redhat.com>
      
      	PR c++/68252
      	* g++.dg/other/pr68252.C: New test.
      
      From-SVN: r253610
      Jakub Jelinek committed
    • re PR target/79565 (ICE in copy_to_mode_reg, at explow.c:612) · 71a84d92
      	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
    • [C++ PATCH] Hash mangling alias · eead34af
      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
    • fold-vec-mult-int128-p8.c: Update options · 24d8f6b6
      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
    • [PATCH] preprocessor stringizing raw strings · 35b82d26
      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
    • config.gcc (armv7*-*-freebsd*): New target. · eb484969
      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
    • More delayed lambda capture fixes. · 84dd815f
      	* 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
    • Various small C++ fixes. · e1bea341
      	* 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
    • Check non-dependent conversion in return from template fn. · 4d612bfd
      	* 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, [...]): Move to right spot in the file. · 3652a4d2
      
      	* 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
    • fold-vec-cmp-char.c: New. · f1e2a004
      [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
    • Require wi::to_wide for trees · 8e6cdc90
      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… · 3934b625
      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 |-------*… · 53befce7
      |-------* 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
    • fold-vec-splats-char.c: New. · 0ec8f0c6
      [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
      Will Schmidt committed
    • re PR c/82437 (false-positive -Wtautological-compare warning with -std=gnu89) · 802b38c9
      	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
      Jakub Jelinek committed
    • [C++ PATCH] set_global_binding tweak · a6a5091a
      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
      Nathan Sidwell committed
    • tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes when copying… · 2fe1a1b8
      tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes when copying loop nest with only one inner loop.
      
      	* tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
      	when copying loop nest with only one inner loop.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/ldist-34.c: New test.
      
      From-SVN: r253586
      Bin Cheng committed
    • tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting blocks if SCEV is active. · fb1fe1f3
      2017-10-10  Richard Biener  <rguenther@suse.de>
      
      	* tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
      	blocks if SCEV is active.
      	* tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
      	dead code.
      	(analyze_scalar_evolution): Handle cached evolutions the obvious way.
      	(scev_initialize): Assert we are not yet initialized.
      
      From-SVN: r253585
      Richard Biener committed
    • class_wide4.adb: Fix a typo. · 0c6ddd1d
      gcc/testsuite/
      
      	* gnat.dg/class_wide4.adb: Fix a typo.
      
      Also add ChangeLog entries missing from previous commits.
      
      From-SVN: r253584
      Ed Schonberg committed
    • update_version_svn: Ignore the GCC 5 branch. · c64c7386
      	* update_version_svn: Ignore the GCC 5 branch.
      	* crontab: Remove entry for the GCC 5 branch.
      
      From-SVN: r253583
      Jakub Jelinek committed
    • Update comment referring to status of LWG issue 111 · 0e7300bb
      	* include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
      	Update comment about NAD issue.
      
      From-SVN: r253582
      Jonathan Wakely committed
    • PR libstdc++/82417 do not include C99 <complex.h> in strict modes · 5d2b8075
      As an extension the C++ version of <complex.h> includes the C version,
      but that defines macros with non-reserved names that should not be
      defined in ISO C++. Only include the C header for non-strict modes, or
      for pre-C++11 (because C++98 doesn't mention <complex.h> at all).
      
      	PR libstdc++/59087
      	PR libstdc++/82417
      	* include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do
      	not include C library's <complex.h>.
      	* testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__.
      	* testsuite/26_numerics/headers/complex.h/std_c++11.h: New test.
      	* testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test.
      	* testsuite/26_numerics/headers/complex.h/std_c++98.h: New test.
      
      From-SVN: r253581
      Jonathan Wakely committed
    • tree-loop-distribution.c (generate_loops_for_partition): Remove inner loop's… · efe040bf
      tree-loop-distribution.c (generate_loops_for_partition): Remove inner loop's exit stmt by making it always exit the loop...
      
      	* tree-loop-distribution.c (generate_loops_for_partition): Remove
      	inner loop's exit stmt by making it always exit the loop, otherwise
      	we would generate an infinite empty loop.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/ldist-27.c: New test.
      
      From-SVN: r253580
      Bin Cheng committed
    • tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip renaming… · 166b8799
      tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip renaming variables in new preheader if it's deleted.
      
      	* tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
      	renaming variables in new preheader if it's deleted.
      
      From-SVN: r253579
      Bin Cheng committed
    • tree-loop-distribution.c (struct partition): Remove unused field loops of the structure. · 9239436c
      	* tree-loop-distribution.c (struct partition): Remove unused field
      	loops of the structure.
      	(partition_alloc, partition_free): Ditto.
      	(build_rdg_partition_for_vertex): Ditto.
      
      From-SVN: r253578
      Bin Cheng committed
    • targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix return… · 599bffa2
      targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix return type to match prototype and documentation.
      
      	* targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
      	return type to match prototype and documentation.
      
      From-SVN: r253575
      Jeff Law committed