blob: aa5053a7c1c52deb769c23b1c7e1eacdf8c9cf95 [file] [log] [blame]
2023-07-07 Release Manager
* GCC 10.5.0 released.
2023-06-28 liuhongt <hongtao.liu@intel.com>
* config/i386/i386-features.c (pass_insert_vzeroupper:gate):
Move flag_expensive_optimizations && !optimize_size to ..
* config/i386/i386-options.c (ix86_option_override_internal):
.. this, it makes -mvzeroupper independent of optimization
level, but still keeps the behavior of architecture
tuning(emit_vzeroupper) unchanged.
(rest_of_handle_insert_vzeroupper): Remove
flag_expensive_optimizations && !optimize_size.
2023-06-20 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2023-06-20 Kewen Lin <linkw@linux.ibm.com>
PR target/109932
* config/rs6000/rs6000-builtin.def (BU_VSX_MISC_2): New macro.
({un,}pack_vector_int128): Use BU_VSX_MISC_2 instead of
BU_P7_MISC_2.
2023-06-19 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2023-06-12 Kewen Lin <linkw@linux.ibm.com>
PR target/110011
* config/rs6000/rs6000.c (output_toc): Use the mode of the 128-bit
floating constant itself for real_to_target call.
2023-06-09 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2023-06-02 Iain Sandoe <iain@sandoe.co.uk>
PR target/110044
* config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
Make sure that we do not have a cap on field alignment before altering
the struct layout based on the type alignment of the first entry.
2023-06-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2023-06-01 Jonathan Wakely <jwakely@redhat.com>
PR target/109954
* doc/invoke.texi (x86 Options): Fix description of -m32 option.
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-21 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-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-04 Richard Biener <rguenther@suse.de>
Revert:
2023-02-07 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-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 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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-03 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): Define to false if cfun and
cfun->curr_properties has PROP_gimple_opt_math resp. PROP_gimple_lvec
property set.
2023-05-03 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-03 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-03 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-03 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-03 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-03 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-03 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.
2023-05-03 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.
2023-05-03 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.
2023-05-03 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.
2023-05-03 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.
2023-05-03 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.
2023-05-03 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.
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-18 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-18 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-18 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.
2023-04-18 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.
2023-04-18 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.
2023-04-18 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.
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-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-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-03 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-26 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-26 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-26 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.
2023-01-26 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.
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 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-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-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-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-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/107485
* tree-inline.c (remap_gimple_stmt): Use correct type for
split out condition of [VEC_]COND_EXPRs.
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-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-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-21 Eric Botcazou <ebotcazou@adacore.com>
PR target/107336
* optabs.c (expand_vec_cond_expr): Query both VCOND and VCONDU for
EQ and NE.
2022-10-21 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-21 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-21 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-20 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-14 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-14 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-14 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-14 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-14 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-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-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-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-13 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-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@linux.ibm.com>
Backported from master:
2022-08-16 Kewen Lin <linkw@linux.ibm.com>
PR target/103353
* config/rs6000/mma.md (define_expand movpoi): Move TARGET_MMA condition
check to preparation statements and add handlings for !TARGET_MMA.
(define_expand movpxi): Likewise.
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-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-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 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-13 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-06-28 Release Manager
* GCC 10.4.0 released.
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-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 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 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 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 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.
2022-06-15 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.
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-13 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-06-09 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-06-06 Alan Modra <amodra@gmail.com>
Backported from master:
2020-10-24 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit
AND addressing to just lvx/stvx style addresses.
2022-05-31 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-sections.def (objc2_class_names_section,
objc2_method_names_section, objc2_method_types_section): New
* config/darwin.c (output_objc_section_asm_op): Output new
sections. (darwin_objc2_section): Select new sections where
used.
(darwin_label_is_anonymous_local_objc_name): Make
protocol class methods linker-visible.
2022-05-29 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-05-29 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-07-09 Iain Sandoe <iain@sandoe.co.uk>
PR target/100152
* config/i386/i386-expand.c (ix86_expand_call): If a call is
to a non-local-binding, or local but to a public symbol, then
assume that it might be indirected via the lazy symbol binder.
Mark R10 and R10 as clobbered in that case.
2022-05-29 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-05-29 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-05-29 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-05-29 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-05-29 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-05-29 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-05-29 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-05-29 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-05-29 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
Amend handling for LD64_VERSION fallback defaults.
2022-05-29 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-05-29 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-05-29 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.
2022-05-29 Saagar Jha <saagar@saagarjha.com>
Backported from master:
2021-10-27 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-05-29 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.
2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.c (darwin_fold_builtin): Make fcode an int to
avoid a mismatch with DECL_MD_FUNCTION_CODE().
2022-05-27 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-27 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-27 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-27 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-27 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-27 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-27 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-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/tmmintrin.h: Likewise.
* config/rs6000/xmmintrin.h: Likewise.
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-10 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-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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-05-10 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.
2022-05-10 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).
2022-05-10 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.
2022-05-10 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.
2022-05-10 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.
2022-05-10 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.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-10-10 Jakub Jelinek <jakub@redhat.com>
PR debug/102441
* var-tracking.c (add_stores): For cselib_sp_derived_value_p values
use MO_VAL_SET if loc is not sp.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-09-28 Jakub Jelinek <jakub@redhat.com>
PR target/102498
* config/i386/i386.c (standard_80387_constant_p): Don't recognize
special 80387 instruction XFmode constants if flag_rounding_math.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-09-15 Jakub Jelinek <jakub@redhat.com>
PR c++/88578
PR c++/102295
* varasm.c (output_constructor_regular_field): Instead of assertion
that array_size_for_constructor result is equal to size of
TREE_TYPE (local->val) in bytes, assert that the type size is greater
or equal to array_size_for_constructor result and use type size as
fieldsize.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-09-08 Jakub Jelinek <jakub@redhat.com>
PR target/102224
* config/i386/i386.md (xorsign<mode>3): If operands[1] is equal to
operands[2], emit abs<mode>2 instead.
(@xorsign<mode>3_1): Add early-clobber for output operand.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-08-23 Jakub Jelinek <jakub@redhat.com>
PR debug/101905
* dwarf2out.c (gen_variable_die): Add DW_AT_location for global
register variables already during early_dwarf if possible.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-07-28 Jakub Jelinek <jakub@redhat.com>
PR middle-end/101624
* ubsan.c (maybe_instrument_pointer_overflow,
instrument_object_size): Only test DECL_REGISTER on VAR_DECLs,
PARM_DECLs or RESULT_DECLs.
* sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-07-23 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/101562
* expmed.c (store_integral_bit_field): Only use movstrict_optab
if the operand isn't paradoxical.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-07-21 Jakub Jelinek <jakub@redhat.com>
PR middle-end/101535
* gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
contexts in which decl isn't privatized and for ORT_TARGET return
false if decl is mapped.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-07-20 Jakub Jelinek <jakub@redhat.com>
PR target/101384
* config/rs6000/rs6000.c (vspltis_constant): Accept EASY_VECTOR_MSB
only if step and copies are equal to 1.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-07-01 Jakub Jelinek <jakub@redhat.com>
PR middle-end/94366
* omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
use boolean_type_node instead of integer_type_node as NE_EXPR type.
(lower_reduction_clauses): Likewise.
2022-05-10 Tobias Burnus <tobias@codesourcery.com>
Backported from master:
2021-05-04 Tobias Burnus <tobias@codesourcery.com>
* omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
&& and || with floating-point and complex arguments.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-07-14 Jakub Jelinek <jakub@redhat.com>
PR go/101407
* godump.c (godump_str_hash): New type.
(godump_container::pot_dummy_types): Use string_hash instead of
ptr_hash in the hash_set.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-07-01 Jakub Jelinek <jakub@redhat.com>
PR debug/101266
* dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-29 Jakub Jelinek <jakub@redhat.com>
PR c++/101210
* match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
perform the optimization in GENERIC when sanitizing and x has a
reference type.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-23 Jakub Jelinek <jakub@redhat.com>
PR middle-end/101167
* omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-21 Jakub Jelinek <jakub@redhat.com>
PR inline-asm/100785
* cfgexpand.c (expand_asm_stmt): If errors are emitted,
remove all inputs, outputs and clobbers from the asm and
set template to "".
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-18 Jakub Jelinek <jakub@redhat.com>
PR middle-end/101062
* stor-layout.c (finish_bitfield_layout): Don't add bitfield
representatives in QUAL_UNION_TYPE.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-16 Jakub Jelinek <jakub@redhat.com>
PR middle-end/101062
* stor-layout.c (finish_bitfield_representative): For fields in unions
assume nextf is always NULL.
(finish_bitfield_layout): Compute bit field representatives also in
unions, but handle it as if each bitfield was the only field in the
aggregate.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-15 Jakub Jelinek <jakub@redhat.com>
PR target/101046
* expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-11 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/101008
* simplify-rtx.c (relational_result): New function.
(simplify_logical_relational_operation,
simplify_relational_operation): Use it.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-07 Jakub Jelinek <jakub@redhat.com>
PR target/100887
* fold-const.c (fold_read_from_vector): Return NULL if trying to
read from a CONSTRUCTOR with vector type elements.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-07 Jakub Jelinek <jakub@redhat.com>
PR middle-end/100898
* tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
should copy any arguments. Don't call gimple_call_num_args
on id->call_stmt or call_stmt more than once.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-06-04 Jakub Jelinek <jakub@redhat.com>
PR target/100887
* config/i386/i386-expand.c (ix86_expand_vector_init): Handle
concatenation from half-sized modes with TImode elements.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-05-18 Jakub Jelinek <jakub@redhat.com>
PR c++/100580
* function.c (push_dummy_function): Set DECL_ARTIFICIAL and
DECL_ASSEMBLER_NAME on the fn_decl.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-05-15 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/100342
* regcprop.c (copy_value): When copying a source reg in a wider
mode than it has recorded for the value, adjust recorded destination
mode too or punt if !REG_CAN_CHANGE_MODE_P.
2022-05-10 liuhongt <hongtao.liu@intel.com>
Backported from master:
2021-01-21 liuhongt <hongtao.liu@intel.com>
PR rtl-optimization/98694
* regcprop.c (copy_value): If SRC had been assigned a mode
narrower than the copy, we can't link DEST into the chain even
they have same hard_regno_nregs(i.e. HImode/SImode in i386
backend).
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-05-12 Jakub Jelinek <jakub@redhat.com>
PR middle-end/100508
* cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
type, don't reuse DECL_RTL if it has different mode, instead force
creation of a new DEBUG_EXPR.
2022-05-10 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-05-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/100471
* omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
is 0, bypass the reduction loop including
GOMP_taskgroup_reduction_unregister call.
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 Michael Meissner <meissner@linux.ibm.com>
Backported from master:
2022-05-06 Michael Meissner <meissner@linux.ibm.com>
PR target/102059
* config/rs6000/rs6000.c (rs6000_can_inline_p): Ignore -mpower8-fusion
option for inlining purposes.
2022-05-06 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-05-06 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-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 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-04-21 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-04-21 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-04-21 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-04-21 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-04-21 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-21 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-05 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-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-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-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-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-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-03-12 Michael Meissner <meissner@the-meissners.org>
PR target/99708
* config/rs6000/rs6000-c.c: Revert 2022-03-05 patch.
2022-03-06 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 made to the master branch on 2022-02-14.
2022-03-06 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 to master branch on 2022-02-17.
2022-02-17 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.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
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.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
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.
2022-02-17 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.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-06-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/100923
* tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
the operand vector to be valueized.
(valueize_refs): Likewise.
(valueize_shared_reference_ops_from_ref): Adjust.
(valueize_shared_reference_ops_from_call): Likewise.
(vn_reference_lookup_3): Likewise.
(vn_reference_lookup_pieces): Likewise. Re-valueize
with honoring availability when we are about to create
the ao_ref and valueized before.
(vn_reference_lookup): Likewise.
(vn_reference_insert_pieces): Adjust.
2022-02-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-06-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/101158
* tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
checking after checking for matching operation.
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 Alan Modra <amodra@gmail.com>
Backported from master:
2020-10-01 Alan Modra <amodra@gmail.com>
* config/rs6000/ppc-asm.h: Support __PCREL__ code.
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/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-03 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 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-15 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.
2022-01-15 Peter Bergner <bergner@linux.ibm.com>
* config/rs6000/mma.md (UNSPEC_VSX_ASSEMBLE): New unspec.
(vsx_assemble_pair): Use mma_assemble_input_operand.
Expand into UNSPEC_VSX_ASSEMBLE wrapper.
(*vsx_assemble_pair): New define_insn_and_split.
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle
UNSPEC_VSX_ASSEMBLE.
2022-01-15 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-09-14 Peter Bergner <bergner@linux.ibm.com>
* config/rs6000/mma.md (unspecv): Add UNSPECV_MMA_XXSETACCZ.
(*movpxi): Remove 'O' alternative.
(mma_xxsetaccz): Change to define_insn. Use UNSPECV_MMA_XXSETACCZ.
Add comment.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Handle UNSPEC_VOLATILE.
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-12 Richard Biener <rguenther@suse.de>
Backported from master:
2020-11-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/97953
* gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::record_ranges_from_incoming_edge): Make
sure the condition post-dominates the SSA definition before
recording into SSA_NAME_RANGE_INFO.
2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
PR target/103465
* coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
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-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-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-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-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-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 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-11-09 Richard Biener <rguenther@suse.de>
Backported from master:
2021-05-19 Richard Biener <rguenther@suse.de>
PR middle-end/100672
* fold-const.c (fold_negate_expr_1): Use element_precision.
(negate_expr_p): Likewise.
2021-11-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/100253
* tree-vect-stmts.c (vectorizable_load): Do not assume
element alignment when DR_MISALIGNMENT is -1.
(vectorizable_store): Likewise.
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-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-02 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-28 Eric Botcazou <ebotcazou@adacore.com>
* doc/invoke.texi (%X): Remove obsolete reference to -Wl.
2021-10-27 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-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.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-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 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 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-13 Richard Biener <rguenther@suse.de>
Backported from master:
2021-08-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/102046
* tree-vect-slp.c (vect_build_slp_tree_2): Conservatively
update ->any_pattern when swapping operands.
2021-10-13 Richard Biener <rguenther@suse.de>
Backported from master:
2021-08-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/101925
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set
reverse on COMPONENT_REF and ARRAY_REF according to
what reverse_storage_order_for_component_p does.
(vn_reference_eq): Compare reversed on reference ops.
(reverse_storage_order_for_component_p): New overload.
(vn_reference_lookup_3): Check reverse_storage_order_for_component_p
on the reference looked up.
2021-10-13 Richard Biener <rguenther@suse.de>
Backported from master:
2021-08-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/101373
PR tree-optimization/101868
* tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
references when the BB may not return.
2021-10-13 Richard Biener <rguenther@suse.de>
Backported from master:
2021-08-10 Richard Biener <rguenther@suse.de>
PR middle-end/101824
* tree-nested.c (get_frame_field): Mark the COMPONENT_REF as
volatile in case the variable was.
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-11 Andrew Pinski <apinski@marvell.com>
PR tree-optimization/102622
* tree-ssa-phiopt.c (conditional_replacement): Set neg
to false for one bit signed types.
2021-10-01 Eric Botcazou <ebotcazou@adacore.com>
* explow.c: Include langhooks.h.
(set_stack_check_libfunc): Build a proper function type.
2021-10-01 Eric Botcazou <ebotcazou@adacore.com>
PR c++/64697
* config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do
not return true for external weak function symbols in medium model.
2021-09-22 Kewen Lin <linkw@linux.ibm.com>
Backported from master:
2021-09-22 Kewen Lin <linkw@linux.ibm.com>
* ipa-fnsummary.c (inline_read_section): Unpack a dummy bit
to keep consistent with the side of streaming out.
2021-09-21 Segher Boessenkool <segher@kernel.crashing.org>
Backported from master:
2021-09-08 Segher Boessenkool <segher@kernel.crashing.org>
PR target/102107
* config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use
r11 instead of r12 for restoring CR.
2021-09-21 Segher Boessenkool <segher@kernel.crashing.org>
Backported from master:
2021-09-03 Segher Boessenkool <segher@kernel.crashing.org>
PR target/102107
* config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11
instead of r12 for CR save, in all cases.
2021-09-17 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/102306
* combine.c (try_combine): Abort the combination if we are about to
duplicate volatile references.
2021-09-16 Daniel Cederman <cederman@gaisler.com>
* config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5
* config/sparc/sparc.c (struct processor_costs): Add LEON5 costs
(leon5_adjust_cost): Increase cost of store with data dependency
on ALU instruction and FPU anti-dependencies.
(sparc_option_override): Add LEON5 costs
(sparc_adjust_cost): Add LEON5 cost adjustments
* config/sparc/sparc.h: Add LEON5
* config/sparc/sparc.md: Include LEON5 scheduling information
* config/sparc/sparc.opt: Add LEON5
* doc/invoke.texi: Add LEON5
* config/sparc/leon5.md: New file.
2021-09-16 Daniel Cederman <cederman@gaisler.com>
* config/sparc/sparc.md (stack_protect_setsi): Add NOP to prevent
sensitive sequence for B2BST errata workaround.
2021-09-16 Daniel Cederman <cederman@gaisler.com>
* config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin
functions with atomic instruction in the UT700 errata workaround.
2021-09-16 Daniel Cederman <cederman@gaisler.com>
* config/sparc/sparc.c (next_active_non_empty_insn): New function
that returns next active non empty assembly instruction.
(sparc_do_work_around_errata): Use new function.
2021-09-16 Daniel Cederman <cederman@gaisler.com>
* config/sparc/sparc.c (store_insn_p): Add predicate for store
attributes.
(load_insn_p): Add predicate for load attributes.
(sparc_do_work_around_errata): Use new predicates.
2021-09-16 Andreas Larsson <andreas@gaisler.com>
* config/sparc/sparc.c (dump_target_flag_bits): Print bit names for
LEON and LEON3.
2021-09-14 Xionghu Luo <luoxhu@linux.ibm.com>
Backported from master:
2021-09-07 Xionghu Luo <luoxhu@linux.ibm.com>
PR target/97142
* config/rs6000/rs6000.md (fmod<mode>3): New define_expand.
(remainder<mode>3): Likewise.
2021-09-08 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2021-09-08 Jonathan Wakely <jwakely@redhat.com>
PR c++/60318
* doc/trouble.texi (Copy Assignment): Fix description of
behaviour and fix code in example.
2021-09-06 Richard Biener <rguenther@suse.de>
Backported from master:
2021-07-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/101394
* tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
copies from abnormals for a full redundancy.
2021-09-06 Richard Biener <rguenther@suse.de>
Backported from master:
2021-07-05 Richard Biener <rguenther@suse.de>
PR middle-end/101291
* cfgloopmanip.c (loop_version): Set the loop copy of the
versioned loop to the new loop.
2021-09-06 Richard Biener <rguenther@suse.de>
Backported from master:
2021-07-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/101173
PR tree-optimization/101280
* gimple-loop-interchange.cc
(tree_loop_interchange::valid_data_dependences): Properly
guard all dependence checks with DDR_REVERSED_P or its
inverse.
2021-09-06 Richard Biener <rguenther@suse.de>
Backported from master:
2021-06-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/101105
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Only ignore steps when they are equal or scalar order is preserved.
2021-09-06 Richard Biener <rguenther@suse.de>
Backported from master:
2021-06-11 Richard Biener <rguenther@suse.de>
PR middle-end/101009
* tree-data-ref.c (build_classic_dist_vector_1): Make sure
to set *init_b to true when we encounter a constant equal
index pair.
(compute_affine_dependence): Also dump the actual DR_REF.
2021-09-03 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-08-19 Peter Bergner <bergner@linux.ibm.com>
PR target/101849
* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast
pointer to __vector_pair *.
2021-09-03 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-07-07 Peter Bergner <bergner@linux.ibm.com>
* config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
and VSX_BUILTIN_STXVP.
2021-09-03 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-07-02 Peter Bergner <bergner@linux.ibm.com>
* config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
New macros.
(__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
lxvp and stxvp built-ins.
(mma_init_builtins): Handle lxvp and stxvp built-ins.
(builtin_function_type): Likewise.
* doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.
2021-09-03 Peter Bergner <bergner@linux.ibm.com>
* config/rs6000/rs6000-call.c (mma_init_builtins): Test for
MMA_BUILTIN_DISASSEMBLE_ACC and VSX_BUILTIN_DISASSEMBLE_PAIR.
(rs6000_gimple_fold_mma_builtin): Likewise.
2021-08-31 Thomas Schwinge <thomas@codesourcery.com>
Backported from master:
2021-08-31 Thomas Schwinge <thomas@codesourcery.com>
* tree.c (walk_tree_1) <OMP_CLAUSE_TILE>: Handle three operands.
2021-08-27 konglin1 <lingling.kong@intel.com>
PR target/101472
* config/i386/sse.md: (<avx512>scattersi<mode>): Add mask operand to
UNSPEC_VSIBADDR.
(<avx512>scattersi<mode>): Likewise.
(*avx512f_scattersi<VI48F:mode>): Merge mask operand to set_dest.
(*avx512f_scatterdi<VI48F:mode>): Likewise
2021-08-25 konglin1 <lingling.kong@intel.com>
PR target/101471
* config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix
macro define in O0.
(_mm512_mask_fpclass_ps_mask): Ditto.
2021-08-24 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-08-24 Richard Earnshaw <rearnsha@arm.com>
PR target/102035
* config/arm/arm.md (attribute arch): Add fix_vlldm.
(arch_enabled): Use it.
* config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to
use when erratum mitigation is needed.
2021-08-24 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-08-24 Richard Earnshaw <rearnsha@arm.com>
PR target/102035
* config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option.
* doc/invoke.texi (Arm Options): Document it.
* config/arm/arm-cpus.in (quirk_vlldm): New feature bit.
(ALL_QUIRKS): Add quirk_vlldm.
(cortex-m33): Add quirk_vlldm.
(cortex-m35p, cortex-m55): Likewise.
* config/arm/arm.c (arm_option_override): Enable fix_vlldm if
targetting an affected CPU and not explicitly controlled on
the command line.
2021-08-24 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-08-24 Richard Earnshaw <rearnsha@arm.com>
* config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL.
(lazy_load_multiple_insn): Likewise.
2021-08-24 Richard Biener <rguenther@suse.de>
Backported from master:
2021-08-23 Richard Biener <rguenther@suse.de>
PR ipa/97565
* tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition
in addition to has_gimple_body.
2021-08-23 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-08-05 Richard Earnshaw <rearnsha@arm.com>
PR target/101723
* config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress
writing .cpu directive in asm output.
* config/arm/arm.c (arm_identify_fpu_from_isa): New variable.
(arm_last_printed_arch_string): Delete.
(arm_last-printed_fpu_string): Delete.
(arm_configure_build_target): If use of floating-point/SIMD is
disabled, remove all fp/simd related features from the target ISA.
(last_arm_targ_options): New variable.
(arm_print_asm_arch_directives): Add new parameters. Change order
of emitted directives and handle all cases here.
(arm_file_start): Always call arm_print_asm_arch_directives, move
all generation of .arch/.arch_extension here.
(arm_file_end): Call arm_print_asm_arch.
(arm_declare_function_name): Call arm_print_asm_arch_directives
instead of printing .arch/.fpu directives directly.
2021-08-23 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-08-05 Richard Earnshaw <rearnsha@arm.com>
* config/arm/arm.c (arm_configure_build_target): Don't call
arm_option_reconfigure_globals.
(arm_option_restore): Call arm_option_reconfigure_globals after
reconfiguring the target.
* config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
2021-08-23 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-08-05 Richard Earnshaw <rearnsha@arm.com>
* config/arm/arm.c (arm_configure_build_target): Ensure the target's
arch_name is always set.
2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com>
Backported from master:
2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com>
* config/arm/arm_mve.h: Fix __arm_vctp16q return type.
2021-08-19 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-05-27 Richard Earnshaw <rearnsha@arm.com>
PR target/100767
* config/arm/arm.c (arm_configure_build_target): Remove parameter
opts_set, directly check opts parameters for being non-null.
(arm_option_restore): Update call to arm_configure_build_target.
(arm_option_override): Likewise.
(arm_can_inline_p): Likewise.
(arm_valid_target_attribute_tree): Likewise.
* config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
* config/arm/arm-protos.h (arm_configure_build_target): Adjust
prototype.
2021-08-17 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-08-03 Richard Sandiford <richard.sandiford@arm.com>
* doc/invoke.texi: Document -mtune=neoverse-512tvb and
-mcpu=neoverse-512tvb.
* config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry.
* config/aarch64/aarch64-tune.md: Regenerate.
2021-08-17 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-04-28 Richard Sandiford <richard.sandiford@arm.com>
PR target/100305
* config/aarch64/constraints.md (Utq): Require the address to
be valid for both the element mode and for V2DImode.
2021-08-13 Martin Liska <mliska@suse.cz>
PR gcov-profile/100788
* coverage.c (coverage_begin_function): Update function
beginning when #line macro is used.
2021-07-31 Xi Ruoyao <xry111@mengyan1223.wang>
Backported from master:
2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang>
PR target/94780
* config/mips/mips.c (mips_atomic_assign_expand_fenv): Use
TARGET_EXPR instead of MODIFY_EXPR.
2021-07-28 Martin Sebor <msebor@redhat.com>
PR c/99295
* doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
property.
2021-07-20 Martin Jambor <mjambor@suse.cz>
Backported from master:
2021-07-08 Martin Jambor <mjambor@suse.cz>
PR ipa/101066
* ipa-sra.c (class isra_call_summary): New member
m_before_any_store, initialize it in the constructor.
(isra_call_summary::dump): Dump the new field.
(ipa_sra_call_summaries::duplicate): Copy it.
(process_scan_results): Set it.
(isra_write_edge_summary): Stream it.
(isra_read_edge_summary): Likewise.
(param_splitting_across_edge): Only override
safe_to_import_accesses if m_before_any_store is set.
2021-07-20 Uroš Bizjak <ubizjak@gmail.com>
PR target/100182
* config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
Remove.
(define_peephole2 atomic_loaddi_fpu): Ditto.
2021-07-19 Bill Schmidt <wschmidt@linux.ibm.com>
PR target/101129
* config/rs6000/rs6000-p8swap.c (has_part_mult): New.
(rs6000_analyze_swaps): Insns containing a subreg of a mult are
not swappable.
2021-07-19 Segher Boessenkool <segher@kernel.crashing.org>
PR rtl-optimization/99927
* combine.c (distribute_notes) [REG_UNUSED]: If the register already
is dead, just drop it.
2021-07-02 Eric Botcazou <ebotcazou@adacore.com>
* config/i386/i386.c (asm_preferred_eh_data_format): Always use the
PIC encodings for PE-COFF targets.
2021-06-24 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2021-06-23 Uroš Bizjak <ubizjak@gmail.com>
PR target/101175
* config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
(bsr): Ditto.
(*bsrhi): Remove.
(clz<mode>2): Update RTX pattern for additions.
2021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
Backported from master:
2021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
PR target/100856
* common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
derived from arm_canon_arch.
(arm_canon_arch_option): Call it.
(arm_canon_arch_multilib_option): New function.
* config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
* config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
(CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
(MULTILIB_ARCH_CANONICAL_SPECS): New macro.
(DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
* config/arm/arm.opt (mlibarch): New option.
* config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
of march on RHS with mlibarch.
2021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
Backported from master:
2021-06-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
PR target/101016
* config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
the polymorphic variants matching code.
(__arm_vld1q_z): Likewise.
(__arm_vld2q): Likewise.
(__arm_vld4q): Likewise.
(__arm_vldrbq_gather_offset): Likewise.
(__arm_vldrbq_gather_offset_z): Likewise.
2021-06-18 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-06-14 Peter Bergner <bergner@linux.ibm.com>
PR target/100777
* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
create_tmp_reg_or_ssa_name().
2021-06-18 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-06-10 Peter Bergner <bergner@linux.ibm.com>
* config/rs6000/rs6000-builtin.def (build_pair): New built-in.
(build_acc): Likewise.
* config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
source operands in little-endian mode.
(rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
(mma_init_builtins): Likewise.
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
ordering for the MMA assemble and build source operands.
* doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
Document.
(__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
documentation.
2021-06-18 Peter Bergner <bergner@linux.ibm.com>
Backported from master:
2021-05-31 Peter Bergner <bergner@linux.ibm.com>
PR target/99842
* config/rs6000/predicates.md(mma_assemble_input_operand): Allow
indexed form addresses.
2021-06-17 Marius Hillenbrand <mhillen@linux.ibm.com>
Backported from master:
2021-06-17 Marius Hillenbrand <mhillen@linux.ibm.com>
PR target/100871
* config/s390/vecintrin.h (vec_doublee): Fix to use
__builtin_s390_vflls.
(vec_floate): Fix to use __builtin_s390_vflrd.
2021-06-16 Richard Biener <rguenther@suse.de>
Backported from master:
2021-06-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/100934
* tree-ssa-dom.c (pass_dominator::execute): Properly
mark irreducible regions.
2021-06-16 Richard Biener <rguenther@suse.de>
Backported from master:
2021-05-28 Richard Biener <rguenther@suse.de>
PR ipa/100791
* tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
copy fntype from original call.
2021-06-16 Richard Biener <rguenther@suse.de>
Backported from master:
2021-05-11 Richard Biener <rguenther@suse.de>
PR ipa/100513
* ipa-param-manipulation.c
(ipa_param_body_adjustments::modify_call_stmt): Avoid
altering SSA_NAME_DEF_STMT by adjusting the calls LHS
via gimple_call_lhs_ptr.
2021-06-16 Richard Biener <rguenther@suse.de>
Backported from master:
2021-05-11 Richard Biener <rguenther@suse.de>
PR middle-end/100509
* gimple-fold.c (fold_gimple_assign): Only call
get_symbol_constant_value on register type symbols.
2021-06-16 Richard Biener <rguenther@suse.de>
Backported from master:
2021-05-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/100492
* tree-loop-distribution.c (find_seed_stmts_for_distribution):
Find nothing when the loop contains an irreducible region.
2021-06-04 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-05-19 Alex Coplan <alex.coplan@arm.com>
PR target/100333
* config/arm/arm.md (nonsecure_call_internal): Always ensure
callee's address is in a register.
2021-06-02 Vladimir N. Makarov <vmakarov@redhat.com>
Backported from master:
2021-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
PR rtl-optimization/98777
* lra-int.h (lra_pmode_pseudo): New extern.
* lra.c (lra_pmode_pseudo): New global.
(lra): Set it up.
* lra-eliminations.c (eliminate_regs_in_insn): Use it.
2021-06-02 Vladimir N. Makarov <vmakarov@redhat.com>
Backported from master:
2021-01-20 Vladimir N. Makarov <vmakarov@redhat.com>
PR rtl-optimization/98722
* lra-eliminations.c (eliminate_regs_in_insn): Check that target
has no 3-op add insn to transform insns containing two pluses.
2021-06-02 Vladimir N. Makarov <vmakarov@redhat.com>
Backported from master:
2021-01-12 Vladimir N. Makarov <vmakarov@redhat.com>
PR target/97969
* lra-eliminations.c (eliminate_regs_in_insn): Add transformation
of pattern 'plus (plus (hard reg, const), pseudo)'.
2021-06-02 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2021-06-02 Uroš Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (abs<MMXMODEI:mode>2):
Change define_insn to define_expand.
2021-06-01 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-05-11 Alex Coplan <alex.coplan@arm.com>
PR target/99725
* config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
Avoid emitting CFA adjusts on the sp if we have the fp.
2021-05-25 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-05-10 Alex Coplan <alex.coplan@arm.com>
PR target/99960
* config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.
2021-05-20 Alex Coplan <alex.coplan@arm.com>
Christophe Lyon <christophe.lyon@linaro.org>
PR target/99977
* config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
with negative immediates: ensure we expand cbranchsi4_scratch
correctly and ensure we satisfy its constraints.
* config/arm/sync.md
(@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
attempt to tie two output operands together with constraints;
collapse two alternatives.
(@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
* config/arm/thumb1.md (cbranchsi4_neg_late): New.
2021-05-19 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2021-05-19 Jonathan Wakely <jwakely@redhat.com>
* doc/cpp.texi (Common Predefined Macros): Update documentation
for the __GXX_EXPERIMENTAL_CXX0X__ macro.
2021-05-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-01-28 Richard Biener <rguenther@suse.de>
PR rtl-optimization/80960
* dse.c (check_mem_read_rtx): Call get_addr on the
offsetted address.
2021-05-17 Richard Biener <rguenther@suse.de>
Backported from master:
2021-05-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/100566
* tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
allow_back for all edge queries.
2021-05-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
Backported from master:
2021-05-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
Joe Ramsay <joe.ramsay@arm.com>
PR target/100419
* config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
(__arm_vcmpneq): Remove duplicate definition.
(__arm_vstrwq_scatter_offset_p): Likewise.
(__arm_vmaxq_x): Likewise.
(__arm_vmlsdavaq): Likewise.
(__arm_vmlsdavaxq): Likewise.
(__arm_vmlsdavq_p): Likewise.
(__arm_vmlsdavxq_p): Likewise.
(__arm_vrmlaldavhaq): Likewise.
(__arm_vstrbq_p): Likewise.
(__arm_vstrbq_scatter_offset): Likewise.
(__arm_vstrbq_scatter_offset_p): Likewise.
(__arm_vstrdq_scatter_offset): Likewise.
(__arm_vstrdq_scatter_offset_p): Likewise.
(__arm_vstrdq_scatter_shifted_offset): Likewise.
(__arm_vstrdq_scatter_shifted_offset_p): Likewise.
2021-05-13 Richard Earnshaw <rearnsha@arm.com>
PR target/100563
* config/arm/arm.c (arm_canonicalize_comparison): Correctly
canonicalize DImode inequality comparisons against the
maximum integral value.
2021-05-12 Martin Sebor <msebor@redhat.com>
PR middle-end/100571
* calls.c (maybe_warn_rdwr_sizes): Clear object size if it can't
be determined.
2021-05-12 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-05-11 Alex Coplan <alex.coplan@arm.com>
PR target/99988
* config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
(rest_of_insert_bti): Avoid inserting duplicate bti j insns for
jump table targets.
2021-05-11 Geng Qi <gengqi@linux.alibaba.com>
Backported from master:
2021-04-30 Geng Qi <gengqi@linux.alibaba.com>
* config/riscv/riscv.opt (march=,mabi=): Negative itself.
2021-05-10 Segher Boessenkool <segher@kernel.crashing.org>
Backported from master:
2021-04-20 Segher Boessenkool <segher@kernel.crashing.org>
PR target/100108
* config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
OPTION_MASK_ISEL.
2021-05-06 Roman Zhuykov <zhroma@ispras.ru>
Backported from master:
2021-04-30 Roman Zhuykov <zhroma@ispras.ru>
PR rtl-optimization/100225
PR rtl-optimization/84878
* modulo-sched.c (sms_schedule): Use note_stores to skip loops
where we have an instruction which touches (writes) any hard
register from df->regular_block_artificial_uses set.
Allow not-single-set instruction only right before basic block
tail.
2021-05-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
Backported from master:
2020-09-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not
check +D32 for CMSE if -mfloat-abi=soft
2021-05-06 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
Backported from master:
2020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
PR target/95646
* config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use
'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'.
2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
PR target/100402
* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
always return the establisher frame for __builtin_frame_address (0).
2021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Backported from master:
2021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
PR rtl-optimization/100263
* postreload.c (move2add_valid_value_p): Ensure register can
change mode.
2021-05-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/98786
* tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
adding new uses of abnormals.
2021-05-05 Richard Biener <rguenther@suse.de>
Backported from master:
2021-04-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/100278
* tree-ssa-pre.c (compute_avail): Give up when we cannot
adjust TBAA beacuse of mismatching bases.
2021-05-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-05-02 Jakub Jelinek <jakub@redhat.com>
PR target/100375
* config/nvptx/nvptx.c (nvptx_sese_pseudo): Use NULL instead of 0
as first argument of pseudo_node_t constructors.
2021-05-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-29 Jakub Jelinek <jakub@redhat.com>
PR target/100302
* config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
absu_hwi instead of abs_hwi.
2021-05-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-27 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/100254
* cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.
2021-05-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-26 Jakub Jelinek <jakub@redhat.com>
PR debug/100255
* vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
register keywords.
2021-05-04 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-04-23 Alex Coplan <alex.coplan@arm.com>
PR rtl-optimization/100230
* early-remat.c (early_remat::sort_candidates): Use delete[]
instead of delete for array allocated with new[].
2021-04-30 David Edelsohn <dje.gcc@gmail.com>
Backported from master:
2021-04-27 David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
* config/rs6000/aix64.opt (m64): New.
(m32): New.
2021-04-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/96513
* tree-vect-slp.c (struct vdhs_data): New.
(vect_detect_hybrid_slp): New walker.
(vect_detect_hybrid_slp): Rewrite.
2021-04-29 Richard Earnshaw <rearnsha@arm.com>
Backported from master:
2021-04-28 Richard Earnshaw <rearnsha@arm.com>
PR target/100311
* config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
used in HImode.
2021-04-28 Uros Bizjak <ubizjak@gmail.com>
Backported from master:
2021-04-23 Uroš Bizjak <ubizjak@gmail.com>
PR target/100182
* config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
Copy operand 3 to operand 4. Use sse_reg_operand
as operand 3 predicate.
(FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
(LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
(LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
(FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
Copy operand 1 to operand 0.
(FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
(LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
(LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.
2021-04-26 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-04-08 Alex Coplan <alex.coplan@arm.com>
PR target/99647
* config/arm/iterators.md (MVE_vecs): New.
(V_elem): Also handle V2DF.
* config/arm/mve.md (*mve_mov<mode>): Rename to ...
(*mve_vdup<mode>): ... this. Remove second alternative since
vec_duplicate of const_int is not canonical RTL, and we don't
want to match symbol_refs.
(*mve_vec_duplicate<mode>): Delete (pattern is redundant).
2021-04-26 Richard Biener <rguenther@suse.de>
Backported from master:
2021-04-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/100053
* tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
not use optimistic dominance queries for backedges to validate
predicated values.
(dominated_by_p_w_unex): Add parameter to ignore executable
state on backedges.
(rpo_elim::eliminate_avail): Adjust.
2021-04-26 Richard Biener <rguenther@suse.de>
Backported from master:
2021-04-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/99954
* tree-loop-distribution.c: Include tree-affine.h.
(generate_memcpy_builtin): Try using tree-affine to prove
non-overlap.
(loop_distribution::classify_builtin_ldst): Always classify
as PKIND_MEMMOVE.
2021-04-26 Richard Biener <rguenther@suse.de>
Backported from master:
2021-04-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/99880
* tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
set vectorized defs of relevant PHIs.
2021-04-24 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/96796
* lra-constraints.c (in_class_p): Add a default-false
allow_all_reload_class_changes_p parameter. Do not treat
reload moves specially when the parameter is true.
(get_reload_reg): Try to narrow the class of an existing OP_OUT
reload if we're reloading a reload pseudo in a reload instruction.
2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
Backported from master:
2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
* config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.
2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
Backported from master:
2021-04-23 YiFei Zhu <zhuyifei1999@gmail.com>
* config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.
2021-04-23 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/99929
* rtl.h (same_vector_encodings_p): New function.
* cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
* cselib.c (rtx_equal_for_cselib_1): Likewise.
* jump.c (rtx_renumbered_equal_p): Likewise.
* lra-constraints.c (operands_match_p): Likewise.
* reload.c (operands_match_p): Likewise.
* rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.
2021-04-23 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
PR target/98119
* config/aarch64/aarch64.c
(aarch64_vectorize_preferred_vector_alignment): Query the size
of the provided SVE vector; do not assume that all SVE vectors
have the same size.
2021-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
Backported from master:
2021-04-07 Bin Cheng <bin.cheng@linux.alibaba.com>
PR tree-optimization/98736
* tree-loop-distribution.c
* (loop_distribution::bb_top_order_init):
Compute RPO with programing order preserved by calling function
rev_post_order_and_mark_dfs_back_seme.
2021-04-23 Richard Biener <rguenther@suse.de>
Backported from master:
2020-07-31 Richard Biener <rguenther@suse.de>
* cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust
prototype.
* cfganal.c (rpoamdbs_bb_data): New struct with pre BB data.
(tag_header): New helper.
(cmp_edge_dest_pre): Likewise.
(rev_post_order_and_mark_dfs_back_seme): Compute SCCs,
find SCC exits and perform a DFS walk with extra edges to
compute a RPO with adjacent SCC members when requesting an
iteration optimized order and populate the toplevel SCC array.
* tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation
of max_rpo and fill it in from SCC extent info instead.
2021-04-23 Richard Biener <rguenther@suse.de>
Backported from master:
2020-07-20 Richard Biener <rguenther@suse.de>
* cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove
write-only post array.
2021-04-23 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-04-06 Alex Coplan <alex.coplan@arm.com>
PR target/99748
* config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
PCS for [su]fix_optab.
2021-04-23 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-04-14 Richard Sandiford <richard.sandiford@arm.com>
PR target/99249
* config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
New function.
(aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.
2021-04-23 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/97141
PR rtl-optimization/98726
* emit-rtl.c (valid_for_const_vector_p): Return true for
CONST_POLY_INT_P.
* rtx-vector-builder.h (rtx_vector_builder::step): Return a
poly_wide_int instead of a wide_int.
(rtx_vector_builder::apply_set): Take a poly_wide_int instead
of a wide_int.
* rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
* config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
false for CONST_VECTORs that cannot be forced to memory.
* config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
is too complex to force to memory, build it up from individual
elements instead.
2021-04-23 Richard Biener <rguenther@suse.de>
Backported from master:
2021-01-26 Richard Biener <rguenther@suse.de>
PR middle-end/98726
* tree.h (vector_cst_int_elt): Remove.
* tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
make static.
2021-04-23 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-03-30 Richard Sandiford <richard.sandiford@arm.com>
PR target/98136
* config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
CONST_INTs to aarch64_expand_mov_immediate when called after RA.
2021-04-23 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
PR tree-optimization/98268
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
recompute_tree_invariant_for_addr_expr after successfully
folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.
2021-04-23 Richard Sandiford <richard.sandiford@arm.com>
Backported from master:
2021-03-31 Richard Sandiford <richard.sandiford@arm.com>
PR tree-optimization/99726
* tree-data-ref.c (create_intersect_range_checks_index): Bail
out if there is more than one access function SCEV for the loop
being versioned.
2021-04-22 Alex Coplan <alex.coplan@arm.com>
PR target/99216
* config/aarch64/aarch64-sve-builtins.cc
(function_builder::add_function): Add placeholder_p argument, use
placeholder decls if this is set.
(function_builder::add_unique_function): Instead of conditionally adding
direct overloads, unconditionally add either a direct overload or a
placeholder.
(function_builder::add_overloaded_function): Set placeholder_p if we're
using C++ overloads. Use the obstack for string storage instead
of relying on the tree nodes.
(function_builder::add_overloaded_functions): Don't return early for
m_direct_overloads: we need to add placeholders.
* config/aarch64/aarch64-sve-builtins.h
(function_builder::add_function): Add placeholder_p argument.
* lto-streamer.h (LTO_minor_version): Bump.
2021-04-21 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-21 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/100148
* cprop.c (constprop_register): Use next_nondebug_insn instead of
NEXT_INSN.
2021-04-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-16 Jakub Jelinek <jakub@redhat.com>
PR target/99767
* tree-vect-loop.c (vect_transform_loop): Don't remove just
dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
them by their last argument.
2021-04-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-12 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/99905
* combine.c (expand_compound_operation): If pos + len > modewidth,
perform the right shift by pos in inner_mode and then convert to mode,
instead of trying to simplify a shift of rtx with inner_mode by pos
as if it was a shift in mode.
2021-04-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-12 Jakub Jelinek <jakub@redhat.com>
PR debug/99830
* combine.c (simplify_and_const_int_1): Don't optimize varop
away if it has side-effects.
2021-04-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-10 Jakub Jelinek <jakub@redhat.com>
PR lto/99849
* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.
2021-04-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-10 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/98601
* rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT
unaligned_mems handle VOIDmode like BLKmode.
2021-04-20 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-04-03 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/99863
* dse.c (replace_read): Drop regs_live argument. Instead of
regs_live, use store_insn->fixed_regs_live if non-NULL,
otherwise punt if insns sequence clobbers or sets any hard
registers.
2021-04-19 Tobias Burnus <tobias@codesourcery.com>
Backported from master:
2020-11-27 Tobias Burnus <tobias@codesourcery.com>
PR c/97880
* omp-expand.c (expand_oacc_collapse_init, expand_oacc_collapse_vars):
Use now passed diff_type.
(expand_oacc_for): Take largest type for diff_type, taking tiling
and collapsing into account.
2021-04-19 Eric Botcazou <ebotcazou@adacore.com>
* config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
frames larger than the SEH maximum frame size.
2021-04-18 Hafiz Abid Qadeer <abidh@codesourcery.com>
Backported from master:
2021-04-11 Hafiz Abid Qadeer <abidh@codesourcery.com>
PR middle-end/98088
* omp-expand.c (expand_oacc_collapse_init): Update condition in
a gcc_assert.
2021-04-16 Tamar Christina <tamar.christina@arm.com>
Backported from master:
2021-04-16 Tamar Christina <tamar.christina@arm.com>
PR target/100048
* config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
* config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
TRN optab.
* config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
2021-04-08 Richard Biener <rguenther@suse.de>
PR lto/99898
* lto-streamer.h (LTO_minor_version): Bump.
2021-04-08 Release Manager
* GCC 10.3.0 released.
2021-04-04 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-04-03 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.c (machopic_legitimize_pic_address): Check
that the current pic register is one of the hard reg set
before setting liveness.
2021-04-02 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2020-10-23 Jakub Jelinek <jakub@redhat.com>
* Makefile.in (PLUGIN_HEADERS): Add gomp-constants.h and $(EXPR_H).
(s-header-vars): Accept not just spaces but also tabs between *_H name
and =. Handle common/config/ headers similarly to config. Don't
throw away everything from first ... to last / on the remaining
string, instead skip just ... to corresponding last / without
intervening spaces and tabs.
(install-plugin): Treat common/config headers like config headers.
* config/i386/t-i386 (TM_H): Add
$(srcdir)/common/config/i386/i386-cpuinfo.h.
2021-04-01 Jakub Jelinek <jakub@redhat.com>
PR c++/98481
* common.opt (fabi-version): Default to 14.
2021-04-01 Martin Jambor <mjambor@suse.cz>
Backported from master:
2021-04-01 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/97009
* tree-sra.c (access_or_its_child_written): New function.
(propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
test.
2021-04-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/99856
* tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
precision to vector element precision.
2021-03-31 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-03-31 Jan Hubicka <hubicka@ucw.cz>
PR ipa/98265
* cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.
2021-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
PR rtl-optimization/96264
* lra-remat.c (reg_overlap_for_remat_p): Check also output insn
hard regs.
2021-03-31 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR tree-optimization/97849
* tree-if-conv.c (tree_if_conversion): Move ssa_name
replacement code from ifcvt_local_dce to this function
before calling do_rpo_vn.
2021-03-31 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2021-03-31 Jakub Jelinek <jakub@redhat.com>
Richard Sandiford <richard.sandiford@arm.com>
PR target/99813
* config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
constraints on operands[2] and similarly 0 and rk constraints
on operands[1] corresponding to that.
2021-03-31 Jan Hubicka <hubicka@ucw.cz>
* common/config/i386/i386-common.c (ARRAY_SIZE): Make pta_size signed.
2021-03-31 Martin Liska <mliska@suse.cz>
Backported from master:
2021-03-24 Martin Liska <mliska@suse.cz>
PR target/99753
* common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
error.
* config/i386/i386-options.c (ix86_option_override_internal):
Add run-time assert.
2021-03-31 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-03-18 Jan Hubicka <hubicka@ucw.cz>
* config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
integer divides1.
2021-03-31 Jan Hubicka <hubicka@ucw.cz>
* config/i386/x86-tune-costs.h (struct processor_costs): Remove
mask register costs.
2021-03-31 Jan Hubicka <jh@suse.cz>
Backported from master:
2021-03-15 Jan Hubicka <hubicka@ucw.cz>
* config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
* config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
of znver2_cost.
2021-03-31 Jan Hubicka <jh@suse.cz>
* common/config/i386/i386-common.c: Add znver3.
* common/config/i386/i386-cpuinfo.h (enum processor_types): Add
AMDFAM19H
(enum processor_subtypes): Add AMDFAM19H_ZNVER3.
(processor_alias_table): Add znver3 and AMDFAM19H entry.
* common/config/i386/i386-cpuinfo.h (processor_types): Add
AMDFAM19H.
(processor_subtypes): AMDFAM19H_ZNVER3.
* config.gcc (i[34567]86-*-linux* | ...): Likewise.
* config/i386/driver-i386.c: (host_detect_local_cpu): Let
-march=native recognize znver3 processors.
* config/i386/i386-c.c (ix86_target_macros_internal): Add
znver3.
* config/i386/i386-options.c (m_znver3): New definition.
(m_ZNVER): Include m_znver3.
(processor_cost_table): Add znver3.
* config/i386/i386.c (ix86_reassociation_width): Likewise.
* config/i386/i386.h (TARGET_znver3): New definition.
(enum processor_type): Add PROCESSOR_ZNVER3.
* config/i386/i386.md (define_attr "cpu"): Add znver3.
* config/i386/x86-tune-sched.c: (ix86_issue_rate): Likewise.
(ix86_adjust_cost): Likewise.
* config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS):
Likewise.
* config/i386/znver1.md: Add new reservations for znver3.
* doc/extend.texi: Add details about znver3.
* doc/invoke.texi: Likewise.
2021-03-31 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2020-06-24 H.J. Lu <hjl.tools@gmail.com>
PR target/95842
* common/config/i386/i386-common.c (processor_alias_table): Add
processor model and priority to each entry.
(pta_size): Updated with -6.
(num_arch_names): New.
* common/config/i386/i386-cpuinfo.h: New file.
* config/i386/i386-builtins.c (feature_priority): Removed.
(processor_model): Likewise.
(_arch_names_table): Likewise.
(arch_names_table): Likewise.
(_isa_names_table): Replace P_ZERO with P_NONE.
(get_builtin_code_for_version): Replace P_ZERO with P_NONE. Use
processor_alias_table.
(fold_builtin_cpu): Replace arch_names_table with
processor_alias_table.
* config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h".
(pta): Add model and priority.
(num_arch_names): New.
2021-03-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/99037
* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern
matching const_int 0.
(move_lo_quad_internal_be_<mode>): Likewise.
(move_lo_quad_<mode>): Update for the above.
* config/aarch64/iterators.md (VQ_2E): Delete.
2021-03-30 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/99777
* fold-const.c (extract_muldiv_1): For conversions, punt on casts from
types other than scalar integral types.
2021-03-30 Jakub Jelinek <jakub@redhat.com>
PR debug/99334
* dwarf2out.h (struct dw_fde_node): Add rule18 member.
* dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
assignment with drap_reg active, queue reg save for hfp with offset 0
and flush queued reg saves. When handling a push with rule18,
defer queueing reg save for hfp and just assert the offset is 0.
(scan_trace): Assert that fde->rule18 is false.
2021-03-30 Jakub Jelinek <jakub@redhat.com>
PR debug/99388
* dwarf2out.c (insert_float): Change return type from void to
unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
(mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
Adjust callers.
2021-03-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/99824
* stor-layout.c (set_min_and_max_values_for_integral_type):
Assert the precision is within the bounds of
WIDE_INT_MAX_PRECISION.
* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
the outermost component ref only to lower the access size
and initialize that from the access type.
2021-03-29 Alex Coplan <alex.coplan@arm.com>
Backported from master:
2021-03-22 Alex Coplan <alex.coplan@arm.com>
PR target/97252
* config/arm/arm-protos.h (neon_make_constant): Add generate
argument to guard emitting insns, default to true.
* config/arm/arm.c (arm_legitimate_constant_p_1): Reject
CONST_VECTORs which neon_make_constant can't handle.
(neon_vdup_constant): Add generate argument, avoid emitting
insns if it's not set.
(neon_make_constant): Plumb new generate argument through.
* config/arm/constraints.md (Ui): New. Use it...
* config/arm/mve.md (*mve_mov<mode>): ... here.
* config/arm/vec-common.md (movv8hf): Use neon_make_constant to
synthesize constants.
2021-03-28 David Edelsohn <dje.gcc@gmail.com>
Backported from master:
2021-03-28 David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
XCOFF TLS reloc decorations.
2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
Backported from master:
2021-03-26 Iain Buclaw <ibuclaw@gdcproject.org>
PR ipa/99466
* tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
TLS declarations as public.
2021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com>
PR tree-optimization/96974
* tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
with graceful exit.
2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com>
Backported from master:
2021-03-25 Xionghu Luo <luoxhu@linux.ibm.com>
PR target/97329
* config/rs6000/rs6000.c (power8_costs): Change l2 cache
from 256 to 512.
2021-03-24 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.c (output_objc_section_asm_op): Avoid extra
objective-c section switches unless the linker needs them.
* config/darwin.c (darwin_objc2_section): Allow for
values > 1 to represent the next runtime.
(darwin_objc1_section): Likewise.
* config/darwin.c (darwin_globalize_label): Add protocol
meta-data labels to the set that are global. Make a subset of
metadate symbols global.
(darwin_label_is_anonymous_local_objc_name): Make a subset of
metadata symbols linker-visible.
(darwin_override_options): Track more target OS versions, make
the next_runtime version track this (unless it's set to 0 for
GNU runtime).
* config/darwin.h (NEXT_OBJC_RUNTIME): Set the default
next runtime value to be 10.5.8.
2021-03-24 Jakub Jelinek <jakub@redhat.com>
PR target/99540
* config/aarch64/aarch64.c (aarch64_add_offset): Tell
expand_mult to perform an unsigned rather than a signed
multiplication.
2021-03-24 Richard Biener <rguenther@suse.de>
Backported from master:
2021-03-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/98834
* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
subsetting by truncating the access size.
2021-03-24 Richard Biener <rguenther@suse.de>
Backported from master:
2021-02-08 Richard Biener <rguenther@suse.de>
PR lto/96591
* tree.c (walk_tree_1): Walk VECTOR_CST elements.
2021-03-24 Richard Biener <rguenther@suse.de>
Backported from master:
2021-03-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/99694
* tree-ssa-sccvn.c (visit_phi): Ignore edges with the
PHI result.
2021-03-23 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2021-03-23 H.J. Lu <hjl.tools@gmail.com>
PR target/99704
* config/i386/cpuid.h (__cpuid): Add __volatile__.
(__cpuid_count): Likewise.
2021-03-22 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-sections.def (objc2_data_section): New.
(objc2_ivar_section): New.
* config/darwin.c (darwin_objc2_section): Act on Protocol and
ivar refs.
2021-03-22 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2020-10-10 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-sections.def (objc2_class_names_section,
objc2_method_names_section, objc2_method_types_section): New
* config/darwin.c (output_objc_section_asm_op): Output new
sections. (darwin_objc2_section): Select new sections where
used.
2021-03-22 David Edelsohn <dje.gcc@gmail.com>
Backported from master:
2021-01-30 David Edelsohn <dje.gcc@gmail.com>
* config/rs6000/rs6000.opt (mabi=vec-extabi): New.
(mabi=vec-default): New.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
__EXTABI__ for AIX Vector extended ABI.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
extabi info.
(conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
are non-volatile.
* doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.
2021-03-22 Kito Cheng <kito.cheng@sifive.com>
Backported from master:
2021-03-22 Kito Cheng <kito.cheng@sifive.com>
PR target/99702
* config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
after type checking.
2021-03-21 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-03-01 Iain Sandoe <iain@sandoe.co.uk>
PR target/44107
PR target/48097
* config/darwin-protos.h (darwin_should_restore_cfa_state): New.
* config/darwin.c (darwin_should_restore_cfa_state): New.
* config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
* doc/tm.texi: Regenerated.
* doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
* dwarf2cfi.c (connect_traces): If the target requests, restore
the CFA expression after a DW_CFA_restore.
* target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.
2021-03-21 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
for the Darwin10 unwinder stub from here ..
* config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.
here...
* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from here..
* config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.
* config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
* config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.
* config.gcc: Compute default version information
from the configured target. Likewise defaults for
ld64. Delete reference to the now removed darwin8.h
* config/darwin10.h: Removed.
* config/darwin12.h: Removed.
* config/darwin9.h: Removed.
* config/rs6000/darwin8.h: Removed.
2021-03-21 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2021-01-02 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
(ASM_DEBUG_SPEC):Only define if the assembler supports
stabs.
(PREFERRED_DEBUGGING_TYPE): Default to DWARF.
(DARWIN_PREFER_DWARF): Define.
* config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
(DARWIN_PREFER_DWARF): Likewise
(DSYMUTIL_SPEC): Likewise.
(COLLECT_RUN_DSYMUTIL): Likewise.
(ASM_DEBUG_SPEC): Likewise.
(ASM_DEBUG_OPTION_SPEC): Likewise.
2021-03-21 Iain Sandoe <iain@sandoe.co.uk>
Backported from master:
2020-08-03 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): UNDEF before
use.