blob: 326bcd31a3a074e0a1f600f8668e7bafb338a630 [file] [log] [blame]
2023-05-29 Release Manager
* GCC 11.4.0 released.
2023-05-22 Michael Meissner <meissner@linux.ibm.com>
PR target/70243
* config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp. Back
port from master 04/10/2023.
(vsx_nfmsv4sf4): Do not generate vnmsubfp.
2023-05-16 Simon Wright <simon@pushface.org>
Backported from master:
2022-06-12 Simon Wright <simon@pushface.org>
PR target/104871
* config/darwin-driver.c (darwin_find_version_from_kernel): If the OS
version is darwin20 (macOS 11) or greater, truncate the version to the
major number.
2023-05-16 Mark Mentovai <mark@mentovai.com>
Backported from master:
2022-06-12 Mark Mentovai <mark@mentovai.com>
* config/darwin-c.c: Make -mmacosx-version-min more future-proof.
2023-05-16 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
PR target/105599
* config/darwin.h: Move versions-specific handling of multiply_defined
from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
2023-05-16 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-12-24 Iain Sandoe <iain@sandoe.co.uk>
* config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable
values for the host.
* config/darwin.c (darwin_emit_common): Error for alignment
values > 32768.
* config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the
configured L2_MAX_OFILE_ALIGNMENT.
2023-05-16 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
Backported from master:
2021-12-18 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
* config/darwin-driver.c: Make version code more future-proof.
* config.gcc: Homogeneize darwin versions.
* configure.ac: Homogeneize darwin versions.
* configure: Regenerate.
2023-05-15 Iain Sandoe <iain@sandoe.co.uk>
* config/i386/darwin.h (ENDFILE_SPEC): Fix trailing '\'.
2023-05-15 liuhongt <hongtao.liu@intel.com>
* config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
whenever -mdaz-ftz is specified. Don't link crtfastmath.o
when -mno-daz-ftz is specified.
* config/i386/darwin.h (ENDFILE_SPEC): Ditto.
* config/i386/gnu-user-common.h
(GNU_USER_TARGET_MATHFILE_SPEC): Ditto.
* config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
* config/i386/i386.opt (mdaz-ftz): New option.
* doc/invoke.texi (x86 options): Document mftz-daz.
2023-05-09 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-05-09 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/109778
* wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
wi::zext (x, width) rather than x if width != precision, rather
than using wi::zext (right, width) after the shift.
* tree-ssa-ccp.c (bit_value_binop): Call wi::ext on the results
of wi::lrotate or wi::rrotate.
2023-05-09 Richard Biener <rguenther@suse.de>
Backported from master:
2023-03-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/108950
* tree-vect-patterns.c (vect_recog_widen_sum_pattern):
Check oprnd0 is defined in the loop.
* tree-vect-loop.c (vectorizable_reduction): Record all
operands vector types, compute that of invariants and
properly update their SLP nodes.
2023-05-05 Richard Biener <rguenther@suse.de>
Backported from master:
2022-11-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/107898
* gimple-ssa-warn-alloca.c (alloca_call_type): Check
the type of the alloca argument is compatible with size_t
before querying ranges.
2023-05-03 Arsen Arsenović <arsen@aarsen.me>
* doc/extend.texi: Replace @itemx not being preceded by @item.
2023-05-03 Anthony Sharp <anthonysharp15@gmail.com>
Backported from master:
2021-08-27 Anthony Sharp <anthonysharp15@gmail.com>
* symbol-summary.h: Added missing template keyword.
2023-05-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/109473
* tree-vect-loop.c (get_initial_def_for_reduction):
Convert the scalar values to the vector component type
before using it to build the vector for the initial value.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-04-12 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/109410
* tree-ssa-reassoc.c (build_and_add_sum): Split edge from entry
block if first statement of the function is a call to returns_twice
function.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-28 Jakub Jelinek <jakub@redhat.com>
PR middle-end/106190
* sanopt.c (pass_sanopt::execute): Return TODO_cleanup_cfg if any
of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-28 Jakub Jelinek <jakub@redhat.com>
PR target/109276
* config/i386/i386.c (assign_386_stack_local): For DImode
with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
align 32 rather than 0 to assign_stack_local.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-26 Jakub Jelinek <jakub@redhat.com>
PR ipa/105685
* predict.c (compute_function_frequency): Don't call
warn_function_cold if function already has cold attribute.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-23 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/109176
* tree-vect-generic.c (expand_vector_condition): If a has
vector boolean type and is a comparison, also check if both
the comparison and VEC_COND_EXPR could be successfully expanded
individually.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-17 Jakub Jelinek <jakub@redhat.com>
PR target/105554
* function.h (push_struct_function): Add ABSTRACT_P argument defaulted
to false.
* function.c (push_struct_function): Add ABSTRACT_P argument, pass it
to allocate_struct_function instead of false.
* tree-inline.c (initialize_cfun): Don't copy DECL_ARGUMENTS
nor DECL_RESULT here. Pass true as ABSTRACT_P to
push_struct_function. Call targetm.target_option.relayout_function
after it.
(tree_function_versioning): Formatting fix.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-17 Jakub Jelinek <jakub@redhat.com>
PR middle-end/108685
* omp-expand.c (expand_omp_for_ordered_loops): Add L0_BB argument,
use its loop_father rather than BODY_BB's loop_father.
(expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
If broken_loop with ordered > collapse and at least one of those
extra loops aren't guaranteed to have at least one iteration, change
l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
loop_father to l0_bb's loop_father rather than l1_bb's.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-04 Jakub Jelinek <jakub@redhat.com>
PR testsuite/108973
* selftest-diagnostic.c
(test_diagnostic_context::test_diagnostic_context): Set
caret_max_width to 80.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-03-01 Jakub Jelinek <jakub@redhat.com>
PR debug/108967
* cfgexpand.c (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-02-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/108854
* cgraphclones.c (duplicate_thunk_for_node): If no parameter
changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
nodes and adjust their DECL_CONTEXT.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-02-24 Jakub Jelinek <jakub@redhat.com>
PR target/108881
* config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16hi,
__builtin_ia32_cvtne2ps2bf16_v16hi_mask,
__builtin_ia32_cvtne2ps2bf16_v16hi_maskz,
__builtin_ia32_cvtne2ps2bf16_v8hi,
__builtin_ia32_cvtne2ps2bf16_v8hi_mask,
__builtin_ia32_cvtne2ps2bf16_v8hi_maskz,
__builtin_ia32_cvtneps2bf16_v8sf_mask,
__builtin_ia32_cvtneps2bf16_v8sf_maskz,
__builtin_ia32_cvtneps2bf16_v4sf_mask,
__builtin_ia32_cvtneps2bf16_v4sf_maskz,
__builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
__builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
__builtin_ia32_dpbf16ps_v4sf_mask,
__builtin_ia32_dpbf16ps_v4sf_maskz): Require also
OPTION_MASK_ISA_AVX512VL.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-02-09 Jakub Jelinek <jakub@redhat.com>
PR target/100758
* common/config/i386/cpuinfo.h (cpu_indicator_init): Call
get_available_features for all CPUs with max_level >= 1, rather
than just Intel or AMD.
2023-05-02 Andrew Pinski <apinski@marvell.com>
Backported from master:
2023-02-09 Andrew Pinski <apinski@marvell.com>
PR tree-optimization/108688
* match.pd (bit_field_ref [bit_insert]): Avoid generating
BIT_FIELD_REFs of non-mode-precision integral operands.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-02-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/108692
* tree-vect-patterns.c (vect_widened_op_tree): If rhs_code is
widened_code which is different from code, don't call
vect_look_through_possible_promotion but instead just check op is
SSA_NAME with integral type for which vect_is_simple_use is true
and call set_op on this_unprom.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-02-02 Jakub Jelinek <jakub@redhat.com>
PR middle-end/108435
* tree-nested.c (convert_nonlocal_omp_clauses)
<case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
before calling declare_vars.
(convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
with the OMP_CLAUSE_LASTPRIVATE handling except for whether
seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-02-01 Jakub Jelinek <jakub@redhat.com>
PR debug/108573
* ree.c (combine_reaching_defs): Don't return false for paradoxical
subregs in DEBUG_INSNs.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-01-31 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/108596
* bb-reorder.c (fix_up_fall_thru_edges): Handle the case where cur_bb
ends with asm goto and has a crossing fallthrough edge to the same bb
that contains at least one of its labels by restoring EDGE_CROSSING
flag even on possible edge from cur_bb to new_bb successor.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-01-27 Jakub Jelinek <jakub@redhat.com>
PR other/108560
* doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
from size_t to int.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-01-25 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/108498
* gimple-ssa-store-merging.c (class store_operand_info):
End coment with full stop rather than comma.
(split_group): Likewise.
(merged_store_group::apply_stores): Clear string_concatenation if
start or end aren't on a byte boundary.
2023-05-02 Eric Biggers <ebiggers@google.com>
Backported from master:
2023-01-24 Eric Biggers <ebiggers@google.com>
PR bootstrap/90543
* optc-save-gen.awk: Fix copy-and-paste error.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-01-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/108459
* omp-expand.c (expand_omp_for_init_counts): Use fold_build1 rather
than fold_unary for NEGATE_EXPR.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-01-04 Jakub Jelinek <jakub@redhat.com>
PR middle-end/108237
* generic-match-head.c: Include tree-pass.h.
(canonicalize_math_p, optimize_vectors_before_lowering_p): Define
to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
resp. PROP_gimple_lvec property set.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2023-01-03 Jakub Jelinek <jakub@redhat.com>
PR middle-end/108264
* expr.c (store_expr): For stores into SUBREG_PROMOTED_* targets
from source which doesn't have scalar integral mode first convert
it to outer_mode.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-12-23 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/108068
* tree.h (real_maybe_zerop): Declare.
* tree.c (real_maybe_zerop): Define.
* tree-ssa-dom.c (record_edge_info): Use it instead of
real_zerop or TREE_CODE (op1) == SSA_NAME || real_zerop. Always set
can_infer_simple_equiv to false for decimal floating point types.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-12-22 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/108193
* cse.c (compute_const_anchors): Change n type to
unsigned HOST_WIDE_INT, adjust comparison against it to avoid
warnings. Formatting fix.
(insert_const_anchor): Use gen_int_mode instead of GEN_INT.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-12-16 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/106751
* loop-invariant.c (move_invariant_reg): If preheader bb ends
with a JUMP_INSN, split the preheader edge and emit invariants
into the new preheader basic block.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-12-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/108095
* tree-into-ssa.c (maybe_register_def): Insert debug stmt
on all non-EH edges from asm goto if they have a single
predecessor rather than asserting there is at most one such edge.
Test whether there are no PHI nodes next to the single predecessor
test.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-12-10 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/107997
* tree-ssa-loop-ivopts.c: Include cfganal.h.
(create_new_iv) <case IP_END>: If ip_end_pos bb is non-empty and ends
with a stmt which ends bb, instead of adding iv update after it split
the latch edge and insert iterator into the new latch bb.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-12-08 Jakub Jelinek <jakub@redhat.com>
PR debug/106719
* cfgbuild.c (find_bb_boundaries): If there are NOTEs in between
debug_insn (seen after flow_transfer_insn) and insn, move NOTEs
before all the DEBUG_INSNs and split after NOTEs. If there are
other insns like jump table data, clear debug_insn.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-11-28 Jakub Jelinek <jakub@redhat.com>
PR target/106875
* config/i386/i386.opt (x_ix86_abi): Remove TargetSave.
(ix86_abi): Replace it with TargetVariable.
* config/i386/i386-options.c (ix86_function_specific_save,
ix86_function_specific_restore): Don't save and restore x_ix86_abi.
2023-05-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-11-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/107317
* asan.c: Include diagnostic-core.h.
(asan_emit_stack_protection): Return NULL early if seen_error ().
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-02-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/108821
* tree-ssa-loop-im.c (sm_seq_valid_bb): We can also not
move volatile accesses.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-03-27 Richard Biener <rguenther@suse.de>
PR lto/109263
* lto-wrapper.c (run_gcc): Parse alternate debug options
as well, they always enable debug.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-04-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/109573
* tree-vect-loop.c (vectorizable_live_operation): Allow
unhandled SSA copy as well. Demote assert to checking only.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-04-25 Richard Biener <rguenther@suse.de>
PR rtl-optimization/109585
* tree-ssa-alias.c (aliasing_component_refs_p): Fix typo.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-04-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/109502
* tree-vect-stmts.c (vectorizable_assignment): Fix
check for conversion between mask and non-mask types.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-04-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/109473
* tree-vect-loop.c (vect_create_epilog_for_reduction):
Convert scalar result to the computation type before performing
the reduction adjustment.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-02-02 Richard Biener <rguenther@suse.de>
PR middle-end/108625
* genmatch.c (expr::gen_transform): Also disallow resimplification
from pushing to lseq with force_leaf.
(dt_simplify::gen_1): Likewise.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2022-12-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/108076
* tree-if-conv.c (if_convertible_loop_p_1): Reject blocks
with non-local or forced labels that we later remove
labels from.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2022-12-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/107451
* tree-vect-stmts.c (vectorizable_load): Avoid loading
SLP group members from group numbers in excess of the
vectorization factor.
2023-05-02 Richard Biener <rguenther@suse.de>
Backported from master:
2023-03-29 Richard Biener <rguenther@suse.de>
PR ipa/106124
* dwarf2out.c (lookup_type_die): Reset TREE_ASM_WRITTEN
so we can re-create the DIE for the type if required.
2023-04-24 Haochen Gui <guihaoc@gcc.gnu.org>
PR target/108812
* config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
(vsx_sign_extend_v16qi_<mode>): ... this.
(vsx_sign_extend_hi_<mode>): Rename to...
(vsx_sign_extend_v8hi_<mode>): ... this.
(vsx_sign_extend_si_v2di): Rename to...
(vsx_sign_extend_v4si_v2di): ... this.
(vsignextend_qi_<mode>): Remove.
(vsignextend_hi_<mode>): Remove.
(vsignextend_si_v2di): Remove.
(vsignextend_v2di_v1ti): Remove.
(*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
with gen_vsx_sign_extend_v16qi_v4si.
* config/rs6000/rs6000.md (split for DI constant generation):
Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
(split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
with gen_vsx_sign_extend_v16qi_si.
* config/rs6000/rs6000-builtin.def (__builtin_altivec_vsignextsb2d):
Set ICODE to vsx_sign_extend_v16qi_v2di.
(__builtin_altivec_vsignextsb2w): Set ICODE to
vsx_sign_extend_v16qi_v4si.
(__builtin_altivec_visgnextsh2d): Set ICODE to
vsx_sign_extend_v8hi_v2di.
(__builtin_altivec_vsignextsh2w): Set ICODE to
vsx_sign_extend_v8hi_v4si.
(__builtin_altivec_vsignextsw2d): Set ICDE to
vsx_sign_extend_si_v2di.
(__builtin_altivec_vsignext): Set ICODE to vsx_sign_extend_v2di_v1ti.
2023-04-18 Philipp Tomsich <philipp.tomsich@vrull.eu>
Backported from master:
2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
PR target/108589
* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
REG_P on SET_DEST.
2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
Backported from master:
2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
Di Zhao <di.zhao@amperecomputing.com>
* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
* config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp):
Check for the above tuning option when processing loads.
2023-04-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-05-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/105484
* gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
whether the CFG changed.
(gimple_expand_vec_exprs): When the CFG changed, clean it up.
2023-04-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-02-09 Richard Biener <rguenther@suse.de>
PR middle-end/104464
* gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
throwing check to after unproblematic replacement.
2023-04-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-02-09 Richard Biener <rguenther@suse.de>
PR middle-end/104450
* gimple-isel.cc: Pass cfun around.
(+gimple_expand_vec_cond_expr): Do not combine a throwing
comparison with the select.
2023-04-17 Richard Biener <rguenther@suse.de>
Backported from master:
2023-04-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/109491
* tree-ssa-sccvn.c (expressions_equal_p): Restore the
NULL operands test.
2023-04-17 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2023-04-04 Kewen Lin <linkw@linux.ibm.com>
PR target/108699
* config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
(rs6000_vprtyb<mode>2): ... this.
* config/rs6000/rs6000-builtin.def (VPRTYBD): Replace parityv2di2 with
rs6000_vprtybv2di2.
(VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
(VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
* config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
2023-04-17 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2023-04-04 Kewen Lin <linkw@linux.ibm.com>
PR target/108807
* config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): Fix gen
function for permutation control vector by considering big endianness.
2023-04-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
Backported from master:
2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
Jiangning Liu <jiangning.liu@amperecomputing.com>
Manolis Tsamis <manolis.tsamis@vrull.eu>
* config/aarch64/aarch64.c: Update vector costs for ampere1.
2023-04-11 Michael Meissner <meissner@linux.ibm.com>
PR target/109067
* config/rs6000/rs6000.c (create_complex_muldiv): Delete.
(init_float128_ieee): Delete code to switch complex multiply and divide
for long double. Backport from master, 3/20/2023.
(complex_multiply_builtin_code): New helper function.
(complex_divide_builtin_code): Likewise.
(rs6000_mangle_decl_assembler_name): Add support for mangling the name
of complex 128-bit multiply and divide built-in functions.
2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
PR target/109140
* config/sparc/sparc.c (sparc_expand_vcond): Call signed_condition
on operand #3 to get the final condition code. Use std::swap.
* config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
(fucmp<gcond:code>8<P:mode>_vis): Move around.
(fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
(vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
2023-03-09 Tobias Burnus <tobias@codesourcery.com>
Backported from master:
2023-03-01 Tobias Burnus <tobias@codesourcery.com>
PR middle-end/108546
* omp-low.c (lower_omp_target): Remove optional handling
on the receiver side, i.e. inside target (data), for
use_device_ptr.
2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
Backported from master:
2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
* config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
Add non-compact 32-bit multilibs.
2023-02-20 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2023-02-06 Alex Coplan <alex.coplan@arm.com>
PR target/104921
* config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
Use correct constraint for operand 3.
2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
PR target/90458
* config/i386/i386.c (ix86_compute_frame_layout): Disable the
effects of -fstack-clash-protection for TARGET_STACK_PROBE.
(ix86_expand_prologue): Likewise.
2023-02-13 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2023-01-18 Kewen Lin <linkw@linux.ibm.com>
PR target/108348
* config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): Add the
support for invalid uses of MMA opaque type in function arguments.
2023-02-13 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2023-01-16 Kewen Lin <linkw@linux.ibm.com>
PR target/108272
* config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): Add the
support for invalid uses in inline asm, factor out the checking and
erroring to lambda function check_and_error_invalid_use.
2023-02-07 Richard Biener <rguenther@suse.de>
Backported from master:
2022-09-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/106809
* tree-ssa-sccvn.c (dominaged_by_p_w_unex): Check we have
more than one successor before doing extra work.
2023-02-02 Martin Jambor <mjambor@suse.cz>
Backported from master:
2023-01-18 Martin Jambor <mjambor@suse.cz>
PR ipa/107944
* cgraph.c (cgraph_node::remove): Check whether nodes up the
lcone_of chain also do not need the body.
2023-01-26 Dimitar Dimitrov <dimitar@dinux.eu>
Backported from master:
2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
* config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
and HI input modes.
* config/pru/pru.md (clz): Fix generated code for QI and HI
input modes.
2023-01-25 Christophe Lyon <christophe.lyon@arm.com>
Backported from master:
2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
Richard Sandiford <richard.sandiford@arm.com>
* config/aarch64/aarch64.c (aarch64_function_arg_alignment): Fix
comment.
(aarch64_layout_arg): Factorize warning conditions.
(aarch64_function_arg_boundary): Fix typo.
* function.c (currently_expanding_function_start): New variable.
(expand_function_start): Handle
currently_expanding_function_start.
* function.h (currently_expanding_function_start): Declare.
2023-01-24 Richard Biener <rguenther@suse.de>
Backported from master:
2022-11-11 Richard Biener <rguenther@suse.de>
Nikita Voronov <nik_1357@mail.ru>
PR tree-optimization/107554
* tree-ssa-strlen.c (strlen_pass::count_nonzero_bytes):
Use unsigned HOST_WIDE_INT type for the strlen.
2023-01-24 Richard Biener <rguenther@suse.de>
Backported from master:
2022-10-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/107323
* tree-loop-distribution.c (pg_unmark_merged_alias_ddrs):
New function.
(loop_distribution::break_alias_scc_partitions): Revert
postorder save/restore from the PR94125 fix. Instead
make sure to not ignore edges from SCCs we are going to
merge.
2023-01-24 Richard Biener <rguenther@suse.de>
Backported from master:
2022-10-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/107254
* tree-vect-slp.c (vect_slp_analyze_node_operations_1):
For permutes also analyze live lanes.
(vect_schedule_slp_node): For permutes also code generate
live lane extracts.
2023-01-24 Richard Biener <rguenther@suse.de>
Backported from master:
2022-10-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/107212
* tree-vect-loop.c (vectorizable_reduction): Make sure to
set STMT_VINFO_REDUC_DEF for all live lanes in a SLP
reduction.
(vectorizable_live_operation): Do not pun to the SLP
node representative for reduction epilogue generation.
2023-01-24 Sergei Trofimovich <siarheit@google.com>
Backported from master:
2022-08-16 Sergei Trofimovich <siarheit@google.com>
PR driver/106624
* gcc.c (driver::detect_jobserver): Allocate storage xputenv()
argument using xstrdup().
2023-01-16 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2022-12-01 Alex Coplan <alex.coplan@arm.com>
* varasm.c (assemble_variable): Fix type confusion bug when
checking for ".vtable_map_vars" section.
2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/108199
* tree-sra.c (sra_modify_expr): Deal with reverse storage order
for bit-field references.
2023-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
Backported from master:
2022-12-30 Stam Markianos-Wright <stam.markianos-wright@arm.com>
PR target/107714
* config/arm/arm-protos.h (mve_struct_mem_operand): New protoype.
* config/arm/arm.c (mve_struct_mem_operand): New function.
* config/arm/constraints.md (Ug): New constraint.
* config/arm/mve.md (mve_vst4q<mode>): Change constraint.
(mve_vst2q<mode>): Likewise.
(mve_vld4q<mode>): Likewise.
(mve_vld2q<mode>): Likewise.
* config/arm/predicates.md (mve_struct_operand): New predicate.
2023-01-05 Kewen Lin <linkw@linux.ibm.com>
PR target/106736
* config/rs6000/mma.md (define_expand movoo): Call function
rs6000_opaque_type_invalid_use_p to check and emit error message for
the invalid use of opaque type.
(define_expand movxo): Likewise.
* config/rs6000/rs6000-protos.h
(rs6000_opaque_type_invalid_use_p): New function declaration.
(currently_expanding_gimple_stmt): New extern declaration.
* config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): New
function.
2022-12-22 Martin Liska <mliska@suse.cz>
Backported from master:
2022-08-10 Martin Liska <mliska@suse.cz>
* opts-jobserver.h: Add one member.
* opts-common.c (jobserver_info::jobserver_info): Parse FIFO
format of --jobserver-auth.
2022-12-22 Martin Liska <mliska@suse.cz>
Backported from master:
2022-08-10 Martin Liska <mliska@suse.cz>
* gcc.c (driver::detect_jobserver): Remove and move to
jobserver.h.
* lto-wrapper.c (jobserver_active_p): Likewise.
(run_gcc): Likewise.
* opts-jobserver.h: New file.
* opts-common.c (jobserver_info::jobserver_info): New function.
2022-12-15 Sebastian Pop <spop@amazon.com>
PR target/98776
* config/aarch64/aarch64-protos.h (aarch64_output_patchable_area):
Declared.
* config/aarch64/aarch64.c (aarch64_print_patchable_function_entry):
Emit an UNSPECV_PATCHABLE_AREA pseudo instruction.
(aarch64_output_patchable_area): New.
* config/aarch64/aarch64.md (UNSPECV_PATCHABLE_AREA): New.
(patchable_area): Define.
2022-12-12 Richard Biener <rguenther@suse.de>
Backported from master:
2022-10-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/107107
* tree-ssa-sccvn.c (visit_reference_op_store): Do not
affect value-numbering when doing the tail merging
MODIFY_EXPR lookup.
2022-12-01 liuhongt <hongtao.liu@intel.com>
PR target/107863
* config/i386/i386-expand.c (ix86_expand_vec_set_builtin):
Convert op1 to target mode whenever mode mismatch.
2022-11-30 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.md (addvdi3): Force operand 2 to a register.
Remove "addi,tsv,*" instruction from unamed pattern.
(subvdi3): Force operand 1 to a register.
Remove "subi,tsv" instruction from from unamed pattern.
2022-11-29 Max Filippov <jcmvbkbc@gmail.com>
Backported from master:
2022-11-08 Max Filippov <jcmvbkbc@gmail.com>
PR rtl-optimization/107482
* ira-color.c (assign_hard_reg): Only call
update_costs_from_copies when retry_p is false.
2022-11-25 Eric Botcazou <ebotcazou@adacore.com>
* range-op.cc (operator_bitwise_xor::op1_range): Fix thinko.
2022-11-25 Eric Botcazou <ebotcazou@adacore.com>
* tree-loop-distribution.c (loop_distribution::classify_builtin_ldst):
Bail out if source and destination do not have the same storage order.
2022-11-21 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-11-21 Jakub Jelinek <jakub@redhat.com>
PR target/107748
* config/i386/smmintrin.h (_mm_extract_ps): Uglify names of local
variables and union members.
2022-11-21 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-11-20 Jakub Jelinek <jakub@redhat.com>
PR target/107183
* reg-stack.c (next_flags_user): Add DEBUG_SEEN argument.
If >= 0 and a DEBUG_INSN would be otherwise returned, set
DEBUG_SEEN to 1 and ignore it.
(swap_rtx_condition): Add DEBUG_SEEN argument. In >= 0
mode only set DEBUG_SEEN to 1 if problematic DEBUG_ISNSs
were seen and revert all changes on success in that case.
Don't try to recog_memoized DEBUG_INSNs.
(compare_for_stack_reg): Adjust swap_rtx_condition caller.
If it returns true and debug_seen is 1, call swap_rtx_condition
again with debug_seen -1.
2022-11-19 Thomas Schwinge <thomas@codesourcery.com>
Backported from master:
2022-11-19 Thomas Schwinge <thomas@codesourcery.com>
* config/nvptx/nvptx.h (STARTFILE_SPEC): Fix 'crt0.o' for
'-mmainkernel'.
2022-11-16 Philipp Tomsich <philipp.tomsich@vrull.eu>
Backported from master:
2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere1a.
* config/aarch64/aarch64-cost-tables.h: Add ampere1a_extra_costs.
* config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
Define a new fusion pair for A+B+1/A-B-1 (i.e., add/subtract two
registers and then +1/-1).
* config/aarch64/aarch64-tune.md: Regenerate.
* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Implement
idiom-matcher for the new fusion pair.
* doc/invoke.texi: Add ampere1a.
2022-11-08 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-10-25 H.J. Lu <hjl.tools@gmail.com>
PR target/107304
* expr.c (get_inner_reference): Always use TYPE_MODE for vector
field with vector raw mode.
2022-11-05 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2022-11-05 Jonathan Wakely <jwakely@redhat.com>
PR c/41041
* doc/cppopts.texi: Document -fwide-exec-charset defaults
correctly.
2022-11-04 Eric Botcazou <ebotcazou@adacore.com>
* fold-const.c (operand_compare::operand_equal_p) <COMPONENT_REF>:
Do not take into account operand 2.
(operand_compare::hash_operand) <COMPONENT_REF>: Likewise.
2022-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-09-24 Jakub Jelinek <jakub@redhat.com>
PR c/107001
* omp-low.c (lower_omp_taskgroup): Don't add GOMP_RETURN statement
at the end.
* omp-expand.c (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't
update parent.
(omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
cur_region back after new_omp_region.
2022-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-08-24 Jakub Jelinek <jakub@redhat.com>
PR target/106721
* config/i386/sse.md
(avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
mask_opernad3 -> mask_operand3.
2022-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-07-27 Jakub Jelinek <jakub@redhat.com>
PR debug/106261
* cgraphunit.c (cgraph_node::assemble_thunks_and_aliases): Don't
output asm thunks for -dx.
2022-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-07-01 Jakub Jelinek <jakub@redhat.com>
PR middle-end/106144
* wide-int.cc (wi::shifted_mask): If end >= prec, return right after
emitting element for shift or if shift is 0 first element after start.
(wide_int_cc_tests): Add tests for equivalency of wi::mask and
wi::shifted_mask with 0 start.
2022-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-06-21 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/106032
* ifcvt.c (noce_try_sign_mask): Punt if !t_unconditional, and
t may_trap_or_fault_p, even if it is cheap.
2022-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-06-21 Jakub Jelinek <jakub@redhat.com>
PR middle-end/106030
* expr.c (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
temp to expand_operands if mode has been promoted.
2022-10-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Backported from master:
2022-10-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Yvan ROUX <yvan.roux@foss.st.com>
* ira.c: Resize array after reg number increased.
2022-10-26 Philipp Tomsich <philipp.tomsich@vrull.eu>
Backported from master:
2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
* config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
Ampere-1 core entry.
2022-10-26 Philipp Tomsich <philipp.tomsich@vrull.eu>
Backported from master:
2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu>
* config/aarch64/driver-aarch64.c (readline): Fix off-by-one.
2022-10-25 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Backported from master:
2022-10-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
PR target/106355
* config/s390/s390.c (s390_call_saved_register_used): For a
parameter with BLKmode fix determining number of consecutive
registers.
2022-10-25 Martin Liska <mliska@suse.cz>
Backported from master:
2022-10-25 Martin Liska <mliska@suse.cz>
PR target/107364
* common/config/i386/i386-cpuinfo.h (enum processor_vendor):
Fix pedantic warning.
2022-10-25 Martin Liska <mliska@suse.cz>
Backported from master:
2022-10-24 Martin Liska <mliska@suse.cz>
PR target/107364
* common/config/i386/i386-cpuinfo.h (enum processor_vendor):
Reorder enum values as BUILTIN_VENDOR_MAX should not point
in the middle of the valid enum values.
2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
* config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
merging alternative.
(*aarch64_brk<brk_op>_ptest): Likewise.
2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
* config/aarch64/iterators.md (SVE_BRKP): New iterator.
* config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
(*aarch64_brkn_ptest): Likewise.
(*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
(*aarch64_brk<brk_op>_ptest): Likewise.
2022-10-20 Richard Sandiford <richard.sandiford@arm.com>
* config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_3): Add
AARCH64_FL_RCPC.
(AARCH64_ISA_RCPC): New macro.
* config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
(neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
__ARM_FEATURE_RCPC when appropriate.
2022-10-19 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2022-09-26 Kewen Lin <linkw@linux.ibm.com>
PR target/96072
* config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): Update the
condition for adding REG_CFA_DEF_CFA reg note with
frame_pointer_needed_indeed.
2022-10-17 Pat Haugen <pthaugen@linux.ibm.com>
PR target/99685
* config/rs6000/rs6000-call.c (rs6000_function_arg_advance_1): Bump
register count when not splitting IEEE 128-bit Complex.
2022-10-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-09-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/106934
* tree-ssa.c (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
of bitfields.
(maybe_rewrite_mem_ref_base): Likewise.
2022-10-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-09-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/106892
* tree-predcom.c (ref_at_iteration): Do not associate the
constant part of the offset into the MEM_REF offset
operand, across a non-zero offset.
2022-10-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-07-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/106189
* gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
Divide using offset_ints.
2022-10-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
Backported from master:
2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
(@aarch64_rbit<mode>): ... to this and change it in...
(ffs<mode>2,ctz<mode>2): ... here.
(@aarch64_rev16<mode>): New.
* config/aarch64/aarch64-builtins.c: (aarch64_builtins):
Define the following enum AARCH64_REV16, AARCH64_REV16L,
AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
(aarch64_init_data_intrinsics): New.
(aarch64_general_init_builtins): Add call to
aarch64_init_data_intrinsics.
(aarch64_expand_builtin_data_intrinsic): New.
(aarch64_general_expand_builtin): Add call to
aarch64_expand_builtin_data_intrinsic.
* config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
__clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
__rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
2022-10-14 Eric Botcazou <ebotcazou@adacore.com>
PR target/107248
* config/sparc/sparc.c (sparc_expand_prologue): Emit a frame
blockage for leaf functions.
(sparc_flat_expand_prologue): Emit frame instead of full blockage.
(sparc_expand_epilogue): Emit a frame blockage for leaf functions.
(sparc_flat_expand_epilogue): Emit frame instead of full blockage.
2022-10-11 Richard Biener <rguenther@suse.de>
Backported from master:
2022-08-10 Richard Biener <rguenther@suse.de>
PR lto/106540
PR lto/106334
* lto-streamer-in.c (lto_read_tree_1): Use lto_input_tree_1
to input DECL_INITIAL, avoiding to commit drefs.
2022-10-11 Richard Biener <rguenther@suse.de>
Backported from master:
2022-08-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/106513
* gimple-ssa-store-merging.c (do_shift_rotate): Use uint64_t
for head_marker.
2022-10-11 Richard Biener <rguenther@suse.de>
Backported from master:
2022-07-19 Richard Biener <rguenther@suse.de>
PR middle-end/106331
* builtins.c (get_memory_rtx): Compute alignment from
the original address and set MEM_OFFSET to unknown when
we create a MEM_EXPR from the base object of the address.
2022-10-11 Richard Biener <rguenther@suse.de>
Backported from master:
2022-07-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/106131
* tree-ssa-sccvn.c (vn_reference_lookup_3): Force alias-set
zero when offsetting the read looking through an aggregate
copy.
2022-10-11 Richard Biener <rguenther@suse.de>
Backported from master:
2022-06-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/106112
* tree-ssa-sccvn.c (valueized_wider_op): Properly extend
a constant operand according to its type.
2022-10-11 Richard Biener <rguenther@suse.de>
Backported from master:
2022-06-20 Richard Biener <rguenther@suse.de>
PR middle-end/106027
* fold-const.c (fold_to_nonsharp_ineq_using_bound): Use the
type of the prevailing comparison for the new comparison type.
(fold_binary_loc): Use proper types for the A < X && A + 1 > Y
to A < X && A >= Y folding.
2022-10-03 Sergei Trofimovich <siarheit@google.com>
Backported from master:
2022-10-03 Sergei Trofimovich <siarheit@google.com>
PR target/107064
* config/i386/t-i386: Add build-time dependencies against
i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
i386-features.o.
2022-09-29 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-09-28 H.J. Lu <hjl.tools@gmail.com>
PR target/107061
* config/i386/predicates.md (encodekey128_operation): Check
XMM4-XMM6 as clobbered.
(encodekey256_operation): Likewise.
* config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
(encodekey256u32): Likewise.
2022-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
* config/aarch64/aarch64-tune.md: Regenerate.
* doc/invoke.texi (AArch64 Options): Document neoverse-v2.
2022-09-21 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
PR target/106491
* config/aarch64/aarch64-sve-builtins.cc (scalar_types)
(acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
markup to (new) extern declarations instead of to the main
definition.
2022-09-14 Tom de Vries <tdevries@suse.de>
Backported from master:
2022-02-01 Tom de Vries <tdevries@suse.de>
* config/nvptx/nvptx.c (nvptx_single): Use nvptx_uniform_warp_check.
* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
UNSPECV_UNIFORM_WARP_CHECK.
(define_insn "nvptx_uniform_warp_check"): New define_insn.
2022-09-14 Tom de Vries <tdevries@suse.de>
Backported from master:
2022-02-01 Tom de Vries <tdevries@suse.de>
* config/nvptx/nvptx.c (nvptx_single): Use nvptx_warpsync.
* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
UNSPECV_WARPSYNC.
(define_insn "nvptx_warpsync"): New define_insn.
2022-09-14 Thomas Schwinge <thomas@codesourcery.com>
* config/nvptx/nvptx.h (TARGET_PTX_6_0): '#define' to 'false'.
2022-09-12 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2022-09-01 Peter Bergner <bergner@linux.ibm.com>
PR target/101322
* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin):
Enforce the use of a valid MMA pointer type.
2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
* config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
-mvrsave is present.
* config/rs6000/t-rtems: Add -mvrsave multilib variants for
-mcpu=e6500.
2022-09-02 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2022-08-03 Richard Earnshaw <rearnsha@arm.com>
PR rtl-optimization/106187
* alias.h (mems_same_for_tbaa_p): Declare.
* alias.c (mems_same_for_tbaa_p): New function.
* dse.c (record_store): Use it instead of open-coding
alias check.
* cselib.h (cselib_redundant_set_p): Declare.
* cselib.c: Include alias.h
(cselib_redundant_set_p): New function.
* cfgcleanup.c: (mark_effect): Use cselib_redundant_set_p instead
of rtx_equal_for_cselib_p.
* postreload.c (reload_cse_simplify): Use cselib_redundant_set_p.
(reload_cse_noop_set_p): Delete.
2022-09-02 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2022-05-13 Richard Earnshaw <rearnsha@arm.com>
PR target/105463
* config/arm/mve.md (*movmisalign<mode>_mve_store): Use
mve_memory_operand.
(*movmisalign<mode>_mve_load): Likewise.
* config/arm/vec-common.md (movmisalign<mode>): Convert to generator
form...
(@movmisalign<mode>): ... thus. Use generic predicates and then
rework operands if they are not valid. For MVE rework to a
narrower element size if the alignment is not high enough.
2022-08-30 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2022-08-28 Peter Bergner <bergner@linux.ibm.com>
PR target/106017
* config/rs6000/rs6000.c (rs6000_invalid_conversion): Remove handling
of MMA pointer conversions.
2022-08-24 Kewen.Lin <linkw@gcc.gnu.org>
Backported from master:
2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
PR target/103353
* config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
check to preparation statements and add handlings for !TARGET_MMA.
(define_expand movxo): Likewise.
2022-08-17 Tobias Burnus <tobias@codesourcery.com>
Backported from master:
2022-08-09 Tobias Burnus <tobias@codesourcery.com>
PR middle-end/106492
* omp-low.c (lower_rec_input_clauses): Add missing folding
to data type of linear-clause list item.
2022-08-16 Segher Boessenkool <segher@kernel.crashing.org>
Backported from master:
2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
PR target/103197
PR target/102146
* config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
the "Z" alternatives in {l,st}{f,xs}iwzx.
(zero_extendhi<mode>2 for EXTHI): Ditto.
(zero_extendsi<mode>2 for EXTSI): Ditto.
(*movsi_internal1): Ditto.
(*mov<mode>_internal1 for QHI): Ditto.
(movsd_hardfloat): Ditto.
2022-08-12 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2022-07-26 Peter Bergner <bergner@linux.ibm.com>
PR c/106016
* expr.c (count_type_elements): Handle OPAQUE_TYPE.
2022-08-08 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove code
setting -mblock-ops-vector-pair. Patch back ported from trunk, August
3rd, 2022.
2022-08-02 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2022-07-25 Peter Bergner <bergner@linux.ibm.com>
Kewen Lin <linkw@linux.ibm.com>
PR testsuite/106345
* config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
to filter out all -mtune options.
2022-08-02 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2022-07-26 Kewen Lin <linkw@linux.ibm.com>
PR target/106091
* config/rs6000/rs6000-p8swap.c (replace_swapped_aligned_store): Copy
REG_EH_REGION when replacing one store insn having it.
(replace_swapped_aligned_load): Likewise.
2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
Backported from master:
2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
* config/riscv/riscv.md (stack_protect_set_<mode>): Remove
duplicate backslashes.
2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
Backported from master:
2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
* config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
2022-07-22 Richard Biener <rguenther@suse.de>
Backported from master:
2022-05-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/105618
* tree-ssa-sink.c (statement_sink_location): For virtual
PHI uses ignore those defining the used virtual operand.
2022-07-22 Richard Biener <rguenther@suse.de>
Backported from master:
2021-11-24 Richard Biener <rguenther@suse.de>
PR middle-end/103193
* match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0)
with NaNs and -ftrapping-math.
2022-07-22 Richard Biener <rguenther@suse.de>
Backported from master:
2022-05-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/103116
* tree-vect-stmts.c (get_group_load_store_type): Handle the
case we need peeling for gaps even though GROUP_GAP is zero.
2022-07-21 Surya Kumari Jangala <jskumari@linux.vnet.ibm.com>
Backported from master:
2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
PR rtl-optimization/105041
* regrename.c (check_new_reg_p): Use nregs value from du chain.
2022-07-14 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.c (rs6000_option_override_internal): Do
not generate block copies with vector pair instructions if we are
tuning for power10. Back port from master branch.
2022-07-12 Martin Jambor <mjambor@suse.cz>
Backported from master:
2022-07-04 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/105860
* tree-sra.c (build_reconstructed_reference): Start expr
traversal only just below the outermost union.
2022-07-04 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
PR middle-end/104869
* rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
(clobber_group::next_clobber): Likewise.
(def_lookup::prev_def): Rename to...
(def_lookup::last_def_of_prev_group): ...this.
(def_lookup::next_def): Rename to...
(def_lookup::first_def_of_next_group): ...this.
(def_lookup::matching_or_prev_def): Rename to...
(def_lookup::matching_set_or_last_def_of_prev_group): ...this.
(def_lookup::matching_or_next_def): Rename to...
(def_lookup::matching_set_or_first_def_of_next_group): ...this.
(def_lookup::prev_def): New function, taking the lookup insn as
argument.
(def_lookup::next_def): Likewise.
* rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
(def_lookup::last_def_of_prev_group): ...this.
(def_lookup::next_def): Rename to...
(def_lookup::first_def_of_next_group): ...this.
(def_lookup::matching_or_prev_def): Rename to...
(def_lookup::matching_set_or_last_def_of_prev_group): ...this.
(def_lookup::matching_or_next_def): Rename to...
(def_lookup::matching_set_or_first_def_of_next_group): ...this.
* rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
above renaming.
* rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
(clobber_group::next_clobber): Likewise.
(def_lookup::prev_def): Likewise.
(def_lookup::next_def): Likewise.
(function_info::make_use_available): Pass the lookup insn to
def_lookup::prev_def and def_lookup::next_def.
2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
Backported from master:
2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
* config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
condition to avoid overflow.
2022-06-23 Martin Liska <mliska@suse.cz>
Backported from master:
2022-06-23 Martin Liska <mliska@suse.cz>
PR ipa/105600
* ipa-icf.c (sem_item_optimizer::filter_removed_items):
Skip variables with body_removed.
2022-06-20 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
PR target/105209
* config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
* config/alpha/alpha.c (alpha_store_data_bypass_p): New function.
(alpha_store_data_bypass_p_1): Ditto.
* config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
of generic store_data_bypass_p.
(ev4_ist_c): Remove insn reservation.
2022-06-20 Segher Boessenkool <segher@kernel.crashing.org>
Backported from master:
2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
PR target/104829
* config/rs6000/rs6000.c (rs6000_machine_from_flags): Don't output
"ppc" and "ppc64" based on rs6000_cpu.
2022-06-20 Segher Boessenkool <segher@kernel.crashing.org>
Backported from master:
2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.c (rs6000_machine_from_flags): Restructure a
bit. Handle most older CPUs.
2022-06-20 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
PR target/105970
* config/i386/i386.c (ix86_function_arg): Assert that
the mode of pointer argumet is equal to ptr_mode, not Pmode.
2022-06-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-06-18 Jakub Jelinek <jakub@redhat.com>
PR middle-end/105998
* varasm.c (narrowing_initializer_constant_valid_p): Check
SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
2022-06-20 Jan Hubicka <jh@suse.cz>
Backported from master:
2022-06-14 Jan Hubicka <hubicka@ucw.cz>
PR ipa/105739
* ipa-prop.c (ipa_load_from_parm_agg): Punt on volatile loads.
2022-06-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-05-27 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/105729
* fold-const.c (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
to (X &) z + w if -fsanitize=null during GENERIC folding.
2022-06-16 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2022-06-15 Richard Earnshaw <rearnsha@arm.com>
PR target/105981
* config/arm/arm.c (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
to first_reg and second_reg respectively. Initialize them correctly
when generating big-endian code.
2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
Backported from master:
2021-12-01 Iain Buclaw <ibuclaw@gdcproject.org>
* common.opt (static-libphobos): Add option.
* config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a
when linking statically.
* gcc.c (driver_handle_option): Set -static-libphobos as always valid.
2022-06-15 Richard Biener <rguenther@suse.de>
Backported from master:
2022-05-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/105726
* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
Constrain array-of-flexarray case more.
2022-06-14 Vladimir N. Makarov <vmakarov@redhat.com>
PR rtl-optimization/104637
* lra-assigns.c (lra_split_hard_reg_for): Split hard regs as many
as possible on one subpass.
2022-06-14 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-06-13 H.J. Lu <hjl.tools@gmail.com>
* common/config/i386/cpuinfo.h (get_available_features): Require
AVX for F16C and VAES.
2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
Backported from master:
2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
PR target/105879
* config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
'gen_highpart' bitwise semantics and fix order of highpart and
lowpart depending on target endianness.
2022-06-08 liuhongt <hongtao.liu@intel.com>
PR target/105854
* config/i386/sse.md (ssse3_palignrdi): Change alternative 2
from Yv to Yw.
2022-06-02 Richard Biener <rguenther@suse.de>
Backported from master:
2022-05-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/105437
* tree-vect-slp.c (vect_schedule_slp_node): Handle the
case where last_stmt alters control flow.
2022-05-26 Simon Cook <simon.cook@embecosm.com>
Backported from master:
2022-05-25 Simon Cook <simon.cook@embecosm.com>
* config/riscv/arch-canonicalize: Only add mafd extension if
base was rv32/rv64g.
2022-05-26 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2022-05-09 Kito Cheng <kito.cheng@sifive.com>
* config/riscv/arch-canonicalize: Handle g correctly.
2022-05-24 Qing Zhao <qing.zhao@oracle.com>
Backported from master:
2022-05-09 Qing Zhao <qing.zhao@oracle.com>
PR target/101891
* config/i386/i386.c (zero_call_used_regno_mode): use V2SImode
as a generic MMX mode instead of V4HImode.
(zero_all_mm_registers): Use SET to zero instead of MOV for
zeroing scratch registers.
(ix86_zero_call_used_regs): Likewise.
2022-05-23 Paul A. Clarke <pc@us.ibm.com>
PR target/104257
* config/rs6000/bmi2intrin.h: Uglify local variables.
* config/rs6000/emmintrin.h: Likewise.
* config/rs6000/mm_malloc.h: Likewise.
* config/rs6000/mmintrin.h: Likewise.
* config/rs6000/pmmintrin.h: Likewise.
* config/rs6000/smmintrin.h: Likewise.
* config/rs6000/tmmintrin.h: Likewise.
* config/rs6000/xmmintrin.h: Likewise.
2022-05-19 Michael Meissner <meissner@linux.ibm.com>
Backported from master:
2022-05-06 Michael Meissner <meissner@linux.ibm.com>
Segher Boessenkool <segher@kernel.crashing.org>
PR target/102059
* config/rs6000/rs6000.c (rs6000_can_inline_p): Ignore -mpower8-fusion
and -mpower10-fusion options for inlining purposes.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-05-11 Richard Biener <rguenther@suse.de>
PR rtl-optimization/105559
* cfgrtl.c (delete_insn_and_edges): Only perform search to BB_END
for non-debug insns.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/105431
* tree-ssa-math-opts.c (powi_as_mults_1): Make n unsigned.
(powi_as_mults): Use absu_hwi.
(gimple_expand_builtin_powi): Remove now pointless n != -n
check.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/105368
* tree-ssa-math-opts.c (powi_cost): Use absu_hwi.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/105312
* gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
VCOND and VCONDU for EQ and NE.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/105263
* tree-ssa-reassoc.c (try_special_add_to_ops): Do not consume
negates in multiplication chains with DFP.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/105173
* tree-ssa-reassoc.c (find_insert_point): Get extra
insert_before output argument and compute it.
(insert_stmt_before_use): Adjust.
(rewrite_expr_tree): Likewise.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/105163
* tree-ssa-reassoc.c (repropagate_negates): Avoid propagating
negated abnormals.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/105148
* tree-ssa-loop-ivopts.c (idx_record_use): Walk raw operands
2 and 3 of ARRAY_REFs.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/105250
* fold-const.c (fold_convertible_p): Revert
r12-7979-geaaf77dd85c333, instead check for size equality
of the vector types involved.
2022-05-19 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-04 Richard Biener <rguenther@suse.de>
PR middle-end/105140
* fold-const.c (fold_convertible_p): Allow a TYPE_P arg.
2022-05-19 Martin Jambor <mjambor@suse.cz>
Backported from master:
2022-04-29 Martin Jambor <mjambor@suse.cz>
PR ipa/100413
* cgraph.c (cgraph_node::remove): Release body of the node this
is clone_of if appropriate.
2022-05-16 Sebastian Pop <spop@amazon.com>
PR target/105162
* config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
of str array.
* config/aarch64/aarch64.c (aarch64_atomic_ool_func): Call
memmodel_from_int and handle MEMMODEL_SYNC_*.
(DEF0): Add __aarch64_*_sync functions.
2022-05-16 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-11-10 Jan Hubicka <jh@suse.cz>
* ipa-modref-tree.h (modref_tree::remap_params): Fix off-by-one error.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-05-10 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/105528
* gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
PR target/105292
* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Return
true only for 8-byte vector modes.
2022-05-06 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-28 Jakub Jelinek <jakub@redhat.com>
PR target/105331
* config/i386/i386.c (ix86_gimplify_va_arg): Mark va_arg_tmp
temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
of it.
2022-05-06 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-27 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/105396
* asan.c (asan_redzone_buffer::emit_redzone_byte): Handle the case
where offset is bigger than off but smaller than m_prev_offset + 32
bits by pushing one or more 0 bytes. Sink the
m_shadow_bytes.safe_push (value); flush_if_full (); statements from
all cases to the end of the function.
2022-05-06 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-22 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/105333
* rtlanal.c (replace_rtx): Use simplify_subreg or
simplify_unary_operation if CONST_SCALAR_INT_P rather than just
CONST_INT_P.
2022-04-27 Hongyu Wang <hongyu.wang@intel.com>
Backported from master:
2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
PR target/105339
* config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
Add parentheses for parameters and djust format.
(_mm512_mask_scalef_round_pd): Ditto.
(_mm512_maskz_scalef_round_pd): Ditto.
(_mm512_scalef_round_ps): Ditto.
(_mm512_mask_scalef_round_ps): Ditto.
(_mm512_maskz_scalef_round_ps): Ditto.
(_mm_scalef_round_sd): Use _mm_undefined_pd.
(_mm_scalef_round_ss): Use _mm_undefined_ps.
(_mm_mask_scalef_round_sd): New macro.
(_mm_mask_scalef_round_ss): Ditto.
(_mm_maskz_scalef_round_sd): Ditto.
(_mm_maskz_scalef_round_ss): Ditto.
2022-04-21 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-19 Jakub Jelinek <jakub@redhat.com>
PR target/105257
* config/sparc/sparc.c (epilogue_renumber): If ORIGINAL_REGNO,
use gen_raw_REG instead of gen_rtx_REG and copy over also
ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
2022-04-21 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-21 Jakub Jelinek <jakub@redhat.com>
PR debug/105203
* emit-rtl.c (emit_copy_of_insn_after): Don't call mark_jump_label
on DEBUG_INSNs.
2022-04-21 Sergei Trofimovich <siarheit@google.com>
Backported from master:
2022-04-19 Sergei Trofimovich <siarheit@google.com>
PR gcov-profile/105282
* value-prof.c (stream_out_histogram_value): Allow negative counts
on HIST_TYPE_INDIR_CALL.
2022-04-21 Release Manager
* GCC 11.3.0 released.
2022-04-19 Hans-Peter Nilsson <hp@axis.com>
Backported from master:
2022-04-18 Hans-Peter Nilsson <hp@axis.com>
* doc/install.texi <CRIS>: Remove references to removed websites and
adjust for cris-*-elf being the only remaining toolchain.
2022-04-19 Hans-Peter Nilsson <hp@axis.com>
Backported from master:
2022-04-18 Hans-Peter Nilsson <hp@axis.com>
* doc/invoke.texi <CRIS>: Remove references to options for removed
subtarget cris-axis-linux-gnu and tweak wording accordingly.
2022-04-14 Andreas Krebbel <krebbel@linux.ibm.com>
Backported from master:
2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
* common/config/s390/s390-common.c: Rename PF_ARCH14 to PF_Z16.
* config.gcc: Add z16 as march/mtune switch.
* config/s390/driver-native.c (s390_host_detect_local_cpu):
Recognize z16 with -march=native.
* config/s390/s390-opts.h (enum processor_type): Rename
PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
* config/s390/s390.c (PROCESSOR_ARCH14): Rename to ...
(PROCESSOR_3931_Z16): ... throughout the file.
(s390_processor processor_table): Add z16 as cpu string.
* config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
PF_Z16.
(TARGET_CPU_ARCH14): Rename to ...
(TARGET_CPU_Z16): ... this.
(TARGET_CPU_ARCH14_P): Rename to ...
(TARGET_CPU_Z16_P): ... this.
(TARGET_ARCH14): Rename to ...
(TARGET_Z16): ... this.
(TARGET_ARCH14_P): Rename to ...
(TARGET_Z16_P): ... this.
* config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
check TARGET_Z16 instead of TARGET_ARCH14.
* config/s390/s390.opt: Add z16 to processor_type.
* doc/invoke.texi: Document z16 and arch14.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Vladimir Makarov <vmakarov@redhat.com>
PR target/104117
* config/rs6000/rs6000.c (darwin_rs6000_legitimate_lo_sum_const_p):
Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
emitting PIC code.
(legitimate_lo_sum_address_p): Likewise.
(rs6000_legitimize_address): Do not apply the TLS processing to
Darwin.
* config/rs6000/darwin.md (@machopic_high_<mode>): New.
(@machopic_low_<mode>): New.
* config/rs6000/predicates.md (macho_pic_address): New.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
PR target/80556
* config/darwin-driver.c (darwin_driver_init): Handle exported
symbols and symbol lists (suppress automatic export of the TLS
symbols).
* config/darwin.c (darwin_rename_builtins): Remove workaround.
* config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
(REAL_LIBGCC_SPEC): Handle revised library uses.
* config/darwin.opt (nodefaultexport): New.
* config/i386/darwin.h (PR80556_WORKAROUND): Remove.
* config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise.
* config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-driver.c (darwin_driver_init): Revise comments, handle
filelist and framework options in specs instead of code. Exit from the
option handling early if the command line is definitely enpty.
* config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link
specs that are really driver ones. Remove setting for the default content
of weak_reference_mismatches
(DARWIN_CC1_SPEC): Likewise.
(CPP_SPEC): Likewise.
(SYSROOT_SPEC): Append space.
(LINK_SYSROOT_SPEC): Remove most driver link specs.
(STANDARD_STARTFILE_PREFIX_2): Update link-related specs.
(STARTFILE_SPEC): Likewise.
(ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap.
(ASM_SPEC): Update driver-related specs.
(ASM_FINAL_SPEC): Likewise.
(LINK_COMMAND_SPEC_A): Update 'r' handling to skip gomp and itm when r
or nodefaultlibs is given.
(DSYMUTIL_SPEC): Do not call dsymutil for '-r' link lines.
Update ordering of exclusions, remove duplicate 'v' addition
(collect2 will add this from the main command line).
* config/darwin.opt: Remove now unused option aliases.
* config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt.
(ASM_SPEC): Update driver-related specs.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-11-15 Iain Sandoe <iain@sandoe.co.uk>
PR fortran/102992
* config/darwin.h (TARGET_DTORS_FROM_CXA_ATEXIT): New.
* doc/tm.texi: Regenerated.
* doc/tm.texi.in: Add TARGET_DTORS_FROM_CXA_ATEXIT hook.
* ipa.c (cgraph_build_static_cdtor_1): Return the built
function decl.
(build_cxa_atexit_decl): New.
(build_dso_handle_decl): New.
(build_cxa_dtor_registrations): New.
(compare_cdtor_tu_order): New.
(build_cxa_atexit_fns): New.
(ipa_cdtor_merge): If dtors_from_cxa_atexit is set,
process the DTORs/CTORs accordingly.
(pass_ipa_cdtor_merge::gate): Also run if
dtors_from_cxa_atexit is set.
* target.def (dtors_from_cxa_atexit): New hook.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-11-05 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add LTRAMP
to the list of symbol prefixes that must be made linker-
visible.
2022-04-14 Saagar Jha <saagar@saagarjha.com>
* config.gcc: Adjust for Darwin21.
* config/darwin-c.c (macosx_version_as_macro): Likewise.
* config/darwin-driver.c (validate_macosx_version_min):
Likewise.
(darwin_find_version_from_kernel): Likewise.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-10-13 Iain Sandoe <iain@sandoe.co.uk>
* collect2.c (is_lto_object_file): Release simple-object
resources, close files.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-09-28 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/darwin.h (FIXED_R13): Add for PPC64.
(FIRST_SAVED_GP_REGNO): Save from R13 even when it is one
of the fixed regs.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-09-19 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10
unwinder shim as a convenience library.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-09-14 Iain Sandoe <iain@sandoe.co.uk>
* Makefile.in: Remove variables related to applying no-PIE
to the exes on $build.
* configure: Regenerate.
* configure.ac: Remove configuration related to applying
no-PIE to the exes on $build.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-08-27 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.c (finalize_ctors): Add a section-start linker-
visible symbol.
(finalize_dtors): Likewise.
* config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-08-17 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.c (darwin_file_end): Reset and reclaim the
section names table at the end of compile.
2022-04-14 Iain Sandoe <iain@sandoe.co.uk>
* configure.ac: Handle --with-dsymutil in the same way as we
do for the assembler and linker. (DEFAULT_DSYMUTIL): New.
Extract the type and version for the dsymutil configured or
found by the default searches.
* config.in: Regenerated.
* configure: Regenerated.
* collect2.c (do_dsymutil): Handle locating dsymutil in the
same way as for the assembler and linker.
* config/darwin.h (DSYMUTIL): Delete.
* gcc.c: Report a configured dsymutil correctly.
* exec-tool.in: Allow for dsymutil.
* doc/install.texi: Document --with-dsymutil.
2022-04-13 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-12 Jakub Jelinek <jakub@redhat.com>
PR target/105214
* config/i386/i386-expand.c (ix86_emit_i387_log1p): Call
do_pending_stack_adjust.
2022-04-13 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-12 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/105211
* builtins.c (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
fails for TREE_TYPE (arg), retry it with
TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
fails, emit call normally.
2022-04-13 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/105189
* fold-const.c (make_range_step): Fix up handling of
(unsigned) x +[low, -] ranges for signed x if low fits into
typeof (x).
2022-04-13 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-06 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/104985
* combine.c (struct undo): Add where.regno member.
(do_SUBST_MODE): Rename to ...
(subst_mode): ... this. Change first argument from rtx * into int,
operate on regno_reg_rtx[regno] and save regno into where.regno.
(SUBST_MODE): Remove.
(try_combine): Use subst_mode instead of SUBST_MODE, change first
argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
(undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
instead of *undo->where.r.
(simplify_set): Use subst_mode instead of SUBST_MODE, change first
argument from regno_reg_rtx[whatever] to whatever.
2022-04-12 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2022-04-11 Peter Bergner <bergner@linux.ibm.com>
PR target/104894
* config/rs6000/rs6000.c (rs6000_sibcall_aix): Handle pcrel sibcalls
to longcall functions.
2022-04-12 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/105235
* tree-ssa-math-opts.c (execute_cse_conv_1): Clean EH and
return whether the CFG changed.
(execute_cse_sincos_1): Adjust.
2022-04-12 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/105232
* tree.c (component_ref_size): Bail out for too large
or non-constant sizes.
2022-04-12 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/105226
* tree-vect-loop-manip.c (vect_loop_versioning): Verify
we can split the exit of an outer loop we choose to version.
2022-04-11 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2022-04-11 Kito Cheng <kito.cheng@sifive.com>
PR target/104853
* config.gcc: Pass -misa-spec to arch-canonicalize and
multilib-generator.
* config/riscv/arch-canonicalize: Adding -misa-spec option.
(SUPPORTED_ISA_SPEC): New.
(arch_canonicalize): New argument `isa_spec`.
Handle multiple ISA spec versions.
* config/riscv/multilib-generator: Adding -misa-spec option.
2022-04-11 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2021-08-16 Kito Cheng <kito.cheng@sifive.com>
* config/riscv/multilib-generator: Support code model option for
multi-lib.
* doc/install.texi: Add document of new option for
--with-multilib-generator.
2022-04-08 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/105198
* tree-predcom.c (find_looparound_phi): Check whether
the found memory location of the entry value is clobbered
inbetween the value we want to use and loop entry.
2022-04-07 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-11-26 Jan Hubicka <jh@suse.cz>
PR ipa/103432
* ipa-modref.c (update_escape_summary_1): Fix handling of min_flags.
2022-04-07 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-08-11 Jan Hubicka <hubicka@ucw.cz>
Alexandre Oliva <oliva@adacore.com>
* ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags
dumping.
(modref_lattice::merge_deref): Fix handling of indirect scape points.
(update_escape_summary_1): Likewise.
(update_escape_summary): Likewise.
(ipa_merge_modref_summary_after_inlining): Likewise.
2022-04-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/99121
* gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
Bail out for non-constant type size.
2022-04-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
Backported from master:
2021-04-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR target/100106
* simplify-rtx.c (simplify_context::simplify_subreg): Check the
memory alignment for the outer mode.
2022-04-07 Richard Biener <rguenther@suse.de>
PR middle-end/104497
* gimplify.c (gimplify_compound_lval): Make sure the
base is a non-register if needed and possible.
2022-04-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/105053
* tree-vect-loop.c (vect_create_epilog_for_reduction): Pick
the correct live-out stmt for a reduction chain.
2022-04-07 Andrew Pinski <apinski@marvell.com>
Backported from master:
2022-02-10 Andrew Pinski <apinski@marvell.com>
PR target/104474
* config/aarch64/aarch64.c
(aarch64_sve_expand_vector_init_handle_trailing_constants):
Use CONST0_RTX instead of const0_rtx for the non-constant elements.
2022-04-07 Richard Biener <rguenther@suse.de>
Backported from master:
2022-03-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/105070
* tree-switch-conversion.h
(bit_test_cluster::hoist_edge_and_branch_if_true): Add location
argument.
* tree-switch-conversion.c
(bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
cond with location.
(bit_test_cluster::emit): Annotate all generated expressions
with location.
2022-04-07 Richard Biener <rguenther@suse.de>
Backported from master:
2022-03-23 Richard Biener <rguenther@suse.de>
PR rtl-optimization/105028
* ira-color.c (form_threads_from_copies): Remove unnecessary
copying of the sorted_copies tail.
2022-04-07 Richard Biener <rguenther@suse.de>
Backported from master:
2022-03-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/104880
* tree-ssa.c (execute_update_address_taken): Remember if we
optimistically made something not addressable and
prepare to undo it.
2022-04-07 Richard Biener <rguenther@suse.de>
Backported from master:
2022-04-07 Richard Biener <rguenther@suse.de>
PR middle-end/105165
* tree-complex.c (expand_complex_asm): Sorry for asm goto
_Complex outputs.
2022-04-04 Martin Jambor <mjambor@suse.cz>
Backported from master:
2022-03-31 Martin Jambor <mjambor@suse.cz>
PR ipa/103083
* ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
(ipa_get_jf_ancestor_keep_null): New function.
* ipa-prop.c (ipa_set_ancestor_jf): Initialize keep_null field of the
ancestor function.
(compute_complex_assign_jump_func): Pass false to keep_null
parameter of ipa_set_ancestor_jf.
(compute_complex_ancestor_jump_func): Pass true to keep_null
parameter of ipa_set_ancestor_jf.
(update_jump_functions_after_inlining): Carry over keep_null from the
original ancestor jump-function or merge them.
(ipa_write_jump_function): Stream keep_null flag.
(ipa_read_jump_function): Likewise.
(ipa_print_node_jump_functions_for_edge): Print the new flag.
* ipa-cp.c (class ipcp_bits_lattice): Make various getters const. New
member function known_nonzero_p.
(ipcp_bits_lattice::known_nonzero_p): New.
(ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
observe it.
(ipcp_bits_lattice::meet_with): Likewise.
(propagate_bits_across_jump_function): Simplify. Pass true in
drop_all_ones when it is necessary.
(propagate_aggs_across_jump_function): Take care of keep_null
flag.
(ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
jump functions.
2022-04-03 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-04-03 Jakub Jelinek <jakub@redhat.com>
PR target/105123
* config/i386/i386-expand.c (ix86_expand_vector_init_general): Avoid
using word as target for expand_simple_binop when doing ASHIFT and
IOR.
2022-04-01 Vladimir N. Makarov <vmakarov@redhat.com>
PR middle-end/105032
* lra-assigns.c (find_reload_regno_insns): Modify loop condition.
2022-03-30 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-03-28 H.J. Lu <hjl.tools@gmail.com>
PR target/105068
* config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
"Yw" in clobber.
2022-03-30 Kito Cheng <kito.cheng@sifive.com>
* config.gcc (riscv*-*-*): Set right default isa spec.
2022-03-30 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2021-10-28 Kito Cheng <kito.cheng@sifive.com>
* config/riscv/arch-canonicalize (CANONICAL_ORDER): Add `i` to
CANONICAL_ORDER.
2022-03-30 Maciej W. Rozycki <macro@embecosm.com>
Backported from master:
2021-11-03 Maciej W. Rozycki <macro@embecosm.com>
* config/riscv/riscv.c (riscv_class_max_nregs): Swap the
arguments to `reg_class_subset_p'.
2022-03-30 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2021-11-11 Kito Cheng <kito.cheng@sifive.com>
* common/config/riscv/riscv-common.c (riscv_subset_list::to_string): Fix
wrong marco checking.
2022-03-30 Maciej W. Rozycki <macro@embecosm.com>
Backported from master:
2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
* common/config/riscv/riscv-common.c
(riscv_subset_list::parse_multiletter_ext): Move pointer
arithmetic ahead of `free'.
2022-03-30 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2022-01-24 Kito Cheng <kito.cheng@sifive.com>
* common/config/riscv/riscv-common.c (riscv_subset_list::to_string):
Skip zicsr and zifencei if I-ext is 2.0.
2022-03-30 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2022-02-05 Kito Cheng <kito.cheng@sifive.com>
* configure.ac: Fix detection for zifencei support.
* configure: Regenerate.
2022-03-30 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-30 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/105093
* ubsan.c (instrument_object_size): If t is equal to inner and
is a decl other than global var, punt. When emitting call to
UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
2022-03-30 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-30 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/105094
* gimple-ssa-store-merging.c (mem_valid_for_store_merging): Punt if
bitsize <= 0 rather than just == 0.
2022-03-30 Martin Liska <mliska@suse.cz>
* lto-streamer.h (LTO_minor_version): Bump it.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-24 Jakub Jelinek <jakub@redhat.com>
PR c++/105035
* fold-const.c (operand_equal_p) <case COMPONENT_REF>: If either
field0 or field1 is not a FIELD_DECL, return false.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/104971
* config/i386/i386-expand.c
(ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
don't push/pop anything and just return const0_rtx.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-18 Jakub Jelinek <jakub@redhat.com>
PR middle-end/99578
PR middle-end/100680
PR tree-optimization/100834
* params.opt (--param=min-pagesize=): New parameter.
* builtins.c (compute_objsize_r) <case INTEGER_CST>: Use maximum
object size instead of zero for pointer constants equal or larger
than min-pagesize.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-16 Jakub Jelinek <jakub@redhat.com>
PR target/104910
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Copy
imm rtx.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-15 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/104814
* ifcvt.c (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-09 Jakub Jelinek <jakub@redhat.com>
PR c/104711
* doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
is enabled by it only for C++11 to C++17 rather than for C++03 or
later.
(-Wshift-negative-value): Similarly (except here we stated
that it is enabled for C++11 or later).
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-07 Jakub Jelinek <jakub@redhat.com>
PR target/104775
* config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
S constraint instead of T in the last alternative.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-03-02 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/104589
* cfgrtl.c (fixup_reorder_chain): Use loc_equal instead of direct
INSN_LOCATION comparison with goto_locus.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-25 Jakub Jelinek <jakub@redhat.com>
Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/104675
* match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
Restrict simplifications to INTEGRAL_TYPE_P.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-25 Jakub Jelinek <jakub@redhat.com>
PR target/104681
* config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-25 Jakub Jelinek <jakub@redhat.com>
PR target/104674
* config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
* config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-25 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/104675
* match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
COMPLEX_TYPE.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-24 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/104601
* tree-ssa-sccvn.c (visit_reference_op_call): For calls with
non-SSA_NAME lhs value number vdef to itself instead of e.g. the
vuse value number.
2022-03-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-19 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/102656
* asan.c (instrument_derefs): If inner is a RESULT_DECL and access is
known to be within bounds, treat it like automatic variables.
If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
it addressable.
2022-03-28 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-03-27 H.J. Lu <hjl.tools@gmail.com>
PR target/105068
* config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
"Yw".
2022-03-28 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2021-11-09 Kito Cheng <kito.cheng@sifive.com>
PR target/102957
* common/config/riscv/riscv-common.c (multi_letter_subset_rank): Remove
assertion for Z*-ext.
2022-03-28 Jakub Jelinek <jakub@redhat.com>
PR target/99754
* config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
first rather than last element of the vector, use __m32_u to do
a really unaligned load, use just 0 instead of (int)0.
(_mm_loadu_si16): Put loaded value into first rather than last
element of the vector, use __m16_u to do a really unaligned load,
use just 0 instead of (short)0.
2022-03-26 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-03-26 H.J. Lu <hjl.tools@gmail.com>
PR target/105058
* config/i386/sse.md (loadiwkey): Replace "v" with "x".
(aes<aesklvariant>u8): Likewise.
2022-03-26 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-03-26 H.J. Lu <hjl.tools@gmail.com>
PR target/105052
* config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
Replace "Yv" with "x".
(ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
(ssse3_psign<mode>3): Likewise.
2022-03-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/101636
PR tree-optimization/104782
* tree-vect-slp.c (vect_slp_analyze_operations): Make sure
the CTOR is vectorized with an expected type.
2022-03-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/104931
* match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
simplification.
2022-03-22 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-03-21 H.J. Lu <hjl.tools@gmail.com>
PR target/105000
* common/config/i386/i386-common.c
(OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
2022-03-22 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-03-16 H.J. Lu <hjl.tools@gmail.com>
PR target/104890
* config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
pushing target("general-regs-only").
2022-03-22 Jason Merrill <jason@redhat.com>
* tree.h (struct tree_vec_map_cache_hasher): Move from...
* tree.c (struct tree_vec_map_cache_hasher): ...here.
2022-03-21 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-03-21 H.J. Lu <hjl.tools@gmail.com>
PR target/104998
* common/config/i386/cpuinfo.h (get_available_features): Pass
0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
bit_AESKLE is set.
2022-03-18 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2022-03-15 Peter Bergner <bergner@linux.ibm.com>
PR target/104923
* config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
acceptable MEM addresses.
2022-03-18 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2022-03-04 Peter Bergner <bergner@linux.ibm.com>
PR target/87496
PR target/104208
* config/rs6000/rs6000.c (rs6000_option_override_internal): Make the
ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
-mlong-double-128.
Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
from here...
* common/config/rs6000/rs6000-common.c (rs6000_handle_option):
... to here.
2022-03-18 Cui,Lili <lili.cui@intel.com>
PR target/104963
* config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
* doc/invoke.texi: Update documents for Intel sapphirerapids.
2022-03-16 Qing Zhao <qing.zhao@oracle.com>
PR middle-end/100775
* function.c (gen_call_used_regs_seq): Call
df_update_exit_block_uses when updating df.
2022-03-16 Richard Biener <rguenther@suse.de>
Backported from master:
2022-03-09 Richard Biener <rguenther@suse.de>
PR middle-end/104786
* cfgexpand.c (expand_asm_stmt): Do not generate a copy
for VLAs without an upper size bound.
2022-03-16 Richard Biener <rguenther@suse.de>
Backported from master:
2022-02-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/104511
* tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
touching DFP <-> FP conversions.
2022-03-16 Richard Biener <rguenther@suse.de>
Backported from master:
2022-02-09 Richard Biener <rguenther@suse.de>
PR target/104453
* config/i386/i386.c (ix86_gimple_fold_builtin): Guard shift
folding for NULL LHS.
2022-03-16 Richard Biener <rguenther@suse.de>
Backported from master:
2022-02-07 Richard Biener <rguenther@suse.de>
PR middle-end/104402
* gimple-expr.c (is_gimple_condexpr): _Complex typed
compares are not valid.
* tree-cfg.c (verify_gimple_assign_ternary): For COND_EXPR
check is_gimple_condexpr.
2022-03-16 Richard Biener <rguenther@suse.de>
Backported from master:
2022-02-03 Richard Biener <rguenther@suse.de>
PR debug/104337
* tree-nrv.c (pass_nrv::execute): Remove tieing result and found
together via DECL_ABSTRACT_ORIGIN.
2022-03-16 Richard Biener <rguenther@suse.de>
Backported from master:
2022-02-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/103641
* tree-vect-patterns.c (vect_synth_mult_by_constant):
Pass the vector mode to choose_mult_variant.
2022-03-11 Michael Meissner <meissner@the-meissners.org>
PR target/99708
* config/rs6000/rs6000-c.c: Revert patch from 2022-03-05.
2022-03-10 Marek Polacek <polacek@redhat.com>
Backported from master:
2022-03-08 Marek Polacek <polacek@redhat.com>
PR rtl-optimization/104777
* rtl.c (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
ASM_OPERANDS_LABEL_VEC has at least one element.
2022-03-09 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2022-02-05 Kito Cheng <kito.cheng@sifive.com>
PR target/104219
* config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
(all_defaults): Add isa_spec.
* config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
2022-03-05 Michael Meissner <meissner@the-meissners.org>
PR target/99708
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
__SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
is created. Backport change made to the master branch on
2022-02-17.
2022-03-05 Michael Meissner <meissner@the-meissners.org>
PR target/104253
* config/rs6000/rs6000.c (init_float128_ibm): Update the
conversion functions used to convert IFmode types. Backport
change from 2022-02-14 made on the master branch.
2022-03-01 Tamar Christina <tamar.christina@arm.com>
* tree-vect-slp-patterns.c (vect_validate_multiplication): Correctly
detect conjugate cases.
(complex_mul_pattern::matches): Likewise.
(complex_fma_pattern::matches): Move accumulator last as expected.
(complex_fma_pattern::build): Likewise.
(complex_fms_pattern::matches): Handle different conjugate form.
2022-02-25 Tamar Christina <tamar.christina@arm.com>
* config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
vdot_laneq_s32, vdotq_laneq_s32): New.
* config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
* config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
(<sup>dot_prod<vsi2qi>): Re-order rtl.
(neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
(neon_<sup>dot_laneq<vsi2qi>): New.
2022-02-25 Tamar Christina <tamar.christina@arm.com>
* config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
* config/arm/arm_neon_builtins.def (usdot): Add V16QI.
(usdot_laneq, sudot_laneq): New.
* config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
(neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
2022-02-25 Tamar Christina <tamar.christina@arm.com>
PR tree-optimization/102819
PR tree-optimization/103169
* config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
canonical order.
2022-02-25 Tamar Christina <tamar.christina@arm.com>
PR tree-optimization/102819
PR tree-optimization/103169
* config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
canonical order.
* config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
2022-02-25 Tamar Christina <tamar.christina@arm.com>
PR tree-optimization/102819
PR tree-optimization/103169
* gimple.h (gimple_num_args, gimple_arg): New.
* doc/md.texi: Update docs for cfms, cfma.
* tree-data-ref.h (same_data_refs): Accept optional offset.
* tree-vect-slp-patterns.c (is_linear_load_p): Fix issue with repeating
patterns.
(vect_normalize_conj_loc): Remove.
(is_eq_or_top): Change to take two nodes.
(enum _conj_status, compatible_complex_nodes_p,
vect_validate_multiplication): New.
(class complex_add_pattern, complex_add_pattern::matches,
complex_add_pattern::recognize, class complex_mul_pattern,
complex_mul_pattern::recognize, class complex_fms_pattern,
complex_fms_pattern::recognize,, class complex_fma_pattern,
complex_fma_pattern::recognize, class complex_operations_pattern,
complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
new cache.
(complex_fms_pattern::matches, complex_fma_pattern::matches,
complex_mul_pattern::matches): Pass new cache and use new validation
code.
* tree-vect-slp.c (vect_match_slp_patterns_2, vect_match_slp_patterns,
vect_analyze_slp): Pass along cache.
(compatible_calls_p): Expose.
* tree-vectorizer.h (compatible_calls_p, slp_node_hash,
slp_compat_nodes_map_t): New.
(class vect_pattern): Update signatures include new cache.
2022-02-21 Pat Haugen <pthaugen@linux.ibm.com>
* config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
(mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
mpower10-fusion-logical-add, mpower10-fusion-add-logical,
mpower10-fusion-2add, mpower10-fusion-2store): Remove.
* config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
* config/rs6000/rs6000.c (rs6000_option_override_internal,
power10_sched_reorder): Likewise.
* config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
gen_addadd): Likewise
* config/rs6000/fusion.md: Regenerate.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-17 Jakub Jelinek <jakub@redhat.com>
PR debug/104557
* valtrack.c (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
if expr has VOIDmode.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-16 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/104544
* combine.c (try_combine): When looking for insn whose links
should be updated from i3 to i2, don't stop on debug insns, instead
skip over them.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-15 Jakub Jelinek <jakub@redhat.com>
PR debug/104517
* omp-low.c (task_cpyfns): New variable.
(delete_omp_context): Don't call finalize_task_copyfn from here.
(create_task_copyfn): Push task_stmt into task_cpyfns.
(execute_lower_omp): Call finalize_task_copyfn here on entries from
task_cpyfns vector and release the vector.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-12 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/104449
* asan.c: Include tree-eh.h.
(handle_builtin_alloca): Handle the case when __builtin_alloca or
__builtin_alloca_with_align can throw.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-12 Jakub Jelinek <jakub@redhat.com>
PR target/104502
* config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
and AVX512VL isn't available, move operands[1] to operands[0] first.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/104446
* combine.c (subst): Don't substitute CONST_INTs into RTX_AUTOINC
operands.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-08 Jakub Jelinek <jakub@redhat.com>
PR target/102140
* config/rs6000/rs6000.c (vspltis_shifted): Return false also if
split1 pass has finished already.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-02-01 Jakub Jelinek <jakub@redhat.com>
PR middle-end/104307
* tree-vect-generic.c (expand_vector_comparison): Don't push debug
stmts to uses vector, just set vec_cond_expr_only to false for
non-VEC_COND_EXPRs instead of pushing them into uses. Treat
VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
like non-VEC_COND_EXPRs.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-28 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/104263
* gimple-ssa-store-merging.c (get_status_for_store_merging): For
cfun->can_throw_non_call_exceptions && cfun->eh test whether
last non-debug stmt in the bb is store_valid_for_store_merging_p
rather than last stmt.
2022-02-19 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-28 Jakub Jelinek <jakub@redhat.com>
PR lto/104237
* cfgrtl.c (loc_equal): New function.
(unique_locus_on_edge_between_p): Use it.
2022-02-18 Richard Biener <rguenther@suse.de>
Backported from master:
2021-05-10 Richard Biener <rguenther@suse.de>
PR middle-end/100464
PR c++/100468
* gimple-fold.c (canonicalize_constructor_val): Do not set
TREE_ADDRESSABLE.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-10-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/102893
* tree-ssa-dce.c (find_obviously_necessary_stmts): Fix the
test for an exit edge.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-08-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/45178
* tree-ssa-dce.c (find_obviously_necessary_stmts): For
infinite loops without exit do not mark control dependent
edges of the latch necessary.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-01-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/103864
PR tree-optimization/103544
* tree-vect-slp.c (vect_analyze_slp_instance): Exclude
reductions wrapped in conversions from SLP handling.
(vect_analyze_slp): Revert PR103544 change.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-12-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/103544
* tree-vect-slp.c (vect_analyze_slp): Only add a SLP reduction
opportunity if the stmt in question is the reduction root.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-11-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/103361
* gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int
for the dependence distance.
* tree-data-ref.c (print_lambda_vector): Properly print a lambda_int.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-01-20 Richard Biener <rguenther@suse.de>
PR middle-end/100786
* gimple-fold.c (get_symbol_constant_value): Only return
values of compatible type to the symbol.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2022-01-20 Richard Biener <rguenther@suse.de>
PR target/100784
* config/i386/i386.c (ix86_gimple_fold_builtin): Check for
LHS before folding __builtin_ia32_shufpd and friends.
2022-02-16 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-01-06 H.J. Lu <hjl.tools@gmail.com>
PR target/103925
* config/i386/i386.c (ix86_output_indirect_function_return):
Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
2022-02-16 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-01-06 H.J. Lu <hjl.tools@gmail.com>
PR target/102952
* config/i386/i386-opts.h (harden_sls): Replace
harden_sls_indirect_branch with harden_sls_indirect_jmp.
* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
Likewise.
(ix86_output_indirect_jmp): Likewise.
(ix86_output_call_insn): Likewise.
* config/i386/i386.opt: Replace indirect-branch with
indirect-jmp. Replace harden_sls_indirect_branch with
harden_sls_indirect_jmp.
* doc/invoke.texi (-harden-sls=): Replace indirect-branch with
indirect-jmp.
2022-02-16 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2021-11-18 H.J. Lu <hjl.tools@gmail.com>
PR target/102952
* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): Emit
CS prefix for -mindirect-branch-cs-prefix.
(ix86_output_indirect_branch_via_reg): Likewise.
* config/i386/i386.opt: Add -mindirect-branch-cs-prefix.
* doc/invoke.texi: Document -mindirect-branch-cs-prefix.
2022-02-16 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2021-11-17 H.J. Lu <hjl.tools@gmail.com>
PR target/102952
* config/i386/i386-opts.h (harden_sls): New enum.
* config/i386/i386.c (output_indirect_thunk): Mitigate against
SLS for function return.
(ix86_output_function_return): Likewise.
(ix86_output_jmp_thunk_or_indirect): Mitigate against indirect
branch.
(ix86_output_indirect_jmp): Likewise.
(ix86_output_call_insn): Likewise.
* config/i386/i386.opt: Add -mharden-sls=.
* doc/invoke.texi: Document -mharden-sls=.
2022-02-16 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2021-11-17 H.J. Lu <hjl.tools@gmail.com>
PR target/103307
* config/i386/i386.c (ix86_code_end): Remove "%!" before ret.
(ix86_output_function_return): Likewise.
* config/i386/i386.md (simple_return_pop_internal): Likewise.
2022-02-15 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2022-02-07 Kewen Lin <linkw@linux.ibm.com>
PR target/103627
* config/rs6000/rs6000.c (rs6000_option_override_internal): Move the
hunk affecting VSX and ALTIVEC to appropriate place.
2022-02-15 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2022-02-07 Kewen Lin <linkw@linux.ibm.com>
PR target/103627
* config/rs6000/rs6000.c (rs6000_option_override_internal): Disable
MMA if !TARGET_VSX.
2022-02-14 Maciej W. Rozycki <macro@embecosm.com>
Backported from master:
2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
* config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
2022-02-13 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
PR target/79754
* config/i386/i386.c (type_natural_mode):
Skip decimal float vector modes.
2022-02-11 Martin Liska <mliska@suse.cz>
Backported from master:
2021-12-03 Martin Liska <mliska@suse.cz>
Peter Bergner <bergner@linux.ibm.com>
PR target/101324
* config/rs6000/rs6000.c (rs6000_option_override_internal): Move the
disabling of shrink-wrapping when using -mrop-protect from here...
(rs6000_override_options_after_change): ...to here.
2022-02-10 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
PR target/104469
* config/i386/sse.md (vec_unpacks_float_lo_v4si):
Change operand 1 constraint to register_operand.
2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
PR target/104462
* common/config/i386/i386-common.c (OPTION_MASK_ISA2_XSAVE_UNSET):
Also include OPTION_MASK_ISA2_AVX2_UNSET.
2022-02-09 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
PR target/104458
* config/i386/i386-expand.c (ix86_split_idivmod):
Force operands[2] and operands[3] into a register..
2022-02-09 liuhongt <hongtao.liu@intel.com>
PR target/104451
* config/i386/sse.md (<insn><mode>3): lowpart_subreg
operands[2] from SImode to QImode.
2022-02-08 Andrew MacLeod <amacleod@redhat.com>
PR tree-optimization/104288
* gimple-range-cache.cc (ssa_range_in_bb): Only use non-null from the
dominator entry ranges.
* gimple-range.cc (gimple_ranger::range_of_expr): Ditto.
2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
PR target/104362
* config/i386/i386.c (find_drap_reg): For 32bit targets
return DI_REG if function uses __builtin_eh_return.
2022-02-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR target/104090
* config/rs6000/rs6000.c (rs6000_machine_from_flags): Use also
rs6000_cpu.
2022-02-02 Ilya Leoshkevich <iii@linux.ibm.com>
Backported from master:
2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
* config/s390/s390.c (s390_code_end): Do not switch back to
code section.
2022-02-02 Xi Ruoyao <xry111@mengyan1223.wang>
Backported from master:
2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
PR middle-end/95115
* fold-const.c (const_binop): Do not fold NaN result from
non-NaN operands.
2022-01-28 Richard Biener <rguenther@suse.de>
Backported from master:
2021-12-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/103596
* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
Note we are not propagating into a PHI argument to may_propagate_copy.
* tree-ssa-propagate.h (may_propagate_copy): Add
argument specifying whether we propagate into a PHI arg.
* tree-ssa-propagate.c (may_propagate_copy): Likewise.
When not doing so we can replace an abnormal with
something else.
(may_propagate_into_stmt): Update may_propagate_copy calls.
(replace_exp_1): Move propagation checking code to
propagate_value and rename to ...
(replace_exp): ... this and elide previous wrapper.
(propagate_value): Perform checking with adjusted
may_propagate_copy call and dispatch to replace_exp.
2022-01-28 Richard Biener <rguenther@suse.de>
Backported from master:
2021-11-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/103489
* tree-vect-loop.c (vectorizable_phi): Verify argument
vector type compatibility to mitigate bool pattern recog
bug.
2022-01-26 Andrew Pinski <apinski@marvell.com>
Backported from master:
2021-11-10 Andrew Pinski <apinski@marvell.com>
PR target/101529
* config/aarch64/aarch64.c (aarch64_evpc_ins): Don't use target
as an input, use original one.
2022-01-25 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-25 Jakub Jelinek <jakub@redhat.com>
PR target/104172
* config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
declare.
* config/rs6000/rs6000.c (rs6000_passes_ieee128,
ieee128_mangling_gcc_8_1): Remove.
(TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
(rs6000_mangle_type): Return "u9__ieee128" instead of
ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
(rs6000_globalize_decl_name): Remove.
* config/rs6000/rs6000-call.c (init_cumulative_args,
rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-21 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/102478
* optabs.c (prepare_cmp_insn): If !can_create_pseudo_p (), don't
force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
would be needed.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-20 Jakub Jelinek <jakub@redhat.com>
PR debug/103874
* dwarf2out.c (index_rnglists): For !HAVE_AS_LEB128 and
block_num > 0, index entry even if !have_multiple_function_sections.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/102860
* match.pd (x %[fl] y -> x % y): New simplification for
unsigned integral types.
* optabs-tree.c (optab_for_tree_code): Return unknown_optab
for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-19 Jakub Jelinek <jakub@redhat.com>
* config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
{%0}.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2022-01-06 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/103908
* ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
asm goto.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-12-30 Jakub Jelinek <jakub@redhat.com>
PR c++/103012
* config/i386/i386-c.c (ix86_pragma_target_parse): Perform
cpp_define/cpp_undef calls with forced token locations
BUILTINS_LOCATION.
* config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Likewise.
* config/s390/s390-c.c (s390_pragma_target_parse): Likewise.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-12-30 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/103860
* shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is
called on pro even if nothing further is pushed into vec.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-12-28 Jakub Jelinek <jakub@redhat.com>
PR middle-end/103813
* fold-const.c (fold_truth_andor_1): Punt of const_binop LSHIFT_EXPR
or RSHIFT_EXPR returns NULL. Formatting fix.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-12-28 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/103837
* loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in
the decisions whether to return false or continue and right before
returning true reset those debug insns that previously caused
returning false.
2022-01-24 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-12-28 Jakub Jelinek <jakub@redhat.com>
PR debug/103838
* optabs.c (expand_doubleword_mod, expand_doubleword_divmod): Only
check newly added insns for CALL_P, not the last insn of previous
code.
2022-01-24 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2022-01-24 H.J. Lu <hjl.tools@gmail.com>
PR target/104188
* config/i386/predicates.md (bcst_mem_operand): Also check mode
of memory broadcast.
2022-01-18 Martin Liska <mliska@suse.cz>
Backported from master:
2021-08-13 Martin Liska <mliska@suse.cz>
PR ipa/101354
* attribs.c (decl_attributes): Make naked functions "noipa"
functions.
2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
* ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
reverse flag as "reverse" for the sake of consistency.
* ipa-sra.c: Fix copyright year.
(ipa_sra_function_summaries::duplicate): Copy the reverse flag.
(dump_isra_access): Tweak dump line.
(isra_write_node_summary): Write the reverse flag.
(isra_read_node_info): Read it.
(pull_accesses_from_callee): Test its consistency and copy it.
2022-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/101615
PR tree-optimization/103995
* tree-vect-slp.c (vect_optimize_slp): Materialize permutes
at CTOR SLP graph entries.
2022-01-12 liuhongt <hongtao.liu@intel.com>
PR target/98348
* config/i386/sse.md (*<avx512>_ucmp<mode>3_1): Change from
define_split to define_insn_and_split.
(*avx2_eq<mode>3): Removed.
(<avx512>_eq<mode>3<mask_scalar_merge_name>): Adjust pattern
(<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Rename to ..
(*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): .. this, and
adjust pattern.
(*avx2_gt<mode>3): Removed.
(<avx512>_gt<mode>3<mask_scalar_merge_name>): Change from
define_insn to define_expand, and adjust pattern.
(UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed.
2022-01-11 Andrew MacLeod <amacleod@redhat.com>
PR tree-optimization/103603
* gimple-range.cc (gimple_ranger::gimple_ranger): Create stmt stack.
(gimple_ranger::~gimple_ranger): New.
(gimple_ranger::range_of_stmt): Process dependencies if they have no
global cache entry.
(gimple_ranger::prefill_name): New.
(gimple_ranger::prefill_stmt_dependencies): New.
* gimple-range.h (class gimple_ranger): Add prototypes.
2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
PR target/103465
* coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
2022-01-02 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
sync_lock_test_and_set libfunc. Call convert_memory_address to
convert memory address to Pmode.
(atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
2021-12-27 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa-protos.h: Delete
pa_maybe_emit_compare_and_swap_exchange_loop() declaration.
* config/pa/pa.c (pa_expand_compare_and_swap_loop): Delete.
(pa_maybe_emit_compare_and_swap_exchange_loop): Delete.
* config/pa/pa.md (atomic_storeq): Use __sync_lock_test_and_set
instead of pa_maybe_emit_compare_and_swap_exchange_loop.
(atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
2021-12-16 Martin Sebor <msebor@redhat.com>
PR middle-end/101751
* doc/extend.texi (attribute access): Adjust.
* calls.c (maybe_warn_rdwr_sizes): Treat access mode none on a void*
argument as expecting as few as zero bytes.
2021-12-16 Martin Sebor <msebor@redhat.com>
PR c/101289
PR c/97548
* fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
(operand_compare::verify_hash_value): Same.
* tree-core.h (OEP_DECL_NAME): New.
2021-12-16 Martin Liska <mliska@suse.cz>
Backported from master:
2021-12-15 Martin Liska <mliska@suse.cz>
PR target/103661
* config/i386/i386-builtins.c (fold_builtin_cpu): Compare to 0
as API expects that non-zero values are returned (do that
it mask == 31).
For "avx512vbmi2" argument, we return now 1 << 31, which is a
negative integer value.
2021-12-15 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2021-11-30 Kewen Lin <linkw@linux.ibm.com>
PR target/102347
* config/rs6000/rs6000-call.c (rs6000_builtin_decl): Remove builtin mask
check.
2021-12-14 Joel Hutton <joel.hutton@arm.com>
PR bootstrap/103688
* tree-vect-loop.c (vectorizable_induction): Rework to avoid
directly_supported_p.
2021-12-13 Joel Hutton <joel.hutton@arm.com>
PR tree-optimization/103523
* tree-vect-loop.c (vectorizable_induction): Check for
PLUS_EXPR/MINUS_EXPR support.
2021-12-02 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Backported from master:
2021-12-02 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
* config/vxworks.h (LTO_PLUGIN_SPEC): Adapt to corrected
spelling of -linker-output-auto-nolto-rel.
2021-12-01 Martin Jambor <mjambor@suse.cz>
Backported from master:
2021-11-30 Martin Jambor <mjambor@suse.cz>
PR ipa/103267
* ipa-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag.
2021-12-01 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-12-01 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/102356
* rtl.h (simplify_context): Add assoc_count member and
max_assoc_count static member.
* simplify-rtx.c (simplify_associative_operation): Don't reassociate
more than max_assoc_count times within one outermost simplify_* call.
2021-11-30 Eric Botcazou <ebotcazou@adacore.com>
PR target/103274
* config/i386/i386.c (ix86_output_call_insn): Beef up comment about
nops emitted with SEH.
* config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
the cold section, emit a nop before the directive if the previous
active instruction is a call.
2021-11-29 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-11-16 Peter Bergner <bergner@linux.ibm.com>
PR target/102976
* config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for
output operand.
(*mma_assemble_acc): Likewise.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-27 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/103435
* gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if
n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that
case.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-24 Jakub Jelinek <jakub@redhat.com>
PR middle-end/103384
* omp-general.c (omp_context_selector_matches): For ACCEL_COMPILER,
return 0 for kind(host) and continue for kind(nohost).
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-23 Jakub Jelinek <jakub@redhat.com>
PR middle-end/102431
* gimplify.c (replace_reduction_placeholders): Remove.
(note_no_context_vars): New function.
(gimplify_omp_loop): For OMP_PARALLEL's BIND_EXPR create a new
BLOCK. Use copy_tree_body_r with walk_tree instead of unshare_expr
and replace_reduction_placeholders for duplication of
OMP_CLAUSE_REDUCTION_{INIT,MERGE} expressions. Ensure all mentioned
automatic vars have DECL_CONTEXT set to non-NULL before doing so
and reset it afterwards for those vars and their corresponding
vars.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-17 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/103192
* tree-ssa-loop-im.c (move_computations_worker): Use
reset_flow_sensitive_info instead of manually clearing
SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones
with integral types.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-17 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/103255
* gimple-range.cc (fold_using_range::range_of_address): Return
range_nonzero rather than unadjusted base's range. Formatting fixes.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-15 Jakub Jelinek <jakub@redhat.com>
PR target/103205
* config/i386/sync.md (atomic_bit_test_and_set<mode>,
atomic_bit_test_and_complement<mode>,
atomic_bit_test_and_reset<mode>): Use OPTAB_WIDEN instead of
OPTAB_DIRECT.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-11 Jakub Jelinek <jakub@redhat.com>
PR debug/101378
* dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS
handling only for DECL_BIT_FIELD_TYPE decls.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-05 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/100246
* config/i386/i386.h
(stringop_algs::stringop_strategy::stringop_strategy): Make the ctor
constexpr.
2021-11-29 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-11-05 Jakub Jelinek <jakub@redhat.com>
PR debug/103046
* dwarf2out.c (add_const_value_attribute): Add MODE argument, use it
in CONST_WIDE_INT handling. Adjust recursive calls.
(add_location_or_const_value_attribute): Pass DECL_MODE (decl) to
new add_const_value_attribute argument.
(tree_add_const_value_attribute): Pass TYPE_MODE (type) to new
add_const_value_attribute argument.
2021-11-25 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-11-20 Jan Hubicka <hubicka@ucw.cz>
PR ipa/103052
* ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag.
2021-11-24 Maciej W. Rozycki <macro@embecosm.com>
Backported from master:
2021-11-24 Maciej W. Rozycki <macro@embecosm.com>
PR middle-end/103059
* reload.c (find_reloads_address_1): Also accept the ASHIFT form
of indexed addressing.
(find_reloads): Adjust accordingly.
2021-11-23 Bill Schmidt <wschmidt@linux.ibm.com>
PR target/101985
* config/rs6000/altivec.h (vec_cpsgn): Swap operand order.
2021-11-22 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Backported from master:
2021-11-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
* config/s390/s390.md (define_peephole2): Variable insn points
to the first matched insn. Use peep2_next_insn(1) to refer to
the second matched insn.
2021-11-22 Richard Biener <rguenther@suse.de>
Backported from master:
2021-11-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/103237
* tree-vect-loop.c (vect_is_simple_reduction): Fail for
double reductions with multiple inner loop LC PHI nodes.
2021-11-22 Richard Biener <rguenther@suse.de>
Backported from master:
2021-11-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/103204
* tree-ssa-sccvn.c (valueize_refs_1): Re-valueize the
top operand after folding in an address.
2021-11-22 Richard Biener <rguenther@suse.de>
PR middle-end/103181
PR middle-end/103248
* tree-eh.c (operation_could_trap_helper_p): Properly
check vector constants for a zero element for integer
division. Separate floating point and integer division code.
Properly handle fixed-point RDIV_EXPR.
2021-11-22 Richard Biener <rguenther@suse.de>
Backported from master:
2021-11-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/102970
* tree-ssa-pre.c (phi_translate_1): Drop clique and base
when translating a MEM_REF over a backedge.
2021-11-22 liuhongt <hongtao.liu@intel.com>
PR target/103275
* config/i386/constraints.md (Bk): New
define_memory_constraint.
* config/i386/i386-protos.h (ix86_gpr_tls_address_pattern_p):
Declare.
* config/i386/i386.c (ix86_gpr_tls_address_pattern_p): New
function.
* config/i386/i386.md (*movsi_internal): Don't allow
mask/sse/mmx move in TLS code sequences.
(*movdi_internal): Ditto.
2021-11-19 Giuliano Belinassi <gbelinassi@suse.de>
* gcc.c (process_command): Skip dumpdir override if file is a
not_actual_file_p.
* doc/invoke.texi: Update -dumpdir documentation.
2021-11-18 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-11-17 Jan Hubicka <hubicka@ucw.cz>
PR ipa/103246
* ipa-modref.c (read_modref_records): Fix streaminig in of every_access
flag.
2021-11-18 Jan Hubicka <jh@suse.cz>
* ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix
handling of ignore_stores.
2021-11-18 David Edelsohn <dje.gcc@gmail.com>
Backported from master:
2021-11-18 David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/driver-rs6000.c (detect_processor_aix): Add
power10.
2021-11-16 Philipp Tomsich <philipp.tomsich@vrull.eu>
Backported from master:
2021-11-03 Philipp Tomsich <philipp.tomsich@vrull.eu>
* config/aarch64/aarch64-cores.def (AARCH64_CORE): New Ampere-1
core.
* config/aarch64/aarch64-tune.md: Regenerate.
* config/aarch64/aarch64-cost-tables.h: Add extra costs for
Ampere-1.
* config/aarch64/aarch64.c: Add tuning structures for Ampere-1.
* doc/invoke.texi: Add documentation for Ampere-1 core.
2021-11-15 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2021-11-11 Kewen Lin <linkw@linux.ibm.com>
* doc/invoke.texi: Change references to "future cpu" to "power10",
"-mcpu=future" to "-mcpu=power10". Adjust words for float128.
2021-11-09 Xionghu Luo <luoxhu@linux.ibm.com>
Backported from master:
2021-11-05 Xionghu Luo <luoxhu@linux.ibm.com>
PR target/102991
* config/rs6000/fusion.md: Regenerate.
* config/rs6000/genfusion.pl: Fix incorrect clobber constraint.
2021-11-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/102798
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
Only copy points-to info to newly generated SSA names.
2021-11-08 Richard Biener <rguenther@suse.de>
PR middle-end/102518
* tree-inline.c (setup_one_parameter): Avoid substituting
an invariant into contexts where a GIMPLE register is not valid.
2021-11-08 Richard Biener <rguenther@suse.de>
Backported from master:
2021-10-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/102788
* tree-vect-patterns.c (vect_init_pattern_stmt): Allow
a NULL vectype.
(vect_pattern_recog_1): Likewise.
(vect_recog_bool_pattern): Continue matching the pattern
even if we do not have a vector type for a conversion
result.
2021-11-08 Richard Biener <rguenther@suse.de>
Backported from master:
2021-10-15 Richard Biener <rguenther@suse.de>
PR ipa/102762
* tree-inline.c (copy_bb): Avoid underflowing nargs.
2021-11-08 Richard Biener <rguenther@suse.de>
Backported from master:
2021-10-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/102572
* tree-vect-stmts.c (vect_build_gather_load_calls): When
gathering the vectorized defs for the mask pass in the
desired mask vector type so invariants will be handled
correctly.
2021-11-08 Richard Biener <rguenther@suse.de>
Backported from master:
2021-09-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/102139
* tree-vectorizer.h (vec_base_alignments): Adjust hash-map
type to record a std::pair of the stmt-info and the innermost
loop behavior.
(dr_vec_info::group): New member.
* tree-vect-data-refs.c (vect_record_base_alignment): Adjust.
(vect_compute_data_ref_alignment): Verify the recorded
base alignment can be used.
(data_ref_pair): Remove.
(dr_group_sort_cmp): Adjust.
(vect_analyze_data_ref_accesses): Store the group-ID in the
dr_vec_info and operate on a vector of dr_vec_infos.
2021-11-08 Richard Biener <rguenther@suse.de>
Backported from master:
2021-08-20 Richard Biener <rguenther@suse.de>
* tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare
BBs.
(vect_analyze_data_ref_accesses): Likewise. Assign the BB
index as group_id when dataref_groups were not computed.
* tree-vect-slp.c (vect_slp_bbs): Bump current_group when
we advace to the next BB.
2021-11-08 Richard Biener <rguenther@suse.de>
Backported from master:
2021-10-11 Richard Biener <rguenther@suse.de>
PR middle-end/101480
* gimple.c (gimple_call_fnspec): Do not mark operator new/delete
as const.
2021-11-08 Martin Liska <mliska@suse.cz>
Backported from master:
2021-11-08 Martin Liska <mliska@suse.cz>
PR gcov-profile/100520
* coverage.c (coverage_compute_profile_id): Strip .gk when
compare debug is used.
* system.h (endswith): New function.
2021-11-08 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2021-10-26 Kewen Lin <linkw@linux.ibm.com>
PR tree-optimization/102789
* tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not
update inits of simd_lane_access.
2021-11-05 John David Anglin <danglin@gcc.gnu.org>
PR libgomp/96661
* config/pa/pa-modes.def: Add OImode integer type.
* config/pa/pa.c (pa_scalar_mode_supported_p): Allow TImode
for TARGET_64BIT.
* config/pa/pa.h (MIN_UNITS_PER_WORD) Define to MIN_UNITS_PER_WORD
to UNITS_PER_WORD if IN_LIBGCC2.
* config/pa/pa.md (addti3, addvti3, subti3, subvti3, negti2,
negvti2, ashlti3, shrpd_internal): New patterns.
Change some multi instruction types to multi.
2021-11-05 Martin Liska <mliska@suse.cz>
Backported from master:
2021-08-16 Martin Liska <mliska@suse.cz>
PR tree-optimization/100393
* tree-switch-conversion.c (group_cluster::dump): Use
get_comparison_count.
(jump_table_cluster::find_jump_tables): Pre-compute number of
comparisons and then decrement it. Cache also max_ratio.
(jump_table_cluster::can_be_handled): Change signature.
* tree-switch-conversion.h (get_comparison_count): New.
2021-11-05 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Backported from master:
2021-11-05 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
* config/vx-common.h: Test value of TARGET_VXWORKS7 rather
than definedness.
2021-11-04 Hongyu Wang <hongyu.wang@intel.com>
* config/i386/amxtileintrin.h (_tile_loadd_internal): Add
parentheses to base and stride.
(_tile_stream_loadd_internal): Likewise.
(_tile_stored_internal): Likewise.
2021-11-03 Maciej W. Rozycki <macro@embecosm.com>
* gimple-range-cache.cc (ranger_cache::push_poor_value): Mark
parameters unused.
2021-11-03 Vladimir N. Makarov <vmakarov@redhat.com>
PR rtl-optimization/102842
* lra-constraints.c (match_reload): Ignore out in checking values
of outs.
(curr_insn_transform): Collect outputs before doing reloads of operands.
2021-11-03 Richard Biener <rguenther@suse.de>
Backported from master:
2021-10-13 Richard Biener <rguenther@suse.de>
PR ipa/102714
* ipa-sra.c (ptr_parm_has_nonarg_uses): Fix volatileness
check.
2021-10-28 Eric Botcazou <ebotcazou@adacore.com>
* doc/invoke.texi (%X): Remove obsolete reference to -Wl.
2021-10-27 Martin Jambor <mjambor@suse.cz>
Backported from master:
2021-10-21 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/102505
* tree-sra.c (totally_scalarize_subtree): Check that the
encountered field fits within the acces we would like to put it
in.
2021-10-26 Piotr Kubaj <pkubaj@FreeBSD.org>
Backported from master:
2021-10-16 Piotr Kubaj <pkubaj@FreeBSD.org>
* configure.ac: Treat powerpc64*-*-freebsd* the same as
powerpc64-*-freebsd*.
* configure: Regenerate.
2021-10-24 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check
TARGET_DISABLE_FPREGS.
* config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of
MASK_DISABLE_FPREGS.
(hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS. Adjust
cost of hardware integer multiplication.
(pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS.
* config/pa/pa.h (INT14_OK_STRICT): Likewise.
* config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check
TARGET_SOFT_FLOAT in patterns that use xmpyu instruction.
* config/pa/pa.opt (mdisable-fpregs): Change target mask to
SOFT_FLOAT. Revise comment.
(msoft-float): New option.
2021-10-24 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.md: Don't use 'G' constraint in integer move patterns.
2021-10-21 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2021-10-21 H.J. Lu <hjl.tools@gmail.com>
PR target/98667
* doc/invoke.texi: Document -fcf-protection requires i686 or
new.
2021-10-18 Uroš Bizjak <ubizjak@gmail.com>
PR target/102761
* config/i386/i386.c (ix86_print_operand_address):
Error out for non-address_operand asm operands.
2021-10-18 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2021-10-11 Kito Cheng <kito.cheng@sifive.com>
PR target/100316
* builtins.c (maybe_emit_call_builtin___clear_cache): Allow
CONST_INT for BEGIN and END, and use gcc_assert rather than
error.
2021-10-18 Andrew Stubbs <ams@codesourcery.com>
Backported from master:
2021-10-15 Andrew Stubbs <ams@codesourcery.com>
* config/gcn/gcn-hsa.h (S_FIJI): Set unconditionally.
(S_900): Likewise.
(S_906): Likewise.
* config/gcn/gcn.c: Hard code SRAM ECC settings for old architectures.
* config/gcn/mkoffload.c (ELFABIVERSION_AMDGPU_HSA): Rename to ...
(ELFABIVERSION_AMDGPU_HSA_V3): ... this.
(ELFABIVERSION_AMDGPU_HSA_V4): New.
(SET_SRAM_ECC_UNSUPPORTED): New.
(copy_early_debug_info): Create elf flags to match the other objects.
(main): Just let the attribute flags pass through.
2021-10-18 Andrew Stubbs <ams@codesourcery.com>
Backported from master:
2021-10-07 Andrew Stubbs <ams@codesourcery.com>
* config/gcn/gcn-valu.md (gather<mode>_insn_2offsets<exec>): Apply
HAVE_GCN_ASM_GLOBAL_LOAD_FIXED.
(scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
2021-10-18 Andrew Stubbs <ams@codesourcery.com>
Backported from master:
2021-10-07 Andrew Stubbs <ams@codesourcery.com>
* config/gcn/gcn-hsa.h (SRAMOPT): Include the whole option string.
Adjust for new -msram-ecc=any behaviour.
(ASM_SPEC): Adjust -mxnack and -msram-ecc usage.
* config/gcn/gcn.c (output_file_start): Implement -msram-ecc=any.
* config/gcn/mkoffload.c (EF_AMDGPU_XNACK): Rename to ...
(EF_AMDGPU_XNACK_V3): ... this.
(EF_AMDGPU_SRAM_ECC): Rename to ...
(EF_AMDGPU_SRAM_ECC_V3): ... this.
(EF_AMDGPU_FEATURE_XNACK_V4): New.
(EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4): New.
(EF_AMDGPU_FEATURE_XNACK_ANY_V4): New.
(EF_AMDGPU_FEATURE_XNACK_OFF_V4): New.
(EF_AMDGPU_FEATURE_XNACK_ON_V4): New.
(EF_AMDGPU_FEATURE_SRAMECC_V4): New.
(EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4): New.
(EF_AMDGPU_FEATURE_SRAMECC_ANY_V4): New.
(EF_AMDGPU_FEATURE_SRAMECC_OFF_V4): New.
(EF_AMDGPU_FEATURE_SRAMECC_ON_V4): New.
(SET_XNACK_ON): New.
(SET_XNACK_OFF): New.
(TEST_XNACK): New.
(SET_SRAM_ECC_ON): New.
(SET_SRAM_ECC_ANY): New.
(SET_SRAM_ECC_OFF): New.
(TEST_SRAM_ECC_ANY): New.
(TEST_SRAM_ECC_ON): New.
(main): Implement HSACOv4 and -msram-ecc=any.
2021-10-18 Andrew Stubbs <ams@codesourcery.com>
Backported from master:
2021-10-07 Andrew Stubbs <ams@codesourcery.com>
* config.in: Regenerate.
* config/gcn/gcn-hsa.h (X_FIJI): New macro.
(X_900): New macro.
(X_906): New macro.
(X_908): New macro.
(A_FIJI): Rename to ...
(S_FIJI): ... this.
(A_900): Rename to ...
(S_900): ... this.
(A_906): Rename to ...
(S_906): ... this.
(A_908): Rename to ...
(S_908): ... this.
(SRAMOPT): New macro.
(ASM_SPEC): Adjust xnack option usage.
* config/gcn/gcn.c (output_file_start): Adjust amdgcn_target usage.
* configure: Regenerate.
* configure.ac: Detect LLVM assembler dialect.
2021-10-18 Julian Brown <julian@codesourcery.com>
Backported from master:
2021-06-29 Julian Brown <julian@codesourcery.com>
* config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.
2021-10-18 Andrew Stubbs <ams@codesourcery.com>
PR target/100208
* config.in: Regenerate.
* config/gcn/gcn-hsa.h (A_FIJI): New define.
(A_900): New define.
(A_906): New define.
(A_908): New define.
(ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908.
* config/gcn/gcn.c (output_file_start): Adjust attributes according
to the assembler capabilities.
* config/gcn/mkoffload.c (main): Likewise.
* configure: Regenerate.
* configure.ac: Add tests for LLVM assembler attribute features.
2021-10-18 Andrew Stubbs <ams@codesourcery.com>
Backported from master:
2021-07-19 Andrew Stubbs <ams@codesourcery.com>
PR target/100208
* config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
(ASM_SPEC): Set -mattr for xnack and sram-ecc.
* config/gcn/gcn-opts.h (enum sram_ecc_type): New.
* config/gcn/gcn-valu.md: Add a warning comment.
* config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
(output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
* config/gcn/gcn.md: Add a warning comment.
* config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
* config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
SRAM-ECC flag.
(EF_AMDGPU_XNACK): New.
(EF_AMDGPU_SRAM_ECC): New.
(elf_flags): New.
(copy_early_debug_info): Use elf_flags.
(main): Handle -mxnack and -msram-ecc options.
* doc/invoke.texi: Document -mxnack and -msram-ecc.
2021-10-18 Marcel Vollweiler <marcel@codesourcery.com>
Backported from master:
2021-06-18 Marcel Vollweiler <marcel@codesourcery.com>
* config.in: Regenerate.
* config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
functions.
* configure: Regenerate.
* configure.ac: Fix for global_load assembler functions.
2021-10-15 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.md: Consistently use "rG" constraint for copy
instruction in move patterns.
2021-10-14 Vladimir N. Makarov <vmakarov@redhat.com>
PR rtl-optimization/102627
* lra-constraints.c (split_reg): Use at least natural mode of hard reg.
2021-10-14 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT.
(cbranchdf4): Likewise.
Add missing move patterns for TARGET_SOFT_FLOAT.
2021-10-13 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-08-17 Iain Sandoe <iain@sandoe.co.uk>
PR target/100340
* config.in: Regenerate.
* config/i386/darwin.h (EXTRA_ASM_OPTS): New
(ASM_SPEC): Pass options to disable branch shortening where
needed.
* configure: Regenerate.
* configure.ac: Detect versions of 'as' that support the
optimisation which has the bug.
2021-10-13 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.md (muldi3): Add support for inlining 64-bit
multiplication on 32-bit PA 1.1 and 2.0 targets.
2021-10-12 Eric Botcazou <ebotcazou@adacore.com>
PR target/102588
* config/sparc/sparc-modes.def (OI): New integer mode.
2021-10-11 Diane Meirowitz <diane.meirowitz@oracle.com>
Backported from master:
2021-10-11 Diane Meirowitz <diane.meirowitz@oracle.com>
* doc/invoke.texi: Add link to UndefinedBehaviorSanitizer
documentation, mention UBSAN_OPTIONS, similar to what is done
for AddressSanitizer.
2021-10-10 Jakub Jelinek <jakub@redhat.com>