2710 lines
92 KiB
Plaintext
2710 lines
92 KiB
Plaintext
2021-02-02 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimple-loop-interchange.cc (prepare_data_references):
|
||
Release vectors.
|
||
* gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
|
||
* tree-ssa-loop-im.c (hoist_memory_references): Likewise.
|
||
* tree-vect-stmts.c (vectorizable_condition): Do not
|
||
allocate vectors.
|
||
(vectorizable_comparison): Likewise.
|
||
|
||
2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
|
||
* config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
|
||
* config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
|
||
(vrsqrteq_u32): Likewise.
|
||
|
||
2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
|
||
* config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
|
||
(aarch64_sqxtun2<mode>_be): Likewise.
|
||
(aarch64_sqxtun2<mode>): Likewise.
|
||
* config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
|
||
(vqmovun_high_s32): Likewise.
|
||
(vqmovun_high_s64): Likewise.
|
||
* config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.
|
||
|
||
2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
|
||
AUTO_FP flags.
|
||
(bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.
|
||
|
||
2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
|
||
fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
|
||
fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
|
||
ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
|
||
fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
|
||
fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
|
||
fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
|
||
fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.
|
||
|
||
2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
|
||
* config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
|
||
ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.
|
||
|
||
2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
|
||
uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.
|
||
|
||
2021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
|
||
vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
|
||
vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
|
||
ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
|
||
udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
|
||
ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
|
||
ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
|
||
ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
|
||
NONE builtin flags.
|
||
|
||
2021-02-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/98848
|
||
* tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
|
||
STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.
|
||
|
||
2021-02-02 Kito Cheng <kito.cheng@sifive.com>
|
||
|
||
PR target/98743
|
||
* expr.c: Check mode before calling store_expr.
|
||
|
||
2021-02-02 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
|
||
(VORNQ): Remove.
|
||
* config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
|
||
instruction using expression ior.
|
||
(mve_vornq_u<mode>): New expander.
|
||
(mve_vornq_f<mode>): Use ior code instead of unspec.
|
||
* config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.
|
||
|
||
2021-02-02 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* tree-nested.c (convert_nonlocal_reference_op): Move
|
||
current_function_decl restore after re-gimplification.
|
||
(convert_local_reference_op): Likewise.
|
||
|
||
2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
|
||
Define builtins.
|
||
* config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
|
||
Define.
|
||
(aarch64_rshrn<mode>_insn_be): Likewise.
|
||
(aarch64_rshrn<mode>): Likewise.
|
||
(aarch64_rshrn2<mode>_insn_le): Likewise.
|
||
(aarch64_rshrn2<mode>_insn_be): Likewise.
|
||
(aarch64_rshrn2<mode>): Likewise.
|
||
* config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
|
||
* config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
|
||
using builtin.
|
||
(vrshrn_high_n_s32): Likewise.
|
||
(vrshrn_high_n_s64): Likewise.
|
||
(vrshrn_high_n_u16): Likewise.
|
||
(vrshrn_high_n_u32): Likewise.
|
||
(vrshrn_high_n_u64): Likewise.
|
||
(vrshrn_n_s16): Likewise.
|
||
(vrshrn_n_s32): Likewise.
|
||
(vrshrn_n_s64): Likewise.
|
||
(vrshrn_n_u16): Likewise.
|
||
(vrshrn_n_u32): Likewise.
|
||
(vrshrn_n_u64): Likewise.
|
||
|
||
2021-02-01 Sergei Trofimovich <siarheit@google.com>
|
||
|
||
PR tree-optimization/98499
|
||
* ipa-modref.c (analyze_ssa_name_flags): treat RVO
|
||
conservatively and assume all possible side-effects.
|
||
|
||
2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
|
||
vec_unpacku_hi_): Define builtins.
|
||
* config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
|
||
builtin.
|
||
(vmovl_high_s16): Likewise.
|
||
(vmovl_high_s32): Likewise.
|
||
(vmovl_high_u8): Likewise.
|
||
(vmovl_high_u16): Likewise.
|
||
(vmovl_high_u32): Likewise.
|
||
|
||
2021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
|
||
Define builtins.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
|
||
pattern.
|
||
* config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
|
||
UNSPEC_UABDL.
|
||
* config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
|
||
builtin.
|
||
(vabdl_s16): Likewise.
|
||
(vabdl_s32): Likewise.
|
||
(vabdl_u8): Likewise.
|
||
(vabdl_u16): Likewise.
|
||
(vabdl_u32): Likewise.
|
||
* config/aarch64/iterators.md (ABDL): New int iterator.
|
||
(sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.
|
||
|
||
2021-02-01 Martin Sebor <msebor@redhat.com>
|
||
|
||
* tree.h (BLOCK_VARS): Add comment.
|
||
(BLOCK_SUBBLOCKS): Same.
|
||
(BLOCK_SUPERCONTEXT): Same.
|
||
(BLOCK_ABSTRACT_ORIGIN): Same.
|
||
(inlined_function_outer_scope_p): Same.
|
||
|
||
2021-02-01 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR middle-end/97172
|
||
* attribs.c (attr_access::free_lang_data): Define new function.
|
||
* attribs.h (attr_access::free_lang_data): Declare new function.
|
||
|
||
2021-02-01 Richard Biener <rguenther@suse.de>
|
||
|
||
* vec.h (auto_vec::auto_vec): Add memory stat parameters
|
||
and pass them on.
|
||
* bitmap.h (auto_bitmap::auto_bitmap): Likewise.
|
||
|
||
2021-02-01 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
|
||
aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.
|
||
|
||
2021-02-01 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/98863
|
||
* config/i386/i386-features.c (convert_scalars_to_vector):
|
||
Set DF_RD_PRUNE_DEAD_DEFS.
|
||
|
||
2021-01-31 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* system.h (SIZE_MAX): Define if not already defined.
|
||
|
||
2021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com>
|
||
|
||
* config/rs6000/genfusion.pl (gen_2logical): New function to
|
||
generate patterns for logical-logical fusion.
|
||
* config/rs6000/fusion.md: Regenerated patterns.
|
||
* config/rs6000/rs6000-cpus.def: Add
|
||
OPTION_MASK_P10_FUSION_2LOGICAL.
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal):
|
||
Enable logical-logical fusion for p10.
|
||
* config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.
|
||
|
||
2021-01-30 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/rs6000.opt: Add periods to new AIX options.
|
||
|
||
2021-01-30 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/rs6000.opt (mabi=vec-extabi): New.
|
||
(mabi=vec-default): New.
|
||
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
|
||
__EXTABI__ for AIX Vector extended ABI.
|
||
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
|
||
extabi info.
|
||
(conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
|
||
are non-volatile.
|
||
* doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
|
||
|
||
2021-01-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386-features.c (remove_partial_avx_dependency): Clear
|
||
DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.
|
||
|
||
2021-01-29 Vladimir N. Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/97701
|
||
* lra-constraints.c (in_class_p): Don't narrow class only for REG
|
||
or MEM.
|
||
|
||
2021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
|
||
clauses for CODE_FOR_vsx_xvcvuxddp_scale and
|
||
CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.
|
||
|
||
2021-01-29 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
PR tree-optimization/98866
|
||
* gimple-range-gori.h (gori_compute:set_range_invariant): New.
|
||
* gimple-range-gori.cc (gori_map::set_range_invariant): New.
|
||
(gori_map::m_maybe_invariant): Rename from all_outgoing.
|
||
(gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
|
||
(gori_map::is_export_p): Ditto.
|
||
(gori_map::calculate_gori): Ditto.
|
||
(gori_compute::set_range_invariant): New.
|
||
* gimple-range.cc (gimple_ranger::range_of_stmt): Set range
|
||
invariant for pointers evaluating to [1, +INF].
|
||
|
||
2021-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/98863
|
||
* config/i386/i386-features.c (remove_partial_avx_dependency):
|
||
Do not perform DF analysis.
|
||
(pass_data_remove_partial_avx_dependency): Remove
|
||
TODO_df_finish.
|
||
|
||
2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
|
||
builtin generator macros.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
|
||
Define.
|
||
* config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
|
||
instead of inline asm.
|
||
(vmull_n_s32): Likewise.
|
||
(vmull_n_u16): Likewise.
|
||
(vmull_n_u32): Likewise.
|
||
|
||
2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
|
||
Define builtins.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
|
||
Rename to...
|
||
(aarch64_<sur>abdl2<mode>): ... This.
|
||
(<sur>sadv16qi): Adjust use of above.
|
||
* config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
|
||
builtin.
|
||
(vabdl_high_s16): Likewise.
|
||
(vabdl_high_s32): Likewise.
|
||
(vabdl_high_u8): Likewise.
|
||
(vabdl_high_u16): Likewise.
|
||
(vabdl_high_u32): Likewise.
|
||
|
||
2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (sabal2): Define
|
||
builtin.
|
||
(uabal2): Likewise.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
|
||
pattern.
|
||
* config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
|
||
UNSPEC_UABAL2.
|
||
* config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
|
||
builtin.
|
||
(vabal_high_s16): Likewise.
|
||
(vabal_high_s32): Likewise.
|
||
(vabal_high_u8): Likewise.
|
||
(vabal_high_u16): Likewise.
|
||
(vabal_high_u32): Likewise.
|
||
* config/aarch64/iterators.md (ABAL2): New mode iterator.
|
||
(sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.
|
||
|
||
2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (sabal): Define
|
||
builtin.
|
||
(uabal): Likewise.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
|
||
Rename to...
|
||
(aarch64_<sur>abal<mode>): ... This
|
||
(<sur>sadv16qi): Adust use of the above.
|
||
* config/aarch64/arm_neon.h (vabal_s8): Reimplement using
|
||
builtin.
|
||
(vabal_s16): Likewise.
|
||
(vabal_s32): Likewise.
|
||
(vabal_u8): Likewise.
|
||
(vabal_u16): Likewise.
|
||
(vabal_u32): Likewise.
|
||
|
||
2021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
|
||
Define builtins.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
|
||
Define.
|
||
* config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
|
||
builtin.
|
||
(vaddlv_s16): Likewise.
|
||
(vaddlv_u8): Likewise.
|
||
(vaddlv_u16): Likewise.
|
||
(vaddlvq_s8): Likewise.
|
||
(vaddlvq_s16): Likewise.
|
||
(vaddlvq_s32): Likewise.
|
||
(vaddlvq_u8): Likewise.
|
||
(vaddlvq_u16): Likewise.
|
||
(vaddlvq_u32): Likewise.
|
||
(vaddlv_s32): Likewise.
|
||
(vaddlv_u32): Likewise.
|
||
* config/aarch64/iterators.md (VDQV_L): New mode iterator.
|
||
(unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
|
||
(Vwstype): New mode attribute.
|
||
(Vwsuf): Likewise.
|
||
(VWIDE_S): Likewise.
|
||
(USADDLV): New int iterator.
|
||
(su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.
|
||
|
||
2021-01-29 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
|
||
builtin generator macros.
|
||
* config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
|
||
Define.
|
||
* config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
|
||
instead of inline asm.
|
||
(vmlsl_lane_s32): Likewise.
|
||
(vmlsl_lane_u16): Likewise.
|
||
(vmlsl_lane_u32): Likewise.
|
||
(vmlsl_laneq_s16): Likewise.
|
||
(vmlsl_laneq_s32): Likewise.
|
||
(vmlsl_laneq_u16): Likewise.
|
||
(vmlsl_laneq_u32): Likewise.
|
||
|
||
2021-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/invoke.texi (--param max-gcse-memory): Document unit
|
||
of size.
|
||
* gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
|
||
* params.opt (--param max-gcse-memory): Adjust default and
|
||
document unit of size.
|
||
|
||
2021-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/98863
|
||
* gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
|
||
HOST_WIDE_INT for the memory estimate.
|
||
|
||
2021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com>
|
||
Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/97627
|
||
* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
|
||
Do not analyze fake edges.
|
||
|
||
2021-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/98144
|
||
* df.h (df_mir_bb_info): Add con_visited member.
|
||
* df-problems.c (df_mir_alloc): Initialize con_visited,
|
||
do not fully populate IN and OUT.
|
||
(df_mir_reset): Likewise.
|
||
(df_mir_confluence_0): Set con_visited.
|
||
(df_mir_confluence_n): Properly handle implicitely
|
||
fully populated IN and OUT as designated by con_visited
|
||
and update con_visited accordingly.
|
||
|
||
2021-01-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/98849
|
||
* config/arm/vec-common.md (mve_vshlq_<supf><mode>,
|
||
vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
|
||
&& !TARGET_REALLY_IWMMXT to conditions.
|
||
|
||
2021-01-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/98331
|
||
* cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
|
||
a BARRIER.
|
||
|
||
2021-01-28 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/94775
|
||
* stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
|
||
the main variant, maybe reset it in its variants too.
|
||
* tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
|
||
(check_aligned_type): Check if TYPE_USER_ALIGN match.
|
||
|
||
2021-01-28 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
PR target/98730
|
||
* config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
|
||
of constant zero for comparisons.
|
||
|
||
2021-01-28 Michael Meissner <meissner@linux.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
|
||
support for mapping built-in function names for long double
|
||
built-in functions if long double is IEEE 128-bit.
|
||
|
||
2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
|
||
builtin generator macros.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
|
||
Define.
|
||
* config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
|
||
instead of inline asm.
|
||
(vmlsl_n_s32): Likewise.
|
||
(vmlsl_n_u16): Likewise.
|
||
(vmlsl_n_u32): Likewise.
|
||
|
||
2021-01-28 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
|
||
builtin generator macros.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
|
||
Define.
|
||
* config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
|
||
instead of inline asm.
|
||
(vmlal_n_s32): Likewise.
|
||
(vmlal_n_u16): Likewise.
|
||
(vmlal_n_u32): Likewise.
|
||
|
||
2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (shrn2): Define
|
||
builtin.
|
||
* config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
|
||
Define.
|
||
(aarch64_shrn2<mode>_insn_be): Likewise.
|
||
(aarch64_shrn2<mode>): Likewise.
|
||
* config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
|
||
using builtins.
|
||
(vshrn_high_n_s32): Likewise.
|
||
(vshrn_high_n_s64): Likewise.
|
||
(vshrn_high_n_u16): Likewise.
|
||
(vshrn_high_n_u32): Likewise.
|
||
(vshrn_high_n_u64): Likewise.
|
||
|
||
2021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (shrn): Define
|
||
builtin.
|
||
* config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
|
||
Define.
|
||
(aarch64_shrn<mode>_insn_be): Likewise.
|
||
(aarch64_shrn<mode>): Likewise.
|
||
* config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
|
||
builtins.
|
||
(vshrn_n_s32): Likewise.
|
||
(vshrn_n_s64): Likewise.
|
||
(vshrn_n_u16): Likewise.
|
||
(vshrn_n_u32): Likewise.
|
||
(vshrn_n_u64): Likewise.
|
||
* config/aarch64/iterators.md (vn_mode): New mode attribute.
|
||
|
||
2021-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/80960
|
||
* dse.c (check_mem_read_rtx): Call get_addr on the
|
||
offsetted address.
|
||
|
||
2021-01-28 Xionghu Luo <luoxhu@linux.ibm.com>
|
||
David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
PR target/98799
|
||
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
|
||
Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
|
||
when -m32.
|
||
* config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
|
||
Delete.
|
||
* config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
|
||
wrapper call rs6000_expand_vector_set_var for cleanup. Call
|
||
rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
|
||
directly.
|
||
(rs6000_expand_vector_set_var): Delete.
|
||
(rs6000_expand_vector_set_var_p9): Make static.
|
||
(rs6000_expand_vector_set_var_p8): Make static.
|
||
|
||
2021-01-28 Xing GUO <higuoxing@gmail.com>
|
||
|
||
* common/config/riscv/riscv-common.c
|
||
(riscv_subset_list::parsing_subset_version): Fix -march option parsing
|
||
when `p` extension exists.
|
||
|
||
2021-01-27 Vladimir N. Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/97684
|
||
* ira.c (ira): Call ira_set_pseudo_classes before
|
||
update_equiv_regs when it is necessary.
|
||
|
||
2021-01-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/98853
|
||
* config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
|
||
%w0, %w1 and %2 instead of %0, %1 and %2.
|
||
|
||
2021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com>
|
||
|
||
* config/rs6000/genfusion.pl: New script to generate
|
||
define_insn_and_split patterns so combine can arrange fused
|
||
instructions next to each other.
|
||
* config/rs6000/fusion.md: New file, generated fused instruction
|
||
patterns for combine.
|
||
* config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
|
||
(non_update_memory_operand): New predicate.
|
||
* config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
|
||
OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
|
||
POWERPC_MASKS.
|
||
* config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
|
||
prototype.
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal):
|
||
Automatically set OPTION_MASK_P10_FUSION and
|
||
OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
|
||
(rs600_opt_masks): Allow -mpower10-fusion
|
||
in function attributes.
|
||
(address_is_non_pfx_d_or_x): New function.
|
||
* config/rs6000/rs6000.h: Add MASK_P10_FUSION.
|
||
* config/rs6000/rs6000.md: Include fusion.md.
|
||
* config/rs6000/rs6000.opt: Add -mpower10-fusion
|
||
and -mpower10-fusion-ld-cmpi.
|
||
* config/rs6000/t-rs6000: Add dependencies involving fusion.md.
|
||
|
||
2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
|
||
builtin generator macros.
|
||
* config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
|
||
Rename to...
|
||
(aarch64_<su>mlal<mode>): This.
|
||
* config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
|
||
instead of inline asm.
|
||
(vmlal_s16): Likewise.
|
||
(vmlal_s32): Likewise.
|
||
(vmlal_u8): Likewise.
|
||
(vmlal_u16): Likewise.
|
||
(vmlal_u32): Likewise.
|
||
|
||
2021-01-27 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98854
|
||
* tree-vect-slp.c (vect_build_slp_tree_2): Also build
|
||
PHIs from scalars when the number of CTORs matches the
|
||
number of children.
|
||
|
||
2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
|
||
generator macro.
|
||
* config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
|
||
Rename to...
|
||
(aarch64_mls_n<mode>): This.
|
||
* config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
|
||
instead of asm.
|
||
(vmls_n_s32): Likewise.
|
||
(vmls_n_u16): Likewise.
|
||
(vmls_n_u32): Likewise.
|
||
(vmlsq_n_s16): Likewise.
|
||
(vmlsq_n_s32): Likewise.
|
||
(vmlsq_n_u16): Likewise.
|
||
(vmlsq_n_u32): Likewise.
|
||
|
||
2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add mls builtin
|
||
generator macro.
|
||
* config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
|
||
than asm.
|
||
(vmls_s16): Likewise.
|
||
(vmls_s32): Likewise.
|
||
(vmls_u8): Likewise.
|
||
(vmls_u16): Likewise.
|
||
(vmls_u32): Likewise.
|
||
(vmlsq_s8): Likewise.
|
||
(vmlsq_s16): Likewise.
|
||
(vmlsq_s32): Likewise.
|
||
(vmlsq_u8): Likewise.
|
||
(vmlsq_u16): Likewise.
|
||
(vmlsq_u32): Likewise.
|
||
|
||
2021-01-27 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
|
||
generator macro.
|
||
* config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
|
||
Rename to...
|
||
(aarch64_mla_n<mode>): This.
|
||
* config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
|
||
instead of asm.
|
||
(vmla_n_s32): Likewise.
|
||
(vmla_n_u16): Likewise.
|
||
(vmla_n_u32): Likewise.
|
||
(vmlaq_n_s16): Likewise.
|
||
(vmlaq_n_s32): Likewise.
|
||
(vmlaq_n_u16): Likewise.
|
||
(vmlaq_n_u32): Likewise.
|
||
|
||
2021-01-27 liuhongt <hongtao.liu@intel.com>
|
||
|
||
PR target/98833
|
||
* config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
|
||
(*sse2_eq<mode>3): Ditto.
|
||
|
||
2021-01-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-pass.h (PROP_trees): Rename to ...
|
||
(PROP_gimple): ... this.
|
||
* cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
|
||
* passes.c (execute_function_dump, execute_function_todo,
|
||
execute_one_ipa_transform_pass, execute_one_pass): Likewise.
|
||
* varpool.c (ctor_for_folding): Likewise.
|
||
|
||
2021-01-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/97260
|
||
* varpool.c: Include tree-pass.h.
|
||
(ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
|
||
non-TREE_SIDE_EFFECTS automatic variables.
|
||
|
||
2021-01-26 Paul Fee <paul.f.fee@gmail.com>
|
||
|
||
* doc/cpp.texi (__cplusplus): Document value for -std=c++23
|
||
or -std=gnu++23.
|
||
* doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
|
||
* dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
|
||
(gen_compile_unit_die): Recognise C++23.
|
||
|
||
2021-01-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR bootstrap/98839
|
||
* dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
|
||
in comparison.
|
||
|
||
2021-01-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/98681
|
||
* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
|
||
Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
|
||
and INTVAL (mask). Add && INTVAL (mask) > 0 condition.
|
||
|
||
2021-01-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimple-pretty-print.c (dump_binary_rhs): Handle
|
||
VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.
|
||
|
||
2021-01-26 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/98726
|
||
* tree.h (vector_cst_int_elt): Remove.
|
||
* tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
|
||
make static.
|
||
|
||
2021-01-26 Andrew Stubbs <ams@codesourcery.com>
|
||
|
||
* config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
|
||
for V64DFmode min/max reductions.
|
||
|
||
2021-01-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
|
||
as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
|
||
two halves, one with x and the other with const0_rtx, ordered
|
||
depending on endianity.
|
||
|
||
2021-01-26 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* gimplify.c (gimplify_decl_expr): Skip asan marking calls for
|
||
temporaries not seen in binding block, and not about to be
|
||
added as gimple variables.
|
||
|
||
2021-01-25 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c++/98646
|
||
* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.
|
||
|
||
2021-01-25 Martin Liska <mliska@suse.cz>
|
||
|
||
* value-prof.c (get_nth_most_common_value): Use %s instead
|
||
of %qs string.
|
||
|
||
2021-01-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/98811
|
||
* configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
|
||
readelf -wi is able to read the emitted .debug_info back.
|
||
* configure: Regenerated.
|
||
|
||
2021-01-25 Martin Liska <mliska@suse.cz>
|
||
|
||
PR gcov-profile/98739
|
||
* common.opt: Add missing sign symbol.
|
||
* value-prof.c (get_nth_most_common_value): Restore handling
|
||
of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
|
||
PROFILE_REPRODUCIBILITY_MULTITHREADED.
|
||
|
||
2021-01-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/98807
|
||
* tree.c (vector_element_bits): Always use precision of
|
||
the element type for boolean vectors.
|
||
|
||
2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
|
||
(ENDFILE_SPEC): Evaluate qnolinkcmds.
|
||
|
||
2021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
|
||
nostartfiles handling since this is already done by
|
||
LINK_COMMAND_SPEC. Evaluate qnolinkcmds.
|
||
(ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
|
||
is already done by LINK_COMMAND_SPEC.
|
||
(LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
|
||
this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds
|
||
evaluation.
|
||
|
||
2021-01-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR testsuite/98771
|
||
* fold-const-call.c (host_size_t_cst_p): Renamed to ...
|
||
(size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT
|
||
value rather than host size_t.
|
||
(fold_const_call): Change type of s2 from size_t to
|
||
unsigned HOST_WIDE_INT. Use size_t_cst_p instead of
|
||
host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX)
|
||
instead of s2 as last argument.
|
||
|
||
2021-01-25 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
|
||
VCMLA_OP, VCMUL_OP): New.
|
||
* config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
|
||
* config/arm/neon.md (cmul<conj_op><mode>3): New.
|
||
* config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
|
||
UNSPEC_VCMUL_CONJ): New.
|
||
* config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
|
||
cml<fcmac1><conj_op><mode>4): New.
|
||
|
||
2021-01-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR testsuite/97301
|
||
* config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.
|
||
|
||
2021-01-22 Jonathan Wright <jonathan.wright@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def: Add mla builtin
|
||
generator macro.
|
||
* config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
|
||
than asm.
|
||
(vmla_s16): Likewise.
|
||
(vmla_s32): Likewise.
|
||
(vmla_u8): Likewise.
|
||
(vmla_u16): Likewise.
|
||
(vmla_u32): Likewise.
|
||
(vmlaq_s8): Likewise.
|
||
(vmlaq_s16): Likewise.
|
||
(vmlaq_s32): Likewise.
|
||
(vmlaq_u8): Likewise.
|
||
(vmlaq_u16): Likewise.
|
||
(vmlaq_u32): Likewise.
|
||
|
||
2021-01-22 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
|
||
directive.
|
||
|
||
2021-01-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/98796
|
||
* dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
|
||
filenames to emit, still emit the required 0 index directory and
|
||
filename entries that match DW_AT_comp_dir and DW_AT_name of the
|
||
compilation unit.
|
||
|
||
2021-01-22 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c++/98545
|
||
* doc/invoke.texi: Update C++ ABI Version 15 description.
|
||
|
||
2021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR tree-optimization/98766
|
||
* tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
|
||
comparing against type size with param_avoid_fma_max_bits.
|
||
|
||
2021-01-22 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/98793
|
||
* tree.c (vector_element_bits): Key single-bit bool vector on
|
||
integer mode rather than not vector mode.
|
||
|
||
2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
|
||
|
||
PR target/98093
|
||
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
|
||
Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
|
||
platforms.
|
||
* config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
|
||
to call different path for P8 and P9.
|
||
(rs6000_expand_vector_set_var_p9): New function.
|
||
(rs6000_expand_vector_set_var_p8): New function.
|
||
|
||
2021-01-22 Xionghu Luo <luoxhu@linux.ibm.com>
|
||
|
||
PR target/79251
|
||
PR target/98065
|
||
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
|
||
Ajdust variable index vec_insert from address dereference to
|
||
ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
|
||
* config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
|
||
New declaration.
|
||
* config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.
|
||
|
||
2021-01-22 Martin Liska <mliska@suse.cz>
|
||
|
||
PR gcov-profile/98739
|
||
* profile.c (compute_value_histograms): Drop time profile for
|
||
-fprofile-reproducible=multithreaded.
|
||
|
||
2021-01-22 Nathan Sidwell <nathan@acm.org>
|
||
|
||
* gcc.c (process_command): Don't check OPT_SPECIAL_input_file
|
||
existence here.
|
||
|
||
2021-01-22 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/98773
|
||
* tree-data-ref.c (initalize_matrix_A): Revert previous
|
||
change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.
|
||
|
||
2021-01-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/90248
|
||
* match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
|
||
X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
|
||
simplifications.
|
||
(X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
|
||
X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.
|
||
|
||
2021-01-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/98255
|
||
* tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
|
||
extend index - low_bound from sizetype's precision rather than index
|
||
precision.
|
||
(get_addr_base_and_unit_offset_1): Likewise.
|
||
* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
|
||
* gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
|
||
|
||
2021-01-22 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98786
|
||
* tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
|
||
adding new uses of abnormals. Verify we deal with a conditional
|
||
conversion.
|
||
|
||
2021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
|
||
|
||
PR target/98636
|
||
* optc-save-gen.awk: Add arm_fp16_format to checked_options.
|
||
|
||
2021-01-22 liuhongt <hongtao.liu@intel.com>
|
||
|
||
PR target/96891
|
||
PR target/98348
|
||
* config/i386/sse.md (VI_128_256): New mode iterator.
|
||
(*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
|
||
*avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
|
||
*avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
|
||
define_insn_and_split to lower avx512 vector comparison to avx
|
||
version when dest is vector.
|
||
(*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
|
||
define_insn_and_split for negating the comparison result.
|
||
* config/i386/predicates.md (float_vector_all_ones_operand):
|
||
New predicate.
|
||
* config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
|
||
general NOT operator without UNSPEC_MASKOP.
|
||
|
||
2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/98777
|
||
* lra-int.h (lra_pmode_pseudo): New extern.
|
||
* lra.c (lra_pmode_pseudo): New global.
|
||
(lra): Set it up.
|
||
* lra-eliminations.c (eliminate_regs_in_insn): Use it.
|
||
|
||
2021-01-21 Ilya Leoshkevich <iii@linux.ibm.com>
|
||
|
||
* fwprop.c (fwprop_propagation::classify_result): Allow
|
||
(subreg (mem)) simplifications.
|
||
|
||
2021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
|
||
Split into...
|
||
(aarch64_sqdmlal<mode>): ... This...
|
||
(aarch64_sqdmlsl<mode>): ... And this.
|
||
(aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
|
||
(aarch64_sqdmlal_lane<mode>): ... This...
|
||
(aarch64_sqdmlsl_lane<mode>): ... And this.
|
||
(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
|
||
(aarch64_sqdmlsl_laneq<mode>): ... This...
|
||
(aarch64_sqdmlal_laneq<mode>): ... And this.
|
||
(aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
|
||
(aarch64_sqdmlsl_n<mode>): ... This...
|
||
(aarch64_sqdmlal_n<mode>): ... And this.
|
||
(aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
|
||
(aarch64_sqdmlal2<mode>_internal): ... This...
|
||
(aarch64_sqdmlsl2<mode>_internal): ... And this.
|
||
|
||
2021-01-21 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.
|
||
|
||
2021-01-21 Andrea Corallo <andrea.corallo@arm.com>
|
||
|
||
PR target/96372
|
||
* doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.
|
||
|
||
2021-01-21 liuhongt <hongtao.liu@intel.com>
|
||
|
||
PR rtl-optimization/98694
|
||
* regcprop.c (copy_value): If SRC had been assigned a mode
|
||
narrower than the copy, we can't link DEST into the chain even
|
||
they have same hard_regno_nregs(i.e. HImode/SImode in i386
|
||
backend).
|
||
|
||
2021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
|
||
Convert to define_insn_and_split. Split into simple move when moving
|
||
bottom element.
|
||
|
||
2021-01-20 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
|
||
Adjust comment. Simplify code.
|
||
|
||
2021-01-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/98765
|
||
* dwarf2out.c (reset_indirect_string): Also reset indirect strings
|
||
with DW_FORM_line_strp form.
|
||
(prune_unused_types_update_strings): Don't add into debug_str_hash
|
||
indirect strings with DW_FORM_line_strp form.
|
||
(adjust_name_comp_dir): New function.
|
||
(dwarf2out_finish): Call it on CU DIEs after resetting
|
||
debug_line_str_hash.
|
||
|
||
2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/98722
|
||
* lra-eliminations.c (eliminate_regs_in_insn): Check that target
|
||
has no 3-op add insn to transform insns containing two pluses.
|
||
|
||
2021-01-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* hwint.h (add_hwi): New function.
|
||
(mul_hwi): Likewise.
|
||
* tree-data-ref.c (initialize_matrix_A): Properly translate
|
||
tree constants and avoid HOST_WIDE_INT_MIN.
|
||
(lambda_matrix_row_add): Avoid undefined integer overflow
|
||
and return true on such overflow.
|
||
(lambda_matrix_right_hermite): Handle overflow from
|
||
lambda_matrix_row_add gracefully. Simplify previous fix.
|
||
(analyze_subscript_affine_affine): Likewise.
|
||
|
||
2021-01-20 Eugene Rozenfeld <erozen@microsoft.com>
|
||
|
||
PR tree-optimization/96674
|
||
* match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
|
||
x >= y && y != XXX_MIN --> x > y - 1
|
||
|
||
2021-01-20 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR tree-optimization/98535
|
||
* tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
|
||
If the high and low permutes are the same, remove the high permutes
|
||
from the working set and only continue with the low ones.
|
||
|
||
2021-01-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/98721
|
||
* builtins.c (access_ref::inform_access): Don't assume
|
||
SSA_NAME_IDENTIFIER must be non-NULL. Print messages about
|
||
object whenever allocfn is NULL, rather than only when DECL_P
|
||
is true. Use %qE instead of %qD for that. Formatting fixes.
|
||
|
||
2021-01-20 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98758
|
||
* tree-data-ref.c (int_divides_p): Use lambda_int arguments.
|
||
(lambda_matrix_right_hermite): Avoid undefinedness with
|
||
signed integer abs and multiplication.
|
||
(analyze_subscript_affine_affine): Use lambda_int.
|
||
|
||
2021-01-20 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR debug/98751
|
||
* dwarf2out.c (output_line_info): Rename static variable
|
||
"generation", moving it out of the function to...
|
||
(output_line_info_generation): New.
|
||
(init_sections_and_labels): Likewise, renaming the variable to...
|
||
(init_sections_and_labels_generation): New.
|
||
(dwarf2out_c_finalize): Reset the new variables.
|
||
|
||
2021-01-19 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR middle-end/98664
|
||
* tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
|
||
all functions, even if they're not declared artificial or inline.
|
||
* tree.c (tree_inlined_location): Use macro expansion location
|
||
only if scope traversal fails to expose one.
|
||
|
||
2021-01-19 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR rtl-optimization/92294
|
||
* alias.c (compare_base_symbol_refs): Take an extra parameter
|
||
and add the distance between two symbols to it. Enshrine in
|
||
comments that -1 means "either 0 or 1, but we can't tell
|
||
which at compile time".
|
||
(memrefs_conflict_p): Update call accordingly.
|
||
(rtx_equal_for_memref_p): Likewise. Take the distance between symbols
|
||
into account.
|
||
|
||
2021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
|
||
sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
|
||
uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
|
||
sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
|
||
sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
|
||
sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
|
||
sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
|
||
sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
|
||
sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
|
||
uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
|
||
sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
|
||
sqmovun): Use NONE flags.
|
||
|
||
2021-01-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/98330
|
||
* ipa-modref.c (analyze_stmt): Only record a summary for a
|
||
direct call.
|
||
|
||
2021-01-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/98638
|
||
* tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
|
||
|
||
2021-01-19 Daniel Hellstrom <daniel@gaisler.com>
|
||
|
||
* config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
|
||
built-in define __FIX_LEON3FT_TN0018.
|
||
|
||
2021-01-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/97673
|
||
* tree-inline.c (tree_function_versioning): Set input_location
|
||
to UNKNOWN_LOCATION throughout the function.
|
||
|
||
2021-01-19 Tobias Burnus <tobias@codesourcery.com>
|
||
|
||
PR fortran/98476
|
||
* omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.
|
||
|
||
2021-01-19 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/98690
|
||
* ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check
|
||
whether non-call exceptions allow removal of a statement.
|
||
(isra_analyze_call): Pass the appropriate function to
|
||
ssa_name_only_returned_p.
|
||
|
||
2021-01-19 Geng Qi <gengqi@linux.alibaba.com>
|
||
|
||
* config/riscv/arch-canonicalize (longext_sort): New function for
|
||
sorting 'multi-letter'.
|
||
* config/riscv/multilib-generator: Adjusting the loop of 'alt' in
|
||
'alts'. The 'arch' may not be the first of 'alts'.
|
||
(_expand_combination): Add underline for the 'ext' without '*'.
|
||
This is because, a single-letter extension can always be treated well
|
||
with a '_' prefix, but it cannot be separated out if it is appended
|
||
to a multi-letter.
|
||
|
||
2021-01-18 Vladimir N. Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/97847
|
||
* ira.c (ira): Skip abnormal critical edge splitting.
|
||
|
||
2021-01-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/98727
|
||
* tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
|
||
second .MUL_OVERFLOW operand for signed multiplication with overflow
|
||
checking if the second operand of multiplication is not constant.
|
||
|
||
2021-01-18 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
|
||
defaults to version 4.
|
||
|
||
2021-01-18 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* attribs.h (fndecl_dealloc_argno): New decl.
|
||
* builtins.c (call_dealloc_argno): Split out second half of
|
||
function into...
|
||
(fndecl_dealloc_argno): New.
|
||
* doc/extend.texi (Common Function Attributes): Document the
|
||
interaction between the analyzer and the malloc attribute.
|
||
* doc/invoke.texi (Static Analyzer Options): Likewise.
|
||
|
||
2021-01-17 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
|
||
dwarf_version to 4.
|
||
* config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
|
||
|
||
2021-01-17 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/98222
|
||
* cgraph.c (clone_of_p): Check also former_clone_of as we climb
|
||
the clone tree.
|
||
|
||
2021-01-17 Mark Wielaard <mark@klomp.org>
|
||
|
||
* common.opt (gdwarf-): Init(5).
|
||
* doc/invoke.texi (-gdwarf): Document default to 5.
|
||
|
||
2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
|
||
|
||
* builtin-types.def
|
||
(BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
|
||
to...
|
||
(BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
|
||
...this. Add extra argument.
|
||
* gimplify.c (omp_default_clause): Ensure that event handle is
|
||
firstprivate in a task region.
|
||
(gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
|
||
(gimplify_adjust_omp_clauses): Likewise.
|
||
* omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
|
||
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
|
||
* omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
|
||
if detach clause specified. Add detach argument when generating
|
||
call to GOMP_task.
|
||
* omp-low.c (scan_sharing_clauses): Setup data environment for detach
|
||
clause.
|
||
(finish_taskreg_scan): Move field for variable containing the event
|
||
handle to the front of the struct.
|
||
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix
|
||
ordering.
|
||
* tree-nested.c (convert_nonlocal_omp_clauses): Handle
|
||
OMP_CLAUSE_DETACH clause.
|
||
(convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
|
||
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
|
||
* tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
|
||
Fix ordering.
|
||
(omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix
|
||
ordering.
|
||
(walk_tree_1): Handle OMP_CLAUSE_DETACH.
|
||
|
||
2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten
|
||
multilib directory names. Use MULTILIB_REQUIRED instead of
|
||
MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div
|
||
-mcustom-fpu-cfg=fph2 multilib.
|
||
|
||
2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
|
||
(nios2_init_fpu_configs): Provide register values for new
|
||
-mcustom-fpu-cfg=fph2 option variant.
|
||
* doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
|
||
variant.
|
||
|
||
2021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config/nios2/nios2.c (nios2_custom_check_insns): Remove
|
||
custom instruction warnings.
|
||
|
||
2021-01-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96669
|
||
* match.pd ((CST << x) & 1 -> x == 0): New simplification.
|
||
|
||
2021-01-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96271
|
||
* passes.def: Pass false argument to first two pass_cd_dce
|
||
instances and true to last instance. Add comment that
|
||
last instance rewrites no longer addressed locals.
|
||
* tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
|
||
initialize it.
|
||
(pass_cd_dce::set_pass_param): New method.
|
||
(pass_cd_dce::execute): Return TODO_update_address_taken from
|
||
last cd_dce instance.
|
||
|
||
2021-01-15 Carl Love <cel@us.ibm.com>
|
||
|
||
* config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
|
||
New defines.
|
||
* config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
|
||
* config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
|
||
DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
|
||
DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
|
||
MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
|
||
Add builtin define.
|
||
(MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions.
|
||
* config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
|
||
VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
|
||
New overloaded definitions.
|
||
(builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
|
||
P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
|
||
P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
|
||
P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
|
||
P10V_BUILTIN_MULHU_V4SI]: Add case
|
||
statement for builtins.
|
||
* config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
|
||
* config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
|
||
(UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
|
||
(vsx_mul_v2di): Add if TARGET_POWER10 statement.
|
||
(vsx_udiv_v2di): Add if TARGET_POWER10 statement.
|
||
(dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
|
||
mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
|
||
Add define_insn, mode is VIlong.
|
||
* doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
|
||
Add builtin descriptions.
|
||
|
||
2021-01-15 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* final.c (final_start_function_1): Reset force_source_line.
|
||
|
||
2021-01-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96669
|
||
* match.pd (((1 << A) & 1) != 0 -> A == 0,
|
||
((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
|
||
possibly different power of two constants and to right shift too.
|
||
|
||
2021-01-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96681
|
||
* match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
|
||
((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
|
||
((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
|
||
((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.
|
||
|
||
2021-01-15 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* opts.c (gen_command_line_string): Exclude -dumpbase-ext.
|
||
|
||
2021-01-15 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
|
||
cmul<conj_op><mode>3): New.
|
||
* config/aarch64/iterators.md (UNSPEC_FCMUL,
|
||
UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
|
||
UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
|
||
FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
|
||
sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
|
||
(rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
|
||
(rot_op): Renamed to conj_op.
|
||
* config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
|
||
cmul<conj_op><mode>3): New.
|
||
* config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
|
||
cmul<conj_op><mode>3): New.
|
||
|
||
2021-01-15 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR bootstrap/98696
|
||
* diagnostic.c
|
||
(selftest::test_print_parseable_fixits_bytes_vs_display_columns):
|
||
Escape the tempfile name when constructing the expected output.
|
||
|
||
2021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
|
||
Rename to...
|
||
(aarch64_<su>mlsl_hi<mode>): ... This.
|
||
(aarch64_<su>mlsl_hi<mode>): Define.
|
||
(*aarch64_<su>mlsl<mode): Rename to...
|
||
(aarch64_<su>mlsl<mode): ... This.
|
||
* config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
|
||
smlsl_hi, umlsl_hi): Define builtins.
|
||
* config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
|
||
vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
|
||
vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
|
||
vmlsl_u16, vmlsl_u32): Reimplement with builtins.
|
||
|
||
2021-01-15 Uroš Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386-c.c (ix86_target_macros):
|
||
Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.
|
||
|
||
2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR target/88836
|
||
* config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
|
||
* Makefile.in (RTL_SSA_H): New variable.
|
||
* config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
|
||
* config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
|
||
* config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
|
||
pass_combine.
|
||
* config/aarch64/aarch64-cc-fusion.cc: New file.
|
||
|
||
2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* recog.h (insn_change_watermark::~insn_change_watermark): Avoid
|
||
calling cancel_changes for changes that no longer exist.
|
||
|
||
2021-01-15 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* rtl-ssa/functions.h (function_info::ref_defs): Rename to...
|
||
(function_info::reg_defs): ...this.
|
||
* rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
|
||
(function_info::reg_defs): ...this.
|
||
|
||
2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
PR target/71233
|
||
* config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
|
||
|
||
2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
Revert:
|
||
2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
PR target/71233
|
||
* config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
|
||
|
||
2021-01-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/96376
|
||
* tree-vect-stmts.c (get_load_store_type): Disregard alignment
|
||
for VMAT_INVARIANT.
|
||
|
||
2021-01-15 Martin Liska <mliska@suse.cz>
|
||
|
||
* doc/install.texi: Document that some tests need pytest module.
|
||
* doc/sourcebuild.texi: Likewise.
|
||
|
||
2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
PR target/71233
|
||
* config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.
|
||
|
||
2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
|
||
(mve_vshrq_n_u<mode>_imm): Likewise.
|
||
* config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
|
||
* config/arm/vec-common.md: ... here.
|
||
|
||
2021-01-15 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
|
||
vec-commond.md.
|
||
* config/arm/neon.md (vashl<mode>3): Delete.
|
||
* config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
|
||
(vasl<mode>3): New expander.
|
||
|
||
2021-01-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98685
|
||
* tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
|
||
of vector extern defs.
|
||
|
||
2021-01-14 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR jit/98586
|
||
* diagnostic.c (diagnostic_kind_text): Break out this array
|
||
from...
|
||
(diagnostic_build_prefix): ...here.
|
||
(fancy_abort): Detect when diagnostic_initialize has not yet been
|
||
called and fall back to a minimal implementation of printing the
|
||
ICE, rather than segfaulting in internal_error.
|
||
|
||
2021-01-14 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* diagnostic.c (diagnostic_initialize): Eliminate
|
||
parseable_fixits_p in favor of initializing extra_output_kind from
|
||
GCC_EXTRA_DIAGNOSTIC_OUTPUT.
|
||
(convert_column_unit): New function, split out from...
|
||
(diagnostic_converted_column): ...this.
|
||
(print_parseable_fixits): Add "column_unit" and "tabstop" params.
|
||
Use them to call convert_column_unit on the column values.
|
||
(diagnostic_report_diagnostic): Eliminate conditional on
|
||
parseable_fixits_p in favor of a switch statement on
|
||
extra_output_kind, passing the appropriate values to the new
|
||
params of print_parseable_fixits.
|
||
(selftest::test_print_parseable_fixits_none): Update for new
|
||
params of print_parseable_fixits.
|
||
(selftest::test_print_parseable_fixits_insert): Likewise.
|
||
(selftest::test_print_parseable_fixits_remove): Likewise.
|
||
(selftest::test_print_parseable_fixits_replace): Likewise.
|
||
(selftest::test_print_parseable_fixits_bytes_vs_display_columns):
|
||
New.
|
||
(selftest::diagnostic_c_tests): Call it.
|
||
* diagnostic.h (enum diagnostics_extra_output_kind): New.
|
||
(diagnostic_context::parseable_fixits_p): Delete field in favor
|
||
of...
|
||
(diagnostic_context::extra_output_kind): ...this new field.
|
||
* doc/invoke.texi (Environment Variables): Add
|
||
GCC_EXTRA_DIAGNOSTIC_OUTPUT.
|
||
* opts.c (common_handle_option): Update handling of
|
||
OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
|
||
fields.
|
||
|
||
2021-01-14 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* tree-vect-slp-patterns.c (class complex_operations_pattern,
|
||
complex_operations_pattern::matches,
|
||
complex_operations_pattern::recognize,
|
||
complex_operations_pattern::build): New.
|
||
(slp_patterns): Use it.
|
||
|
||
2021-01-14 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
|
||
* optabs.def (cmls_optab, cmls_conj_optab): New.
|
||
* doc/md.texi: Document them.
|
||
* tree-vect-slp-patterns.c (class complex_fms_pattern,
|
||
complex_fms_pattern::matches, complex_fms_pattern::recognize,
|
||
complex_fms_pattern::build): New.
|
||
|
||
2021-01-14 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
|
||
* optabs.def (cmla_optab, cmla_conj_optab): New.
|
||
* doc/md.texi: Document them.
|
||
* tree-vect-slp-patterns.c (vect_match_call_p,
|
||
class complex_fma_pattern, vect_slp_reset_pattern,
|
||
complex_fma_pattern::matches, complex_fma_pattern::recognize,
|
||
complex_fma_pattern::build): New.
|
||
|
||
2021-01-14 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
|
||
* optabs.def (cmul_optab, cmul_conj_optab): New.
|
||
* doc/md.texi: Document them.
|
||
* tree-vect-slp-patterns.c (vect_match_call_complex_mla,
|
||
vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
|
||
vect_build_combine_node, class complex_mul_pattern,
|
||
complex_mul_pattern::matches, complex_mul_pattern::recognize,
|
||
complex_mul_pattern::build): New.
|
||
|
||
2021-01-14 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* tree-vect-slp.c (optimize_load_redistribution_1): New.
|
||
(optimize_load_redistribution, vect_is_slp_load_node): New.
|
||
(vect_match_slp_patterns): Use it.
|
||
|
||
2021-01-14 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* tree-vect-slp-patterns.c (complex_add_pattern::build):
|
||
Elide nodes.
|
||
|
||
2021-01-14 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* config/gcn/mkoffload.c (main): Create an offload image only in
|
||
64-bit configurations.
|
||
|
||
2021-01-14 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
PR target/98667
|
||
* config/i386/i386-options.c (ix86_option_override_internal):
|
||
Issue an error for -fcf-protection with CF_BRANCH when compiling
|
||
for 32-bit non-TARGET_CMOV targets.
|
||
|
||
2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/98671
|
||
* config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
|
||
Remove declaration and initialization of shadow variable "ret".
|
||
(ix86_option_override_internal): Remove delcaration of
|
||
shadow variable "i". Redeclare shadowed variable to unsigned.
|
||
* common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
|
||
* config/i386/i386-builtins.c (get_builtin_code_for_version):
|
||
Update for redeclaration.
|
||
* config/i386/i386.h (pta_size): Ditto.
|
||
|
||
2021-01-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98674
|
||
* tree-data-ref.c (base_supports_access_fn_components_p): New.
|
||
(initialize_data_dependence_relation): For two bases without
|
||
possible access fns resort to type size equality when determining
|
||
shape compatibility.
|
||
|
||
2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
|
||
|
||
PR target/66791
|
||
* config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
|
||
<=, >= operators in vcle and vcge intrinsics respectively.
|
||
* config/arm/arm_neon_builtins.def: Remove entry for
|
||
vcge and vcgeu.
|
||
|
||
2021-01-14 Uroš Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/98671
|
||
* config/i386/i386-options.c (ix86_function_specific_save):
|
||
Remove redundant assignment to opts->x_ix86_branch_cost.
|
||
* config/i386/i386.c (ix86_prefetch_sse):
|
||
Rename from x86_prefetch_sse. Update all uses.
|
||
* config/i386/i386.h: Update for rename.
|
||
* config/i386/i386-options.h: Ditto.
|
||
|
||
2021-01-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/98670
|
||
* config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
|
||
*sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
|
||
Use Bm instead of m for non-avx. Add isa attribute.
|
||
|
||
2021-01-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96688
|
||
* match.pd (~(X >> Y) -> ~X >> Y): New simplification if
|
||
~X can be simplified.
|
||
|
||
2021-01-14 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* tree-vect-stmts.c (vect_model_load_cost): Account for unused
|
||
IFN_LOAD_LANES results.
|
||
|
||
2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
|
||
Define.
|
||
(aarch64_xtn<mode>): Likewise.
|
||
* config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
|
||
Define
|
||
builtins.
|
||
* config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
|
||
builtin.
|
||
(vmovl_s16): Likewise.
|
||
(vmovl_s32): Likewise.
|
||
(vmovl_u8): Likewise.
|
||
(vmovl_u16): Likewise.
|
||
(vmovl_u32): Likewise.
|
||
(vmovn_s16): Likewise.
|
||
(vmovn_s32): Likewise.
|
||
(vmovn_s64): Likewise.
|
||
(vmovn_u16): Likewise.
|
||
(vmovn_u32): Likewise.
|
||
(vmovn_u64): Likewise.
|
||
|
||
2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
|
||
Define.
|
||
(aarch64_<su>qxtn2<mode>_be): Likewise.
|
||
(aarch64_<su>qxtn2<mode>): Likewise.
|
||
* config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
|
||
Define builtins.
|
||
* config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
|
||
(su): Handle ss_truncate and us_truncate.
|
||
* config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
|
||
builtin.
|
||
(vqmovn_high_s32): Likewise.
|
||
(vqmovn_high_s64): Likewise.
|
||
(vqmovn_high_u16): Likewise.
|
||
(vqmovn_high_u32): Likewise.
|
||
(vqmovn_high_u64): Likewise.
|
||
|
||
2021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
|
||
Define.
|
||
(aarch64_xtn2<mode>_be): Likewise.
|
||
(aarch64_xtn2<mode>): Likewise.
|
||
* config/aarch64/aarch64-simd-builtins.def (xtn2): Define
|
||
builtins.
|
||
* config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
|
||
builtins.
|
||
(vmovn_high_s32): Likewise.
|
||
(vmovn_high_s64): Likewise.
|
||
(vmovn_high_u16): Likewise.
|
||
(vmovn_high_u32): Likewise.
|
||
(vmovn_high_u64): Likewise.
|
||
|
||
2021-01-13 Stafford Horne <shorne@gmail.com>
|
||
|
||
* config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.
|
||
|
||
2021-01-13 Stafford Horne <shorne@gmail.com>
|
||
|
||
* config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.
|
||
|
||
2021-01-13 Stafford Horne <shorne@gmail.com>
|
||
|
||
* config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
|
||
define for __or1k_hard_float__.
|
||
|
||
2021-01-13 Stafford Horne <shorne@gmail.com>
|
||
|
||
* config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
|
||
(PROFILE_HOOK): Define to call _mcount.
|
||
(FUNCTION_PROFILER): Change from abort to no-op.
|
||
|
||
2021-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96691
|
||
* match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
|
||
(~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
|
||
(~D ^ C) or (D ^ C) can be simplified.
|
||
|
||
2021-01-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/92645
|
||
* match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
|
||
until after vector lowering.
|
||
|
||
2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
|
||
to SVE_I.
|
||
(@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
|
||
(*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.
|
||
|
||
2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
|
||
to SVE_I.
|
||
(@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
|
||
(*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.
|
||
|
||
2021-01-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/92645
|
||
* tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
|
||
BIT_FIELD_REF argument.
|
||
(vect_build_slp_tree_2): Record the desired vector type
|
||
on the external vector def.
|
||
(vectorizable_slp_permutation): Handle required punning
|
||
of existing vector defs.
|
||
|
||
2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.
|
||
|
||
2021-01-13 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/sh/sh.md (movsf_ie): Remove operands[2] test.
|
||
|
||
2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||
|
||
* config.gcc [$target == *-*-gnu*]: Enable
|
||
'default_gnu_indirect_function'.
|
||
|
||
2021-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/95905
|
||
* optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
|
||
registers before calling targetm.vectorize.vec_perm_const, only after
|
||
that.
|
||
* config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
|
||
two argument permutation when one operand is zero vector and only
|
||
after that force operands into registers.
|
||
* config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
|
||
define_insn_and_split pattern.
|
||
(*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
|
||
(*avx512f_zero_extendv16hiv16si2_1): Likewise.
|
||
(*avx2_zero_extendv8hiv8si2_1): Likewise.
|
||
(*avx512f_zero_extendv8siv8di2_1): Likewise.
|
||
(*avx2_zero_extendv4siv4di2_1): Likewise.
|
||
* config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
|
||
into registers.
|
||
* config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
|
||
* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
|
||
* config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
|
||
* config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
|
||
* config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap.
|
||
|
||
2021-01-13 Martin Liska <mliska@suse.cz>
|
||
|
||
PR tree-optimization/98455
|
||
* gimple-if-to-switch.cc (condition_info::record_phi_mapping):
|
||
Record also virtual PHIs.
|
||
(pass_if_to_switch::execute): Return TODO_cleanup_cfg only
|
||
conditionally.
|
||
|
||
2021-01-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/invoke.texi (C++ Modules): Fix typos.
|
||
|
||
2021-01-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98640
|
||
* tree-ssa-sccvn.c (visit_nary_op): Do not try to
|
||
handle plus or minus from a truncated operand to be
|
||
sign-extended.
|
||
|
||
2021-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/96938
|
||
* config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
|
||
define_insn_and_split patterns.
|
||
(splitter after *btr<mode>_2): New splitter.
|
||
|
||
2021-01-13 Martin Liska <mliska@suse.cz>
|
||
|
||
PR ipa/98652
|
||
* cgraphunit.c (analyze_functions): Remove dead code.
|
||
|
||
2021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com>
|
||
|
||
* config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
|
||
* config/aarch64/aarch64.c (a64fx_addrcost_table): New.
|
||
(a64fx_regmove_cost, a64fx_vector_cost): New.
|
||
(a64fx_tunings): Use the new added cost tables.
|
||
|
||
2021-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/95905
|
||
* config/i386/predicates.md (pmovzx_parallel): New predicate.
|
||
* config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
|
||
define_insn_and_split pattern.
|
||
(*sse4_1_zero_extendv4hiv4si2_3): Likewise.
|
||
(*sse4_1_zero_extendv2siv2di2_3): Likewise.
|
||
|
||
2021-01-13 Julian Brown <julian@codesourcery.com>
|
||
|
||
* config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
|
||
to fix v0 register.
|
||
|
||
2021-01-13 Julian Brown <julian@codesourcery.com>
|
||
|
||
* config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
|
||
on entry to a BB.
|
||
|
||
2021-01-13 Julian Brown <julian@codesourcery.com>
|
||
|
||
* config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
|
||
for reciprocal-approximation instructions.
|
||
(div<mode>3): Use fused multiply-accumulate operations for reciprocal
|
||
refinement and division result.
|
||
* config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.
|
||
|
||
2021-01-13 Julian Brown <julian@codesourcery.com>
|
||
|
||
* config/gcn/gcn-valu.md (subdf): Rename to...
|
||
(subdf3): This.
|
||
|
||
2021-01-12 Martin Liska <mliska@suse.cz>
|
||
|
||
* gcov.c (source_info::debug): Fix printf format for 32-bit hosts.
|
||
|
||
2021-01-12 Andrea Corallo <andrea.corallo@arm.com>
|
||
|
||
* function-abi.h: Fix typo.
|
||
|
||
2021-01-12 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
PR target/97875
|
||
PR target/97875
|
||
* config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
|
||
(ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
|
||
(ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
|
||
(ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
|
||
(ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
|
||
(ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
|
||
(ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
|
||
(ARM_HAVE_NEON_V2DI_LDST): Likewise.
|
||
(ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
|
||
(ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
|
||
(ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
|
||
(ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
|
||
(ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
|
||
(ARM_HAVE_V2DI_LDST): Likewise.
|
||
* config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
|
||
(*movmisalign<mode>_mve_load): New pattern.
|
||
* config/arm/neon.md (movmisalign<mode>): Move to ...
|
||
* config/arm/vec-common.md: ... here.
|
||
|
||
2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/97969
|
||
* lra-eliminations.c (eliminate_regs_in_insn): Add transformation
|
||
of pattern 'plus (plus (hard reg, const), pseudo)'.
|
||
|
||
2021-01-12 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98550
|
||
* tree-vect-slp.c (vect_record_max_nunits): Check whether
|
||
the group size is a multiple of the vector element count.
|
||
(vect_build_slp_tree_1): When we need to fail because
|
||
the vector type choosen causes unrolling do so lazily
|
||
without affecting matches only at the end to guide group splitting.
|
||
|
||
2021-01-12 Martin Liska <mliska@suse.cz>
|
||
|
||
PR c++/97284
|
||
* optc-save-gen.awk: Compare also n_target_save vars with
|
||
strcmp.
|
||
|
||
2021-01-12 Martin Liska <mliska@suse.cz>
|
||
|
||
* gcov.c (source_info::debug): New.
|
||
(print_usage): Add --debug (-D) option.
|
||
(process_args): Likewise.
|
||
(generate_results): Call src->debug after
|
||
accumulate_line_counts.
|
||
(read_graph_file): Properly assign id for EXIT_BLOCK.
|
||
* profile.c (branch_prob): Dump function body before it is
|
||
instrumented.
|
||
|
||
2021-01-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/98629
|
||
* tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
|
||
unless returning non-zero.
|
||
|
||
2021-01-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/95731
|
||
* tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
|
||
x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
|
||
(optimize_range_tests): Call optimize_range_tests_cmp_bitwise
|
||
only after optimize_range_tests_var_bound.
|
||
|
||
2021-01-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
|
||
* configure: Regenerated.
|
||
|
||
2021-01-12 liuhongt <hongtao.liu@intel.com>
|
||
|
||
PR target/98612
|
||
* config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
|
||
Deleted.
|
||
* config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
|
||
dead code.
|
||
|
||
2021-01-12 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* ssa-iterators.h (end_imm_use_stmt_traverse): Forward
|
||
declare.
|
||
(auto_end_imm_use_stmt_traverse): New struct.
|
||
(FOR_EACH_IMM_USE_STMT): Use it.
|
||
(BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
|
||
along with uses...
|
||
* gimple-ssa-strength-reduction.c: ... here, ...
|
||
* graphite-scop-detection.c: ... here, ...
|
||
* ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
|
||
* tree-predcom.c, tree-ssa-ccp.c: ... here, ...
|
||
* tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
|
||
* tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
|
||
* tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
|
||
* tree-vect-slp.c: ... and here, ...
|
||
* doc/tree-ssa.texi: ... and the example here.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
|
||
SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X.
|
||
(*sdiv_pow2<mode>3): New pattern.
|
||
(@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
|
||
Wrap the ASRD in an UNSPEC_PRED_X.
|
||
(*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X
|
||
predicate with a constant PTRUE, if it isn't already.
|
||
(*cond_<sve_int_op><mode>_z): Replace with...
|
||
(*cond_<sve_int_op><mode>_any): ...this new pattern.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
|
||
SVE_FULL_I to SVE_I.
|
||
(*cond_bic<mode>_any): Likewise.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
|
||
(@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
|
||
to SVE_I.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
|
||
SVE_FULL_I to SVE_I.
|
||
(*aarch64_cond_<su>abd<mode>_2): Likewise.
|
||
(*aarch64_cond_<su>abd<mode>_any): Likewise.
|
||
(@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X
|
||
for the max and min but not for the minus.
|
||
(*aarch64_cond_<su>abd<mode>_3): New pattern.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/iterators.md (SVE_24I): New iterator.
|
||
* config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
|
||
SVE_FULL_SDI to SVE_24I. Use containers rather than elements.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
|
||
(*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
|
||
to SVE_I.
|
||
(*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
|
||
(*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
|
||
(*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
|
||
(*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
|
||
(@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
|
||
(*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
|
||
to SVE_I.
|
||
|
||
2021-01-11 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
|
||
(v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
|
||
(*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.
|
||
|
||
2021-01-11 Martin Liska <mliska@suse.cz>
|
||
|
||
PR jit/98615
|
||
* symtab-clones.h (clone_info::release): Release
|
||
symtab::m_clones with ggc_delete as it's a GGC memory.
|
||
|
||
2021-01-11 Matthias Klose <doko@ubuntu.com>
|
||
|
||
* Makefile.in (LINK_PROGRESS): Show the link target.
|
||
|
||
2021-01-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/91403
|
||
* tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
|
||
single-element interleaving group size at 4096 elements.
|
||
|
||
2021-01-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98526
|
||
* tree-vect-loop.c (vect_model_reduction_cost): Remove costing
|
||
of the actual reduction op for the regular case.
|
||
(vectorizable_reduction): Cost the stmts
|
||
vect_transform_reduction produces here.
|
||
|
||
2021-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
|
||
|
||
* tree-ssa-forwprop.c (simplify_vector_constructor): For
|
||
big-endian, use UNPACK[_FLOAT]_HI.
|
||
|
||
2021-01-11 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* tree-vect-slp-patterns.c (class complex_pattern,
|
||
class complex_add_pattern): Add parameters to matches.
|
||
(complex_add_pattern::build): Free memory.
|
||
(complex_add_pattern::matches): Move validation end of match.
|
||
(complex_add_pattern::recognize): Likewise.
|
||
|
||
2021-01-11 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* tree-vect-slp-patterns.c (linear_loads_p): Fix externals.
|
||
|
||
2021-01-11 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
* tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.
|
||
|
||
2021-01-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/95867
|
||
* tree-ssa-math-opts.h: New header.
|
||
* tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
|
||
(powi_as_mults): No longer static. Use build_one_cst instead of
|
||
build_real. Formatting fix.
|
||
* tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
|
||
(attempt_builtin_powi): Handle multiplication reassociation without
|
||
powi_fndecl using powi_as_mults.
|
||
(reassociate_bb): For integral types don't require
|
||
-funsafe-math-optimizations to call attempt_builtin_powi.
|
||
|
||
2021-01-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/95852
|
||
* tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
|
||
mul_stmts parameter type to vec<gimple *> &. Before cond_stmt
|
||
allow in the bb any of the stmts in that vector, div_stmt and
|
||
up to 3 cast stmts.
|
||
(arith_cast_equal_p): New function.
|
||
(arith_overflow_check_p): Add cast_stmt argument, handle signed
|
||
multiply overflow checks.
|
||
(match_arith_overflow): Adjust caller. Handle signed multiply
|
||
overflow checks.
|
||
|
||
2021-01-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/95852
|
||
* tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
|
||
(uaddsub_overflow_check_p): Renamed to ...
|
||
(arith_overflow_check_p): ... this. Handle also multiplication
|
||
with overflow check.
|
||
(match_uaddsub_overflow): Renamed to ...
|
||
(match_arith_overflow): ... this. Add cfg_changed argument. Handle
|
||
also multiplication with overflow check. Adjust function comment.
|
||
(math_opts_dom_walker::after_dom_children): Adjust callers. Call
|
||
match_arith_overflow also for MULT_EXPR.
|
||
|
||
2021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
|
||
__builtin_convertvector.
|
||
(vmovl_s16): Likewise.
|
||
(vmovl_s32): Likewise.
|
||
(vmovl_u8): Likewise.
|
||
(vmovl_u16): Likewise.
|
||
(vmovl_u32): Likewise.
|
||
(vmovn_s16): Likewise.
|
||
(vmovn_s32): Likewise.
|
||
(vmovn_s64): Likewise.
|
||
(vmovn_u16): Likewise.
|
||
(vmovn_u32): Likewise.
|
||
(vmovn_u64): Likewise.
|
||
|
||
2021-01-11 Martin Liska <mliska@suse.cz>
|
||
|
||
* gimple-if-to-switch.cc (struct condition_info): Use auto_var.
|
||
(if_chain::is_beneficial): Delete clusters
|
||
(find_conditions): Make second argument of conditions_in_bbs a
|
||
pointer so that we control over it's lifetime.
|
||
(pass_if_to_switch::execute): Delete them.
|
||
|
||
2021-01-11 Kewen Lin <linkw@linux.ibm.com>
|
||
|
||
* ira.c (move_unallocated_pseudos): Check other_reg and skip if
|
||
it isn't set.
|
||
|
||
2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
|
||
|
||
* config/vax/vax.md (cc): Remove mode attribute.
|
||
(subst_<cc>, subst_f<cc>): Rename to...
|
||
(subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
|
||
(*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
|
||
(*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
|
||
(*branch_<mode>, *branch_<mode>_reversed): Likewise.
|
||
|
||
2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
|
||
|
||
* config/vax/vax.md (subst_f<cc>): Add mode to operands and
|
||
`const_double_zero'.
|
||
|
||
2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
|
||
|
||
* config/pdp11/pdp11.md (PDPfp): New mode iterator.
|
||
(fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and
|
||
operands.
|
||
|
||
2021-01-09 Maciej W. Rozycki <macro@linux-mips.org>
|
||
|
||
* genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
|
||
rtx.
|
||
* read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
|
||
with `const_double_zero'.
|
||
* doc/rtl.texi (Constant Expression Types): Document it.
|
||
|
||
2021-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/98556
|
||
* tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
|
||
POINTER_DIFF_EXPR to be any integral type.
|
||
|
||
2021-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/98603
|
||
* function.c (instantiate_virtual_regs_in_insn): For asm goto
|
||
with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
|
||
if any, set ASM_OPERANDS mode to VOIDmode and change
|
||
ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.
|
||
|
||
2021-01-09 Alexandre Oliva <oliva@gnu.org>
|
||
|
||
PR debug/97714
|
||
* final.c (notice_source_line): Narrow down the condition to
|
||
skip a line-0 marker.
|
||
|
||
2021-01-08 Sergei Trofimovich <siarheit@google.com>
|
||
|
||
* ipa-modref.c (merge_call_side_effects): Fix
|
||
linebreak split by reordering two print calls.
|
||
|
||
2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
|
||
|
||
* config/s390/vector.md (*tf_to_fprx2_0): Rename from
|
||
"*mov_tf_to_fprx2_0" for consistency, fix constraint.
|
||
(*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
|
||
consistency, fix constraint.
|
||
|
||
2021-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
|
||
|
||
* config/s390/s390-c.c (s390_def_or_undef_macro): Accept
|
||
callables instead of mask values.
|
||
(struct target_flag_set_p): New predicate.
|
||
(s390_cpu_cpp_builtins_internal): Define or undefine
|
||
__LONG_DOUBLE_VX__ macro.
|
||
|
||
2021-01-08 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
PR target/98482
|
||
* config/i386/i386.c (x86_function_profiler): Use R10 and R11
|
||
to call mcount in large model with PIC for NO_PROFILE_COUNTERS
|
||
targets.
|
||
|
||
2021-01-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.
|
||
|
||
2021-01-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
|
||
(vect_build_slp_tree): On cache hit release the matched
|
||
scalar stmts vector.
|
||
* tree-vect-stmts.c (vectorizable_store): Properly free
|
||
vec_oprnds before possibly gathering them again.
|
||
|
||
2021-01-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98544
|
||
* tree-vect-slp.c (vect_optimize_slp): Always materialize
|
||
permutes at a permute node.
|
||
|
||
2021-01-08 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
PR target/98482
|
||
* config/i386/i386.c (x86_function_profiler): Use R10 to call
|
||
mcount in large model. Sorry for large model with PIC.
|
||
|
||
2021-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/98585
|
||
* config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
|
||
ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
|
||
ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
|
||
TargetSave and initialize for variables with enum types.
|
||
(mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
|
||
mstack-protector-guard-symbol=): Add Save.
|
||
* config/i386/i386-options.c (ix86_function_specific_save,
|
||
ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
|
||
x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
|
||
x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
|
||
x_ix86_veclibabi_type.
|
||
|
||
2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
|
||
SVE_FULL_I to SVE_I.
|
||
(*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
|
||
|
||
2021-01-08 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
|
||
SVE_FULL_I to SVE_I.
|
||
(*cond_uxt<mode>_any): Likewise.
|
||
|
||
2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/iterators.md (Vwhalf): New iterator.
|
||
* config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
|
||
Rename to...
|
||
(aarch64_<sur>adalp<mode>): ... This. Make more
|
||
builtin-friendly.
|
||
(<sur>sadv16qi): Adjust callsite of the above.
|
||
* config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
|
||
builtins.
|
||
* config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
|
||
builtins.
|
||
(vpadal_s16): Likewise.
|
||
(vpadal_u8): Likewise.
|
||
(vpadal_u16): Likewise.
|
||
(vpadalq_s8): Likewise.
|
||
(vpadalq_s16): Likewise.
|
||
(vpadalq_s32): Likewise.
|
||
(vpadalq_u8): Likewise.
|
||
(vpadalq_u16): Likewise.
|
||
(vpadalq_u32): Likewise.
|
||
|
||
2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
|
||
Rename to...
|
||
(aarch64_<su>abd<mode>): ... This.
|
||
(<sur>sadv16qi): Adjust callsite of the above.
|
||
* config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
|
||
builtins.
|
||
* config/aarch64/arm_neon.h (vabd_s8): Reimplement using
|
||
builtin.
|
||
(vabd_s16): Likewise.
|
||
(vabd_s32): Likewise.
|
||
(vabd_u8): Likewise.
|
||
(vabd_u16): Likewise.
|
||
(vabd_u32): Likewise.
|
||
(vabdq_s8): Likewise.
|
||
(vabdq_s16): Likewise.
|
||
(vabdq_s32): Likewise.
|
||
(vabdq_u8): Likewise.
|
||
(vabdq_u16): Likewise.
|
||
(vabdq_u32): Likewise.
|
||
|
||
2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
|
||
builtins.
|
||
* config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
|
||
(vaba_s16): Likewise.
|
||
(vaba_s32): Likewise.
|
||
(vaba_u8): Likewise.
|
||
(vaba_u16): Likewise.
|
||
(vaba_u32): Likewise.
|
||
(vabaq_s8): Likewise.
|
||
(vabaq_s16): Likewise.
|
||
(vabaq_s32): Likewise.
|
||
(vabaq_u8): Likewise.
|
||
(vabaq_u16): Likewise.
|
||
(vabaq_u32): Likewise.
|
||
|
||
2021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
|
||
(aarch64_<su>aba<mode>): ... This. Handle uaba as well.
|
||
Change RTL pattern to match.
|
||
|
||
2021-01-08 Kito Cheng <kito.cheng@sifive.com>
|
||
|
||
* common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
|
||
* config/riscv/riscv-c.c (riscv-subset.h): New.
|
||
(INCLUDE_STRING): Define.
|
||
(riscv_cpu_cpp_builtins): Add new style architecture extension
|
||
test macros.
|
||
* config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
|
||
(riscv_subset_list::end): New.
|
||
(riscv_current_subset_list): New.
|
||
|
||
2021-01-08 Kito Cheng <kito.cheng@sifive.com>
|
||
|
||
* common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
|
||
Move to riscv-subset.h.
|
||
(struct riscv_subset_t): Ditto.
|
||
(class riscv_subset_list): Ditto.
|
||
* config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
|
||
from riscv-common.c.
|
||
(struct riscv_subset_t): Ditto.
|
||
(class riscv_subset_list): Ditto.
|
||
* config/riscv/t-riscv ($(common_out_file)): Add file
|
||
dependency.
|
||
|
||
2021-01-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/98567
|
||
* config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
|
||
New define_insn patterns.
|
||
|
||
2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
|
||
(*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
|
||
(*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.
|
||
|
||
2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR tree-optimization/98560
|
||
* internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
|
||
* internal-fn.c (vec_cond_mask_direct): Get the data mode from
|
||
argument 1.
|
||
(vec_cond_direct): Likewise argument 2.
|
||
(vec_condu_direct, vec_condeq_direct): Delete.
|
||
(expand_vect_cond_optab_fn): Rename to...
|
||
(expand_vec_cond_optab_fn): ...this, replacing old macro.
|
||
(expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
|
||
(expand_vect_cond_mask_optab_fn): Rename to...
|
||
(expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
|
||
(direct_vec_cond_mask_optab_supported_p): Treat the optab as a
|
||
convert optab.
|
||
(direct_vec_cond_optab_supported_p): Likewise.
|
||
(direct_vec_condu_optab_supported_p): Delete.
|
||
(direct_vec_condeq_optab_supported_p): Delete.
|
||
* gimple-isel.cc: Include internal-fn.h.
|
||
(gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
|
||
before using it.
|
||
|
||
2021-01-07 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR tree-optimization/98560
|
||
* gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
|
||
IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.
|
||
|
||
2021-01-07 Uroš Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
|
||
rotate_insn and optab code attributes.
|
||
Update all uses to merged code attribute.
|
||
* config/i386/sse.md: Update all uses to merged code attribute.
|
||
* config/i386/mmx.md: Update all uses to merged code attribute.
|
||
|
||
2021-01-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/98568
|
||
* gimple-ssa-store-merging.c (bswap_view_convert): New function.
|
||
(bswap_replace): Use it.
|
||
|
||
2021-01-06 Vladimir N. Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/97978
|
||
* lra-int.h (lra_hard_reg_split_p): New external.
|
||
* lra.c (lra_hard_reg_split_p): New global.
|
||
(lra): Set up lra_hard_reg_split_p after splitting a hard reg.
|
||
* lra-assigns.c (lra_assign): Don't check allocation correctness
|
||
after hard reg splitting.
|
||
|
||
2021-01-06 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c++/98305
|
||
* builtins.c (new_delete_mismatch_p): New overload.
|
||
(new_delete_mismatch_p (tree, tree)): Call it.
|
||
|
||
2021-01-06 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* Makefile.in (T_GLIMITS_H): New.
|
||
(stmp-int-hdrs): Depend on it, use it.
|
||
* config/t-vxworks (T_GLIMITS_H): Override it.
|
||
(vxw-glimits.h): New.
|
||
|
||
2021-01-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98513
|
||
* value-range.cc (intersect_ranges): Compare the upper bounds
|
||
for the expected relation.
|
||
|
||
2021-01-06 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
Revert:
|
||
2020-12-28 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/standards.texi (HSAIL): Remove section.
|
||
|
||
2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||
|
||
* configure: Re-generate.
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* doc/invoke.texi (-std=c++20): Adjust for the publication of
|
||
ISO 14882:2020 standard.
|
||
* doc/standards.texi: Likewise.
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/94802
|
||
* expr.h (maybe_optimize_sub_cmp_0): Declare.
|
||
* expr.c: Include tree-pretty-print.h and flags.h.
|
||
(maybe_optimize_sub_cmp_0): New function.
|
||
(do_store_flag): Use it.
|
||
* cfgexpand.c (expand_gimple_cond): Likewise.
|
||
|
||
2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
|
||
* rtlanal.c (simple_regno_set): Tweak description to clarify the
|
||
RMW condition.
|
||
|
||
2021-01-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98516
|
||
* tree-vect-slp.c (vect_optimize_slp): Permute the incoming
|
||
lanes when materializing on a VEC_PERM node.
|
||
(vectorizable_slp_permutation): Dump the permute properly.
|
||
|
||
2021-01-05 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-slp.c (vect_slp_region): Move debug counter
|
||
to cover individual subgraphs.
|
||
|
||
2021-01-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98428
|
||
* tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
|
||
vector lane extracts for loop vectorization.
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/98514
|
||
* tree-ssa-reassoc.c (bb_rank): Change type from long * to
|
||
int64_t *.
|
||
(operand_rank): Change type from hash_map<tree, long> to
|
||
hash_map<tree, int64_t>.
|
||
(phi_rank): Change return type from long to int64_t.
|
||
(loop_carried_phi): Change block_rank variable type from long to
|
||
int64_t.
|
||
(propagate_rank): Change return type, rank parameter type and
|
||
op_rank variable type from long to int64_t.
|
||
(find_operand_rank): Change return type from long to int64_t
|
||
and change slot variable type from long * to int64_t *.
|
||
(insert_operand_rank): Change rank parameter type from long to
|
||
int64_t.
|
||
(get_rank): Change return type and rank variable type from long to
|
||
int64_t. Use PRId64 instead of ld to print the rank.
|
||
(init_reassoc): Change rank variable type from long to int64_t
|
||
and adjust correspondingly bb_rank and operand_rank initialization.
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96928
|
||
* tree-ssa-phiopt.c (xor_replacement): New function.
|
||
(tree_ssa_phiopt_worker): Call it.
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96930
|
||
* match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
|
||
from narrower value which has the same type as 1 << B, perform
|
||
the right shift on the narrower value followed by extension.
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96239
|
||
* gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
|
||
function.
|
||
(get_status_for_store_merging): Don't return BB_INVALID for blocks
|
||
with potential bswap optimizable CONSTRUCTORs.
|
||
(pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
|
||
if possible.
|
||
|
||
2021-01-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98381
|
||
* tree.c (vector_element_bits): Properly compute bool vector
|
||
element size.
|
||
* tree-vect-loop.c (vectorizable_live_operation): Properly
|
||
compute the last lane bit offset.
|
||
|
||
2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/98522
|
||
* config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
|
||
Clear the top 64 bytes of the input XMM register.
|
||
(sse_cvttps2pi): Ditto.
|
||
|
||
2021-01-05 Uroš Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/98521
|
||
* config/i386/xopintrin.h (_mm256_cmov_si256): New.
|
||
|
||
2021-01-05 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
PR target/98495
|
||
* config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
|
||
short first.
|
||
|
||
2021-01-05 Claudiu Zissulescu <claziss@synopsys.com>
|
||
|
||
* config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
|
||
(umaddsidi4_split): Likewise.
|
||
|
||
2021-01-05 liuhongt <hongtao.liu@intel.com>
|
||
|
||
PR target/98461
|
||
* config/i386/sse.md (*sse2_pmovskb_zexthisi): New
|
||
define_insn_and_split for zero_extend of subreg HI of pmovskb
|
||
result.
|
||
(*sse2_pmovskb_zexthisi): Add new combine splitters for
|
||
zero_extend of not of subreg HI of pmovskb result.
|
||
|
||
2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR target/97269
|
||
* explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
|
||
nested in CONSTs.
|
||
* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
|
||
convert_memory_address to convert symbolic immediates to ptr_mode
|
||
before forcing them to memory.
|
||
|
||
2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR rtl-optimization/97144
|
||
* recog.c (constrain_operands): Initialize matching_operand
|
||
for each alternative, rather than only doing it once.
|
||
|
||
2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR rtl-optimization/98403
|
||
* rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
|
||
why we don't remove call clobbers.
|
||
(function_info::apply_changes_to_insn): Don't attempt to add
|
||
call clobbers here.
|
||
|
||
2021-01-05 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR tree-optimization/98371
|
||
* tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
|
||
(vect_analyze_loop): If an epilogue loop appears to be cheaper
|
||
than the main loop, re-analyze it as a main loop before adopting
|
||
it as a main loop.
|
||
|
||
2021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR c++/98316
|
||
* configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
|
||
* aclocal.m4, configure: Regenerate.
|
||
* Makefile.in (NETLIBS): Define.
|
||
(BACKEND): Remove $(CODYLIB).
|
||
|
||
2021-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/98334
|
||
* simplify-rtx.c (simplify_context::simplify_binary_operation_1):
|
||
Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.
|
||
|
||
2021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
* tree-inline.c (expand_call_inline): Restore input_location.
|
||
Return result from recursive call.
|
||
|
||
2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR tree-optimization/95401
|
||
* config/aarch64/aarch64-sve-builtins.cc
|
||
(gimple_folder::load_store_cookie): Use bits rather than bytes
|
||
for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
|
||
* gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
|
||
* tree-vect-stmts.c (vectorizable_store): Likewise.
|
||
(vectorizable_load): Likewise.
|
||
|
||
2021-01-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98308
|
||
* tree-vect-stmts.c (vectorizable_load): Set invariant mask
|
||
SLP vectype.
|
||
|
||
2021-01-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/95771
|
||
* tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
|
||
with precision smaller than int's precision and types with precision
|
||
twice as large as long long. Formatting fixes.
|
||
|
||
2021-01-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98464
|
||
* tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
|
||
(vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb.
|
||
(process_bb): Adjust.
|
||
|
||
2021-01-04 Matthew Malcomson <matthew.malcomson@arm.com>
|
||
|
||
PR other/98437
|
||
* doc/invoke.texi (-fsanitize=address): Fix wording describing
|
||
clash with -fsanitize=hwaddress.
|
||
|
||
2021-01-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98282
|
||
* tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
|
||
invariants as VN_NARY.
|
||
|
||
2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
PR target/89057
|
||
* config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
|
||
aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns
|
||
to handle zero operands.
|
||
|
||
2021-01-04 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
|
||
(offset_6bit_unsigned_scaled_p): Fix typo in comment.
|
||
(aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
|
||
[-32, 31].
|
||
|
||
2021-01-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98393
|
||
* tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
|
||
when hitting the limit.
|
||
|
||
2021-01-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/98291
|
||
* tree-vect-loop.c (vectorizable_reduction): Bypass
|
||
associativity check for SLP reductions with VF 1.
|
||
|
||
2021-01-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/96782
|
||
* match.pd (x == ~x -> false, x != ~x -> true): New simplifications.
|
||
|
||
2021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
* collect-utils.c (collect_execute): Check dumppfx.
|
||
* collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
|
||
to collect_execute.
|
||
(do_link): Add new parameter atsuffix.
|
||
(main): Handle -dumpdir option. Skip one argument for
|
||
-o, -isystem and -B options.
|
||
* gcc.c (make_at_file): New helper function.
|
||
(close_at_file): Use it.
|
||
|
||
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
|
||
Amend handling for LD64_VERSION fallback defaults.
|
||
|
||
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config.gcc: Compute default version information
|
||
from the configured target. Likewise defaults for
|
||
ld64.
|
||
* config/darwin10.h: Removed.
|
||
* config/darwin12.h: Removed.
|
||
* config/darwin9.h: Removed.
|
||
* config/rs6000/darwin8.h: Removed.
|
||
|
||
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
|
||
|
||
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
|
||
* config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
|
||
|
||
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
|
||
here...
|
||
* config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
|
||
|
||
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
|
||
for the Darwin10 unwinder stub from here ...
|
||
* config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
|
||
|
||
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
|
||
(ASM_DEBUG_SPEC):Only define if the assembler supports
|
||
stabs.
|
||
(PREFERRED_DEBUGGING_TYPE): Default to DWARF.
|
||
(DARWIN_PREFER_DWARF): Define.
|
||
* config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
|
||
(DARWIN_PREFER_DWARF): Likewise
|
||
(DSYMUTIL_SPEC): Likewise.
|
||
(COLLECT_RUN_DSYMUTIL): Likewise.
|
||
(ASM_DEBUG_SPEC): Likewise.
|
||
(ASM_DEBUG_OPTION_SPEC): Likewise.
|
||
|
||
2021-01-02 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cfg.c (free_block): ggc_free bb.
|
||
|
||
2021-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gcc.c (process_command): Update copyright notice dates.
|
||
* gcov-dump.c (print_version): Ditto.
|
||
* gcov.c (print_version): Ditto.
|
||
* gcov-tool.c (print_version): Ditto.
|
||
* gengtype.c (create_file): Ditto.
|
||
* doc/cpp.texi: Bump @copying's copyright year.
|
||
* doc/cppinternals.texi: Ditto.
|
||
* doc/gcc.texi: Ditto.
|
||
* doc/gccint.texi: Ditto.
|
||
* doc/gcov.texi: Ditto.
|
||
* doc/install.texi: Ditto.
|
||
* doc/invoke.texi: Ditto.
|
||
|
||
2021-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* ChangeLog-2020: Rotate ChangeLog. New file.
|
||
|
||
|
||
Copyright (C) 2021 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|