+2019-12-04 Jakub Jelinek <jakub@redhat.com>
+
+ 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 <linkw@gcc.gnu.org>
+
+ 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 <hubicka@ucw.cz>
+
+ * ipa-fnsummary.c: Include tree-into-ssa.h.
+ (compute_fn_summary): Call update_ssa.
+
+2019-12-03 Jan Hubicka <hubicka@ucw.cz>
+
+ * 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 <hubicka@ucw.cz>
+
+ * 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 <richard.sandiford@arm.com>
+
+ * 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 <richard.sandiford@arm.com>
+
+ * 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 <ams@codesourcery.com>
+
+ * config/gcn/gcn-valu.md: Change "vcondu" patterns to use VEC_1REG_MODE
+ for the data mode.
+
+2019-12-03 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92758
+ * tree-ssa-forwprop.c (simplify_vector_constructor): Restore
+ operation on uniform vectors.
+
+2019-12-03 Richard Biener <rguenther@suse.de>
+
+ 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 <doko@ubuntu.com>
+
+ * 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 <rguenther@suse.de>
+
+ 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 <jakub@redhat.com>
+
+ 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 <ubizjak@gmail.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR target/92744
+ * config/i386/i386.md (peephole2 for *swap<mode>): Use
+ general_reg_operand predicates instead of register_operand.
+
+2019-12-03 Richard Biener <rguenther@suse.de>
+
+ 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 <wschmidt@linux.ibm.com>
+
+ * 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 <richard.sandiford@arm.com>
+
+ PR middle-end/92741
+ * fold-const.c (fold_convertible_p): Check vector types more
+ thoroughly.
+
+2019-12-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * 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 <richard.sandiford@arm.com>
+
+ * 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 <mliska@suse.cz>
+
+ * 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 <rguenther@suse.de>
+
+ 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 <jakub@redhat.com>
+
+ 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 <fxue@os.amperecomputing.com>
+
+ 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<valtype>::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 <sandra@codesourcery.com>
+
+ 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 <hubicka@ucw.cz>
+
+ * 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 <hubicka@ucw.cz>
+
+ * ipa-inline.c (compute_max_insns): Return int64_t.
+ (inline_small_functions): Simplify.
+
+2019-11-30 Jan Hubicka <hubicka@ucw.cz>
+
+ * tree-cfg.c (execute_fixup_cfg): Update also max_bb_count when
+ scaling happen.
+
+2019-11-30 Jan Hubicka <hubicka@ucw.cz>
+
+ * 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 <richard.sandiford@arm.com>
+
+ * 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 <hubicka@ucw.cz>
+
+ * 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 <macro@wdc.com>
+
+ * 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 <macro@wdc.com>
+
+ * 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 <vmakarov@redhat.com>
+
+ PR rtl-optimization/92283
+ * lra.c (lra): Update reg notes after inheritance sub-pass and
+ before constraint sub-pass.
+
+2019-11-29 Richard Biener <rguenther@suse.de>
+
+ 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 <frederik@codesourcery.com>
+
+ * 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 <richard.sandiford@arm.com>
+
+ 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 <richard.sandiford@arm.com>
+
+ 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 <richard.sandiford@arm.com>
+
+ * 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 <richard.sandiford@arm.com>
+
+ * 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 <richard.sandiford@arm.com>
+
+ * tree-vect-stmts.c (vectorizable_operation): Punt early
+ on codes that are handled elsewhere.
+
+2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
+
+ * 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 <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Bail
+ out early for too large objects.
+
+2019-11-29 Martin Jambor <mjambor@suse.cz>
+
+ 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 <richard.sandiford@arm.com>
+
+ PR tree-optimization/92710
+ * tree-vect-stmts.c (vectorizable_simd_clone_call): Reject
+ vector mask arguments.
+
+2019-11-29 Jan Hubicka <hubicka@ucw.cz>
+
+ * 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 <rguenther@suse.de>
+
+ 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 <mliska@suse.cz>
+
+ PR lto/91574
+ * ipa-devirt.c (types_same_for_odr): Check for existence
+ of TYPE_NAMEs first.
+
+2019-11-29 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92704
+ * tree-if-conv.c (combine_blocks): Deal with virtual PHIs
+ in loops performing only loads.
+
+2019-11-29 Julian Brown <julian@codesourcery.com>
+
+ * 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 <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.md (*movsi_internal1): Fix formatting. Improve
+ formatting.
+ (*movdi_internal64): Ditto.
+
+2019-11-28 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/92602
+ * config/rs6000/rs6000.md (bswap<mode>2_load for HSI): Change the
+ indexed_or_indirect_operand to be memory_operand.
+ (bswap<mode>2_store for HSI): Ditto.
+ (bswapdi2_load): Ditto.
+ (bswapdi2_store): Ditto.
+
+2019-11-28 Martin Liska <mliska@suse.cz>
+
+ PR debug/46558
+ * dbgcnt.c (dbg_cnt_list_all_counters): Mark table
+ headers for translation.
+
+2019-11-28 Martin Liska <mliska@suse.cz>
+
+ PR lto/92609
+ * ipa-devirt.c (warn_types_mismatch): Use TYPE_MAIN_VARIANT
+ consistently.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-inline.c (want_early_inline_function_p): Remove leftover optimize
+ checks.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * profile-count.c (profile_count::combine_with_ipa_count): Return
+ uninitialized count if called on ininitialized count.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-inline-transform.c (inline_transform): Scale profile before
+ redirecting.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * 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 <hubicka@ucw.cz>
+
+ * 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 <mjambor@suse.cz>
+
+ 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 <hubicka@ucw.cz>
+
+ * 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 <hubicka@ucw.cz>
+
+ * ipa-utils.c (ipa_merge_profiles): Be sure that all type transtions
+ of counters are done same way.
+
+2019-11-28 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-cp.c (update_profiling_info): Fix scaling.
+
+2019-11-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/92645
+ * tree-inline.c (remap_gimple_stmt): When the return value
+ is not wanted, elide GIMPLE_RETURN.
+