X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gcc%2FChangeLog;h=7b518af4612141b2185630c5cea63e40455e092e;hb=526b4c716a340ee9464965e63eee2b9954fe21f1;hp=d4a66fd0e58e5a1d86a6157dc9ed5c9dc4d79f5d;hpb=78307657cf9675bc4aa2e77561c823834714b4c8;p=gcc.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d4a66fd0e58..7b518af4612 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,517 @@ +2019-12-04 Jakub Jelinek + + PR tree-optimization/92734 + * match.pd ((A +- B) - A -> +- B, (A +- B) -+ B -> A, + A - (A +- B) -> -+ B, A +- (B -+ A) -> +- B): Handle nop_convert. + +2019-12-04 Kewen Lin + + PR target/92760 + * gcc/config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Use + VECTOR_MEM_NONE_P instead of VECTOR_UNIT_NONE_P. + +2019-12-03 Jan Hubicka + + * ipa-fnsummary.c: Include tree-into-ssa.h. + (compute_fn_summary): Call update_ssa. + +2019-12-03 Jan Hubicka + + * cgraph.c (cgraph_node::verify_node): Check that calls_comdat_local + is set only for symbol in comdat group. + * symtab.c (symtab_node::dissolve_same_comdat_group_1): Clear it. + +2019-12-03 Jan Hubicka + + * cgraph.c: Include tree-into-ssa.h + (cgraph_node::get_body): Call update_ssa. + * cgraphunit.c (cgraph_node::expand): Likewise. + * lto-streamer-in.c (input_function): Do not call update_ssa. + +2019-12-03 Richard Sandiford + + * gimplify.c (gimplify_compound_lval): Don't gimplify and install + an array element size if array_element_size is already an invariant. + Similarly don't gimplify and install a field offset if + component_ref_field_offset is already an invariant. + +2019-12-03 Richard Sandiford + + * cfgexpand.c (discover_nonconstant_array_refs_r): If an access + with POLY_INT_CST size is made to a fixed-size object, force the + object to live in memory. + +2019-12-03 Andrew Stubbs + + * config/gcn/gcn-valu.md: Change "vcondu" patterns to use VEC_1REG_MODE + for the data mode. + +2019-12-03 Richard Biener + + PR tree-optimization/92758 + * tree-ssa-forwprop.c (simplify_vector_constructor): Restore + operation on uniform vectors. + +2019-12-03 Richard Biener + + PR tree-optimization/92645 + * gimple-fold.c (gimple_fold_builtin_memory_op): Fold memcpy + from or to a properly aligned register variable. + +2019-12-03 Matthias Klose + + * Makefile.in (SOURCES): Add doc/lto-dump.1. + (install-man): Add $(LTO_DUMP_INSTALL_NAME)$(man1ext). + ($(LTO_DUMP_INSTALL_NAME)$(man1ext): New. + +2019-12-03 Richard Biener + + PR tree-optimization/92751 + * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fail + when a clobber ends up in the partial-def vector. + (vn_reference_lookup_3): Let clobbers be handled by the + assignment from CTOR handling. + +2019-12-03 Jakub Jelinek + + PR tree-optimization/92734 + * match.pd ((CST1 - A) +- CST2 -> CST3 - A, + CST1 - (CST2 - A) -> CST3 + A): Handle nop casts around + inner subtraction. + +2019-12-03 Uroš Bizjak + Jakub Jelinek + + PR target/92744 + * config/i386/i386.md (peephole2 for *swap): Use + general_reg_operand predicates instead of register_operand. + +2019-12-03 Richard Biener + + PR tree-optimization/92645 + * tree-ssa.c (execute_update_addresses_taken): Avoid representing + a full def of a vector via a BIT_INSERT_EXPR. + +2019-12-02 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Make + static. + * config/rs6000/rs6000-internal.h (rs6000_invalid_builtin): Remove + decl. + +2019-12-02 Richard Sandiford + + PR middle-end/92741 + * fold-const.c (fold_convertible_p): Check vector types more + thoroughly. + +2019-12-02 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_report_sve_required): New function. + (aarch64_expand_mov_immediate): Use it when attempting to measure + the length of an SVE vector. + (aarch64_mov_operand_p): Only allow SVE CNT immediates when + SVE is enabled. + +2019-12-02 Richard Sandiford + + * config/aarch64/aarch64-sve-builtins.h + (gimple_folder::force_vector): Declare. + * config/aarch64/aarch64-sve-builtins.cc + (gimple_folder::force_vector): New function. + * config/aarch64/aarch64-sve-builtins-base.cc + (svcmp_impl::fold): Likewise. + (svdup_impl::fold): Handle svdup_z too. + +2019-12-02 Martin Liska + + * ipa-devirt.c (warn_types_mismatch): Use get_odr_name_for_type + function. + (debug_tree_odr_name): New. + * ipa-utils.h (get_odr_name_for_type): New. + +2019-12-02 Richard Biener + + PR tree-optimization/92742 + * tree-vect-loop.c (vect_fixup_reduc_chain): Do not + touch the def-type but verify it is consistent with the + original stmts. + +2019-12-02 Jakub Jelinek + + PR tree-optimization/92712 + * match.pd ((A * B) +- A -> (B +- 1) * A, + A +- (A * B) -> (1 +- B) * A): Allow optimizing signed integers + even when we don't know anything about range of A, but do know + something about range of B and the simplification won't introduce + new UB. + +2019-12-02 Feng Xue + + PR ipa/92133 + * doc/invoke.texi (ipa-cp-max-recursive-depth): Document new option. + (ipa-cp-min-recursive-probability): Likewise. + * params.opt (ipa-cp-max-recursive-depth): New. + (ipa-cp-min-recursive-probability): Likewise. + * ipa-cp.c (ipcp_lattice::add_value): Add two new parameters + val_p and unlimited. + (self_recursively_generated_p): New function. + (get_val_across_arith_op): Likewise. + (propagate_vals_across_arith_jfunc): Add constant propagation for + self-recursive function. + (incorporate_penalties): Do not penalize pure self-recursive function. + (good_cloning_opportunity_p): Dump node_is_self_scc flag. + (propagate_constants_topo): Set node_is_self_scc flag for cgraph node. + (get_info_about_necessary_edges): Relax hotness check for edge to + self-recursive function. + * ipa-prop.h (ipa_node_params): Add new field node_is_self_scc. + +2019-12-01 Sandra Loosemore + + PR target/92499 + + * config/nios2/nios2.c (nios2_in_small_data_p): Do not consider + objects of flexible types to be small if they have internal linkage + or are declared extern. + * config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with... + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this. Use targetm.in_small_data_p + instead of the size of the object initializer. + * tree.c (flexible_array_type_p): Move from C front end, and + generalize to handle fields in non-C structures. + * tree.h (flexible_array_type_p): Declare. + +2019-11-30 Jan Hubicka + + * profile-count.h (profile_count::operator<): Use IPA value for + comparsion. + (profile_count::operator>): Likewise. + (profile_count::operator<=): Likewise. + (profile_count::operator>=): Likewise. + * predict.c (maybe_hot_count_p): Do not convert to gcov_type. + +2019-11-30 Jan Hubicka + + * ipa-inline.c (compute_max_insns): Return int64_t. + (inline_small_functions): Simplify. + +2019-11-30 Jan Hubicka + + * tree-cfg.c (execute_fixup_cfg): Update also max_bb_count when + scaling happen. + +2019-11-30 Jan Hubicka + + * cgraph.h (symtab_node): Add symver flag. + * cgraphunit.c (process_symver_attribute): New. + (process_common_attributes): Use process_symver_attribute. + * lto-cgraph.c (lto_output_node): Stream symver. + (lto_output_varpool_node): Stream symver. + (input_overwrite_node): Stream symver. + (input_varpool_node): Stream symver. + * output.h (do_assemble_symver): Decalre. + * symtab.c (symtab_node::dump_base): Dump symver. + (symtab_node::verify_base): Verify symver. + (symtab_node::resolve_alias): Handle symver. + * varasm.c (do_assemble_symver): New function. + * varpool.c (varpool_node::assemble_aliases): Use it. + * doc/extend.texi: (symver attribute): Document. + * config/elfos.h (ASM_OUTPUT_SYMVER_DIRECTIVE): New. + +2019-11-30 Richard Sandiford + + * target.h (type_context_kind): New enum. + (verify_type_context): Declare. + * target.def (verify_type_context): New target hook. + * doc/tm.texi.in (TARGET_VERIFY_TYPE_CONTEXT): Likewise. + * doc/tm.texi: Regenerate. + * tree.c (verify_type_context): New function. + * config/aarch64/aarch64-protos.h (aarch64_sve::verify_type_context): + Declare. + * config/aarch64/aarch64-sve-builtins.cc (verify_type_context): + New function. + * config/aarch64/aarch64.c (aarch64_verify_type_context): Likewise. + (TARGET_VERIFY_TYPE_CONTEXT): Define. + +2019-11-30 Jan Hubicka + + * cgraph.c (cgraph_node::dump): Dump unit_id and merged_extern_inline. + * cgraph.h (cgraph_node): Add unit_id and + merged_extern_inline. + (symbol_table): Add max_unit. + (symbol_table::symbol_table): Initialize it. + * cgraphclones.c (duplicate_thunk_for_node): Copy unit_id. + merged_comdat, merged_extern_inline. + (cgraph_node::create_clone): Likewise. + (cgraph_node::create_version_clone): Likewise. + * ipa-fnsummary.c (dump_ipa_call_summary): Dump info about cross module + calls. + * ipa-fnsummary.h (cross_module_call_p): New inline function. + * ipa-inline-analyssi.c (simple_edge_hints): Use it. + * ipa-inline.c (inline_small_functions): Likewise. + * lto-symtab.c (lto_cgraph_replace_node): Record merged_extern_inline; + copy merged_comdat and merged_extern_inline. + * lto-cgraph.c (lto_output_node): Stream out merged_comdat, + merged_extern_inline and unit_id. + (input_overwrite_node): Stream in these. + (input_cgraph_1): Set unit_base. + * lto-streamer.h (lto_file_decl_data): Add unit_base. + * symtab.c (symtab_node::make_decl_local): Record former_comdat. + +2019-11-30 Maciej W. Rozycki + + * gcc.c (process_command): Only warn about an ineffective `-x' + option if any input files have actually been supplied. + +2019-11-30 Maciej W. Rozycki + + * doc/install.texi (Options specification): Remove the list of + target library subdirectories supporting + `--enable-version-specific-runtime-libs'. Document defaults for + the option. + +2019-11-29 Vladimir Makarov + + PR rtl-optimization/92283 + * lra.c (lra): Update reg notes after inheritance sub-pass and + before constraint sub-pass. + +2019-11-29 Richard Biener + + PR tree-optimization/91003 + * tree-vect-slp.c (vect_mask_constant_operand_p): Pass in the + operand number, avoid handling the non-condition operands of + COND_EXPRs as comparisons. + (vect_get_constant_vectors): Pass down the operand number. + (vect_get_slp_defs): Likewise. + +2019-11-29 Frederik Harwath + + * gimple-match-head.c (maybe_resimplify_conditional_op): Use + generic_expr_could_trap_p to check if the condition of COND_EXPR or + VEC_COND_EXPR can trap. + +2019-11-29 Richard Sandiford + + PR tree-optimization/92677 + * tree-vect-loop.c (vect_dissolve_slp_only_groups): Set the gap + to zero when dissolving a group of strided accesses. + +2019-11-29 Richard Sandiford + + PR tree-optimization/92596 + * tree-vect-stmts.c (vectorizable_call): Punt on hybrid mask/nonmask + operations. + (vectorizable_operation): Likewise, instead of relying on + vect_get_mask_type_for_stmt to do this. + (vect_get_vector_types_for_stmt): Always return a vector type + immediately, rather than deferring the choice for boolean results. + Use a vector mask type instead of a normal vector if + vect_use_mask_type_p. + (vect_get_mask_type_for_stmt): Delete. + * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Remove + mask_producers argument and special boolean_type_node handling. + (vect_determine_vf_for_stmt): Remove mask_producers argument and + update calls to vect_determine_vf_for_stmt_1. Remove doubled call. + (vect_determine_vectorization_factor): Update call accordingly. + * tree-vect-slp.c (vect_build_slp_tree_1): Remove special + boolean_type_node handling. + (vect_slp_analyze_node_operations_1): Likewise. + +2019-11-29 Richard Sandiford + + * tree-vectorizer.h (stmt_vec_info::mask_precision): New field. + (vect_use_mask_type_p): New function. + * tree-vect-patterns.c (vect_init_pattern_stmt): Copy the + mask precision to the pattern statement. + (append_pattern_def_seq): Add a scalar_type_for_mask parameter + and use it to initialize the new stmt's mask precision. + (search_type_for_mask_1): Delete. + (search_type_for_mask): Replace with... + (integer_type_for_mask): ...this new function. Use the information + cached in the stmt_vec_info. + (vect_recog_bool_pattern): Update accordingly. + (build_mask_conversion): Pass the scalar type associated with the + mask type to append_pattern_def_seq. + (vect_recog_mask_conversion_pattern): Likewise. Call + integer_type_for_mask instead of search_type_for_mask. + (vect_convert_mask_for_vectype): Call integer_type_for_mask instead + of search_type_for_mask. + (possible_vector_mask_operation_p): New function. + (vect_determine_mask_precision): Likewise. + (vect_determine_stmt_precisions): Call it. + +2019-11-29 Richard Sandiford + + * tree-vectorizer.h (get_mask_type_for_scalar_type): Replace + the slp_tree parameter with a group size parameter. + (vect_get_mask_type_for_stmt): Likewise. + * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise. + (vect_get_mask_type_for_stmt): Likewise. + * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Update + call accordingly. + +2019-11-29 Richard Sandiford + + * tree-vect-stmts.c (vectorizable_operation): Punt early + on codes that are handled elsewhere. + +2019-11-29 Richard Sandiford + + * doc/sourcebuild.texi (vect_bool_cmp): Document. + * tree-vect-patterns.c (search_type_for_mask_1): If neither + operand to a boolean comparison is a natural vector mask, + handle both operands like normal integers instead. + +2019-11-29 Richard Biener + + * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Bail + out early for too large objects. + +2019-11-29 Martin Jambor + + PR ipa/92476 + * ipa-cp.c (set_single_call_flag): Set node_calling_single_call in + the summary only if the summary exists. + (find_more_scalar_values_for_callers_subset): Check node_dead in + the summary only if the summary exists. + (ipcp_store_bits_results): Ignore nodes without lattices. + (ipcp_store_vr_results): Likewise. + * cgraphclones.c: Include ipa-fnsummary.h and ipa-prop.h and the + header files required by them. + (cgraph_node::expand_all_artificial_thunks): Analyze expanded thunks. + +2019-11-29 Richard Sandiford + + PR tree-optimization/92710 + * tree-vect-stmts.c (vectorizable_simd_clone_call): Reject + vector mask arguments. + +2019-11-29 Jan Hubicka + + * profile-count.c (profile_count::to_cgraph_frequency, + profile_count::to_sreal_scale): Check for compaibility of counts. + * profile-count.h (compatible_p): Make public; add checking for + global0 versus global types. + * cgraph.c (cgraph_node::verify_node): Verify count compatibility. + +2019-11-29 Richard Biener + + PR tree-optimization/92715 + * tree-ssa-forwprop.c (simplify_vector_constructor): Bail + out for uniform vectors and source vectors with less elements + than the destination. + +2019-11-29 Martin Liska + + PR lto/91574 + * ipa-devirt.c (types_same_for_odr): Check for existence + of TYPE_NAMEs first. + +2019-11-29 Richard Biener + + PR tree-optimization/92704 + * tree-if-conv.c (combine_blocks): Deal with virtual PHIs + in loops performing only loads. + +2019-11-29 Julian Brown + + * builtin-types.def (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, + BT_DFLOAT128_PTR) Remove. + * tree-core.h (TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, + TI_DFLOAT128_PTR_TYPE): Remove. + * tree.c (build_common_type_nodes): Remove dfloat32_ptr_type_node, + dfloat64_ptr_type_node and dfloat128_ptr_type_node initialisation. + * tree.h (dfloat32_ptr_type_node, dfloat64_ptr_type_node, + dfloat128_ptr_type_node): Remove macros. + +2019-11-28 Segher Boessenkool + + * config/rs6000/rs6000.md (*movsi_internal1): Fix formatting. Improve + formatting. + (*movdi_internal64): Ditto. + +2019-11-28 Segher Boessenkool + + PR target/92602 + * config/rs6000/rs6000.md (bswap2_load for HSI): Change the + indexed_or_indirect_operand to be memory_operand. + (bswap2_store for HSI): Ditto. + (bswapdi2_load): Ditto. + (bswapdi2_store): Ditto. + +2019-11-28 Martin Liska + + PR debug/46558 + * dbgcnt.c (dbg_cnt_list_all_counters): Mark table + headers for translation. + +2019-11-28 Martin Liska + + PR lto/92609 + * ipa-devirt.c (warn_types_mismatch): Use TYPE_MAIN_VARIANT + consistently. + +2019-11-28 Jan Hubicka + + * ipa-inline.c (want_early_inline_function_p): Remove leftover optimize + checks. + +2019-11-28 Jan Hubicka + + * profile-count.c (profile_count::combine_with_ipa_count): Return + uninitialized count if called on ininitialized count. + +2019-11-28 Jan Hubicka + + * ipa-inline-transform.c (inline_transform): Scale profile before + redirecting. + +2019-11-28 Jan Hubicka + + * profile-count.h (profile_count::max): Work on profiles of different + type. + (profile_count::apply_scale): Be sure that ret is not local or global0 + type if num is global. + +2019-11-28 Jan Hubicka + + * profile-count.h (profile_count::max): Work on profiles of different + type. + (profile_count::apply_scale): Be sure that ret is not local or global0 + type if num is global. + +2019-11-28 Martin Jambor + + PR ipa/92697 + * cgraph.c (cgraph_node_cannot_be_local_p_1): Return true for + ifunc_resolvers. + * symtab.c (symtab_node::dump_base): Dump ifunc_resolver flag. + Removed trailig whitespace. + +2019-11-28 Jan Hubicka + + * profile-count.h (profile_count::combine_with_ipa_count_within): + Declare. + * profile-count.c (profile_count::combine_with_ipa_count_within): + New. + * cgraphclones.c (cgraph_edge::clone, cgraph_node::create_clone): Use + it. + +2019-11-28 Jan Hubicka + + * ipa-utils.c (ipa_merge_profiles): Be sure that all type transtions + of counters are done same way. + +2019-11-28 Jan Hubicka + + * ipa-cp.c (update_profiling_info): Fix scaling. + +2019-11-28 Richard Biener + + PR tree-optimization/92645 + * tree-inline.c (remap_gimple_stmt): When the return value + is not wanted, elide GIMPLE_RETURN. + 2019-11-28 Richard Biener PR tree-optimization/92645 @@ -4177,7 +4691,7 @@ (lto_free_file_name_hash): New function. * lto-streamer.h (lto_free_file_name_hash): New. -2019-11-07 Feng Xue +2019-11-07 Feng Xue PR tree-optimization/89134 * doc/invoke.texi (min-loop-cond-split-prob): Document new --params.