From 2c08aca65a9ce66ca8cee665838a92684d4ddff3 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 2 Jan 2025 11:06:31 +0100 Subject: [PATCH] Rotate ChangeLog files. Rotate ChangeLog files for ChangeLogs with yearly cadence. Also remove empty lines before Form Feed line. --- gcc/ChangeLog | 42672 +-------------------------- gcc/ChangeLog-1997 | 1 - gcc/ChangeLog-1998 | 1 - gcc/ChangeLog-1999 | 1 - gcc/ChangeLog-2000 | 1 - gcc/ChangeLog-2001 | 1 - gcc/ChangeLog-2002 | 1 - gcc/ChangeLog-2003 | 1 - gcc/ChangeLog-2004 | 1 - gcc/ChangeLog-2005 | 1 - gcc/ChangeLog-2006 | 1 - gcc/ChangeLog-2007 | 1 - gcc/ChangeLog-2008 | 1 - gcc/ChangeLog-2009 | 1 - gcc/ChangeLog-2010 | 1 - gcc/ChangeLog-2011 | 1 - gcc/ChangeLog-2022 | 1 - gcc/ChangeLog-2023 | 1 - gcc/ChangeLog-2024 | 42675 ++++++++++++++++++++++++++++ gcc/ada/ChangeLog | 8298 +----- gcc/ada/ChangeLog-2001 | 2 - gcc/ada/ChangeLog-2002 | 2 - gcc/ada/ChangeLog-2003 | 2 - gcc/ada/ChangeLog-2004 | 2 - gcc/ada/ChangeLog-2005 | 2 - gcc/ada/ChangeLog-2006 | 2 - gcc/ada/ChangeLog-2008 | 2 - gcc/ada/ChangeLog-2009 | 2 - gcc/ada/ChangeLog-2010 | 2 - gcc/ada/ChangeLog-2011 | 2 - gcc/ada/ChangeLog-2015 | 1 - gcc/ada/ChangeLog-2016 | 1 - gcc/ada/ChangeLog-2022 | 1 - gcc/ada/ChangeLog-2023 | 1 - gcc/ada/ChangeLog-2024 | 8301 ++++++ gcc/cp/ChangeLog | 5730 +--- gcc/cp/ChangeLog-1993 | 1 - gcc/cp/ChangeLog-1994 | 2 - gcc/cp/ChangeLog-1995 | 1 - gcc/cp/ChangeLog-1996 | 1 - gcc/cp/ChangeLog-1997 | 2 - gcc/cp/ChangeLog-1998 | 2 - gcc/cp/ChangeLog-1999 | 1 - gcc/cp/ChangeLog-2000 | 2 - gcc/cp/ChangeLog-2001 | 1 - gcc/cp/ChangeLog-2002 | 2 - gcc/cp/ChangeLog-2003 | 2 - gcc/cp/ChangeLog-2004 | 1 - gcc/cp/ChangeLog-2005 | 1 - gcc/cp/ChangeLog-2006 | 2 - gcc/cp/ChangeLog-2007 | 1 - gcc/cp/ChangeLog-2008 | 1 - gcc/cp/ChangeLog-2009 | 1 - gcc/cp/ChangeLog-2010 | 2 - gcc/cp/ChangeLog-2011 | 1 - gcc/cp/ChangeLog-2015 | 1 - gcc/cp/ChangeLog-2022 | 1 - gcc/cp/ChangeLog-2023 | 1 - gcc/cp/ChangeLog-2024 | 5733 ++++ gcc/d/ChangeLog | 291 +- gcc/d/ChangeLog-2006 | 1 - gcc/d/ChangeLog-2007 | 1 - gcc/d/ChangeLog-2008 | 1 - gcc/d/ChangeLog-2009 | 1 - gcc/d/ChangeLog-2010 | 1 - gcc/d/ChangeLog-2011 | 1 - gcc/d/ChangeLog-2012 | 1 - gcc/d/ChangeLog-2013 | 1 - gcc/d/ChangeLog-2014 | 1 - gcc/d/ChangeLog-2015 | 1 - gcc/d/ChangeLog-2016 | 1 - gcc/d/ChangeLog-2017 | 1 - gcc/d/ChangeLog-2022 | 1 - gcc/d/ChangeLog-2023 | 1 - gcc/d/ChangeLog-2024 | 294 + gcc/fortran/ChangeLog | 3036 +- gcc/fortran/ChangeLog-2002 | 1 - gcc/fortran/ChangeLog-2003 | 1 - gcc/fortran/ChangeLog-2004 | 1 - gcc/fortran/ChangeLog-2005 | 1 - gcc/fortran/ChangeLog-2006 | 1 - gcc/fortran/ChangeLog-2007 | 1 - gcc/fortran/ChangeLog-2008 | 1 - gcc/fortran/ChangeLog-2009 | 1 - gcc/fortran/ChangeLog-2010 | 1 - gcc/fortran/ChangeLog-2011 | 1 - gcc/fortran/ChangeLog-2022 | 1 - gcc/fortran/ChangeLog-2023 | 1 - gcc/fortran/ChangeLog-2024 | 3038 ++ gcc/testsuite/ChangeLog | 41225 +-------------------------- gcc/testsuite/ChangeLog-1993-2007 | 1 - gcc/testsuite/ChangeLog-2008 | 1 - gcc/testsuite/ChangeLog-2009 | 1 - gcc/testsuite/ChangeLog-2010 | 1 - gcc/testsuite/ChangeLog-2011 | 1 - gcc/testsuite/ChangeLog-2022 | 1 - gcc/testsuite/ChangeLog-2023 | 1 - gcc/testsuite/ChangeLog-2024 | 41227 +++++++++++++++++++++++++++ libgfortran/ChangeLog | 463 +- libgfortran/ChangeLog-2002 | 1 - libgfortran/ChangeLog-2003 | 1 - libgfortran/ChangeLog-2004 | 1 - libgfortran/ChangeLog-2005 | 1 - libgfortran/ChangeLog-2006 | 1 - libgfortran/ChangeLog-2007 | 1 - libgfortran/ChangeLog-2008 | 1 - libgfortran/ChangeLog-2009 | 1 - libgfortran/ChangeLog-2010 | 1 - libgfortran/ChangeLog-2011 | 1 - libgfortran/ChangeLog-2022 | 1 - libgfortran/ChangeLog-2023 | 1 - libgfortran/ChangeLog-2024 | 466 + libstdc++-v3/ChangeLog | 7158 +---- libstdc++-v3/ChangeLog-2013 | 1 - libstdc++-v3/ChangeLog-2022 | 1 - libstdc++-v3/ChangeLog-2023 | 1 - libstdc++-v3/ChangeLog-2024 | 7160 +++++ 117 files changed, 108902 insertions(+), 108984 deletions(-) create mode 100644 gcc/ChangeLog-2024 create mode 100644 gcc/ada/ChangeLog-2024 create mode 100644 gcc/cp/ChangeLog-2024 create mode 100644 gcc/d/ChangeLog-2024 create mode 100644 gcc/fortran/ChangeLog-2024 create mode 100644 gcc/testsuite/ChangeLog-2024 create mode 100644 libgfortran/ChangeLog-2024 create mode 100644 libstdc++-v3/ChangeLog-2024 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef1a9e747ad..2ddce1ef9a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -16,42678 +16,8 @@ correct alphabetical location. * config/lynx.opt.urls: Regenerated. * config/mingw/cygming.opt.urls: Regenerated. - -2024-12-31 Jiahao Xu - Deng Jianbo - - * config/loongarch/simd.md (cbranch4): New expander. - -2024-12-31 Robin Dapp - - PR target/118036 - * varasm.cc (output_constant_pool_2): Use native_encode_rtx for - building the memory image of a const vector mask. - -2024-12-30 Jeff Law - - PR target/106544 - * config/riscv/riscv.cc (riscv_print_operand): Issue an error for - invalid operands rather than invalidly accessing INTVAL of an - object that is not a CONST_INT. Fix one error string for 'N'. - -2024-12-30 Jeff Law - - PR target/118122 - * config/riscv/riscv.md (lui_constraint_and_to_or): Use - X iterator rather than ANYI consistently. Fix formatting. - -2024-12-30 Richard Sandiford - Saurabh Jha - - * config/aarch64/aarch64.md (UNSPEC_BSL, UNSPEC_COMBINE, UNSPEC_DUP) - (UNSPEC_DUP_LANE, UNSPEC_GET_LANE, UNSPEC_LD1_DUP, UNSPEC_LD1x2) - (UNSPEC_LD1x3, UNSPEC_LD1x4, UNSPEC_SET_LANE, UNSPEC_ST1_LANE) - (USNEPC_ST1x2, UNSPEC_ST1x3, UNSPEC_ST1x4, UNSPEC_VCREATE) - (UNSPEC_VEC_COPY): New unspecs. - * config/aarch64/iterators.md (UNSPEC_TBL): Likewise. - * config/aarch64/aarch64-simd-pragma-builtins.def: Add definitions - of the mf8 data movement intrinsics. - * config/aarch64/aarch64-protos.h - (aarch64_advsimd_vector_array_mode): Declare. - * config/aarch64/aarch64.cc - (aarch64_advsimd_vector_array_mode): Make public. - * config/aarch64/aarch64-builtins.h (qualifier_const_pointer): New - aarch64_type_qualifiers member. - * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_LOW_BUILTINS) - (AARCH64_SIMD_VGET_HIGH_BUILTINS): Add mf8 variants. - (aarch64_int_or_fp_type): Handle qualifier_modal_float. - (aarch64_num_lanes): New function. - (binary_two_lanes, load, load_lane, store, store_lane): New signatures. - (unary_lane): Likewise. - (simd_type::nunits): New member function. - (simd_types): Add pointer types. - (aarch64_fntype): Handle the new signatures. - (require_immediate_lane_index): Use aarch64_num_lanes. - (aarch64_pragma_builtins_checker::check): Handle the new intrinsics. - (aarch64_convert_address): (aarch64_dereference_pointer): - (aarch64_canonicalize_lane, aarch64_convert_to_lane_mask) - (aarch64_pack_into_v128s, aarch64_expand_permute_pair) - (aarch64_expand_tbl_tbx): New functions. - (aarch64_expand_pragma_builtin): Handle the new intrinsics. - (aarch64_force_gimple_val, aarch64_copy_vops, aarch64_fold_to_val) - (aarch64_dereference, aarch64_get_lane_bit_index, aarch64_get_lane) - (aarch64_set_lane, aarch64_fold_combine, aarch64_fold_load) - (aarch64_fold_store, aarch64_ext_index, aarch64_rev_index) - (aarch64_trn_index, aarch64_uzp_index, aarch64_zip_index) - (aarch64_fold_permute): New functions, some split out from - aarch64_general_gimple_fold_builtin. - (aarch64_gimple_fold_pragma_builtin): New function. - (aarch64_general_gimple_fold_builtin): Use the new functions above. - * config/aarch64/aarch64-simd.md (aarch64_dup_lane) - (aarch64_dup_lane_): Add "@" to name. - (aarch64_simd_vec_set): Likewise. - (*aarch64_simd_vec_copy_lane_): Likewise. - (aarch64_simd_bsl): Likewise. - (aarch64_combine): Likewise. - (aarch64_cm): Likewise. - (aarch64_simd_ld2r): Likewise. - (aarch64_vec_load_lanes_lane): Likewise. - (aarch64_simd_ld3r): Likewise. - (aarch64_simd_ld4r): Likewise. - (aarch64_ld1x3): Likewise. - (aarch64_ld1x4): Likewise. - (aarch64_st1x2): Likewise. - (aarch64_st1x3): Likewise. - (aarch64_st1x4): Likewise. - (aarch64_ld): Likewise. - (aarch64_ld1): Likewise. - (aarch64_ld1x2): Likewise. - (aarch64_ld_lane): Likewise. - (aarch64_): Likewise. - (aarch64_ext): Likewise. - (aarch64_rev): Likewise. - (aarch64_st): Likewise. - (aarch64_st_lane): Likewise. - (aarch64_st1): Likewise. - -2024-12-30 Richard Sandiford - - * config/aarch64/t-aarch64 (aarch64-builtins.o): Depend on - aarch64-simd-pragma-builtins.def. - -2024-12-30 Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (simd_types::f8): Rename to... - (simd_types::mf8): ...this. - * config/aarch64/aarch64-simd-pragma-builtins.def: Update accordingly. - -2024-12-30 Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (simd_types): Use one macro - invocation for each element type. - -2024-12-30 Richard Sandiford - - * read-rtl.cc (md_reader::handle_overloaded_name): Don't add - arguments for uses of subst attributes. - (apply_iterators): Only add instructions to an overloaded helper - if they use the default subst iterator values. - * doc/md.texi: Update documentation accordingly. - * config/i386/i386-expand.cc (expand_vec_perm_broadcast_1): Update - accordingly. - -2024-12-30 kelefth - - PR rtl-optimization/117835 - PR rtl-optimization/117872 - * avoid-store-forwarding.cc - (store_forwarding_analyzer::process_store_forwarding): - Zero-extend the value stored in the base register instead of - using a paradoxical subreg. - -2024-12-30 Hans-Peter Nilsson - - PR target/117618 - * config/mmix/mmix.cc (mmix_setup_incoming_varargs): - Correct handling of C23 (...)-functions. - -2024-12-30 Lewis Hyatt - - PR tree-optimization/118205 - * tree-parloops.cc (reduction_phi): Return NULL if PHI parameter is - not a phi node. - -2024-12-29 Jeff Law - - PR target/116715 - * config/riscv/bitmanip.md: Drop bogus pattern. - -2024-12-29 John David Anglin - - PR target/118121 - * configure.ac: Check for mkstemps declaration. - * configure: Regenerate. - * config.in: Regenerate. - -2024-12-29 Jeff Law - - PR target/116720 - * config/riscv/thead.cc (th_mempair_operands_p): Test for - aligned memory after swapping operands. Simplify test for - first memory access as well. - -2024-12-28 Jakub Jelinek - - PR tree-optimization/118207 - * gimple-fold.cc (fold_array_ctor_reference): For RAW_DATA_CST, - just set val to build_int_cst and fall through to the normal - element handling code instead of returning build_int_cst right away. - -2024-12-28 Gerald Pfeifer - - * doc/install.texi (Specific) <*-ibm-aix*>: Drop verbose - references to PTFs for AIX. - -2024-12-27 Jiahao Xu - - * config/loongarch/lasx.md (vec_cmp): Remove. - (vec_cmpu): Remove. - * config/loongarch/loongarch.cc (loongarch_expand_lsx_cmp): - Ensure vector comparison instructions support CMP_OP1. - * config/loongarch/lsx.md (vec_cmp): Remove. - (vec_cmpu): Remove. - * config/loongarch/simd.md (ALLVEC, allmode_i): New mode iterators. - (vec_cmp): New define_expand. - (vec_cmpu): Likewise. - -2024-12-26 John David Anglin - - PR target/118050 - * timevar.cc (get_time): Only use CLOCK_MONOTONIC if - '_POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK)'. - Otherise, use CLOCK_REALTIME. - -2024-12-26 Gerald Pfeifer - - * doc/gm2.texi (Dialect): Move PM4 link to https. - -2024-12-25 Maciej W. Rozycki - - * config/alpha/alpha.cc - (alpha_get_mem_rtx_alignment_and_offset): New function. - (alpha_expand_block_move, alpha_expand_block_clear): Use it for - alignment retrieval. - -2024-12-25 Maciej W. Rozycki - - * config/alpha/alpha.cc (alpha_expand_unaligned_load_words): - Move address extraction until after the MEM referred has been - adjusted for the offset supplied. - (alpha_expand_unaligned_store_words): Likewise. - -2024-12-25 Maciej W. Rozycki - - PR target/115459 - * config/alpha/alpha.cc (alpha_expand_block_clear): Adjust MEM - to match inferred alignment. - -2024-12-25 Maciej W. Rozycki - - * config/alpha/alpha.cc (alpha_expand_block_clear): Fold two - legs of a conditional together. - -2024-12-25 Maciej W. Rozycki - - * config/alpha/alpha.md (insvmisaligndi): Use "reg_or_0_operand" - rather than "register_operand" for operand 3. - -2024-12-25 Jiahao Xu - - * config/loongarch/loongarch.cc - (loongarch_ira_change_pseudo_allocno_class): New function. - (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro. - -2024-12-23 Gerald Pfeifer - - * doc/invoke.texi (HPPA Options): Remove references - to HP-UX 8 and HP-UX 9. - -2024-12-22 Pan Li - - * config/riscv/autovec.md: Align the operand for strided - load/store pattern. - -2024-12-21 Arsen Arsenović - - PR middle-end/109224 - * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Strip - DEMANGLE_COMPONENT_TEMPLATE from the operator new and operator - after demangling. - -2024-12-21 Jeff Law - - PR middle-end/118084 - * config/riscv/riscv.cc (generate_reflecting_code_using_brev): Handle - sub-word sized objects correctly. - -2024-12-21 Pan Li - - * match.pd: Refactor sorts of signed SAT_ADD match patterns. - -2024-12-21 Mark Harmstone - - * vmsdbgout.cc (vmsdbgout_begin_block): Fix compilation error. - -2024-12-20 Alexandre Oliva - - PR middle-end/118007 - * ipa-strub.cc (pass_ipa_strub::execute): Accept indirecting - volatile args of pointer types. - -2024-12-20 Alexandre Oliva - - PR middle-end/113506 - * emit-rtl.cc (add_insn_before): Don't set the block of a - barrier. - -2024-12-20 Uros Bizjak - - PR target/118067 - * config/i386/i386.md (*movdi_internal): - Disable alternatives from/to mask registers without AVX512BW. - (*movsi_internal): Ditto. - -2024-12-20 Tamar Christina - - PR target/96342 - * config/aarch64/aarch64-protos.h - (aarch64_sve_expand_vector_init_subvector): New. - * config/aarch64/aarch64-sve.md (vec_init): New. - (@aarch64_pack_partial): New. - * config/aarch64/aarch64.cc (aarch64_sve_expand_vector_init_subvector): New. - * config/aarch64/iterators.md (SVE_NO2E): New. - (VHALF, Vhalf): Add SVE partial vectors. - -2024-12-20 Tamar Christina - Victor Do Nascimento - - PR target/96342 - * config/aarch64/aarch64-protos.h (add_sve_type_attribute): Declare. - * config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute): Make - visibility global and support use for non_acle types. - * config/aarch64/aarch64.cc - (aarch64_simd_clone_compute_vecsize_and_simdlen): Create VLA simd clone - when no simdlen is provided, according to ABI rules. - (simd_clone_adjust_sve_vector_type): New helper function. - (aarch64_simd_clone_adjust): Add '+sve' attribute to SVE simd clones - and modify types to use SVE types. - * omp-simd-clone.cc (simd_clone_mangle): Print 'x' for VLA simdlen. - (simd_clone_adjust): Adapt safelen check to be compatible with VLA - simdlen. - -2024-12-20 Christophe Lyon - - PR target/118131 - * config/arm/arm.cc (output_move_neon): Check TARGET_NEON as - needed. - (arm_attr_length_move_neon): Add support for V2x and V4x MVE tuple - modes. - * config/arm/iterators.md (VSTRUCT2, VSTRUCT4): New. - * config/arm/neon.md: Use VSTRUCT2 instead of OI and VSTRUCT4 - instead of XI in define_split. - -2024-12-20 Christoph Müllner - - * tree-ssa-forwprop.cc (get_vect_selector_index_map): Removed. - (recognise_vec_perm_simplify_seq): Fix calculation of vec-perm - selectors of narrowed sequence. - (calc_perm_vec_perm_simplify_seqs): Fixing calculation of - vec-perm selectors of the blended sequence. - (process_vec_perm_simplify_seq_list): Add whitespace to dump - string to avoid bad formatted dump output. - -2024-12-20 Christoph Müllner - - * common/config/riscv/riscv-common.cc (riscv_get_valid_option_values): - Skip adding mtune entries that are already in the list. - -2024-12-20 Jakub Jelinek - - PR c++/110345 - * tree.cc (type_hash_canon_hash): Hash TYPE_REF_IS_RVALUE for - REFERENCE_TYPE. - (type_cache_hasher::equal): Compare TYPE_REF_IS_RVALUE for - REFERENCE_TYPE. - -2024-12-20 Nathaniel Shead - - * doc/invoke.texi: Document -Wtemplate-names-tu-local. - -2024-12-19 Patrick Palka - - PR c++/118069 - * hwint.h (add_sat_hwi): New function. - (mul_sat_hwi): Likewise. - -2024-12-19 Tobias Burnus - - * omp-general.cc (vendor_properties): Add "nec". - -2024-12-19 Andrew Carlotti - - * tree-assume.cc: Fix comment typos. - -2024-12-19 Pan Li - - PR target/118075 - * config/riscv/vector.md: Add the (mem:BLK (scratch)) as the - lhs of strided store define insn. - -2024-12-19 Alexandre Oliva - - * gimple-fold.cc (decode_field_reference): Add psignbit - parameter. Set it if the mask references sign-extending - bits. - (fold_truth_andor_for_ifcombine): Adjust calls with new - variables. Swap them along with other r?_* variables. Handle - extended sign bit compares with zero. - * tree-ssa-ifcombine.cc (ifcombine_ifandif): If bits_test - fails in a way that doesn't prevent other ifcombine strategies - from passing, give them a try. - -2024-12-19 Alexandre Oliva - - * gimple-fold.cc (decode_field_reference): Accept incoming - mask. - (fold_truth_andor_for_ifcombine): Handle some compares with - powers of two, minus 1 or 0, like masked compares with zero. - -2024-12-19 Alexandre Oliva - - PR tree-optimization/117915 - * tree-ssa-ifcombine.cc (ifcombine_mark_ssa_name): Move - preconditions from... - (ifcombine_mark_ssa_name_walk): ... here. - -2024-12-19 Alexandre Oliva - - PR tree-optimization/118046 - * gimple-fold.cc (decode_field_reference): Don't follow more - than one conversion. - -2024-12-19 Alexandre Oliva - - * gimple-fold.cc (gimple_convert_def_p): Reject load stmts - unless requested. - (decode_field_reference): Accept a converting load at the last - conversion matcher, subsuming the load identification. - (fold_truth_andor_for_ifcombine): Refuse to merge operands - when only one of them has an associated load stmt. Swap - operands of one of the compares if that helps them match. - -2024-12-18 Eric Botcazou - - PR target/118096 - * config/sparc/predicates.md (vec_cmp_operator): New predicate. - (vec_cmpu_operator): Likewise. - * config/sparc/sparc.md (vec_cmp): Use the - vec_cmp_operator predicate instead of FAILing the expansion. - (vec_cmpu): Likewise for vec_cmpu_operator. - -2024-12-18 Vladimir N. Makarov - - PR rtl-optimization/117248 - * lra-lives.cc (process_bb_lives): Update conflict hard regs even - when clobber hard reg is not marked as dead. - -2024-12-18 Michal Jires - - * lto-cgraph.cc (lto_symtab_encoder_delete_node): - Declare var later when initialized. - * lto-streamer.h (struct lto_encoder_entry): - Remove empty constructor. - -2024-12-18 Vladimir N. Makarov - - Revert: - 2024-12-06 Vladimir N. Makarov - - PR rtl-optimization/117248 - * lra-lives.cc (start_living, start_dying): Remove. - (insn_regnos, out_insn_regnos, insn_regnos_live_after): New. - (sparseset_contains_pseudos_p): Remove. - (make_hard_regno_live, make_hard_regno_dead): Return true if - something in liveness is changed. - (mark_pseudo_live, mark_pseudo_dead): Ditto. - (mark_regno_live, mark_regno_dead): Ditto. - (clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead - of dead_set. - (process_bb_lives): Rewrite dealing with reg notes. Update - conflict hard regs even when clobber hard reg is not marked as - dead. - (lra_create_live_ranges_1): Add initialization/finalization of - insn_regnos, out_insn_regnos, insn_regnos_live_after. - -2024-12-18 Michal Jires - - * ipa-devirt.cc (ipa_odr_summary_write): - Add unused argument. - * ipa-fnsummary.cc (ipa_fn_summary_write): Likewise. - * ipa-icf.cc (sem_item_optimizer::write_summary): Likewise. - * ipa-modref.cc (modref_write): Likewise. - * ipa-prop.cc (ipa_prop_write_jump_functions): Likewise. - (ipcp_write_transformation_summaries): Likewise. - * ipa-sra.cc (ipa_sra_write_summary): Likewise. - * lto-cgraph.cc (lto_symtab_encoder_delete): Delete remap. - (lto_output_node): Remap order. - (lto_output_varpool_node): Likewise. - (output_cgraph_opt_summary): Add unused argument. - * lto-streamer-out.cc (produce_symbol_asm): Renamed. Use remapped order. - (produce_asm): Rename. New wrapper. - (output_function): Propagate remapped order. - (output_constructor): Likewise. - (copy_function_or_variable): Likewise. - (cmp_int): New. - (create_order_remap): New. - (lto_output): Create remap. Remap order. - * lto-streamer.h (struct lto_symtab_encoder_d): Remap hash_map. - (produce_asm): Add order argument. - -2024-12-18 Michal Jires - - * cgraph.h (symbol_table::register_symbol): - Order can be already set. - * cgraphclones.cc (cgraph_node::create_clone): - Reuse order for clones. - -2024-12-18 Michal Jires - - * ipa-strub.cc (ipa_strub_set_mode_for_new_functions): Replace - order with uid. - (pass_ipa_strub_mode::execute): Likewise. - -2024-12-18 Michal Jires - - * Makefile.in: Add lto-ltrans-cache.o. - * common.opt: New flags for configuring cache. - * lto-opts.cc (lto_write_options): Don't stream the flags. - * lto-wrapper.cc: Use ltrans cache. - * lto-ltrans-cache.cc: New file. - * lto-ltrans-cache.h: New file. - -2024-12-18 Michal Jires - - * Makefile.in: Add lockfile.o. - * lockfile.cc: New file. - * lockfile.h: New file. - -2024-12-18 Prathamesh Kulkarni - - Revert: - 2024-12-18 Prathamesh Kulkarni - Matthew Malcolmson - - PR driver/81358 - * common.opt: New option -flink-libatomic. - * gcc.cc (LINK_LIBATOMIC_SPEC): New macro. - * config/gnu-user.h (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Use - LINK_LIBATOMIC_SPEC. - * doc/invoke.texi: Document -flink-libatomic. - * configure.ac: Define TARGET_PROVIDES_LIBATOMIC. - * configure: Regenerate. - * config.in: Regenerate. - -2024-12-18 Torbjörn SVENSSON - - * config/arm/thumb1.md (thumb1_cbz): Escape the semicolon. - -2024-12-18 Jakub Jelinek - - PR tree-optimization/118081 - * gimple-fold.cc (decode_field_reference): Only set *xor_p to true - if *xor_cmp_op is integer_zerop. - -2024-12-18 Prathamesh Kulkarni - Matthew Malcolmson - - PR driver/81358 - * common.opt: New option -flink-libatomic. - * gcc.cc (LINK_LIBATOMIC_SPEC): New macro. - * config/gnu-user.h (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Use - LINK_LIBATOMIC_SPEC. - * doc/invoke.texi: Document -flink-libatomic. - * configure.ac: Define TARGET_PROVIDES_LIBATOMIC. - * configure: Regenerate. - * config.in: Regenerate. - -2024-12-18 Tobias Burnus - - * gimplify.cc (gimplify_call_expr): Update for OpenMP's - append_args; cleanup of OpenMP's dispatch clause handling. - -2024-12-18 Jakub Jelinek - - PR c/41045 - * stmt.cc (parse_output_constraint, parse_input_constraint): Handle - - modifier. - * recog.h (raw_constraint_p): Declare. - * recog.cc (raw_constraint_p): New variable. - (asm_operand_ok, constrain_operands): Handle - modifier. - * common.md (i, s, n): For raw_constraint_p don't require - LEGITIMATE_PIC_OPERAND_P. - * doc/md.texi: Document - constraint modifier. - -2024-12-18 Jakub Jelinek - - * final.cc (output_asm_insn): Add support for cc operand modifier. - * doc/extend.texi (Generic Operand Modifiers): Document cc operand - modifier. - * doc/md.texi (@samp{:} in constraint): Mention the cc operand - modifier and add small example. - -2024-12-18 Jakub Jelinek - - * genpreds.cc (mangle): Add ':' mangling. - (add_constraint): Allow : constraint. - * common.md (:): New define_constraint. - * stmt.cc (parse_output_constraint): Diagnose "=:". - (parse_input_constraint): Handle ":" and diagnose invalid - uses. - * doc/md.texi (Simple Constraints): Document ":" constraint. - -2024-12-18 Xi Ruoyao - - * config/loongarch/loongarch.md (*crc_combine): New - define_insn_and_split. - -2024-12-18 Xi Ruoyao - - * config/loongarch/loongarch.md (crc_revsi4): New - define_expand. - -2024-12-18 Xi Ruoyao - - * config/loongarch/loongarch.md (@rbit): New - define_insn template. - (rbitsi_extended): New define_insn. - (rbitqi): New define_insn. - (rbithi): New define_expand. - -2024-12-18 Xi Ruoyao - - * config/loongarch/loongarch.md (QHSD): Remove. - (loongarch__w__w): Use QHSD instead of QHWD. - (loongarch__w__w_extended): Likewise. - -2024-12-18 Sandra Loosemore - - * doc/extend.texi (OpenACC): Fix paste-o. - -2024-12-17 Sandra Loosemore - - PR c/26154 - * common.opt.urls: Regenerated. - * doc/extend.texi (C Extensions): Adjust menu for new sections. - (Attribute Syntax): Mention OpenMP directives. - (Pragmas): Mention OpenMP and OpenACC directives. - (OpenMP): New section. - (OpenACC): New section. - * doc/invoke.texi (Invoking GCC): Adjust menu for new section. - (Option Summary): Move OpenMP and OpenACC options to their own - category. - (C Dialect Options): Move documentation for -foffload, -fopenacc, - -fopenacc-dim, -fopenmp, -fopenmd-simd, and - -fopenmp-target-simd-clone to... - (OpenMP and OpenACC Options): ...this new section. Light - copy-editing of the option descriptions. - -2024-12-17 Richard Biener - - PR middle-end/118062 - * tree-vect-generic.cc (expand_vector_piecewise): Properly - compute delta. - -2024-12-17 Oliver Kozul - - * config/riscv/riscv.md (*lui_constraint_and_to_or): New pattern - -2024-12-17 Yangyu Chen - - * common/config/riscv/riscv-ext-bitmask.def (RISCV_EXT_BITMASK): Remove svvptc. - -2024-12-17 Anton Blanchard - - * config/riscv/riscv-cores.def: Add tt-ascalon-d8. - * config/riscv/riscv.cc (tt_ascalon_d8_tune_info): New. - * doc/invoke.texi (RISC-V): Add tt-ascalon-d8 to -mcpu. - -2024-12-17 Anton Blanchard - - * doc/invoke.texi (RISC-V): Add thead-c906, xiangshan-nanhu to - -mcpu, add generic-ooo and remove thead-c906 from -mtune. - -2024-12-17 Kito Cheng - - * config/riscv/constraints.md (R): New constraint. - * doc/md.texi: Document new constraint `R`. - -2024-12-17 Kito Cheng - - * config/riscv/riscv.cc (riscv_print_operand): Add N. - * doc/extend.texi: Document for N, - -2024-12-17 Kito Cheng - - * config/riscv/corev.md (*cv_branch): Update modifier. - (*branch): Ditto. - * config/riscv/riscv.cc (riscv_print_operand): Update modifier. - * config/riscv/riscv.md (*branch): Update modifier. - -2024-12-17 Kito Cheng - - * config/riscv/constraints.md (cr): New. - (cf): New. - * config/riscv/riscv.h (reg_class): Add RVC_GR_REGS and - RVC_FP_REGS. - (REG_CLASS_NAMES): Ditto. - (REG_CLASS_CONTENTS): Ditto. - * doc/md.texi: Document cr and cf constraint. - * config/riscv/riscv.cc (riscv_regno_to_class): Update - FP_REGS to RVC_FP_REGS since it smaller set. - (riscv_secondary_memory_needed): Handle RVC_FP_REGS. - (riscv_register_move_cost): Ditto. - -2024-12-17 Kito Cheng - - * config/riscv/constraints.md (c01): Rename to... - (k01): ...this. - (c02): Rename to... - (k02): ...this. - (c03): Rename to... - (k03): ...this. - (c04): Rename to... - (k04): ...this. - (c08): Rename to... - (k08): ...this. - * config/riscv/corev.md (riscv_cv_simd_add_h_si): Update - constraints. - (riscv_cv_simd_sub_h_si): Ditto. - (riscv_cv_simd_cplxmul_i_si): Ditto. - (riscv_cv_simd_subrotmj_si): Ditto. - * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Update - constraints. - * config/riscv/vector-iterators.md (stride_load_constraint): - Update constraints. - (stride_store_constraint): Ditto. - -2024-12-17 Martin Jambor - - * cgraph.h (symtab_node): Add a new overload of nonzero_address. - * symtab.cc (symtab_node::nonzero_address): Add a new overload whith a - parameter for delete_null_pointer_checks. Make the original overload - call the new one which has retains the actual implementation. - * ipa-prop.h (ipa_get_range_from_ip_invariant): Declare. - (ipa_range_set_and_normalize): Remove. - * ipa-prop.cc (ipa_get_range_from_ip_invariant): New function. - (ipa_range_set_and_normalize): Remove. - * ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Add a new parameter - context_node. Use ipa_get_range_from_ip_invariant instead of - ipa_range_set_and_normalize and pass to it the new parameter. - (ipa_value_range_from_jfunc): Pass cs->caller as the context_node to - ipa_vr_intersect_with_arith_jfunc. - (propagate_vr_across_jump_function): Likewise. - (ipa_get_range_from_ip_invariant): New function. - * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Use - ipa_get_range_from_ip_invariant instead of ipa_range_set_and_normalize - -2024-12-17 Martin Jambor - - * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Try harder to - use the value range obtained from ranger for pointer values. - -2024-12-17 Martin Jambor - - * ipa-prop.cc: Include vr-values.h. - (skip_a_safe_conversion_op): New function. - (ipa_compute_jump_functions_for_edge): Use it. - -2024-12-16 Uros Bizjak - - * config/i386/mmx.md: Fix tabs vs. spaces. - -2024-12-16 Uros Bizjak - - * config/i386/i386.cc (ix86_hard_regno_mode_ok): - Remove explicit HImode handling for SSE2 XMM regnos. - * config/i386/i386.h (VALID_SSE2_REG_MODE): Add HImode. - -2024-12-16 David Malcolm - - * libsarifreplay.cc (struct embedded_link): New. - (maybe_consume_embedded_link): New. - (sarif_replayer::make_plain_text_within_result_message): Handle - embedded links by using the link text, for now. - -2024-12-16 David Malcolm - - * doc/libgdiagnostics/topics/logical-locations.rst - (diagnostic_manager_new_logical_location): Add note about repeated - calls. - * libgdiagnostics.cc: Define INCLUDE_MAP. - (class owned_nullable_string): Add copy ctor and move ctor. - (owned_nullable_string::operator<): New. - (diagnostic_logical_location::operator<): New. - (diagnostic_manager::new_logical_location): Use m_logical_locs to - "uniquify" instances, converting it to a std::map. - (diagnostic_manager::logical_locs_map_t): New typedef. - (diagnostic_manager::t m_logical_locs): Convert from a std::vector - to a std::map. - (diagnostic_execution_path::same_function_p): Update comment. - -2024-12-16 David Malcolm - - PR sarif-replay/117943 - * doc/libgdiagnostics/topics/physical-locations.rst - (diagnostic_manager_new_file): Drop "const" from return type. - * doc/libgdiagnostics/tutorial/02-physical-locations.rst: Drop - "const" from "main_file" decl. - * input.cc (file_cache::add_buffered_content): New. - (file_cache_slot::set_content): New. - (file_cache_slot::dump): Use m_file_path being null rather than - m_fp to determine empty slots. Dump m_fp. - (find_end_of_line): Drop "const" from return type and param. Add - forward decl. - (file_cache_slot::get_next_line): Fix "const"-ness. - (selftest::test_reading_source_buffer): New. - (selftest::input_cc_tests): Call it. - * input.h (file_cache::add_buffered_content): New decl. - * libgdiagnostics++.h (class file): Drop const-ness from m_inner. - (file::set_buffered_content): New. - * libgdiagnostics.cc (class content_buffer): New. - (diagnostic_file::diagnostic_file): Add "mgr" param. - (diagnostic_file::get_content): New. - (diagnostic_file::set_buffered_content): New. - (diagnostic_file::m_mgr): New. - (diagnostic_file::m_content): New. - (diagnostic_manager::new_file): Drop const-ness. Pass *this to - ctor. - (diagnostic_file::set_buffered_content): New. - (diagnostic_manager_new_file): Drop "const" from return type. - (diagnostic_file_set_buffered_content): New entrypoint. - (diagnostic_manager_debug_dump_file): Dump the content size, - if any. - * libgdiagnostics.h (diagnostic_manager_new_file): Drop "const" - from return type. - (diagnostic_file_set_buffered_content): New decl. - * libgdiagnostics.map (diagnostic_file_set_buffered_content): New - symbol. - * libsarifreplay.cc (sarif_replayer::m_artifacts_arr): Convert - from json::value to json::array. - (sarif_replayer::handle_run_obj): Call handle_artifact_obj - on all artifacts. - (sarif_replayer::handle_artifact_obj): New. - -2024-12-16 David Malcolm - - PR sarif-replay/117943 - * diagnostic-format-text.cc - (diagnostic_text_output_format::append_note): Use source-printing - options from text_output. - (diagnostic_text_output_format::update_printer): Copy - source-printing options from dc. - (default_diagnostic_text_finalizer): Use source-printing - options from text_output. - * diagnostic-format-text.h - (diagnostic_text_output_format::diagnostic_text_output_format): - Add optional diagnostic_source_printing_options param, using - the context's if null. - (diagnostic_text_output_format::get_source_printing_options): New - accessor. - (diagnostic_text_output_format::m_source_printing): New field. - * diagnostic-path.cc (event_range::print): Use source-printing - options from text_output. - (selftest::test_interprocedural_path_1): Use source-printing - options from dc. - * diagnostic-show-locus.cc - (gcc_rich_location::add_location_if_nearby): Likewise. - (diagnostic_context::maybe_show_locus): Add "opts" param - and use in place of m_source_printing. Pass it to source_policy - ctor. - (diagnostic_source_print_policy::diagnostic_source_print_policy): - Add overload taking a const diagnostic_source_printing_options &. - * diagnostic.cc (diagnostic_context::initialize): Pass nullptr - for source options when creating text sink, so that it uses - the dc's options. - (diagnostic_context::dump): Add an "output sinks:" heading and - print "(none)" if there aren't any. - (diagnostic_context::set_output_format): Split out code into... - (diagnostic_context::remove_all_output_sinks): ...this new - function. - * diagnostic.h - (diagnostic_source_print_policy::diagnostic_source_print_policy): - Add overload taking a const diagnostic_source_printing_options &. - (diagnostic_context::maybe_show_locus): Add "opts" param. - (diagnostic_context::remove_all_output_sinks): New decl. - (diagnostic_context::m_source_printing): New field. - (diagnostic_show_locus): Add "opts" param and pass to - maybe_show_locus. - * libgdiagnostics.cc (sink::~sink): Delete. - (sink::begin_group): Delete. - (sink::end_group): Delete. - (sink::emit): Delete. - (sink::m_dc): Drop field. - (diagnostic_text_sink::on_begin_text_diagnostic): Delete. - (diagnostic_text_sink::get_source_printing_options): Use - m_souece_printing. - (diagnostic_text_sink::m_current_logical_loc): Drop field. - (diagnostic_text_sink::m_inner_sink): New field. - (diagnostic_text_sink::m_source_printing): New field. - (diagnostic_manager::diagnostic_manager): Update for changes - to fields. Initialize m_dc. - (diagnostic_manager::~diagnostic_manager): Call diagnostic_finish. - (diagnostic_manager::get_file_cache): Drop. - (diagnostic_manager::get_dc): New accessor. - (diagnostic_manager::begin_group): Reimplement. - (diagnostic_manager::end_group): Reimplement. - (diagnostic_manager::get_prev_diag_logical_loc): New accessor. - (diagnostic_manager::m_dc): New field. - (diagnostic_manager::m_file_cache): Drop field. - (diagnostic_manager::m_edit_context): Convert to a std::unique_ptr - so that object can be constructed after m_dc is initialized. - (diagnostic_manager::m_prev_diag_logical_loc): New field. - (diagnostic_text_sink::diagnostic_text_sink): Reimplement. - (get_color_rule): Delete. - (diagnostic_text_sink::set_colorize): Reimplement. - (diagnostic_text_sink::text_starter): New. - (sarif_sink::sarif_sink): Reimplement. - (diagnostic_manager::write_patch): Update for change to - m_edit_context. - (diagnostic_manager::emit): Update now that each sink has a - corresponding diagnostic_output_format object within m_dc. - -2024-12-16 David Malcolm - - * diagnostic.cc (diagnostic_context::dump): Dump m_file_cache. - * input.cc (file_cache_slot::dump): New decls and implementations. - (file_cache::dump): New. - * input.h (file_cache::dump): New decl. - -2024-12-16 Robin Dapp - - * doc/md.texi: Add "3" suffix. - -2024-12-16 Robin Dapp - - PR target/112694 - PR target/116611. - * config/riscv/riscv-v.cc (expand_vec_perm_const): Remove early - return. - * tree-vect-slp.cc (can_duplicate_and_interleave_p): Return - false when we cannot create sub-elements. - -2024-12-16 Robin Dapp - - PR target/117383 - * config/riscv/riscv-protos.h (enum insn_type): Use TU policy. - * config/riscv/riscv-v.cc (shuffle_compress_patterns): Set VL. - -2024-12-16 Robin Dapp - - PR target/118019 - * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): - Increase vec_construct cost. - -2024-12-16 Mark Harmstone - - * dwarf2codeview.cc (write_s_frameproc): Align output. - (write_s_inlinesite): Align output. - -2024-12-15 John David Anglin - - PR target/118018 - * config/pa/pa.cc (pa_frame_pointer_required): Declare and - implement. - (TARGET_FRAME_POINTER_REQUIRED): Define. - -2024-12-15 Tamar Christina - - * config/arm/arm-mve-builtins-base.cc (expand): Initialize new_base. - -2024-12-15 Jakub Jelinek - - * tree-core.h (struct tree_exp): Remove condition_uid member. - * tree.h (SET_EXPR_UID, EXPR_COND_UID): Remove. - * gimplify.cc (nextuid): Rename to ... - (nextconduid): ... this. - (cond_uids): New static variable. - (next_cond_uid, reset_cond_uid): Adjust for the renaming, - formatting fix. - (tree_associate_condition_with_expr): New function. - (shortcut_cond_r, tag_shortcut_cond, shortcut_cond_expr): Use it - instead of SET_EXPR_UID. - (gimplify_cond_expr): Look up cond_uid in cond_uids hash map if - non-NULL instead of using EXPR_COND_UID. - (gimplify_function_tree): Delete cond_uids and set it to NULL. - -2024-12-14 Jovan Vukic - - * match.pd: New pattern. - * simplify-rtx.cc (match_plus_neg_pattern): New helper function. - (simplify_context::simplify_binary_operation_1): New - code to handle (a - 1) & -a, (a - 1) | -a and (a - 1) ^ -a. - -2024-12-14 Jose E. Marchesi - - * config/bpf/bpf.cc (bpf_resolve_overloaded_builtin): Add argument - `complain'. - -2024-12-14 Heiko Eißfeldt - - * doc/install.texi (Configuration): Fix typos in documentation - for --enable-host-pie. - -2024-12-14 Jakub Jelinek - - PR tree-optimization/118023 - * gimple-fold.cc (decode_field_reference): Return NULL_TREE if - inner has non-type_has_mode_precision_p integral type. - -2024-12-14 Jakub Jelinek - - PR middle-end/118024 - * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Walk malloc - attributes of alloc_decl and dealloc_decl in separate loops rather - than in lock-step. Use common_deallocs.contains rather than - common_deallocs.add in the second loop. - -2024-12-14 Jakub Jelinek - - PR c/118011 - * opts.cc (init_options_struct): Don't set opts->x_flag_short_enums to - 2. - * toplev.cc (process_options): Test !OPTION_SET_P (flag_short_enums) - rather than flag_short_enums == 2. - -2024-12-13 Jakub Jelinek - - PR rtl-optimization/117095 - * cse.cc (cse_extended_basic_block): Don't call record_jump_equiv - if multiple_sets (insn). - -2024-12-13 Christophe Lyon - Jakub Jelinek - - PR target/114801 - * config/arm/arm-mve-builtins.cc - (function_expander::add_input_operand): Handle CONST_INT - predicates. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vst24_impl): New. - (class vld24_impl): New. - (vld2q, vld4q, vst2q, vst4q): New. - * config/arm/arm-mve-builtins-base.def (vld2q, vld4q, vst2q) - (vst4q): New. - * config/arm/arm-mve-builtins-base.h (vld2q, vld4q, vst2q, vst4q): - New. - * config/arm/arm-mve-builtins.cc (register_builtin_tuple_types): - Add more asserts. - * config/arm/arm.cc (TARGET_ARRAY_MODE): New. - (output_move_neon): Handle MVE struct modes. - (arm_print_operand_address): Likewise. - (arm_hard_regno_mode_ok): Likewise. - (arm_array_mode): New. - * config/arm/arm.h (VALID_MVE_STRUCT_MODE): Likewise. - * config/arm/arm_mve.h (vst4q): Delete. - (vst2q): Delete. - (vld2q): Delete. - (vld4q): Delete. - (vst4q_s8): Delete. - (vst4q_s16): Delete. - (vst4q_s32): Delete. - (vst4q_u8): Delete. - (vst4q_u16): Delete. - (vst4q_u32): Delete. - (vst4q_f16): Delete. - (vst4q_f32): Delete. - (vst2q_s8): Delete. - (vst2q_u8): Delete. - (vld2q_s8): Delete. - (vld2q_u8): Delete. - (vld4q_s8): Delete. - (vld4q_u8): Delete. - (vst2q_s16): Delete. - (vst2q_u16): Delete. - (vld2q_s16): Delete. - (vld2q_u16): Delete. - (vld4q_s16): Delete. - (vld4q_u16): Delete. - (vst2q_s32): Delete. - (vst2q_u32): Delete. - (vld2q_s32): Delete. - (vld2q_u32): Delete. - (vld4q_s32): Delete. - (vld4q_u32): Delete. - (vld4q_f16): Delete. - (vld2q_f16): Delete. - (vst2q_f16): Delete. - (vld4q_f32): Delete. - (vld2q_f32): Delete. - (vst2q_f32): Delete. - (__arm_vst4q_s8): Delete. - (__arm_vst4q_s16): Delete. - (__arm_vst4q_s32): Delete. - (__arm_vst4q_u8): Delete. - (__arm_vst4q_u16): Delete. - (__arm_vst4q_u32): Delete. - (__arm_vst2q_s8): Delete. - (__arm_vst2q_u8): Delete. - (__arm_vld2q_s8): Delete. - (__arm_vld2q_u8): Delete. - (__arm_vld4q_s8): Delete. - (__arm_vld4q_u8): Delete. - (__arm_vst2q_s16): Delete. - (__arm_vst2q_u16): Delete. - (__arm_vld2q_s16): Delete. - (__arm_vld2q_u16): Delete. - (__arm_vld4q_s16): Delete. - (__arm_vld4q_u16): Delete. - (__arm_vst2q_s32): Delete. - (__arm_vst2q_u32): Delete. - (__arm_vld2q_s32): Delete. - (__arm_vld2q_u32): Delete. - (__arm_vld4q_s32): Delete. - (__arm_vld4q_u32): Delete. - (__arm_vst4q_f16): Delete. - (__arm_vst4q_f32): Delete. - (__arm_vld4q_f16): Delete. - (__arm_vld2q_f16): Delete. - (__arm_vst2q_f16): Delete. - (__arm_vld4q_f32): Delete. - (__arm_vld2q_f32): Delete. - (__arm_vst2q_f32): Delete. - (__arm_vst4q): Delete. - (__arm_vst2q): Delete. - (__arm_vld2q): Delete. - (__arm_vld4q): Delete. - * config/arm/arm_mve_builtins.def (vst4q, vst2q, vld4q, vld2q): - Delete. - * config/arm/iterators.md (VSTRUCT): Add V2x16QI, V2x8HI, V2x4SI, - V2x8HF, V2x4SF, V4x16QI, V4x8HI, V4x4SI, V4x8HF, V4x4SF. - (MVE_VLD2_VST2, MVE_vld2_vst2, MVE_VLD4_VST4, MVE_vld4_vst4): New. - * config/arm/mve.md (mve_vst4q): Update into ... - (@mve_vst4q): ... this. - (mve_vst2q): Update into ... - (@mve_vst2q): ... this. - (mve_vld2q): Update into ... - (@mve_vld2q): ... this. - (mve_vld4q): Update into ... - (@mve_vld4q): ... this. - * config/arm/vec-common.md (vec_load_lanesoi) Remove MVE - support. - (vec_load_lanesxi): Likewise. - (vec_store_lanesoi): Likewise. - (vec_store_lanesxi): Likewise. - (vec_load_lanes): - New. - (vec_store_lanes): New. - (vec_load_lanes): New. - (vec_store_lanes): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (struct store_def): Add - support for tuples. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (parse_type): Fix access - to acle_vector_types. - * config/arm/arm-mve-builtins.cc (wrap_type_in_struct): New. - (register_type_decl): New. - (register_builtin_tuple_types): Fix support for tuples. - (function_resolver::infer_tuple_type): New. - * config/arm/arm-mve-builtins.h - (function_resolver::infer_tuple_type): Declare. - (function_instance::tuple_type): Fix access to acle_vector_types. - -2024-12-13 Christophe Lyon - - * config/arm/arm-modes.def (MVE_STRUCT_MODES): New. - -2024-12-13 Christophe Lyon - - * config/arm/iterators.md (MVE_vecs): Remove V2DF. - -2024-12-13 Christophe Lyon - - * config/arm/mve.md (mve_vec_extract_sext_internal): Fix - condition. - (mve_vec_extract_zext_internal): Likewise. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (vstrq_impl): Remove - call_properties. - (vldrq_impl): Likewise. - -2024-12-13 Christophe Lyon - - * config/arm/arm-builtins.cc (arm_ldrgbwbxu_qualifiers) - (arm_ldrgbwbxu_z_qualifiers, arm_ldrgbwbs_qualifiers) - (arm_ldrgbwbu_qualifiers, arm_ldrgbwbs_z_qualifiers) - (arm_ldrgbwbu_z_qualifiers): Delete. - * config/arm/arm-mve-builtins-base.cc (vldrq_gather_base_impl): - Add support for MODE_wb. - * config/arm/arm-mve-builtins-shapes.cc (struct - load_gather_base_def): Likewise. - * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Delete. - (vldrdq_gather_base_wb_u64): Delete. - (vldrdq_gather_base_wb_z_s64): Delete. - (vldrdq_gather_base_wb_z_u64): Delete. - (vldrwq_gather_base_wb_f32): Delete. - (vldrwq_gather_base_wb_s32): Delete. - (vldrwq_gather_base_wb_u32): Delete. - (vldrwq_gather_base_wb_z_f32): Delete. - (vldrwq_gather_base_wb_z_s32): Delete. - (vldrwq_gather_base_wb_z_u32): Delete. - (__arm_vldrdq_gather_base_wb_s64): Delete. - (__arm_vldrdq_gather_base_wb_u64): Delete. - (__arm_vldrdq_gather_base_wb_z_s64): Delete. - (__arm_vldrdq_gather_base_wb_z_u64): Delete. - (__arm_vldrwq_gather_base_wb_s32): Delete. - (__arm_vldrwq_gather_base_wb_u32): Delete. - (__arm_vldrwq_gather_base_wb_z_s32): Delete. - (__arm_vldrwq_gather_base_wb_z_u32): Delete. - (__arm_vldrwq_gather_base_wb_f32): Delete. - (__arm_vldrwq_gather_base_wb_z_f32): Delete. - * config/arm/arm_mve_builtins.def (vldrwq_gather_base_nowb_z_u) - (vldrdq_gather_base_nowb_z_u, vldrwq_gather_base_nowb_u) - (vldrdq_gather_base_nowb_u, vldrwq_gather_base_nowb_z_s) - (vldrwq_gather_base_nowb_z_f, vldrdq_gather_base_nowb_z_s) - (vldrwq_gather_base_nowb_s, vldrwq_gather_base_nowb_f) - (vldrdq_gather_base_nowb_s, vldrdq_gather_base_wb_z_s) - (vldrdq_gather_base_wb_z_u, vldrdq_gather_base_wb_s) - (vldrdq_gather_base_wb_u, vldrwq_gather_base_wb_z_s) - (vldrwq_gather_base_wb_z_f, vldrwq_gather_base_wb_z_u) - (vldrwq_gather_base_wb_s, vldrwq_gather_base_wb_f) - (vldrwq_gather_base_wb_u): Delete - * config/arm/iterators.md (supf): Remove VLDRWQGBWB_S, - VLDRWQGBWB_U, VLDRDQGBWB_S, VLDRDQGBWB_U. - (VLDRWGBWBQ, VLDRDGBWBQ): Delete. - * config/arm/mve.md (mve_vldrwq_gather_base_wb_v4si): Delete. - (mve_vldrwq_gather_base_nowb_v4si): Delete. - (mve_vldrwq_gather_base_wb_v4si_insn): Delete. - (mve_vldrwq_gather_base_wb_z_v4si): Delete. - (mve_vldrwq_gather_base_nowb_z_v4si): Delete. - (mve_vldrwq_gather_base_wb_z_v4si_insn): Delete. - (mve_vldrwq_gather_base_wb_fv4sf): Delete. - (mve_vldrwq_gather_base_nowb_fv4sf): Delete. - (mve_vldrwq_gather_base_wb_fv4sf_insn): Delete. - (mve_vldrwq_gather_base_wb_z_fv4sf): Delete. - (mve_vldrwq_gather_base_nowb_z_fv4sf): Delete. - (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Delete. - (mve_vldrdq_gather_base_wb_v2di): Delete. - (mve_vldrdq_gather_base_nowb_v2di): Delete. - (mve_vldrdq_gather_base_wb_v2di_insn): Delete. - (mve_vldrdq_gather_base_wb_z_v2di): Delete. - (mve_vldrdq_gather_base_nowb_z_v2di): Delete. - (mve_vldrdq_gather_base_wb_z_v2di_insn): Delete. - (@mve_vldrq_gather_base_wb_): New. - (@mve_vldrq_gather_base_wb_z_): New. - * config/arm/unspecs.md (VLDRWQGBWB_S, VLDRWQGBWB_U, VLDRWQGBWB_F) - (VLDRDQGBWB_S, VLDRDQGBWB_U): Delete - (VLDRGBWBQ, VLDRGBWBQ_Z): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-builtins.cc (arm_ldrgbs_qualifiers) - (arm_ldrgbu_qualifiers, arm_ldrgbs_z_qualifiers) - (arm_ldrgbu_z_qualifiers): Delete. - * config/arm/arm-mve-builtins-base.cc (class - vldrq_gather_base_impl): New. - (vldrdq_gather_base, vldrwq_gather_base): New. - * config/arm/arm-mve-builtins-base.def (vldrdq_gather_base) - (vldrwq_gather_base): New. - * config/arm/arm-mve-builtins-base.h: (vldrdq_gather_base) - (vldrwq_gather_base): New. - * config/arm/arm_mve.h (vldrwq_gather_base_s32): Delete. - (vldrwq_gather_base_u32): Delete. - (vldrwq_gather_base_z_u32): Delete. - (vldrwq_gather_base_z_s32): Delete. - (vldrdq_gather_base_s64): Delete. - (vldrdq_gather_base_u64): Delete. - (vldrdq_gather_base_z_s64): Delete. - (vldrdq_gather_base_z_u64): Delete. - (vldrwq_gather_base_f32): Delete. - (vldrwq_gather_base_z_f32): Delete. - (__arm_vldrwq_gather_base_s32): Delete. - (__arm_vldrwq_gather_base_u32): Delete. - (__arm_vldrwq_gather_base_z_s32): Delete. - (__arm_vldrwq_gather_base_z_u32): Delete. - (__arm_vldrdq_gather_base_s64): Delete. - (__arm_vldrdq_gather_base_u64): Delete. - (__arm_vldrdq_gather_base_z_s64): Delete. - (__arm_vldrdq_gather_base_z_u64): Delete. - (__arm_vldrwq_gather_base_f32): Delete. - (__arm_vldrwq_gather_base_z_f32): Delete. - * config/arm/arm_mve_builtins.def (vldrwq_gather_base_s) - (vldrwq_gather_base_u, vldrwq_gather_base_z_s) - (vldrwq_gather_base_z_u, vldrdq_gather_base_s) - (vldrwq_gather_base_f, vldrdq_gather_base_z_s) - (vldrwq_gather_base_z_f, vldrdq_gather_base_u) - (vldrdq_gather_base_z_u): Delete. - * config/arm/iterators.md (supf): Remove VLDRWQGB_S, VLDRWQGB_U, - VLDRDQGB_S, VLDRDQGB_U. - (VLDRWGBQ, VLDRDGBQ): Delete. - * config/arm/mve.md (mve_vldrwq_gather_base_v4si): Delete. - (mve_vldrwq_gather_base_z_v4si): Delete. - (mve_vldrdq_gather_base_v2di): Delete. - (mve_vldrdq_gather_base_z_v2di): Delete. - (mve_vldrwq_gather_base_fv4sf): Delete. - (mve_vldrwq_gather_base_z_fv4sf): Delete. - (@mve_vldrq_gather_base_): New. - (@mve_vldrq_gather_base_z_): New. - * config/arm/unspecs.md (VLDRWQGB_S, VLDRWQGB_U, VLDRDQGB_S) - (VLDRDQGB_U, VLDRWQGB_F): Delete. - (VLDRGBQ, VLDRGBQ_Z): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (struct - load_gather_base_def): New. - * config/arm/arm-mve-builtins-shapes.h: (load_gather_base): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-builtins.cc (arm_ldrgu_qualifiers) - (arm_ldrgs_qualifiers, arm_ldrgs_z_qualifiers) - (arm_ldrgu_z_qualifiers): Delete. - * config/arm/arm-mve-builtins-base.cc (vldrq_gather_impl): Add - support for shifted version. - (vldrdq_gather_shifted, vldrhq_gather_shifted) - (vldrwq_gather_shifted): New. - * config/arm/arm-mve-builtins-base.def (vldrdq_gather_shifted) - (vldrhq_gather_shifted, vldrwq_gather_shifted): New. - * config/arm/arm-mve-builtins-base.h (vldrdq_gather_shifted) - (vldrhq_gather_shifted, vldrwq_gather_shifted): New. - * config/arm/arm_mve.h (vldrhq_gather_shifted_offset): Delete. - (vldrhq_gather_shifted_offset_z): Delete. - (vldrdq_gather_shifted_offset): Delete. - (vldrdq_gather_shifted_offset_z): Delete. - (vldrwq_gather_shifted_offset): Delete. - (vldrwq_gather_shifted_offset_z): Delete. - (vldrhq_gather_shifted_offset_s32): Delete. - (vldrhq_gather_shifted_offset_s16): Delete. - (vldrhq_gather_shifted_offset_u32): Delete. - (vldrhq_gather_shifted_offset_u16): Delete. - (vldrhq_gather_shifted_offset_z_s32): Delete. - (vldrhq_gather_shifted_offset_z_s16): Delete. - (vldrhq_gather_shifted_offset_z_u32): Delete. - (vldrhq_gather_shifted_offset_z_u16): Delete. - (vldrdq_gather_shifted_offset_s64): Delete. - (vldrdq_gather_shifted_offset_u64): Delete. - (vldrdq_gather_shifted_offset_z_s64): Delete. - (vldrdq_gather_shifted_offset_z_u64): Delete. - (vldrhq_gather_shifted_offset_f16): Delete. - (vldrhq_gather_shifted_offset_z_f16): Delete. - (vldrwq_gather_shifted_offset_f32): Delete. - (vldrwq_gather_shifted_offset_s32): Delete. - (vldrwq_gather_shifted_offset_u32): Delete. - (vldrwq_gather_shifted_offset_z_f32): Delete. - (vldrwq_gather_shifted_offset_z_s32): Delete. - (vldrwq_gather_shifted_offset_z_u32): Delete. - (__arm_vldrhq_gather_shifted_offset_s32): Delete. - (__arm_vldrhq_gather_shifted_offset_s16): Delete. - (__arm_vldrhq_gather_shifted_offset_u32): Delete. - (__arm_vldrhq_gather_shifted_offset_u16): Delete. - (__arm_vldrhq_gather_shifted_offset_z_s32): Delete. - (__arm_vldrhq_gather_shifted_offset_z_s16): Delete. - (__arm_vldrhq_gather_shifted_offset_z_u32): Delete. - (__arm_vldrhq_gather_shifted_offset_z_u16): Delete. - (__arm_vldrdq_gather_shifted_offset_s64): Delete. - (__arm_vldrdq_gather_shifted_offset_u64): Delete. - (__arm_vldrdq_gather_shifted_offset_z_s64): Delete. - (__arm_vldrdq_gather_shifted_offset_z_u64): Delete. - (__arm_vldrwq_gather_shifted_offset_s32): Delete. - (__arm_vldrwq_gather_shifted_offset_u32): Delete. - (__arm_vldrwq_gather_shifted_offset_z_s32): Delete. - (__arm_vldrwq_gather_shifted_offset_z_u32): Delete. - (__arm_vldrhq_gather_shifted_offset_f16): Delete. - (__arm_vldrhq_gather_shifted_offset_z_f16): Delete. - (__arm_vldrwq_gather_shifted_offset_f32): Delete. - (__arm_vldrwq_gather_shifted_offset_z_f32): Delete. - (__arm_vldrhq_gather_shifted_offset): Delete. - (__arm_vldrhq_gather_shifted_offset_z): Delete. - (__arm_vldrdq_gather_shifted_offset): Delete. - (__arm_vldrdq_gather_shifted_offset_z): Delete. - (__arm_vldrwq_gather_shifted_offset): Delete. - (__arm_vldrwq_gather_shifted_offset_z): Delete. - * config/arm/arm_mve_builtins.def - (vldrhq_gather_shifted_offset_z_u, vldrhq_gather_shifted_offset_u) - (vldrhq_gather_shifted_offset_z_s, vldrhq_gather_shifted_offset_s) - (vldrdq_gather_shifted_offset_s, vldrhq_gather_shifted_offset_f) - (vldrwq_gather_shifted_offset_f, vldrwq_gather_shifted_offset_s) - (vldrdq_gather_shifted_offset_z_s) - (vldrhq_gather_shifted_offset_z_f) - (vldrwq_gather_shifted_offset_z_f) - (vldrwq_gather_shifted_offset_z_s, vldrdq_gather_shifted_offset_u) - (vldrwq_gather_shifted_offset_u, vldrdq_gather_shifted_offset_z_u) - (vldrwq_gather_shifted_offset_z_u): Delete. - * config/arm/iterators.md (supf): Remove VLDRHQGSO_S, VLDRHQGSO_U, - VLDRDQGSO_S, VLDRDQGSO_U, VLDRWQGSO_S, VLDRWQGSO_U. - (VLDRHGSOQ, VLDRDGSOQ, VLDRWGSOQ): Delete. - * config/arm/mve.md - (mve_vldrhq_gather_shifted_offset_): Delete. - (mve_vldrhq_gather_shifted_offset_z_): Delete. - (mve_vldrdq_gather_shifted_offset_v2di): Delete. - (mve_vldrdq_gather_shifted_offset_z_v2di): Delete. - (mve_vldrhq_gather_shifted_offset_fv8hf): Delete. - (mve_vldrhq_gather_shifted_offset_z_fv8hf): Delete. - (mve_vldrwq_gather_shifted_offset_fv4sf): Delete. - (mve_vldrwq_gather_shifted_offset_v4si): Delete. - (mve_vldrwq_gather_shifted_offset_z_fv4sf): Delete. - (mve_vldrwq_gather_shifted_offset_z_v4si): Delete. - (@mve_vldrq_gather_shifted_offset_): New. - (@mve_vldrq_gather_shifted_offset_extend_v4si): New. - (@mve_vldrq_gather_shifted_offset_z_): New. - (@mve_vldrq_gather_shifted_offset_z_extend_v4si): New. - * config/arm/unspecs.md (VLDRHQGSO_S, VLDRHQGSO_U, VLDRDQGSO_S) - (VLDRDQGSO_U, VLDRHQGSO_F, VLDRWQGSO_F, VLDRWQGSO_S, VLDRWQGSO_U): - Delete. - (VLDRGSOQ, VLDRGSOQ_Z, VLDRGSOQ_EXT, VLDRGSOQ_EXT_Z): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vldrq_gather_impl): - New. - (vldrbq_gather, vldrdq_gather, vldrhq_gather, vldrwq_gather): New. - * config/arm/arm-mve-builtins-base.def (vldrbq_gather) - (vldrdq_gather, vldrhq_gather, vldrwq_gather): New. - * config/arm/arm-mve-builtins-base.h (vldrbq_gather) - (vldrdq_gather, vldrhq_gather, vldrwq_gather): New. - * config/arm/arm_mve.h (vldrbq_gather_offset): Delete. - (vldrbq_gather_offset_z): Delete. - (vldrhq_gather_offset): Delete. - (vldrhq_gather_offset_z): Delete. - (vldrdq_gather_offset): Delete. - (vldrdq_gather_offset_z): Delete. - (vldrwq_gather_offset): Delete. - (vldrwq_gather_offset_z): Delete. - (vldrbq_gather_offset_u8): Delete. - (vldrbq_gather_offset_s8): Delete. - (vldrbq_gather_offset_u16): Delete. - (vldrbq_gather_offset_s16): Delete. - (vldrbq_gather_offset_u32): Delete. - (vldrbq_gather_offset_s32): Delete. - (vldrbq_gather_offset_z_s16): Delete. - (vldrbq_gather_offset_z_u8): Delete. - (vldrbq_gather_offset_z_s32): Delete. - (vldrbq_gather_offset_z_u16): Delete. - (vldrbq_gather_offset_z_u32): Delete. - (vldrbq_gather_offset_z_s8): Delete. - (vldrhq_gather_offset_s32): Delete. - (vldrhq_gather_offset_s16): Delete. - (vldrhq_gather_offset_u32): Delete. - (vldrhq_gather_offset_u16): Delete. - (vldrhq_gather_offset_z_s32): Delete. - (vldrhq_gather_offset_z_s16): Delete. - (vldrhq_gather_offset_z_u32): Delete. - (vldrhq_gather_offset_z_u16): Delete. - (vldrdq_gather_offset_s64): Delete. - (vldrdq_gather_offset_u64): Delete. - (vldrdq_gather_offset_z_s64): Delete. - (vldrdq_gather_offset_z_u64): Delete. - (vldrhq_gather_offset_f16): Delete. - (vldrhq_gather_offset_z_f16): Delete. - (vldrwq_gather_offset_f32): Delete. - (vldrwq_gather_offset_s32): Delete. - (vldrwq_gather_offset_u32): Delete. - (vldrwq_gather_offset_z_f32): Delete. - (vldrwq_gather_offset_z_s32): Delete. - (vldrwq_gather_offset_z_u32): Delete. - (__arm_vldrbq_gather_offset_u8): Delete. - (__arm_vldrbq_gather_offset_s8): Delete. - (__arm_vldrbq_gather_offset_u16): Delete. - (__arm_vldrbq_gather_offset_s16): Delete. - (__arm_vldrbq_gather_offset_u32): Delete. - (__arm_vldrbq_gather_offset_s32): Delete. - (__arm_vldrbq_gather_offset_z_s8): Delete. - (__arm_vldrbq_gather_offset_z_s32): Delete. - (__arm_vldrbq_gather_offset_z_s16): Delete. - (__arm_vldrbq_gather_offset_z_u8): Delete. - (__arm_vldrbq_gather_offset_z_u32): Delete. - (__arm_vldrbq_gather_offset_z_u16): Delete. - (__arm_vldrhq_gather_offset_s32): Delete. - (__arm_vldrhq_gather_offset_s16): Delete. - (__arm_vldrhq_gather_offset_u32): Delete. - (__arm_vldrhq_gather_offset_u16): Delete. - (__arm_vldrhq_gather_offset_z_s32): Delete. - (__arm_vldrhq_gather_offset_z_s16): Delete. - (__arm_vldrhq_gather_offset_z_u32): Delete. - (__arm_vldrhq_gather_offset_z_u16): Delete. - (__arm_vldrdq_gather_offset_s64): Delete. - (__arm_vldrdq_gather_offset_u64): Delete. - (__arm_vldrdq_gather_offset_z_s64): Delete. - (__arm_vldrdq_gather_offset_z_u64): Delete. - (__arm_vldrwq_gather_offset_s32): Delete. - (__arm_vldrwq_gather_offset_u32): Delete. - (__arm_vldrwq_gather_offset_z_s32): Delete. - (__arm_vldrwq_gather_offset_z_u32): Delete. - (__arm_vldrhq_gather_offset_f16): Delete. - (__arm_vldrhq_gather_offset_z_f16): Delete. - (__arm_vldrwq_gather_offset_f32): Delete. - (__arm_vldrwq_gather_offset_z_f32): Delete. - (__arm_vldrbq_gather_offset): Delete. - (__arm_vldrbq_gather_offset_z): Delete. - (__arm_vldrhq_gather_offset): Delete. - (__arm_vldrhq_gather_offset_z): Delete. - (__arm_vldrdq_gather_offset): Delete. - (__arm_vldrdq_gather_offset_z): Delete. - (__arm_vldrwq_gather_offset): Delete. - (__arm_vldrwq_gather_offset_z): Delete. - * config/arm/arm_mve_builtins.def (vldrbq_gather_offset_u) - (vldrbq_gather_offset_s, vldrbq_gather_offset_z_s) - (vldrbq_gather_offset_z_u, vldrhq_gather_offset_z_u) - (vldrhq_gather_offset_u, vldrhq_gather_offset_z_s) - (vldrhq_gather_offset_s, vldrdq_gather_offset_s) - (vldrhq_gather_offset_f, vldrwq_gather_offset_f) - (vldrwq_gather_offset_s, vldrdq_gather_offset_z_s) - (vldrhq_gather_offset_z_f, vldrwq_gather_offset_z_f) - (vldrwq_gather_offset_z_s, vldrdq_gather_offset_u) - (vldrwq_gather_offset_u, vldrdq_gather_offset_z_u) - (vldrwq_gather_offset_z_u): Delete. - * config/arm/iterators.md (MVE_u_elem): New. - (supf): Remove VLDRBQGO_S, VLDRBQGO_U, VLDRHQGO_S, VLDRHQGO_U, - VLDRDQGO_S, VLDRDQGO_U, VLDRWQGO_S, VLDRWQGO_U. - (VLDRBGOQ, VLDRHGOQ, VLDRDGOQ, VLDRWGOQ): Delete. - * config/arm/mve.md (mve_vldrbq_gather_offset_): - Delete. - (mve_vldrbq_gather_offset_z_): Delete. - (mve_vldrhq_gather_offset_): Delete. - (mve_vldrhq_gather_offset_z_): Delete. - (mve_vldrdq_gather_offset_v2di): Delete. - (mve_vldrdq_gather_offset_z_v2di): Delete. - (mve_vldrhq_gather_offset_fv8hf): Delete. - (mve_vldrhq_gather_offset_z_fv8hf): Delete. - (mve_vldrwq_gather_offset_fv4sf): Delete. - (mve_vldrwq_gather_offset_v4si): Delete. - (mve_vldrwq_gather_offset_z_fv4sf): Delete. - (mve_vldrwq_gather_offset_z_v4si): Delete. - (@mve_vldrq_gather_offset_): New. - (@mve_vldrq_gather_offset_extend_): New. - (@mve_vldrq_gather_offset_z_): New. - (@mve_vldrq_gather_offset_z_extend_): New. - * config/arm/unspecs.md (VLDRBQGO_S, VLDRBQGO_U, VLDRHQGO_S) - (VLDRHQGO_U, VLDRDQGO_S, VLDRDQGO_U, VLDRHQGO_F, VLDRWQGO_F) - (VLDRWQGO_S, VLDRWQGO_U): Delete. - (VLDRGOQ, VLDRGOQ_Z, VLDRGOQ_EXT, VLDRGOQ_EXT_Z): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (struct load_ext_gather): - New. - (struct load_ext_gather_offset_def): New. - * config/arm/arm-mve-builtins-shapes.h (load_ext_gather_offset): - New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-builtins.cc (arm_strsbwbs_qualifiers) - (arm_strsbwbu_qualifiers, arm_strsbwbs_p_qualifiers) - (arm_strsbwbu_p_qualifiers): Delete. - * config/arm/arm-mve-builtins-base.cc (vstrq_scatter_base_impl): - Add support for MODE_wb. - * config/arm/arm-mve-builtins-shapes.cc (parse_type): Add support - for 'b' type. - (store_scatter_base): Add support for MODE_wb. - * config/arm/arm-mve-builtins.cc - (function_resolver::require_pointer_to_type): New. - * config/arm/arm-mve-builtins.h - (function_resolver::require_pointer_to_type): New. - * config/arm/arm_mve.h (vstrdq_scatter_base_wb): Delete. - (vstrdq_scatter_base_wb_p): Delete. - (vstrwq_scatter_base_wb_p): Delete. - (vstrwq_scatter_base_wb): Delete. - (vstrdq_scatter_base_wb_p_s64): Delete. - (vstrdq_scatter_base_wb_p_u64): Delete. - (vstrdq_scatter_base_wb_s64): Delete. - (vstrdq_scatter_base_wb_u64): Delete. - (vstrwq_scatter_base_wb_p_s32): Delete. - (vstrwq_scatter_base_wb_p_f32): Delete. - (vstrwq_scatter_base_wb_p_u32): Delete. - (vstrwq_scatter_base_wb_s32): Delete. - (vstrwq_scatter_base_wb_u32): Delete. - (vstrwq_scatter_base_wb_f32): Delete. - (__arm_vstrdq_scatter_base_wb_s64): Delete. - (__arm_vstrdq_scatter_base_wb_u64): Delete. - (__arm_vstrdq_scatter_base_wb_p_s64): Delete. - (__arm_vstrdq_scatter_base_wb_p_u64): Delete. - (__arm_vstrwq_scatter_base_wb_p_s32): Delete. - (__arm_vstrwq_scatter_base_wb_p_u32): Delete. - (__arm_vstrwq_scatter_base_wb_s32): Delete. - (__arm_vstrwq_scatter_base_wb_u32): Delete. - (__arm_vstrwq_scatter_base_wb_f32): Delete. - (__arm_vstrwq_scatter_base_wb_p_f32): Delete. - (__arm_vstrdq_scatter_base_wb): Delete. - (__arm_vstrdq_scatter_base_wb_p): Delete. - (__arm_vstrwq_scatter_base_wb_p): Delete. - (__arm_vstrwq_scatter_base_wb): Delete. - * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_u) - (vstrdq_scatter_base_wb_u, vstrwq_scatter_base_wb_p_u) - (vstrdq_scatter_base_wb_p_u, vstrwq_scatter_base_wb_s) - (vstrwq_scatter_base_wb_f, vstrdq_scatter_base_wb_s) - (vstrwq_scatter_base_wb_p_s, vstrwq_scatter_base_wb_p_f) - (vstrdq_scatter_base_wb_p_s): Delete. - * config/arm/iterators.md (supf): Remove VSTRWQSBWB_S, - VSTRWQSBWB_U, VSTRDQSBWB_S, VSTRDQSBWB_U. - (VSTRDSBQ, VSTRWSBWBQ, VSTRDSBWBQ): Delete. - * config/arm/mve.md (mve_vstrwq_scatter_base_wb_v4si): Delete. - (mve_vstrwq_scatter_base_wb_p_v4si): Delete. - (mve_vstrwq_scatter_base_wb_fv4sf): Delete. - (mve_vstrwq_scatter_base_wb_p_fv4sf): Delete. - (mve_vstrdq_scatter_base_wb_v2di): Delete. - (mve_vstrdq_scatter_base_wb_p_v2di): Delete. - (@mve_vstrq_scatter_base_wb_): New. - (@mve_vstrq_scatter_base_wb_p_): New. - * config/arm/unspecs.md (VSTRWQSBWB_S, VSTRWQSBWB_U, VSTRWQSBWB_F) - (VSTRDQSBWB_S, VSTRDQSBWB_U): Delete. - (VSTRSBWBQ, VSTRSBWBQ_P): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-builtins.cc (arm_strsbs_qualifiers) - (arm_strsbu_qualifiers, arm_strsbs_p_qualifiers) - (arm_strsbu_p_qualifiers): Delete. - * config/arm/arm-mve-builtins-base.cc (class - vstrq_scatter_base_impl): New. - (vstrwq_scatter_base, vstrdq_scatter_base): New. - * config/arm/arm-mve-builtins-base.def (vstrwq_scatter_base) - (vstrdq_scatter_base): New. - * config/arm/arm-mve-builtins-base.h (vstrwq_scatter_base) - (vstrdq_scatter_base): New. - * config/arm/arm_mve.h (vstrwq_scatter_base): Delete. - (vstrwq_scatter_base_p): Delete. - (vstrdq_scatter_base_p): Delete. - (vstrdq_scatter_base): Delete. - (vstrwq_scatter_base_s32): Delete. - (vstrwq_scatter_base_u32): Delete. - (vstrwq_scatter_base_p_s32): Delete. - (vstrwq_scatter_base_p_u32): Delete. - (vstrdq_scatter_base_p_s64): Delete. - (vstrdq_scatter_base_p_u64): Delete. - (vstrdq_scatter_base_s64): Delete. - (vstrdq_scatter_base_u64): Delete. - (vstrwq_scatter_base_f32): Delete. - (vstrwq_scatter_base_p_f32): Delete. - (__arm_vstrwq_scatter_base_s32): Delete. - (__arm_vstrwq_scatter_base_u32): Delete. - (__arm_vstrwq_scatter_base_p_s32): Delete. - (__arm_vstrwq_scatter_base_p_u32): Delete. - (__arm_vstrdq_scatter_base_p_s64): Delete. - (__arm_vstrdq_scatter_base_p_u64): Delete. - (__arm_vstrdq_scatter_base_s64): Delete. - (__arm_vstrdq_scatter_base_u64): Delete. - (__arm_vstrwq_scatter_base_f32): Delete. - (__arm_vstrwq_scatter_base_p_f32): Delete. - (__arm_vstrwq_scatter_base): Delete. - (__arm_vstrwq_scatter_base_p): Delete. - (__arm_vstrdq_scatter_base_p): Delete. - (__arm_vstrdq_scatter_base): Delete. - * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_s) - (vstrwq_scatter_base_u, vstrwq_scatter_base_p_s) - (vstrwq_scatter_base_p_u, vstrdq_scatter_base_s) - (vstrwq_scatter_base_f, vstrdq_scatter_base_p_s) - (vstrwq_scatter_base_p_f, vstrdq_scatter_base_u) - (vstrdq_scatter_base_p_u): Delete. - * config/arm/iterators.md (MVE_4): New. - (supf): Remove VSTRWQSB_S, VSTRWQSB_U. - (VSTRWSBQ): Delete. - * config/arm/mve.md (mve_vstrwq_scatter_base_v4si): Delete. - (mve_vstrwq_scatter_base_p_v4si): Delete. - (mve_vstrdq_scatter_base_p_v2di): Delete. - (mve_vstrdq_scatter_base_v2di): Delete. - (mve_vstrwq_scatter_base_fv4sf): Delete. - (mve_vstrwq_scatter_base_p_fv4sf): Delete. - (@mve_vstrq_scatter_base_): New. - (@mve_vstrq_scatter_base_p_): New. - * config/arm/unspecs.md (VSTRWQSB_S, VSTRWQSB_U, VSTRWQSB_F): - Delete. - (VSTRSBQ, VSTRSBQ_P): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (store_scatter_base): New. - * config/arm/arm-mve-builtins-shapes.h (store_scatter_base): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins.cc (report_out_of_range_multiple): - New. - (function_checker::require_signed_immediate): New. - (function_checker::require_immediate_range_multiple): New. - * config/arm/arm-mve-builtins.h - (function_checker::require_immediate_range_multiple): New. - (function_checker::require_signed_immediate): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-builtins.cc (arm_strss_qualifiers) - (arm_strsu_qualifiers, arm_strsu_p_qualifiers) - (arm_strss_p_qualifiers): Delete. - * config/arm/arm-mve-builtins-base.cc (class vstrq_scatter_impl): - Add support for shifted version. - (vstrdq_scatter_shifted, vstrhq_scatter_shifted) - (vstrwq_scatter_shifted): New. - * config/arm/arm-mve-builtins-base.def (vstrhq_scatter_shifted) - (vstrwq_scatter_shifted, vstrdq_scatter_shifted): New. - * config/arm/arm-mve-builtins-base.h (vstrhq_scatter_shifted) - (vstrwq_scatter_shifted, vstrdq_scatter_shifted): New. - * config/arm/arm_mve.h (vstrhq_scatter_shifted_offset): Delete. - (vstrhq_scatter_shifted_offset_p): Delete. - (vstrdq_scatter_shifted_offset_p): Delete. - (vstrdq_scatter_shifted_offset): Delete. - (vstrwq_scatter_shifted_offset_p): Delete. - (vstrwq_scatter_shifted_offset): Delete. - (vstrhq_scatter_shifted_offset_s32): Delete. - (vstrhq_scatter_shifted_offset_s16): Delete. - (vstrhq_scatter_shifted_offset_u32): Delete. - (vstrhq_scatter_shifted_offset_u16): Delete. - (vstrhq_scatter_shifted_offset_p_s32): Delete. - (vstrhq_scatter_shifted_offset_p_s16): Delete. - (vstrhq_scatter_shifted_offset_p_u32): Delete. - (vstrhq_scatter_shifted_offset_p_u16): Delete. - (vstrdq_scatter_shifted_offset_p_s64): Delete. - (vstrdq_scatter_shifted_offset_p_u64): Delete. - (vstrdq_scatter_shifted_offset_s64): Delete. - (vstrdq_scatter_shifted_offset_u64): Delete. - (vstrhq_scatter_shifted_offset_f16): Delete. - (vstrhq_scatter_shifted_offset_p_f16): Delete. - (vstrwq_scatter_shifted_offset_f32): Delete. - (vstrwq_scatter_shifted_offset_p_f32): Delete. - (vstrwq_scatter_shifted_offset_p_s32): Delete. - (vstrwq_scatter_shifted_offset_p_u32): Delete. - (vstrwq_scatter_shifted_offset_s32): Delete. - (vstrwq_scatter_shifted_offset_u32): Delete. - (__arm_vstrhq_scatter_shifted_offset_s32): Delete. - (__arm_vstrhq_scatter_shifted_offset_s16): Delete. - (__arm_vstrhq_scatter_shifted_offset_u32): Delete. - (__arm_vstrhq_scatter_shifted_offset_u16): Delete. - (__arm_vstrhq_scatter_shifted_offset_p_s32): Delete. - (__arm_vstrhq_scatter_shifted_offset_p_s16): Delete. - (__arm_vstrhq_scatter_shifted_offset_p_u32): Delete. - (__arm_vstrhq_scatter_shifted_offset_p_u16): Delete. - (__arm_vstrdq_scatter_shifted_offset_p_s64): Delete. - (__arm_vstrdq_scatter_shifted_offset_p_u64): Delete. - (__arm_vstrdq_scatter_shifted_offset_s64): Delete. - (__arm_vstrdq_scatter_shifted_offset_u64): Delete. - (__arm_vstrwq_scatter_shifted_offset_p_s32): Delete. - (__arm_vstrwq_scatter_shifted_offset_p_u32): Delete. - (__arm_vstrwq_scatter_shifted_offset_s32): Delete. - (__arm_vstrwq_scatter_shifted_offset_u32): Delete. - (__arm_vstrhq_scatter_shifted_offset_f16): Delete. - (__arm_vstrhq_scatter_shifted_offset_p_f16): Delete. - (__arm_vstrwq_scatter_shifted_offset_f32): Delete. - (__arm_vstrwq_scatter_shifted_offset_p_f32): Delete. - (__arm_vstrhq_scatter_shifted_offset): Delete. - (__arm_vstrhq_scatter_shifted_offset_p): Delete. - (__arm_vstrdq_scatter_shifted_offset_p): Delete. - (__arm_vstrdq_scatter_shifted_offset): Delete. - (__arm_vstrwq_scatter_shifted_offset_p): Delete. - (__arm_vstrwq_scatter_shifted_offset): Delete. - * config/arm/arm_mve_builtins.def - (vstrhq_scatter_shifted_offset_p_u) - (vstrhq_scatter_shifted_offset_u) - (vstrhq_scatter_shifted_offset_p_s) - (vstrhq_scatter_shifted_offset_s, vstrdq_scatter_shifted_offset_s) - (vstrhq_scatter_shifted_offset_f, vstrwq_scatter_shifted_offset_f) - (vstrwq_scatter_shifted_offset_s) - (vstrdq_scatter_shifted_offset_p_s) - (vstrhq_scatter_shifted_offset_p_f) - (vstrwq_scatter_shifted_offset_p_f) - (vstrwq_scatter_shifted_offset_p_s) - (vstrdq_scatter_shifted_offset_u, vstrwq_scatter_shifted_offset_u) - (vstrdq_scatter_shifted_offset_p_u) - (vstrwq_scatter_shifted_offset_p_u): Delete. - * config/arm/iterators.md (MVE_VLD_ST_scatter_shifted): New. - (MVE_scatter_shift): New. - (supf): Remove VSTRHQSSO_S, VSTRHQSSO_U, VSTRDQSSO_S, VSTRDQSSO_U, - VSTRWQSSO_U, VSTRWQSSO_S. - (VSTRHSSOQ, VSTRDSSOQ, VSTRWSSOQ): Delete. - * config/arm/mve.md (mve_vstrhq_scatter_shifted_offset_p_): Delete. - (mve_vstrhq_scatter_shifted_offset_p__insn): Delete. - (mve_vstrhq_scatter_shifted_offset_): Delete. - (mve_vstrhq_scatter_shifted_offset__insn): Delete. - (mve_vstrdq_scatter_shifted_offset_p_v2di): Delete. - (mve_vstrdq_scatter_shifted_offset_p_v2di_insn): Delete. - (mve_vstrdq_scatter_shifted_offset_v2di): Delete. - (mve_vstrdq_scatter_shifted_offset_v2di_insn): Delete. - (mve_vstrhq_scatter_shifted_offset_fv8hf): Delete. - (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Delete. - (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Delete. - (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Delete. - (mve_vstrwq_scatter_shifted_offset_fv4sf): Delete. - (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Delete. - (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Delete. - (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Delete. - (mve_vstrwq_scatter_shifted_offset_p_v4si): Delete. - (mve_vstrwq_scatter_shifted_offset_p_v4si_insn): Delete. - (mve_vstrwq_scatter_shifted_offset_v4si): Delete. - (mve_vstrwq_scatter_shifted_offset_v4si_insn): Delete. - (@mve_vstrq_scatter_shifted_offset_): New. - (@mve_vstrq_scatter_shifted_offset_p_): New. - (mve_vstrq_truncate_scatter_shifted_offset_v4si): New. - (mve_vstrq_truncate_scatter_shifted_offset_p_v4si): New. - * config/arm/unspecs.md (VSTRDQSSO_S, VSTRDQSSO_U, VSTRWQSSO_S) - (VSTRWQSSO_U, VSTRHQSSO_F, VSTRWQSSO_F, VSTRHQSSO_S, VSTRHQSSO_U): - Delete. - (VSTRSSOQ, VSTRSSOQ_P, VSTRSSOQ_TRUNC, VSTRSSOQ_TRUNC_P): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vstrq_scatter_impl): - New. - (vstrbq_scatter, vstrhq_scatter, vstrwq_scatter, vstrdq_scatter): - New. - * config/arm/arm-mve-builtins-base.def (vstrbq_scatter) - (vstrhq_scatter, vstrwq_scatter, vstrdq_scatter): New. - * config/arm/arm-mve-builtins-base.h (vstrbq_scatter) - (vstrhq_scatter, vstrwq_scatter, vstrdq_scatter): New. - * config/arm/arm-mve-builtins.cc (integer_64): New. - * config/arm/arm_mve.h (vstrbq_scatter_offset): Delete. - (vstrbq_scatter_offset_p): Delete. - (vstrhq_scatter_offset): Delete. - (vstrhq_scatter_offset_p): Delete. - (vstrdq_scatter_offset_p): Delete. - (vstrdq_scatter_offset): Delete. - (vstrwq_scatter_offset_p): Delete. - (vstrwq_scatter_offset): Delete. - (vstrbq_scatter_offset_s8): Delete. - (vstrbq_scatter_offset_u8): Delete. - (vstrbq_scatter_offset_u16): Delete. - (vstrbq_scatter_offset_s16): Delete. - (vstrbq_scatter_offset_u32): Delete. - (vstrbq_scatter_offset_s32): Delete. - (vstrbq_scatter_offset_p_s8): Delete. - (vstrbq_scatter_offset_p_s32): Delete. - (vstrbq_scatter_offset_p_s16): Delete. - (vstrbq_scatter_offset_p_u8): Delete. - (vstrbq_scatter_offset_p_u32): Delete. - (vstrbq_scatter_offset_p_u16): Delete. - (vstrhq_scatter_offset_s32): Delete. - (vstrhq_scatter_offset_s16): Delete. - (vstrhq_scatter_offset_u32): Delete. - (vstrhq_scatter_offset_u16): Delete. - (vstrhq_scatter_offset_p_s32): Delete. - (vstrhq_scatter_offset_p_s16): Delete. - (vstrhq_scatter_offset_p_u32): Delete. - (vstrhq_scatter_offset_p_u16): Delete. - (vstrdq_scatter_offset_p_s64): Delete. - (vstrdq_scatter_offset_p_u64): Delete. - (vstrdq_scatter_offset_s64): Delete. - (vstrdq_scatter_offset_u64): Delete. - (vstrhq_scatter_offset_f16): Delete. - (vstrhq_scatter_offset_p_f16): Delete. - (vstrwq_scatter_offset_f32): Delete. - (vstrwq_scatter_offset_p_f32): Delete. - (vstrwq_scatter_offset_p_s32): Delete. - (vstrwq_scatter_offset_p_u32): Delete. - (vstrwq_scatter_offset_s32): Delete. - (vstrwq_scatter_offset_u32): Delete. - (__arm_vstrbq_scatter_offset_s8): Delete. - (__arm_vstrbq_scatter_offset_s32): Delete. - (__arm_vstrbq_scatter_offset_s16): Delete. - (__arm_vstrbq_scatter_offset_u8): Delete. - (__arm_vstrbq_scatter_offset_u32): Delete. - (__arm_vstrbq_scatter_offset_u16): Delete. - (__arm_vstrbq_scatter_offset_p_s8): Delete. - (__arm_vstrbq_scatter_offset_p_s32): Delete. - (__arm_vstrbq_scatter_offset_p_s16): Delete. - (__arm_vstrbq_scatter_offset_p_u8): Delete. - (__arm_vstrbq_scatter_offset_p_u32): Delete. - (__arm_vstrbq_scatter_offset_p_u16): Delete. - (__arm_vstrhq_scatter_offset_s32): Delete. - (__arm_vstrhq_scatter_offset_s16): Delete. - (__arm_vstrhq_scatter_offset_u32): Delete. - (__arm_vstrhq_scatter_offset_u16): Delete. - (__arm_vstrhq_scatter_offset_p_s32): Delete. - (__arm_vstrhq_scatter_offset_p_s16): Delete. - (__arm_vstrhq_scatter_offset_p_u32): Delete. - (__arm_vstrhq_scatter_offset_p_u16): Delete. - (__arm_vstrdq_scatter_offset_p_s64): Delete. - (__arm_vstrdq_scatter_offset_p_u64): Delete. - (__arm_vstrdq_scatter_offset_s64): Delete. - (__arm_vstrdq_scatter_offset_u64): Delete. - (__arm_vstrwq_scatter_offset_p_s32): Delete. - (__arm_vstrwq_scatter_offset_p_u32): Delete. - (__arm_vstrwq_scatter_offset_s32): Delete. - (__arm_vstrwq_scatter_offset_u32): Delete. - (__arm_vstrhq_scatter_offset_f16): Delete. - (__arm_vstrhq_scatter_offset_p_f16): Delete. - (__arm_vstrwq_scatter_offset_f32): Delete. - (__arm_vstrwq_scatter_offset_p_f32): Delete. - (__arm_vstrbq_scatter_offset): Delete. - (__arm_vstrbq_scatter_offset_p): Delete. - (__arm_vstrhq_scatter_offset): Delete. - (__arm_vstrhq_scatter_offset_p): Delete. - (__arm_vstrdq_scatter_offset_p): Delete. - (__arm_vstrdq_scatter_offset): Delete. - (__arm_vstrwq_scatter_offset_p): Delete. - (__arm_vstrwq_scatter_offset): Delete. - * config/arm/arm_mve_builtins.def (vstrbq_scatter_offset_s) - (vstrbq_scatter_offset_u, vstrbq_scatter_offset_p_s) - (vstrbq_scatter_offset_p_u, vstrhq_scatter_offset_p_u) - (vstrhq_scatter_offset_u, vstrhq_scatter_offset_p_s) - (vstrhq_scatter_offset_s, vstrdq_scatter_offset_s) - (vstrhq_scatter_offset_f, vstrwq_scatter_offset_f) - (vstrwq_scatter_offset_s, vstrdq_scatter_offset_p_s) - (vstrhq_scatter_offset_p_f, vstrwq_scatter_offset_p_f) - (vstrwq_scatter_offset_p_s, vstrdq_scatter_offset_u) - (vstrwq_scatter_offset_u, vstrdq_scatter_offset_p_u) - (vstrwq_scatter_offset_p_u) Delete. - * config/arm/iterators.md (MVE_VLD_ST_scatter): New. - (MVE_scatter_offset): New. - (MVE_elem_ch): Add entry for V2DI. - (supf): Remove VSTRBQSO_S, VSTRBQSO_U, VSTRHQSO_S, VSTRHQSO_U, - VSTRDQSO_S, VSTRDQSO_U, VSTRWQSO_U, VSTRWQSO_S. - (VSTRBSOQ, VSTRHSOQ, VSTRDSOQ, VSTRWSOQ): Delete. - * config/arm/mve.md (mve_vstrbq_scatter_offset_): - Delete. - (mve_vstrbq_scatter_offset__insn): Delete. - (mve_vstrbq_scatter_offset_p_): Delete. - (mve_vstrbq_scatter_offset_p__insn): Delete. - (mve_vstrhq_scatter_offset_p_): Delete. - (mve_vstrhq_scatter_offset_p__insn): Delete. - (mve_vstrhq_scatter_offset_): Delete. - (mve_vstrhq_scatter_offset__insn): Delete. - (mve_vstrdq_scatter_offset_p_v2di): Delete. - (mve_vstrdq_scatter_offset_p_v2di_insn): Delete. - (mve_vstrdq_scatter_offset_v2di): Delete. - (mve_vstrdq_scatter_offset_v2di_insn): Delete. - (mve_vstrhq_scatter_offset_fv8hf): Delete. - (mve_vstrhq_scatter_offset_fv8hf_insn): Delete. - (mve_vstrhq_scatter_offset_p_fv8hf): Delete. - (mve_vstrhq_scatter_offset_p_fv8hf_insn): Delete. - (mve_vstrwq_scatter_offset_fv4sf): Delete. - (mve_vstrwq_scatter_offset_fv4sf_insn): Delete. - (mve_vstrwq_scatter_offset_p_fv4sf): Delete. - (mve_vstrwq_scatter_offset_p_fv4sf_insn): Delete. - (mve_vstrwq_scatter_offset_p_v4si): Delete. - (mve_vstrwq_scatter_offset_p_v4si_insn): Delete. - (mve_vstrwq_scatter_offset_v4si): Delete. - (mve_vstrwq_scatter_offset_v4si_insn): Delete. - (@mve_vstrq_scatter_offset_): New. - (@mve_vstrq_scatter_offset_p_): New. - (@mve_vstrq_truncate_scatter_offset_): New. - (@mve_vstrq_truncate_scatter_offset_p_): New. - * config/arm/unspecs.md (VSTRBQSO_S, VSTRBQSO_U, VSTRHQSO_S) - (VSTRDQSO_S, VSTRDQSO_U, VSTRWQSO_S, VSTRWQSO_U, VSTRHQSO_F) - (VSTRWQSO_F, VSTRHQSO_U): Delete. - (VSTRQSO, VSTRQSO_P, VSTRQSO_TRUNC, VSTRQSO_TRUNC_P): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (struct store_scatter): New. - (struct store_scatter_offset_def): New. - * config/arm/arm-mve-builtins-shapes.h (store_scatter_offset): New. - -2024-12-13 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (struct - nonoverloaded_base): Implement mode_after_pred. - (struct overloaded_base): Likewise. - * config/arm/arm-mve-builtins.cc (function_builder::get_name): - Call mode_after_pred as needed. - * config/arm/arm-mve-builtins.h (function_shape): Add - mode_after_pred. - -2024-12-13 Robin Dapp - - PR target/111600 - * Makefile.in: Add insn-recog split. - * configure: Regenerate. - * configure.ac: Document that the number of insnemit partitions is - used for insn-recog as well. - * genconditions.cc (write_one_condition): Use fprintf. - * genpreds.cc (write_predicate_expr): Ditto. - (write_init_reg_class_start_regs): Ditto. - * genrecog.cc (write_header): Add header file to includes. - (printf_indent): Use fprintf. - (change_state): Ditto. - (print_code): Ditto. - (print_host_wide_int): Ditto. - (print_parameter_value): Ditto. - (print_test_rtx): Ditto. - (print_nonbool_test): Ditto. - (print_label_value): Ditto. - (print_test): Ditto. - (print_decision): Ditto. - (print_state): Ditto. - (print_subroutine_call): Ditto. - (print_acceptance): Ditto. - (print_subroutine_start): Ditto. - (print_pattern): Ditto. - (print_subroutine): Ditto. - (print_subroutine_group): Ditto. - (handle_arg): Add -O and -H for output and header file handling. - (main): Use callback. - * gentarget-def.cc (def_target_insn): Use fprintf. - * read-md.cc (md_reader::print_c_condition): Ditto. - * read-md.h (class md_reader): Ditto. - -2024-12-13 Tamar Christina - - * config/aarch64/tuning_models/cortexx925.h: Set L1 cache size to 64b. - * config/aarch64/tuning_models/neoverse512tvb.h: Likewise. - * config/aarch64/tuning_models/neoversen1.h: Likewise. - * config/aarch64/tuning_models/neoversen2.h: Likewise. - * config/aarch64/tuning_models/neoversen3.h: Likewise. - * config/aarch64/tuning_models/neoversev1.h: Likewise. - * config/aarch64/tuning_models/neoversev2.h: Likewise. - (neoversev2_prefetch_tune): Removed. - * config/aarch64/tuning_models/neoversev3.h: Likewise. - * config/aarch64/tuning_models/neoversev3ae.h: Likewise. - -2024-12-13 Tamar Christina - - * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSE_NEOVERSE_BASE): - New. - * config/aarch64/tuning_models/neoverse512tvb.h: Use it. - * config/aarch64/tuning_models/neoversen2.h: Use it. - * config/aarch64/tuning_models/neoversen3.h: Use it. - * config/aarch64/tuning_models/neoversev1.h: Use it. - * config/aarch64/tuning_models/neoversev2.h: Use it. - * config/aarch64/tuning_models/neoversev3.h: Use it. - * config/aarch64/tuning_models/neoversev3ae.h: Use it. - * config/aarch64/tuning_models/cortexx925.h: Add fusions. - * config/aarch64/tuning_models/generic_armv9_a.h: Add fusions. - -2024-12-13 Jakub Jelinek - - PR target/116979 - * config/i386/mmx.md (vec_fmaddsubv2sf4, vec_fmsubaddv2sf4): New - define_expand patterns. - -2024-12-13 Robin Dapp - - * config/riscv/riscv-protos.h (riscv_register_move_cost): - Export. - * config/riscv/riscv-v.cc (shuffle_extract_and_slide1up_patterns): - Rename... - (shuffle_off_by_one_patterns): ... to this and add slideup/slidedown - variant. - (expand_vec_perm_const_1): Call renamed function. - * config/riscv/riscv.cc (riscv_secondary_memory_needed): Remove - static. - (riscv_register_move_cost): Add VR<->GR/FR handling. - -2024-12-13 Robin Dapp - - * config/riscv/riscv-v.cc (shuffle_even_odd_patterns): New - function. - (expand_vec_perm_const_1): Use new function. - -2024-12-13 Robin Dapp - - * config/riscv/riscv-v.cc (shuffle_interleave_patterns): New - function. - (expand_vec_perm_const_1): Use new function. - -2024-12-13 Robin Dapp - - * config/riscv/riscv-v.cc (shuffle_slide_patterns): New. - (expand_vec_perm_const_1): Call new function. - -2024-12-13 Robin Dapp - - PR target/117353 - PR target/117878 - * config/riscv/riscv-v.cc (expand_const_vector): Use predicated - instead of simple shift. - -2024-12-13 Pan Li - - PR target/117990 - * config/riscv/vector.md: Add the (mem:BLK (scratch)) to the - vector strided load. - -2024-12-13 Sandra Loosemore - - PR middle-end/111659 - * doc/extend.texi (Common Variable Attributes): Copy-edit description - of the strict_flex_array attribute levels. - * doc/invoke.texi (C Dialect Options): Swap documented behavior for - levels 0 and 3. Copy the description for the other levels from the - attribute instead of indirecting to it. - -2024-12-12 John David Anglin - - * config/pa/pa.cc (pa_emit_hpdiv_const): Clobber r1, r25, - r25 and return register. - * config/pa/pa.md (divsi3): Revise clobbers and operands. - Remove second clobber from div:SI insns. - (udivsi3, modsi3, umodsi3): Likewise. - -2024-12-12 Sandra Loosemore - - * attr-urls.def: Regenerate. - -2024-12-12 Sandra Loosemore - Peter Eisentraut - - PR c/115532 - * common.opt.urls: Regenerated. - * doc/invoke.texi (Option Summary): Don't try to list all the - -Wsuggest-attribute= variants inline here. - (Warning Options): Likewise. Add @opindex for - Wsuggest-attribute=returns_nonnull and its no- form. Remove - @itemx for no- form. - -2024-12-12 Jakub Jelinek - - PR sanitizer/115127 - * match.pd (clz (X) == C, ctz (X) == C, ctz (X) >= C): Don't - optimize if -fsanitize=builtin and not yet in SSA form. - -2024-12-12 Tobias Burnus - - * gimplify.cc (gimplify_call_expr): When handling OpenMP's dispatch, - add diagnostic when there is a ptr vs. addr mismatch between - need_device_{addr,ptr} and {is,has}_device_{ptr,addr}, respectively. - -2024-12-12 Georg-Johann Lay - - PR target/118000 - * config/avr/avr.cc (avr_init_expanders) - : Set MEM_VOLATILE_P. - (avr_out_cpymem) [ELPM && EBI]: Restore RAMPZ to 0 after. - -2024-12-12 Alexandre Oliva - - * gimple-fold.cc (fold_truth_andor_for_ifcombine): Limit the - size of the bitregion in get_best_mode calls by the inner - object's type size, if known. - (make_bit_field_load): Reuse SSA_NAME if we're attempting to - issue an identical load. - -2024-12-12 Alexandre Oliva - - * fold-const.cc (make_bit_field): Export. - (unextend, all_ones_mask_p): Drop. - (decode_field_reference, fold_truth_andor_1): Move - field compare merging logic... - * gimple-fold.cc: (fold_truth_andor_for_ifcombine) ... here, - with -Wtautological-compare warning guards, and... - (decode_field_reference): ... here. Rework for gimple. - (gimple_convert_def_p, gimple_binop_def_p): New. - (compute_split_boundary_from_align): New. - (make_bit_field_load, build_split_load): New. - (reuse_split_load): New. - * fold-const.h: (make_bit_field_ref): Declare - (fold_truth_andor_for_ifcombine): Declare. - * tree-ssa-ifcombine.cc (ifcombine_ifandif): Try - fold_truth_andor_for_ifcombine. - * common.opt (Wtautological-compare): Move here. - -2024-12-12 Georg-Johann Lay - - * config/avr/avr.cc (avr_ctz): New constexpr function. - (section_common::flags): Assert minimal bit width. - -2024-12-12 Georg-Johann Lay - - PR target/118001 - * doc/extend.texi (AVR Named Address Spaces): Document __flashx. - * config/avr/avr.h (ADDR_SPACE_FLASHX): New enum value. - * config/avr/avr-protos.h (avr_out_fload, avr_mem_flashx_p) - (avr_fload_libgcc_p, avr_load_libgcc_mem_p) - (avr_load_libgcc_insn_p): New. - * config/avr/avr.cc (avr_addrspace): Add ADDR_SPACE_FLASHX. - (avr_decl_flashx_p, avr_mem_flashx_p, avr_fload_libgcc_p) - (avr_load_libgcc_mem_p, avr_load_libgcc_insn_p, avr_out_fload): - New functions. - (avr_adjust_insn_length) [ADJUST_LEN_FLOAD]: Handle case. - (avr_progmem_p) [avr_decl_flashx_p]: return 2. - (avr_addr_space_legitimate_address_p) [ADDR_SPACE_FLASHX]: - Has same behavior like ADDR_SPACE_MEMX. - (avr_addr_space_convert): Use pointer sizes rather then ASes. - (avr_addr_space_contains): New function. - (avr_convert_to_type): Use it. - (avr_emit_cpymemhi): Handle ADDR_SPACE_FLASHX. - * config/avr/avr.md (adjust_len) : New attr value. - (gen_load_libgcc): Renamed from load_libgcc. - (xload8_A): Iterate over MOVMODE rather than over ALL1. - (fxmov_A): New from xloadv_A. - (xmov_8): New from xload_A. - (fmov): New insns. - (fxload_A): New from xload_A. - (fxload__libgcc): New from xload__libgcc. - (*fxload__libgcc): New from *xload__libgcc. - (mov) [avr_mem_flashx_p]: Hande ADDR_SPACE_FLASHX. - (cpymemx_): Make sure the address space is not lost - when splitting. - (*cpymemx_) [ADDR_SPACE_FLASHX]: Use __movmemf_ for asm. - (*ashlqi.1.zextpsi_split): New combine pattern. - * config/avr/predicates.md (nox_general_operand): Don't match - when avr_mem_flashx_p is true. - * config/avr/avr-passes.cc (AVR_LdSt_Props): - ADDR_SPACE_FLASHX has no post_inc. - -2024-12-12 Martin Uecker - - PR c/113688 - PR c/114014 - PR c/114713 - PR c/117724 - * tree.cc (gimple_canonical_types_compatible_p): Add exception. - -2024-12-12 Martin Uecker - - * tree.cc (gimple_canonical_types_compatible_p): Add exception. - (verify_type): Add exception. - -2024-12-12 Sam James - - * config/i386/i386.opt.urls: Regenerate. - -2024-12-12 Jakub Jelinek - - * gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop): - Comment spelling fix, is succeeded -> succeeded. - -2024-12-12 Sandra Loosemore - - PR target/117150 - * doc/invoke.texi (RS/6000 and PowerPC Options): Move description - of -mstack-protector-guard-symbol from here... - (x86 Options): ...to here. - -2024-12-11 Vladimir N. Makarov - - PR rtl-optimization/116778 - * ira-int.h (x_ira_class_hard_reg_index): Fix comment typo. - * lra-eliminations.cc (lra_fp_pseudo_p): New function. - * lra-int.h (lra_fp_pseudo_p): External declaration. - * lra-spills.cc (lra_need_for_spills_p): Fix formatting. - * lra.cc (lra): Use lra_fp_pseudo_p in lra_create_live_range after - lra_remat. - -2024-12-11 Filip Kastl - Andi Kleen - - PR middle-end/117091 - PR middle-end/117352 - * doc/invoke.texi: Add switch-lower-slow-alg-max-cases. - * params.opt: Add switch-lower-slow-alg-max-cases. - * tree-switch-conversion.cc (jump_table_cluster::find_jump_tables): - Note in a comment that we are looking for jump tables in - case sequences delimited by the already found bit tests. - (bit_test_cluster::find_bit_tests): Decide between - find_bit_tests_fast() and find_bit_tests_slow(). - (bit_test_cluster::find_bit_tests_fast): New function. - (bit_test_cluster::find_bit_tests_slow): New function. - (switch_decision_tree::analyze_switch_statement): Report - exceeding the limit. - * tree-switch-conversion.h: Add find_bit_tests_fast() and - find_bit_tests_slow(). - -2024-12-11 David Malcolm - - * diagnostic-highlight-colors.h: Tweak comment. - * pretty-print-markup.h (class pp_element_quoted_string): New, - based on pretty-print.cc's selftest::test_element, adding an - optional highlight color. - * pretty-print.cc (class test_element): Drop. - (selftest::test_pp_format): Use pp_element_quoted_string. - (selftest::test_urlification): Likewise. - -2024-12-11 David Malcolm - - PR other/116253 - * diagnostic-format-text.cc (build_prefix): Don't add the - "note: " prefix when showing nested diagnostics. - -2024-12-11 David Malcolm - - PR other/116253 - * diagnostic-format-text.cc (on_report_diagnostic): When showing - locations for nested messages on new lines, don't print - UNKNOWN_LOCATION or BUILTINS_LOCATION. - -2024-12-11 David Malcolm - - * input.cc (file_cache::initialize_input_context): Rename member - "in_context" to "m_input_context". - (file_cache::add_file): Likewise. - * input.h (class file_cache): Likewise. - -2024-12-11 Martin Jambor - - * ipa-cp.h: Forward declare class ipa_vr. - (ipa_vr_operation_and_type_effects) Declare. - * ipa-cp.cc (ipa_vr_operation_and_type_effects): Make public. - * ipa-prop.cc (update_jump_functions_after_inlining): Also update - value range jump functions. - -2024-12-11 Victor Do Nascimento - Tamar Christina - - PR target/96342 - * expr.cc (store_constructor): Enable poly_{u}int64 type usage. - (get_inner_reference): Ditto. - -2024-12-11 Victor Do Nascimento - Tamar Christina - - PR target/96342 - * expr.cc (store_constructor): add support for variable-length - vectors. - -2024-12-11 Victor Do Nascimento - - PR target/96342 - * tree-vect-stmts.cc (vectorizable_simd_clone_call): - s/vectype/masktype/ in call to vect_get_loop_mask. - -2024-12-11 Andre Vieira - Victor Do Nascimento - Tamar Christina - - PR target/96342 - * target.def (TARGET_SIMD_CLONE_USABLE): Add argument. - * tree-vect-stmts.cc (vectorizable_simd_clone_call): Pass stmt_info to - call TARGET_SIMD_CLONE_USABLE. - * config/aarch64/aarch64.cc (aarch64_simd_clone_usable): Add argument - and use it to reject the use of SVE simd clones with Advanced SIMD - modes. - * config/gcn/gcn.cc (gcn_simd_clone_usable): Add unused argument. - * config/i386/i386.cc (ix86_simd_clone_usable): Likewise. - * doc/tm.texi: Regenerate - -2024-12-11 Tamar Christina - - PR tree-optimization/114932 - * fold-const.cc (operand_compare::operand_equal_p): Use it. - (operand_compare::verify_hash_value): Likewise. - (operand_compare::hash_operand): Likewise. - (test_operand_equality::test): New. - (fold_const_cc_tests): Use it. - * tree-core.h (enum operand_equal_flag): Add OEP_ASSUME_WRAPV. - * tree-ssa-loop-ivopts.cc (record_group_use): Check for structural eq. - -2024-12-11 Tamar Christina - - PR tree-optimization/114932 - * fold-const.cc (operand_compare::operand_equal_p): Split into one that - takes explicit type parameters and use that in public one. - * fold-const.h (class operand_compare): Add operand_equal_p private - overload. - -2024-12-11 Soumya AR - Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_ptrue_reg): New overload. - * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Likewise. - * config/aarch64/aarch64-sve.md: Extended sdiv_pow23 - and *sdiv_pow23 to support Neon modes. - -2024-12-11 Soumya AR - - * config/aarch64/aarch64-sve2.md - (*aarch64_sve2_nbsl_unpred): New pattern to match unpredicated - form. - (*aarch64_sve2_bsl1n_unpred): Likewise. - (*aarch64_sve2_bsl2n_unpred): Likewise. - -2024-12-11 liuhongt - - PR tree-optimization/117888 - * tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Use - cunrolli instead of cunrolli && !loop->inner to check if it's - innermost loop. - (canonicalize_loop_induction_variables): Add new parameter - const_sbitmap innermost, and pass - cunrolli - && (unsigned) loop->num < SBITMAP_SIZE (innermost) - && bitmap_bit_p (innermost, loop->num) as "cunrolli" to - try_unroll_loop_completely - (canonicalize_induction_variables): Pass innermost to - canonicalize_loop_induction_variables. - (tree_unroll_loops_completely_1): Add new parameter - const_sbitmap innermost. - (tree_unroll_loops_completely): Move local variable cunrolli - to parameter to indicate it's from pass cunrolli, also track - all "original" innermost loop at the beginning. - -2024-12-10 David Malcolm - - PR other/117944 - * libsarifreplay.cc (sarif_replayer::handle_result_obj): Get any - helpUri from the rule_obj and pass it to add_rule. - -2024-12-10 Vladimir N. Makarov - - PR rtl-optimization/117946 - * lra-assigns.cc: (find_hard_regno_for_1): Use the biggest mode to - check ira_prohibited_class_mode_regs. - -2024-12-10 Marek Polacek - - PR c++/117880 - * fold-const.cc (operand_compare::operand_equal_p) : - Use OP_SAME_WITH_NULL instead of OP_SAME. - -2024-12-10 Wilco Dijkstra - - PR target/117675 - * config/arm/arm.cc (arm_ldrd_legitimate_address): New function. - * config/arm/arm-protos.h (arm_ldrd_legitimate_address): New prototype. - * config/arm/constraints.md: Add new Uo constraint. - * config/arm/predicates.md (arm_ldrd_memory_operand): Add new predicate. - * config/arm/sync.md (arm_atomic_loaddi2_ldrd): Use - arm_ldrd_memory_operand and Uo. - -2024-12-10 Wilco Dijkstra - - * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_BASE): New define. - * config/aarch64/tuning_models/ampere1b.h: Use AARCH64_EXTRA_TUNE_BASE. - * config/aarch64/tuning_models/cortexx925.h: Likewise. - * config/aarch64/tuning_models/fujitsu_monaka.h: Likewise. - * config/aarch64/tuning_models/generic_armv8_a.h: Likewise. - * config/aarch64/tuning_models/generic_armv9_a.h: Likewise. - * config/aarch64/tuning_models/neoversen1.h: Likewise. - * config/aarch64/tuning_models/neoversen2.h: Likewise. - * config/aarch64/tuning_models/neoversen3.h: Likewise. - * config/aarch64/tuning_models/neoversev1.h: Likewise. - * config/aarch64/tuning_models/neoversev2.h: Likewise. - * config/aarch64/tuning_models/neoversev3.h: Likewise. - * config/aarch64/tuning_models/neoversev3ae.h: Likewise. - -2024-12-10 Wilco Dijkstra - - * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): Remove. - (DATA_ALIGNMENT): Use aarch64_data_alignment. - (LOCAL_ALIGNMENT): Use aarch64_stack_alignment. - * config/aarch64/aarch64.cc (aarch64_data_alignment): New function. - (aarch64_stack_alignment): Likewise. - * config/aarch64/aarch64-protos.h (aarch64_data_alignment): New prototype. - (aarch64_stack_alignment): Likewise. - -2024-12-10 Wilco Dijkstra - - * config/aarch64/aarch64.cc (aarch64_classify_address): Treat SIMD structs - identically in little and bigendian. - * config/aarch64/aarch64-simd.md (aarch64_mov): Remove VSTRUCT - instructions. - (aarch64_be_mov): Allow little-endian, rename to aarch64_mov. - (aarch64_be_movoi): Allow little-endian, rename to aarch64_movoi. - (aarch64_be_movci): Allow little-endian, rename to aarch64_movci. - (aarch64_be_movxi): Allow little-endian, rename to aarch64_movxi. - Remove big-endian special case in define_split variants. - -2024-12-10 Arsen Arsenović - Iain Sandoe - - * dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 6 for sake - of the coroutine dump. - -2024-12-10 Richard Sandiford - - * doc/md.texi (vcond@var{m}@var{n}, vcondu@var{m}@var{n}) - (vcondeq@var{m}@var{n}): Delete. - (vcond_mask_@var{m}@var{n}): Redocument in standalone form. - * internal-fn.def (VCOND, VCONDU, VCONDEQ): Delete. - * internal-fn.cc (expand_vec_cond_optab_fn): Delete. - * optabs.def (vcond_optab, vcondu_optab, vcondeq_optab): Delete. - -2024-12-10 Richard Sandiford - - * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vcond): Delete. - * config/aarch64/aarch64-simd.md (v2di3): Expand into - separate vec_cmp and vcond_mask instructions, instead of using vcond. - (vcond, vcond, vcondu) - (vcondu): Delete. - * config/aarch64/aarch64-sve.md (vcond) - (vcondu, vcond): Likewise. - * config/aarch64/aarch64.cc (aarch64_expand_sve_vcond): Likewise. - * config/aarch64/iterators.md (V_FP_EQUIV, v_fp_equiv, V_cmp_mixed) - (v_cmp_mixed): Likewise. - -2024-12-10 Saurabh Jha - Richard Sandiford - - * config/aarch64/aarch64-builtins.cc - (aarch64_pragma_builtins_checker::require_immediate_lane_index): New - overload. - (aarch64_pragma_builtins_checker::check): Add support for FP8FMA - intrinsics. - (aarch64_expand_pragma_builtins): Likewise. - * config/aarch64/aarch64-c.cc - (aarch64_update_cpp_builtins): Conditionally define TARGET_FP8FMA. - * config/aarch64/aarch64-simd-pragma-builtins.def: Add the FP8FMA - intrinsics. - * config/aarch64/aarch64-simd.md: - (@aarch64__lane): - Likewise. - (@aarch64__lane): - Likewise. - * config/aarch64/iterators.md (V8HF_ONLY): New mode iterator. - (SVE2_FP8_TERNARY_VNX8HF): Rename to... - (FMLAL_FP8_HF): ...this. - (SVE2_FP8_TERNARY_LANE_VNX8HF): Delete in favor of FMLAL_FP8_HF. - (SVE2_FP8_TERNARY_VNX4SF): Rename to... - (FMLALL_FP8_SF): ...this. - (SVE2_FP8_TERNARY_LANE_VNX4SF): Delete in favor of FMLALL_FP8_SF. - (sve2_fp8_fma_op_vnx8hf, sve2_fp8_fma_op_vnx4sf): Fold into... - (insn): ...here. - * config/aarch64/aarch64-sve2.md: Update uses accordingly. - -2024-12-10 Saurabh Jha - Richard Sandiford - - * config/aarch64/aarch64-builtins.cc - (enum class): Add ternary_lane. - (aarch64_fntype): Hnadle ternary_lane. - (aarch64_pragma_builtins_checker::require_immediate_lane_index): New - function. - (aarch64_pragma_builtins_checker::check): Handle the new intrinsics. - (aarch64_expand_pragma_builtin): Likewise. - * config/aarch64/aarch64-c.cc - (aarch64_update_cpp_builtins): Define TARGET_FP8DOT2 and - TARGET_FP8DOT4. - * config/aarch64/aarch64-simd-pragma-builtins.def: Define vdot - and vdot_lane intrinsics. - * config/aarch64/aarch64-simd.md - (@aarch64_): New pattern. - (@aarch64__lane): Likewise. - * config/aarch64/iterators.md (VQ_HSF_VDOT): New mode iterator. - (UNSPEC_VDOT, UNSPEC_VDOT_LANE): New unspecs. - (fpm_uns_op): Handle them. - (VNARROWB, Vnbtype): New mode attributes. - (FPM_VDOT, FPM_VDOT_LANE): New int iterators. - -2024-12-10 Saurabh Jha - Richard Sandiford - - * config/aarch64/aarch64-builtins.cc - (FLAG_USES_FPMR, FLAG_FP8): New flags. - (ENTRY): Modified to support ternary operations. - (enum class): New variants to support new signatures. - (struct aarch64_pragma_builtins_data): Extend types to 4 elements. - (aarch64_fntype): Handle new signatures. - (aarch64_get_low_unspec): New function. - (aarch64_convert_to_v64): New function, split out from... - (aarch64_expand_pragma_builtin): ...here. Handle new signatures. - * config/aarch64/aarch64-c.cc - (aarch64_update_cpp_builtins): New flag for FP8. - * config/aarch64/aarch64-simd-pragma-builtins.def: Define new fp8 - intrinsics. - (ENTRY_BINARY, ENTRY_BINARY_LANE): Update for new ENTRY interface. - (ENTRY_UNARY, ENTRY_TERNARY, ENTRY_UNARY_FPM): New macros. - (ENTRY_BINARY_VHSDF_SIGNED): Likewise. - * config/aarch64/aarch64-simd.md - (@aarch64_): New pattern. - (@aarch64__high): Likewise. - (@aarch64__high_be): Likewise. - (@aarch64__high_le): Likewise. - * config/aarch64/iterators.md (V4SF_ONLY, VQ_BHF): New mode iterators. - (UNSPEC_FCVTN_FP8, UNSPEC_FCVTN2_FP8, UNSPEC_F1CVTL_FP8) - (UNSPEC_F1CVTL2_FP8, UNSPEC_F2CVTL_FP8, UNSPEC_F2CVTL2_FP8) - (UNSPEC_FSCALE): New unspecs. - (VPACKB, VPACKBtype): New mode attributes. - (b): Add support for V[48][BH]F. - (FPM_UNARY_UNS, FPM_BINARY_UNS, SCALE_UNS): New int iterators. - (insn): New int attribute. - -2024-12-10 Richard Biener - - PR tree-optimization/117912 - * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): For addresses - of zero-sized components do not set ->off if the object size pass - didn't run. - For OOB ARRAY_REF accesses in address expressions avoid setting - ->off if the object size pass didn't run. - (valueize_refs_1): Likewise. - -2024-12-10 Antoni Boucher - - PR target/117923 - * config/aarch64/aarch64-builtins.cc: Remove GTY marker on aarch64_simd_types, - aarch64_simd_types_trees (new variable), rename aarch64_simd_types to - aarch64_simd_types_trees. - * config/aarch64/aarch64-builtins.h: Remove GTY marker on aarch64_simd_types, - aarch64_simd_types_trees (new variable). - * config/aarch64/aarch64-sve-builtins-shapes.cc: Rename aarch64_simd_types to - aarch64_simd_types_trees. - * config/aarch64/aarch64-sve-builtins.cc: Rename aarch64_simd_types to - aarch64_simd_types_trees. - -2024-12-09 Mariam Arutunian - Richard Sandiford - - * config/aarch64/aarch64-protos.h (aarch64_expand_crc_using_pmull): New - extern function declaration. - (aarch64_expand_reversed_crc_using_pmull): Likewise. - * config/aarch64/aarch64.cc (aarch64_expand_crc_using_pmull): New - function. - (aarch64_expand_reversed_crc_using_pmull): Likewise. - * config/aarch64/aarch64.md (crc_rev4): New - expander for reversed CRC. - (crc4): New expander for bit-forward CRC. - * config/aarch64/iterators.md (crc_data_type): New mode attribute. - -2024-12-09 Marek Polacek - - PR driver/117942 - * opts-common.cc (decode_cmdline_options_to_array): Also detect - --diagnostics-plain-output. - -2024-12-09 Richard Sandiford - - * config/aarch64/aarch64-simd.md (aarch64_get_lane): Add - "@" to the name. - -2024-12-09 Richard Biener - - * late-combine.cc (late_combine::execute): Delete RTL SSA. - -2024-12-09 Richard Biener - - * timevar.def (TV_DUP_COMPGOTO): Add. - * bb-reorder.cc (pass_data_duplicate_computed_gotos): Use - TV_DUP_COMPGOTO. - -2024-12-09 Juergen Christ - - * config/s390/s390.cc (s390_canonicalize_comparison): Add - missing UNSPEC_CC_TO_INT case. - -2024-12-09 Matthew Malcomson - - * config/aarch64/aarch64-c.cc - (aarch64_resolve_overloaded_builtin,aarch64_check_builtin_call): - Add new unused boolean parameter to match target hook - definition. - * config/arm/arm-builtins.cc (arm_check_builtin_call): Likewise. - * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): - Likewise. - * config/arm/arm-protos.h (arm_check_builtin_call): Likewise. - * config/avr/avr-c.cc (avr_resolve_overloaded_builtin): - Likewise. - * config/riscv/riscv-c.cc (riscv_check_builtin_call, - riscv_resolve_overloaded_builtin): Likewise. - * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): - Likewise. - * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin): - Likewise. - * config/s390/s390-c.cc (s390_resolve_overloaded_builtin): - Likewise. - * doc/tm.texi: Regenerate. - * target.def (TARGET_RESOLVE_OVERLOADED_BUILTIN, - TARGET_CHECK_BUILTIN_CALL): Update prototype to include a - boolean parameter that indicates whether errors should be - emitted. Update documentation to mention this fact. - -2024-12-09 Jakub Jelinek - - PR sanitizer/117960 - * doc/invoke.texi (fsanitize=hwaddress): Clarify on which targets - it is supported. - -2024-12-09 Richard Earnshaw - - PR target/114189 - * config/arm/arm-protos.h (arm_expand_vcond): Delete prototype. - * config/arm/arm.cc (arm_expand_vcond): Delete function. - * config/arm/vec-common.md (vcond): Delete pattern - (vcond): Likewise. - (vcond): Likewise. - (vcondu): Likewise. - -2024-12-09 Richard Biener - - PR middle-end/117932 - * df-core.cc (df_worklist_propagate_forward): Elide - age check for the first iteration, adjust for - last_change_age change. - (df_worklist_propagate_backward): Likewise. - (df_worklist_dataflow_doublequeue): Make last_change_age - indexed by BB index, avoid clearing both age arrays. - -2024-12-09 Richard Biener - - PR middle-end/117932 - * df-core.cc (df_worklist_propagate_forward): When WORKLIST - is NULL, do not set bits there. - (df_worklist_propagate_backward): Likewise. - (df_worklist_dataflow_doublequeue): Separate first pass - over all blocks with NULL worklist. - (df_worklist_dataflow): Do not initialize pending and adjust. - -2024-12-09 Thomas Schwinge - - * config.gcc [nvptx-*]: Switch default from '-march=sm_30' to - '-march=sm_52'. - * doc/install.texi (Nvidia PTX Options): Update. - -2024-12-09 Thomas Schwinge - - * config/gcn/gcn.cc (gcn_vec_constant): Fix 'real_from_integer' - usage. - -2024-12-09 Kyrylo Tkachov - - * config/aarch64/aarch64-option-extensions.def (sve-b16b16, - f32mm, f64mm, sve2p1, sme-f64f64, sme-i16i64, sme-b16b16, - sme-f16f16, mops): Update FEATURE_STRING field. - -2024-12-09 Simon Martin - - PR c++/117845 - * tree-eh.cc (honor_protect_cleanup_actions): Support empty - finally sequences. - -2024-12-08 Lewis Hyatt - - * gimple.h (struct gphi): Update word marking comments to reflect - the new size of location_t. - (struct gimple): Likewise. Add a comment about padding. - * common.opt: Mark -flarge-source-files as Ignored. - * common.opt.urls: Regenerate. - * doc/invoke.texi: Remove -flarge-source-files. - * toplev.cc (process_options): Remove support for - -flarge-source-files. - -2024-12-08 Dimitar Dimitrov - - * config/pru/pru.cc (pru_print_operand): Implement c and n - inline assembly operand modifiers. - -2024-12-07 Eric Botcazou - - * config/sparc/sparc.md (VIS4B instructions): Add comments. - -2024-12-07 Georg-Johann Lay - - * config/avr/avr.cc (avr_print_operand_address): Use - avr_insn_location as location for late (during final) diagnostic. - -2024-12-07 Jakub Jelinek - - PR target/117930 - * config/i386/i386.md (crotate): New define_code_attr. - (*3_add, *3_add_1, - *3_sub, *3_sub_1): New define_insn_and_split - patterns plus following define_split for constant first input - operand. - -2024-12-07 Denis Chertykov - - PR target/116778 - * lra-lives.cc (complete_info_p): Clarification of the comment. - * lra.cc (lra): Create a full live info after rematerialization. - -2024-12-07 Kito Cheng - - Revert: - 2024-12-05 Kito Cheng - - * config/riscv/riscv-vector-builtins-shapes.cc - (vsetvl_def::get_name): Adjust return type. - (loadstore_def::get_name): Ditto. - (indexed_loadstore_def::get_name): Ditto. - (th_loadstore_width_def::get_name): Ditto. - (th_indexed_loadstore_width_def::get_name): Ditto. - (alu_def::get_name): Ditto. - (alu_frm_def::get_name): Ditto. - (widen_alu_frm_def::get_name): Ditto. - (narrow_alu_frm_def::get_name): Ditto. - (reduc_alu_frm_def::get_name): Ditto. - (widen_alu_def::get_name): Ditto. - (no_mask_policy_def::get_name): Ditto. - (return_mask_def::get_name): Ditto. - (narrow_alu_def::get_name): Ditto. - (move_def::get_name): Ditto. - (mask_alu_def::get_name): Ditto. - (reduc_alu_def::get_name): Ditto. - (th_extract_def::get_name): Ditto. - (scalar_move_def::get_name): Ditto. - (vundefined_def::get_name): Ditto. - (misc_def::get_name): Ditto. - (vset_def::get_name): Ditto. - (vcreate_def: Ditto.::get_name): Ditto. - (read_vl_def::get_name): Ditto. - (fault_load_def::get_name): Ditto. - (vlenb_def::get_name): Ditto. - (seg_loadstore_def::get_name): Ditto. - (seg_indexed_loadstore_def::get_name): Ditto. - (seg_fault_load_def::get_name): Ditto. - (crypto_vv_def::get_name): Ditto. - (crypto_vi_def::get_name): Ditto. - (crypto_vv_no_op_type_def::get_name): Ditto. - (sf_vqmacc_def::get_name): Ditto. - (sf_vqmacc_def::get_name): Ditto. - (sf_vfnrclip_def::get_name): Ditto. - * config/riscv/riscv-vector-builtins.cc - (function_builder::add_unique_function): Adjust the type for the - function name holder. - (function_builder::add_overloaded_function): Ditto. - * config/riscv/riscv-vector-builtins.h (function_shape::get_name): Add - const to the return type. - -2024-12-07 Lewis Hyatt - - * libgdiagnostics.cc (struct diagnostic_manager): Use location_t(-1) - instead of UINT_MAX to support 64-bit location_t as well. - (diagnostic_manager::diagnostic_manager): Change hard-coded "5" to - line_map_suggested_range_bits. - -2024-12-07 Lewis Hyatt - - * rtl.def (DEBUG_INSN): Use new format code 'L' for location_t fields. - (INSN): Likewise. - (JUMP_INSN): Likewise. - (CALL_INSN): Likewise. - (ASM_INPUT): Likewise. - (ASM_OPERANDS): Likewise. - * rtl.h (union rtunion): Add new location_t RT_LOC member for use by - the 'L' format. - (struct rtx_debug_insn): Adjust comment. - (struct rtx_nonjump_insn): Adjust comment. - (struct rtx_call_insn): Adjust comment. - (XLOC): New accessor macro for rtunion::rt_loc. - (X0LOC): Likewise. - (XCLOC): Likewise. - (INSN_LOCATION): Use XLOC instead of XUINT to retrieve a location_t. - (NOTE_MARKER_LOCATION): Likewise for XCUINT -> XCLOC. - (ASM_OPERANDS_SOURCE_LOCATION): Likewise. - (ASM_INPUT_SOURCE_LOCATION):Likewise. - (gen_rtx_ASM_INPUT): Adjust to use sL format instead of si. - (gen_rtx_INSN): Adjust prototype to use location_r rather than int - for the location. - * cfgrtl.cc (force_nonfallthru_and_redirect): Change type of LOC - local variable from int to location_t. - * rtlhash.cc (add_rtx): Support 'L' format in the switch statement. - * var-tracking.cc (loc_cmp): Likewise. - * alias.cc (rtx_equal_for_memref_p): Likewise. - * config/alpha/alpha.cc (summarize_insn): Likewise. - * config/ia64/ia64.cc (rtx_needs_barrier): Likewise. - * config/rs6000/rs6000.cc (rs6000_hash_constant): Likewise. - * cse.cc (hash_rtx): Likewise. - (exp_equiv_p): Likewise. - * cselib.cc (rtx_equal_for_cselib_1): Likewise. - (cselib_hash_rtx): Likewise. - (cselib_expand_value_rtx_1): Likewise. - * emit-rtl.cc (copy_insn_1): Likewise. - (gen_rtx_INSN): Change the location argument from int to location_t, - and call the corresponding gen_rtf_fmt_* function. - * final.cc (leaf_renumber_regs_insn): Support 'L' format in the - switch statement. - * genattrtab.cc (attr_rtx_1): Likewise. - * genemit.cc (gen_exp): Likewise. - * gengenrtl.cc (type_from_format): Likewise. - (accessor_from_format): Likewise. - * gengtype.cc (adjust_field_rtx_def): Likewise. - * genpeep.cc (match_rtx): Likewise; just mark gcc_unreachable() for - now. - * genrecog.cc (find_operand): Support 'L' format in the switch statement. - (find_matching_operand): Likewise. - (validate_pattern): Likewise. - * gensupport.cc (subst_pattern_match): Likewise. - (get_alternatives_number): Likewise. - (collect_insn_data): Likewise. - (alter_predicate_for_insn): Likewise. - (alter_constraints): Likewise. - (subst_dup): Likewise. - * jump.cc (rtx_renumbered_equal_p): Likewise. - * loop-invariant.cc (hash_invariant_expr_1): Likewise. - * lra-constraints.cc (operands_match_p): Likewise. - * lra.cc (lra_rtx_hash): Likewise. - * print-rtl.cc (rtx_writer::print_rtx_operand_code_i): Refactor - location_t-relevant code to... - (rtx_writer::print_rtx_operand_code_L): ...new function here. - (rtx_writer::print_rtx_operand): Support 'L' format in the switch statement. - * print-rtl.h (rtx_writer::print_rtx_operand_code_L): Add prototype - for new function. - * read-rtl-function.cc (function_reader::read_rtx_operand): Support - 'L' format in the switch statement. - (function_reader::read_rtx_operand_i_or_n): Rename to... - (function_reader::read_rtx_operand_inL): ...this, and support 'L' as - well. - * read-rtl.cc (apply_int_iterator): Support 'L' format in the switch - statement. - (rtx_reader::read_rtx_operand): Likewise. - * reload.cc (operands_match_p): Likewise. - * rtl.cc (rtx_format): Add new code 'L'. - (rtx_equal_p): Support 'L' in the switch statement. Remove dead code - in the handling for 'i' and 'n'. - -2024-12-07 Lewis Hyatt - - * final.cc (reemit_insn_block_notes): Don't try to call - INSN_LOCATION on a NOTE rtl object. Don't call change_scope () for a - NOTE missing a location. - -2024-12-07 Lewis Hyatt - - * tree-parloops.cc (struct reduction_info): Store the result of the - reduction PHI rather than the PHI itself. - (reduction_info::reduc_phi): New member function. - (reduction_hasher::equal): Adapt to the change in struct reduction_info. - (reduction_phi): Likewise. - (initialize_reductions): Likewise. - (create_call_for_reduction_1): Likewise. - (transform_to_exit_first_loop_alt): Likewise. - (transform_to_exit_first_loop): Likewise. - (build_new_reduction): Likewise. - (set_reduc_phi_uids): Likewise. - (try_create_reduction_list): Likewise. - * tree-ssa-loop-split.cc (split_loop): Remember the PHI result - variable so that the PHI can be found in case it is resized and move - to a new address. - * tree-vect-loop-manip.cc (vect_loop_versioning): After calling - loop_version(), fix up stored PHI pointers in case they have - changed. - * tree-vectorizer.cc (vec_info::resync_stmt_addr): New function. - * tree-vectorizer.h (vec_info::resync_stmt_addr): Declare. - -2024-12-06 Andrew MacLeod - - PR tree-optimization/117467 - * gimple-range-infer.cc (infer_range_manager::add_ranges): Check - range_of_expr to see if the inferred range is needed. - -2024-12-06 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::ranger_cache): Create the - infer oracle using THIS as the range_query. - * gimple-range-infer.cc (gimple_infer_range::gimple_infer_range): - Add a range_query to the constructor and use it. - (infer_range_manager::infer_range_manager): Add a range_query. - * gimple-range-infer.h (gimple_infer_range): Adjust prototype. - (infer_range_manager): Add a range_query. - * value-query.cc (range_query::create_infer_oracle): Add a range_query. - * value-query.h (range_query::create_infer_oracle): Update prototype. - -2024-12-06 Andrew MacLeod - - PR tree-optimization/117467 - * gimple-range-cache.cc (ranger_cache::entry_range): Do not - invoke range_from_dom for invariant ssa-names. - -2024-12-06 Vladimir N. Makarov - - PR rtl-optimization/117248 - * lra-lives.cc (start_living, start_dying): Remove. - (insn_regnos, out_insn_regnos, insn_regnos_live_after): New. - (sparseset_contains_pseudos_p): Remove. - (make_hard_regno_live, make_hard_regno_dead): Return true if - something in liveness is changed. - (mark_pseudo_live, mark_pseudo_dead): Ditto. - (mark_regno_live, mark_regno_dead): Ditto. - (clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead - of dead_set. - (process_bb_lives): Rewrite dealing with reg notes. Update - conflict hard regs even when clobber hard reg is not marked as - dead. - (lra_create_live_ranges_1): Add initialization/finalization of - insn_regnos, out_insn_regnos, insn_regnos_live_after. - -2024-12-06 Jeff Law - - PR tree-optimization/117895 - * expr.cc (calculate_table_based_CRC): Drop CRC_MODE argument. - Convert DATA to CRC's mode, then do calculations in CRC's mode. - (expand_crc_table_based): Corresponding changes. - (expand_reversed_crc_table_based): Corresponding changes. - -2024-12-06 Uros Bizjak - - * config/i386/i386.cc (ix86_decompose_address): - Add missing part from my previous commit. - -2024-12-06 Uros Bizjak - - * config/i386/i386.cc (ix86_decompose_address): Eliminate - common code and use use UINTVAL and HOST_WIDE_INT_UC macros - in the condition for AND wrapped address. - -2024-12-06 Uros Bizjak - - PR target/117926 - * config/i386/mmx.md (UNSPEC_3DNOW): New unspec. - (mmx_addv2sf3): Tag insn with UNSPEC_3DNOW tag. - (*mmx_addv2sf3): Ditto. - (mmx_sub2vsf3): Ditto. - (mmx_subrv2sf3): Ditto. - (*mmx_subv2sf3): Ditto. - (mmx_mulv2sf3): Ditto. - (mmx_v2sf3): Ditto. - (*mmx_v2sf3): Ditto. - (mmx_ieee_v2sf3): Ditto. - (mmx_eqv2sf3): Ditto. - (*mmx_eqv2sf3): Ditto. - (mmx_gtv2sf3): Ditto. - (mmx_gev2sf3): Ditto. - (mmx_fix_truncv2sfv2si2): Ditto. - (mmx_floatv2siv2sf2): Ditto. - -2024-12-06 David Malcolm - - * diagnostic.cc (diagnostic_context::override_urlifier): New. - * diagnostic.h (diagnostic_context::override_urlifier): New decl. - * doc/extend.texi (Nvidia PTX Function Attributes): Update - @cindex to specify that "kernel" is a function attribute and - "shared" is a variable attribute, so that these entries are - recognized by the regex in regenerate-attr-urls.py. - * doc/tm.texi: Regenerate. - * doc/tm.texi.in (TARGET_DOCUMENTATION_NAME): New. - * gcc-attribute-urlifier.cc: New file. - * gcc-urlifier.cc: Include diagnostic.h. - (gcc_urlifier::make_doc): Convert to... - (make_doc_url): ...this. - (auto_override_urlifier::auto_override_urlifier): New. - (auto_override_urlifier::~auto_override_urlifier): New. - (selftest::gcc_urlifier_cc_tests): Split out body into... - (selftest::test_gcc_urlifier): ...this. - * gcc-urlifier.h: Include "pretty-print-urlifier.h" and "label-text.h". - (make_doc_url): New decl. - (class auto_override_urlifier): New. - (class attribute_urlifier): New. - (class auto_urlify_attributes): New. - * gimple-ssa-warn-access.cc: Include "gcc-urlifier.h". - (pass_waccess::execute): Use auto_urlify_attributes. - * gimplify.cc: Include "gcc-urlifier.h". - (expand_FALLTHROUGH): Use auto_urlify_attributes. - * internal-fn.cc: Define INCLUDE_MEMORY and include - "gcc-urlifier.h. - (expand_FALLTHROUGH): Use auto_urlify_attributes. - * ipa-pure-const.cc: Include "gcc-urlifier.h. - (suggest_attribute): Use auto_urlify_attributes. - * ipa-strub.cc: Include "gcc-urlifier.h. - (can_strub_p): Use auto_urlify_attributes. - * regenerate-attr-urls.py: New file. - * selftest-run-tests.cc (selftest::run_tests): Call - gcc_attribute_urlifier_cc_tests. - * selftest.h (selftest::gcc_attribute_urlifier_cc_tests): New - decl. - * target.def (documentation_name): New DEFHOOKPOD. - * tree-cfg.cc: Include "gcc-urlifier.h. - (do_warn_unused_result): Use auto_urlify_attributes. - * tree-ssa-uninit.cc: Include "gcc-urlifier.h. - (maybe_warn_read_write_only): Use auto_urlify_attributes. - (maybe_warn_pass_by_reference): Likewise. - -2024-12-06 David Malcolm - - * Makefile.in (OBJS): Add -attribute-urlifier.o. - (ATTR_URLS_HTML_DEPS): New. - (regenerate-attr-urls): New. - (regenerate-attr-urls-unit-test): New. - * attr-urls.def: New file. - * attribs.cc: Include "gcc-urlifier.h". - (decl_attributes): Use auto_urlify_attributes. - * config/aarch64/aarch64.cc (TARGET_DOCUMENTATION_NAME): New. - * config/arc/arc.cc (TARGET_DOCUMENTATION_NAME): New. - * config/arm/arm.cc (TARGET_DOCUMENTATION_NAME): New. - * config/bfin/bfin.cc (TARGET_DOCUMENTATION_NAME): New. - * config/bpf/bpf.cc (TARGET_DOCUMENTATION_NAME): New. - * config/epiphany/epiphany.cc (TARGET_DOCUMENTATION_NAME): New. - * config/gcn/gcn.cc (TARGET_DOCUMENTATION_NAME): New. - * config/h8300/h8300.cc (TARGET_DOCUMENTATION_NAME): New. - * config/i386/i386.cc (TARGET_DOCUMENTATION_NAME): New. - * config/ia64/ia64.cc (TARGET_DOCUMENTATION_NAME): New. - * config/m32c/m32c.cc (TARGET_DOCUMENTATION_NAME): New. - * config/m32r/m32r.cc (TARGET_DOCUMENTATION_NAME): New. - * config/m68k/m68k.cc (TARGET_DOCUMENTATION_NAME): New. - * config/mcore/mcore.cc (TARGET_DOCUMENTATION_NAME): New. - * config/microblaze/microblaze.cc (TARGET_DOCUMENTATION_NAME): - New. - * config/mips/mips.cc (TARGET_DOCUMENTATION_NAME): New. - * config/msp430/msp430.cc (TARGET_DOCUMENTATION_NAME): New. - * config/nds32/nds32.cc (TARGET_DOCUMENTATION_NAME): New. - * config/nvptx/nvptx.cc (TARGET_DOCUMENTATION_NAME): New. - * config/riscv/riscv.cc (TARGET_DOCUMENTATION_NAME): New. - * config/rl78/rl78.cc (TARGET_DOCUMENTATION_NAME): New. - * config/rs6000/rs6000.cc (TARGET_DOCUMENTATION_NAME): New. - * config/rx/rx.cc (TARGET_DOCUMENTATION_NAME): New. - * config/s390/s390.cc (TARGET_DOCUMENTATION_NAME): New. - * config/sh/sh.cc (TARGET_DOCUMENTATION_NAME): New. - * config/stormy16/stormy16.cc (TARGET_DOCUMENTATION_NAME): New. - * config/v850/v850.cc (TARGET_DOCUMENTATION_NAME): New. - * config/visium/visium.cc (TARGET_DOCUMENTATION_NAME): New. - -2024-12-06 Georg-Johann Lay - - * config/avr/avr.opt.urls: Rebuild. - -2024-12-06 Georg-Johann Lay - - * common/config/avr/avr-common.cc - (avr_option_optimization_table): Default to -fno-optimize-crc. - -2024-12-06 kelefth - - PR rtl-optimization/117816 - * avoid-store-forwarding.cc (store_forwarding_analyzer::avoid_store_forwarding): - Reject the transformation when having instructions that may - throw exceptions in the sequence. - -2024-12-06 Thomas Schwinge - - * config/nvptx/nvptx-sm.def: Add '89'. - * config/nvptx/nvptx-gen.h: Regenerate. - * config/nvptx/nvptx-gen.opt: Likewise. - * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust. - * config/nvptx/nvptx.opt (-march-map=sm_89, -march-map=sm_90) - (march-map=sm_90a): Likewise. - * config.gcc: Likewise. - * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_89'. - * config/nvptx/gen-multilib-matches-tests: Extend. - -2024-12-06 Thomas Schwinge - - * config/nvptx/nvptx-opts.h (enum ptx_version): Add - 'PTX_VERSION_7_8'. - * config/nvptx/nvptx.cc (ptx_version_to_string) - (ptx_version_to_number): Adjust. - * config/nvptx/nvptx.h (TARGET_PTX_7_8): New. - * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue' - '7.8' for 'PTX_VERSION_7_8'. - * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=7.8'. - -2024-12-06 Thomas Schwinge - - * config/nvptx/nvptx-sm.def: Add '52'. - * config/nvptx/nvptx-gen.h: Regenerate. - * config/nvptx/nvptx-gen.opt: Likewise. - * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust. - * config/nvptx/nvptx.opt (-march-map=sm_52): Likewise. - * config.gcc: Likewise. - * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_52'. - * config/nvptx/gen-multilib-matches-tests: Extend. - -2024-12-06 Thomas Schwinge - - * config/nvptx/nvptx-sm.def: Add '37'. - * config/nvptx/nvptx-gen.h: Regenerate. - * config/nvptx/nvptx-gen.opt: Likewise. - * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust. - * config/nvptx/nvptx.opt (-march-map=sm_37, -march-map=sm_50): - Likewise. - * config.gcc: Likewise. - * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_37'. - * config/nvptx/gen-multilib-matches-tests: Extend. - -2024-12-06 Thomas Schwinge - - * config/nvptx/nvptx-opts.h (enum ptx_version): Add - 'PTX_VERSION_4_1'. - * config/nvptx/nvptx.cc (ptx_version_to_string) - (ptx_version_to_number): Adjust. - * config/nvptx/nvptx.h (TARGET_PTX_4_1): New. - * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue' - '4.1' for 'PTX_VERSION_4_1'. - * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.1'. - -2024-12-06 Thomas Schwinge - - * config/nvptx/nvptx.h (TARGET_PTX_4_2): New. - * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue' - '4.2' for 'PTX_VERSION_4_2'. - * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.2'. - -2024-12-06 Thomas Schwinge - - * config/nvptx/nvptx-opts.h (enum ptx_version): Remove - 'PTX_VERSION_3_0'. - * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm) - (default_ptx_version_option, ptx_version_to_string) - (ptx_version_to_number): Adjust. - * config/nvptx/nvptx.h: Comment. - -2024-12-06 Thomas Schwinge - - * config.gcc: nvptx: Support '--with-multilib-list'. - * config/nvptx/gen-multilib-matches.sh: Adjust. - * configure.ac: Likewise. - * configure: Regenerate. - * doc/install.texi: Update. - * doc/invoke.texi: Align. - * config/nvptx/gen-multilib-matches-tests: Extend. - -2024-12-06 Jakub Jelinek - - * gimplify.cc (gimplify_init_ctor_eval): Use RAW_DATA_UCHAR_ELT - macro. - * gimple-fold.cc (fold_array_ctor_reference): Likewise. - * tree-pretty-print.cc (dump_generic_node): Use RAW_DATA_UCHAR_ELT - and RAW_DATA_SCHAR_ELT macros. - * fold-const.cc (fold): Use RAW_DATA_UCHAR_ELT macro. - -2024-12-06 Richard Biener - - * match.pd: Remove redundant :c, reported by genmatch as - duplicate patterns. - -2024-12-06 Richard Biener - - * match.pd (.SAT_ADD patterns using IFN_ADD_OVERFLOW): Remove :c that - only causes duplicate patterns. - -2024-12-06 Hau Hsu - Kito Cheng - - * config.gcc (riscv*-*-*): Add support for --with-cmodel configure option. - (all_defaults): Add cmodel. - * config/riscv/riscv.h (TARGET_DEFAULT_CMODEL): Remove. - * doc/install.texi: Document --with-cmodel configure option. - * doc/invoke.texi (-mcmodel): Mention --with-cmodel configure option. - -2024-12-06 Thomas Schwinge - - * config/nvptx/gen-multilib-matches.sh: Support '--selftest'. - * config/nvptx/t-nvptx (t-nvptx-gen-multilib-matches:): Invoke it. - * config/nvptx/gen-multilib-matches-tests: New. - -2024-12-06 Thomas Schwinge - - * config/nvptx/gen-h.sh: Don't pass in '$1'; compute it locally. - * config/nvptx/gen-multilib-matches.sh: Likewise. - * config/nvptx/gen-omp-device-properties.sh: Likewise. - * config/nvptx/gen-opt.sh: Likewise. - * config/nvptx/t-nvptx (s-nvptx-gen-h:, s-nvptx-gen-opt:) - (t-nvptx-gen-multilib-matches:): Adjust. - * config/nvptx/t-omp-device (omp-device-properties-nvptx): - Likewise. - -2024-12-06 Thomas Schwinge - - * config/nvptx/gen-multilib-matches.sh: Encapsulate main logic. - -2024-12-06 Thomas Schwinge - - * config/nvptx/t-nvptx (multilib_matches): Don't use the 'shell' - function of 'make'. - * config/nvptx/gen-multilib-matches.sh: Adjust. - -2024-12-06 Thomas Schwinge - - PR target/117916 - * config/nvptx/nvptx.opt (misa=, mptx=): Tag as 'Negative' of - themselves. - -2024-12-06 Thomas Schwinge - - PR testsuite/82250 - * gimple-fold.cc (gimple_fold_builtin_acc_on_device): Revert last - change. - -2024-12-06 Jakub Jelinek - - * tree.h (RAW_DATA_UCHAR_ELT, RAW_DATA_SCHAR_ELT): Define. - -2024-12-06 Jennifer Schmitz - - PR target/106329 - * config/aarch64/aarch64-sve-builtins-base.cc - (svac_impl::fold): Add folding if pfalse predicate. - (svadda_impl::fold): Likewise. - (class svaddv_impl): Likewise. - (class svandv_impl): Likewise. - (svclast_impl::fold): Likewise. - (svcmp_impl::fold): Likewise. - (svcmp_wide_impl::fold): Likewise. - (svcmpuo_impl::fold): Likewise. - (svcntp_impl::fold): Likewise. - (class svcompact_impl): Likewise. - (class svcvtnt_impl): Likewise. - (class sveorv_impl): Likewise. - (class svminv_impl): Likewise. - (class svmaxnmv_impl): Likewise. - (class svmaxv_impl): Likewise. - (class svminnmv_impl): Likewise. - (class svorv_impl): Likewise. - (svpfirst_svpnext_impl::fold): Likewise. - (svptest_impl::fold): Likewise. - (class svsplice_impl): Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.cc - (class svcvtxnt_impl): Likewise. - (svmatch_svnmatch_impl::fold): Likewise. - * config/aarch64/aarch64-sve-builtins.cc - (is_pfalse): Return true if tree is pfalse. - (gimple_folder::fold_pfalse): Fold calls with pfalse predicate. - (gimple_folder::fold_call_to): Fold call to lhs = t for given tree t. - (gimple_folder::fold_to_stmt_vops): Helper function that folds the - call to given stmt and adjusts virtual operands. - (gimple_folder::fold): Call fold_pfalse. - * config/aarch64/aarch64-sve-builtins.h (is_pfalse): Declare is_pfalse. - -2024-12-06 Richard Biener - - PR rtl-optimization/117922 - * timevar.def (TV_FOLD_MEM_OFFSETS): New. - * fold-mem-offsets.cc (pass_data_fold_mem): Use TV_FOLD_MEM_OFFSETS. - -2024-12-05 Uros Bizjak - - PR target/117860 - * config/i386/i386.cc (ix86_canonicalize_comparison): Swap - operands of GTU comparison to canonicalize addcarry/subborrow - comparison. - (ix86_cc_mode): Return CCCmode for the comparison of - addcarry/subborrow pattern. - * config/i386/i386.md (addcarry): Swap operands of - PLUS RTX to make it canonical. - (*addcarry_1): Ditto. - (addcarry peephole2s): Update RTXes for addcarry_1 change. - (*add3_doubleword_cc_overflow_1): Ditto. - (*subborrow_1): New insn pattern. - -2024-12-05 Richard Earnshaw - - * config/arm/mmintrin.h: Raise an error if this header is used. - Remove other content. - -2024-12-05 Richard Sandiford - - * config/aarch64/aarch64-simd-pragma-builtins.def - (ENTRY_TERNARY_VLUT8): Use FLAG_QUIET rather than FLAG_DEFAULT. - (ENTRY_TERNARY_VLUT16): Likewise. - -2024-12-05 Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (FLAG_QUIET): Redefine to 0, - replacing the old flag with... - (FLAG_AUTO_FP): ...this. - (FLAG_DEFAULT): Redefine to FLAG_AUTO_FP. - (aarch64_call_properties): Update accordingly. - -2024-12-05 Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (FLAG_NONE): Rename to... - (FLAG_DEFAULT): ...this and update all references. - * config/aarch64/aarch64-simd-builtins.def: Update all references - here too. - * config/aarch64/aarch64-simd-pragma-builtins.def: Likewise. - -2024-12-05 Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (FLAG_AUTO_FP): Rename to... - (FLAG_QUIET): ...this and update all references. - * config/aarch64/aarch64-simd-builtins.def: Update all references - here too. - -2024-12-05 Pan Li - - * match.pd: Refactor sorts of unsigned SAT_TRUNC match patterns. - -2024-12-05 Richard Biener - - PR middle-end/117801 - * tree-outof-ssa.cc (ssa_is_replaceable_p): Make - direct internal function calls replaceable. - * expr.cc (get_def_for_expr): Handle replacements with calls. - (get_def_for_expr_class): Likewise. - (optimize_bitfield_assignment_op): Likewise. - (expand_expr_real_1): Likewise. Properly expand direct - internal function defs. - * cfgexpand.cc (expand_call_stmt): Handle replacements with calls. - (avoid_deep_ter_for_debug): Likewise, always create a debug temp - for calls. - (expand_debug_expr): Likewise, give up for calls. - (expand_gimple_basic_block): Likewise. - * ccmp.cc (ccmp_candidate_p): Likewise. - (get_compare_parts): Likewise. - -2024-12-05 Arvin Zhong - - * config/arm/arm-cpus.in (star-mc1): Add CDE options. - * doc/invoke.texi (cdecp options): Document for star-mc1. - -2024-12-05 Jakub Jelinek - - PR rtl-optimization/113994 - PR rtl-optimization/116799 - * loop-doloop.cc: Include targhooks.h. - (doloop_optimize): Also punt on intersection of modified - with df_get_live_in (desc->out_edge->dest). - (doloop_optimize_loops): Call df_analyze. Use - LI_ONLY_INNERMOST or LI_FROM_INNERMOST instead of 0 as - second loops_list argument. - -2024-12-05 Jakub Jelinek - - PR c/107980 - * ginclude/stdarg.h (va_start): For C23+ change parameters from - v, ... to just ... and define to __builtin_c23_va_start(__VA_ARGS__) - rather than __builtin_va_start(v, 0). - -2024-12-05 Georg-Johann Lay - - PR target/107957 - * config/avr/avr-passes-fuse-move.h (bbinfo_t) : - Add static property. - * config/avr/avr-passes.cc (bbinfo_t::try_mem0_p): Define it. - (optimize_data_t::try_mem0): New method. - (bbinfo_t::optimize_one_block) [bbinfo_t::try_mem0_p]: Run try_mem0. - (bbinfo_t::optimize_one_function): Set bbinfo_t::try_mem0_p. - * config/avr/avr.md (pushhi1_insn): Also allow zero as source. - (define_split) [avropt_split_ldst]: Only run avr_split_ldst() - when avr-fuse-move has been run at least once. - * doc/invoke.texi (AVR Options) <-msplit-ldst>: Document it. - -2024-12-05 Georg-Johann Lay - - PR target/107957 - * config/avr/avr.opt (-msplit-ldst, avropt_split_ldst): - New option and associated var. - * common/config/avr/avr-common.cc (avr_option_optimization_table) - [OPT_LEVELS_2_PLUS]: Turn on -msplit_ldst. - * config/avr/avr-passes.cc (splittable_address_p) - (avr_byte_maybe_mem, avr_split_ldst): New functions. - * config/avr/avr-protos.h (avr_split_ldst): New proto. - * config/avr/avr.md (define_split) [avropt_split_ldst]: Run - avr_split_ldst(). - -2024-12-05 Georg-Johann Lay - - PR target/64242 - * config/avr/avr.md (nonlocal_goto): Don't restore - hard_frame_pointer_rtx directly, but copy it to local - register, and only set hard_frame_pointer_rtx from it - after emit_stack_restore(). - -2024-12-05 Georg-Johann Lay - - * config/avr/avr-protos.h (avr_out_add_msb): New proto. - * config/avr/avr.cc (avr_out_add_msb): New function. - (avr_adjust_insn_length) [ADJUST_LEN_ADD_GE0, - ADJUST_LEN_ADD_LT0]: Handle cases. - * config/avr/avr.md (adjust_len) : New attr values. - (QISI2): New mode iterator. - (C_MSB): New mode_attr. - (*add3...msb_split, *add3.ge0, *add3.lt0) - (*sub3...msb_split, *sub3.ge0, *sub3.lt0): New - patterns replacing old ones, but with iterators and - using avr_out_add_msb() for asm out. - -2024-12-05 Filip Kastl - - * doc/invoke.texi: Add store-forwarding-max-distance. - -2024-12-05 Filip Kastl - - * params.opt: Add missing '=' after -param=cycle-accurate-model. - -2024-12-05 Jakub Jelinek - - PR c/41045 - * output.h (insn_noperands): Declare. - * final.cc (insn_noperands): No longer static. - * varasm.cc (assemble_asm): Handle ASM_EXPR. - * lto-streamer-out.cc (lto_output_toplevel_asms): Add sorry_at - for non-STRING_CST toplevel asm for now. - * doc/extend.texi (Basic @code{asm}, Extended @code{asm}): Document - that extended asm is now allowed outside of functions with certain - restrictions. - -2024-12-05 Kito Cheng - - * config/riscv/riscv-vector-builtins-shapes.cc - (vsetvl_def::get_name): Adjust return type. - (loadstore_def::get_name): Ditto. - (indexed_loadstore_def::get_name): Ditto. - (th_loadstore_width_def::get_name): Ditto. - (th_indexed_loadstore_width_def::get_name): Ditto. - (alu_def::get_name): Ditto. - (alu_frm_def::get_name): Ditto. - (widen_alu_frm_def::get_name): Ditto. - (narrow_alu_frm_def::get_name): Ditto. - (reduc_alu_frm_def::get_name): Ditto. - (widen_alu_def::get_name): Ditto. - (no_mask_policy_def::get_name): Ditto. - (return_mask_def::get_name): Ditto. - (narrow_alu_def::get_name): Ditto. - (move_def::get_name): Ditto. - (mask_alu_def::get_name): Ditto. - (reduc_alu_def::get_name): Ditto. - (th_extract_def::get_name): Ditto. - (scalar_move_def::get_name): Ditto. - (vundefined_def::get_name): Ditto. - (misc_def::get_name): Ditto. - (vset_def::get_name): Ditto. - (vcreate_def: Ditto.::get_name): Ditto. - (read_vl_def::get_name): Ditto. - (fault_load_def::get_name): Ditto. - (vlenb_def::get_name): Ditto. - (seg_loadstore_def::get_name): Ditto. - (seg_indexed_loadstore_def::get_name): Ditto. - (seg_fault_load_def::get_name): Ditto. - (crypto_vv_def::get_name): Ditto. - (crypto_vi_def::get_name): Ditto. - (crypto_vv_no_op_type_def::get_name): Ditto. - (sf_vqmacc_def::get_name): Ditto. - (sf_vqmacc_def::get_name): Ditto. - (sf_vfnrclip_def::get_name): Ditto. - * config/riscv/riscv-vector-builtins.cc - (function_builder::add_unique_function): Adjust the type for the - function name holder. - (function_builder::add_overloaded_function): Ditto. - * config/riscv/riscv-vector-builtins.h (function_shape::get_name): Add - const to the return type. - -2024-12-04 David Malcolm - - * doc/libgdiagnostics/topics/execution-paths.rst: Add '§' before - references to section of SARIF spec. - * doc/libgdiagnostics/topics/fix-it-hints.rst: Likewise. - * doc/libgdiagnostics/tutorial/01-hello-world.rst: Fix typo. - * doc/libgdiagnostics/tutorial/02-physical-locations.rst: Likewise. - * doc/libgdiagnostics/tutorial/04-notes.rst: Likewise. - * doc/libgdiagnostics/tutorial/06-fix-it-hints.rst: Add link to - diagnostic_add_fix_it_hint_replace. - * doc/libgdiagnostics/tutorial/07-execution-paths.rst: Add '§'. - -2024-12-04 Vineet Gupta - - * haifa-sched.cc (model_choose_insn): Dump unscheduled_preds. - (model_dump_pressure_summary): Dump bb->index. - (model_start_schedule): Pass bb. - * sched-rgn.cc (debug_dependencies): Dump SD_LIST_HARD_BACK deps. - -2024-12-04 Vineet Gupta - - PR target/11472 - * params.opt (--param=cycle-accurate-model=): New opt. - * doc/invoke.texi (cycle-accurate-model): Document. - * haifa-sched.cc (model_excess_group_cost): Return negative - delta if param_cycle_accurate_model is 0. - (model_excess_cost): Ceil negative baseECC to 0 only if - param_cycle_accurate_model is 1. - Dump the actual ECC value. - * config/riscv/riscv.cc (riscv_option_override): Set param - to 0. - -2024-12-04 Georg-Johann Lay - - PR target/84211 - * config/avr/avr-passes.cc (insninfo_t) : Preset to 0. - (run_find_plies) [hamm=0, dump_file]: Don't print INSN_UID - for a null m_insn. - -2024-12-04 David Malcolm - - PR translation/90160 - * config/arm/arm.cc (arm_option_check_internal): Use quotes in - messages that refer to command-line options. Tweak wording. - -2024-12-04 Andreas Schwab - - PR bootstrap/117893 - * configure.ac: Use shell loop to remove -O flags. - * configure: Regenerate. - -2024-12-04 Richard Biener - - PR tree-optimization/116083 - * tree-vect-slp.cc (vect_build_slp_tree_1): Compute vector - type and max_nunits only once. Remove check for matching - vector type of each lane and replace it with matching check - for LHS type. - -2024-12-04 Pan Li - - PR target/117878 - * config/riscv/riscv-v.cc (vlmax_avl_type_p): Add assert for - out of range access. - (nonvlmax_avl_type_p): Ditto. - -2024-12-04 Andrew Pinski - - PR tree-optimization/117243 - PR tree-optimization/116749 - * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Reset loop - estimates if the cond_block was an exit to a loop. - -2024-12-03 Georg-Johann Lay - - * config/avr/avr.cc (avr_insn_location): New variable. - (avr_final_prescan_insn): Set avr_insn_location. - (avr_asm_final_postscan_insn): Unset avr_insn_location after last insn. - (avr_print_operand): Pass avr_insn_location to warning_at. - -2024-12-03 David Malcolm - - * doc/libgdiagnostics/conf.py: Remove "author". Change - "copyright" field to the FSF. - -2024-12-03 Georg-Johann Lay - - PR target/117726 - * config/avr/avr-passes.cc (avr_split_shift_p) - [ASHIFT, LSHIFTRT]: Allow offsets of bitsize - 1. - (avr_split_shift4) [ASHIFT, LSHIFTRT]: Also split offset 31. - (avr_split_shift3) [ASHIFT, LSHIFTRT]: Also split offset 23. - (avr_split_shift2) [ASHIFT, LSHIFTRT]: Also split offset 15. - -2024-12-03 Richard Biener - - PR tree-optimization/117874 - * tree-vect-slp.cc (vect_build_slp_tree_2): Perform early - reassoc checks before eating into discovery limit. - -2024-12-03 Richard Biener - - PR tree-optimization/117874 - * tree-vectorizer.h (vec_info_shared::n_stmts): Remove. - (LOOP_VINFO_N_STMTS): Likewise. - * tree-vectorizer.cc (vec_info_shared::vec_info_shared): Adjust. - * tree-vect-loop.cc (vect_get_datarefs_in_loop): Do not - count stmts. - (vect_analyze_loop_2): Adjust. Pass stmt_vec_info.length () - to vect_analyze_slp as SLP tree size limit. - -2024-12-03 Georg-Johann Lay - - PR target/117726 - * config/avr/avr-passes.cc (avr_emit_shift): All 8-bit shifts with - an offset of 6 have 3-operand alternatives. - * config/avr/avr.cc (ashlqi3_out, lshrqi3_out) [case 6]: - Implement as 3-operand insn. - (avr_rtx_costs_1) [QImode, ASHIFT + LSHIFTRT]: Adjust - costs for offset of 6. - * config/avr/avr.md (*ashlqi3_split, *ashlqi3) - (*lshrqi3_split, *lshrqi3): Add "r,r,C06" alternative. - -2024-12-03 Claudio Bantaloukas - - * config/aarch64/aarch64-option-extensions.def: (fp8): fix FEATURE_STRING. - (fp8fma, ssve-fp8fma): Likewise. - (fp8dot4, ssve-fp8dot4, fp8dot2, ssve-fp8dot2): Likewise. - -2024-12-03 Jakub Jelinek - - PR tree-optimization/117420 - * tree-ssanames.h (get_known_nonzero_bits): Declare. - * tree-ssanames.cc (get_nonzero_bits): New wrapper function. Move old - definition to ... - (get_nonzero_bits_1): ... here, add static. Change widest_int in - function comment to wide_int. - (get_known_nonzero_bits_1, get_known_nonzero_bits): New functions. - * match.pd (with_possible_nonzero_bits2): Rename to ... - (with_possible_nonzero_bits): ... this. Guard the bit_and case with - #if GENERIC. Change to a normal match predicate without parameters. - Rename the old with_possible_nonzero_bits match to ... - (with_possible_nonzero_bits_1): ... this. - (with_certain_nonzero_bits2): Remove. - (with_known_nonzero_bits_1, with_known_nonzero_bits): New match - predicates. - (X == C (or X & Z == Y | C) is impossible if ~nonzero(X) & C != 0): - Use with_known_nonzero_bits@0 instead of - (with_certain_nonzero_bits2 @1), use with_possible_nonzero_bits@0 - instead of (with_possible_nonzero_bits2 @0) and - get_known_nonzero_bits (@1) instead of wi::to_wide (@1). - -2024-12-03 Jakub Jelinek - - PR middle-end/117847 - * gimple-lower-bitint.cc (gimple_lower_bitint) : - Use m = (p - n) % p instead of m = p - n for the other shift count. - -2024-12-03 Tobias Burnus - - * cgraphunit.cc (varpool_node::finalize_decl): Set alignment - based on OpenMP's 'omp allocate' attribute/directive. - -2024-12-03 Richard Sandiford - - * config/aarch64/aarch64-simd-pragma-builtins.def: Add a flags - field to each entry. - * config/aarch64/aarch64-builtins.cc: Update includes accordingly. - (aarch64_pragma_builtins_data): Add a flags field. - (aarch64_init_pragma_builtins): Use the flags field to add attributes - to the function declaration. - -2024-12-03 Saurabh Jha - Vladimir Miloserdov - Richard Sandiford - - * config/aarch64/aarch64-builtins.cc - (aarch64_builtin_signatures): Add binary_lane. - (aarch64_fntype): Handle it. - (simd_types): Add 16-bit x2 types. - (aarch64_pragma_builtins_checker): New class. - (aarch64_general_check_builtin_call): Use it. - (aarch64_expand_pragma_builtin): Add support for lut unspecs. - * config/aarch64/aarch64-option-extensions.def - (AARCH64_OPT_EXTENSION): Add lut option. - * config/aarch64/aarch64-simd-pragma-builtins.def - (ENTRY_BINARY_LANE): Modify to use new ENTRY macro. - (ENTRY_TERNARY_VLUT8): Macro to declare lut intrinsics. - (ENTRY_TERNARY_VLUT16): Macro to declare lut intrinsics. - (REQUIRED_EXTENSIONS): Declare lut intrinsics. - * config/aarch64/aarch64-simd.md - (@aarch64_): Instruction - pattern for luti2 and luti4 intrinsics. - (@aarch64_lutx2): Instruction pattern for - luti4x2 intrinsics. - * config/aarch64/aarch64.h - (TARGET_LUT): lut flag. - * config/aarch64/iterators.md: Iterators and attributes for lut. - * doc/invoke.texi: Document extension in AArch64 Options. - -2024-12-03 Saurabh Jha - Vladimir Miloserdov - Richard Sandiford - - * config/aarch64/aarch64-builtins.cc - (ENTRY): Modify to add support of return and argument types. - (struct simd_type): New struct to declare types using mode and - qualifiers. - (struct aarch64_pragma_builtins_data): Replace mode with - the array of types to support return and argument types. - (aarch64_fntype): Modify to handle different signatures. - (aarch64_expand_pragma_builtin): Modify to handle different - signatures. - * config/aarch64/aarch64-simd-pragma-builtins.def - (ENTRY_VHSDF): Rename to ENTRY_BINARY_VHSDF. - (ENTRY_BINARY): New macro to declare binary intrinsics. - (ENTRY_BINARY_VHSDF): Remove signature argument and use - ENTRY_BINARY. - -2024-12-03 Saurabh Jha - Vladimir Miloserdov - Richard Sandiford - - * config/aarch64/iterators.md: Reorder some declarations, - putting them under the associated heading comment. - -2024-12-03 Richard Sandiford - - * config/aarch64/aarch64-protos.h (aarch64_v64_mode): Declare. - (aarch64_vq_mode): Rename to... - (aarch64_v128_mode): ...this. - * config/aarch64/aarch64.cc (aarch64_v64_mode): New function, - split out from... - (aarch64_simd_container_mode): ...here. - (aarch64_vq_mode): Rename to... - (aarch64_v128_mode): ...this and update callers. - * config/aarch64/aarch64-sve-builtins-base.cc: Likewise update calls. - -2024-12-03 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins.cc (report_non_ice) - (report_out_of_range, report_neither_nor, report_not_one_of) - (report_not_enum): Move to... - * config/aarch64/aarch64.cc: ...here, putting them in the aarch64 - namespace, and... - * config/aarch64/aarch64-protos.h: ...declare them here. - -2024-12-03 Pan Li - - * match.pd: Refactor sorts of unsigned SAT_SUB match patterns. - -2024-12-03 Heiko Eißfeldt - Jakub Jelinek - - PR middle-end/114540 - * varasm.cc (decode_reg_name_and_count): Use strtoul instead of atoi - and simplify verification that the whole asmspec contains just decimal - digits. - -2024-12-03 Richard Biener - - PR tree-optimization/117874 - * tree-vect-loop.cc (vect_analyze_loop_2): When non-SLP - analysis fails, try single-lane SLP. - -2024-12-02 David Malcolm - - * doc/libgdiagnostics/tutorial/01-hello-world.rst: Update linker - command for renaming. - -2024-12-02 Jeff Law - - * configure.ac: Add sym-exec subdirectory. - -2024-12-02 Andreas Schwab - - * config/m68k/m68k.md (movdi+1, movdf+1, movxf+2): Split - constraints so that the operands cannot both be "o". - -2024-12-02 Jakub Jelinek - - * config/mingw/mingw-stdint.h: Add newline at the end of the file. - * config/mingw/winnt-dll.cc: Likewise. - * sym-exec/sym-exec-expression.h: Likewise. - * sym-exec/sym-exec-expression.cc: Likewise. - * sym-exec/sym-exec-condition.cc: Likewise. - * sym-exec/sym-exec-expr-is-a-helper.h: Likewise. - * sym-exec/sym-exec-condition.h: Likewise. - * hwint.cc: Likewise. - * crc-verification.cc: Likewise. - * sarif-spec-urls.def: Likewise. - -2024-12-02 Andre Vieira - - * config/arm/arm_mve.h: Add Runtime Library Exception. - * config/arm/arm_mve_types.h: Likewise. - -2024-12-02 Richard Biener - - PR tree-optimization/116352 - PR tree-optimization/117876 - * tree-vect-slp.cc (vect_slp_can_convert_to_external): New. - (vect_slp_convert_to_external): Call it. - (vect_build_slp_tree_2): Likewise. - -2024-12-02 yulong - - * config/riscv/generic-vector-ooo.md: New reservation. - * config/riscv/genrvv-type-indexer.cc (main): New type. - * config/riscv/riscv-vector-builtins-bases.cc (enum frm_op_type): Delete it. - * config/riscv/riscv-vector-builtins-bases.h (enum frm_op_type): Redefine in h file. - * config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vfnrclip_def): New function. - (SHAPE): Ditto. - * config/riscv/riscv-vector-builtins-shapes.h: Ditto. - * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE_INDEX): New builtins def. - * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX): New base def. - (signed_eew8_index): Ditto. - * config/riscv/riscv-vector-builtins.h (enum required_ext): New extension. - (required_ext_to_isa_name): Ditto. - (required_extensions_specified): Ditto. - (struct function_group_info): Ditto. - * config/riscv/riscv.md: New attr. - * config/riscv/sifive-vector-builtins-bases.cc (class sf_vfnrclip_x_f_qf): New function. - (class sf_vfnrclip_xu_f_qf): Ditto. - (BASE): New base_name. - * config/riscv/sifive-vector-builtins-bases.h: New function_base. - * config/riscv/sifive-vector-builtins-functions.def - (REQUIRED_EXTENSIONS): New intrinsics def. - (sf_vfnrclip_x_f_qf): Ditto. - (sf_vfnrclip_xu_f_qf): Ditto. - * config/riscv/sifive-vector.md (@pred_sf_vfnrclip_x_f_qf): New RTL mode. - * config/riscv/vector-iterators.md: New iterator. - -2024-12-02 Andreas Schwab - - * config/riscv/riscv.cc (fli_value_hf, fli_value_sf) - (fli_value_df): Use integer constants. Constify. - (riscv_float_const_rtx_index_for_fli): Add const. - -2024-12-02 H.J. Lu - - * config/i386/i386-features.cc (pass_apx_nf_convert): Change - pass_rpad to pass_apx_nf_convert in comments. - -2024-12-01 Slava Barinov - - * configure.ac: Only remove -O[0-9] if not preceded with comma - * configure: Regenerated - -2024-12-01 Jovan Vukic - - * tree-ssa-phiopt.cc (rhs_is_fed_for_value_replacement): Add a new - optimization opportunity for BIT_IOR_EXPR and a != b. - (operand_equal_for_value_replacement): Ditto. - -2024-12-01 Mariam Arutunian - - * gimple-crc-optimization.cc (optimize_crc_loop): New function. - (execute): Add optimize_crc_loop function call. - -2024-12-01 Mariam Arutunian - - * Makefile.in (OBJS): Add crc-verification.o. - * crc-verification.cc: New file. - * crc-verification.h: New file. - * gimple-crc-optimization.cc (loop_calculates_crc): New function. - (is_output_crc): Likewise. - (swap_crc_and_data_if_needed): Likewise. - (validate_crc_and_data): Likewise. - (optimize_crc_loop): Likewise. - (get_output_phi): Likewise. - (execute): Add check whether potential CRC loop calculates CRC. - * sym-exec/sym-exec-state.cc (create_reversed_lfsr): New function. - (create_forward_lfsr): Likewise. - (last_set_bit): Likewise. - (create_lfsr): Likewise. - * sym-exec/sym-exec-state.h (is_bit_vector): Reorder, make the function public and static. - (create_reversed_lfsr) New static function declaration. - (create_forward_lfsr) New static function declaration. - -2024-12-01 Matevos Mehrabyan - - * Makefile.in (OBJS): Add sym-exec/sym-exec-expression.o, - sym-exec/sym-exec-state.o, sym-exec/sym-exec-condition.o. - * configure (sym-exec): New subdir. - * sym-exec/sym-exec-condition.cc: New file. - * sym-exec/sym-exec-condition.h: New file. - * sym-exec/sym-exec-expr-is-a-helper.h: New file. - * sym-exec/sym-exec-expression.cc: New file. - * sym-exec/sym-exec-expression.h: New file. - * sym-exec/sym-exec-state.cc: New file. - * sym-exec/sym-exec-state.h: New file. - Co-authored-by: Mariam Arutunian - -2024-12-01 Mariam Arutunian - - * Makefile.in (OBJS): Add gimple-crc-optimization.o. - * common.opt (foptimize-crc): New option. - * common.opt.urls: Regenerate to add foptimize-crc. - * doc/invoke.texi (-foptimize-crc): Add documentation. - * gimple-crc-optimization.cc: New file. - * opts.cc (default_options_table): Add OPT_foptimize_crc. - (enable_fdo_optimizations): Enable optimize_crc. - * passes.def (pass_crc_optimization): Add new pass. - * timevar.def (TV_GIMPLE_CRC_OPTIMIZATION): New timevar. - * tree-pass.h (make_pass_crc_optimization): New extern function - declaration. - -2024-12-01 Mark Harmstone - - * configure.ac (HAVE_GAS_CV_UCOMP): New check. - * configure: Regenerate. - * config.in: Regenerate. - * dwarf2codeview.cc (enum binary_annotation_opcode): Define. - (struct codeview_function): Add htab_next and inline_loc; - (struct cv_func_hasher): Define. - (cv_func_htab): New global variable. - (new_codeview_function): Add new codeview_function to hash table. - (codeview_begin_block): Record location of inline block. - (codeview_end_block): Add dummy source line at end of inline block. - (find_line_function): New function. - (write_binary_annotations): New function. - (write_s_inlinesite): Call write_binary_annotations. - (codeview_debug_finish): Delete cv_func_htab. - -2024-12-01 Andrew Pinski - - PR tree-optimization/117859 - * tree-ssa-sccvn.cc (insert_predicates_for_cond): If the - valueization for the new lhs for `lhs != 0` - is the same as the old ones, don't recurse. - -2024-12-01 Andrew Pinski - - * tree-ssa-loop-im.cc (move_computations_worker): While moving - phi, reuse the lhs of the conditional if it is a boolean type. - -2024-12-01 Alexey Merzlyakov - - PR rtl-optimization/112398 - PR rtl-optimization/117476 - * simplify-rtx.cc (simplify_context::simplify_unary_operation_1): - Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG)) - when X doesn't have any non-zero bits outside of SUBREG mode. - -2024-11-30 Lewis Hyatt - - * diagnostic-show-locus.cc - (test_one_liner_fixit_validation_adhoc_locations): Adapt so it can - effectively test 7-bit ranges instead of 5-bit ranges. - (test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise. - * input.cc (get_end_location): Adjust types to support 64-bit - location_t. - (write_digit_row): Likewise. - (dump_location_range): Likewise. - (dump_location_info): Likewise. - (class line_table_case): Likewise. - (test_accessing_ordinary_linemaps): Replace some hard-coded - constants with the values defined in line-map.h. - (for_each_line_table_case): Likewise. - -2024-11-30 Lewis Hyatt - - * toplev.cc (general_init): Replace hard-coded constant with - line_map_suggested_range_bits. - -2024-11-30 Lewis Hyatt - - * config/aarch64/aarch64-c.cc (aarch64_resolve_overloaded_builtin): - Change "unsigned int" argument to "location_t". - * config/avr/avr-c.cc (avr_resolve_overloaded_builtin): Likewise. - * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Likewise. - * target.def: Likewise. - * doc/tm.texi: Regenerate. - -2024-11-30 Joseph Myers - Richard Biener - - PR c/100501 - PR c/100792 - * gimplify.cc (gimplify_asm_expr): Handle void expressions for - memory inputs like other non-lvalues. - -2024-11-30 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add S_INLINESITE and - S_INLINESITE_END. - (get_func_id): Add declaration. - (write_s_inlinesite): New function. - (write_inlinesite_records): New function. - (write_function): Call write_inlinesite_records. - -2024-11-30 Mark Harmstone - - * dwarf2codeview.cc (DEBUG_S_INLINEELINES): Define. - (CV_INLINEE_SOURCE_LINE_SIGNATURE): Define. - (struct codeview_inlinee_lines): Define. - (struct inlinee_lines_hasher): Define. - (func_htab, inlinee_lines_htab): New global variables. - (get_file_id): New function. - (codeview_source_line): Move file_id logic to get_file_id. - (write_inlinee_lines_entry): New function. - (write_inlinee_lines): New function. - (codeview_debug_finish): Call write_inlinee_lines, and free func_htab - and inlinee_lines_htab. - (get_func_id): New function. - (add_function): Move func_id logic to get_func_id. - (codeview_abstract_function): New function. - * dwarf2codeview.h (codeview_abstract_function): Add declaration. - * dwarf2out.cc (dwarf2out_abstract_function): Call - codeview_abstract_function if outputting CodeView debug info. - -2024-11-30 Mark Harmstone - - * dwarf2codeview.cc (struct codeview_function): Add parent and - inline_block fields. - (cur_func): New global variable. - (new_codeview_function): New function. - (codeview_source_line): Call new_codeview_function, and use cur_func - instead of last_func. - (codeview_begin_block): New function. - (codeview_end_block): New function. - (write_line_numbers): No longer free data as we go along. - (codeview_switch_text_section): Call new_codeview_function, and use - cur_func instead of last_func. - (codeview_end_epilogue): Use cur_func instead of last_func. - (codeview_debug_finish): Free funcs list and its contents. - * dwarf2codeview.h (codeview_begin_block): Add declaration. - (codeview_end_block): Add declaration. - * dwarf2out.cc (dwarf2out_begin_block): Call codeview_begin_block if - outputting CodeView debug info. - (dwarf2out_end_block): Call codeview_end_block if outputting CodeView - debug info. - -2024-11-30 Mark Harmstone - - * debug.cc (do_nothing_debug_hooks): Change begin_block - function pointer. - (debug_nothing_int_int_tree): New function. - * debug.h (struct gcc_debug_hooks): Add tree parameter to begin_block. - (debug_nothing_int_int_tree): Add declaration. - * dwarf2out.cc (dwarf2out_begin_block): Add tree parameter. - (dwarf2_lineno_debug_hooks): Use new dummy function for begin_block. - * final.cc (final_scan_insn_1): Pass insn block through to - debug_hooks->begin_block. - * vmsdbgout.cc (vmsdbgout_begin_block): Add tree parameter. - -2024-11-30 Georg-Johann Lay - - PR target/84211 - * config/avr/avr-passes.cc (try_split_any) [SET, MOVW]: Prefer - reg=reg move over reg=const when splitting a reg=reg insn. - -2024-11-30 Jakub Jelinek - - PR tree-optimization/117057 - * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes): Punt also - when byte_size is equal to offset or nchars. Punt if offset is bigger - than INT_MAX. Handle vector CONSTRUCTOR with some elements constant, - possibly followed by non-constant. - -2024-11-30 Jakub Jelinek - - PR libgomp/117851 - * lto-wrapper.cc (find_crtoffloadtable): Add PIE_OR_SHARED argument, - search for crtoffloadtableS.o rather than crtoffloadtable.o if - true. - (run_gcc): Add pie_or_shared variable. If OPT_pie or OPT_shared or - OPT_static_pie is seen, set pie_or_shared to true, if OPT_no_pie is - seen, set pie_or_shared to false. Pass it to find_crtoffloadtable. - -2024-11-30 Jinyang He - - * config/loongarch/constraints.md (Uuv6, Uuvx): Remove Uuv6, - add Uuvx as replicated vector const with unsigned range [0,umax]. - * config/loongarch/lasx.md (xvsrl, xvsra, xvsll): Mask shift - offset by its unit bits. - * config/loongarch/lsx.md (vsrl, vsra, vsll): Likewise. - * config/loongarch/loongarch-protos.h - (loongarch_const_vector_same_int_p): Set default for low and high. - * config/loongarch/predicates.md: Replace reg_or_vector_same_uimm6 - _operand to reg_or_vector_same_uimm_operand. - -2024-11-30 Jakub Jelinek - - PR rtl-optimization/117360 - * ext-dce.cc (ext_dce_process_sets): Use HOST_WIDE_INT_UC - macro instead of ULL suffixed constants. - (carry_backpropagate): Likewise. Use HOST_WIDE_INT_1U instead of - 1ULL. Use GET_MODE_BITSIZE (smode) instead of - GET_MODE_BITSIZE (mode) and with that avoid having to use - known_lt instead of < or use .to_constant (). Formatting fixes. - (case SIGN_EXTEND): Set mode to GET_MODE_INNER (GET_MODE (XEXP (x, 0))) - rather than GET_MODE (XEXP (x, 0)) and don't use GET_MODE_INNER (mode). - (ext_dce_process_uses): Use HOST_WIDE_INT_UC macro instead of ULL - suffixed constants. - -2024-11-30 Jakub Jelinek - - * doc/invoke.texi (-Wdeprecated-variadic-comma-omission): Document. - -2024-11-29 David Malcolm - - * Makefile.in: Rename "libdiagnostics" to "libgdiagnostics". - * configure.ac: Likewise. - * configure: Regenerate. - * doc/install.texi: Rename "libdiagnostics" to - "libgdiagnostics". - * doc/libdiagnostics/*: Rename to doc/libgdiagnostics, renaming - "libdiagnostics" to "libgdiagnostics" throughout. - * libdiagnostics++.h: Rename to... - * libgdiagnostics++.h: ...this, renaming "libdiagnostics" to - "libgdiagnostics" throughout. - * libdiagnostics.cc: Rename to... - * libgdiagnostics.cc: ...this, renaming "libdiagnostics" to - "libgdiagnostics" throughout. - * libdiagnostics.h: Rename to... - * libgdiagnostics.h: ...this, renaming "libdiagnostics" to - "libgdiagnostics" throughout. - * libdiagnostics.map: Rename to... - * libgdiagnostics.map: ...this, renaming "libdiagnostics" to - "libgdiagnostics" throughout. - * libsarifreplay.cc: Update for renaming of "libdiagnostics" - to "libgdiagnostics". - * libsarifreplay.h: Likewise. - * sarif-replay.cc: Likewise. - * doc/libgdiagnostics/Makefile: New file. - * doc/libgdiagnostics/conf.py: New file. - * doc/libgdiagnostics/index.rst: New file. - * doc/libgdiagnostics/make.bat: New file. - * doc/libgdiagnostics/topics/diagnostic-manager.rst: New file. - * doc/libgdiagnostics/topics/diagnostics.rst: New file. - * doc/libgdiagnostics/topics/execution-paths.rst: New file. - * doc/libgdiagnostics/topics/fix-it-hints.rst: New file. - * doc/libgdiagnostics/topics/index.rst: New file. - * doc/libgdiagnostics/topics/logical-locations.rst: New file. - * doc/libgdiagnostics/topics/message-formatting.rst: New file. - * doc/libgdiagnostics/topics/metadata.rst: New file. - * doc/libgdiagnostics/topics/physical-locations.rst: New file. - * doc/libgdiagnostics/topics/retrofitting.rst: New file. - * doc/libgdiagnostics/topics/sarif.rst: New file. - * doc/libgdiagnostics/topics/text-output.rst: New file. - * doc/libgdiagnostics/topics/ux.rst: New file. - * doc/libgdiagnostics/tutorial/01-hello-world.rst: New file. - * doc/libgdiagnostics/tutorial/02-physical-locations.rst: New file. - * doc/libgdiagnostics/tutorial/03-logical-locations.rst: New file. - * doc/libgdiagnostics/tutorial/04-notes.rst: New file. - * doc/libgdiagnostics/tutorial/05-warnings.rst: New file. - * doc/libgdiagnostics/tutorial/06-fix-it-hints.rst: New file. - * doc/libgdiagnostics/tutorial/07-execution-paths.rst: New file. - * doc/libgdiagnostics/tutorial/example-1.png: New file. - * doc/libgdiagnostics/tutorial/index.rst: New file. - -2024-11-29 Georg-Johann Lay - - * config/avr/avr-c.cc: Fix some coding rule nits and typos. - * config/avr/avr-passes.cc: Same - * config/avr/avr.h: Same. - * config/avr/avr.cc: Same. - (avr_function_arg_regno_p, avr_hard_regno_rename_ok) - (avr_epilogue_uses, extra_constraint_Q): Return bool instead of int. - * config/avr/avr-protos.h (avr_function_arg_regno_p) - (avr_hard_regno_rename_ok, avr_epilogue_uses) - (extra_constraint_Q): Return bool instead of int. - -2024-11-29 Andrew Pinski - - * config/aarch64/aarch64-builtins.cc (aarch64_init_data_intrinsics): Call - aarch64_get_attributes and update calls to aarch64_general_add_builtin. - -2024-11-29 Andrew Pinski - - * config/aarch64/aarch64-builtins.cc (aarch64_init_prefetch_builtin): - Updete call to aarch64_general_add_builtin in AARCH64_INIT_PREFETCH_BUILTIN. - Add new variable prefetch_attrs. - -2024-11-29 Andrew Pinski - - * config/aarch64/aarch64-builtins.cc (VREINTERPRET_BUILTIN): Use - FLAG_NONE instead of FLAG_AUTO_FP. - (VGET_LOW_BUILTIN): Likewise. - (VGET_HIGH_BUILTIN): Likewise. - -2024-11-29 Andrew Pinski - - PR target/117665 - * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_builtin_functions): - Pass nothrow and leaf as attributes to aarch64_general_add_builtin for - __builtin_aarch64_im_lane_boundsi. - -2024-11-29 Vladimir N. Makarov - - PR rtl-optimization/117770 - * lra-lives.cc: Include ira-int.h. - (process_bb_lives): Check hard regs corresponding insn operands - for dying hard wired reg clobbers. - -2024-11-29 Georg-Johann Lay - - PR target/117681 - * config/avr/avr.cc (TARGET_UNWIND_WORD_MODE): Define to... - (avr_unwind_word_mode): ...this new static function. - -2024-11-29 Georg-Johann Lay - - PR target/117726 - * config/avr/avr-passes.cc (avr_shift_is_3op, avr_emit_shift): - Also handle 2-byte and 3-byte shifts. - (avr_split_shift4, avr_split_shift3, avr_split_shift2): New - local helper functions. - (avr_split_shift): Use them. - * config/avr/avr-passes.def (avr_pass_split_after_peephole2): - Adjust comments. - * config/avr/avr.cc (avr_out_ashlpsi3, avr_out_ashrpsi3) - (avr_out_lshrpsi3): Support offset 15. - (ashrhi3_out): Support offset 7 as 3-op. - (ashrsi3_out): Support offset 15. - (avr_rtx_costs_1): Adjust shift costs. - * config/avr/avr.md (2op): Remove attribute value and all such insn - alternatives. - (ashlhi3, *ashlhi3, *ashlhi3_const): Add 3-op alternatives like C2l. - (ashrhi3, *ashrhi3, *ashrhi3_const): Add 3-op alternatives like C2a. - (lshrhi3, *lshrhi3, *lshrhi3_const): Add 3-op alternatives like C2r. - (*ashlpsi3_split, *ashlpsi3): Add 3-op alternatives C15 and C3l. - (*ashrpsi3_split, *ashrpsi3): Add 3-op alternatives C15 and C3r. - (*lshrpsi3_split, *lshrpsi3): Add 3-op alternatives C15 and C3r. - (ashlsi3, *ashlsi3, *ashlsi3_const): Remove "2op" alternative. - (ashrsi3, *ashrsi3, *ashrsi3_const): Same. - (lshrsi3, *lshrsi3, *lshrsi3_const): Same. - (constr_split_suffix): Code attr morphed from constr_split_shift4. - * config/avr/constraints.md (C2a, C2r, C2l) - (C3a, C3r, C3l): New constraints. - * doc/invoke.texi (AVR Options) <-msplit-bit-shift>: Adjust doc. - -2024-11-29 Andre Vieira - - PR target/117814 - * config/arm/arm.cc (arm_attempt_dlstp_transform): Use - reg_overlap_mentioned_p instead of rtx_equal_p to detect uses of - vctp_vpr_generated inside subregs. - -2024-11-29 Mariam Arutunian - - * expr.cc (gf2n_poly_long_div_quotient): New function. - * expr.h (gf2n_poly_long_div_quotient): New function declaration. - * hwint.cc (reflect_hwi): New function. - * hwint.h (reflect_hwi): New function declaration. - * config/riscv/bitmanip.md (crc_rev4): New - expander for reversed CRC. - (crc4): New expander for bit-forward CRC. - * config/riscv/iterators.md (SUBX1, ANYI1): New iterators. - * config/riscv/riscv-protos.h (generate_reflecting_code_using_brev): - New function declaration. - (expand_crc_using_clmul): Likewise. - (expand_reversed_crc_using_clmul): Likewise. - * config/riscv/riscv.cc (generate_reflecting_code_using_brev): New - function. - (expand_crc_using_clmul): Likewise. - (expand_reversed_crc_using_clmul): Likewise. - * config/riscv/riscv.md (UNSPEC_CRC, UNSPEC_CRC_REV): New unspecs. - * doc/sourcebuild.texi: Document new target selectors. - -2024-11-29 yulong - - * config.gcc: Add new SiFive *.o files. - * config/riscv/generic-vector-ooo.md: New reservation. - * config/riscv/genrvv-type-indexer.cc (main): New type. - * config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vqmacc_def): New function. - (SHAPE): Ditto. - * config/riscv/riscv-vector-builtins-shapes.h: Ditto. - * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_QMACC_OPS): New macros type. - (vint32m1_t): Ditto. - (vint32m2_t): Ditto. - (vint32m4_t): Ditto. - (vint32m8_t): Ditto. - * config/riscv/riscv-vector-builtins.cc (DEF_RVV_QMACC_OPS): New builtins def. - (DEF_RVV_TYPE_INDEX): Ditto. - (DEF_RVV_FUNCTION): Ditto. - * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX): New types def. - (4x8x4): New op type. - (2x8x2): Ditto. - (quad_emul_vector): New base type. - (quad_emul_signed_vector): Ditto. - (quad_emul_unsigned_vector): Ditto. - (quad_fixed_vector): Ditto. - (quad_fixed_signed_vector): Ditto. - (quad_fixed_unsigned_vector): Ditto. - (quad_lmul1_vector): Ditto. - (quad_lmul1_signed_vector): Ditto. - (quad_lmul1_unsigned_vector): Ditto. - * config/riscv/riscv-vector-builtins.h (enum required_ext): New extensions. - (required_ext_to_isa_name): Ditto. - (required_extensions_specified): Ditto. - (struct function_group_info): Ditto. - * config/riscv/riscv.md: New attr. - * config/riscv/t-riscv: Add include for SiFive files. - * config/riscv/vector-iterators.md: New iterator. - * config/riscv/vector.md: New include for SiFive file. - * config/riscv/sifive-vector-builtins-bases.cc: New file. - * config/riscv/sifive-vector-builtins-bases.h: New file. - * config/riscv/sifive-vector-builtins-functions.def: New file. - * config/riscv/sifive-vector.md: New file. - -2024-11-29 Tamar Christina - - * config/aarch64/aarch64-errata.h (TARGET_SUPPRESS_OPT_SPEC, - TARGET_TURN_OFF_OPT_SPEC, CA53_ERR_835769_COMPILE_SPEC, - CA53_ERR_843419_COMPILE_SPEC): New. - (CA53_ERR_835769_SPEC, CA53_ERR_843419_SPEC): Use them. - * config/aarch64/aarch64-elf-raw.h (CC1_SPEC, CC1PLUS_SPEC): Add - AARCH64_ERRATA_COMPILE_SPEC. - * config/aarch64/aarch64-freebsd.h (CC1_SPEC, CC1PLUS_SPEC): Likewise. - * config/aarch64/aarch64-gnu.h (CC1_SPEC, CC1PLUS_SPEC): Likewise. - * config/aarch64/aarch64-linux.h (CC1_SPEC, CC1PLUS_SPEC): Likewise. - * config/aarch64/aarch64-netbsd.h (CC1_SPEC, CC1PLUS_SPEC): Likewise. - * common/config/aarch64/aarch64-common.cc - (is_host_cpu_not_armv8_base): New. - * config/aarch64/driver-aarch64.cc: Remove extra newline - * config/aarch64/aarch64.h (is_host_cpu_not_armv8_base): New. - (MCPU_TO_MARCH_SPEC_FUNCTIONS): Add is_local_not_armv8_base. - (EXTRA_SPEC_FUNCTIONS): Add is_local_cpu_armv8_base. - * doc/invoke.texi: Document it. - -2024-11-29 Richard Sandiford - - * config/aarch64/aarch64-sme.md: In the section comments, add the - architecture requirements alongside some mnemonics. - * config/aarch64/aarch64-sve2.md: Likewise. - -2024-11-29 Claudio Bantaloukas - - * config/aarch64/aarch64-option-extensions.def - (fp8dot4, ssve-fp8dot4): Add new extensions. - (fp8dot2, ssve-fp8dot2): Likewise. - * config/aarch64/aarch64-sve-builtins-base.cc (svdot_impl): Support fp8. - (svdotprod_lane_impl): Likewise. - (svdot_lane): Provide an unspec for fp8 types. - * config/aarch64/aarch64-sve-builtins-shapes.cc - (ternary_mfloat8_def): Add new class. - (ternary_mfloat8): Add new shape. - (ternary_mfloat8_lane_group_selection_def): Add new class. - (ternary_mfloat8_lane_group_selection): Add new shape. - * config/aarch64/aarch64-sve-builtins-shapes.h - (ternary_mfloat8, ternary_mfloat8_lane_group_selection): Declare. - * config/aarch64/aarch64-sve-builtins-sve2.def - (svdot, svdot_lane): Add new DEF_SVE_FUNCTION_GS_FPM, twice to deal - with the combination of features providing support for 32 and 16 bit - floating point. - * config/aarch64/aarch64-sve2.md (@aarch64_sve_dot): Add new. - (@aarch64_sve_dot_lane): Likewise. - * config/aarch64/aarch64.h: - (TARGET_FP8DOT4, TARGET_SSVE_FP8DOT4): Add new defines. - (TARGET_FP8DOT2, TARGET_SSVE_FP8DOT2): Likewise. - * config/aarch64/iterators.md - (UNSPEC_DOT_FP8, UNSPEC_DOT_LANE_FP8): Add new unspecs. - * doc/invoke.texi: Document fp8dot4, fp8dot2, ssve-fp8dot4, ssve-fp8dot2 - extensions. - -2024-11-29 Claudio Bantaloukas - - * config/aarch64/aarch64-option-extensions.def - (fp8fma, ssve-fp8fma): Add new options. - * config/aarch64/aarch64-sve-builtins-functions.h - (unspec_based_function_base): Add unspec_for_mfp8. - (unspec_for): Return unspec_for_mfp8 on fpm-using cases. - (sme_1mode_function): Fix call to parent ctor. - (sme_2mode_function_t): Likewise. - (unspec_based_mla_function, unspec_based_mla_lane_function): Handle - fpm-using cases. - * config/aarch64/aarch64-sve-builtins-shapes.cc - (parse_element_type): Treat M as TYPE_SUFFIX_mf8 - (ternary_mfloat8_lane_def): Add new class. - (ternary_mfloat8_opt_n_def): Likewise. - (ternary_mfloat8_lane): Add new shape. - (ternary_mfloat8_opt_n): Likewise. - * config/aarch64/aarch64-sve-builtins-shapes.h - (ternary_mfloat8_lane, ternary_mfloat8_opt_n): Declare. - * config/aarch64/aarch64-sve-builtins-sve2.cc - (svmlalb_lane, svmlalb, svmlalt_lane, svmlalt): Update definitions - with mfloat8_t unspec in ctor. - (svmlallbb_lane, svmlallbb, svmlallbt_lane, svmlallbt, svmlalltb_lane, - svmlalltb, svmlalltt_lane, svmlalltt, svmlal_impl): Add new FUNCTIONs. - (svqrshr, svqrshrn, svqrshru, svqrshrun): Update definitions with - nop mfloat8 unspec in ctor. - * config/aarch64/aarch64-sve-builtins-sve2.def - (svmlalb, svmlalt, svmlalb_lane, svmlalt_lane, svmlallbb, svmlallbt, - svmlalltb, svmlalltt, svmlalltt_lane, svmlallbb_lane, svmlallbt_lane, - svmlalltb_lane): Add new DEF_SVE_FUNCTION_GS_FPMs. - * config/aarch64/aarch64-sve-builtins-sve2.h - (svmlallbb_lane, svmlallbb, svmlallbt_lane, svmlallbt, svmlalltb_lane, - svmlalltb, svmlalltt_lane, svmlalltt): Declare. - * config/aarch64/aarch64-sve-builtins.cc - (TYPES_h_float_mf8, TYPES_s_float_mf8): Add new types. - (h_float_mf8, s_float_mf8): Add new SVE_TYPES_ARRAY. - * config/aarch64/aarch64-sve2.md - (@aarch64_sve_add_): Add new. - (@aarch64_sve_add_): Add new. - (@aarch64_sve_add_lane_): Likewise. - (@aarch64_sve_add_lane_): Likewise. - * config/aarch64/aarch64.h - (TARGET_FP8FMA, TARGET_SSVE_FP8FMA): Likewise. - * config/aarch64/iterators.md - (VNx8HF_ONLY): Add new. - (UNSPEC_FMLALB_FP8, UNSPEC_FMLALLBB_FP8, UNSPEC_FMLALLBT_FP8, - UNSPEC_FMLALLTB_FP8, UNSPEC_FMLALLTT_FP8, UNSPEC_FMLALT_FP8): Likewise. - (SVE2_FP8_TERNARY_VNX8HF, SVE2_FP8_TERNARY_VNX4SF): Likewise. - (SVE2_FP8_TERNARY_LANE_VNX8HF, SVE2_FP8_TERNARY_LANE_VNX4SF): Likewise. - (sve2_fp8_fma_op_vnx8hf, sve2_fp8_fma_op_vnx4sf): Likewise. - * doc/invoke.texi: Document fp8fma and sve-fp8fma extensions. - -2024-11-29 Claudio Bantaloukas - - * config/aarch64/aarch64-sve-builtins-shapes.cc - (parse_signature): Add an fpm_t (uint64_t) argument to functions that - set the fpm register. - (unary_convertxn_narrowt_def): New class. - (unary_convertxn_narrowt): New shape. - (unary_convertxn_narrow_def): New class. - (unary_convertxn_narrow): New shape. - * config/aarch64/aarch64-sve-builtins-shapes.h - (unary_convertxn_narrowt): Declare. - (unary_convertxn_narrow): Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.cc - (svcvt_fp8_impl): New class. - (svcvtn_impl): Handle fp8 cases. - (svcvt1, svcvt2, svcvtlt1, svcvtlt2): Add new FUNCTION. - (svcvtnb): Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.def - (svcvt1, svcvt2, svcvtlt1, svcvtlt2): Add new DEF_SVE_FUNCTION_GS_FPM. - (svcvtn): Likewise. - (svcvtnb, svcvtnt): Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.h - (svcvt1, svcvt2, svcvtlt1, svcvtlt2, svcvtnb, svcvtnt): Declare. - * config/aarch64/aarch64-sve-builtins.cc - (TYPES_cvt_mf8, TYPES_cvtn_mf8, TYPES_cvtnx_mf8): Add new types arrays. - (function_builder::get_name): Append _fpm to functions that set fpmr. - (function_resolver::check_gp_argument): Deal with the fpm_t argument. - (function_expander::expand): Set the fpm register before - calling the insn if the function warrants it. - * config/aarch64/aarch64-sve2.md (@aarch64_sve2_fp8_cvt): Add new. - (@aarch64_sve2_fp8_cvtn): Likewise. - (@aarch64_sve2_fp8_cvtnb): Likewise. - (@aarch64_sve_cvtnt): Likewise. - * config/aarch64/aarch64.h (TARGET_SSVE_FP8): Add new. - * config/aarch64/iterators.md - (VNx8SF_ONLY, SVE_FULL_HFx2): New mode iterators. - (UNSPEC_F1CVT, UNSPEC_F1CVTLT, UNSPEC_F2CVT, UNSPEC_F2CVTLT): Add new. - (UNSPEC_FCVTNB, UNSPEC_FCVTNT): Likewise. - (UNSPEC_FP8FCVTN): Likewise. - (FP8CVT_UNS, fp8_cvt_uns_op): Likewise. - -2024-11-29 Claudio Bantaloukas - - * config/aarch64/aarch64-sve-builtins-base.cc - (svdiv_impl): Specify FPM_unused when folding. - (svmul_impl): Likewise. - * config/aarch64/aarch64-sve-builtins-shapes.cc - (build_one): Use the group fpm_mode when creating function instances. - * config/aarch64/aarch64-sve-builtins-sve2.cc - (svaba_impl, svqrshl_impl, svqshl_impl,svrshl_impl, svsra_impl): - Specify FPM_unused when folding. - * config/aarch64/aarch64-sve-builtins.cc (function_groups): Set - fpm_mode on all elements. - (neon_sve_function_groups, sme_function_groups): Likewise. - (function_instance::hash): Include fpm_mode in hash. - (function_builder::add_overloaded_functions): Use the group fpm mode. - (function_resolver::lookup_form): Use the function instance fpm_mode - when looking up a function. - * config/aarch64/aarch64-sve-builtins.def - (DEF_SVE_FUNCTION_GS_FPM): add define. - (DEF_SVE_FUNCTION_GS): redefine against DEF_SVE_FUNCTION_GS_FPM. - * config/aarch64/aarch64-sve-builtins.h (fpm_mode_index): New. - (function_group_info): Add fpm_mode. - (function_instance): Likewise. - (function_instance::operator==): Handle fpm_mode. - -2024-11-29 Claudio Bantaloukas - - * config/aarch64/aarch64-sve-builtins.cc (TYPES_b_data): Add mf8. - (TYPES_reinterpret1, TYPES_reinterpret): Likewise. - * config/aarch64/aarch64-sve-builtins.def (svmfloat8_t): New type. - (mf8): New type suffix. - * config/aarch64/aarch64-sve-builtins.h (TYPE_mfloat): New - type_class_index. - -2024-11-29 Richard Biener - - PR tree-optimization/115438 - * tree-vect-loop.cc (vect_transform_cycle_phi): For SLP also - try to do the reduction adjustment by the initial value - in the epilogue. - -2024-11-29 Tejas Belagod - - * tree.cc (build_vector_from_ctor): Add support to construct VLA vector - constants from init constructors. - -2024-11-29 Tejas Belagod - - * gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Handle variable - sized vector types in BIT_FIELD_REF canonicalization. - * tree-cfg.cc (verify_types_in_gimple_reference): Change object-size- - checking for BIT_FIELD_REF to error offsets that are known_gt to be - outside object-size. Out-of-range offsets can happen in the case of - indices that reference VLA SVE vector elements that may be outside the - minimum vector size range and therefore maybe_gt is not appropirate - here. - -2024-11-29 Tejas Belagod - - * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Flip - TYPE_INDIVISBLE flag for SVE ACLE vector types. - -2024-11-29 Tejas Belagod - - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define - __ARM_FEATURE_SVE_VECTOR_OPERATORS. - -2024-11-29 Yury Khrustalev - - * config/aarch64/arm_acle.h (_CHKFEAT_GCS): New. - -2024-11-29 Jakub Jelinek - - PR middle-end/117065 - * gimple-fold.cc (type_has_padding_at_level_p) : - Also continue if f has error_mark_node type. - -2024-11-29 Jakub Jelinek - - PR target/117608 - * doc/extend.texi (__builtin_prefetch): Document that second - argument may be also 2 and its meaning. - * config/i386/i386.md (prefetch): Remove unreachable code. - Clear write set operands[1] to const0_rtx if !TARGET_MOVRS or - of locality is not 1. Formatting fixes. - * config/i386/i386-expand.cc (ix86_expand_builtin): Use IN_RANGE. - Call gen_prefetch even for TARGET_MOVRS. - * config/alpha/alpha.md (prefetch): Treat read_or_write 2 like 0. - * config/mips/mips.md (prefetch): Likewise. - * config/arc/arc.md (prefetch_1, prefetch_2, prefetch_3): Likewise. - * config/riscv/riscv.md (prefetch): Likewise. - * config/loongarch/loongarch.md (prefetch): Likewise. - * config/sparc/sparc.md (prefetch): Likewise. Use IN_RANGE. - * config/ia64/ia64.md (prefetch): Likewise. - * config/pa/pa.md (prefetch): Likewise. - * config/aarch64/aarch64.md (prefetch): Likewise. - * config/rs6000/rs6000.md (prefetch): Likewise. - -2024-11-29 Alexandre Oliva - - PR tree-optimization/117723 - * tree-ssa-ifcombine.cc (tree_ssa_ifcombine_bb): Record - forwarder blocks in path to exit, and stick to them. Avoid - computing the exit if obviously not needed, and if that - enables additional optimizations. - (tree_ssa_ifcombine_bb_1): Fix typos. - -2024-11-28 Uros Bizjak - - * config/i386/i386.md (*3_mask): Macroize - pattern from *ashl3_mask and *3_mask - using any_shift code iterator. - (*3_mask_1): Macroize pattern - from *ashl3_mask_1 and *3_mask_1 - using any_shift code iterator. - (*3_add): Macroize pattern - from *ashl3_add and *3_add - using any_shift code iterator. - (*3_add_1): Macroize pattern - from *ashl3_add_1 and *3_add_1 - using any_shift code iterator. - (*3_sub): Macroize pattern - from *ashl3_sub and *3_sub - using any_shift code iterator. - (*3_sub_1): Macroize pattern - from *ashl3_sub_1 and *3_sub_1 - using any_shift code iterator. - -2024-11-28 Mariam Arutunian - - * builtin-types.def (BT_FN_UINT8_UINT8_UINT8_CONST_SIZE): Define. - (BT_FN_UINT16_UINT16_UINT8_CONST_SIZE): Likewise. - (BT_FN_UINT16_UINT16_UINT16_CONST_SIZE): Likewise. - (BT_FN_UINT32_UINT32_UINT8_CONST_SIZE): Likewise. - (BT_FN_UINT32_UINT32_UINT16_CONST_SIZE): Likewise. - (BT_FN_UINT32_UINT32_UINT32_CONST_SIZE): Likewise. - (BT_FN_UINT64_UINT64_UINT8_CONST_SIZE): Likewise. - (BT_FN_UINT64_UINT64_UINT16_CONST_SIZE): Likewise. - (BT_FN_UINT64_UINT64_UINT32_CONST_SIZE): Likewise. - (BT_FN_UINT64_UINT64_UINT64_CONST_SIZE): Likewise. - * builtins.cc (associated_internal_fn): Handle CRC related builtins. - (expand_builtin_crc_table_based): New function. - (expand_builtin): Handle CRC related builtins. - * builtins.def (BUILT_IN_CRC8_DATA8): New builtin. - (BUILT_IN_CRC16_DATA8): Likewise. - (BUILT_IN_CRC16_DATA16): Likewise. - (BUILT_IN_CRC32_DATA8): Likewise. - (BUILT_IN_CRC32_DATA16): Likewise. - (BUILT_IN_CRC32_DATA32): Likewise. - (BUILT_IN_CRC64_DATA8): Likewise. - (BUILT_IN_CRC64_DATA16): Likewise. - (BUILT_IN_CRC64_DATA32): Likewise. - (BUILT_IN_CRC64_DATA64): Likewise. - (BUILT_IN_REV_CRC8_DATA8): New builtin. - (BUILT_IN_REV_CRC16_DATA8): Likewise. - (BUILT_IN_REV_CRC16_DATA16): Likewise. - (BUILT_IN_REV_CRC32_DATA8): Likewise. - (BUILT_IN_REV_CRC32_DATA16): Likewise. - (BUILT_IN_REV_CRC32_DATA32): Likewise. - (BUILT_IN_REV_CRC64_DATA8): Likewise. - (BUILT_IN_REV_CRC64_DATA16): Likewise. - (BUILT_IN_REV_CRC64_DATA32): Likewise. - (BUILT_IN_REV_CRC64_DATA64): Likewise. - * builtins.h (expand_builtin_crc_table_based): New function - declaration. - * doc/extend.texi: Add documentation for new CRC builtins. - -2024-11-28 Mariam Arutunian - - * doc/md.texi (crc@var{m}@var{n}4, crc_rev@var{m}@var{n}4): Document. - * expr.cc (calculate_crc): New function. - (assemble_crc_table): Likewise. - (generate_crc_table): Likewise. - (calculate_table_based_CRC): Likewise. - (expand_crc_table_based): Likewise. - (gen_common_operation_to_reflect): Likewise. - (reflect_64_bit_value): Likewise. - (reflect_32_bit_value): Likewise. - (reflect_16_bit_value): Likewise. - (reflect_8_bit_value): Likewise. - (generate_reflecting_code_standard): Likewise. - (expand_reversed_crc_table_based): Likewise. - * expr.h (generate_reflecting_code_standard): New function declaration. - (expand_crc_table_based): Likewise. - (expand_reversed_crc_table_based): Likewise. - * internal-fn.cc: (crc_direct): Define. - (direct_crc_optab_supported_p): Likewise. - (expand_crc_optab_fn): New function - * internal-fn.def (CRC, CRC_REV): New internal functions. - * optabs.def (crc_optab, crc_rev_optab): New optabs. - Signed-off-by: Mariam Arutunian - Co-authored-by: Joern Rennecke - Co-authored-by: Jeff Law - -2024-11-28 Jakub Jelinek - - PR target/117642 - * doc/extend.texi: Remove documentation of warning for unimplemented - __sync_* operations, such warning has never been implemented. - -2024-11-28 Jakub Jelinek - - PR c/117023 - * gimple-range-infer.cc (gimple_infer_range::gimple_infer_range): - Handle also nonnull_if_nonzero attributes. - -2024-11-28 Jakub Jelinek - - PR c/117023 - * gimple.h (infer_nonnull_range_by_attribute): Add a tree * - argument defaulted to NULL. - * gimple.cc (infer_nonnull_range_by_attribute): Add op2 argument. - Handle also nonnull_if_nonzero attributes. - * tree.cc (get_nonnull_args): Fix comment typo. - * builtins.cc (validate_arglist): Handle nonnull_if_nonzero attribute. - * tree-ssa-ccp.cc (pass_post_ipa_warn::execute): Handle - nonnull_if_nonzero attributes. - * ubsan.cc (instrument_nonnull_arg): Adjust - infer_nonnull_range_by_attribute caller. If it returned true and - filed in non-NULL arg2, check that arg2 is non-zero as another - condition next to checking that arg is zero. - * doc/extend.texi (nonnull_if_nonzero): Document new attribute. - -2024-11-28 Jakub Jelinek - - * config/rs6000/rs6000.h (struct machine_function): Add - asm_redzone_clobber_seen member. - * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Force - info->push_p if cfun->machine->asm_redzone_clobber_seen. - * config/rs6000/rs6000.cc (TARGET_REDZONE_CLOBBER): Redefine. - (rs6000_redzone_clobber): New function. - -2024-11-28 Jakub Jelinek - - * target.def (redzone_clobber): New target hook. - * varasm.cc (decode_reg_name_and_count): Return -5 for - "redzone". - * cfgexpand.cc (expand_asm_stmt): Handle redzone clobber. - * config/i386/i386.h (struct machine_function): Add - asm_redzone_clobber_seen member. - * config/i386/i386.cc (ix86_compute_frame_layout): Don't - use red zone if cfun->machine->asm_redzone_clobber_seen. - (ix86_redzone_clobber): New function. - (TARGET_REDZONE_CLOBBER): Redefine. - * doc/extend.texi (Clobbers and Scratch Registers): Document - the "redzone" clobber. - * doc/tm.texi.in: Add @hook TARGET_REDZONE_CLOBBER. - * doc/tm.texi: Regenerate. - -2024-11-28 Jakub Jelinek - - PR c++/116416 - * flag-types.h (enum zero_init_padding_bits_kind): New type. - * tree.h (CONSTRUCTOR_ZERO_PADDING_BITS): Define. - * common.opt (fzero-init-padding-bits=): New option. - * expr.cc (categorize_ctor_elements_1): Handle - CONSTRUCTOR_ZERO_PADDING_BITS or - flag_zero_init_padding_bits == ZERO_INIT_PADDING_BITS_ALL. Fix - up *p_complete = -1; setting for unions. - (complete_ctor_at_level_p): Handle unions differently for - flag_zero_init_padding_bits == ZERO_INIT_PADDING_BITS_STANDARD. - * gimple-fold.cc (type_has_padding_at_level_p): Fix up UNION_TYPE - handling, return also true for UNION_TYPE with no FIELD_DECLs - and non-zero size, handle QUAL_UNION_TYPE like UNION_TYPE. - * doc/invoke.texi (-fzero-init-padding-bits=@var{value}): Document. - -2024-11-28 Tamar Christina - - PR tree-optimization/117557 - * tree-vect-stmts.cc (vectorizable_store): Flatten the ncopies and - vec_num loops. - -2024-11-28 Jakub Jelinek - - PR tree-optimization/117358 - * gimple-fold.cc (gimple_fold_builtin_memory_op): Punt if stmt has no - vdef in ssa form. - (gimple_fold_builtin_bcmp): Punt if stmt has no vuse in ssa form. - (gimple_fold_builtin_bcopy): Punt if stmt has no vdef in ssa form. - (gimple_fold_builtin_bzero): Likewise. - (gimple_fold_builtin_memset): Likewise. Use return false instead of - return NULL_TREE. - (gimple_fold_builtin_strcpy): Punt if stmt has no vdef in ssa form. - (gimple_fold_builtin_strncpy): Likewise. - (gimple_fold_builtin_strchr): Punt if stmt has no vuse in ssa form. - (gimple_fold_builtin_strstr): Likewise. - (gimple_fold_builtin_strcat): Punt if stmt has no vdef in ssa form. - (gimple_fold_builtin_strcat_chk): Likewise. - (gimple_fold_builtin_strncat): Likewise. - (gimple_fold_builtin_strncat_chk): Likewise. - (gimple_fold_builtin_string_compare): Likewise. - (gimple_fold_builtin_fputs): Likewise. - (gimple_fold_builtin_memory_chk): Likewise. - (gimple_fold_builtin_stxcpy_chk): Likewise. - (gimple_fold_builtin_stxncpy_chk): Likewise. - (gimple_fold_builtin_stpcpy): Likewise. - (gimple_fold_builtin_snprintf_chk): Likewise. - (gimple_fold_builtin_sprintf_chk): Likewise. - (gimple_fold_builtin_sprintf): Likewise. - (gimple_fold_builtin_snprintf): Likewise. - (gimple_fold_builtin_fprintf): Likewise. - (gimple_fold_builtin_printf): Likewise. - (gimple_fold_builtin_realloc): Likewise. - -2024-11-28 Jakub Jelinek - - PR c/117802 - * builtins.cc (fold_builtin_iseqsig): Handle BITINT_TYPE like - INTEGER_TYPE. - -2024-11-28 David Malcolm - - * timevar.cc: Include "make-unique.h". - (timer::named_items::make_json): Convert return type to unique_ptr. - Avoid naked "new". - (make_json_for_timevar_time_def): Likewise. - (timer::timevar_def::make_json): Likewise. - (timer::make_json): Likewise. - * timevar.h (timer::make_json): Likewise. - (timer::timevar_def::make_json): Likewise. - * tree-diagnostic-client-data-hooks.cc: Update for above changes. - -2024-11-28 David Malcolm - - PR c/104896 - * common/config/ia64/ia64-common.cc (ia64_handle_option): Replace - "%<%s%>" with "%qs" in message wording. - * common/config/rs6000/rs6000-common.cc (rs6000_handle_option): - Likewise. - * config/aarch64/aarch64.cc (aarch64_validate_sls_mitigation): - Likewise. - (aarch64_override_options): Likewise. - (aarch64_process_target_attr): Likewise. - * config/arm/aarch-common.cc (aarch_validate_mbranch_protection): - Likewise. - * config/pru/pru.cc (pru_insert_attributes): Likewise. - * config/riscv/riscv-target-attr.cc - (riscv_target_attr_parser::parse_arch): Likewise. - * omp-general.cc (oacc_verify_routine_clauses): Likewise. - * tree-ssa-uninit.cc (maybe_warn_read_write_only): Likewise. - (maybe_warn_pass_by_reference): Likewise. - -2024-11-27 Uros Bizjak - - PR target/36503 - * config/i386/i386.md (*ashl3_add): - New define_insn_and_split pattern. - (*ashl3_add_1): Ditto. - (*3_add): Ditto. - (*3_add_1): Ditto. - (*ashl3_sub): Rename from *ashl3_negcnt. - (*ashl3_sub_1): Rename from *ashl3_negcnt_1. - (*3_sub): Rename from *3_negcnt. - (*3_sub_1): Rename from *3_negcnt_1. - -2024-11-27 Andrew Pinski - - PR tree-optimization/117776 - * match.pd (nested int casts): Allow for the case - where the final prec is greater than the original - prec. - -2024-11-27 Pan Li - - * match.pd: Refactor sorts of unsigned SAT_ADD match pattern for - IFN ADD_OVERFLOW. - -2024-11-27 Jakub Jelinek - - PR target/117642 - * builtins.cc (expand_builtin_sync_lock_release): Change return type - from void to rtx, return result of expand_atomic_store. - (expand_builtin) : If - expand_builtin_sync_lock_release returns NULL, do a break rather - than return const0_rtx. - -2024-11-27 Jakub Jelinek - - PR tree-optimization/117692 - * tree.cc (get_range_pos_neg): Adjust function comment, use - non-negative instead of positive. - * match.pd - (((X /[ex] C1) +- C2) * (C1 * C3) -> (X * C3) +- (C1 * C2 * C3)): - Use casts to utype if type is signed, factor isn't 1 and - C1 and C2 could have different sign for + or could have the - same sign for -. - -2024-11-27 Alexandre Oliva - - * tree-ssa-ifcombine.cc (ifcombine_ifandif): Avoid fallback - conjunction of noncontiguous conditions. - -2024-11-27 Florian Weimer - - * doc/invoke.texi: Document -Wfree-labels. - -2024-11-27 Jason Merrill - Andrew Pinski - Andi Kleen - - PR bootstrap/117350 - * tree.cc (need_assembler_name_p): Keep assembler name - for abstract declarations when autofdo is used. - -2024-11-26 David Malcolm - - * selftest.cc (selftest::print_diff): New function. - (selftest::assert_streq): Call it when we have non-equal - non-null strings. - -2024-11-26 David Malcolm - - PR translation/90160 - * config/csky/csky.cc (csky_configure_build_target): Use %qs when - referring to cpu and arch names. - (csky_option_override): Likewise. - -2024-11-26 David Malcolm - - PR translation/80760 - * tree-ssa-loop-prefetch.cc (pass_loop_prefetch::execute): Add - missing colon to not-a-power-of-two param warning. - -2024-11-26 David Malcolm - - PR plugins/93746 - * plugin.cc (try_init_one_plugin): Add missing colon in error - message. - -2024-11-26 Alex Coplan - - * gdbhooks.py (strip_ref): New. Use it ... - (VecPrinter.to_string): ... here, - (VecPrinter.children): ... and here. - -2024-11-26 Robin Dapp - - * config/riscv/riscv-avlprop.cc (pass_avlprop::get_vlmax_ta_preferred_avl): - Check whether the use insn is valid for propagation. - -2024-11-26 Jakub Jelinek - - PR middle-end/102674 - * builtins.cc (fold_builtin_fpclassify): Use real_from_string3 rather - than real_from_string. Use "1E%d" format string rather than "0x1p%d" - for decimal float minimum. Formatting fixes. - -2024-11-26 Jakub Jelinek - - PR middle-end/43374 - * real.cc (get_max_float): Handle decimal float. - * builtins.cc (fold_builtin_interclass_mathfn): Use - real_from_string3 rather than real_from_string. Use - "1E%d" format string rather than "0x1p%d" for decimal - float minimum. - -2024-11-26 Andrew Pinski - - * tree-affine.cc (wide_int_constant_multiple_p): Remove unused rem variable. - -2024-11-26 Cui, Lili - - PR target/116675 - * config/i386/i386-expand.cc (expand_vec_perm_pand_pandn_por): - New subroutine. - (ix86_expand_vec_perm_const_1): Call expand_vec_perm_pand_pandn_por. - -2024-11-25 Andrew Pinski - - PR target/117771 - * system.h: Move the include of sstream above safe-ctype.h. - -2024-11-25 H.J. Lu - - PR middle-end/117098 - * calls.cc (store_one_arg): Check partial != 0 for BLKmode argument - passed on stack. - -2024-11-25 John David Anglin - - PR target/117645 - * config/pa/pa.md (addti3): Revise pattern to support - arith11_operands. Use "R" operand prefix to print least - significant register of TImode register pair. - (addvti3, subti3, subvti3): Likewise. - (negti2, negvti2): Use "R" operand prefix. - -2024-11-25 Vladimir N. Makarov - - PR target/117105 - * lra-constraints.cc (get_reload_reg): Create unique value reload - pseudos for early clobbered operands. - -2024-11-25 Uros Bizjak - - * config/i386/i386.md (*ashl3_negcnt): - For SImode shifts allow multiples of 32 (or multiples - of 64 for DImode shifts) for immediate operand 3. - (*ashl3_negcnt_1): Ditto. - (*3_negcnt): Ditto. - (*3_negcnt_1): Ditto. - -2024-11-25 Andrew Pinski - - * config/g.opt.urls: Regenerate. - * config/i386/i386.opt.urls: Regenerate. - * config/i386/nto.opt.urls: Regenerate. - * config/nvptx/nvptx.opt.urls: Regenerate. - * config/riscv/riscv.opt.urls: Regenerate. - * config/s390/s390.opt.urls: Regenerate. - * config/sol2.opt.urls: Regenerate. - -2024-11-25 Sandra Loosemore - - * common/config/nios2/*: Delete entire directory. - * config/nios2/*: Delete entire directory. - * config.gcc: Remove references to nios2. - * configure.ac: Likewise. - * doc/extend.texi: Likewise. - * doc/install.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - * regenerate-opt-urls.py: Likewise. - * config.in: Regenerated. - * configure: Regenerated. - -2024-11-25 Robin Dapp - - PR target/117544 - * config/riscv/vector.md (*mov_whole): Split. - (*mov_fract): Ditto. - (*mov): Ditto. - (*mov_vls): Ditto. - (*mov_reg_whole_vtype): New pattern with vtype use. - (*mov_fract_vtype): Ditto. - (*mov_vtype): Ditto. - (*mov_vls_vtype): Ditto. - -2024-11-25 Robin Dapp - - PR target/111600 - * genemit.cc (handle_arg): Use files instead of filenames. - (main): Ditto. - * gensupport.cc (SIZED_BASED_CHUNKS): Define. - (choose_output): New function. - * gensupport.h (choose_output): Declare. - -2024-11-25 Richard Biener - - PR target/116760 - * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): - Scale vec_construct for single-lane VMAT_STRIDED_SLP the - same as VMAT_ELEMENTWISE. - * tree-vect-stmts.cc (vectorizable_store): Pass SLP node - down to costing for vec_to_scalar for VMAT_STRIDED_SLP. - -2024-11-25 Richard Biener - - * config/i386/i386.cc (ix86_vector_costs::finish_cost): For an - 128bit SSE epilogue request a 64bit SSE epilogue if the 128bit - SSE epilogue VF was 16 or higher. - -2024-11-25 Richard Biener - - PR tree-optimization/117767 - * tree-vect-stmts.cc (vectorizable_store): Check for supported - alignment before using a an alternate store vector type. - (vectorizable_load): Likewise for loads. - -2024-11-25 Richard Biener - - PR tree-optimization/115825 - * tree-ssa-loop-ivcanon.cc (loop_size::not_eliminatable_after_peeling): - New. - (loop_size::last_iteration_not_eliminatable_after_peeling): Likewise. - (tree_estimate_loop_size): Count stmts with side-effects as - not optimistically eliminatable. - (estimated_unrolled_size): Compute the number of stmts that can - be optimistically eliminated by followup transforms. - (try_unroll_loop_completely): Adjust. - -2024-11-25 Kito Cheng - - * config/riscv/riscv.cc (riscv_asan_shadow_offset): Use dynamic - offset for RV64. - (riscv_asan_dynamic_shadow_offset_p): New. - (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): New. - -2024-11-25 Kito Cheng - - * asan.cc (asan_dynamic_shadow_offset_p): New. - (asan_shadow_memory_dynamic_address): New. - (asan_local_shadow_memory_dynamic_address): New. - (get_asan_shadow_memory_dynamic_address_decl): New. - (asan_maybe_insert_dynamic_shadow_at_function_entry): New. - (asan_emit_stack_protection): Support dynamic shadow offset. - (build_shadow_mem_access): Ditto. - * asan.h (asan_maybe_insert_dynamic_shadow_at_function_entry): New. - * doc/tm.texi (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): New. - * doc/tm.texi.in (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): Ditto. - * sanopt.cc (pass_sanopt::execute): Handle dynamic shadow offset. - * target.def (asan_dynamic_shadow_offset_p): New. - * toplev.cc (process_options): Handle dynamic shadow offset. - -2024-11-25 Dongyan Chen - - * common/config/riscv/riscv-common.cc: New extension. - * common/config/riscv/riscv-ext-bitmask.def (RISCV_EXT_BITMASK): Ditto. - * config/riscv/riscv.opt: New mask. - -2024-11-25 Xi Ruoyao - - * config/pa/pa.cc (pa_section_type_flags): Remove. - (TARGET_SECTION_TYPE_FLAGS): Remove. - -2024-11-25 Konstantinos Eleftheriou - Philipp Tomsich - - * Makefile.in (OBJS): Add avoid-store-forwarding.o. - * common.opt (favoid-store-forwarding): New option. - * common.opt.urls: Regenerate. - * doc/invoke.texi: New param store-forwarding-max-distance. - * doc/passes.texi: Document new pass. - * doc/tm.texi: Regenerate. - * doc/tm.texi.in: Document new pass. - * params.opt (store-forwarding-max-distance): New param. - * passes.def: Add pass_rtl_avoid_store_forwarding before - pass_early_remat. - * target.def (avoid_store_forwarding_p): New DEFHOOK. - * target.h (struct store_fwd_info): Declare. - * targhooks.cc (default_avoid_store_forwarding_p): New function. - * targhooks.h (default_avoid_store_forwarding_p): Declare. - * tree-pass.h (make_pass_rtl_avoid_store_forwarding): Declare. - * avoid-store-forwarding.cc: New file. - * avoid-store-forwarding.h: New file. - * timevar.def (TV_AVOID_STORE_FORWARDING): New timevar. - -2024-11-25 liuhongt - - PR target/117562 - * config/i386/sse.md (vec_unpacks_hi_v4sf): Initialize - operands[2] with CONST0_RTX. - -2024-11-24 Martin Jambor - - * ipa-prop.cc (ipa_duplicate_jump_function): New function. - (ipa_edge_args_sum_t::duplicate): Move individual jump function - copying to ipa_duplicate_jump_function. - -2024-11-24 Uros Bizjak - - PR target/36503 - * config/i386/i386.md (*ashl3_negcnt): - New define_insn_and_split pattern. - (*ashl3_negcnt_1): Ditto. - (*3_negcnt): Ditto. - (*3_negcnt_1): Ditto. - -2024-11-24 Andrew Pinski - - * config/avr/avr.opt.urls: Regenerate. - * config/g.opt.urls: Regenerate. - * config/i386/nto.opt.urls: Regenerate. - * config/riscv/riscv.opt.urls: Regenerate. - * config/rx/rx.opt.urls: Regenerate. - * config/sol2.opt.urls: Regenerate. - -2024-11-24 Eric Botcazou - - PR target/117715 - * config/sparc/sparc-protos.h (sparc_expand_vcond): Rename to... - (sparc_expand_vcond_mask): ...this. - * config/sparc/sparc.cc (TARGET_VECTORIZE_GET_MASK_MODE): Define. - (sparc_vis_init_builtins): Adjust the CODE_FOR_* identifiers. - (sparc_get_mask_mode): New function. - (sparc_expand_vcond): Rename to... - (sparc_expand_vcond_mask): ...this and adjust. - * config/sparc/sparc.md (unspec): Remove UNSPEC_FCMP & UNSPEC_FUCMP - and rename UNSPEC_FPUCMPSHL into UNSPEC_FPCMPUSHL. - (fcmp_vis): Merge into... - (fpcmp8_vis): Merge into... - (fpcmp_vis): ...this. - (fucmp8_vis): Merge into... - (fpcmpu_vis): Merge into... - (fpcmpu_vis): ...this. - (vec_cmp): New expander. - (vec_cmpu): Likewise. - (vcond): Delete. - (vcondv8qiv8qi): Likewise. - (vcondu): Likewise. - (vconduv8qiv8qi): Likewise. - (vcond_mask_): New expander. - (fpcmpshl): Adjust. - (fpcmpushl): Likewise. - (fpcmpdeshl): Likewise. - (fpcmpurshl): Likewise. - * doc/md.texi (vcond_mask_len_): Fix pasto. - -2024-11-24 Eric Botcazou - - * doc/invoke.texi (-fno-zero-initialized-in-bss): Adjust for Ada. - * varasm.cc (get_variable_section): Adjust the error message for an - initialized variable in .bss to -fno-zero-initialized-in-bss. - -2024-11-23 Lewis Hyatt - - * gimple.cc (get_tail_padding_adjustment): New function. - (DEFGSSTRUCT): Adjust the computation of gimple_ops_offset_ to be - correct in the presence of tail padding. - -2024-11-23 Georg-Johann Lay - - PR target/117744 - * config/avr/avr.cc (out_movqi_r_mr): Fix code when a load - only partially clobbers an address register due to - changing the address register temporally to accomodate for - faked addressing modes. - -2024-11-23 Andrew Pinski - - * doc/rtl.texi: Add a note about quotes in braced strings. - -2024-11-22 Andrew Pinski - - PR bootstrap/117737 - * asan.cc (INCLUDE_MEMORY): Remove. - * attribs.cc (INCLUDE_MEMORY): Remove. - * auto-profile.cc (INCLUDE_MEMORY): Remove. - * calls.cc (INCLUDE_MEMORY): Remove. - * cfganal.cc (INCLUDE_MEMORY): Remove. - * cfgexpand.cc (INCLUDE_MEMORY): Remove. - * cfghooks.cc (INCLUDE_MEMORY): Remove. - * cfgloop.cc (INCLUDE_MEMORY): Remove. - * cgraph.cc (INCLUDE_MEMORY): Remove. - * cgraphclones.cc (INCLUDE_MEMORY): Remove. - * cgraphunit.cc (INCLUDE_MEMORY): Remove. - * collect-utils.cc (INCLUDE_MEMORY): Remove. - * collect2.cc (INCLUDE_MEMORY): Remove. - * common/config/aarch64/aarch64-common.cc (INCLUDE_MEMORY): Remove. - * common/config/arm/arm-common.cc (INCLUDE_MEMORY): Remove. - * common/config/avr/avr-common.cc (INCLUDE_MEMORY): Remove. - * config/aarch64/aarch64-cc-fusion.cc (INCLUDE_MEMORY): Remove. - * config/aarch64/aarch64-early-ra.cc (INCLUDE_MEMORY): Remove. - * config/aarch64/aarch64-sve-builtins.cc (INCLUDE_MEMORY): Remove. - * config/aarch64/aarch64.cc (INCLUDE_MEMORY): Remove. - * config/arc/arc.cc (INCLUDE_MEMORY): Remove. - * config/arm/aarch-common.cc (INCLUDE_MEMORY) Remove.: - * config/arm/arm-mve-builtins.cc (INCLUDE_MEMORY): Remove. - * config/arm/arm.cc (INCLUDE_MEMORY): Remove. - * config/avr/avr-devices.cc (INCLUDE_MEMORY): Remove. - * config/avr/driver-avr.cc (INCLUDE_MEMORY): Remove. - * config/bpf/bpf.cc (INCLUDE_MEMORY): Remove. - * config/bpf/btfext-out.cc (INCLUDE_MEMORY): Remove. - * config/bpf/core-builtins.cc (INCLUDE_MEMORY): Remove. - * config/darwin.cc (INCLUDE_MEMORY): Remove. - * config/gcn/mkoffload.cc (INCLUDE_MEMORY): Remove. - * config/i386/driver-i386.cc (INCLUDE_MEMORY): Remove. - * config/i386/i386-builtins.cc (INCLUDE_MEMORY): Remove. - * config/i386/i386-expand.cc (INCLUDE_MEMORY): Remove. - * config/i386/i386-features.cc (INCLUDE_MEMORY): Remove. - * config/i386/i386-options.cc (INCLUDE_MEMORY): Remove. - * config/i386/i386.cc (INCLUDE_MEMORY): Remove. - * config/loongarch/loongarch-builtins.cc (INCLUDE_MEMORY): Remove. - * config/loongarch/loongarch.cc (INCLUDE_MEMORY): Remove. - * config/mingw/winnt-cxx.cc (INCLUDE_MEMORY): Remove. - * config/mingw/winnt.cc (INCLUDE_MEMORY): Remove. - * config/mips/mips.cc (INCLUDE_MEMORY): Remove. - * config/msp430/driver-msp430.cc (INCLUDE_MEMORY): Remove. - * config/nvptx/mkoffload.cc (INCLUDE_MEMORY): Remove. - * config/nvptx/nvptx.cc (INCLUDE_MEMORY): Remove. - * config/riscv/riscv-avlprop.cc (INCLUDE_MEMORY): Remove. - * config/riscv/riscv-target-attr.cc (INCLUDE_MEMORY): Remove. - * config/riscv/riscv-vector-builtins.cc (INCLUDE_MEMORY): Remove. - * config/riscv/riscv-vector-costs.cc (INCLUDE_MEMORY): Remove. - * config/riscv/riscv-vsetvl.cc (INCLUDE_MEMORY): Remove. - * config/riscv/riscv.cc (INCLUDE_MEMORY): Remove. - * config/rs6000/driver-rs6000.cc (INCLUDE_MEMORY): Remove. - * config/rs6000/host-darwin.cc (INCLUDE_MEMORY): Remove. - * config/rs6000/rs6000-c.cc (INCLUDE_MEMORY): Remove. - * config/rs6000/rs6000.cc (INCLUDE_MEMORY): Remove. - * config/s390/s390-c.cc (INCLUDE_MEMORY): Remove. - * config/s390/s390.cc (INCLUDE_MEMORY): Remove. - * config/sol2-cxx.cc (INCLUDE_MEMORY): Remove. - * config/vms/vms-c.cc (INCLUDE_MEMORY): Remove. - * config/xtensa/xtensa-dynconfig.cc (INCLUDE_MEMORY): Remove. - * coroutine-passes.cc (INCLUDE_MEMORY): Remove. - * coverage.cc (INCLUDE_MEMORY): Remove. - * data-streamer-in.cc (INCLUDE_MEMORY): Remove. - * data-streamer-out.cc (INCLUDE_MEMORY): Remove. - * data-streamer.cc (INCLUDE_MEMORY): Remove. - * diagnostic-format-json.cc (INCLUDE_MEMORY): Remove. - * diagnostic-format-sarif.cc (INCLUDE_MEMORY): Remove. - * diagnostic-format-text.cc (INCLUDE_MEMORY): Remove. - * diagnostic-global-context.cc (INCLUDE_MEMORY): Remove. - * diagnostic-macro-unwinding.cc (INCLUDE_MEMORY): Remove. - * diagnostic-path.cc (INCLUDE_MEMORY): Remove. - * diagnostic-show-locus.cc (INCLUDE_MEMORY): Remove. - * diagnostic-spec.cc (INCLUDE_MEMORY): Remove. - * diagnostic.cc (INCLUDE_MEMORY): Remove. - * diagnostic.h: Remove check for INCLUDE_MEMORY. - * digraph.cc (INCLUDE_MEMORY): Remove. - * dumpfile.cc (INCLUDE_MEMORY): Remove. - * dwarf2out.cc (INCLUDE_MEMORY): Remove. - * edit-context.cc (INCLUDE_MEMORY): Remove. - * except.cc (INCLUDE_MEMORY): Remove. - * expr.cc (INCLUDE_MEMORY): Remove. - * file-prefix-map.cc (INCLUDE_MEMORY): Remove. - * final.cc (INCLUDE_MEMORY): Remove. - * fwprop.cc (INCLUDE_MEMORY): Remove. - * gcc-plugin.h (INCLUDE_MEMORY): Remove. - * gcc-rich-location.cc (INCLUDE_MEMORY): Remove. - * gcc-urlifier.cc (INCLUDE_MEMORY): Remove. - * gcc.cc (INCLUDE_MEMORY): Remove. - * gcov-dump.cc (INCLUDE_MEMORY): Remove. - * gcov-tool.cc (INCLUDE_MEMORY): Remove. - * gcov.cc (INCLUDE_MEMORY): Remove. - * gengtype.cc (open_base_files): Don't print `#define INCLUDE_MEMORY`. - * genmatch.cc (INCLUDE_MEMORY): Remove. - * gimple-fold.cc (INCLUDE_MEMORY): Remove. - * gimple-harden-conditionals.cc (INCLUDE_MEMORY): Remove. - * gimple-harden-control-flow.cc (INCLUDE_MEMORY): Remove. - * gimple-if-to-switch.cc (INCLUDE_MEMORY): Remove. - * gimple-loop-interchange.cc (INCLUDE_MEMORY): Remove. - * gimple-loop-jam.cc (INCLUDE_MEMORY): Remove. - * gimple-loop-versioning.cc (INCLUDE_MEMORY): Remove. - * gimple-lower-bitint.cc (INCLUDE_MEMORY): Remove. - * gimple-predicate-analysis.cc (INCLUDE_MEMORY): Remove. - * gimple-pretty-print.cc (INCLUDE_MEMORY): Remove. - * gimple-range-cache.cc (INCLUDE_MEMORY): Remove. - * gimple-range-edge.cc (INCLUDE_MEMORY): Remove. - * gimple-range-fold.cc (INCLUDE_MEMORY): Remove. - * gimple-range-gori.cc (INCLUDE_MEMORY): Remove. - * gimple-range-infer.cc (INCLUDE_MEMORY): Remove. - * gimple-range-op.cc (INCLUDE_MEMORY): Remove. - * gimple-range-path.cc (INCLUDE_MEMORY): Remove. - * gimple-range-phi.cc (INCLUDE_MEMORY): Remove. - * gimple-range-trace.cc (INCLUDE_MEMORY): Remove. - * gimple-range.cc (INCLUDE_MEMORY): Remove. - * gimple-ssa-backprop.cc (INCLUDE_MEMORY): Remove. - * gimple-ssa-sprintf.cc (INCLUDE_MEMORY): Remove. - * gimple-ssa-store-merging.cc (INCLUDE_MEMORY): Remove. - * gimple-ssa-strength-reduction.cc (INCLUDE_MEMORY): Remove. - * gimple-ssa-warn-access.cc (INCLUDE_MEMORY): Remove. - * gimple-ssa-warn-alloca.cc (INCLUDE_MEMORY): Remove. - * gimple-ssa-warn-restrict.cc (INCLUDE_MEMORY): Remove. - * gimple-streamer-in.cc (INCLUDE_MEMORY): Remove. - * gimple-streamer-out.cc (INCLUDE_MEMORY): Remove. - * gimple.cc (INCLUDE_MEMORY): Remove. - * gimplify.cc (INCLUDE_MEMORY): Remove. - * graph.cc (INCLUDE_MEMORY): Remove. - * graphite-dependences.cc (INCLUDE_MEMORY): Remove. - * graphite-isl-ast-to-gimple.cc (INCLUDE_MEMORY): Remove. - * graphite-optimize-isl.cc (INCLUDE_MEMORY): Remove. - * graphite-poly.cc (INCLUDE_MEMORY): Remove. - * graphite-scop-detection.cc (INCLUDE_MEMORY): Remove. - * graphite-sese-to-poly.cc (INCLUDE_MEMORY): Remove. - * graphite.cc (INCLUDE_MEMORY): Remove. - * graphviz.cc (INCLUDE_MEMORY): Remove. - * input.cc (INCLUDE_MEMORY): Remove. - * ipa-cp.cc (INCLUDE_MEMORY): Remove. - * ipa-devirt.cc (INCLUDE_MEMORY): Remove. - * ipa-fnsummary.cc (INCLUDE_MEMORY): Remove. - * ipa-free-lang-data.cc (INCLUDE_MEMORY): Remove. - * ipa-icf-gimple.cc (INCLUDE_MEMORY): Remove. - * ipa-icf.cc (INCLUDE_MEMORY): Remove. - * ipa-inline-analysis.cc (INCLUDE_MEMORY): Remove. - * ipa-inline.cc (INCLUDE_MEMORY): Remove. - * ipa-modref-tree.cc (INCLUDE_MEMORY): Remove. - * ipa-modref.cc (INCLUDE_MEMORY): Remove. - * ipa-param-manipulation.cc (INCLUDE_MEMORY): Remove. - * ipa-polymorphic-call.cc (INCLUDE_MEMORY): Remove. - * ipa-predicate.cc (INCLUDE_MEMORY): Remove. - * ipa-profile.cc (INCLUDE_MEMORY): Remove. - * ipa-prop.cc (INCLUDE_MEMORY): Remove. - * ipa-pure-const.cc (INCLUDE_MEMORY): Remove. - * ipa-reference.cc (INCLUDE_MEMORY): Remove. - * ipa-split.cc (INCLUDE_MEMORY): Remove. - * ipa-sra.cc (INCLUDE_MEMORY): Remove. - * ipa-strub.cc (INCLUDE_MEMORY): Remove. - * ipa-utils.cc (INCLUDE_MEMORY): Remove. - * json-parsing.cc (INCLUDE_MEMORY): Remove. - * json.cc (INCLUDE_MEMORY): Remove. - * json.h: Don't check INCLUDE_MEMORY. - * langhooks.cc (INCLUDE_MEMORY): Remove. - * late-combine.cc (INCLUDE_MEMORY): Remove. - * lazy-diagnostic-path.cc (INCLUDE_MEMORY): Remove. - * libdiagnostics.cc (INCLUDE_MEMORY): Remove. - * libsarifreplay.cc (INCLUDE_MEMORY): Remove. - * lto-cgraph.cc (INCLUDE_MEMORY): Remove. - * lto-compress.cc (INCLUDE_MEMORY): Remove. - * lto-opts.cc (INCLUDE_MEMORY): Remove. - * lto-section-in.cc (INCLUDE_MEMORY): Remove. - * lto-section-out.cc (INCLUDE_MEMORY): Remove. - * lto-streamer-in.cc (INCLUDE_MEMORY): Remove. - * lto-streamer-out.cc (INCLUDE_MEMORY): Remove. - * lto-streamer.cc (INCLUDE_MEMORY): Remove. - * lto-wrapper.cc (INCLUDE_MEMORY): Remove. - * make-unique.h (GCC_MAKE_UNIQUE): Remove. - * multiple_target.cc (INCLUDE_MEMORY): Remove. - * omp-expand.cc (INCLUDE_MEMORY): Remove. - * omp-general.cc (INCLUDE_MEMORY): Remove. - * omp-low.cc (INCLUDE_MEMORY): Remove. - * omp-oacc-neuter-broadcast.cc (INCLUDE_MEMORY): Remove. - * omp-offload.cc (INCLUDE_MEMORY): Remove. - * omp-simd-clone.cc (INCLUDE_MEMORY): Remove. - * opt-problem.cc (INCLUDE_MEMORY): Remove. - * optinfo-emit-json.cc (INCLUDE_MEMORY): Remove. - * optinfo.cc (INCLUDE_MEMORY): Remove. - * optinfo.h: Don't check INCLUDE_MEMORY. - * opts-common.cc (INCLUDE_MEMORY): Remove. - * opts-diagnostic.cc (INCLUDE_MEMORY): Remove. - * opts-global.cc (INCLUDE_MEMORY): Remove. - * opts.cc (INCLUDE_MEMORY): Remove. - * pair-fusion.cc (INCLUDE_MEMORY): Remove. - * passes.cc (INCLUDE_MEMORY): Remove. - * pointer-query.cc (INCLUDE_MEMORY): Remove. - * predict.cc (INCLUDE_MEMORY): Remove. - * pretty-print.cc (INCLUDE_MEMORY): Remove. - * pretty-print.h: Don't check INCLUDE_MEMORY. - * print-rtl.cc (INCLUDE_MEMORY): Remove. - * print-tree.cc (INCLUDE_MEMORY): Remove. - * profile-count.cc (INCLUDE_MEMORY): Remove. - * range-op-float.cc (INCLUDE_MEMORY): Remove. - * range-op-ptr.cc (INCLUDE_MEMORY): Remove. - * range-op.cc (INCLUDE_MEMORY): Remove. - * range.cc (INCLUDE_MEMORY): Remove. - * read-rtl-function.cc (INCLUDE_MEMORY): Remove. - * rtl-error.cc (INCLUDE_MEMORY): Remove. - * rtl-ssa/accesses.cc (INCLUDE_MEMORY): Remove. - * rtl-ssa/blocks.cc (INCLUDE_MEMORY): Remove. - * rtl-ssa/changes.cc (INCLUDE_MEMORY): Remove. - * rtl-ssa/functions.cc (INCLUDE_MEMORY): Remove. - * rtl-ssa/insns.cc (INCLUDE_MEMORY): Remove. - * rtl-ssa/movement.cc (INCLUDE_MEMORY): Remove. - * rtl-tests.cc (INCLUDE_MEMORY): Remove. - * sanopt.cc (INCLUDE_MEMORY): Remove. - * sched-rgn.cc (INCLUDE_MEMORY): Remove. - * selftest-diagnostic-path.cc (INCLUDE_MEMORY): Remove. - * selftest-diagnostic.cc (INCLUDE_MEMORY): Remove. - * selftest-json.cc (INCLUDE_MEMORY): Remove. - * sese.cc (INCLUDE_MEMORY): Remove. - * simple-diagnostic-path.cc (INCLUDE_MEMORY): Remove. - * splay-tree-utils.cc (INCLUDE_MEMORY): Remove. - * sreal.cc (INCLUDE_MEMORY): Remove. - * stmt.cc (INCLUDE_MEMORY): Remove. - * substring-locations.cc (INCLUDE_MEMORY): Remove. - * symtab-clones.cc (INCLUDE_MEMORY): Remove. - * symtab-thunks.cc (INCLUDE_MEMORY): Remove. - * symtab.cc (INCLUDE_MEMORY): Remove. - * system.h: Include memory unconditionally for C++. - Also remove support for INCLUDE_MEMORY. - * targhooks.cc (INCLUDE_MEMORY): Remove. - * text-art/box-drawing.cc (INCLUDE_MEMORY): Remove. - * text-art/canvas.cc (INCLUDE_MEMORY): Remove. - * text-art/ruler.cc (INCLUDE_MEMORY): Remove. - * text-art/selftests.cc (INCLUDE_MEMORY): Remove. - * text-art/style.cc (INCLUDE_MEMORY): Remove. - * text-art/styled-string.cc (INCLUDE_MEMORY): Remove. - * text-art/table.cc (INCLUDE_MEMORY): Remove. - * text-art/theme.cc (INCLUDE_MEMORY): Remove. - * text-art/tree-widget.cc (INCLUDE_MEMORY): Remove. - * text-art/widget.cc (INCLUDE_MEMORY): Remove. - * timevar.cc (INCLUDE_MEMORY): Remove. - * toplev.cc (INCLUDE_MEMORY): Remove. - * trans-mem.cc (INCLUDE_MEMORY): Remove. - * tree-affine.cc (INCLUDE_MEMORY): Remove. - * tree-assume.cc (INCLUDE_MEMORY): Remove. - * tree-call-cdce.cc (INCLUDE_MEMORY): Remove. - * tree-cfg.cc (INCLUDE_MEMORY): Remove. - * tree-chrec.cc (INCLUDE_MEMORY): Remove. - * tree-data-ref.cc (INCLUDE_MEMORY): Remove. - * tree-dfa.cc (INCLUDE_MEMORY): Remove. - * tree-diagnostic-client-data-hooks.cc (INCLUDE_MEMORY): Remove. - * tree-diagnostic.cc (INCLUDE_MEMORY): Remove. - * tree-dump.cc (INCLUDE_MEMORY): Remove. - * tree-if-conv.cc (INCLUDE_MEMORY): Remove. - * tree-inline.cc (INCLUDE_MEMORY): Remove. - * tree-into-ssa.cc (INCLUDE_MEMORY): Remove. - * tree-logical-location.cc (INCLUDE_MEMORY): Remove. - * tree-loop-distribution.cc (INCLUDE_MEMORY): Remove. - * tree-nested.cc (INCLUDE_MEMORY): Remove. - * tree-nrv.cc (INCLUDE_MEMORY): Remove. - * tree-object-size.cc (INCLUDE_MEMORY): Remove. - * tree-outof-ssa.cc (INCLUDE_MEMORY): Remove. - * tree-parloops.cc (INCLUDE_MEMORY): Remove. - * tree-predcom.cc (INCLUDE_MEMORY): Remove. - * tree-pretty-print.cc (INCLUDE_MEMORY): Remove. - * tree-profile.cc (INCLUDE_MEMORY): Remove. - * tree-scalar-evolution.cc (INCLUDE_MEMORY): Remove. - * tree-sra.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-address.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-alias.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-ccp.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-coalesce.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-copy.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-dce.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-dom.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-dse.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-forwprop.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-ifcombine.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-live.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-ch.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-im.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-ivcanon.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-ivopts.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-manip.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-niter.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-prefetch.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-split.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-loop-unswitch.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-math-opts.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-operands.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-phiopt.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-phiprop.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-pre.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-propagate.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-reassoc.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-sccvn.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-scopedtables.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-sink.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-strlen.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-structalias.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-ter.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-threadbackward.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-threadupdate.cc (INCLUDE_MEMORY): Remove. - * tree-ssa-uninit.cc (INCLUDE_MEMORY): Remove. - * tree-ssa.cc (INCLUDE_MEMORY): Remove. - * tree-ssanames.cc (INCLUDE_MEMORY): Remove. - * tree-stdarg.cc (INCLUDE_MEMORY): Remove. - * tree-streamer-in.cc (INCLUDE_MEMORY): Remove. - * tree-streamer-out.cc (INCLUDE_MEMORY): Remove. - * tree-streamer.cc (INCLUDE_MEMORY): Remove. - * tree-switch-conversion.cc (INCLUDE_MEMORY): Remove. - * tree-tailcall.cc (INCLUDE_MEMORY): Remove. - * tree-vect-data-refs.cc (INCLUDE_MEMORY): Remove. - * tree-vect-generic.cc (INCLUDE_MEMORY): Remove. - * tree-vect-loop-manip.cc (INCLUDE_MEMORY): Remove. - * tree-vect-loop.cc (INCLUDE_MEMORY): Remove. - * tree-vect-patterns.cc (INCLUDE_MEMORY): Remove. - * tree-vect-slp-patterns.cc (INCLUDE_MEMORY): Remove. - * tree-vect-slp.cc (INCLUDE_MEMORY): Remove. - * tree-vect-stmts.cc (INCLUDE_MEMORY): Remove. - * tree-vectorizer.cc (INCLUDE_MEMORY): Remove. - * tree-vrp.cc (INCLUDE_MEMORY): Remove. - * tree.cc (INCLUDE_MEMORY): Remove. - * ubsan.cc (INCLUDE_MEMORY): Remove. - * value-pointer-equiv.cc (INCLUDE_MEMORY): Remove. - * value-prof.cc (INCLUDE_MEMORY): Remove. - * value-query.cc (INCLUDE_MEMORY): Remove. - * value-range-pretty-print.cc (INCLUDE_MEMORY): Remove. - * value-range-storage.cc (INCLUDE_MEMORY): Remove. - * value-range.cc (INCLUDE_MEMORY): Remove. - * value-relation.cc (INCLUDE_MEMORY): Remove. - * var-tracking.cc (INCLUDE_MEMORY): Remove. - * varpool.cc (INCLUDE_MEMORY): Remove. - * vr-values.cc (INCLUDE_MEMORY): Remove. - * wide-int-print.cc (INCLUDE_MEMORY): Remove. - -2024-11-22 Jeff Law - - PR target/109279 - * config/riscv/riscv.cc (riscv_build_integer): Handle another 64-bit - synthesis where high half is one less than the low half and the 32-bit - sign bit is on. - -2024-11-22 Andrew Pinski - - * text-art/types.h: Fix comment. - -2024-11-22 Georg-Johann Lay - - * common/config/avr/avr-common.cc: Tabify. - -2024-11-22 Georg-Johann Lay - - PR target/117726 - * config/avr/avr-passes.cc (avr_split_shift): Also handle - ASHIFTRT and LSHIFTRT codes for 4-byte shifts. - (constr_split_shift4): New code_attr. - (avr_emit_shift): Adjust to new shift capabilities. - * config/avr/predicates.md (scratch_or_d_register_operand): - rename to scratch_or_dreg_operand. - * config/avr/avr.md: Same. - (define_peephole2): Write the RTL scratch peephole for 2-byte and - 4-byte shifts that generates *sh*3_const insns using code - iterator any_shift. - (*ashlhi3_const_split, *ashrhi3_const_split, *ashrhi3_const_split) - (*lshrsi3_const_split, *lshrhi3_const_split): Remove useless - split insns. - (define_split) [avropt_split_bit_shift]: Add splitters - for 4-byte ASHIFTRT and LSHIFTRT insns using avr_split_shift(). - (ashrsi3, *ashrsi3, *ashrsi3_const): Add "r,0,C4a" and "r,r,C4a" - constraint alternatives depending on 2op, 3op. - (lshrsi3, *lshrsi3, *lshrsi3_const): Add "r,0,C4r" and "r,r,C4r" - constraint alternatives depending on 2op, 3op. Add "r,r,C15". - (lshrhi3, *lshrhi3, *lshrhi3_const, ashlhi3, *ashlhi3) - (*ashlhi3_const): Add "r,r,C7c" alternative. - (ashrpsi, *ashrpsi3): Add "r,r,C22" alternative. - (ashlqi, *ashlqi): Turn C06 alternative into "r,r,C06". - * config/avr/constraints.md (C14, C22, C30, C7c): New constraints. - * config/avr/avr.cc (ashlhi3_out, lshrhi3_out) - [case 7, 9, 10, 11, 12]: Support as 3-operand insn. - (lshrsi3_out) [case 15]: Same. - (ashrsi3_out) [case 30]: Same. - (ashrhi3_out) [case 14]: Same. - (ashrqi3_out) [case 6]: Same. - (avr_out_ashrpsi3) [case 22]: Same. - * config/avr/avr.h: Fix comment typo. - * doc/invoke.texi (AVR Options) <-msplit-bit-shift>: Document. - -2024-11-22 Siddhesh Poyarekar - - PR tree-optimization/117355 - * tree-object-size.cc (size_for_offset): New argument STRICT, - return SZ if it is set to false. - (plus_stmt_object_size): Adjust call to SIZE_FOR_OFFSET. - -2024-11-22 Georg-Johann Lay - - * config/avr/avr.opt (avr_bits_e, avr_lra_p, avr_mmcu) - (avr_gasisr_prologues, avr_n_flash, avr_log_details) - (avr_branch_cost, avr_split_bit_shift, avr_strict_X) - (avr_flmap, avr_rodata_in_ram, avr_sp8, avr_fuse_add) - (avr_warn_addr_space_convert, avr_warn_misspelled_isr) - (avr_fuse_move, avr_double, avr_long_double): Rename - to respectively: avropt_bits_e, avropt_lra_p, avropt_mmcu, - avropt_gasisr_prologues, avropt_n_flash, avropt_log_details, - avropt_branch_cost, avropt_split_bit_shift, avropt_strict_X, - avropt_flmap, avropt_rodata_in_ram, avropt_sp8, avropt_fuse_add, - avropt_warn_addr_space_convert, avropt_warn_misspelled_isr, - avropt_fuse_move, avropt_double, avropt_long_double. - * config/avr/avr.h: Same. - * config/avr/avr.cc: Same. - * config/avr/avr.md: Same. - * config/avr/avr-passes.cc - * config/avr/avr-log.cc: Same. - * common/config/avr/avr-common.cc: Same. - -2024-11-22 Jakub Jelinek - - PR c++/110137 - PR middle-end/101480 - * doc/invoke.texi (-fassume-sane-operators-new-delete, - -fno-assume-sane-operators-new-delete): Document. - * gimple.cc (gimple_call_fnspec): Handle - -f{,no-}assume-sane-operators-new-delete. - * ipa-inline-transform.cc (inline_call): Also clear - flag_assume_sane_operators_new_delete on caller when inlining - -fno-assume-sane-operators-new-delete callee into - -fassume-sane-operators-new-delete caller. - -2024-11-22 Jakub Jelinek - - PR tree-optimization/117420 - * match.pd ((X >> C1) << (C1 + C2) -> X << C2, - (X >> C1) * (C2 << C1) -> X * C2, X / (1 << C) -> X /[ex] (1 << C)): - Use with_possible_nonzero_bits@0 rather than - (with_possible_nonzero_bits2 @0). - -2024-11-22 Tobias Burnus - - * gimplify.cc (gimplify_call_expr): Add initial support for - dispatch's 'interop' clause. - (gimplify_scan_omp_clauses): Handle interop clause. - * tree-pretty-print.cc (dump_omp_clause): Likewise. - * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INTEROP. - * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add interop. - -2024-11-22 Tobias Burnus - - * gimplify.cc (gimplify_expr): Handle OMP_INTEROP by printing - "sorry, uninplemented". - * omp-api.h (omp_get_fr_id_from_name): Change return type to - 'char'. - * omp-general.cc (omp_get_fr_id_from_name): Likewise; return - GOMP_INTEROP_IFR_UNKNOWN not 0 if not found. - (omp_get_name_from_fr_id): Return "" not NULL - if not found (used for dumps). - * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DESTROY, - OMP_CLAUSE_USE, and OMP_CLAUSE_INIT. - * tree-pretty-print.cc (dump_omp_init_prefer_type): New. - (dump_omp_clause): Handle init, use and destroy clauses. - (dump_generic_node): Handle interop directive. - * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add new - init/use/destroy clauses. - * tree.def (OACC_LOOP): Fix comment. - (OMP_INTEROP): Add. - * tree.h (OMP_INTEROP_CLAUSES, OMP_CLAUSE_INIT_TARGET, - OMP_CLAUSE_INIT_TARGETSYNC, OMP_CLAUSE_INIT_PREFER_TYPE): New. - -2024-11-22 Jakub Jelinek - - PR target/117165 - * config/i386/i386-builtin.def (IX86_BUILTIN_FNSTENV, - IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW, IX86_BUILTIN_FNCLEX): Add - space to the end of the builtin name to make it really internal. - -2024-11-22 Tamar Christina - - PR tree-optimization/116463 - * tree-vect-slp-patterns.cc (complex_mul_pattern::matches, - complex_fms_pattern::matches): Try swapping operands on multiply. - -2024-11-22 Lulu Cheng - - * doc/invoke.texi: Remove the non-existent option - '-msmall-data-limit' and add a description of '-G'. - -2024-11-22 Lulu Cheng - - * config/loongarch/loongarch-builtins.cc - (loongarch_builtin_vectorized_function): Delete. - (LARCH_GET_BUILTIN): Delete. - * config/loongarch/loongarch-protos.h - (loongarch_builtin_vectorized_function): Delete. - * config/loongarch/loongarch.cc - (TARGET_ASM_ALIGNED_HI_OP): Delete. - (TARGET_ASM_ALIGNED_SI_OP): Delete. - (TARGET_ASM_ALIGNED_DI_OP): Delete. - -2024-11-22 Lulu Cheng - - * config/loongarch/lasx.md: Fixed. - * config/loongarch/lsx.md: Fixed. - -2024-11-22 Xi Ruoyao - - * config/loongarch/loongarch-builtins.cc (vorn_v, xvorn_v): Use - unsigned vector modes. - * config/loongarch/lsxintrin.h (__lsx_vorn_v): Cast arguments to - v16u8. - * config/loongarch/lasxintrin.h (__lasx_xvorn_v): Cast arguments - to v32u8. - -2024-11-21 Jeff Law - - PR target/117690 - * config/riscv/riscv.cc (riscv_build_integer): Add missing left - shift when using shNadd to derive upper 32 bits from lower 32 bits. - -2024-11-21 Arsen Arsenović - - * doc/cpp.texi (__has_include): Document __has_include_next - also. - (Conditional Syntax): Mention __has_include_next in the - description for the __has_include menu entry. - -2024-11-21 David Malcolm - - PR bootstrap/117677 - * json-parsing.cc (selftest::test_parse_number): Replace - ASSERT_EQ of 'double' values with ASSERT_NEAR. Eliminate - ASSERT_PRINT_EQ for such values. - * selftest.h (ASSERT_NEAR): New. - (ASSERT_NEAR_AT): New. - -2024-11-21 Georg-Johann Lay - - PR target/117726 - * config/avr/avr.opt (-msplit-bit-shift): Add new optimization option. - * common/config/avr/avr-common.cc (avr_option_optimization_table) - [OPT_LEVELS_2_PLUS]: Turn on -msplit-bit-shift. - * config/avr/avr.h (machine_function.n_avr_fuse_add_executed): - New bool component. - * config/avr/avr.md (attr "isa") <2op, 3op>: Add new values. - (attr "enabled"): Handle them. - (ashlsi3, *ashlsi3, *ashlsi3_const): Add "r,r,C15" alternative. - Add "r,0,C4l" and "r,r,C4l" alternatives (depending on 2op / 3op). - (define_split) [avr_split_bit_shift]: Add 2 new ashift:ALL4 splitters. - (define_peephole2) [ashift:ALL4]: Add (match_dup 3) so that the scratch - won't overlap with the output operand of the matched insn. - (*ashl3_const_split): Remove unused ashift:ALL4 splitter. - * config/avr/avr-passes.cc (emit_valid_insn) - (emit_valid_move_clobbercc): Move out of anonymous namespace. - (make_avr_pass_fuse_add) : Don't override. - : Set n_avr_fuse_add_executed according to - func->machine->n_avr_fuse_add_executed. - (pass_data avr_pass_data_split_after_peephole2): New object. - (avr_pass_split_after_peephole2): New rtl_opt_pass. - (avr_emit_shift): New static function. - (avr_shift_is_3op, avr_split_shift_p, avr_split_shift) - (make_avr_pass_split_after_peephole2): New functions. - * config/avr/avr-passes.def (avr_pass_split_after_peephole2): - Insert new pass after pass_peephole2. - * config/avr/avr-protos.h - (n_avr_fuse_add_executed, avr_shift_is_3op, avr_split_shift_p) - (avr_split_shift, avr_optimize_size_level) - (make_avr_pass_split_after_peephole2): New prototypes. - * config/avr/avr.cc (n_avr_fuse_add_executed): New global variable. - (avr_optimize_size_level): New function. - (avr_set_current_function): Set n_avr_fuse_add_executed - according to cfun->machine->n_avr_fuse_add_executed. - (ashlsi3_out) [case 15]: Output optimized code for this offset. - (avr_rtx_costs_1) [ASHIFT, SImode]: Adjust costs of oggsets 15, 16. - * config/avr/constraints.md (C4a, C4r, C4r): New constraints. - * pass_manager.h (pass_manager): Adjust comments. - -2024-11-21 Georg-Johann Lay - - * config/avr/avr-passes.cc (absint_t::dump): Fix missing - newline in dump. - -2024-11-21 Jeff Law - - PR target/116590 - * config/riscv/vector.md (pred_mul_mode_undef): Drop - unnecessary alternatives. - (pred_): Likewise. - (pred_): Likewise. - (pred__scalar): Likewise. - (pred__scalar): Likewise. - (pred_mul_neg__undef): Likewise. - (pred_): Likewise. - (pred_): Likewise. - (pred__scalar): Likewise. - (pred__scalar): Likewise. - -2024-11-21 Pan Li - - * match.pd: Refactor sorts of unsigned SAT_ADD match pattern. - -2024-11-21 Tamar Christina - - * tree-vect-data-refs.cc (vect_get_data_access_cost): Pass NULL for SLP - node. - * tree-vect-stmts.cc (record_stmt_cost): Expose. - (vect_get_store_cost, vect_get_load_cost): Extend with SLP node. - (vectorizable_store, vectorizable_load): Pass SLP node to all costing. - * tree-vectorizer.h (record_stmt_cost): Always pass both SLP node and - stmt_vinfo to costing. - (vect_get_load_cost, vect_get_store_cost): Extend with SLP node. - -2024-11-21 Rainer Orth - - PR target/102296 - * config/i386/sol2.h (ASM_DECLARE_OBJECT_NAME): Use decl size - instead of type size. - * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Likewise. - -2024-11-21 Christoph Müllner - - * tree-ssa-forwprop.cc (struct _vec_perm_simplify_seq): New data - structure to store analysis results of a vec perm simplify sequence. - (get_vect_selector_index_map): Helper to get an index map from the - provided vector permute selector. - (recognise_vec_perm_simplify_seq): Helper to recognise a - vec perm simplify sequence. - (narrow_vec_perm_simplify_seq): Helper to pack the lanes more - tight. - (can_blend_vec_perm_simplify_seqs_p): Test if two vec perm - sequences can be blended. - (calc_perm_vec_perm_simplify_seqs): Helper to calculate the new - permutation indices. - (blend_vec_perm_simplify_seqs): Helper to blend two vec perm - simplify sequences. - (process_vec_perm_simplify_seq_list): Helper to process a list - of vec perm simplify sequences. - (append_vec_perm_simplify_seq_list): Helper to add a vec perm - simplify sequence to the list. - (pass_forwprop::execute): Integrate new functionality. - -2024-11-21 Richard Biener - - PR tree-optimization/117720 - * tree-vect-stmts.cc (vectorizable_load): For VMAT_STRIDED_SLP - verify the choosen load type is OK with regard to alignment. - -2024-11-21 Jakub Jelinek - - * doc/invoke.texi (-std=c23): Adjust documentation for - publication of the ISO/IEC 9899:2024 standard. - * doc/standards.texi: Likewise. Document -std=gnu17 and - -std=gnu23 options. Mention that -std=gnu23 rather than - -std=gnu17 is now the default for C. - -2024-11-21 Jakub Jelinek - - PR tree-optimization/94589 - PR tree-optimization/117612 - * tree-ssa-phiopt.cc (spaceship_replacement): Handle - HONOR_NANS (TREE_TYPE (lhs1)) case when possible. - -2024-11-21 Jakub Jelinek - - PR tree-optimization/94589 - PR tree-optimization/117612 - * tree-ssa-phiopt.cc (spaceship_replacement): Fix up - a pasto in check when arg1 is 2. - -2024-11-21 Jakub Jelinek - - PR c/117024 - * coretypes.h (enum function_class): Add function_c2y_misc - enumerator. - * builtin-types.def (BT_FN_UINTMAX_INTMAX, BT_FN_ULONG_LONG, - BT_FN_ULONGLONG_LONGLONG): New DEF_FUNCTION_TYPE_1s. - * builtins.def (DEF_C2Y_BUILTIN): Define. - (BUILT_IN_UABS, BUILT_IN_UIMAXABS, BUILT_IN_ULABS, - BUILT_IN_ULLABS): New builtins. - * builtins.cc (fold_builtin_abs): Handle also folding of u*abs - to ABSU_EXPR. - (fold_builtin_1): Handle BUILT_IN_U{,L,LL,IMAX}ABS. - -2024-11-21 Kewen Lin - - PR target/114567 - * config/rs6000/rs6000.md (expander signbit2): Adjust. - (*signbit2_dm_mem): Rename to ... - (signbit2_dm_mem): ... this. - -2024-11-21 Kewen Lin - - * config/rs6000/altivec.md (altivec_vadduqm): Rename to ... - (addv1ti3): ... this. - (altivec_vsubuqm): Rename to ... - (subv1ti3): ... this. - * config/rs6000/rs6000-builtins.def (__builtin_altivec_vadduqm): - Replace bif expander altivec_vadduqm with addv1ti3. - (__builtin_altivec_vsubuqm): Replace bif expander altivec_vsubuqm with - subv1ti3. - -2024-11-21 Kewen Lin - - * config/rs6000/altivec.md (mode attr for V1TI in VI_unit): Remove. - -2024-11-21 Kewen Lin - - * config/rs6000/rs6000.md (*eqv3_internal1): Generate - insn veqv if TARGET_ALTIVEC and operands are altivec_register_operand. - -2024-11-21 Kewen Lin - - * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_IEEE): Remove. - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace - ISA_3_0_MASKS_IEEE check with TARGET_P9_VECTOR. - -2024-11-21 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Simplify - TARGET_P8_VECTOR && TARGET_DIRECT_MOVE as TARGET_P8_VECTOR. - (rs6000_output_move_128bit): Simplify TARGET_VSX && TARGET_DIRECT_MOVE - as TARGET_DIRECT_MOVE. - * config/rs6000/rs6000.h (TARGET_XSCVDPSPN): Simplify conditions - TARGET_DIRECT_MOVE || TARGET_P8_VECTOR as TARGET_P8_VECTOR. - (TARGET_XSCVSPDPN): Likewise. - (TARGET_DIRECT_MOVE_128): Simplify TARGET_DIRECT_MOVE && - TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT. - (TARGET_VEXTRACTUB): Likewise. - (TARGET_DIRECT_MOVE_64BIT): Simplify TARGET_P8_VECTOR && - TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE. - * config/rs6000/rs6000.md (signbit2, @signbit2_dm, - *signbit2_dm_mem, floatsi2_lfiwax, - floatsi2_lfiwax__mem_zext, - floatunssi2_lfiwzx, float2, - *float2_internal, floatuns2, - *floatuns2_internal, p8_mtvsrd_v16qidi2, - p8_mtvsrd_df, p8_xxpermdi_, reload_vsx_from_gpr, - p8_mtvsrd_sf, reload_vsx_from_gprsf, p8_mfvsrd_3_, - reload_gpr_from_vsx, reload_gpr_from_vsxsf, unpack_dm): - Simplify TARGET_DIRECT_MOVE && TARGET_POWERPC64 as - TARGET_DIRECT_MOVE_64BIT. - (unpack_nodm): Simplify !TARGET_DIRECT_MOVE || !TARGET_POWERPC64 - as !TARGET_DIRECT_MOVE_64BIT. - (fix_truncsi2, fix_truncsi2_stfiwx, - fix_truncsi2_internal): Simplify TARGET_P8_VECTOR && - TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE. - (fix_truncsi2_stfiwx, fixuns_truncsi2_stfiwx): Remove some - dead code as the guard TARGET_DIRECT_MOVE there never holds. - (fixuns_truncsi2_stfiwx): Change TARGET_P8_VECTOR with - TARGET_DIRECT_MOVE which is a better fit. - * config/rs6000/vsx.md (define_peephole2 for SFmode in GPR): Simplify - TARGET_DIRECT_MOVE && TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT. - -2024-11-20 Lewis Hyatt - - * tree-cfg.cc (assign_discriminators): Fix incorrect value passed to - next_discriminator_for_locus(). - -2024-11-20 Vladimir N. Makarov - - PR target/116587 - * lra-assigns.cc (find_all_spills_for): Consider all pseudos whose - classes intersect given pseudo class. - -2024-11-20 Andrew Pinski - - * read-md.h (class rtx_reader): Don't include m_reuse_rtx_by_id - when GENERATOR_FILE is defined. - * read-rtl.cc (rtx_reader::read_rtx_code): Disable reuse_rtx - support when GENERATOR_FILE is defined. - -2024-11-20 Richard Biener - - PR tree-optimization/117709 - * tree-vect-stmts.cc (get_group_load_store_type): Only - set *poffset when we end up with VMAT_CONTIGUOUS_DOWN - or VMAT_CONTIGUOUS_REVERSE. - -2024-11-20 Richard Biener - - PR tree-optimization/117698 - * tree-vect-stmts.cc (get_group_load_store_type): Properly - disregard alignment for VMAT_STRIDED_SLP and VMAT_INVARIANT. - (vectorizable_load): Adjust guard for dumping whether we - vectorize and unaligned access. - (vectorizable_store): Likewise. - -2024-11-20 Paul-Antoine Arras - - * builtins.cc (builtin_fnspec): Handle BUILT_IN_OMP_GET_MAPPED_PTR. - * gimple-low.cc (lower_stmt): Handle GIMPLE_OMP_DISPATCH. - * gimple-pretty-print.cc (dump_gimple_omp_dispatch): New function. - (pp_gimple_stmt_1): Handle GIMPLE_OMP_DISPATCH. - * gimple-walk.cc (walk_gimple_stmt): Likewise. - * gimple.cc (gimple_build_omp_dispatch): New function. - (gimple_copy): Handle GIMPLE_OMP_DISPATCH. - * gimple.def (GIMPLE_OMP_DISPATCH): Define. - * gimple.h (gimple_build_omp_dispatch): Declare. - (gimple_has_substatements): Handle GIMPLE_OMP_DISPATCH. - (gimple_omp_dispatch_clauses): New function. - (gimple_omp_dispatch_clauses_ptr): Likewise. - (gimple_omp_dispatch_set_clauses): Likewise. - (gimple_return_set_retval): Handle GIMPLE_OMP_DISPATCH. - * gimplify.cc (enum omp_region_type): Add ORT_DISPATCH. - (struct gimplify_omp_ctx): Add in_call_args. - (gimplify_call_expr): Handle need_device_ptr arguments. - (is_gimple_stmt): Handle OMP_DISPATCH. - (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DEVICE in a dispatch - construct. Handle OMP_CLAUSE_NOVARIANTS and OMP_CLAUSE_NOCONTEXT. - (omp_has_novariants): New function. - (omp_has_nocontext): Likewise. - (omp_construct_selector_matches): Handle OMP_DISPATCH with nocontext - clause. - (find_ifn_gomp_dispatch): New function. - (gimplify_omp_dispatch): Likewise. - (gimplify_expr): Handle OMP_DISPATCH. - * gimplify.h (omp_has_novariants): Declare. - * internal-fn.cc (expand_GOMP_DISPATCH): New function. - * internal-fn.def (GOMP_DISPATCH): Define. - * omp-builtins.def (BUILT_IN_OMP_GET_MAPPED_PTR): Define. - (BUILT_IN_OMP_GET_DEFAULT_DEVICE): Define. - (BUILT_IN_OMP_SET_DEFAULT_DEVICE): Define. - * omp-general.cc (omp_construct_traits_to_codes): Add OMP_DISPATCH. - (struct omp_ts_info): Add dispatch. - (omp_resolve_declare_variant): Handle novariants. Adjust - DECL_ASSEMBLER_NAME. - * omp-low.cc (scan_omp_1_stmt): Handle GIMPLE_OMP_DISPATCH. - (lower_omp_dispatch): New function. - (lower_omp_1): Call it. - * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_OMP_DISPATCH. - (estimate_num_insns): Handle GIMPLE_OMP_DISPATCH. - -2024-11-20 Paul-Antoine Arras - - * builtin-types.def (BT_FN_PTR_CONST_PTR_INT): New. - * omp-selectors.h (enum omp_ts_code): Add OMP_TRAIT_CONSTRUCT_DISPATCH. - * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_NOVARIANTS and - OMP_CLAUSE_NOCONTEXT. - * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_NOVARIANTS - and OMP_CLAUSE_NOCONTEXT. - (dump_generic_node): Handle OMP_DISPATCH. - * tree.cc (omp_clause_num_ops): Add OMP_CLAUSE_NOVARIANTS and - OMP_CLAUSE_NOCONTEXT. - (omp_clause_code_name): Add "novariants" and "nocontext". - * tree.def (OMP_DISPATCH): New. - * tree.h (OMP_DISPATCH_BODY): New macro. - (OMP_DISPATCH_CLAUSES): New macro. - (OMP_CLAUSE_NOVARIANTS_EXPR): New macro. - (OMP_CLAUSE_NOCONTEXT_EXPR): New macro. - -2024-11-20 Richard Sandiford - - * config/aarch64/aarch64-option-extensions.def (sme2p1): New extension. - * doc/invoke.texi: Document it. - * config/aarch64/aarch64.h (TARGET_STREAMING_SME2p1): New macro. - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): - Conditionally define __ARM_FEATURE_SME2p1. - * config/aarch64/iterators.md (UNSPEC_SME_READZ, UNSPEC_SME_READZ_HOR) - (UNSPEC_SME_READZ_VER): New unspecs. - (optab, hv): Handle them. - (SME_READZ_HV): New int iterator. - * config/aarch64/aarch64-sme.md - (UNSPEC_SME_ZERO_SLICES): New unspec. - (@aarch64_sme_) - (*aarch64_sme__plus) - (@aarch64_sme_) - (@aarch64_sme_) - (*aarch64_sme__plus) - (@aarch64_sme_readz, *aarch64_sme_readz_plus) - (@aarch64_sme_zero_za_slices): New patterns. - (*aarch64_sme_zero_za_slices_plus): Likewise. - * config/aarch64/aarch64-sve-builtins-shapes.h - (inherent_za_slice): Declare. - * config/aarch64/aarch64-sve-builtins-shapes.cc - (inherent_za_slice_def, inherent_za_slice): New shape. - * config/aarch64/aarch64-sve-builtins-sme.h (svreadz_za) - (svreadz_hor_za, svreadz_ver_za): Declare. - * config/aarch64/aarch64-sve-builtins-sme.cc - (svread_za_slice_base): New class, split out from... - (svread_za_impl): ...here. - (svreadz_za_impl, svreadz_za_tile_impl): New type aliases. - (zero_slices_mode): New function. - (svzero_za_impl::expand): Handle the slice forms. - (svreadz_za, svreadz_hor_za, svreadz_ver_za): New functions. - * config/aarch64/aarch64-sve-builtins-sme.def: Add the SME2p1 - instructions. - -2024-11-20 Richard Sandiford - - * config/aarch64/aarch64-option-extensions.def - (sme-b16b16): New extension. - * doc/invoke.texi: Document it. - * config/aarch64/aarch64.h (TARGET_STREAMING_SME_B16B16): New macro. - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): - Conditionally define __ARM_FEATURE_SME_B16B16. - * config/aarch64/aarch64-sve-builtins-sme.def: Add SME_B16B16 forms - of existing intrinsics. - * config/aarch64/aarch64-sme.md - (@aarch64_sme_) - (*aarch64_sme__plus) - (@aarch64_sme_) - (*aarch64_sme__plus) - (@aarch64_sme_single_) - (*aarch64_sme_single__plus) - (@aarch64_sme_lane_) - (*aarch64_sme_lane_) - (@aarch64_sme_): Extend to BF16 modes. - * config/aarch64/aarch64-sve-builtins.cc (TYPES_za_h_bfloat): New - type macro. - * config/aarch64/iterators.md (SME_ZA_HSDFx24): Add BF16 modes. - (SME_MOP_HSDF): Likewise. - -2024-11-20 Richard Sandiford - - * config/aarch64/aarch64-option-extensions.def - (sme-f16f16): New extension. - * doc/invoke.texi: Document it. Also document that sme-i16i64 and - sme-f64f64 enable SME. - * config/aarch64/aarch64.h (TARGET_STREAMING_SME_F16F16): New macro. - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): - Conditionally define __ARM_FEATURE_SME_F16F16. - * config/aarch64/aarch64-sve-builtins-sve2.def (svcvt, svcvtl): Add - new SME_F16F16 intrinsics. - * config/aarch64/aarch64-sve-builtins-sme.def: Add SME_F16F16 forms - of existing intrinsics. - * config/aarch64/aarch64-sve-builtins.cc (TYPES_h_float) - (TYPES_cvt_f32_f16, TYPES_za_h_float): New type macros. - * config/aarch64/aarch64-sve-builtins-base.cc - (svcvt_impl::expand): Add sext_optab as another possibility. - * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl): Declare. - * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl_impl): New class. - (svcvtl): New function. - * config/aarch64/iterators.md (VNx8SF_ONLY): New mode iterator. - (SME_ZA_SDFx24): Replace with... - (SME_ZA_HSDFx24): ...this. - (SME_MOP_SDF): Replace with... - (SME_MOP_HSDF): ...this. - (SME_BINARY_SLICE_SDF): Replace with... - (SME_BINARY_SLICE_HSDF): ...this. - * config/aarch64/aarch64-sve2.md (extendvnx8hfvnx8sf2) - (@aarch64_sve_cvtl): New patterns. - * config/aarch64/aarch64-sme.md - (@aarch64_sme_): Extend to... - (@aarch64_sme_): ...this. - (*aarch64_sme__plus): Extend to... - (*aarch64_sme__plus): ...this. - (@aarch64_sme_): Extend to - HF modes. - (*aarch64_sme__plus) - (@aarch64_sme_single_) - (*aarch64_sme_single__plus) - (@aarch64_sme_lane_) - (*aarch64_sme_lane_) - (@aarch64_sme_): Likewise. - -2024-11-20 Richard Sandiford - - * config/aarch64/aarch64-option-extensions.def - (sve-b16b16): New extension. - * doc/invoke.texi: Document it. - * config/aarch64/aarch64.h (TARGET_SME_B16B16, TARGET_SVE2_OR_SME2) - (TARGET_SSVE_B16B16): New macros. - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): - Conditionally define __ARM_FEATURE_SVE_B16B16 - * config/aarch64/aarch64-sve-builtins-sve2.def: Add AARCH64_FL_SVE2 - to the SVE2p1 requirements. Add SVE_B16B16 forms of existing - intrinsics. - * config/aarch64/aarch64-sve-builtins.cc (type_suffixes): Treat - bfloat as a floating-point type. - (TYPES_h_bfloat): New macro. - * config/aarch64/aarch64.md (is_bf16, is_rev, supports_bf16_rev) - (mode_enabled): New attributes. - (enabled): Test mode_enabled. - * config/aarch64/iterators.md (SVE_FULL_F_BF): New mode iterator. - (SVE_CLAMP_F): Likewise. - (SVE_Fx24): Add BF16 modes when TARGET_SSVE_B16B16. - (sve_lane_con): Handle BF16 modes. - (b): Handle SF and DF modes. - (is_bf16): New mode attribute. - (supports_bf16, supports_bf16_rev): New int attributes. - * config/aarch64/predicates.md - (aarch64_sve_float_maxmin_immediate): Reject BF16 modes. - * config/aarch64/aarch64-sve.md - (*post_ra_3): Add BF16 support, and likewise - for the associated define_split. - (): Add BF16 support. - (@cond_): Likewise. - (*cond__2_relaxed): Likewise. - (*cond__2_strict): Likewise. - (*cond__3_relaxed): Likewise. - (*cond__3_strict): Likewise. - (*cond__any_relaxed): Likewise. - (*cond__any_strict): Likewise. - (@aarch64_mul_lane_): Likewise. - (): Likewise. - (@aarch64_pred_): Likewise. - (@cond_): Likewise. - (*cond__4_relaxed): Likewise. - (*cond__4_strict): Likewise. - (*cond__any_relaxed): Likewise. - (*cond__any_strict): Likewise. - (@aarch64__lane_): Likewise. - * config/aarch64/aarch64-sve2.md - (@aarch64_pred_): Define BF16 version. - (@aarch64_sve_fclamp): Add BF16 support. - (*aarch64_sve_fclamp_x): Likewise. - (*aarch64_sve_): Likewise. - (*aarch64_sve_single_): Likewise. - * config/aarch64/aarch64.cc (aarch64_sve_float_arith_immediate_p) - (aarch64_sve_float_mul_immediate_p): Return false for BF16 modes. - -2024-11-20 Richard Sandiford - - * config/aarch64/aarch64-sme.md (@aarch64_sme_write) - (*aarch64_sme_write_plus): Use UNSPEC_SME_WRITE instead - of UNSPEC_SME_READ. - -2024-11-20 Richard Sandiford - - * config/aarch64/iterators.md (SME_READ): Rename to... - (SME_READ_HV): ...this. - (SME_WRITE): Rename to... - (SME_WRITE_HV): ...this. - * config/aarch64/aarch64-sme.md: Update accordingly. - -2024-11-20 Richard Sandiford - - * config/aarch64/iterators.md (SVE_COND_FP): New code attribute. - * config/aarch64/aarch64-sve.md: Use a single define_split to - handle the conversion of predicated FADD, FSUB, and FMUL into - unpredicated forms. - -2024-11-20 Richard Sandiford - - * config/aarch64/iterators.md (SME_ZA_SDF_I): Delete. - (SME_MOP_HSDF): Replace with... - (SME_MOP_SDF): ...this. - * config/aarch64/aarch64-sme.md: Change the non-widening FMLA and - FMLS patterns so that both mode parameters are the same, rather than - using both SME_ZA_SDF_I and SME_ZA_SDFx24 and checking that their - element sizes are the same. Split the FMOPA and FMOPS patterns - into separate non-widening and widening forms, then update the - non-widening forms in a similar way to FMLA and FMLS. - * config/aarch64/aarch64-sve-builtins-functions.h - (sme_2mode_function_t::expand): If the two type suffixes have the same - element size, use the vector tuple mode for both mode parameters. - -2024-11-20 Uros Bizjak - - * config/i386/i386.cc (legitimize_tls_address) - : Remove 64-bit Solaris ld workaround. - * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Remove. - (tls_initial_exec_64_sun): Remove. - -2024-11-20 Richard Biener - - PR tree-optimization/117574 - * tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne): - Use the obvious may_be_zero condition. - -2024-11-20 Richard Sandiford - - * machmode.h (opt_mode::opt_mode): New overload. - * optabs-query.h (get_absneg_bit_mode): Declare. - * optabs-query.cc (get_absneg_bit_mode): New function, split - out from expand_absneg_bit. - (can_open_code_p): Use get_absneg_bit_mode. - * optabs.cc (expand_absneg_bit): Likewise. Take an outer and inner - mode, rather than just one. Handle vector modes. - (expand_unop, expand_abs_nojump): Update calls accordingly. - Handle vector modes. - -2024-11-20 Richard Sandiford - - * tree-vect-data-refs.cc (vect_supportable_dr_alignment): Use - can_implement_p instead of optab_handler. - * tree-vect-generic.cc (add_rshift, expand_vector_divmod): Likewise. - (optimize_vector_constructor, type_for_widest_vector_mode): Likewise. - (lower_vec_perm, expand_vector_operations_1): Likewise. - * tree-vect-loop.cc (have_whole_vector_shift): Likewise. - * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise. - (target_has_vecop_for_code, vect_recog_mult_pattern): Likewise. - (vect_recog_divmod_pattern): Likewise. - * tree-vect-stmts.cc (vect_supportable_shift, vectorizable_shift) - (scan_store_can_perm_p, check_scan_store, vectorizable_store) - (vectorizable_load, vectorizable_condition): Likewise. - (vectorizable_comparison_1): Likewise. - -2024-11-20 Richard Sandiford - - * optabs-query.cc (can_open_code_p, can_implement_p): Declare. - * optabs-query.h (can_open_code_p, can_implement_p): New functions. - * optabs-tree.cc (target_supports_op_p): Use can_implement_p. - * tree-vect-stmts.cc (vectorizable_operation): Likewise. - * tree-vect-generic.cc (get_compute_type): Likewise. Remove code - parameter. - (expand_vector_scalar_condition, expand_vector_conversion) - (expand_vector_operations_1): Update calls accordingly. - -2024-11-20 Andre Vieira - - * config/arm/arm.cc (arm_mve_dlstp_check_dec_counter): Call - single_pred_p to verify it's safe to call single_pred. - -2024-11-20 Feng Wang - - PR target/117669 - * config/riscv/vector-iterators.md: - -2024-11-20 MayShao-oc - - PR target/117438 - * config/i386/i386-features.cc (TARGET_ALIGN_TIGHT_LOOPS): - default true in all processors except for m_ZHAOXIN, m_CASCADELAKE, and - m_SKYLAKE_AVX512. - * config/i386/i386.h (TARGET_ALIGN_TIGHT_LOOPS): New Macro. - * config/i386/x86-tune.def (X86_TUNE_ALIGN_TIGHT_LOOPS): - New tune - -2024-11-20 yulong - - * common/config/riscv/riscv-common.cc: New. - * config/riscv/riscv.opt: New. - -2024-11-20 Jeff Law - - PR target/117649 - * config/riscv/riscv.md (branch on masked/shifted operands): Use - arithmetic rather than logical shift for operand 1. - -2024-11-19 Georg-Johann Lay - - PR target/54378 - * config/avr/avr.cc (avr_default_shift_costs): New static function. - (avr_rtx_costs_1) [ASHIFT, LSHIFTRT, ASHIFTRT]: Use it - to determine the default shift costs for shifts with a - constant shift offset. - -2024-11-19 Georg-Johann Lay - - * config/avr/avr.md (ashlhi3, *ashlhi3_const_split, *ashlhi3_const) - (*ashlpsi3_split, *ashlpsi3) - (ashlsi3, *ashlsi3_const_split, *ashlsi3_const) - (ashrhi3, *ashrhi3, ashrpsi3, *ashrpsi3, ashrsi3, *ashrsi3) - (*ashrhi3_const_split, *ashrhi3_const, *ashrsi3_const_split, *ashrsi3_const): - Add constraint alternatives that allow a 3-operand operation when the - shift offset is one less than the mode's bitsize. - * config/avr/avr.cc (ashl3_out, ashr3_out) - (lshr3_out): Use avr_asm_len for asm_out and length tracking. - (ashrhi3_out, ashlhi3_out): Support the new "r,r,C15" alternatives. - (ashrsi3_out, ashlsi3_out): Support the new "r,r,C31" alternatives. - (avr_out_ashrpsi3, avr_out_ashlpsi3): Support the new "r,r,C23" alternatives. - -2024-11-19 Georg-Johann Lay - - * config/avr/avr.h (avr_args.has_stack_args): Be a bool. - (struct machine_function) : Same. - * config/avr/avr-protos.h (reg_unused_after) - (test_hard_reg_class, jump_over_one_insn_p): Use bool as - return type. - * config/avr/avr.cc (reg_unused_after) - (test_hard_reg_class, jump_over_one_insn_p): Same. - (cfun->machine->attributes_checked_p, cum->has_stack_args) - (cfun->machine->use_L__stack_usage, cfun->machine->gasisr.yes) - (cfun->machine->sibcall_fails): Use like a bool. - -2024-11-19 Dimitar Dimitrov - - * config/riscv/riscv.cc (riscv_override_options_internal): - Set division option's default to disabled if multiplication - is not available. - -2024-11-19 Jason Merrill - - * warning-control.cc (has_warning_spec): Fix handling of - get_no_warning_bit. - -2024-11-19 Georg-Johann Lay - - PR target/84211 - * config/avr/avr-passes.cc (memento_t::apply_insn1): Don't - use operator &= on memento_t.known but on memento_t itself. - -2024-11-19 Andrew Stubbs - - PR target/117657 - * config/gcn/gcn-valu.md (mask_gather_load): Fix bug in - maskload else patch. - -2024-11-19 Evgeny Karpov - - * config/aarch64/cygming.h (TARGET_ASM_LTO_START): New. - (TARGET_ASM_LTO_END): Likewise. - * config/i386/cygming.h (TARGET_ASM_LTO_START): Update. - (TARGET_ASM_LTO_END): Likewise. - * config/i386/i386-protos.h (i386_pe_asm_lto_start): Delete. - (i386_pe_asm_lto_end): Likewise. - * config/mingw/winnt.cc (i386_pe_asm_lto_start): Rename - into ... - (mingw_pe_asm_lto_start): ... this. - (i386_pe_asm_lto_end): Rename into ... - (mingw_pe_asm_lto_end): ... this. - * config/mingw/winnt.h (mingw_pe_asm_lto_start): New. - (mingw_pe_asm_lto_end): Likewise. - -2024-11-19 Evgeny Karpov - - * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): - Update. - -2024-11-19 Evgeny Karpov - - * config/aarch64/aarch64-coff.h (LOCAL_LABEL_PREFIX): - Use "." as the local label prefix. - (ASM_OUTPUT_ALIGNED_LOCAL): Remove. - (ASM_OUTPUT_LOCAL): New. - * config/aarch64/cygming.h (ASM_OUTPUT_EXTERNAL_LIBCALL): - Update. - (ASM_DECLARE_OBJECT_NAME): New. - (ASM_DECLARE_FUNCTION_NAME): New. - * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): - Update. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Update. - * config/mingw/winnt.cc (mingw_pe_declare_function_type): - Rename into ... - (mingw_pe_declare_type): ... this. - (i386_pe_start_function): Update. - * config/mingw/winnt.h (mingw_pe_declare_function_type): - Rename into ... - (mingw_pe_declare_type): ... this. - -2024-11-19 Evgeny Karpov - - * config/aarch64/aarch64.cc (aarch64_classify_symbol): - Disable GOT for PECOFF target. - -2024-11-19 Evgeny Karpov - - * config.gcc: Add missing dependencies. - -2024-11-19 Evgeny Karpov - - * config/aarch64/aarch64.cc (TARGET_ASM_UNALIGNED_HI_OP): - Enable DWARF. - (TARGET_ASM_UNALIGNED_SI_OP): Likewise. - (TARGET_ASM_UNALIGNED_DI_OP): Likewise. - * config/aarch64/cygming.h (DWARF2_DEBUGGING_INFO): Likewise. - (PREFERRED_DEBUGGING_TYPE): Likewise. - (DWARF2_UNWIND_INFO): Likewise. - (ASM_OUTPUT_DWARF_OFFSET): Likewise. - -2024-11-19 Evgeny Karpov - - * config/aarch64/cygming.h (SUB_TARGET_RECORD_STUB): Request - declaration for weak symbols. - (PE_COFF_LEGITIMIZE_EXTERN_DECL): Legitimize external - declaration for weak symbols. - * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): Update - declarations in ix86 with the same functionality. - (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise. - * config/mingw/winnt-dll.cc (legitimize_pe_coff_symbol): - Support declaration for weak symbols if requested. - * config/mingw/winnt.cc (struct stub_list): Likewise. - (mingw_pe_record_stub): Likewise. - (mingw_pe_file_end): Likewise. - * config/mingw/winnt.h (mingw_pe_record_stub): Likewise. - -2024-11-19 Robin Dapp - - * config/riscv/riscv-v.cc (shuffle_merge_patterns): Load VLS - indices directly. - -2024-11-19 Richard Sandiford - - PR rtl-optimization/117297 - * recog.h (temporarily_undo_changes, redo_changes): Delete in - favor of... - (undo_recog_changes): ...this new RAII class. - * fwprop.cc (should_replace_address): Update accordingly. - (fwprop_propagation::check_mem): Likewise. - (try_fwprop_subst_note): Likewise. - (try_fwprop_subst_pattern): Likewise. - * rtl-ssa/insns.cc (insn_info::calculate_cost): Likewise. - * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Temporarily - undo all in-progress changes while computing the cost of the original - sequence. - * recog.cc (temporarily_undone_changes): Replace with... - (undo_recog_changes::s_num_changes): ...this static member variable. - (validate_change_1): Update check accordingly. - (confirm_change_group): Likewise. - (num_validated_changes): Likewise. - (temporarily_undo_changes): Replace with... - (undo_recog_changes::undo_recog_changes): ...this constructor. - (redo_changes): Replace with... - (undo_recog_changes::~undo_recog_changes): ...this destructor. - -2024-11-19 Jakub Jelinek - - PR middle-end/117458 - * expr.cc (expand_expr_real_1) : Don't - call extract_bit_field if op0 has complex mode and isn't a MEM, - instead first force op0 into memory and then call extract_bit_field. - -2024-11-19 Jakub Jelinek - - PR middle-end/117459 - * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt, - bitint_large_huge::lower_stmt): Handle PAREN_EXPR. - -2024-11-19 Jakub Jelinek - - PR middle-end/117571 - * gimple-lower-bitint.cc (bitint_large_huge::lower_muldiv_stmt, - bitint_large_huge::lower_stmt, stmt_needs_operand_addr, - build_bitint_stmt_ssa_conflicts, gimple_lower_bitint): Handle - EXACT_DIV_EXPR like TRUNC_DIV_EXPR. - -2024-11-19 David Malcolm - - * config/avr/avr.opt.urls: Regenerate for - r15-5415-gc3db52bb47913a. - -2024-11-19 Mark Harmstone - - * dwarf2codeview.cc (add_to_fieldlist): New function. - (add_struct_member): Call recursively to flatten structs, and call - add_to_fieldlist. - (add_struct_static_member): Call add_to_fieldlist. - (add_struct_function): Call add_to_fieldlist. - (add_struct_inheritance): Call add_to_fieldlist. - (add_struct_nested_type): Call add_to_fieldlist. - (get_type_num_struct): Move code to add_to_fieldlist, and move - responsibility for this to subfunctions. - -2024-11-19 Mark Harmstone - - * dwarf2codeview.cc (enum cv_leaf_type): Add LF_NESTTYPE. - (struct codeview_subtype): Add lf_nesttype to union. - (flush_deferred_types): Add declaration. - (write_lf_fieldlist): Handle LF_NESTTYPE. - (codeview_debug_finish): Call flush_deferred_types. - (add_struct_nested_type): New function. - (get_type_num_struct): Call add_struct_nested_type, and if nested make - that parent is added. - -2024-11-18 David Malcolm - - PR other/96032 - * Makefile.in (lang_checks): If libdiagnostics is enabled, add - check-sarif-replay. - (SARIF_REPLAY_OBJS): New. - (ALL_HOST_OBJS): If libdiagnostics is enabled, add - $(SARIF_REPLAY_OBJS). - (sarif-replay): New. - (install-libdiagnostics): Add sarif-replay to deps, and install - it. - * configure: Regenerate. - * configure.ac (check_languages): If libdiagnostics is enabled, - add check-sarif-replay. - (LIBDIAGNOSTICS): If libdiagnostics is enabled, add sarif-replay. - * doc/install.texi (--enable-libdiagnostics): Note that it also - enables sarif-replay. - * libsarifreplay.cc: New file. - * libsarifreplay.h: New file. - * sarif-replay.cc: New file. - * sarif-spec-urls.def: New file. - -2024-11-18 David Malcolm - - * Makefile.in (OBJS-libcommon): Add json-parsing.o. - * json-parsing.cc: New file. - * json-parsing.h: New file. - * json.cc (selftest::assert_print_eq): Remove "static". - * json.h (json::array::begin): New. - (json::array::end): New. - (json::array::length): New. - (json::array::get): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (selftest::assert_print_eq): New decl. - * selftest-run-tests.cc (selftest::run_tests): Call - selftest::json_parser_cc_tests. - * selftest.h (selftest::json_parser_cc_tests): New decl. - -2024-11-18 David Malcolm - - * configure.ac (check_languages): Add check-libdiagnostics. - (--enable-libdiagnostics): New. - * configure: Regenerate. - * Makefile.in (enable_libdiagnostics): New. - (lang_checks): If libdiagnostics is enabled, add - check-libdiagnostics. - (ALL_HOST_OBJS): If libdiagnostics is enabled, add - $(libdiagnostics_OBJS). - (start.encap): Add LIBDIAGNOSTICS. - (libdiagnostics_OBJS): New. - (LIBDIAGNOSTICS_VERSION_NUM): New, adapted from code in - jit/Make-lang.in. - (LIBDIAGNOSTICS_MINOR_NUM): Likewise. - (LIBDIAGNOSTICS_RELEASE_NUM): Likewise. - (LIBDIAGNOSTICS_FILENAME): Likewise. - (LIBDIAGNOSTICS_IMPORT_LIB): Likewise. - (libdiagnostics): Likewise. - (LIBDIAGNOSTICS_AGE): Likewise. - (LIBDIAGNOSTICS_BASENAME): Likewise. - (LIBDIAGNOSTICS_SONAME): Likewise. - (LIBDIAGNOSTICS_LINKER_NAME): Likewise. - (LIBDIAGNOSTICS_COMMA): Likewise. - (LIBDIAGNOSTICS_VERSION_SCRIPT_OPTION): Likewise. - (LIBDIAGNOSTICS_SONAME_OPTION): Likewise. - (LIBDIAGNOSTICS_SONAME_SYMLINK): Likewise. - (LIBDIAGNOSTICS_LINKER_NAME_SYMLINK): Likewise. - (LIBDIAGNOSTICS_FILENAME): Likewise. - (libdiagnostics.serial): Likewise. - (LIBDIAGNOSTICS_EXTRA_OPTS): Likewise. - (install): If libdiagnostics is enabled, add - install-libdiagnostics. - (libdiagnostics.install-headers): New. - (libdiagnostics.install-common): New, adapted from code in - jit/Make-lang.in. - (install-libdiagnostics): New. - * diagnostic-format-text.h - (diagnostic_text_output_format::get_location_text): Make public. - * doc/install.texi (--enable-libdiagnostics): New. - * doc/libdiagnostics/Makefile: New file. - * doc/libdiagnostics/conf.py: New file. - * doc/libdiagnostics/index.rst: New file. - * doc/libdiagnostics/make.bat: New file. - * doc/libdiagnostics/topics/diagnostic-manager.rst: New file. - * doc/libdiagnostics/topics/diagnostics.rst: New file. - * doc/libdiagnostics/topics/execution-paths.rst: New file. - * doc/libdiagnostics/topics/fix-it-hints.rst: New file. - * doc/libdiagnostics/topics/index.rst: New file. - * doc/libdiagnostics/topics/logical-locations.rst: New file. - * doc/libdiagnostics/topics/message-formatting.rst: New file. - * doc/libdiagnostics/topics/metadata.rst: New file. - * doc/libdiagnostics/topics/physical-locations.rst: New file. - * doc/libdiagnostics/topics/retrofitting.rst: New file. - * doc/libdiagnostics/topics/sarif.rst: New file. - * doc/libdiagnostics/topics/text-output.rst: New file. - * doc/libdiagnostics/topics/ux.rst: New file. - * doc/libdiagnostics/tutorial/01-hello-world.rst: New file. - * doc/libdiagnostics/tutorial/02-physical-locations.rst: New file. - * doc/libdiagnostics/tutorial/03-logical-locations.rst: New file. - * doc/libdiagnostics/tutorial/04-notes.rst: New file. - * doc/libdiagnostics/tutorial/05-warnings.rst: New file. - * doc/libdiagnostics/tutorial/06-fix-it-hints.rst: New file. - * doc/libdiagnostics/tutorial/07-execution-paths.rst: New file. - * doc/libdiagnostics/tutorial/index.rst: New file. - * libdiagnostics++.h: New file. - * libdiagnostics.cc: New file. - * libdiagnostics.h: New file. - * libdiagnostics.map: New file. - * doc/libdiagnostics/tutorial/example-1.png: New file. - -2024-11-18 Uros Bizjak - - PR target/117357 - * config/i386/i386.md (*rsqrtsf2_sse): - Also enable for !TARGET_SSE_MATH. - -2024-11-18 Richard Sandiford - - * timevar.def (TV_LATE_COMBINE): New timevar. - * late-combine.cc (pass_data_late_combine): Use it. - -2024-11-18 Richard Sandiford - - * config/aarch64/aarch64-early-ra.cc - (early_ra::IGNORE_REG): New flag. - (early_ra::fpr_preference): Handle it. - (early_ra::record_constraints): Fail the allocation if an - IGNORE_REG output operand is not independent of the inputs. - (defines_multi_def_pseudo): New function. - (early_ra::could_split_region_here): New member function, split - out from... - (early_ra::process_block): ...here. Try splitting a block into - multiple regions between the definition and use phases of an - instruction. Set IGNORE_REG on the output registers if we do so. - -2024-11-18 Richard Sandiford - - * config/aarch64/aarch64-early-ra.cc - (early_ra::process_block): Check m_accurate_live_ranges - rather than m_allocation_successful when deciding whether - to split a block into multiple regions. Skip over subregions - that we decide not to allocate. - -2024-11-18 Richard Sandiford - - * config/aarch64/aarch64-early-ra.cc - (early_ra::get_allocno_subgroup): Split can_change_mode_class test - out from modes_tieable_p test and only invalidate the live range - information for the former. - -2024-11-18 Richard Sandiford - - * config/aarch64/aarch64-early-ra.cc - (early_ra::record_allocation_failure): New member function. - (early_ra::get_allocno_subgroup): Use it instead of setting - m_allocation_successful directly. - (early_ra::record_constraints): Likewise. - (early_ra::allocate_colors): Likewise. - -2024-11-18 Richard Sandiford - - * config/aarch64/aarch64-early-ra.cc - (early_ra::record_live_range_failure): New member function. - (early_ra::m_accurate_live_ranges): New member variable. - (early_ra::start_new_region): Set m_accurate_live_ranges to true. - (early_ra::get_allocno_subgroup): Use record_live_range_failure - to abort the allocation on invalid subregs. - -2024-11-18 Richard Sandiford - - * config/aarch64/aarch64-early-ra.cc - (early_ra::record_insn_refs): Split into... - (early_ra::record_insn_defs, early_ra::record_insn_call) - (early_ra::record_insn_uses): ...this new functions. - (early_ra::process_block): Update accordingly. - -2024-11-18 David Malcolm - - PR other/116253 - * diagnostic-core.h (class auto_diagnostic_nesting_level): New. - * diagnostic-format-sarif.cc (class sarif_builder): Update leading - comment re nesting of diagnostics. - (sarif_result::on_nested_diagnostic): Add nestingLevel property. - * diagnostic-format-text.cc (on_report_diagnostic): If we're - showing nested diagnostics, then print changes of location on a - new line, indented, and update m_last_location. - (diagnostic_text_output_format::build_prefix): If m_show_nesting, - then potentially add indentation and a bullet point. - (get_bullet_point_unichar): New. - (use_unicode_p): New. - (diagnostic_text_output_format::build_indent_prefix): New. - * diagnostic-format-text.h - (diagnostic_text_output_format::diagnostic_text_output_format): - Initialize m_show_nesting and m_show_nesting_levels. - (diagnostic_text_output_format::build_indent_prefix): New decl. - (diagnostic_text_output_format::show_nesting_p): New accessor - (diagnostic_text_output_format::show_locations_in_nesting_p): - Likewise. - (diagnostic_text_output_format::set_show_nesting): New. - (diagnostic_text_output_format::set_show_locations_in_nesting): - New. - (diagnostic_text_output_format::set_show_nesting_levels): New. - (diagnostic_text_output_format::m_show_nesting): New field. - (diagnostic_text_output_format::m_show_locations_in_nesting): New - field. - (diagnostic_text_output_format::m_show_nesting_levels): New field. - * diagnostic-global-context.cc - (auto_diagnostic_nesting_level::auto_diagnostic_nesting_level): - New. - (auto_diagnostic_nesting_level::~auto_diagnostic_nesting_level): - New. - * diagnostic-show-locus.cc (layout_printer::print): Temporarily - set DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE. - * diagnostic.cc (diagnostic_context::initialize): Update for - renaming of m_nesting_depth to m_group_nesting_depth and - initialize m_diagnostic_nesting_level. - (diagnostic_context::finish): Update for renaming of - m_nesting_depth to m_group_nesting_depth. - (diagnostic_context::report_diagnostic): Likewise. - (diagnostic_context::begin_group): Likewise. - (diagnostic_context::end_group): Likewise. - (diagnostic_context::push_nesting_level): New. - (diagnostic_context::pop_nesting_level): New. - (diagnostic_context::set_diagnostic_buffer): Update for renaming - of m_nesting_depth to m_group_nesting_depth. Assert that we don't - have nested diagnostics. - * diagnostic.h (diagnostic_context::push_nesting_level): New decl. - (diagnostic_context::pop_nesting_level): New decl. - (diagnostic_context::get_diagnostic_nesting_level): New accessor. - (diagnostic_context::build_indent_prefix): New decl. - (diagnostic_context::m_diagnostic_groups): Rename m_nesting_depth - to m_group_nesting_depth and add field m_diagnostic_nesting_level. - * doc/invoke.texi (fdiagnostics-add-output): Add note about - "experimental" schemes, keys, and values. Add keys - "experimental-nesting", "experimental-nesting-show-locations", - and "experimental-nesting-show-levels" to text scheme. - * opts-diagnostic.cc (text_scheme_handler::make_sink): Add keys - "experimental-nesting", "experimental-nesting-show-locations", - and "experimental-nesting-show-levels". - -2024-11-18 Georg-Johann Lay - - PR target/84211 - * doc/invoke.texi (AVR Options) [-mfuse-move]: Document new option. - * common/config/avr/avr-common.cc (avr_option_optimization_table): - Set -mfuse-move= depending on optimization level. - * config/avr/avr.opt (-mfuse-move, -mfuse-move=): New options. - * config/avr/t-avr (avr-passes.o): Depend on avr-passes-fuse-move.h. - * config/avr/avr-passes-fuse-move.h: New file, used by avr-passes.cc. - * config/avr/avr-passes.def (avr_pass_fuse_move): Insert new pass. - * config/avr/avr-passes.cc (INCLUDE_ARRAY): Define it. - (insn-attr.h): Include it. - (avr_pass_data_fuse_move): New const pass_data. - (avr_pass_fuse_move): New public rtl_opt_pass class. - (make_avr_pass_fuse_move): New function. - (gprmask_t): New typedef. - (next_nondebug_insn_bb, prev_nondebug_insn_bb) - (single_set_with_scratch, size_to_mask, size_to_mode) - (emit_valid_insn, emit_valid_move_clobbercc) - (gpr_regno_p, regmask, has_bits_in) - (find_arith, find_arith2, any_shift_p): New local functions. - (AVRasm): New namespace. - (FUSE_MOVE_MAX_MODESIZE): New define. - (avr-passes-fuse-move.h): New include. - (memento_t, absint_t, absins_byte_t, absint_val_t) - (optimize_data_t, insn_optimizedata_t, find_plies_data_t) - (insninfo_t, bbinfo_t, ply_t, plies_t): New structs / classes. - * config/avr/avr-protos.h (avr_chunk, avr_byte, avr_word, avr_int8) - (avr_uint8, avr_int16, avr_uint16) - (avr_out_set_some, avr_set_some_operation) - (output_reload_in_const, make_avr_pass_fuse_move): New protos. - (avr_dump): Depend macro definition on GCC_DUMPFILE_H. - * config/avr/avr.cc (avr_option_override): Insert after - pass "avr-fuse-move" instead of after "peephole2". - (avr_chunk, avr_byte, avr_word, avr_int8, avr_uint8, avr_int16) - (avr_uint16, output_reload_in_const): Functions are no more static. - (avr_out_set_some, avr_set_some_operation): New functions. - (ashrqi3_out, ashlqi3_out) [offset=7]: Handle "r,r,C07" alternative. - (avr_out_insert_notbit): Comment also allows QImode. - (avr_adjust_insn_length) [ADJUST_LEN_SET_SOME]: Handle case. - * config/avr/avr.md (adjust_len) : New attribute value. - (set_some): New insn. - (andqi3, *andqi3): Add "r,r,Cb1" alternative. - (ashrqi3, *ashrqi3 ashlqi3, *ashlqi3): Add a "r,r,C07" alternative. - (gen_move_clobbercc_scratch): New emit helper. - * config/avr/constraints.md (Cb1): New constraint. - * config/avr/predicates.md (dreg_or_0_operand, set_some_operation): New. - * config/avr/avr-log.cc (avr_forward_to_printf): New static func. - (avr_log_vadump): Use it to recognize more formats. - -2024-11-18 Richard Biener - - PR tree-optimization/117594 - * tree-vect-loop.cc (vectorizable_live_operation_1): Pass - factor == 1 to vect_get_loop_len, insert generated stmts. - -2024-11-18 Jeff Law - - PR target/117595 - * config/riscv/sync.md (atomic_compare_and_swap): Use gen_lowpart - rather than simplify_gen_subreg. - * config/riscv/riscv.cc (riscv_legitimize_move): Similarly. - -2024-11-18 Georg-Johann Lay - - PR target/117659 - * config/avr/avr.cc (avr_out_ashlpsi3) [case 16]: Use %A1 as - input (instead of bogus %A0). - -2024-11-18 Robin Dapp - - * config/riscv/autovec.md: Add VLS modes. - * config/riscv/vector-iterators.md: Ditto. - * config/riscv/vector.md: Ditto. - -2024-11-18 Robin Dapp - - PR middle-end/115336 - PR middle-end/116059 - * config/riscv/autovec.md: Add else operand. - * config/riscv/predicates.md (maskload_else_operand): New - predicate. - * config/riscv/riscv-v.cc (get_else_operand): Remove static. - (expand_load_store): Use get_else_operand and adjust index. - (expand_gather_scatter): Ditto. - (expand_lanes_load_store): Ditto. - -2024-11-18 Robin Dapp - - * config/i386/sse.md (maskload): - Call maskload..._1. - (maskload_1): Rename. - -2024-11-18 Robin Dapp - - * config/gcn/predicates.md (maskload_else_operand): New - predicate. - * config/gcn/gcn-valu.md: Use new predicate. - -2024-11-18 Robin Dapp - - * config/aarch64/aarch64-sve-builtins-base.cc: Add else - handling. - * config/aarch64/aarch64-sve-builtins.cc (function_expander::use_contiguous_load_insn): - Ditto. - * config/aarch64/aarch64-sve-builtins.h: Add else operand to - contiguous load. - * config/aarch64/aarch64-sve.md (@aarch64_load - _): - Split and add else operand. - (@aarch64_load_): - Ditto. - (*aarch64_load__mov): - Ditto. - * config/aarch64/aarch64-sve2.md: Ditto. - * config/aarch64/iterators.md: Remove unused iterators. - * config/aarch64/predicates.md (aarch64_maskload_else_operand): - Add zero else operand. - -2024-11-18 Robin Dapp - - * optabs-query.cc (supports_vec_convert_optab_p): Return icode. - (get_supported_else_val): Return supported else value for - optab's operand at index. - (supports_vec_gather_load_p): Add else argument. - (supports_vec_scatter_store_p): Ditto. - * optabs-query.h (supports_vec_gather_load_p): Ditto. - (get_supported_else_val): Ditto. - * optabs-tree.cc (target_supports_mask_load_store_p): Ditto. - (can_vec_mask_load_store_p): Ditto. - (target_supports_len_load_store_p): Ditto. - (get_len_load_store_mode): Ditto. - * optabs-tree.h (target_supports_mask_load_store_p): Ditto. - (can_vec_mask_load_store_p): Ditto. - * tree-vect-data-refs.cc (vect_lanes_optab_supported_p): Ditto. - (vect_gather_scatter_fn_p): Ditto. - (vect_check_gather_scatter): Ditto. - (vect_load_lanes_supported): Ditto. - * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): - Ditto. - * tree-vect-slp.cc (vect_get_operand_map): Adjust indices for - else operand. - (vect_slp_analyze_node_operations): Skip undefined else operand. - * tree-vect-stmts.cc (exist_non_indexing_operands_for_use_p): - Add else operand handling. - (vect_get_vec_defs_for_operand): Handle undefined else operand. - (check_load_store_for_partial_vectors): Add else argument. - (vect_truncate_gather_scatter_offset): Ditto. - (vect_use_strided_gather_scatters_p): Ditto. - (get_group_load_store_type): Ditto. - (get_load_store_type): Ditto. - (vect_get_mask_load_else): Ditto. - (vect_get_else_val_from_tree): Ditto. - (vect_build_one_gather_load_call): Add zero else operand. - (vectorizable_load): Use else operand. - * tree-vectorizer.h (vect_gather_scatter_fn_p): Add else - argument. - (vect_load_lanes_supported): Ditto. - (vect_get_mask_load_else): Ditto. - (vect_get_else_val_from_tree): Ditto. - -2024-11-18 Robin Dapp - - * tree-if-conv.cc (predicate_load_or_store): Add zero else - operand and comment. - -2024-11-18 Robin Dapp - - * internal-fn.cc (add_mask_and_len_args): Rename... - (add_mask_else_and_len_args): ...to this and add else handling. - (expand_partial_load_optab_fn): Use adjusted function. - (expand_partial_store_optab_fn): Ditto. - (expand_scatter_store_optab_fn): Ditto. - (expand_gather_load_optab_fn): Ditto. - (internal_fn_len_index): Add else handling. - (internal_fn_else_index): Ditto. - (internal_fn_mask_index): Ditto. - (get_supported_else_vals): New function. - (supported_else_val_p): New function. - (internal_gather_scatter_fn_supported_p): Add else operand. - * internal-fn.h (internal_gather_scatter_fn_supported_p): Define - else constants. - (MASK_LOAD_ELSE_ZERO): Ditto. - (MASK_LOAD_ELSE_M1): Ditto. - (MASK_LOAD_ELSE_UNDEFINED): Ditto. - (get_supported_else_vals): Declare. - (supported_else_val_p): Ditto. - -2024-11-18 Robin Dapp - - * doc/md.texi: Document masked load else operand. - -2024-11-18 Andrew Pinski - - PR tree-optimization/117646 - * match.pd (`max==0`): Add casts to `unsigned type`. - -2024-11-18 Jeff Law - - * ext-dce.cc (maybe_clear_subreg_promoted_p): New function. - (ext_dce_execute): Call it. - -2024-11-18 Maciej W. Rozycki - - * config/alpha/alpha.md (unaligned_store): Remove stray - `;;'. - -2024-11-18 John David Anglin - - PR target/69374 - * doc/install.texi (Specific) : Update anchor - and heading to reflect removal of 32-bit hppa support on HP-UX. - Trim 32-bit related text. - -2024-11-17 Florian Weimer - - PR c/95445 - * doc/invoke.texi: Document -Wdeprecated-non-prototype. - -2024-11-17 Jason Merrill - - * doc/cppopts.texi: Document -fsearch-include-path. - * doc/invoke.texi: Mention it for modules. - -2024-11-17 Jan Hubicka - - * ipa-fnsummary.cc (find_necessary_statements): ASM statements are - necessary. - -2024-11-17 Jan Hubicka - - * ipa-modref.cc (modref_summary::useful_p): const/pure implies - determinism. - (modref_summary_lto::useful_p): Likewise. - (ignore_nondeterminism_p): Add CALLEE_FNTYPE parameter; check for - reproducible/unsequenced - (modref_access_analysis::record_access_p): Use ignore_nondeterminism_p - when handling volatile accesses. - (modref_access_analysis::get_access_for_fnspec): Update. - (modref_access_analysis::process_fnspec): Cleanup handling of NOVOPS. - (modref_access_analysis::analyze_call): Use ignore_nondeterminism_p - when handling asm statements. - (modref_access_analysis::analyze_stmt): Update. - (propagate_unknown_call): Update. - (modref_propagate_in_scc): Update. - (ipa_merge_modref_summary_after_inlining): Update. - -2024-11-16 Jan Hubicka - - * ipa-modref.cc (ipa_modref_callee_reads_no_memory_p): New function. - * ipa-modref.h (ipa_modref_callee_reads_no_memory_p): Declare - * tree-ssa-dce.cc (propagate_necessity): Use it. - -2024-11-16 Andrew Pinski - - PR tree-optimization/115275 - * match.pd (umax(a,b) ==/!= 0): New pattern. - -2024-11-16 Eikansh Gupta - - PR tree-optimization/109401 - * match.pd (min(a,b) op max(a,b) -> a op b): New pattern. - -2024-11-16 Georg-Johann Lay - - PR target/116781 - * config/avr/avr.md (*tablejump_split, *tablejump): Add - operand 2 as a "scratch_operand" instead of a match_dup. - (casesi): Adjust expander operands accordingly. Use a scratch:HI - when the jump address is not clobbered. This is the case for a - 2-byte PC + has no JMP instruction. In all the other cases, the - affected operand is REG_Z (reg:HI 30). - (casesi__sequence): Adjust matcher to new anatomy. - * config/avr/avr-passes.cc (avr_is_casesi_sequence) - (avr_is_casesi_sequence, avr_optimize_casesi) - (avr_casei_sequence_check_operands): Adjust to new anatomy. - -2024-11-16 Georg-Johann Lay - - PR target/117500 - * config/avr/avr.cc (avr_print_operand) [code = 'i']: Use - output_operand_lossage on bad operands instead of fatal_insn. - -2024-11-16 Georg-Johann Lay - - * config/avr/avr.md: Add a peephole2 that improves bit operations - with a lower register and a constant. - -2024-11-16 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) : Remove references - to HP/UX linker patch from 2004 and Binutils 2.14. - -2024-11-16 Richard Biener - - * params.opt (vect-force-slp): Default to 1. - -2024-11-16 Richard Biener - - PR tree-optimization/117606 - * tree-vect-stmts.cc (get_group_load_store_type): For single - element interleaving also fall back to VMAT_ELEMENTWISE if - a left-over permutation isn't supported. - -2024-11-16 Richard Biener - - PR tree-optimization/117605 - * tree-vect-stmts.cc (get_group_load_store_type): Also - apply group size limit for single-element interleaving - to VMAT_CONTIGUOUS_REVERSE. - -2024-11-16 Richard Biener - - PR tree-optimization/117558 - * tree-vectorizer.h (_loop_vec_info::must_use_partial_vectors_p): New. - (LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P): Likewise. - * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize - must_use_partial_vectors_p. - (vect_determine_partial_vectors_and_peeling): Enforce it. - (vect_analyze_loop_2): Reset before restarting. - * tree-vect-stmts.cc (get_group_load_store_type): When peeling - a single gap iteration cannot be determined safe statically - enforce the use of partial vectors. - -2024-11-16 Jan Hubicka - - PR tree-optimization/109442 - * ipa-fnsummary.cc (builtin_unreachable_bb_p): New function. - (guards_builtin_unreachable): New function. - (STMT_NECESSARY): New macro. - (mark_stmt_necessary): New function. - (mark_operand_necessary): New function. - (find_necessary_statements): New function. - (analyze_function_body): Use it. - -2024-11-15 Joseph Myers - - * doc/invoke.texi (-std=gnu17, -std=gnu23): Document -std=gnu23 as - default for C code. - -2024-11-15 Jennifer Schmitz - Richard Biener - - PR tree-optimization/117093 - * match.pd: Extend - (bit_insert @0 (BIT_FIELD_REF@2 @1 @rsize @rpos) @ipos) to allow - type differences between @0 and @1 due to view converts. - -2024-11-15 John David Anglin - - PR target/117564 - * config/pa/pa.md: Fix typos in 32-bit SFmode peephole2 patterns. - -2024-11-15 Joseph Myers - - PR c/117164 - * tree-nested.cc: Include "attribs.h". - (check_for_nested_with_variably_modified): Also return true for - variably modified return type. - (create_nesting_tree): If check_for_nested_with_variably_modified - returns true, also add noclone attribute. - -2024-11-15 Richard Biener - - * optabs-query.h (get_vcond_icode): Remove. - (get_vcond_eq_icode): Likewise. - * optabs-tree.h (expand_vec_cond_expr_p): Remove code - argument. - * optabs-tree.cc (expand_vec_cond_expr_p): Likewise. - (vcond_icode_p): Remove. - (vcond_eq_icode_p): Likewise. - * optabs.h (can_vcond_compare_p): Remove. - * optabs.cc (can_vcond_compare_p): Likewise. - -2024-11-15 Richard Biener - - * gimple-isel.cc (gimple_expand_vec_cond_expr): If not - simplifying or lowering, always expand to .VCOND_MASK. - (pass_gimple_isel::execute): Simplify. - -2024-11-15 Richard Biener - - * tree-vect-generic.cc (expand_vector_comparison): Lower - vector comparisons that we cannot trivially expand. Remove - code dealing with uses in VEC_COND_EXPRs. - (expand_vector_condition): Lower vector conditions that we - cannot trivially expand. Remove code dealing with comparison - mask definitions. - (expand_vector_operation): Drop dce_ssa_names. - (expand_vector_operations_1): Likewise. - -2024-11-15 Florian Weimer - - * doc/invoke.texi: Document Wmissing-parameter-name. - -2024-11-15 Florian Weimer - - * varasm.cc (get_section): Include name of section in - diagnostic messages. - -2024-11-15 Jakub Jelinek - - * tree-core.h (enum tree_index): Add TI_DFLOAT64X_TYPE. - * tree.h (dfloat64x_type_node): Define. - * tree.cc (build_common_tree_nodes): Initialize dfloat64x_type_node. - * builtin-types.def (BT_DFLOAT64X): New DEF_PRIMITIVE_TYPE. - (BT_FN_DFLOAT64X): New DEF_FUNCTION_TYPE_0. - (BT_FN_DFLOAT64X_CONST_STRING, BT_FN_DFLOAT64X_DFLOAT64X): New - DEF_FUNCTION_TYPE_1. - * builtins.def (BUILT_IN_FABSD64X, BUILT_IN_INFD64X, BUILT_IN_NAND64X, - BUILT_IN_NANSD64X): New builtins. - * builtins.cc (expand_builtin): Handle BUILT_IN_FABSD64X. - (fold_builtin_0): Handle BUILT_IN_INFD64X. - (fold_builtin_1): Handle BUILT_IN_FABSD64X. - * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NAND64X - and CFN_BUILT_IN_NANSD64X. - * ginclude/float.h (DEC64X_MANT_DIG, DEC64X_MIN_EXP, DEC64X_MAX_EXP, - DEC64X_MAX, DEC64X_EPSILON, DEC64X_MIN, DEC64X_TRUE_MIN, - DEC64X_SNAN): Redefine. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the - handlings of vector integer comparison. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the - handlings for operators GE/GEU/LE/LEU. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the - handlings for operator NE. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the - handlings for operators LT and LTU. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Remove. - (rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/ - GT/GTU directly. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Emit rtx - comparison for operators LT/UNGE of MODE_VECTOR_FLOAT directly. - (rs6000_emit_vector_compare): Move assertion of no MODE_VECTOR_FLOAT to - function beginning. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx - comparison for operators LE/UNGT of MODE_VECTOR_FLOAT directly. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx - comparison for operators NE/UNLE/UNLT of MODE_VECTOR_FLOAT directly. - -2024-11-15 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Move - MODE_VECTOR_FLOAT handlings out. - (rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/GT/ - GE/UNORDERED/ORDERED/UNEQ/LTGT of MODE_VECTOR_FLOAT directly, and - adjust one call site of rs6000_emit_vector_compare_inner to - rs6000_emit_vector_compare. - -2024-11-14 Jeff Law - - * config/riscv/vector.md (mov pattern/splitter): Fix type and - other attributes. - (mov_lra): Likewise. - -2024-11-14 Sam James - - * configure: Regenerate. - -2024-11-14 Denis Chertykov - - PR rtl-optimization/117191 - * lra-spills.cc (spill_pseudos): Mark a CLOBBER insn with pseudo - spilled to memory for removing it later together with LRA temporary - CLOBBER insns. - -2024-11-14 Martin Jambor - - PR ipa/114985 - * ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): New function. - (ipa_value_range_from_jfunc): Move the common functionality to the - above new function, adjust the rest so that it works with it well. - (propagate_vr_across_jump_function): Likewise. - -2024-11-14 Jan Hubicka - - * common.opt.urls: Fix. - -2024-11-14 Richard Ball - Yury Khrustalev - - * doc/extend.texi: Add AArch64 docs for indirect_return - attribute. - -2024-11-14 Szabolcs Nagy - Yury Khrustalev - - * config/aarch64/aarch64.cc (aarch64_gnu_attributes): Add - indirect_return. - (aarch64_gen_callee_cookie): Use indirect_return attribute. - (aarch64_callee_indirect_return): New. - (aarch_fun_is_indirect_return): New. - (aarch64_function_ok_for_sibcall): Disallow tail calls if caller - is non-indirect_return but callee is indirect_return. - (aarch64_function_arg): Add indirect_return to cookie. - (aarch64_init_cumulative_args): Record indirect_return in - CUMULATIVE_ARGS. - (aarch64_comp_type_attributes): Check indirect_return attribute. - (aarch64_output_mi_thunk): Add indirect_return to cookie. - * config/aarch64/aarch64.h (CUMULATIVE_ARGS): Add new field - indirect_return. - * config/aarch64/aarch64.md (tlsdesc_small_): Update. - * config/aarch64/aarch64-opts.h (AARCH64_NUM_ABI_ATTRIBUTES): New. - * config/aarch64/aarch64-protos.h (aarch64_gen_callee_cookie): Update. - * config/arm/aarch-bti-insert.cc (call_needs_bti_j): New. - (rest_of_insert_bti): Use call_needs_bti_j. - * config/arm/aarch-common-protos.h - (aarch_fun_is_indirect_return): New. - * config/arm/arm.cc - (aarch_fun_is_indirect_return): New. - -2024-11-14 Szabolcs Nagy - - * config/aarch64/aarch64.cc (GNU_PROPERTY_AARCH64_FEATURE_1_GCS): - Define. - (aarch64_file_end_indicate_exec_stack): Set GCS property bit. - -2024-11-14 Szabolcs Nagy - - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define - macros for GCS. - -2024-11-14 Szabolcs Nagy - - * config/aarch64/aarch64.h (STACK_SAVEAREA_MODE): Make space for gcs. - * config/aarch64/aarch64.md (save_stack_nonlocal): New. - (restore_stack_nonlocal): New. - * tree-nested.cc (get_nl_goto_field): Updated. - -2024-11-14 Yury Khrustalev - - * config/aarch64/arm_acle.h (__gcspr): New. - (__gcspopm): New. - (__gcsss): New. - -2024-11-14 Szabolcs Nagy - Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add - AARCH64_BUILTIN_GCSPR, AARCH64_BUILTIN_GCSPOPM, AARCH64_BUILTIN_GCSSS. - (aarch64_init_gcs_builtins): New. - (aarch64_general_init_builtins): Call aarch64_init_gcs_builtins. - (aarch64_expand_gcs_builtin): New. - (aarch64_general_expand_builtin): Call aarch64_expand_gcs_builtin. - -2024-11-14 Szabolcs Nagy - - * config/aarch64/aarch64.md (aarch64_load_gcspr): New. - (aarch64_gcspopm): New. - (aarch64_gcspopm_xzr): New. - (aarch64_gcsss1): New. - (aarch64_gcsss2): New. - Co-authored-by: Richard Sandiford - -2024-11-14 Yury Khrustalev - - * config/aarch64/arm_acle.h (__chkfeat): New. - -2024-11-14 Szabolcs Nagy - - * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): - Define AARCH64_BUILTIN_CHKFEAT. - (aarch64_general_init_builtins): Handle chkfeat. - (aarch64_general_expand_builtin): Handle chkfeat. - Co-authored-by: Richard Sandiford - -2024-11-14 Szabolcs Nagy - - * config/aarch64/aarch64.md (aarch64_chkfeat): New. - -2024-11-14 Szabolcs Nagy - - * config/aarch64/aarch64-protos.h (aarch_gcs_enabled): Declare. - * config/aarch64/aarch64.cc (aarch_gcs_enabled): Define. - (aarch_handle_no_branch_protection): Handle gcs. - (aarch_handle_standard_branch_protection): Handle gcs. - (aarch_handle_gcs_protection): New. - * config/aarch64/aarch64.opt: Add aarch_enable_gcs. - * configure: Regenerate. - * configure.ac: Handle gcs in --enable-standard-branch-protection. - * doc/invoke.texi: Document -mbranch-protection=gcs. - -2024-11-14 Jan Hubicka - - PR tree-optimization/117370 - * common.opt: Add -fmalloc-dce. - * common.opt.urls: Update. - * doc/invoke.texi: Document it; also add missing -flifetime-dse entry. - * tree-ssa-dce.cc (is_removable_allocation_p): Break out from - ... - (mark_stmt_if_obviously_necessary): ... here; also check that - operator new satisfies gimple_call_from_new_or_delete. - (checks_return_value_of_removable_allocation_p): New Function. - (mark_all_reaching_defs_necessary_1): add missing case for - STRDUP and STRNDUP - (propagate_necessity): Use is_removable_allocation_p and - checks_return_value_of_removable_allocation_p. - (eliminate_unnecessary_stmts): Update conditionals that use - removed allocation; use is_removable_allocation_p. - -2024-11-14 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Do not - exempt cpart_size == cnunits from failing. - -2024-11-14 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Add missing - braces. - -2024-11-14 Martin Jambor - - * ipa-prop.h (ipa_dump_jump_function): Declare. - * ipa-prop.cc (ipa_dump_jump_function): New function. - (ipa_print_node_jump_functions_for_edge): Move printing of - individual jump functions to the new function. - -2024-11-14 Martin Jambor - - * ipa-prop.h (ipa_print_constant_value): Declare. - * ipa-prop.cc (ipa_print_constant_value): Make public. - * ipa-cp.cc (print_ipcp_constant_value): Re-add this overloaded - function for printing tree constants. - -2024-11-14 Richard Biener - - * tree-vect-generic.cc (expand_vector_divmod): Query vector - comparison and vec_cond_mask capability. - -2024-11-14 Richard Biener - - * tree-vect-stmts.cc (vectorizable_condition): Refactor - target support check. - -2024-11-14 Richard Biener - - PR tree-optimization/117567 - * tree-vect-slp.cc (vect_build_slp_tree_2): Handle not present - lanes when doing re-association. - -2024-11-14 Andrew Pinski - - * cfgexpand.cc (add_scope_conflicts): Return right away - if there are only one stack variable. - -2024-11-14 Eikansh Gupta - - PR tree-optimization/109906 - * match.pd (a rrotate (32-b) -> a lrotate b): New pattern - (a lrotate (32-b) -> a rrotate b): New pattern - -2024-11-14 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): For - VMAT_ELEMENTWISE there's no overrun. - -2024-11-14 Richard Biener - - PR tree-optimization/117554 - * tree-vect-stmts.cc (get_group_load_store_type): We can - use gather/scatter only for a single-lane single element group - access. - -2024-11-14 Richard Biener - - PR tree-optimization/117559 - * tree-vect-slp.cc (vect_mark_slp_stmts): Pass in vinfo, - mark all mask defs of a load/store-lane .MASK_LOAD/STORE - as pure. - (vect_make_slp_decision): Adjust. - (vect_slp_analyze_bb_1): Likewise. - -2024-11-14 Richard Biener - - PR tree-optimization/117556 - PR tree-optimization/117553 - * tree-vect-stmts.cc (vect_analyze_stmt): Do not analyze - the SLP load-lanes node for live lanes, but only the - permute node. - (vect_transform_stmt): Likewise for the transform. - -2024-11-14 Hongyu Wang - - PR target/117495 - * config/i386/i386.md (cstorebf4): Use ix86_fp_comparison_operator - and calls ix86_expand_setcc directly. - -2024-11-13 Jin Ma - - PR target/116591 - * config/riscv/vector.md: Add restriction to call pred_th_whole_mov. - -2024-11-13 Richard Sandiford - - * config/aarch64/aarch64-protos.h - (aarch64_required_extensions::common_denominator): New member - function. - * config/aarch64/aarch64-sve-builtins-base.def: Remove zero-variant - entry for mmla. - * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): Remove - support for it. - * config/aarch64/aarch64-sve-builtins.cc - (function_builder::add_overloaded): Relax the assert for duplicate - definitions and instead calculate the common denominator of all - requirements. - -2024-11-13 Filip Kastl - - PR target/56504 - * config/i386/i386-options.cc (ix86_option_override_internal): - Add ix86_veclibabi_type_aocl case. - * config/i386/i386-options.h (ix86_veclibabi_aocl): Add extern - ix86_veclibabi_aocl(). - * config/i386/i386-opts.h (enum ix86_veclibabi): Add - ix86_veclibabi_type_aocl into the ix86_veclibabi enum. - * config/i386/i386.cc (ix86_veclibabi_aocl): New function. - * config/i386/i386.opt: Add the 'aocl' type. - * doc/invoke.texi: Document -mveclibabi=aocl. - -2024-11-13 John David Anglin - - PR target/117525 - * config/pa/pa.md (fix_truncsfsi2): Remove inner `fix:SF`. - (fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2, - fixuns_truncsfsi2, fixuns_truncdfsi2, fixuns_truncsfdi2, - fixuns_truncdfdi2): Likewise. - -2024-11-13 David Malcolm - - * diagnostic-path.cc (diagnostic_event::get_desc): Add param - "ref_pp" and use instead of global_dc. - (class path_label): Likewise, adding field m_ref_pp. - (event_range::event_range): Add param "ref_pp" and pass to - m_path_label. - (path_summary::path_summary): Add param "ref_pp" and pass to - event_range ctor. - (diagnostic_text_output_format::print_path): Pass *pp to - path_summary ctor. - (selftest::test_empty_path): Pass *event_pp to pass_summary ctor. - (selftest::test_intraprocedural_path): Likewise. - (selftest::test_interprocedural_path_1): Likewise. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - (selftest::test_control_flow_1): Likewise. - (selftest::test_control_flow_2): Likewise. - (selftest::test_control_flow_3): Likewise. - (selftest::assert_cfg_edge_path_streq): Likewise. - (selftest::test_control_flow_5): Likewise. - (selftest::test_control_flow_6): Likewise. - * diagnostic-path.h (diagnostic_event::get_desc): Add param - "ref_pp". - * lazy-diagnostic-path.cc (selftest::test_intraprocedural_path): - Pass *event_pp to get_desc. - * simple-diagnostic-path.cc (selftest::test_intraprocedural_path): - Likewise. - -2024-11-13 Soumya AR - - PR target/57492 - * match.pd: Added patterns to fold calls to pow to ldexp and optimize - specific ldexp calls. - -2024-11-13 Yangyu Chen - - * config/riscv/riscv.cc (add_condition_to_bb): New function. - (dispatch_function_versions): New function. - (get_suffixed_assembler_name): New function. - (make_resolver_func): New function. - (riscv_generate_version_dispatcher_body): New function. - (riscv_get_function_versions_dispatcher): New function. - (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Implement it. - (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Implement it. - -2024-11-13 Yangyu Chen - - * config/riscv/riscv.cc - (riscv_mangle_decl_assembler_name): New function. - (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define. - -2024-11-13 Yangyu Chen - - * config/riscv/riscv.cc - (parse_features_for_version): New function. - (compare_fmv_features): New function. - (riscv_compare_version_priority): New function. - (riscv_common_function_versions): New function. - (TARGET_COMPARE_VERSION_PRIORITY): Implement it. - (TARGET_OPTION_FUNCTION_VERSIONS): Implement it. - -2024-11-13 Yangyu Chen - - * config/riscv/riscv-protos.h - (riscv_process_target_attr): Remove as it is not used. - (riscv_option_valid_version_attribute_p): Declare. - (riscv_process_target_version_attr): Declare. - * config/riscv/riscv-target-attr.cc - (riscv_target_attrs): Renamed from riscv_attributes. - (riscv_target_version_attrs): New attributes for target_version. - (riscv_process_one_target_attr): New arguments to select attrs. - (riscv_process_target_attr): Likewise. - (riscv_option_valid_attribute_p): Likewise. - (riscv_process_target_version_attr): New function. - (riscv_option_valid_version_attribute_p): New function. - * config/riscv/riscv.cc - (TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P): Implement it. - * config/riscv/riscv.h (TARGET_HAS_FMV_TARGET_ATTRIBUTE): Define - it to 0 to use "target_version" for function versioning. - -2024-11-13 Yangyu Chen - - * common/config/riscv/riscv-common.cc - (RISCV_EXT_BITMASK): New macro. - (struct riscv_ext_bitmask_table_t): New struct. - (riscv_minimal_hwprobe_feature_bits): New function. - * common/config/riscv/riscv-ext-bitmask.def: New file. - * config/riscv/riscv-subset.h (GCC_RISCV_SUBSET_H): Include - riscv-feature-bits.h. - (riscv_minimal_hwprobe_feature_bits): Declare the function. - * config/riscv/riscv-feature-bits.h: New file. - -2024-11-13 Yangyu Chen - - * config/riscv/riscv-target-attr.cc - (riscv_target_attr_parser::handle_priority): New function. - (riscv_target_attr_parser::update_settings): Update priority - attribute. - * config/riscv/riscv.opt: Add TargetVariable riscv_fmv_priority. - -2024-11-13 Yangyu Chen - - * defaults.h (TARGET_CLONES_ATTR_SEPARATOR): Define new macro. - * multiple_target.cc (get_attr_str): Use - TARGET_CLONES_ATTR_SEPARATOR to separate attributes. - (separate_attrs): Likewise. - (expand_target_clones): Likewise. - * attribs.cc (attr_strcmp): Likewise. - (sorted_attr_string): Likewise. - * tree.cc (get_target_clone_attr_len): Likewise. - * config/riscv/riscv.h (TARGET_CLONES_ATTR_SEPARATOR): Define - TARGET_CLONES_ATTR_SEPARATOR for RISC-V. - * doc/tm.texi: Document TARGET_CLONES_ATTR_SEPARATOR. - * doc/tm.texi.in: Likewise. - -2024-11-13 Martin Uecker - - PR c/117059 - * doc/invoke.texi (Wzero-as-null-pointer-constant): Adapt - description. - -2024-11-13 Soumya AR - - PR target/111733 - * config/aarch64/aarch64-sve.md - (ldexp3): Added a new pattern to match ldexp calls with scalar - floating modes and expand to the existing pattern for FSCALE. - * config/aarch64/iterators.md: - (SVE_FULL_F_SCALAR): Added an iterator to match all FP SVE modes as well - as their scalar equivalents. - (VPRED): Extended the attribute to handle GPF_HF modes. - * internal-fn.def (LDEXP): Changed macro to incorporate ldexpf16. - -2024-11-13 xuli - - PR target/117483 - * config/riscv/riscv-vsetvl.cc: Fix bug. - -2024-11-13 Co-authored-by: Jeff Law - - * config/riscv/riscv.cc (riscv_rtx_costs): Correct costing of LO_SUM - expressions. - -2024-11-13 Hu, Lin1 - - PR target/117418 - * config/i386/i386-expand.cc (ix86_expand_builtin): Convert - pointer's mode according to Pmode. - -2024-11-13 Jeff Law - - Revert: - 2024-11-06 Alexey Merzlyakov - - PR rtl-optimization/112398 - * simplify-rtx.cc (simplify_context::simplify_unary_operation_1): - Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG)) - when X doesn't have any non-zero bits outside of SUBREG mode. - -2024-11-12 Pan Li - - Revert: - 2024-10-25 Pan Li - - * match.pd: Remove unsigned branch form 3 for SAT_ADD, and - add simplify to branchless instead. - -2024-11-12 David Malcolm - - PR bootstrap/117503 - * Makefile.in (GCC_FOR_SELFTESTS): Set GCC_COLORS=. - -2024-11-12 John David Anglin - - * config/pa/pa.md (decrement_and_branch_until_zero): Fix - constraint. - -2024-11-12 Wilco Dijkstra - - * config/aarch64/tuning_models/cortexx925.h (cortexx925_addrcost_table): Remove. - * config/aarch64/tuning_models/neoversen1.h: Use generic_armv8_a_addrcost_table. - * config/aarch64/tuning_models/neoversen2.h (neoversen2_addrcost_table): Remove. - * config/aarch64/tuning_models/neoversen3.h (neoversen3_addrcost_table): Remove. - * config/aarch64/tuning_models/neoversev2.h (neoversev2_addrcost_table): Remove. - * config/aarch64/tuning_models/neoversev3.h (neoversev3_addrcost_table): Remove. - * config/aarch64/tuning_models/neoversev3ae.h (neoversev3ae_addrcost_table): Remove. - -2024-11-12 Wilco Dijkstra - - * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSE_BASE): New define. - (AARCH64_FUSE_MOVK): Likewise. - * config/aarch64/tuning_models/a64fx.h: Update. - * config/aarch64/tuning_models/ampere1.h: Likewise. - * config/aarch64/tuning_models/ampere1a.h: Likewise. - * config/aarch64/tuning_models/ampere1b.h: Likewise. - * config/aarch64/tuning_models/cortexa35.h: Likewise. - * config/aarch64/tuning_models/cortexa53.h: Likewise. - * config/aarch64/tuning_models/cortexa57.h: Likewise. - * config/aarch64/tuning_models/cortexa72.h: Likewise. - * config/aarch64/tuning_models/cortexa73.h: Likewise. - * config/aarch64/tuning_models/cortexx925.h: Likewise. - * config/aarch64/tuning_models/exynosm1.h: Likewise. - * config/aarch64/tuning_models/fujitsu_monaka.h: Likewise. - * config/aarch64/tuning_models/generic.h: Likewise. - * config/aarch64/tuning_models/generic_armv8_a.h: Likewise. - * config/aarch64/tuning_models/generic_armv9_a.h: Likewise. - * config/aarch64/tuning_models/neoverse512tvb.h: Likewise. - * config/aarch64/tuning_models/neoversen1.h: Likewise. - * config/aarch64/tuning_models/neoversen2.h: Likewise. - * config/aarch64/tuning_models/neoversen3.h: Likewise. - * config/aarch64/tuning_models/neoversev1.h: Likewise. - * config/aarch64/tuning_models/neoversev2.h: Likewise. - * config/aarch64/tuning_models/neoversev3.h: Likewise. - * config/aarch64/tuning_models/neoversev3ae.h: Likewise. - * config/aarch64/tuning_models/qdf24xx.h: Likewise. - * config/aarch64/tuning_models/saphira.h: Likewise. - * config/aarch64/tuning_models/thunderx2t99.h: Likewise. - * config/aarch64/tuning_models/thunderx3t110.h: Likewise. - * config/aarch64/tuning_models/tsv110.h: Likewise. - -2024-11-12 yulong - - * config/riscv/riscv.cc (riscv_declare_function_name): Add new - attribute. - -2024-11-12 Jeff Law - - * config/riscv/vector.md (pred_mul_plus_undef): Drop alternatives - where output doesn't have to match input. - (pred_madd, pred_macc): Likewise. - (pred_madd_scalar, pred_macc_scalar): Likewise. - (pred_madd_exended_scalar): Likewise. - (pred_macc_exended_scalar): Likewise. - (pred_minus_mul_undef): Likewise. - (pred_nmsub, pred_nmsac): Likewise. - (pred_nmsub_scalar, pred_nmsac_scalar): Likewise. - (pred_nmsub_exended_scalar): Likewise. - (pred_nmsac_exended_scalar): Likewise. - -2024-11-12 Richard Biener - - PR tree-optimization/116973 - * tree-vect-slp.cc (vect_lower_load_permutations): Add - force_single_lane parameter. Disable heuristic that keeps - some load-permutations. - (vect_analyze_slp): Pass force_single_lane to - vect_lower_load_permutations. - -2024-11-12 Jeff Law - - * config/c6x/c6x.md (nop, nop_count): Add explicit - "dest_regfile" attribute setting. - -2024-11-12 Richard Biener - - PR tree-optimization/117417 - * tree-ssa-forwprop.cc (pass_forwprop::execute): Avoid - decomposing BIT_FIELD_REF complex load. - -2024-11-12 Tejas Belagod - - * rtlanal.cc (set_noop_p): Validate subreg constraints before checking - for overlapping regs using simplify_subreg_regno. - -2024-11-12 Richard Biener - - * config/i386/i386.cc (ix86_vector_costs::finish_cost): Set - m_suggested_epilogue_mode according to X86_TUNE_AVX512_TWO_EPILOGUES. - * config/i386/x86-tune.def (X86_TUNE_AVX512_TWO_EPILOGUES): Add. - Enable for znver4 and znver5. - -2024-11-12 Richard Biener - - * tree-vectorizer.h (vector_costs::suggested_epilogue_mode): New. - (vector_costs::m_suggested_epilogue_mode): Likewise. - (vector_costs::vector_costs): Initialize m_suggested_epilogue_mode. - * tree-vect-loop.cc (vect_analyze_loop): Honor the target - suggested prefered epilogue mode and support vector epilogues - of vector epilogues if requested. - -2024-11-12 Richard Biener - - PR tree-optimization/117484 - * tree-vect-slp.cc (vect_build_slp_tree_2): Handle gaps in - mask discovery. Fix condition to release the load permutation. - (vect_lower_load_permutations): Assert we get no load - permutation for the unpermuted node. - * tree-vect-slp-patterns.cc (linear_loads_p): Properly identify - loads (without permutation). - (compatible_complex_nodes_p): Likewise. - -2024-11-12 Richard Biener - - PR tree-optimization/117502 - * tree-vect-stmts.cc (get_group_load_store_type): Also consider - VMAT_STRIDED_SLP when checking to use gather/scatter for - single-element interleaving access. - * tree-vect-loop.cc (update_epilogue_loop_vinfo): STMT_VINFO_STRIDED_P - can be classified as VMAT_GATHER_SCATTER, so update DR_REF for - those as well. - -2024-11-12 Soumya AR - - * match.pd: Fold logN(x) CMP CST -> x CMP expN(CST) - and expN(x) CMP CST -> x CMP logN(CST) - -2024-11-11 Jason Merrill - - * doc/invoke.texi: Rename -fmodules-ts to -fmodules. - -2024-11-11 Jason Merrill - - * opts.h (cl_deferred_option::value): Change to HOST_WIDE_INT. - (set_option): Change opt_index parm to size_t. - * opts-common.cc (set_option): Likewise. - -2024-11-11 Jakub Jelinek - - * doc/extend.texi (New/Delete Builtins): Document - __builtin_operator_new and __builtin_operator_delete. - -2024-11-11 Claudio Bantaloukas - - * config/aarch64/aarch64.cc - (aarch64_vfp_is_call_or_return_candidate): use fp registers to - return svmfloat8_t parameters. - -2024-11-11 Richard Biener - - * tree-vect-slp.cc (arg1_arg3_map): New. - (arg1_arg3_arg4_map): Likewise. - (vect_get_operand_map): Handle IFN_SCATTER_STORE, - IFN_MASK_SCATTER_STORE and IFN_MASK_LEN_SCATTER_STORE. - (vect_build_slp_tree_1): Likewise. - * tree-vect-stmts.cc (vectorizable_store): For SLP masked - gather/scatter record the mask with proper number of copies. - * tree-vect-loop.cc (vectorizable_recurr): Avoid costing - the initial value construction in the prologue twice with SLP. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Handle - __ARM_FEATURE_SVE2p1. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-modes.def (VNx1SI, VNx1DI): New modes. - * config/aarch64/aarch64-sve-builtins-base.cc - (svdup_lane_impl::expand): Update generation of TBL instruction. - (svtbl_impl): Delete. - (svtbl): Use unspec_based_uncond_function instead. - * config/aarch64/aarch64-sve-builtins-functions.h - (permute::fold_permute): Handle trailing immediate arguments. - * config/aarch64/aarch64-sve-builtins-shapes.h (extq): Declare. - (load_gather64_sv_index, load_gather64_sv_offset): Likewise. - (load_gather64_vs_index, load_gather64_vs_offset): Likewise. - (pmov_from_vector, pmov_from_vector_lane, pmov_to_vector_lane) - (reduction_neonq, store_scatter64_index, store_scatter64_offset) - (unary_lane): Likewise. - * config/aarch64/aarch64-sve-builtins-shapes.cc - (load_gather64_sv_base, store_scatter64_base): New classes. - (extq_def, ext): New shape. - (load_gather64_sv_index_def, load_gather64_sv_index): Likewise. - (load_gather64_sv_offset_def, load_gather64_sv_offset): Likewise. - (load_gather64_vs_index_def, load_gather64_vs_index): Likewise. - (load_gather64_vs_offset_def, load_gather64_vs_offset): Likewise. - (pmov_from_vector_def, pmov_from_vector): Likewise. - (pmov_from_vector_lane_def, pmov_from_vector_lane): Likewise. - (pmov_to_vector_lane_def, pmov_to_vector_lane): Likewise. - (reduction_neonq_def, reduction_neonq): Likewise. - (store_scatter64_index_def, store_scatter64_index): Likewise. - (store_scatter64_offset_def, store_scatter64_offset): Likewise. - (unary_lane_def, unary_lane): Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.h (svaddqv, svandqv) - (svdup_laneq, sveorqv, svextq, svld1q_gather, svld1udq, svld1uwq) - (svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv, svminnmqv, svminqv) - (svorqv, svpmov, svpmov_lane, svst1qd, svst1q_scatter, svst1wq) - (svst2q, svst3q, svst4q, svtblq, svtbx, svtbxq, svuzpq1, svuzpq2) - (svzipq1, svzipq2): Declare. - * config/aarch64/aarch64-sve-builtins-sve2.cc (ld1uxq_st1xq_base) - (ld234q_st234q_base, svdup_laneq_impl, svextq_impl): New classes. - (svld1q_gather_impl, svld1uxq_impl, svld234q_impl): Likewise. - (svpmov_impl, svpmov_lane_impl, svst1q_scatter_impl): Likewise. - (svst1xq_impl, svst234q_impl, svuzpq_impl, svzipq_impl): Likewise. - (svaddqv, svandqv, svdup_laneq, sveorqv, svextq, svld1q_gather) - (svld1udq, svld1uwq, svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv) - (svminnmqv, svminqv, svorqv, svpmov, svpmov_lane, svst1qd) - (svst1q_scatter, svst1wq, svst2q, svst3q, svst4q, svtblq, svtbx) - (svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2): New function entries. - * config/aarch64/aarch64-sve-builtins-sve2.def (svaddqv, svandqv) - (svdup_laneq, sveorqv, svextq, svld2q, svld3q, svld4q, svmaxnmqv) - (svmaxqv, svminnmqv, svminqv, svorqv, svpmov, svpmov_lanes, vst2q) - (svst3q, svst4q, svtblq, svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2) - (svld1q_gather, svld1udq, svld1uwq, svst1dq, svst1q_scatter) - (svst1wq): New function definitions. - * config/aarch64/aarch64-sve-builtins.cc (TYPES_hsd_data) - (hsd_data, s_data): New type lists. - (function_resolver::infer_pointer_type): Give a specific error about - passing a pointer to 8-bit elements to an _index function. - (function_resolver::resolve_sv_displacement): Check whether the - function allows 32-bit bases. - * config/aarch64/iterators.md (UNSPEC_TBLQ, UNSPEC_TBXQ): New unspecs. - (UNSPEC_ADDQV, UNSPEC_ANDQV, UNSPEC_DUPQ, UNSPEC_EORQV, UNSPEC_EXTQ) - (UNSPEC_FADDQV, UNSPEC_FMAXQV, UNSPEC_FMAXNMQV, UNSPEC_FMINQV) - (UNSPEC_FMINNMQV, UNSPEC_LD1_EXTENDQ, UNSPEC_LD1Q_GATHER): Likewise. - (UNSPEC_LDNQ, UNSPEC_ORQV, UNSPEC_PMOV_PACK, UNSPEC_PMOV_PACK_LANE) - (UNSPEC_PMOV_UNPACK, UNSPEC_PMOV_UNPACK_LANE, UNSPEC_SMAXQV): Likewise. - (UNSPEC_SMINQV, UNSPEC_ST1_TRUNCQ, UNSPEC_ST1Q_SCATTER, UNSPEC_STNQ) - (UNSPEC_UMAXQV, UNSPEC_UMINQV, UNSPEC_UZPQ1, UNSPEC_UZPQ2): Likewise. - (UNSPEC_ZIPQ1, UNSPEC_ZIPQ2): Likewise. - (Vtype): Handle single-vector SVE modes. - (Vendreg): Handle SVE structure modes. - (VNxTI, LD1_EXTENDQ_MEM): New mode attributes. - (SVE_PERMUTE, SVE_TBL, SVE_TBX): New int iterators. - (SVE_INT_REDUCTION_128, SVE_FP_REDUCTION_128): Likewise. - (optab): Handle the new SVE2.1 reductions. - (perm_insn): Handle the new SVE2.1 permutations. - * config/aarch64/aarch64-sve.md - (@aarch64_sve_tbl): Generalize to... - (@aarch64_sve_): ...this. - (@aarch64_sve_): Generalize to... - (@aarch64_sve_): ...this. - * config/aarch64/aarch64-sve2.md (@aarch64_pmov_to_) - (@aarch64_pmov_lane_to_, @aarch64_pmov_from_) - (@aarch64_pmov_lane_from_, @aarch64_sve_ld1_extendq) - (@aarch64_sve_ldnq, aarch64_gather_ld1q): New patterns. - (@aarch64_sve_st1_truncq, @aarch64_sve_stnq): Likewise. - (aarch64_scatter_st1q, @aarch64_pred_reduc__): Likewise. - (@aarch64_sve_dupq, @aarch64_sve_extq): Likewise. - (@aarch64_sve2_tbx): Generalize to... - (@aarch64_sve_): ...this. - * config/aarch64/aarch64.cc - (aarch64_classify_vector_memory_mode): New function. - (aarch64_regmode_natural_size): Use it. - (aarch64_classify_index): Likewise. - (aarch64_classify_address): Likewise. - (aarch64_print_address_internal): Likewise. - (aarch64_evpc_hvla): New function. - (aarch64_expand_vec_perm_const_1): Use it. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64.h (TARGET_SVE2p1_OR_SME2): New macro. - * config/aarch64/aarch64-early-ra.cc - (is_stride_candidate): Require TARGET_STREAMING_SME2 - (early_ra::maybe_convert_to_strided_access): Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.def: Mark instructions - that are common to both SVE2p1 and SME2. - * config/aarch64/aarch64-sve.md - (@aarch64_dot_prod_lane): - Test TARGET_SVE2p1_OR_SME2 instead of TARGET_STREAMING_SME2. - (@aarch64_sve_vnx4sf): Move TARGET_SVE_BF16 condition - into SVE_BFLOAT_TERNARY_LONG. - (@aarch64_sve__lanevnx4sf): Likewise - SVE_BFLOAT_TERNARY_LONG_LANE. - * config/aarch64/aarch64-sve2.md - (@aarch64_): Require TARGET_SVE2p1_OR_SME2 - instead of TARGET_STREAMING_SME2. - (@aarch64_): Likewise. - (@aarch64_sve_ptrue_c): Likewise. - (@aarch64_sve_pext): Likewise. - (@aarch64_sve_pextx2): Likewise. - (@aarch64_sve_cntp_c): Likewise. - (@aarch64_sve_fclamp): Likewise. - (*aarch64_sve_fclamp_x): Likewise. - (dot_prodvnx4sivnx8hi): Likewise. - (aarch64_sve_fdotvnx4sfvnx8hf): Likewise. - (aarch64_fdot_prod_lanevnx4sfvnx8hf): Likewise. - (@aarch64_sve_while_b_x2): Likewise. - (@aarch64_sve_while_c): Likewise. - (@aarch64_sve_): Move - TARGET_STREAMING_SME2 condition into SVE_QCVTxN. - (@aarch64_sve_): Likewise - SVE2_INT_SHIFT_IMM_NARROWxN, but also require TARGET_STREAMING_SME2 - for the 4-register forms. - * config/aarch64/iterators.md (SVE_BFLOAT_TERNARY_LONG): Require - TARGET_SVE2p1_OR_SME2 rather than TARGET_STREAMING_SME2 for - UNSPEC_BFMLSLB and UNSPEC_BFMLSLT. Require TARGET_SVE_BF16 - for the others. - (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise. - (SVE2_INT_SHIFT_IMM_NARROWxN): Require TARGET_SVE2p1_OR_SME2 for - the interleaving forms and TARGET_STREAMING_SME2 for the rest. - (SVE_QCVTxN): Likewise. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-option-extensions.def (sve2p1): New extension. - * doc/invoke.texi (sve2p1): Document it. - * config/aarch64/aarch64-sve-builtins-sve2.def: Mark instructions - that are common to both SVE2p1 and SME. - * config/aarch64/aarch64.h (TARGET_SVE2p1): New macro. - (TARGET_SVE2p1_OR_SME): Likewise. - * config/aarch64/aarch64-sve2.md - (@aarch64_sve_psel): Require TARGET_SVE2p1_OR_SME - instead of TARGET_STREAMING. - (*aarch64_sve_psel_plus): Likewise. - (@aarch64_sve_clamp): Likewise. - (*aarch64_sve_clamp_x): Likewise. - (@aarch64_pred_): Likewise. - (@cond_): Likewise. - -2024-11-11 Richard Sandiford - - * config.gcc (extra_headers): Add arm_private_neon_types.h. - * config/aarch64/arm_private_neon_types.h: New file, split out - from... - * config/aarch64/arm_neon.h: ...here. - * config/aarch64/arm_sve.h: Include arm_private_neon_types.h - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-modes.def (VNx64BI): New mode. - * config/aarch64/aarch64-protos.h - (aarch64_split_double_move): Generalize to... - (aarch64_split_move): ...this. - * config/aarch64/aarch64-sve-builtins-base.def (svcreate4, svget4) - (svset4, svundef4): Add bool variants. - * config/aarch64/aarch64-sve-builtins.cc (handle_arm_sve_h): Add - svboolx4_t. - * config/aarch64/iterators.md (SVE_STRUCT_BI): New mode iterator. - * config/aarch64/aarch64-sve.md (movvnx32bi): Generalize to... - (mov): ...this. - * config/aarch64/aarch64.cc - (pure_scalable_type_info::piece::get_rtx): Allow num_prs to be 4. - (aarch64_classify_vector_mode): Handle VNx64BI. - (aarch64_hard_regno_nregs): Likewise. - (aarch64_class_max_nregs): Likewise. - (aarch64_array_mode): Use VNx64BI for arrays of 4 svbool_ts. - (aarch64_split_double_move): Generalize to... - (aarch64_split_move): ...this. - (aarch64_split_128bit_move): Update call accordingly. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins-sve2.def: Sort entries - alphabetically. - * config/aarch64/aarch64-sve-builtins-sve2.h: Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins-shapes.cc (ext_base): New base - class, extracted from... - (ext_def): ...here. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins.h - (function_resolver::target_type_restrictions): New enum. - (function_resolver::infer_pointer_type): Add an extra argument - that specifies what the target type can be. - * config/aarch64/aarch64-sve-builtins.cc - (function_resolver::infer_pointer_type): Likewise. - * config/aarch64/aarch64-sve-builtins-shapes.cc - (load_gather_sv_base::get_target_type_restrictions): New virtual - member function. - (load_gather_sv_base::resolve): Use it. Update call to - infer_pointer_type. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins-shapes.cc - (store_scatter_base::infer_vector_type): New virtual member function. - (store_scatter_base::resolve): Use it. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins.h - (function_shape::vector_base_type): New member function. - * config/aarch64/aarch64-sve-builtins.cc - (function_shape::vector_base_type): Likewise. - (function_resolver::resolve_sv_displacement): Use it. - (function_resolver::resolve_gather_address): Likewise. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sve.md (@aarch64_sve_tbl): Wrap - the second operand in braces. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_data): Redefine - in terms of single-size *_data definitions. - (TYPES_bhs_data, TYPES_hs_data, TYPES_sd_data): Likewise. - (TYPES_b_data, TYPES_h_data, TYPES_s_data): New macros. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64.h (TARGET_SME): Expand comment. - (TARGET_STREAMING_SME): Delete. - * config/aarch64/aarch64-sme.md: Use TARGET_STREAMING instead of - TARGET_STREAMING_SME. - * config/aarch64/aarch64-sve2.md: Likewise. - -2024-11-11 Richard Sandiford - - * config/aarch64/aarch64-sme.md: Use TARGET_STREAMING_SME2 - instead of separate TARGET_STREAMING and TARGET_SME2 tests. - * config/aarch64/aarch64-sve2.md: Likewise. - * config/aarch64/iterators.md: Likewise. - -2024-11-11 Richard Sandiford - - * function.h (push_function_decl, pop_function_decl): Declare. - * function.cc (set_function_decl): New function, extracted from... - (set_cfun): ...here. - (push_function_decl): New function, extracted from... - (push_cfun): ...here. - (pop_cfun_1): New function, extracted from... - (pop_cfun): ...here. - (pop_function_decl): New function. - -2024-11-11 Richard Biener - - PR tree-optimization/117510 - * tree-ssa-loop-unswitch.cc (find_loop_guard): Only check - not skipped blocks for side-effects. - -2024-11-11 Pan Li - - * config/riscv/autovec.md: Fix indent format issue. - -2024-11-11 Sam James - - PR other/116948 - * doc/install.texi (Building a native compiler): Document UBSAN_OPTIONS. - -2024-11-11 Sam James - - PR other/116948 - * doc/install.texi (Building a native compiler): Mention bootstrap-ubsan. - -2024-11-11 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.md (*extzvsi-1bit_addsubx): - Add '&' to the destination register constraint to indicate that - it is 'earlyclobber', append '0' to the first source register - constraint to indicate that it can be the same as the destination - register, and change the split condition from 1 to reload_completed - so that the insn will be split only after RA in order to obtain - allocated registers that satisfy the above constraints. - -2024-11-11 Haochen Jiang - - * common/config/i386/cpuinfo.h - (get_intel_cpu): Handle Diamond Rapids. - * common/config/i386/i386-common.cc (processor_name): - Add Diamond Rapids. - (processor_alias_table): Ditto. - * common/config/i386/i386-cpuinfo.h (enum processor_types): - Add INTEL_COREI7_DIAMONDRAPIDS. - * config.gcc: Add -march=diamondrapids. - * config/i386/driver-i386.cc (host_detect_local_cpu): Handle - diamondrapids. - * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto. - * config/i386/i386-options.cc (processor_cost_table): Ditto. - (m_DIAMONDRAPIDS): New. - (m_CORE_AVX512): Add diamondrapids. - * config/i386/i386.h (enum processor_type): Ditto. - * doc/extend.texi: Ditto. - * doc/invoke.texi: Ditto. - -2024-11-11 Haochen Jiang - - * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model - number for Arrow Lake. - -2024-11-11 liuhongt - - * config/i386/i386.md (truncsf2bf2): Add !flag_rounding_math - to the condition, require flag_unsafe_math_optimizations when - native instruction is not available. - * config/i386/mmx.md: (truncv2sfv2bf2): Ditto. - (extendv2bfv2sf2): Add !HONOR_NANS (BFmode) to the condition. - * config/i386/sse.md: (truncv4sfv4sf2): Add - !flag_rounding_math to the condition, require - flag_unsafe_math_optimizations when native instruction is not - available. - (truncv8sfv8bf2): Ditto. - (truncv16sfv16bf2): Ditto. - (extendv4bfv4sf2): Add !HONOR_NANS (BFmode) to the condition. - (extendv8bfv8sf2): Ditto. - (extendv16bfv16sf2): Ditto. - -2024-11-10 Richard Biener - - * tree-vect-slp.cc (vectorizable_slp_permutation_1): Return - zero for the permute nodes part of load-lanes. - -2024-11-09 Iain Sandoe - - PR target/117478 - * config/darwin-driver.cc (darwin_driver_init): Handle ObjC/ObjC++ - * config/darwin.opt: Add ObjC/ObjC++ as driver-only options. - -2024-11-09 Andrew Pinski - - PR middle-end/117492 - * fold-const.cc (fold_binary_loc): Remove `Two consecutive rotates adding up - to the some integer` simplifcation. - -2024-11-09 Andrew Pinski - - PR tree-optimization/117496 - * tree-ssa-sccvn.cc (insert_predicates_for_cond): If the - valueization for the new lhs is the same as the old one, - don't recurse. - -2024-11-09 Andrew Pinski - - * tree-ssa-sccvn.cc (visit_phi): Swap the operands - before calling vn_nary_op_lookup_pieces if - tree_swap_operands_p returns true. - (insert_predicates_for_cond): Use tree_swap_operands_p - instead of checking for CONSTANT_CLASS_P. - (process_bb): Swap the comparison and operands - if tree_swap_operands_p returns true. - -2024-11-09 Torbjörn SVENSSON - - PR target/117408 - * config/arm/arm-mve-builtins.cc(handle_arm_mve_h): Detect if MVE - types is missing and if so, return error. - -2024-11-09 Jakub Jelinek - - * trans-mem.cc (expand_assign_tm): Don't take address - of empty CONSTRUCTOR, instead use BUILT_IN_TM_MEMSET - to clear lhs in that case. Formatting fixes. - -2024-11-09 Andi Kleen - - * config/i386/gcc-auto-profile: Regenerate. - -2024-11-08 John David Anglin - - PR target/117238 - * config/pa/pa64-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow - mode size 32. - -2024-11-08 John David Anglin - - * config/pa/predicates.md (base14_operand): Use '&' operator - instead of '%' to check displacement alignment. - -2024-11-08 John David Anglin - - PR target/117238 - * config/pa/pa32-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow - mode size 32. Limit mode size 16 in general registers to - complex modes. - -2024-11-08 John David Anglin - - PR target/117443 - * config/pa/pa.cc (pa_legitimate_address_p): Allow any - 14-bit displacement when reload is in progress and strict - is false. - -2024-11-08 Andre Simoes Dias Vieira - - PR target/116444 - * config/arm/arm.cc (arm_noce_conversion_profitable_p): Call - default_noce_conversion_profitable_p when not dealing with the - armv8.1-m.main special case. - (arm_is_vsel_fp_insn): New function. - -2024-11-08 Victor Do Nascimento - - * config/aarch64/aarch64-cores.def (cortex-a520ae, - cortex-a720ae, cortex-r82ae): Define new entries. - * config/aarch64/aarch64-tune.md: Regenerate. - * doc/invoke.texi: Document A520AE, A720AE and R82AE CPUs. - -2024-11-07 Richard Sandiford - - * config/aarch64/aarch64-sve2.md (@aarch64_sve_psel) - (*aarch64_sve_psel_plus): Require TARGET_STREAMING - rather than TARGET_STREAMING_SME2. - -2024-11-07 Richard Sandiford - - * config/aarch64/aarch64-sve2.md (@aarch64_sve_fclamp) - (*aarch64_sve_fclamp_x): Require TARGET_STREAMING_SME2 - rather than TARGET_STREAMING_SME. - -2024-11-07 David Faust - - PR target/117447 - * config/bpf/btfext-out.cc (btf_ext_output): Bail if TU CTFC is null. - -2024-11-07 David Faust - - * btfout.cc (btf_finalize): Check that hash maps are non-null before - emptying them. - -2024-11-07 Andrew Pinski - - PR tree-optimization/85605 - * tree-ssa-ifcombine.cc (can_combine_bbs_with_short_circuit): New function. - (ifcombine_ifandif): Use can_combine_bbs_with_short_circuit - instead of checking if iterator is one before the last statement. - -2024-11-07 Andrew Pinski - - PR tree-optimization/117414 - * tree-ssa-sccvn.cc (process_bb): Lookup - `val != 0` if got back a ssa name when looking the comparison. - -2024-11-07 Andrew Pinski - - PR tree-optimization/117414 - * tree-ssa-sccvn.cc (insert_predicates_for_cond): Handle `(A CMP B) !=/== 0`. - -2024-11-07 Andrew Pinski - - PR tree-optimization/117414 - * tree-ssa-sccvn.cc (insert_predicates_for_cond): Canonicalize the comparison. - Don't insert anything if lhs is not a SSA_NAME. Handle `(a | b) !=/== 0`. - -2024-11-07 Andrew Pinski - - * tree-ssa-sccvn.cc (insert_predicates_for_cond): New function, factored out from ... - (process_bb): Here. - -2024-11-07 Richard Biener - - * tree-vect-data-refs.cc (vect_check_gather_scatter): Refuse - to analyze DR_REF if from an epilogue that's not first. - * tree-vect-loop.cc (update_epilogue_loop_vinfo): Add comment - how the substitution in DR_REF is broken. - -2024-11-07 Richard Biener - - * tree-vectorizer.h (_loop_vec_info::main_loop_info): New. - (LOOP_VINFO_MAIN_LOOP_INFO): Likewise. - (_loop_vec_info::epilogue_vinfo): Change from epilogue_vinfos - from array to single element. - * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize - main_loop_info and epilogue_vinfo. Remove epilogue_vinfos - allocation. - (_loop_vec_info::~_loop_vec_info): Do not release epilogue_vinfos. - (vect_create_loop_vinfo): Rename parameter, set - LOOP_VINFO_MAIN_LOOP_INFO. - (vect_analyze_loop_1): Rename parameter. - (vect_analyze_loop_costing): Properly distinguish between - the main vector loop and the preceeding epilogue. - (vect_analyze_loop): Change for epilogue_vinfos no longer - being a vector. - * tree-vect-loop-manip.cc (vect_do_peeling): Simplify and - thereby handle a vector epilogue of a vector epilogue. - -2024-11-07 Richard Biener - - * tree-vectorizer.h (_loop_vec_info::drs_advanced_by): New. - (LOOP_VINFO_DRS_ADVANCED_BY): Likewise. - * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize - drs_advanced_by. - (update_epilogue_loop_vinfo): Remember the DR advancement made. - (vect_transform_loop): Accumulate past advancements. - -2024-11-07 Richard Biener - - * tree-vect-loop.cc (vect_analyze_loop_2): Move - vect_analyze_loop_costing after check whether we can do - peeling. Add check on LOOP_VINFO_PEELING_FOR_GAPS for - epilogues. - -2024-11-07 Pan Li - Juzhe-Zhong - - * doc/md.texi: Add doc for mask_len_stried_load{store}. - -2024-11-07 Richard Biener - - PR rtl-optimization/117467 - * timevar.def (TV_EXT_DCE): New. - * ext-dce.cc (pass_data_ext_dce): Use TV_EXT_DCE. - -2024-11-07 Hongyu Wang - - * config/i386/i386.md (cstorebf4): Use vcomsbf16 under - TARGET_AVX10_2_256 and -fno-trapping-math. - (cbranchbf4): Adjust formatting. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc - (ifcombine_rewrite_to_defined_overflow): New. - (ifcombine_replace_cond): Reject conds that would require - moving too many stmts. Reset flow sensitive info and avoid - undefined behavior in moved stmts. Reset flow sensitive info - in all inner blocks when the outer condition changes, and - avoid undefined behavior whenever the outer condition becomes - laxer, adapted and moved from... - (pass_tree_ifcombine::execute): ... here. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc (ifcombine_replace_cond): Support - TRUTH_ANDIF cond exprs. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc (recognize_if_then_else): Support - relaxed then/else testing; require nondegenerate condition - otherwise. - (tree_ssa_ifcombine_bb_1): Add outer_succ_bb parm, use it - instead of inner_cond_bb. Adjust callers. - (tree_ssa_ifcombine_bb): Loop over dominating outer blocks - eligible for ifcombine. - (pass_tree_ifcombine::execute): Noted potential need for - changes to the post-combine logic. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc: Include bitmap.h. - (ifcombine_mark_ssa_name): New. - (struct ifcombine_mark_ssa_name_t): New. - (ifcombine_mark_ssa_name_walk): New. - (ifcombine_replace_cond): Prepare to handle noncontiguous and - split-condition ifcombine. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc (known_succ_p): New. - (update_profile_after_ifcombine): Handle noncontiguous blocks. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc (ifcombine_replace_cond): Factor out - of... - (ifcombine_ifandif): ... this. Leave it for the above to - gimplify and invert the condition. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc (ifcombine_ifandif): Drop redundant - result_inv parm. Adjust all callers. - -2024-11-07 Alexandre Oliva - - * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Allow vuses, - but not vdefs. - -2024-11-07 xuli - - * match.pd: Add the form1 of signed imm .SAT_ADD matching. - * tree-ssa-math-opts.cc (match_saturation_add): Add fold - convert for const_int to the type of operand 0. - -2024-11-06 Alexey Merzlyakov - - PR rtl-optimization/112398 - * simplify-rtx.cc (simplify_context::simplify_unary_operation_1): - Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG)) - when X doesn't have any non-zero bits outside of SUBREG mode. - -2024-11-06 Iain Sandoe - - * config/darwin.cc (cdtor_record): Make position unsigned. - -2024-11-06 Andrew Stubbs - - * omp-general.cc (omp_max_vf): Cast the constant to poly_uint64. - -2024-11-06 Andrew Stubbs - - * internal-fn.cc (expand_GOMP_MAX_VF): New function. - * internal-fn.def (GOMP_MAX_VF): New internal function. - * omp-expand.cc (omp_adjust_chunk_size): Emit IFN_GOMP_MAX_VF when - called in offload context, otherwise assume host context. - * omp-offload.cc (execute_omp_device_lower): Expand IFN_GOMP_MAX_VF. - -2024-11-06 Andrew Stubbs - - * omp-expand.cc (is_in_offload_region): New function. - (omp_adjust_chunk_size): Add pass-through "offload" parameter. - (get_ws_args_for): Likewise. - (determine_parallel_type): Use is_in_offload_region to adjust call to - get_ws_args_for. - (expand_omp_for_generic): Likewise. - (expand_omp_for_static_chunk): Likewise. - -2024-11-06 Andrew Stubbs - - * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Set - omp_max_vf to offload == false. - * omp-expand.cc (omp_adjust_chunk_size): Likewise. - * omp-general.cc (omp_max_vf): Add "offload" parameter, and detect - amdgcn offload devices. - * omp-general.h (omp_max_vf): Likewise. - * omp-low.cc (lower_rec_simd_input_clauses): Pass offload state to - omp_max_vf. - -2024-11-06 Andrew MacLeod - - * tree-assume.cc (assume_query::assume_query): Add debug output. - (assume_query::update_parms): Likewise. - (assume_query::calculate_phi): Likewise. - (assume_query::calculate_op): Likewise. Also pick up any - merged path values. - (assume_query::calculate_stmt): Likewise. - -2024-11-06 David Malcolm - - * diagnostic.h (class diagnostic_context): Fix typo in leading - comment. - -2024-11-06 Michal Jires - - * ipa-prop.cc (write_ipcp_transformation_info): Disable - uneeded value propagation. - * lto-cgraph.cc (lto_symtab_encoder_encode): Default values. - (lto_symtab_encoder_always_inlined_p): New. - (lto_set_symtab_encoder_not_always_inlined): New. - (add_node_to): Set always inlined. - * lto-streamer.h (struct lto_encoder_entry): New field. - (lto_symtab_encoder_always_inlined_p): New. - -2024-11-06 Jakub Jelinek - - PR tree-optimization/117439 - * gimple-ssa-store-merging.cc - (imm_store_chain_info::coalesce_immediate_stores): Punt if merging of - any of the additional overlapping stores would result in growing the - bitregion size over param_store_merging_max_size. - (pass_store_merging::process_store): Terminate all aliasing chains - for stores with bitregion larger than param_store_merging_max_size. - -2024-11-06 Jakub Jelinek - - PR tree-optimization/117439 - * gimple-ssa-store-merging.cc (encode_tree_to_bitpos): For - empty_ctor_p use !sub_byte_op_p even if bitlen doesn't have an - integral mode. - -2024-11-06 Hu, Lin1 - - PR target/117304 - * config/i386/i386-builtin.def: Add OPTION_MASK_ISA2_EVEX512 for some - AVX512 512-bits instructions. - -2024-11-05 Andrew Pinski - - * match.pd (X != 0 ? X + ~0 : 0): Fix comment. - -2024-11-05 Kyrylo Tkachov - - PR target/117449 - * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm): - Match only when can_create_pseudo_p (). - * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Assume - can_create_pseudo_p (). - -2024-11-05 liuhongt - - * config/i386/i386-expand.cc - (ix86_expand_vector_bf2sf_with_vec_perm): New function. - * config/i386/i386-protos.h - (ix86_expand_vector_bf2sf_with_vec_perm): New Declare. - * config/i386/mmx.md (extendv2bfv2sf2): New expander. - * config/i386/sse.md (extend2): - Ditto. - (VF1_AVX512BW): New mode iterator. - (sf_cvt_bf16): Add V4SF. - (sf_cvt_bf16_lower): New mode attr. - -2024-11-05 liuhongt - - * config/i386/i386-expand.cc - (ix86_expand_vector_sf2bf_with_vec_perm): New function. - * config/i386/i386-protos.h - (ix86_expand_vector_sf2bf_with_vec_perm): New declare. - * config/i386/mmx.md (truncv2sfv2bf2): New expander. - * config/i386/sse.md (truncv4sfv4bf2): Ditto. - (truncv8sfv8bf2): Ditto. - (truncv16sfv16bf2): Ditto. - -2024-11-05 Hu, Lin1 - - PR target/117416 - * config/i386/i386-expand.cc (ix86_expand_builtin): Raise warning when - op1 isn't in range of [0, 2] and set op1 as const0_rtx, and raise - warning when op3 isn't in range of [0, 1]. - -2024-11-05 Richard Biener - - PR middle-end/117433 - * cfgexpand.cc (expand_gimple_stmt_1): Use emit_block_move - when moving temp to BLKmode target. - -2024-11-05 Andrew Pinski - - * config/aarch64/aarch64-passes.def: Don't add pass_tag_collision_avoidance. - * config/aarch64/aarch64-protos.h (make_pass_tag_collision_avoidance): Remove. - * config/aarch64/aarch64-tuning-flags.def (RENAME_LOAD_REGS): Remove. - * config/aarch64/tuning_models/qdf24xx.h (qdf24xx_tunings): Set tuning flags to - AARCH64_EXTRA_TUNE_NONE. - * config/aarch64/falkor-tag-collision-avoidance.cc: Removed. - * config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o): Remove. - * config.gcc (aarch64*-*-*): Remove falkor-tag-collision-avoidance.o from extra_objs. - -2024-11-05 Andrew Pinski - - * config/aarch64/aarch64-cores.def (falkor): Use cortex-a57 scheduler. - (saphira): Likewise. - * config/aarch64/aarch64.md: Don't include falkor.md and saphira.md. - * config/aarch64/falkor.md: Removed. - * config/aarch64/saphira.md: Removed. - -2024-11-05 Levy Hsu - - * config/i386/i386-expand.cc (ix86_expand_branch): Handle BFmode - when TARGET_AVX10_2_256 is enabled. - (ix86_prepare_fp_compare_args): Use SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P. - (ix86_expand_fp_movcc): Ditto. - (ix86_expand_fp_compare): Handle BFmode under IX86_FPCMP_COMI. - * config/i386/i386.cc (ix86_multiplication_cost): Use - SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P. - (ix86_division_cost): Ditto. - (ix86_rtx_costs): Ditto. - (ix86_vector_costs::add_stmt_cost): Ditto. - * config/i386/i386.h (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Rename to ... - (SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P): ...this, and add BFmode. - * config/i386/i386.md (*cmpibf): New define_insn. - -2024-11-05 Mark Harmstone - - * dwarf2codeview.cc (get_type_num_typedef): New function. - (get_type_num): Call get_type_num_typedef. - * dwarf2codeview.h (T_HRESULT): Define. - -2024-11-05 Mark Harmstone - - * dwarf2codeview.cc (struct codeview_custom_type): Add new fields to - lf_pointer struct in union. - (write_lf_pointer): Write containing_class and ptr_to_mem_type if - applicable. - (get_type_num_subroutine_type): Write correct containing_class_type if - this is a pointer to a member function. - (get_type_num_ptr_to_member_type): New function. - (get_type_num): Call get_type_num_ptr_to_member_type. - * dwarf2codeview.h (CV_PTR_MODE_MASK, CV_PTR_MODE_PMEM): Define. - (CV_PTR_MODE_PMFUNC, CV_PMTYPE_D_Single, CV_PMTYPE_F_Single): Likewise. - -2024-11-05 Mark Harmstone - - * dwarf2codeview.cc (enum cv_leaf_type): Add LF_BCLASS. - (struct codeview_subtype): Add lf_bclass to union. - (write_cv_padding): Add declaration. - (write_lf_fieldlist): Handle LF_BCLASS records. - (add_struct_inheritance): New function. - (get_type_num_struct): Call add_struct_inheritance. - -2024-11-04 Craig Blackmore - - * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p): - New function. - (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define. - -2024-11-04 Craig Blackmore - - * config/riscv/riscv-string.cc - (use_vector_stringop_p): Add comment. - (expand_vec_setmem): Use use_vector_stringop_p instead of - check_vectorise_memory_operation. - -2024-11-04 David Malcolm - - * diagnostic.h (class diagnostic_context): Update leading comment. - -2024-11-04 David Malcolm - - * opts-diagnostic.cc: Apply renamings throughout for clarity: from - "name" and "format_name" to "scheme_name", from "m_format" to - "m_scheme_name", and from "handler" to "scheme_handler". - (output_factory::scheme_handler::get_handler): Pass name by const - reference. - -2024-11-04 Kyrylo Tkachov - - PR target/117048 - * simplify-rtx.cc (extract_ashift_operands_p): Define. - (simplify_rotate_op): Likewise. - (simplify_context::simplify_binary_operation_1): Use the above in - the PLUS, IOR, XOR cases. - (test_vector_rotate): Define. - (test_vector_ops): Use the above. - -2024-11-04 Antoni Boucher - - PR target/116725 - * config/i386/sse.md: Fix asm generation. - -2024-11-04 Andrew MacLeod - - PR tree-optimization/117398 - * gimple-range-edge.cc (gimple_outgoing_range::calc_switch_ranges): - Check for VARYING and don't call invert () on it. - -2024-11-04 Kyrylo Tkachov - - Revert: - 2024-11-04 Kyrylo Tkachov - - PR target/117048 - * simplify-rtx.cc (extract_ashift_operands_p): Define. - (simplify_rotate_op): Likewise. - (simplify_context::simplify_binary_operation_1): Use the above in - the PLUS, IOR, XOR cases. - (test_vector_rotate): Define. - (test_vector_ops): Use the above. - -2024-11-04 Richard Sandiford - - * doc/invoke.texi: Fix documentation of LS64 so that it's - not implied by Armv8.7-A or Armv9.2-A. - -2024-11-04 Yuta Mukai - - * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add fujitsu-monaka. - * config/aarch64/aarch64-tune.md: Regenerate. - * config/aarch64/aarch64.cc: Include fujitsu-monaka tuning model. - * doc/invoke.texi: Document -mcpu=fujitsu-monaka. - * config/aarch64/tuning_models/fujitsu_monaka.h: New file. - -2024-11-04 Richard Biener - - * tree-vect-loop.cc (update_epilogue_loop_vinfo): Update - DR inits after adjusting the epilog metadata. - -2024-11-04 Richard Biener - - * tree-vect-loop.cc (update_epilogue_loop_vinfo): A DRs - main stmt vinfo dr_aux should refer to a pattern stmt - which is how move_dr sets this up. We shouldn't undo this. - -2024-11-04 Richard Biener - - * tree-vect-loop.cc (vect_analyze_loop): Move lowest_th - compute until after epilogue_vinfos is final. - -2024-11-04 Kyrylo Tkachov - - * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): - Simplify (rotate:HI x:HI, 8) -> (bswap:HI x:HI). - -2024-11-04 Kyrylo Tkachov - - * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Add - generation of XAR sequences when possible. - -2024-11-04 Kyrylo Tkachov - - * expmed.h (expand_rotate_as_vec_perm): Declare. - * expmed.cc (expand_rotate_as_vec_perm): Define. - * config/aarch64/aarch64-protos.h (aarch64_emit_opt_vec_rotate): - Declare prototype. - * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Implement. - * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm): - Call the above. - -2024-11-04 Kyrylo Tkachov - - PR target/117048 - * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm): - New define_insn_and_split. - -2024-11-04 Kyrylo Tkachov - - * config/aarch64/iterators.md (SVE_ASIMD_FULL_I): New mode iterator. - * config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar): - Use SVE_ASIMD_FULL_I modes. Use ROTATE code for the rotate step. - Adjust output logic. - * config/aarch64/aarch64-sve-builtins-sve2.cc (svxar_impl): Define. - (svxar): Use the above. - -2024-11-04 Kyrylo Tkachov - - PR target/117048 - * simplify-rtx.cc (extract_ashift_operands_p): Define. - (simplify_rotate_op): Likewise. - (simplify_context::simplify_binary_operation_1): Use the above in - the PLUS, IOR, XOR cases. - (test_vector_rotate): Define. - (test_vector_ops): Use the above. - -2024-11-03 Andrew Pinski - - PR middle-end/115023 - * doc/extend.texi (__builtin_assoc_barrier): Document ffp-contract=fast - and FMA usage. - -2024-11-03 Andrew Pinski - - PR tree-optimization/117363 - * match.pd (`a != 0 ? a - 1 : 0`): Fix type handling - and nop_convert handling. - -2024-11-02 Jakub Jelinek - - PR middle-end/117384 - * gimplify.cc (gimplify_init_ctor_eval): Add VIEW_CONVERT_EXPR around - rctor if it doesn't have expected type. - -2024-11-02 Jeff Law - - * config/ft32/ft32.cc (ft32_lra_p): Remove. - (TARGET_LRA_P): Likewise. - * config/ft32/ft32.opt: Make -mlra ignored. - * doc/invoke.texi: Adjust documentation for -mlra on ft32. - -2024-11-01 Jakub Jelinek - - PR bootstrap/117407 - * builtins.cc (expand_builtin_prefetch): Use !IN_RANGE rather - than IN_RANGE. - -2024-11-01 Andrew MacLeod - - * range-op.cc (operator_bitwise_or::op1_range): If LHS is signed - positive, so are both operands. - -2024-11-01 Andrew MacLeod - - PR tree-optimization/117287 - * Makefile.in (IBJS): Add tree-assume.o - * gimple-range.cc (assume_query::assume_range_p): Remove. - (assume_query::range_of_expr): Remove. - (assume_query::assume_query): Move to tree-assume.cc. - (assume_query::~assume_query): Remove. - (assume_query::calculate_op): Move to tree-assume.cc. - (assume_query::calculate_phi): Likewise. - (assume_query::check_taken_edge): Remove. - (assume_query::calculate_stmt): Move to tree-assume.cc. - (assume_query::dump): Remove. - * gimple-range.h (class assume_query): Move to tree-assume.cc - * tree-assume.cc: New - * tree-vrp.cc (struct pass_data_assumptions): Move to tree-assume.cc. - (class pass_assumptions): Likewise. - (make_pass_assumptions): Likewise. - -2024-11-01 Andrew MacLeod - - * gimple-range-fold.cc (class fur_edge): Relocate from here. - (fur_edge::fur_edge): Also move to: - * gimple-range-fold.h (class fur_edge): Relocate to here. - (fur_edge::fur_edge): Likewise. - -2024-11-01 Jakub Jelinek - - * doc/standards.texi (C++ Language): Mention also the 2024 - revision and -std=gnu++23 option. - * doc/invoke.texi (-std=): Adjust description of c++23, c++2b, - gnu++23 and gnu++2b now that ISO C++ 14882:2024 is published. - -2024-11-01 Haochen Jiang - - * builtins.cc (expand_builtin_prefetch): Use IN_RANGE to - avoid second usage of INTVAL. - -2024-11-01 Haochen Jiang - - * config/i386/cmpccxaddintrin.h (_cmpccxadd_epi32): Do not do - type conversion for pointer. - (_cmpccxadd_epi64): Ditto. - -2024-11-01 Xi Ruoyao - - PR target/116887 - * varasm.cc (default_section_type_flags): Always set - SECTION_RELRO if name is .data.rel.ro{,.local}. - -2024-11-01 David Malcolm - - PR bootstrap/117361 - * Makefile.in (GCC_FOR_SELFTESTS): New. - -2024-11-01 Hu, Lin1 - - * common/config/i386/cpuinfo.h (get_available_features): - Detect AMX-MOVRS. - * common/config/i386/i386-common.cc - (OPTION_MASK_ISA2_AMX_MOVRS_SET): New. - (OPTION_MASK_ISA2_AMX_MOVRS_UNSET): Ditto. - (ix86_handle_option): Handle -mamx-movrs. - * common/config/i386/i386-cpuinfo.h (enum processor_features): - Add FEATURE_AMX_MOVRS. - * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for - amx-movrs. - * config.gcc: Add amxmovrsintrin.h. - * config/i386/cpuid.h (bit_AMX_MOVRS): New. - * config/i386/i386-c.cc (ix86_target_macros_internal): - Define __AMX_MOVRS__. - * config/i386/i386-isa.def (AMX_MOVRS): Add DEF_PTA(AMX_MOVRS). - * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): - Handle amx-movrs. - * config/i386/i386.opt: Add option -mamx-movrs. - * config/i386/i386.opt.urls: Regenerated. - * config/i386/immintrin.h: Include amxmovrsintrin.h - * doc/extend.texi: Document amx-movrs. - * doc/invoke.texi: Document -mamx-movrs. - * doc/sourcebuild.texi: Document target amx-movrs. - * config/i386/amxmovrsintrin.h: New file. - -2024-11-01 Hu, Lin1 - Haochen Jiang - - * builtins.cc (expand_builtin_prefetch): Expand for - prefetchrst2. - * common/config/i386/cpuinfo.h (get_available_features): Detect movrs. - * common/config/i386/i386-common.cc - (OPTION_MASK_ISA2_MOVRS_SET): New. - (OPTION_MASK_ISA2_MOVRS_UNSET): Ditto. - (ix86_handle_option): Handle -mmovrs. - * common/config/i386/i386-cpuinfo.h - (enum processor_features): Add FEATURE_MOVRS. - * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for movrs. - * config.gcc: Add movrsintrin.h - * config/i386/cpuid.h (bit_MOVRS): New. - * config/i386/i386-builtin-types.def: - Add DEF_FUNCTION_TYPE (CHAR, PCCHAR), (SHORT, PCSHORT), (INT, PCINT), - (INT64, PCINT64). - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-c.cc (ix86_target_macros_internal): Add - __MOVRS__. - * config/i386/i386-expand.cc (ix86_expand_special_args_builtin): Define - __MOVRS__. - * config/i386/i386-isa.def (MOVRS): Add DEF_PTA(MOVRS) - * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): - Handle movrs. - * config/i386/i386.md (movrs): New. - * config/i386/i386.opt: Add option -mmovrs. - * config/i386/i386.opt.urls: Regenerated. - * config/i386/immintrin.h: Include movrsintrin.h - * config/i386/sse.md (unspecv): Add UNSPEC_VMOVRS. - (VI1248_AVX10_2): New. - (avx10_2_movrs_vmovrs): New define_insn. - * config/i386/xmmintrin.h: Add prefetchrst2. - * doc/extend.texi: Document movrs. - * doc/invoke.texi: Document -mmovrs. - * doc/rtl.texi: Document extension of prefetchrst2. - * doc/sourcebuild.texi: Document target movrs. - * config/i386/movrsintrin.h: New. - -2024-11-01 Liwei Xu - Hu, Lin1 - - * common/config/i386/cpuinfo.h - (get_available_features): Detect amx-fp8. - * common/config/i386/i386-common.cc - (OPTION_MASK_ISA2_AMX_FP8_SET): New macros. - (OPTION_MASK_ISA2_AMX_FP8_UNSET): Ditto. - (ix86_handle_option): Handle -mamx-fp8. - * common/config/i386/i386-cpuinfo.h (enum processor_features): - Add FEATURE_AMX_FP8. - * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for amx-fp8. - * config.gcc: Add amxfp8intrin.h. - * config/i386/cpuid.h (bit_AMX_FP8): New. - * config/i386/i386-c.cc (ix86_target_macros_internal): - Define __AMX_FP8__. - * config/i386/i386-isa.def (AMX_FP8): Add DEF_PTA for AMX_FP8. - * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): - Add new ATTR. - * config/i386/i386.opt: Add -mamx-fp8. - * config/i386/i386.opt.urls: Regenerated. - * config/i386/immintrin.h: Include amxfp8intrin.h. - * doc/extend.texi: Document -mamx-fp8. - * doc/invoke.texi: Document -mamx-fp8. - * doc/sourcebuild.texi: Document -mamx-fp8. - * config/i386/amxfp8intrin.h: New file. - -2024-11-01 Haochen Jiang - - * common/config/i386/cpuinfo.h (get_available_features): - Detect AMX-TRANSPOSE. - * common/config/i386/i386-common.cc - (OPTION_MASK_ISA2_AMX_TRANSPOSE_SET, - OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET): New. - (ix86_handle_option): Handle -mamx-transpose. - * common/config/i386/i386-cpuinfo.h (enum processor_features): - Add FEATURE_AMX_TRANSPOSE. - * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for - amx-transpose. - * config.gcc: Add amxtransposeintrin.h. - * config/i386/cpuid.h (bit_AMX_TRANSPOSE): New. - * config/i386/i386-c.cc (ix86_target_macros_internal): Define - __AMX_TRANSPOSE__. - * config/i386/i386-isa.def (AMX_TRANSPOSE): Add - DEF_PTA(AMX_TRANSPOSE). - * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): - Handle amx-transpose. - * config/i386/i386.opt: Add option -mamx-transpose. - * config/i386/i386.opt.urls: Regenerated. - * config/i386/immintrin.h: Include amxtransposeintrin.h. - * doc/extend.texi: Document amx-transpose. - * doc/invoke.texi: Document -mamx-transpose. - * doc/sourcebuild.texi: Document target amx-transpose. - * config/i386/amxtransposeintrin.h: New file. - -2024-11-01 Haochen Jiang - - * common/config/i386/cpuinfo.h (get_available_features): - Detect AMX-TF32. - * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_TF32_SET, - OPTION_MASK_ISA2_AMX_TF32_UNSET): New. - (ix86_handle_option): Handle -mamx-tf32. - * common/config/i386/i386-cpuinfo.h (enum processor_features): - Add FEATURE_AMX_TF32. - * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for - amx-tf32. - * config.gcc: Add amxtf32intrin.h - * config/i386/cpuid.h (bit_AMX_TF32): New. - * config/i386/i386-c.cc (ix86_target_macros_internal): Handle amx-tf32. - * config/i386/i386-isa.def (AMX_TF32): Add DEF_PTA(AMX_TF32). - * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): - Handle amx-tf32. - * config/i386/i386.opt: Add option -mamx-tf32. - * config/i386/i386.opt.urls: Regenerated. - * config/i386/immintrin.h: Include amxtf32intrin.h. - * doc/extend.texi: Document amx-tf32. - * doc/invoke.texi: Document -mamx-tf32. - * doc/sourcebuild.texi: Document target amx-tf32. - * config/i386/amxtf32intrin.h: New file. - -2024-11-01 Haochen Jiang - Yu, Bing - - * common/config/i386/cpuinfo.h (get_available_features): - Detect AMX-AVX512. - * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_AVX512_SET, - OPTION_MASK_ISA2_AMX_AVX512_UNSET): New. - (ix86_handle_option): Handle -mamx-avx512. - * common/config/i386/i386-cpuinfo.h (enum processor_features): - Add FEATURE_AMX_AVX512. - * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for - amx-avx512. - * config.gcc: Add amxavx512intrin.h - * config/i386/cpuid.h (bit_AMX_AVX512): New. - * config/i386/i386-c.cc (ix86_target_macros_internal): - Handle amx-avx512. - * config/i386/i386-isa.def (AMX_AVX512): Add DEF_PTA(AMX_AVX512). - * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): - Handle amx-avx512. - * config/i386/i386.opt: Add option -mamx-avx512. - * config/i386/i386.opt.urls: Regenerated. - * config/i386/immintrin.h: Include amxavx512intrin.h - * doc/extend.texi: Document amx-avx512. - * doc/invoke.texi: Document -mamx-avx512. - * doc/sourcebuild.texi: Document target amx-avx512. - * config/i386/amxavx512intrin.h: New file. - -2024-11-01 Haochen Jiang - - * config/i386/i386-builtin-types.def: - Add DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI). - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle - V16SI_FTYPE_V16SI_V16SI. - * config/i386/sm4intrin.h: Add zmm insns. - * config/i386/sse.md (vsm4key4_): Add EVEX pattern. - (vsm4rnds4_): Ditto. - -2024-10-31 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins-base.cc (svmax, svamin): Move - definitions to... - * config/aarch64/aarch64-sve-builtins-sve2.cc: ...here. - * config/aarch64/aarch64-sve-builtins-base.def (svmax, svamin): Move - definitions to... - * config/aarch64/aarch64-sve-builtins-sve2.def: ...here. Require - SME2 in streaming mode. - -2024-10-31 Richard Sandiford - - * config.gcc (aarch64*-*-*): Add aarch64-protos.h to target_gtfiles. - * config/aarch64/aarch64-protos.h - (aarch64_required_extensions): New structure. - (aarch64_check_required_extensions): Change the type of the - required_extensions parameter from aarch64_feature_flags to - aarch64_required_extensions. - * config/aarch64/aarch64-sve-builtins.h - (function_builder::add_unique_function): Likewise. - (function_builder::add_overloaded_function): Likewise. - (function_builder::get_attributes): Likewise. - (function_builder::add_function): Likewise. - (function_group_info): Change the type of required_extensions - in the same way. - * config/aarch64/aarch64-builtins.cc - (aarch64_pragma_builtins_data::required_extensions): Change the type - from aarch64_feature_flags to aarch64_required_extensions. - (aarch64_check_required_extensions): Likewise change the type - of the required_extensions parameter. Separate the requirements - for non-streaming mode and streaming mode, ORing them together - for streaming-compatible mode. - (aarch64_general_required_extensions): New function. - (aarch64_general_check_builtin_call): Use it. - * config/aarch64/aarch64-sve-builtins.cc - (registered_function::required_extensions): Change the type - from aarch64_feature_flags to aarch64_required_extensions. - (DEF_NEON_SVE_FUNCTION, DEF_SME_ZA_FUNCTION_GS): Update accordingly. - (function_builder::get_attributes): Change the type of the - required_extensions parameter from aarch64_feature_flags to - aarch64_required_extensions. - (function_builder::add_function): Likewise. - (function_builder::add_unique_function): Likewise. - (function_builder::add_overloaded_function): Likewise. - * config/aarch64/aarch64-simd-pragma-builtins.def: Update - REQUIRED_EXTENSIONS definitions to use aarch64_required_extensions. - * config/aarch64/aarch64-sve-builtins-base.def: Likewise. - * config/aarch64/aarch64-sve-builtins-sme.def: Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. - -2024-10-31 Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (ENTRY): Remove the features - argument and get the features from REQUIRED_EXTENSIONS instead. - (ENTRY_VHSDF): Move definition to... - * config/aarch64/aarch64-simd-pragma-builtins.def: ...here. - Move the architecture requirements to REQUIRED_EXTENSIONS. - -2024-10-31 Richard Sandiford - - * config/aarch64/aarch64-sve-builtins-base.def (svtrn1q, svtrn2q) - (svuzp1q, svuzp2q, svzip1q, svzip2q): Require SM_OFF. - -2024-10-31 Andi Kleen - - * config.in: Regenerate. - * configure: Regenerate. - * configure.ac: Check for HAVE_CLOCK_GETTIME. - * timevar.cc (get_time): Use HAVE_CLOCK_GETTIME. - -2024-10-31 Vineet Gupta - - * config/riscv/riscv-v.cc (expand_const_vector): Use IOR op. - -2024-10-31 David Malcolm - - * Makefile.in (OBJS): Add lazy-diagnostic-path.o. - * lazy-diagnostic-path.cc: New file. - * lazy-diagnostic-path.h: New file. - * selftest-diagnostic.cc: Include "diagnostic-format.h". - (test_diagnostic_context::test_diagnostic_context): Turn off - flushing for the output format's printer. - * selftest-run-tests.cc (selftest::run_tests): Call - selftest::lazy_diagnostic_path_cc_tests. - * selftest.h (selftest::lazy_diagnostic_path_cc_tests): New decl. - -2024-10-31 David Malcolm - - * opts-diagnostic.cc (output_factory::handler::handler): Use - std::move on name. - -2024-10-31 David Malcolm - - * diagnostic.cc (diagnostic_context::finish): Delete and reset - m_option_mgr. - -2024-10-31 Tamar Christina - - PR tree-optimization/117176 - * tree-vect-patterns.cc (vect_recog_gcond_pattern): Lower all gconds. - * tree-vect-slp.cc (vect_analyze_slp): No longer check for in vect def. - -2024-10-31 Yangyu Chen - - * config/riscv/riscv.cc (riscv_can_inline_p): Refuse to inline - when callee is versioned but caller is not. - -2024-10-31 Yangyu Chen - - * config/riscv/riscv-protos.h (riscv_process_target_attr): New. - * config/riscv/riscv-target-attr.cc (riscv_process_target_attr): - Split into two functions with const char *args argument - -2024-10-31 Jakub Jelinek - - PR middle-end/117354 - * expr.cc (expand_expr_real_1) : Pass - true as inner_reference_p argument to expand_expr_real if - mode is BLKmode. Don't call extract_bit_field if mode is BLKmode. - -2024-10-31 Yangyu Chen - - * config/riscv/predicates.md: Use flag_plt instead of TARGET_PLT. - * config/riscv/riscv.opt: alias common option fplt to mplt. - -2024-10-31 Jakub Jelinek - - * tree.cc (valid_new_delete_pair_p): Fix up duplicate "or or" - in comment. - -2024-10-31 Andrew Pinski - - PR middle-end/114785 - PR middle-end/116949 - * gimple-match-exports.cc (maybe_push_res_to_seq): Remove special - handling of COMPARISON_CLASS_P in COND_EXPR/VEC_COND_EXPR. - (gimple_extract): Likewise. - * gimple-walk.cc (walk_stmt_load_store_addr_ops): Likewise. - * gimple.cc (gimple_build_assign_1): Add assert for COND_EXPR - so its 1st operand is not a comparison. - -2024-10-30 Kugan Vivekanandarajah - - * tree-vectorizer.cc (pass_vectorize::execute): Reset dont_vectorize - to scalar loop when setting IFN_LOOP_VECTORIZED to false. - -2024-10-30 Kugan Vivekanandarajah - - * params.opt: Adjust param_vect_max_version_for_alias_checks - -2024-10-30 Joseph Myers - - * doc/cpp.texi (__STDC_VERSION__): Do not refer to C23 support as - experimental. - * doc/invoke.texi (std=c23, std=gnu23): Do not document as - experimental and incomplete. - * doc/standards.texi: Do not refer to C23 support as experimental - and incomplete. - -2024-10-30 Andi Kleen - - * timevar.cc (struct tms): Remove. - (RUSAGE_SELF): Remove. - (TICKS_PER_SECOND): Remove. - (USE_TIMES): Remove. - (HAVE_USER_TIME): Remove. - (HAVE_SYS_TIME): Remove. - (HAVE_WALL_TIME): Remove. - (USE_GETRUSAGE): Remove. - (USE_CLOCK): Remove. - (NANOSEC_PER_SEC): Remove. - (TICKS_TO_NANOSEC): Remove. - (CLOCKS_TO_NANOSEC): Remove. - (timer::named_items::push): Remove sys/user. - (get_time): Remove clock and times and getruage code. - (timevar_accumulate): Remove sys/user. - (timevar_diff): Dito. - (timer::validate_phases): Dito. - (timer::print_row): Dito. - (timer::all_zero): Dito. - (timer::print): Dito. - (make_json_for_timevar_time_def): Dito. - * timevar.h (struct timevar_time_def): Dito. - -2024-10-30 Richard Biener - - * tree-vectorizer.h (finish_cost): Inline everywhere and remove. - * tree-vect-loop.cc (vect_estimate_min_profitable_iters): - Inline finish_cost. - * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Likewise. - -2024-10-30 Yangyu Chen - - * config/aarch64/aarch64.cc (dispatch_function_versions): Adding - DECL_EXTERNAL, TREE_PUBLIC and hidden DECL_VISIBILITY to - __init_cpu_features_resolver and __aarch64_cpu_features. - -2024-10-30 Jeff Law - - * config/riscv/riscv.cc (singleton_vxrm_need): New function. - (riscv_mode_needed): See if there is a singleton need and if so, - claim it happens on the first insn in the chain. - -2024-10-30 liuhongt - - PR target/117318 - * config/i386/sse.md (*avx512vl_v2div2qi2_mask_store_1): - Rename to .. - (avx512vl_v2div2qi2_mask_store_1): .. this. - (avx512vl_v2div2qi2_mask_store_2): Change to - define_expand. - (*avx512vl_v4qi2_mask_store_1): Rename to .. - (avx512vl_v4qi2_mask_store_1): .. this. - (avx512vl_v4qi2_mask_store_2): Change to - define_expand. - (*avx512vl_v8qi2_mask_store_1): Rename to .. - (avx512vl_v8qi2_mask_store_1): .. this. - (avx512vl_v8qi2_mask_store_2): Change to - define_expand. - (*avx512vl_v4hi2_mask_store_1): Rename to .. - (avx512vl_v4hi2_mask_store_1): .. this. - (avx512vl_v4hi2_mask_store_2): Change to - define_expand. - (*avx512vl_v2div2hi2_mask_store_1): Rename to .. - (avx512vl_v2div2hi2_mask_store_1): .. this. - (avx512vl_v2div2hi2_mask_store_2): Change to - define_expand. - (*avx512vl_v2div2si2_mask_store_1): Rename to .. - (avx512vl_v2div2si2_mask_store_1): .. this. - (avx512vl_v2div2si2_mask_store_2): Change to - define_expand. - (*avx512f_v8div16qi2_mask_store_1): Rename to .. - (avx512f_v8div16qi2_mask_store_1): .. this. - (avx512f_v8div16qi2_mask_store_2): Change to - define_expand. - -2024-10-30 Christophe Lyon - - * config/arm/arm-builtins.cc (STRS_QUALIFIERS): Delete. - (STRU_QUALIFIERS): Delete. - (STRS_P_QUALIFIERS): Delete. - (STRU_P_QUALIFIERS): Delete. - (LDRS_QUALIFIERS): Delete. - (LDRU_QUALIFIERS): Delete. - (LDRS_Z_QUALIFIERS): Delete. - (LDRU_Z_QUALIFIERS): Delete. - -2024-10-30 Richard Biener - - * tree-vect-patterns.cc (check_bool_pattern): Remove. - (adjust_bool_pattern_cast): Likewise. - (adjust_bool_pattern): Likewise. - (sort_after_uid): Likewise. - (adjust_bool_stmts): Likewise. - (vect_recog_bool_pattern): Remove calls to check_bool_pattern - and fold as if it returns false. - -2024-10-30 Jakub Jelinek - - PR target/117296 - * function.cc (assign_parms): Call do_pending_stack_adjust. - -2024-10-30 Jakub Jelinek - - PR middle-end/117348 - * genmatch.cc: Replace defined(HAVE_DECL_FMEMOPEN) - test with HAVE_DECL_FMEMOPEN. - -2024-10-30 Uros Bizjak - - * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_TEMP. - * config/i386/i386-expand.cc (ix86_expand_builtin) - : Use assign_stack_temp instead of - assign_386_stack_local with SLOT_TEMP. - : Ditto. - (ix86_expand_divmod_libfunc): Ditto. - * config/i386/i386.md (floatunssi2): Ditto. - * config/i386/sync.md (atomic_load): Ditto. - (atomic_store): Ditto. - -2024-10-30 xuli - - * match.pd: Simplify (x != 0 ? x + ~0 : 0) to (x - x != 0). - -2024-10-29 Andi Kleen - - Revert: - 2024-10-29 Andi Kleen - - PR middle-end/117091 - * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests): - Change clustering algorithm to simple greedy. - -2024-10-29 David Malcolm - - PR other/116613 - * Makefile.in (OBJS-libcommon-target): Add opts-diagnostic.o. - * common.opt (fdiagnostics-add-output=): New. - (fdiagnostics-set-output=): New. - (diagnostics_output_format): Drop sarif-file-2.2-prerelease from - enum. - * common.opt.urls: Regenerate. - * diagnostic-buffer.h (diagnostic_buffer::~diagnostic_buffer): New. - (diagnostic_buffer::ensure_per_format_buffer): Rename to... - (diagnostic_buffer::ensure_per_format_buffers): ...this. - (diagnostic_buffer::m_per_format_buffer): Replace with... - (diagnostic_buffer::m_per_format_buffers): ...this, updating type. - * diagnostic-format-json.cc (json_output_format::update_printer): - New. - (json_output_format::follows_reference_printer_p): New. - (diagnostic_output_format_init_json): Drop redundant call to - set_path_format, as this is not a text output format. - * diagnostic-format-sarif.cc: Include "diagnostic-format-text.h". - (sarif_builder::set_printer): New. - (sarif_builder::sarif_builder): Add "printer" param and use it for - m_printer. - (sarif_builder::make_location_object::escape_nonascii_renderer::render): - Rather than using dc.m_printer, create a - diagnostic_text_output_format instance and use its printer. - (sarif_output_format::follows_reference_printer_p): New. - (sarif_output_format::update_printer): New. - (sarif_output_format::sarif_output_format): Pass in correct - printer to m_builder's ctor. - (diagnostic_output_format_init_sarif): Drop redundant call to - set_path_format, as this is not a text output format. Replace - calls to pp_show_color and set_token_printer with call to - update_printer. Drop redundant call to set_show_highlight_colors, - as this printer does not show colors. - (diagnostic_output_format_init_sarif_file): Split out file opening - into... - (diagnostic_output_format_open_sarif_file): ...this new function. - (make_sarif_sink): New. - (selftest::test_make_location_object): Provide a pp for the - builder. - * diagnostic-format-sarif.h - (diagnostic_output_format_open_sarif_file): New decl. - (make_sarif_sink): New decl. - * diagnostic-format-text.cc (diagnostic_text_output_format::dump): - Dump sm_follows_reference_printer. - (diagnostic_text_output_format::on_report_verbatim): New. - (diagnostic_text_output_format::follows_reference_printer_p): New. - (diagnostic_text_output_format::update_printer): New. - * diagnostic-format-text.h - (diagnostic_text_output_format::diagnostic_text_output_format): - Add optional "follows_reference_printer" param. - (diagnostic_text_output_format::on_report_verbatim): New decl. - (diagnostic_text_output_format::after_diagnostic): Drop "final". - (diagnostic_text_output_format::follows_reference_printer_p): New - decl. - (class diagnostic_text_output_format): Convert private members to - protected. - (diagnostic_text_output_format::m_follows_reference_printer): New - field. - * diagnostic-format.h - (diagnostic_output_format::on_report_verbatim): New vfunc. - (diagnostic_output_format::follows_reference_printer_p): New vfunc. - (diagnostic_output_format::update_printer): New vfunc. - (diagnostic_output_format::get_printer): Use m_printer rather than - a printer from m_context. - (diagnostic_output_format::diagnostic_output_format): Initialize - m_printer by cloning the context's printer. - (diagnostic_output_format::m_printer): New field. - * diagnostic-global-context.cc (verbatim): Reimplement in terms of - global_dc->report_verbatim, moving existing implementation to - diagnostic_text_output_format::on_report_verbatim. - (fnotice): Support multiple output sinks by using a new - global_dc->supports_fnotice_on_stderr_p. - * diagnostic-output-file.h - (diagnostic_output_file::diagnostic_output_file): New default ctor. - (diagnostic_output_file::operator=): Implement move assignment. - * diagnostic-path.cc (selftest::test_interprocedural_path_1): Pass - false for new param of text_output's ctor. - * diagnostic-show-locus.cc - (selftest::test_layout_x_offset_display_utf8): Use reference - printer. - (selftest::test_layout_x_offset_display_tab): Likewise. - (selftest::test_one_liner_fixit_remove): Likewise. - * diagnostic.cc: Include "pretty-print-urlifier.h". - (diagnostic_set_caret_max_width): Update for global_dc's m_printer - becoming reference printer. - (diagnostic_context::initialize): Update for m_printer becoming - m_reference_printer. Use ::make_unique to create it. Update for - m_output_format becoming m_output_sinks. - (diagnostic_context::color_init): Update the reference printer, - then update the printers for any output sinks that follow it. - (diagnostic_context::urls_init): Likewise. - (diagnostic_context::finish): Update comment. Update for - m_output_format becoming m_output_sinks. Update for m_printer - becoming m_reference_printer and use "delete" on it rather than - XDELETE. - (diagnostic_context::dump): Update for m_printer becoming - reference printer, and for multiple output sinks. - (diagnostic_context::set_output_format): Reimplement for - supporting multiple output sinks. - (diagnostic_context::get_output_format): Likewise. - (diagnostic_context::add_sink): New. - (diagnostic_context::supports_fnotice_on_stderr_p): New. - (diagnostic_context::set_pretty_printer): New. - (diagnostic_context::refresh_output_sinks): New. - (diagnostic_context::set_format_decoder): New. - (diagnostic_context::set_show_highlight_colors): New. - (diagnostic_context::set_prefixing_rule): New. - (diagnostic_context::report_diagnostic): Update to support - multiple output sinks. - (diagnostic_context::report_verbatim): New. - (diagnostic_context::emit_diagram): Update to support multiple - output sinks. - (diagnostic_context::error_recursion): Update to use - m_reference_printer. - (fancy_abort): Likewise. - (diagnostic_context::end_group): Update to support multiple - output sinks. - (diagnostic_output_format::dump): Implement. - (diagnostic_output_format::on_report_verbatim): Likewise. - (diagnostic_output_format_init): Drop - DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE. - (diagnostic_context::set_diagnostic_buffer): Reimplement to - support multiple output sinks. - (diagnostic_context::clear_diagnostic_buffer): Likewise. - (diagnostic_context::flush_diagnostic_buffer): Likewise. - (diagnostic_buffer::diagnostic_buffer): Initialize - m_per_format_buffers. - (diagnostic_buffer::~diagnostic_buffer): New dtor. - (diagnostic_buffer::dump): Reimplement to support multiple output - sinks. - (diagnostic_buffer::empty_p): Likewise. - (diagnostic_buffer::move_to): Likewise. - (diagnostic_buffer::ensure_per_format_buffer): Likewise, renaming - to... - (diagnostic_buffer::ensure_per_format_buffers): ...this. - * diagnostic.h - (DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE): Delete. - (class diagnostic_context): Add friend class diagnostic_buffer. - (diagnostic_context::set_pretty_printer): New decl. - (diagnostic_context::refresh_output_sinks): New decl. - (diagnostic_context::report_verbatim): New decl. - (diagnostic_context::get_output_format): Drop. - (diagnostic_context::set_show_highlight_colors): Drop body. - (diagnostic_context::set_format_decoder): New decl. - (diagnostic_context::set_prefixing_rule): New decl. - (diagnostic_context::clone_printer): Reimplement. - (diagnostic_context::get_reference_printer): New accessor. - (diagnostic_context::add_sink): New decl. - (diagnostic_context::supports_fnotice_on_stderr_p): New decl. - (diagnostic_context::m_printer): Replace with... - (diagnostic_context::m_reference_printer): ...this, and make - private. - (diagnostic_context::m_output_format): Replace with... - (diagnostic_context::m_output_sinks): ...this. - (diagnostic_format_decoder): Delete. - (diagnostic_prefixing_rule): Delete. - (diagnostic_ready_p): Delete. - * doc/invoke.texi: Document -fdiagnostics-add-output= and - -fdiagnostics-set-output=. - * gcc.cc: Include "opts-diagnostic.h". - (driver_handle_option): Handle cases OPT_fdiagnostics_add_output_ - and OPT_fdiagnostics_set_output_. - * opts-diagnostic.cc: New file. - * opts-diagnostic.h (handle_OPT_fdiagnostics_add_output_): New decl. - (handle_OPT_fdiagnostics_set_output_): New decl. - * opts-global.cc (init_options_once): Update for global_dc's - m_printer becoming reference printer. Call - global_dc->refresh_output_sinks. - * opts.cc (common_handle_option): Replace use of - diagnostic_prefixing_rule with dc->set_prefixing_rule. Handle - cases OPT_fdiagnostics_add_output_ and - OPT_fdiagnostics_set_output_. Update for m_printer becoming - reference printer. - * selftest-diagnostic.cc - (selftest::test_diagnostic_context::test_diagnostic_context): - Update for m_printer becoming reference printer. - (test_diagnostic_context::test_show_locus): Likewise. - * selftest-run-tests.cc (selftest::run_tests): Call - selftest::opts_diagnostic_cc_tests. - * selftest.h (selftest::opts_diagnostic_cc_tests): New decl. - * simple-diagnostic-path.cc - (selftest::simple_diagnostic_path_cc_tests): Use reference - printer. - * toplev.cc (announce_function): Update for global_dc's m_printer - becoming reference printer. - (toplev::main): Likewise. - * tree-diagnostic.cc (tree_diagnostics_defaults): Replace use of - diagnostic_format_decoder with context->set_format_decoder. - * tree-diagnostic.h - (tree_dump_pretty_printer::tree_dump_pretty_printer): Update for - global_dc's m_printer becoming reference printer. - * tree.cc (escaped_string::escape): Likewise. - (selftest::test_escaped_strings): Likewise. - -2024-10-29 Andrew Pinski - - PR target/117346 - * config/aarch64/aarch64.cc (aarch64_gen_ccmp_first): Call - canonicalize_comparison before figuring out the cmp_mode/cc_mode. - (aarch64_gen_ccmp_next): Likewise. - -2024-10-29 Andi Kleen - - PR middle-end/117091 - * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests): - Change clustering algorithm to simple greedy. - -2024-10-29 Andi Kleen - - PR middle-end/117091 - * gimple-if-to-switch.cc (if_chain::is_beneficial): Update - find_bit_test call. - * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests): - Get max_c argument and bail out early if all case labels are - unique. - (switch_decision_tree::compute_cases_per_edge): Record number of - targets per label and return. - (switch_decision_tree::analyze_switch_statement): ... pass to - find_bit_tests. - * tree-switch-conversion.h: Update prototypes. - -2024-10-29 Andi Kleen - - * common.opt: Enable -fbit-tests and -fjump-tables only at -O1. - * opts.cc (default_options_table): Dito. - -2024-10-29 Eric Botcazou - - PR rtl-optimization/117327 - * reorg.cc (find_end_label): Do not return a dangling label at the - end of the function and adjust commentary. - -2024-10-29 Andrew Pinski - - PR target/117349 - * config/aarch64/aarch64.cc (aarch64_rtx_costs): Remove - unnecessary casts to rtx_code. - (aarch64_gen_ccmp_first): Likewise. - (aarch64_gen_ccmp_next): Likewise. - -2024-10-29 Tsung Chun Lin - - * common/config/riscv/riscv-common.cc: M implies Zmmul. - -2024-10-29 yulong - - * config.gcc: Add riscv_cmo.h. - * config/riscv/riscv_cmo.h: New file. - -2024-10-29 Pan Li - Juzhe-Zhong - - * config/riscv/autovec.md (mask_len_strided_load_): Add - new pattern for MASK_LEN_STRIDED_LOAD. - (mask_len_strided_store_): Ditto but for store. - * config/riscv/riscv-protos.h (expand_strided_load): Add new - func decl to expand strided load. - (expand_strided_store): Ditto but for store. - * config/riscv/riscv-v.cc (expand_strided_load): Add new - func impl to expand strided load. - (expand_strided_store): Ditto but for store. - -2024-10-29 Pan Li - Juzhe-Zhong - - * tree-vect-stmts.cc (vect_get_strided_load_store_ops): Handle - MASK_LEN_STRIDED_LOAD{STORE} after supported check. - (vectorizable_store): Generate MASK_LEN_STRIDED_LOAD when the offset - of gater is not vector type. - (vectorizable_load): Ditto but for store. - -2024-10-29 Pan Li - Juzhe-Zhong - - * internal-fn.cc (strided_load_direct): Add new define direct - for strided load. - (strided_store_direct): Ditto but for store. - (expand_strided_load_optab_fn): Add new func to expand the IFN - MASK_LEN_STRIDED_LOAD in middle-end. - (expand_strided_store_optab_fn): Ditto but for store. - (direct_strided_load_optab_supported_p): Add define for stride - load optab supported. - (direct_strided_store_optab_supported_p): Ditto but for store. - (internal_fn_len_index): Add strided load/store len index. - (internal_fn_mask_index): Ditto but for mask. - (internal_fn_stored_value_index): Add strided store value index. - * internal-fn.def (MASK_LEN_STRIDED_LOAD): Add new IFN for - strided load. - (MASK_LEN_STRIDED_STORE): Ditto but for store. - * optabs.def (mask_len_strided_load_optab): Add strided load optab. - (mask_len_strided_store_optab): Add strided store optab. - -2024-10-29 Richard Biener - - * tree-vect-patterns.cc (type_conversion_p): Remove. - (vect_recog_mixed_size_cond_pattern): Likewise. - (vect_vect_recog_func_ptrs): Remove vect_recog_mixed_size_cond_pattern - entry. - -2024-10-29 Richard Biener - - * tree-vect-patterns.cc (vect_recog_mask_conversion_pattern): - Remove COMPARISON_CLASS_P rhs1 of COND_EXPR case and assert - it doesn't happen. - -2024-10-29 David Malcolm - - PR jit/117275 - * varasm.cc (process_pending_assemble_externals): Reset - pending_assemble_externals_set to nullptr after deleting it. - (varasm_cc_finalize): Delete pending_assemble_externals_set. - -2024-10-29 Richard Biener - - PR tree-optimization/117343 - * tree-vect-slp.cc (vect_optimize_slp_pass::build_vertices): - Support re-building the SLP graph. - (vect_optimize_slp_pass::run): Re-build the SLP graph before - decide_masked_load_lanes. - -2024-10-29 Richard Biener - - PR tree-optimization/117333 - * tree-data-ref.cc (dr_may_alias_p): Guard against NULL - access size. - -2024-10-29 Alfie Richards - Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (vld1q_impl): Add support - for predicated version. - (vst1q_impl): Likewise. - (vstrq_impl): New class. - (vldrq_impl): New class. - (vldrbq): New. - (vldrhq): New. - (vldrwq): New. - (vstrbq): New. - (vstrhq): New. - (vstrwq): New. - * config/arm/arm-mve-builtins-base.def (vld1q): Add predicated - version. - (vldrbq): New. - (vldrhq): New. - (vldrwq): New. - (vst1q): Add predicated version. - (vstrbq): New. - (vstrhq): New. - (vstrwq): New. - (vrev32q): Update types to float_16. - * config/arm/arm-mve-builtins-base.h (vldrbq): New. - (vldrhq): New. - (vldrwq): New. - (vstrbq): New. - (vstrhq): New. - (vstrwq): New. - * config/arm/arm-mve-builtins-functions.h (memory_vector_mode): - Remove conversion of floating point vectors to integer. - * config/arm/arm-mve-builtins.cc (TYPES_float16): Change to... - (TYPES_float_16): ...this. - (TYPES_float_32): New. - (float16): Change to... - (float_16): ...this. - (float_32): New. - (preds_z_or_none): New. - (function_resolver::check_gp_argument): Add support for _z - predicate. - * config/arm/arm_mve.h (vstrbq): Remove. - (vstrbq_p): Likewise. - (vstrhq): Likewise. - (vstrhq_p): Likewise. - (vstrwq): Likewise. - (vstrwq_p): Likewise. - (vst1q_p): Likewise. - (vld1q_z): Likewise. - (vldrbq_s8): Likewise. - (vldrbq_u8): Likewise. - (vldrbq_s16): Likewise. - (vldrbq_u16): Likewise. - (vldrbq_s32): Likewise. - (vldrbq_u32): Likewise. - (vstrbq_s8): Likewise. - (vstrbq_s32): Likewise. - (vstrbq_s16): Likewise. - (vstrbq_u8): Likewise. - (vstrbq_u32): Likewise. - (vstrbq_u16): Likewise. - (vstrbq_p_s8): Likewise. - (vstrbq_p_s32): Likewise. - (vstrbq_p_s16): Likewise. - (vstrbq_p_u8): Likewise. - (vstrbq_p_u32): Likewise. - (vstrbq_p_u16): Likewise. - (vldrbq_z_s16): Likewise. - (vldrbq_z_u8): Likewise. - (vldrbq_z_s8): Likewise. - (vldrbq_z_s32): Likewise. - (vldrbq_z_u16): Likewise. - (vldrbq_z_u32): Likewise. - (vldrhq_s32): Likewise. - (vldrhq_s16): Likewise. - (vldrhq_u32): Likewise. - (vldrhq_u16): Likewise. - (vldrhq_z_s32): Likewise. - (vldrhq_z_s16): Likewise. - (vldrhq_z_u32): Likewise. - (vldrhq_z_u16): Likewise. - (vldrwq_s32): Likewise. - (vldrwq_u32): Likewise. - (vldrwq_z_s32): Likewise. - (vldrwq_z_u32): Likewise. - (vldrhq_f16): Likewise. - (vldrhq_z_f16): Likewise. - (vldrwq_f32): Likewise. - (vldrwq_z_f32): Likewise. - (vstrhq_f16): Likewise. - (vstrhq_s32): Likewise. - (vstrhq_s16): Likewise. - (vstrhq_u32): Likewise. - (vstrhq_u16): Likewise. - (vstrhq_p_f16): Likewise. - (vstrhq_p_s32): Likewise. - (vstrhq_p_s16): Likewise. - (vstrhq_p_u32): Likewise. - (vstrhq_p_u16): Likewise. - (vstrwq_f32): Likewise. - (vstrwq_s32): Likewise. - (vstrwq_u32): Likewise. - (vstrwq_p_f32): Likewise. - (vstrwq_p_s32): Likewise. - (vstrwq_p_u32): Likewise. - (vst1q_p_u8): Likewise. - (vst1q_p_s8): Likewise. - (vld1q_z_u8): Likewise. - (vld1q_z_s8): Likewise. - (vst1q_p_u16): Likewise. - (vst1q_p_s16): Likewise. - (vld1q_z_u16): Likewise. - (vld1q_z_s16): Likewise. - (vst1q_p_u32): Likewise. - (vst1q_p_s32): Likewise. - (vld1q_z_u32): Likewise. - (vld1q_z_s32): Likewise. - (vld1q_z_f16): Likewise. - (vst1q_p_f16): Likewise. - (vld1q_z_f32): Likewise. - (vst1q_p_f32): Likewise. - (__arm_vstrbq_s8): Likewise. - (__arm_vstrbq_s32): Likewise. - (__arm_vstrbq_s16): Likewise. - (__arm_vstrbq_u8): Likewise. - (__arm_vstrbq_u32): Likewise. - (__arm_vstrbq_u16): Likewise. - (__arm_vldrbq_s8): Likewise. - (__arm_vldrbq_u8): Likewise. - (__arm_vldrbq_s16): Likewise. - (__arm_vldrbq_u16): Likewise. - (__arm_vldrbq_s32): Likewise. - (__arm_vldrbq_u32): Likewise. - (__arm_vstrbq_p_s8): Likewise. - (__arm_vstrbq_p_s32): Likewise. - (__arm_vstrbq_p_s16): Likewise. - (__arm_vstrbq_p_u8): Likewise. - (__arm_vstrbq_p_u32): Likewise. - (__arm_vstrbq_p_u16): Likewise. - (__arm_vldrbq_z_s8): Likewise. - (__arm_vldrbq_z_s32): Likewise. - (__arm_vldrbq_z_s16): Likewise. - (__arm_vldrbq_z_u8): Likewise. - (__arm_vldrbq_z_u32): Likewise. - (__arm_vldrbq_z_u16): Likewise. - (__arm_vldrhq_s32): Likewise. - (__arm_vldrhq_s16): Likewise. - (__arm_vldrhq_u32): Likewise. - (__arm_vldrhq_u16): Likewise. - (__arm_vldrhq_z_s32): Likewise. - (__arm_vldrhq_z_s16): Likewise. - (__arm_vldrhq_z_u32): Likewise. - (__arm_vldrhq_z_u16): Likewise. - (__arm_vldrwq_s32): Likewise. - (__arm_vldrwq_u32): Likewise. - (__arm_vldrwq_z_s32): Likewise. - (__arm_vldrwq_z_u32): Likewise. - (__arm_vstrhq_s32): Likewise. - (__arm_vstrhq_s16): Likewise. - (__arm_vstrhq_u32): Likewise. - (__arm_vstrhq_u16): Likewise. - (__arm_vstrhq_p_s32): Likewise. - (__arm_vstrhq_p_s16): Likewise. - (__arm_vstrhq_p_u32): Likewise. - (__arm_vstrhq_p_u16): Likewise. - (__arm_vstrwq_s32): Likewise. - (__arm_vstrwq_u32): Likewise. - (__arm_vstrwq_p_s32): Likewise. - (__arm_vstrwq_p_u32): Likewise. - (__arm_vst1q_p_u8): Likewise. - (__arm_vst1q_p_s8): Likewise. - (__arm_vld1q_z_u8): Likewise. - (__arm_vld1q_z_s8): Likewise. - (__arm_vst1q_p_u16): Likewise. - (__arm_vst1q_p_s16): Likewise. - (__arm_vld1q_z_u16): Likewise. - (__arm_vld1q_z_s16): Likewise. - (__arm_vst1q_p_u32): Likewise. - (__arm_vst1q_p_s32): Likewise. - (__arm_vld1q_z_u32): Likewise. - (__arm_vld1q_z_s32): Likewise. - (__arm_vldrwq_f32): Likewise. - (__arm_vldrwq_z_f32): Likewise. - (__arm_vldrhq_z_f16): Likewise. - (__arm_vldrhq_f16): Likewise. - (__arm_vstrwq_p_f32): Likewise. - (__arm_vstrwq_f32): Likewise. - (__arm_vstrhq_f16): Likewise. - (__arm_vstrhq_p_f16): Likewise. - (__arm_vld1q_z_f16): Likewise. - (__arm_vst1q_p_f16): Likewise. - (__arm_vld1q_z_f32): Likewise. - (__arm_vst2q_f32): Likewise. - (__arm_vst1q_p_f32): Likewise. - (__arm_vstrbq): Likewise. - (__arm_vstrbq_p): Likewise. - (__arm_vstrhq): Likewise. - (__arm_vstrhq_p): Likewise. - (__arm_vstrwq): Likewise. - (__arm_vstrwq_p): Likewise. - (__arm_vst1q_p): Likewise. - (__arm_vld1q_z): Likewise. - * config/arm/arm_mve_builtins.def: - (vstrbq_s): Delete. - (vstrbq_u): Likewise. - (vldrbq_s): Likewise. - (vldrbq_u): Likewise. - (vstrbq_p_s): Likewise. - (vstrbq_p_u): Likewise. - (vldrbq_z_s): Likewise. - (vldrbq_z_u): Likewise. - (vld1q_u): Likewise. - (vld1q_s): Likewise. - (vldrhq_z_u): Likewise. - (vldrhq_u): Likewise. - (vldrhq_z_s): Likewise. - (vldrhq_s): Likewise. - (vld1q_f): Likewise. - (vldrhq_f): Likewise. - (vldrhq_z_f): Likewise. - (vldrwq_f): Likewise. - (vldrwq_s): Likewise. - (vldrwq_u): Likewise. - (vldrwq_z_f): Likewise. - (vldrwq_z_s): Likewise. - (vldrwq_z_u): Likewise. - (vst1q_u): Likewise. - (vst1q_s): Likewise. - (vstrhq_p_u): Likewise. - (vstrhq_u): Likewise. - (vstrhq_p_s): Likewise. - (vstrhq_s): Likewise. - (vst1q_f): Likewise. - (vstrhq_f): Likewise. - (vstrhq_p_f): Likewise. - (vstrwq_f): Likewise. - (vstrwq_s): Likewise. - (vstrwq_u): Likewise. - (vstrwq_p_f): Likewise. - (vstrwq_p_s): Likewise. - (vstrwq_p_u): Likewise. - * config/arm/iterators.md (MVE_w_narrow_TYPE): New iterator. - (MVE_w_narrow_type): New iterator. - (MVE_wide_n_TYPE): New attribute. - (MVE_wide_n_type): New attribute. - (MVE_wide_n_sz_elem): New attribute. - (MVE_wide_n_VPRED): New attribute. - (MVE_elem_ch): New attribute. - (supf): Remove VSTRBQ_S, VSTRBQ_U, VLDRBQ_S, VLDRBQ_U, VLD1Q_S, - VLD1Q_U, VLDRHQ_S, VLDRHQ_U, VLDRWQ_S, VLDRWQ_U, VST1Q_S, VST1Q_U, - VSTRHQ_S, VSTRHQ_U, VSTRWQ_S, VSTRWQ_U. - (VSTRBQ, VLDRBQ, VLD1Q, VLDRHQ, VLDRWQ, VST1Q, VSTRHQ, VSTRWQ): - Delete. - * config/arm/mve.md (mve_vstrbq_): Remove. - (mve_vldrbq_): Likewise. - (mve_vstrbq_p_): Likewise. - (mve_vldrbq_z_): Likewise. - (mve_vldrhq_fv8hf): Likewise. - (mve_vldrhq_): Likewise. - (mve_vldrhq_z_fv8hf): Likewise. - (mve_vldrhq_z_): Likewise. - (mve_vldrwq_fv4sf): Likewise. - (mve_vldrwq_v4si): Likewise. - (mve_vldrwq_z_fv4sf): Likewise. - (mve_vldrwq_z_v4si): Likewise. - (@mve_vld1q_f): Likewise. - (@mve_vld1q_): Likewise. - (mve_vstrhq_fv8hf): Likewise. - (mve_vstrhq_p_fv8hf): Likewise. - (mve_vstrhq_p_): Likewise. - (mve_vstrhq_): Likewise. - (mve_vstrwq_fv4sf): Likewise. - (mve_vstrwq_p_fv4sf): Likewise. - (mve_vstrwq_p_v4si): Likewise. - (mve_vstrwq_v4si): Likewise. - (@mve_vst1q_f): Likewise. - (@mve_vst1q_): Likewise. - (@mve_vstrq_): New. - (@mve_vstrq_p_): New. - (@mve_vstrq_truncate_): New. - (@mve_vstrq_p_truncate_): New. - (@mve_vldrq_): New. - (@mve_vldrq_z_): New. - (@mve_vldrq_extend_): New. - (@mve_vldrq_z_extend_): New. - * config/arm/unspecs.md: - (VSTRBQ_S): Remove. - (VSTRBQ_U): Likewise. - (VLDRBQ_S): Likewise. - (VLDRBQ_U): Likewise. - (VLD1Q_F): Likewise. - (VLD1Q_S): Likewise. - (VLD1Q_U): Likewise. - (VLDRHQ_F): Likewise. - (VLDRHQ_U): Likewise. - (VLDRHQ_S): Likewise. - (VLDRWQ_F): Likewise. - (VLDRWQ_S): Likewise. - (VLDRWQ_U): Likewise. - (VSTRHQ_F): Likewise. - (VST1Q_S): Likewise. - (VST1Q_U): Likewise. - (VSTRHQ_U): Likewise. - (VSTRWQ_S): Likewise. - (VSTRWQ_U): Likewise. - (VSTRWQ_F): Likewise. - (VST1Q_F): Likewise. - (VLDRQ): New. - (VLDRQ_Z): Likewise. - (VLDRQ_EXT): Likewise. - (VLDRQ_EXT_Z): Likewise. - (VSTRQ): Likewise. - (VSTRQ_P): Likewise. - (VSTRQ_TRUNC): Likewise. - (VSTRQ_TRUNC_P): Likewise. - -2024-10-29 Alfie Richards - Christophe Lyon - - * config/arm/arm-mve-builtins.cc - (function_expander::use_contiguous_load_insn): Add support for - PRED_z. - (function_expander::use_contiguous_store_insn): Add support for - PRED_p. - -2024-10-29 Alfie Richards - - * config/arm/arm-mve-builtins-functions.h - (load_extending): New class. - (store_truncating): New class. - * config/arm/arm-protos.h (arm_mve_data_mode): New helper function. - * config/arm/arm.cc (arm_mve_data_mode): New helper function. - -2024-10-29 Alfie Richards - - * config/arm/arm-mve-builtins-shapes.cc: - (load_ext): New. - * config/arm/arm-mve-builtins-shapes.h: - (load_ext): New. - -2024-10-29 Jakub Jelinek - - PR c/117030 - * doc/extend.texi (__builtin_stdc_rotate_left, - __builtin_stdc_rotate_right): Document. - -2024-10-28 Sam James - - * opts-common.cc (prune_options): Fix typo. - -2024-10-28 Andrew MacLeod - - * range-op-ptr.cc (operator_bitwise_or::fold_range): Fix logic - for setting nonzero. - -2024-10-28 Kyrylo Tkachov - - * config/aarch64/arm_neon.h (vxarq_u64): Rename imm6 to __imm6. - -2024-10-28 Jason Merrill - - * doc/install.texi (Prerequisites): Update to C++14. - -2024-10-28 Jeff Law - - PR target/117316 - * config/riscv/riscv.cc (riscv_tune_param): Drop initializer. - (*_tune_info): Add initializers for code alignments. - -2024-10-28 Richard Biener - - PR tree-optimization/117307 - * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): - Properly compute STMT_VINFO_SLP_VECT_ONLY. Set it on all - parts of a split group. - -2024-10-28 Tobias Burnus - - * tree-core.h (enum omp_clause_code): Add comments to cross ref to - OMP_CLAUSE_DECL etc. and mark the ranges used in the range checks. - -2024-10-28 Andrew Pinski - - PR middle-end/111285 - * tree-vect-generic.cc (do_unop): Use a signed type for the - operand if the operation was ABSU_EXPR. - -2024-10-28 Andrew Pinski - - * tree-ssa-phiopt.cc (match_simplify_replacement): Move - check for maybe_undef_p earlier. - -2024-10-28 Richard Biener - - * tree-vect-patterns.cc (check_bool_pattern): For comparisons - we do nothing if we can expand them or we can't replace them - with a ? -1 : 0 condition - but the latter would require - expanding the comparison which we proved we can't. So do - nothing, aka not think vec_cond{u,eq,} will save us. - -2024-10-28 xuli - - PR target/117286 - * config/riscv/riscv-vector-builtins-bases.cc: Do not expand NULL return. - -2024-10-27 Fangrui Song - - * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): Transform -mfdpic. - * config/arm/linux-eabi.h (TARGET_FDPIC_LINKER_EMULATION): Define. - (SUBTARGET_EXTRA_LINK_SPEC): Use TARGET_FDPIC_LINKER_EMULATION - if -mfdpic. - -2024-10-27 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.cc (TARGET_DIFFERENT_ADDR_DISPLACEMENT_P): - Add new target hook to always return true. - * config/xtensa/xtensa.md (movsi_internal): - Revert the previous changes. - -2024-10-27 Jakub Jelinek - - * configure.ac (gcc_AC_CHECK_DECLS): Add fmemopen. - * configure: Regenerate. - * config.in: Regenerate. - * Makefile.in (build/genmatch.o): Add -DGENMATCH_SELFTESTS to - BUILD_CPPFLAGS for stage2+ genmatch. - * genmatch.cc (test_diag_vfprintf, genmatch_diag_selftests): New - functions. - (main): Call genmatch_diag_selftests. - * pretty-print.cc (test_pp_format): Add two tests, one for %M$.*N$s - and one for %M$.Ns. - -2024-10-27 Jakub Jelinek - - * doc/invoke.texi (Wtrailing-whitespace=): Change - blank argument to blanks and space argument to any. - -2024-10-26 Andrew Pinski - - PR tree-optimization/117234 - * tree-eh.cc (operation_could_trap_helper_p): Treat - PAREN_EXPR and VEC_DUPLICATE_EXPR like constructing - expressions. - -2024-10-26 Richard Biener - - * tree-vect-slp.cc (vect_get_operand_map): Mark - COMPARISON_CLASS_P COND_EXPR condition path unreachable. - * tree-vect-stmts.cc (vect_is_simple_use): Likewise. - (vectorizable_condition): Assert the COND_EXPR condition isn't - COMPARISON_CLASS_P. - -2024-10-26 Richard Biener - - * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Create - a separate pattern stmt for the comparison in the generated - COND_EXPR. - -2024-10-26 Richard Biener - - * tree-vect-patterns.cc (vect_recog_divmod_pattern): Build - separate comparion pattern for the condition of a COND_EXPR - pattern. - -2024-10-25 Andrew Pinski - - PR rtl-optimization/58195 - * simplify-rtx.cc (simplify_context::simplify_ternary_operation): Handle - `a != 0 ? -a : 0` and `a == 0 ? 0 : -a`. - -2024-10-25 Andrew Pinski - - * config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Support - 3 cores and 3 variants. If there is one core but multiple variant, - then treat the variant as being all. - -2024-10-25 Wilco Dijkstra - - PR target/117292 - * config/aarch64/aarch64-simd.md (xor3): Use - 'De' constraint. - * config/aarch64/constraints.md (De): Add new constraint. - -2024-10-25 Andrew Carlotti - - * config/aarch64/aarch64-builtins.cc (MODE_d_mf8): New. - (MODE_q_mf8): New. - (QUAL_mf8): New. - (VREINTERPRET_BUILTINS1): Add mf8 entry. - (VREINTERPRET_BUILTINS): Ditto. - (VREINTERPRETQ_BUILTINS1): Ditto. - (VREINTERPRETQ_BUILTINS): Ditto. - (aarch64_lookup_simd_type_in_table): Match modal_float bit - -2024-10-25 Andrew Carlotti - - * config/aarch64/aarch64-builtins.cc - (aarch64_init_simd_builtin_types): Initialise FP8 simd types. - * config/aarch64/aarch64-builtins.h - (enum aarch64_type_qualifiers): Add qualifier_modal_float bit. - * config/aarch64/aarch64-simd-builtin-types.def: - Add Mfloat8x{8|16}_t types. - * config/aarch64/arm_neon.h: Add mfloat8x{8|16}_t typedefs. - -2024-10-25 Jennifer Schmitz - - * match.pd: Fold pow (1.0/x, y) -> pow (x, -y) and - pow (0.0, x) -> 0.0. - -2024-10-25 Pan Li - - * match.pd: Remove unsigned branch form 3 for SAT_ADD, and - add simplify to branchless instead. - -2024-10-25 Jakub Jelinek - - PR middle-end/117249 - * tree-ssa-structalias.cc (insert_vi_for_tree): Move put calls out of - gcc_assert. - * lto-cgraph.cc (lto_symtab_encoder_delete_node): Likewise. - * gimple-ssa-strength-reduction.cc (get_alternative_base, - add_cand_for_stmt): Likewise. - * tree-eh.cc (add_stmt_to_eh_lp_fn): Likewise. - * except.cc (duplicate_eh_regions_1): Likewise. - * tree-ssa-reassoc.cc (insert_operand_rank): Likewise. - * config/nvptx/nvptx.cc (nvptx_expand_call): Use == rather than = in - gcc_assert. - * opts-common.cc (jobserver_info::disconnect): Call close outside of - gcc_assert and only check result in it. - (jobserver_info::return_token): Call write outside of gcc_assert and - only check result in it. - * genautomata.cc (output_default_latencies): Move j++ side-effect - outside of gcc_assert. - * tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address): Use - == rather than = in gcc_assert. - * cgraph.cc (symbol_table::create_edge): Move ++edges_max_uid - side-effect outside of gcc_assert. - -2024-10-25 Richard Biener - - * optabs-tree.h (expand_vec_cond_expr_p): Default the - comparison code to ERROR_MARK. - * match.pd: Remove unneded expand_vec_cond_expr_p args. - * tree-vect-generic.cc (expand_vector_condition): Likewise. - * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): - Likewise. - * tree-vect-stmts.cc (vectorizable_simd_clone_call): Likewise. - (scan_store_can_perm_p): Likewise. - (vectorizable_condition): Likewise. - -2024-10-25 Richard Biener - - * genmatch.cc (commutative_op): Add paramter to indicate whether - all compares should be considered commutative. Handle - hypot, add_overflow and mul_overflow. - (parser::parse_expr): Simplify 'c' handling by using - commutative_op and error out when the operation is not. - * match.pd ((minmax:c @0 NaN@1) -> @0): Use :C, we know - what we are doing. - -2024-10-25 Richard Biener - - PR tree-optimization/117277 - * tree-vect-loop.cc (vect_transform_loop): Remove CLOBBERs - and prefetches before doing any code generation. - -2024-10-25 Richard Biener - - PR tree-optimization/116575 - * tree-vect-slp.cc (vect_get_and_check_slp_defs): Handle - gaps, aka NULL scalar stmt. - (vect_build_slp_tree_2): Allow gaps in the middle of a - grouped mask load. When the mask of a grouped mask load - is uniform do single-lane discovery for the mask and - insert a splat VEC_PERM_EXPR node. - (vect_optimize_slp_pass::decide_masked_load_lanes): New - function. - (vect_optimize_slp_pass::run): Call it. - -2024-10-25 Richard Biener - - * tree-vect-stmts.cc (vect_check_scalar_mask): Only check - the scalar type for constant or extern defs. - -2024-10-25 Jakub Jelinek - - * lra-assigns.cc: Remove trailing whitespace. - * symtab.cc: Likewise. - * stmt.cc: Likewise. - * cgraphbuild.cc: Likewise. - * cfgcleanup.cc: Likewise. - * loop-init.cc: Likewise. - * df-problems.cc: Likewise. - * diagnostic-macro-unwinding.cc: Likewise. - * langhooks.h: Likewise. - * except.cc: Likewise. - * tree-vect-loop.cc: Likewise. - * coverage.cc: Likewise. - * hash-table.cc: Likewise. - * ggc-page.cc: Likewise. - * gimple-ssa-strength-reduction.cc: Likewise. - * tree-parloops.cc: Likewise. - * internal-fn.cc: Likewise. - * ipa-split.cc: Likewise. - * calls.cc: Likewise. - * reorg.cc: Likewise. - * sbitmap.h: Likewise. - * omp-offload.cc: Likewise. - * cfgrtl.cc: Likewise. - * reginfo.cc: Likewise. - * gengtype.h: Likewise. - * omp-general.h: Likewise. - * ipa-comdats.cc: Likewise. - * gimple-range-edge.h: Likewise. - * tree-ssa-structalias.cc: Likewise. - * target.def: Likewise. - * basic-block.h: Likewise. - * graphite-isl-ast-to-gimple.cc: Likewise. - * auto-profile.cc: Likewise. - * optabs.cc: Likewise. - * gengtype-lex.l: Likewise. - * optabs.def: Likewise. - * ira-build.cc: Likewise. - * ira.cc: Likewise. - * function.h: Likewise. - * tree-ssa-propagate.cc: Likewise. - * gcov-io.cc: Likewise. - * builtin-types.def: Likewise. - * ddg.cc: Likewise. - * lra-spills.cc: Likewise. - * cfg.cc: Likewise. - * bitmap.cc: Likewise. - * gimple-range-gori.h: Likewise. - * tree-ssa-loop-im.cc: Likewise. - * cfghooks.h: Likewise. - * genmatch.cc: Likewise. - * explow.cc: Likewise. - * lto-streamer-in.cc: Likewise. - * graphite-scop-detection.cc: Likewise. - * ipa-prop.cc: Likewise. - * gcc.cc: Likewise. - * vec.h: Likewise. - * cfgexpand.cc: Likewise. - * config/alpha/vms.h: Likewise. - * config/alpha/alpha.cc: Likewise. - * config/alpha/driver-alpha.cc: Likewise. - * config/alpha/elf.h: Likewise. - * config/iq2000/iq2000.h: Likewise. - * config/iq2000/iq2000.cc: Likewise. - * config/pa/pa-64.h: Likewise. - * config/pa/som.h: Likewise. - * config/pa/pa.cc: Likewise. - * config/pa/pa.h: Likewise. - * config/pa/pa32-regs.h: Likewise. - * config/c6x/c6x.cc: Likewise. - * config/openbsd-stdint.h: Likewise. - * config/elfos.h: Likewise. - * config/lm32/lm32.cc: Likewise. - * config/lm32/lm32.h: Likewise. - * config/lm32/lm32-protos.h: Likewise. - * config/darwin-c.cc: Likewise. - * config/rx/rx.cc: Likewise. - * config/host-darwin.h: Likewise. - * config/netbsd.h: Likewise. - * config/ia64/ia64.cc: Likewise. - * config/ia64/freebsd.h: Likewise. - * config/avr/avr-c.cc: Likewise. - * config/avr/avr.cc: Likewise. - * config/avr/avr-arch.h: Likewise. - * config/avr/avr.h: Likewise. - * config/avr/stdfix.h: Likewise. - * config/avr/gen-avr-mmcu-specs.cc: Likewise. - * config/avr/avr-log.cc: Likewise. - * config/avr/elf.h: Likewise. - * config/avr/gen-avr-mmcu-texi.cc: Likewise. - * config/avr/avr-devices.cc: Likewise. - * config/nvptx/nvptx.cc: Likewise. - * config/vx-common.h: Likewise. - * config/sol2.cc: Likewise. - * config/rl78/rl78.cc: Likewise. - * config/cris/cris.cc: Likewise. - * config/arm/symbian.h: Likewise. - * config/arm/unknown-elf.h: Likewise. - * config/arm/linux-eabi.h: Likewise. - * config/arm/arm.cc: Likewise. - * config/arm/arm-mve-builtins.h: Likewise. - * config/arm/bpabi.h: Likewise. - * config/arm/vxworks.h: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/aout.h: Likewise. - * config/arm/elf.h: Likewise. - * config/host-linux.cc: Likewise. - * config/sh/sh_treg_combine.cc: Likewise. - * config/sh/vxworks.h: Likewise. - * config/sh/elf.h: Likewise. - * config/sh/netbsd-elf.h: Likewise. - * config/sh/sh.cc: Likewise. - * config/sh/embed-elf.h: Likewise. - * config/sh/sh.h: Likewise. - * config/darwin-driver.cc: Likewise. - * config/m32c/m32c.cc: Likewise. - * config/frv/frv.cc: Likewise. - * config/openbsd.h: Likewise. - * config/aarch64/aarch64-protos.h: Likewise. - * config/aarch64/aarch64-builtins.cc: Likewise. - * config/aarch64/aarch64-cost-tables.h: Likewise. - * config/aarch64/aarch64.cc: Likewise. - * config/bfin/bfin.cc: Likewise. - * config/bfin/bfin.h: Likewise. - * config/bfin/bfin-protos.h: Likewise. - * config/i386/gmm_malloc.h: Likewise. - * config/i386/djgpp.h: Likewise. - * config/i386/sol2.h: Likewise. - * config/i386/stringop.def: Likewise. - * config/i386/i386-features.cc: Likewise. - * config/i386/openbsdelf.h: Likewise. - * config/i386/cpuid.h: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/smmintrin.h: Likewise. - * config/i386/avx10_2-512convertintrin.h: Likewise. - * config/i386/i386-options.cc: Likewise. - * config/i386/i386-opts.h: Likewise. - * config/i386/i386-expand.cc: Likewise. - * config/i386/avx512dqintrin.h: Likewise. - * config/i386/wmmintrin.h: Likewise. - * config/i386/gnu-user.h: Likewise. - * config/i386/host-mingw32.cc: Likewise. - * config/i386/avx10_2bf16intrin.h: Likewise. - * config/i386/cygwin.h: Likewise. - * config/i386/driver-i386.cc: Likewise. - * config/i386/biarch64.h: Likewise. - * config/i386/host-cygwin.cc: Likewise. - * config/i386/cygming.h: Likewise. - * config/i386/i386-builtins.cc: Likewise. - * config/i386/avx10_2convertintrin.h: Likewise. - * config/i386/i386.cc: Likewise. - * config/i386/gas.h: Likewise. - * config/i386/freebsd.h: Likewise. - * config/mingw/winnt-cxx.cc: Likewise. - * config/mingw/winnt.cc: Likewise. - * config/h8300/h8300.cc: Likewise. - * config/host-solaris.cc: Likewise. - * config/m32r/m32r.h: Likewise. - * config/m32r/m32r.cc: Likewise. - * config/darwin.h: Likewise. - * config/sparc/linux64.h: Likewise. - * config/sparc/sparc-protos.h: Likewise. - * config/sparc/sysv4.h: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/linux.h: Likewise. - * config/sparc/freebsd.h: Likewise. - * config/sparc/sparc.cc: Likewise. - * config/gcn/gcn-run.cc: Likewise. - * config/gcn/gcn.cc: Likewise. - * config/gcn/gcn-tree.cc: Likewise. - * config/kopensolaris-gnu.h: Likewise. - * config/nios2/nios2.h: Likewise. - * config/nios2/elf.h: Likewise. - * config/nios2/nios2.cc: Likewise. - * config/host-netbsd.cc: Likewise. - * config/rtems.h: Likewise. - * config/pdp11/pdp11.cc: Likewise. - * config/pdp11/pdp11.h: Likewise. - * config/mn10300/mn10300.cc: Likewise. - * config/mn10300/linux.h: Likewise. - * config/moxie/moxie.h: Likewise. - * config/moxie/moxie.cc: Likewise. - * config/rs6000/aix71.h: Likewise. - * config/rs6000/vec_types.h: Likewise. - * config/rs6000/xcoff.h: Likewise. - * config/rs6000/rs6000.cc: Likewise. - * config/rs6000/rs6000-internal.h: Likewise. - * config/rs6000/rs6000-p8swap.cc: Likewise. - * config/rs6000/rs6000-c.cc: Likewise. - * config/rs6000/aix.h: Likewise. - * config/rs6000/rs6000-logue.cc: Likewise. - * config/rs6000/rs6000-string.cc: Likewise. - * config/rs6000/rs6000-call.cc: Likewise. - * config/rs6000/ppu_intrinsics.h: Likewise. - * config/rs6000/altivec.h: Likewise. - * config/rs6000/darwin.h: Likewise. - * config/rs6000/host-darwin.cc: Likewise. - * config/rs6000/freebsd64.h: Likewise. - * config/rs6000/spu2vmx.h: Likewise. - * config/rs6000/linux.h: Likewise. - * config/rs6000/si2vmx.h: Likewise. - * config/rs6000/driver-rs6000.cc: Likewise. - * config/rs6000/freebsd.h: Likewise. - * config/vxworksae.h: Likewise. - * config/mips/frame-header-opt.cc: Likewise. - * config/mips/mips.h: Likewise. - * config/mips/mips.cc: Likewise. - * config/mips/sde.h: Likewise. - * config/darwin-protos.h: Likewise. - * config/mcore/mcore-elf.h: Likewise. - * config/mcore/mcore.h: Likewise. - * config/mcore/mcore.cc: Likewise. - * config/epiphany/epiphany.cc: Likewise. - * config/fr30/fr30.h: Likewise. - * config/fr30/fr30.cc: Likewise. - * config/riscv/riscv-vector-builtins-shapes.cc: Likewise. - * config/riscv/riscv-vector-builtins-bases.cc: Likewise. - * config/visium/visium.h: Likewise. - * config/mmix/mmix.cc: Likewise. - * config/v850/v850.cc: Likewise. - * config/v850/v850-c.cc: Likewise. - * config/v850/v850.h: Likewise. - * config/stormy16/stormy16.cc: Likewise. - * config/stormy16/stormy16-protos.h: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/arc/arc.cc: Likewise. - * config/vxworks.cc: Likewise. - * config/microblaze/microblaze-c.cc: Likewise. - * config/microblaze/microblaze-protos.h: Likewise. - * config/microblaze/microblaze.h: Likewise. - * config/microblaze/microblaze.cc: Likewise. - * config/freebsd-spec.h: Likewise. - * config/m68k/m68kelf.h: Likewise. - * config/m68k/m68k.cc: Likewise. - * config/m68k/netbsd-elf.h: Likewise. - * config/m68k/linux.h: Likewise. - * config/freebsd.h: Likewise. - * config/host-openbsd.cc: Likewise. - * regcprop.cc: Likewise. - * dumpfile.cc: Likewise. - * combine.cc: Likewise. - * tree-ssa-forwprop.cc: Likewise. - * ipa-profile.cc: Likewise. - * hw-doloop.cc: Likewise. - * opts.cc: Likewise. - * gcc-ar.cc: Likewise. - * tree-cfg.cc: Likewise. - * incpath.cc: Likewise. - * tree-ssa-sccvn.cc: Likewise. - * function.cc: Likewise. - * genattrtab.cc: Likewise. - * rtl.def: Likewise. - * genchecksum.cc: Likewise. - * profile.cc: Likewise. - * df-core.cc: Likewise. - * tree-pretty-print.cc: Likewise. - * tree.h: Likewise. - * plugin.cc: Likewise. - * tree-ssa-loop-ch.cc: Likewise. - * emit-rtl.cc: Likewise. - * haifa-sched.cc: Likewise. - * gimple-range-edge.cc: Likewise. - * range-op.cc: Likewise. - * tree-ssa-ccp.cc: Likewise. - * dwarf2cfi.cc: Likewise. - * recog.cc: Likewise. - * vtable-verify.cc: Likewise. - * system.h: Likewise. - * regrename.cc: Likewise. - * tree-ssa-dom.cc: Likewise. - * loop-unroll.cc: Likewise. - * lra-constraints.cc: Likewise. - * pretty-print.cc: Likewise. - * ifcvt.cc: Likewise. - * ipa.cc: Likewise. - * alloc-pool.h: Likewise. - * collect2.cc: Likewise. - * pointer-query.cc: Likewise. - * cfgloop.cc: Likewise. - * toplev.cc: Likewise. - * sese.cc: Likewise. - * gengtype.cc: Likewise. - * gimplify-me.cc: Likewise. - * double-int.cc: Likewise. - * bb-reorder.cc: Likewise. - * dwarf2out.cc: Likewise. - * tree-ssa-loop-ivcanon.cc: Likewise. - * tree-ssa-reassoc.cc: Likewise. - * cgraph.cc: Likewise. - * sel-sched.cc: Likewise. - * attribs.cc: Likewise. - * expr.cc: Likewise. - * tree-ssa-scopedtables.h: Likewise. - * gimple-range-cache.cc: Likewise. - * ipa-pure-const.cc: Likewise. - * tree-inline.cc: Likewise. - * genhooks.cc: Likewise. - * gimple-range-phi.h: Likewise. - * shrink-wrap.cc: Likewise. - * tree.cc: Likewise. - * gimple.cc: Likewise. - * backend.h: Likewise. - * opts-common.cc: Likewise. - * cfg-flags.def: Likewise. - * gcse-common.cc: Likewise. - * tree-ssa-scopedtables.cc: Likewise. - * ccmp.cc: Likewise. - * builtins.def: Likewise. - * builtin-attrs.def: Likewise. - * postreload.cc: Likewise. - * sched-deps.cc: Likewise. - * ipa-inline-transform.cc: Likewise. - * tree-vect-generic.cc: Likewise. - * ipa-polymorphic-call.cc: Likewise. - * builtins.cc: Likewise. - * sel-sched-ir.cc: Likewise. - * trans-mem.cc: Likewise. - * ipa-visibility.cc: Likewise. - * cgraph.h: Likewise. - * tree-ssa-phiopt.cc: Likewise. - * genopinit.cc: Likewise. - * ipa-inline.cc: Likewise. - * omp-low.cc: Likewise. - * ipa-utils.cc: Likewise. - * tree-ssa-math-opts.cc: Likewise. - * tree-ssa-ifcombine.cc: Likewise. - * gimple-range.cc: Likewise. - * ipa-fnsummary.cc: Likewise. - * ira-color.cc: Likewise. - * value-prof.cc: Likewise. - * varasm.cc: Likewise. - * ipa-icf.cc: Likewise. - * ira-emit.cc: Likewise. - * lto-streamer.h: Likewise. - * lto-wrapper.cc: Likewise. - * regs.h: Likewise. - * gengtype-parse.cc: Likewise. - * alias.cc: Likewise. - * lto-streamer.cc: Likewise. - * real.h: Likewise. - * wide-int.h: Likewise. - * targhooks.cc: Likewise. - * gimple-ssa-warn-access.cc: Likewise. - * real.cc: Likewise. - * ipa-reference.cc: Likewise. - * bitmap.h: Likewise. - * ginclude/float.h: Likewise. - * ginclude/stddef.h: Likewise. - * ginclude/stdarg.h: Likewise. - * ginclude/stdatomic.h: Likewise. - * optabs.h: Likewise. - * sel-sched-ir.h: Likewise. - * convert.cc: Likewise. - * cgraphunit.cc: Likewise. - * lra-remat.cc: Likewise. - * tree-if-conv.cc: Likewise. - * gcov-dump.cc: Likewise. - * tree-predcom.cc: Likewise. - * dominance.cc: Likewise. - * gimple-range-cache.h: Likewise. - * ipa-devirt.cc: Likewise. - * rtl.h: Likewise. - * ubsan.cc: Likewise. - * tree-ssa.cc: Likewise. - * ssa.h: Likewise. - * cse.cc: Likewise. - * jump.cc: Likewise. - * hwint.h: Likewise. - * caller-save.cc: Likewise. - * coretypes.h: Likewise. - * ipa-fnsummary.h: Likewise. - * tree-ssa-strlen.cc: Likewise. - * modulo-sched.cc: Likewise. - * cgraphclones.cc: Likewise. - * lto-cgraph.cc: Likewise. - * hw-doloop.h: Likewise. - * data-streamer.h: Likewise. - * compare-elim.cc: Likewise. - * profile-count.h: Likewise. - * tree-vect-loop-manip.cc: Likewise. - * ree.cc: Likewise. - * reload.cc: Likewise. - * tree-ssa-loop-split.cc: Likewise. - * tree-into-ssa.cc: Likewise. - * gcse.cc: Likewise. - * cfgloopmanip.cc: Likewise. - * df.h: Likewise. - * fold-const.cc: Likewise. - * wide-int.cc: Likewise. - * gengtype-state.cc: Likewise. - * sanitizer.def: Likewise. - * tree-ssa-sink.cc: Likewise. - * target-hooks-macros.h: Likewise. - * tree-ssa-pre.cc: Likewise. - * gimple-pretty-print.cc: Likewise. - * ipa-utils.h: Likewise. - * tree-outof-ssa.cc: Likewise. - * tree-ssa-coalesce.cc: Likewise. - * gimple-match.h: Likewise. - * tree-ssa-loop-niter.cc: Likewise. - * tree-loop-distribution.cc: Likewise. - * tree-emutls.cc: Likewise. - * tree-eh.cc: Likewise. - * varpool.cc: Likewise. - * ssa-iterators.h: Likewise. - * asan.cc: Likewise. - * reload1.cc: Likewise. - * cfgloopanal.cc: Likewise. - * tree-vectorizer.cc: Likewise. - * simplify-rtx.cc: Likewise. - * opts-global.cc: Likewise. - * gimple-ssa-store-merging.cc: Likewise. - * expmed.cc: Likewise. - * tree-ssa-loop-prefetch.cc: Likewise. - * tree-ssa-dse.h: Likewise. - * tree-vect-stmts.cc: Likewise. - * gimple-fold.cc: Likewise. - * lra-coalesce.cc: Likewise. - * data-streamer-out.cc: Likewise. - * diagnostic.cc: Likewise. - * tree-ssa-alias.cc: Likewise. - * tree-vect-patterns.cc: Likewise. - * common/common-target.def: Likewise. - * common/config/rx/rx-common.cc: Likewise. - * common/config/msp430/msp430-common.cc: Likewise. - * common/config/avr/avr-common.cc: Likewise. - * common/config/i386/i386-common.cc: Likewise. - * common/config/pdp11/pdp11-common.cc: Likewise. - * common/config/rs6000/rs6000-common.cc: Likewise. - * common/config/mcore/mcore-common.cc: Likewise. - * graphite.cc: Likewise. - * gimple-low.cc: Likewise. - * genmodes.cc: Likewise. - * gimple-loop-jam.cc: Likewise. - * lto-streamer-out.cc: Likewise. - * predict.cc: Likewise. - * omp-expand.cc: Likewise. - * gimple-array-bounds.cc: Likewise. - * predict.def: Likewise. - * opts.h: Likewise. - * tree-stdarg.cc: Likewise. - * gimplify.cc: Likewise. - * ira-lives.cc: Likewise. - * loop-doloop.cc: Likewise. - * lra.cc: Likewise. - * gimple-iterator.h: Likewise. - * tree-sra.cc: Likewise. - -2024-10-25 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-sve2.cc - (svaba_impl::fold): Fold svaba to svabd if op1 is all zeros. - -2024-10-24 Nathaniel Shead - - * tree.h (TYPE_WARN_IF_NOT_ALIGN_RAW): New accessor. - (TYPE_WARN_IF_NOT_ALIGN): Use it. - (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise. - -2024-10-24 Georg-Johann Lay - - PR target/116953 - * config/avr/avr.cc (avr_out_sbxx_branch): Revert previous fix - for PR116953 (r15-4078). Run extract_constrain_insn_cached - on the current insn after calling jump_over_one_insn_p. - -2024-10-24 David Malcolm - - PR other/116613 - * diagnostic-format-json.cc (make_json_for_path): Add "ref_pp" - param and use when obtaining event descriptions. - (json_output_format::on_report_diagnostic): Pass this format's - printer as the above. - * diagnostic-format-sarif.cc - (sarif_builder::make_location_object): Clone this format's printer - and use it to obtain the text of the message. - * diagnostic-path.cc: Include "pretty-print-markup.h". - (diagnostic_event::get_desc): New. - (path_label::get_text): Update for changes to diagnostic_event. - (event_range::print): Likewise. - (class element_event_desc): New. - (diagnostic_text_output_format::print_path): Update for changes to - diagnostic_event. - * diagnostic-path.h (diagnostic_event::get_desc): Replace with... - (diagnostic_event::print_desc): ...this. - (diagnostic_event::get_desc): Add this back for debugging, without - the bool param. - * pretty-print.cc (pp_printf_n): New. - * pretty-print.h (pp_printf_n): New decl. - * selftest-diagnostic-path.h (test_diagnostic_event::get_desc): - Convert to... - (test_diagnostic_event::print_desc): ...this. - * simple-diagnostic-path.cc (simple_diagnostic_event::print_desc): - New. - (selftest::test_intraprocedural_path): Use debug form of get_desc. - * simple-diagnostic-path.h (simple_diagnostic_event::get_desc): - Convert to... - (simple_diagnostic_event::print_desc): ...this, moving - implementation to test_diagnostic_event. - -2024-10-24 Thomas Schwinge - - PR other/116613 - * config/gcn/mkoffload.cc: Add '#define INCLUDE_MEMORY'. - -2024-10-24 David Malcolm - Gaius Mulley - - PR other/116613 - * asan.cc: Add #define INCLUDE_MEMORY. - * attribs.cc: Likewise. - (attr_access::array_as_string): Use - diagnostic_context::clone_printer and use unique_ptr. - * auto-profile.cc: Add #define INCLUDE_MEMORY. - * calls.cc: Likewise. - * cfganal.cc: Likewise. - * cfgexpand.cc: Likewise. - * cfghooks.cc: Likewise. - * cfgloop.cc: Likewise. - * cgraph.cc: Likewise. - * cgraphclones.cc: Likewise. - * cgraphunit.cc: Likewise. - * collect-utils.cc: Likewise. - * collect2.cc: Likewise. - * common/config/aarch64/aarch64-common.cc: Likewise. - * common/config/arm/arm-common.cc: Likewise. - * common/config/avr/avr-common.cc: Likewise. - * config/aarch64/aarch64-cc-fusion.cc: Likewise. - * config/aarch64/aarch64-early-ra.cc: Likewise. - * config/aarch64/aarch64-sve-builtins.cc: Likewise. - * config/arc/arc.cc: Likewise. - * config/arm/aarch-common.cc: Likewise. - * config/arm/arm-mve-builtins.cc: Likewise. - * config/avr/avr-devices.cc: Likewise. - * config/avr/driver-avr.cc: Likewise. - * config/bpf/bpf.cc: Likewise. - * config/bpf/btfext-out.cc: Likewise. - * config/bpf/core-builtins.cc: Likewise. - * config/darwin.cc: Likewise. - * config/i386/driver-i386.cc: Likewise. - * config/i386/i386-builtins.cc: Likewise. - * config/i386/i386-expand.cc: Likewise. - * config/i386/i386-features.cc: Likewise. - * config/i386/i386-options.cc: Likewise. - * config/loongarch/loongarch-builtins.cc: Likewise. - * config/mingw/winnt-cxx.cc: Likewise. - * config/mingw/winnt.cc: Likewise. - * config/mips/mips.cc: Likewise. - * config/msp430/driver-msp430.cc: Likewise. - * config/nvptx/mkoffload.cc: Likewise. - * config/nvptx/nvptx.cc: Likewise. - * config/riscv/riscv-avlprop.cc: Likewise. - * config/riscv/riscv-vector-builtins.cc: Likewise. - * config/riscv/riscv-vsetvl.cc: Likewise. - * config/rs6000/driver-rs6000.cc: Likewise. - * config/rs6000/host-darwin.cc: Likewise. - * config/rs6000/rs6000-c.cc: Likewise. - * config/s390/s390-c.cc: Likewise. - * config/s390/s390.cc: Likewise. - * config/sol2-cxx.cc: Likewise. - * config/vms/vms-c.cc: Likewise. - * config/xtensa/xtensa-dynconfig.cc: Likewise. - * coroutine-passes.cc: Likewise. - * coverage.cc: Likewise. - * data-streamer-in.cc: Likewise. - * data-streamer-out.cc: Likewise. - * data-streamer.cc: Likewise. - * diagnostic-buffer.h (diagnostic_buffer::~diagnostic_buffer): - Delete. - (diagnostic_buffer::m_per_format_buffer): Use std::unique_ptr. - * diagnostic-client-data-hooks.h (make_compiler_data_hooks): Use - std::unique_ptr for return type. - * diagnostic-format-json.cc - (json_output_format::make_per_format_buffer): Likewise. - (diagnostic_output_format_init_json): Update for usage of - std::unique_ptr in set_output_format. - * diagnostic-format-sarif.cc - (sarif_output_format::make_per_format_buffer): Use std::unique_ptr - for return type. - (diagnostic_output_format_init_sarif): Update for usage of - std::unique_ptr. - (test_message_with_embedded_link): Likewise for set_urlifier. - * diagnostic-format-text.cc: Add #define INCLUDE_MEMORY. Include - "make-unique.h". - (diagnostic_text_output_format::set_buffer): Use std::unique_ptr. - * diagnostic-format-text.h - (diagnostic_text_output_format::set_buffer): Likewise. - * diagnostic-format.h - (diagnostic_output_format::make_per_format_buffer): Likewise. - * diagnostic-global-context.cc: - * diagnostic-macro-unwinding.cc: Likewise. - * diagnostic-show-locus.cc: Likewise. - * diagnostic-spec.cc: Likewise. - * diagnostic.cc (diagnostic_context::set_output_format): Use - std::unique_ptr for input. - (diagnostic_context::set_client_data_hooks): Likewise. - (diagnostic_context::set_option_manager): Likewise. - (diagnostic_context::set_urlifier): Likewise. - (diagnostic_context::set_diagnostic_buffer): Update for use of - std::unique_ptr. - (diagnostic_buffer::diagnostic_buffer): Likewise. - (diagnostic_buffer::~diagnostic_buffer): Delete. - * diagnostic.h: Complain if INCLUDE_MEMORY was not defined. - (diagnostic_context::set_output_format): Use std::unique_ptr for - input. - (diagnostic_context::set_client_data_hooks): Likewise. - (diagnostic_context::set_option_manager): Likewise. - (diagnostic_context::set_urlifier): Likewise. - (diagnostic_context::clone_printer): New. - (diagnostic_context::m_printer): Update comment. - (diagnostic_context::m_option_mgr): Likewise. - (diagnostic_context::m_urlifier): Likewise. - (diagnostic_context::m_edit_context_ptr): Likewise. - (diagnostic_context::m_output_format): Likewise. - (diagnostic_context::m_client_data_hooks): Likewise. - (diagnostic_context::m_theme): Likewise. - * digraph.cc: Add #define INCLUDE_MEMORY. - * dwarf2out.cc: Likewise. - * edit-context.cc: Likewise. - * except.cc: Likewise. - * expr.cc: Likewise. - * file-prefix-map.cc: Likewise. - * final.cc: Likewise. - * fwprop.cc: Likewise. - * gcc-plugin.h: Likewise. - * gcc-rich-location.cc: Likewise. - * gcc-urlifier.cc: Likewise. Add #include "make-unique.h". - (make_gcc_urlifier): Use std::unique_ptr and ::make_unique. - * gcc-urlifier.h (make_gcc_urlifier): Use std::unique_ptr. - * gcc.cc: Add #define INCLUDE_MEMORY. Include - "pretty-print-urlifier.h". - * gcov-dump.cc: Add #define INCLUDE_MEMORY. - * gcov-tool.cc: Likewise. - * gengtype.cc (open_base_files): Likewise to output. - * genmatch.cc: Likewise. - * gimple-fold.cc: Likewise. - * gimple-harden-conditionals.cc: Likewise. - * gimple-harden-control-flow.cc: Likewise. - * gimple-if-to-switch.cc: Likewise. - * gimple-lower-bitint.cc: Likewise. - * gimple-predicate-analysis.cc: Likewise. - * gimple-pretty-print.cc: Likewise. - * gimple-range-cache.cc: Likewise. - * gimple-range-edge.cc: Likewise. - * gimple-range-fold.cc: Likewise. - * gimple-range-gori.cc: Likewise. - * gimple-range-infer.cc: Likewise. - * gimple-range-op.cc: Likewise. - * gimple-range-path.cc: Likewise. - * gimple-range-phi.cc: Likewise. - * gimple-range-trace.cc: Likewise. - * gimple-range.cc: Likewise. - * gimple-ssa-backprop.cc: Likewise. - * gimple-ssa-sprintf.cc: Likewise. - * gimple-ssa-store-merging.cc: Likewise. - * gimple-ssa-strength-reduction.cc: Likewise. - * gimple-ssa-warn-access.cc: Likewise. - * gimple-ssa-warn-alloca.cc: Likewise. - * gimple-ssa-warn-restrict.cc: Likewise. - * gimple-streamer-in.cc: Likewise. - * gimple-streamer-out.cc: Likewise. - * gimple.cc: Likewise. - * gimplify.cc: Likewise. - * graph.cc: Likewise. - * graphviz.cc: Likewise. - * input.cc: Likewise. - * ipa-cp.cc: Likewise. - * ipa-devirt.cc: Likewise. - * ipa-fnsummary.cc: Likewise. - * ipa-free-lang-data.cc: Likewise. - * ipa-icf-gimple.cc: Likewise. - * ipa-icf.cc: Likewise. - * ipa-inline-analysis.cc: Likewise. - * ipa-inline.cc: Likewise. - * ipa-modref-tree.cc: Likewise. - * ipa-modref.cc: Likewise. - * ipa-param-manipulation.cc: Likewise. - * ipa-polymorphic-call.cc: Likewise. - * ipa-predicate.cc: Likewise. - * ipa-profile.cc: Likewise. - * ipa-prop.cc: Likewise. - * ipa-pure-const.cc: Likewise. - * ipa-reference.cc: Likewise. - * ipa-split.cc: Likewise. - * ipa-sra.cc: Likewise. - * ipa-strub.cc: Likewise. - * ipa-utils.cc: Likewise. - * langhooks.cc: Likewise. - * late-combine.cc: Likewise. - * lto-cgraph.cc: Likewise. - * lto-compress.cc: Likewise. - * lto-opts.cc: Likewise. - * lto-section-in.cc: Likewise. - * lto-section-out.cc: Likewise. - * lto-streamer-in.cc: Likewise. - * lto-streamer-out.cc: Likewise. - * lto-streamer.cc: Likewise. - * lto-wrapper.cc: Likewise. Include "make-unique.h". - (main): Use ::make_unique when creating option manager. - * multiple_target.cc: Likewise. - * omp-expand.cc: Likewise. - * omp-general.cc: Likewise. - * omp-low.cc: Likewise. - * omp-oacc-neuter-broadcast.cc: Likewise. - * omp-offload.cc: Likewise. - * omp-simd-clone.cc: Likewise. - * optc-gen.awk: Likewise in output. - * optc-save-gen.awk: Likewise in output. - * options-urls-cc-gen.awk: Likewise in output. - * opts-common.cc: Likewise. - * opts-global.cc: Likewise. - * opts.cc: Likewise. - * pair-fusion.cc: Likewise. - * passes.cc: Likewise. - * pointer-query.cc: Likewise. - * predict.cc: Likewise. - * pretty-print.cc (pretty_printer::clone): Use std::unique_ptr and - ::make_unique. - * pretty-print.h: Complain if INCLUDE_MEMORY is not defined. - (pretty_printer::clone): Use std::unique_ptr. - * print-rtl.cc: Add #define INCLUDE_MEMORY. - * print-tree.cc: Likewise. - * profile-count.cc: Likewise. - * range-op-float.cc: Likewise. - * range-op-ptr.cc: Likewise. - * range-op.cc: Likewise. - * range.cc: Likewise. - * read-rtl-function.cc: Likewise. - * rtl-error.cc: Likewise. - * rtl-ssa/accesses.cc: Likewise. - * rtl-ssa/blocks.cc: Likewise. - * rtl-ssa/changes.cc: Likewise. - * rtl-ssa/functions.cc: Likewise. - * rtl-ssa/insns.cc: Likewise. - * rtl-ssa/movement.cc: Likewise. - * rtl-tests.cc: Likewise. - * sanopt.cc: Likewise. - * sched-rgn.cc: Likewise. - * selftest-diagnostic-path.cc: Likewise. - * selftest-diagnostic.cc: Likewise. - * splay-tree-utils.cc: Likewise. - * sreal.cc: Likewise. - * stmt.cc: Likewise. - * substring-locations.cc: Likewise. - * symtab-clones.cc: Likewise. - * symtab-thunks.cc: Likewise. - * symtab.cc: Likewise. - * text-art/box-drawing.cc: Likewise. - * text-art/canvas.cc: Likewise. - * text-art/ruler.cc: Likewise. - * text-art/selftests.cc: Likewise. - * text-art/theme.cc: Likewise. - * toplev.cc: Likewise. Include "make-unique.h". - (general_init): Use ::make_unique when setting option_manager. - * trans-mem.cc: Add #define INCLUDE_MEMORY. - * tree-affine.cc: Likewise. - * tree-call-cdce.cc: Likewise. - * tree-cfg.cc: Likewise. - * tree-chrec.cc: Likewise. - * tree-dfa.cc: Likewise. - * tree-diagnostic-client-data-hooks.cc: Include "make-unique.h". - (make_compiler_data_hooks): Use std::unique_ptr and ::make_unique. - * tree-diagnostic.cc: Add #define INCLUDE_MEMORY. - * tree-dump.cc: Likewise. - * tree-inline.cc: Likewise. - * tree-into-ssa.cc: Likewise. - * tree-logical-location.cc: Likewise. - * tree-nested.cc: Likewise. - * tree-nrv.cc: Likewise. - * tree-object-size.cc: Likewise. - * tree-outof-ssa.cc: Likewise. - * tree-pretty-print.cc: Likewise. - * tree-profile.cc: Likewise. - * tree-scalar-evolution.cc: Likewise. - * tree-sra.cc: Likewise. - * tree-ssa-address.cc: Likewise. - * tree-ssa-alias.cc: Likewise. - * tree-ssa-ccp.cc: Likewise. - * tree-ssa-coalesce.cc: Likewise. - * tree-ssa-copy.cc: Likewise. - * tree-ssa-dce.cc: Likewise. - * tree-ssa-dom.cc: Likewise. - * tree-ssa-forwprop.cc: Likewise. - * tree-ssa-ifcombine.cc: Likewise. - * tree-ssa-loop-ch.cc: Likewise. - * tree-ssa-loop-im.cc: Likewise. - * tree-ssa-loop-manip.cc: Likewise. - * tree-ssa-loop-niter.cc: Likewise. - * tree-ssa-loop-split.cc: Likewise. - * tree-ssa-math-opts.cc: Likewise. - * tree-ssa-operands.cc: Likewise. - * tree-ssa-phiprop.cc: Likewise. - * tree-ssa-pre.cc: Likewise. - * tree-ssa-propagate.cc: Likewise. - * tree-ssa-reassoc.cc: Likewise. - * tree-ssa-sccvn.cc: Likewise. - * tree-ssa-scopedtables.cc: Likewise. - * tree-ssa-sink.cc: Likewise. - * tree-ssa-strlen.cc: Likewise. - * tree-ssa-structalias.cc: Likewise. - * tree-ssa-ter.cc: Likewise. - * tree-ssa-uninit.cc: Likewise. - * tree-ssa.cc: Likewise. - * tree-ssanames.cc: Likewise. - * tree-stdarg.cc: Likewise. - * tree-streamer-in.cc: Likewise. - * tree-streamer-out.cc: Likewise. - * tree-streamer.cc: Likewise. - * tree-switch-conversion.cc: Likewise. - * tree-tailcall.cc: Likewise. - * tree-vrp.cc: Likewise. - * tree.cc: Likewise. - * ubsan.cc: Likewise. - * value-pointer-equiv.cc: Likewise. - * value-prof.cc: Likewise. - * value-query.cc: Likewise. - * value-range-pretty-print.cc: Likewise. - * value-range-storage.cc: Likewise. - * value-range.cc: Likewise. - * value-relation.cc: Likewise. - * var-tracking.cc: Likewise. - * varpool.cc: Likewise. - * vr-values.cc: Likewise. - * wide-int-print.cc: Likewise. - -2024-10-24 David Malcolm - - * diagnostic.cc (diagnostic_context::report_diagnostic): Add - comment about interaction of this code with pretty-print - formatting phaes. - -2024-10-24 Richard Sandiford - - * value-query.cc (range_query::get_tree_range): Use get_nonzero_bits - to populate the irange_bitmask of a POLY_INT_CST. - -2024-10-24 Richard Sandiford - - * match.pd: Simplify (X >> C1) * (C2 << C1) -> X * C2 if the - low C1 bits of X are zero. - -2024-10-24 Richard Sandiford - - * tree-ssanames.cc (get_nonzero_bits): Handle POLY_INT_CSTs. - * match.pd (with_possible_nonzero_bits): Likewise. - -2024-10-24 Richard Sandiford - - * match.pd: Simplify (X >> C1) << (C1 + C2) -> X << C2 if the - low C1 bits of X are zero. - -2024-10-24 Richard Sandiford - - * match.pd: Generalise ((X /[ex] A) +- B) * A -> X +- A * B rule - to ((X /[ex] C1) +- C2) * (C1 * C3) -> (X * C3) +- (C1 * C2 * C3). - -2024-10-24 Richard Sandiford - - * match.pd: Simplify (X /[ex] C1) * (C1 * C2) -> X * C2. - -2024-10-24 Richard Sandiford - - * match.pd: Simplify X / (1 << C) to X /[ex] (1 << C) if the - low C bits of X are clear - -2024-10-24 Richard Sandiford - - * match.pd: Extend some rules to handle exact_div like trunc_div. - * tree.h (trunc_or_exact_div_p): New function. - * tree-ssa-loop-niter.cc (is_rshift_by_1): Use it. - * tree-ssa-loop-ivopts.cc (force_expr_to_var_cost): Handle - EXACT_DIV_EXPR. - -2024-10-24 Andrew MacLeod - - * range-op-mixed.h (operator_bitwise_or::fold_range): Add prange - variant. - * range-op-ptr.cc (class pointer_or_operator): Remove. - (pointer_or_operator::op1_range): Remove. - (pointer_or_operator::op2_range): Remove. - (pointer_or_operator::wi_fold): Remove. - (operator_bitwise_or::fold_range): New prange variant. - -2024-10-24 Andrew MacLeod - - * range-op-ptr.cc (class pointer_and_operator): Remove. - (pointer_and_operator::wi_fold): Remove. - -2024-10-24 Andrew MacLeod - - * range-op-ptr.cc (class pointer_min_max_operator): Remove. - (pointer_min_max_operator::wi_fold): Remove. - -2024-10-24 Andrew MacLeod - - * range-op-ptr.cc (pointer_plus_operator::wi_fold): Remove. - (pointer_plus_operator::op2_range): Remove irange variant. - (pointer_plus_operator::update_bitmask): Likewise. - -2024-10-24 Jakub Jelinek - - PR sanitizer/117209 - * asan.cc (maybe_cast_to_ptrmode): Formatting fix. - (build_check_stmt): Don't copy *iter into gsi, perform all - the updates on iter directly. - -2024-10-24 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-sve2.cc - (svsra_impl::fold): Fold svsra to svlsr/svasr if op1 is all zeros. - -2024-10-24 Soumya AR - - * config/aarch64/aarch64-sve-builtins-base.cc (svlsl_impl::fold): - Try constant folding. - * config/aarch64/aarch64-sve-builtins.cc (aarch64_const_binop): - Return 0 if shift is out of range. - -2024-10-24 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold): - Fold division by -1 to svneg. - (svmul_impl::fold): Fold multiplication by -1 to svneg. - -2024-10-24 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc - (svindex_impl::fold): Add constant folding. - -2024-10-24 Wang Pengcheng - - * config/riscv/riscv.cc (struct riscv_tune_param): Add new - tune options. - (riscv_override_options_internal): Override the default alignment - when not optimizing for size. - -2024-10-23 Andrew Pinski - - * config/aarch64/aarch64.cc (aarch64_ptrue_reg): Fix type - of induction variable i. - -2024-10-23 Andrew Pinski - - PR tree-optimization/117260 - * gimple-match-exports.cc (maybe_push_res_to_seq): Reject non-const - internal functions. - -2024-10-23 Jonathan Wakely - - * ginclude/stdalign.h (__alignas_is_defined): Define for C++. - (__alignof_is_defined): Likewise. - -2024-10-23 David Malcolm - - PR jit/117275 - * toplev.cc (toplev::finalize): Call varasm_cc_finalize. - * varasm.cc (varasm_cc_finalize): New. - * varasm.h (varasm_cc_finalize): New decl. - -2024-10-23 Pengxuan Zheng - - PR target/113860 - * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): New function. - * config/aarch64/aarch64-simd.md (popcount2): Update pattern to - also support V1DI mode. - * config/aarch64/aarch64.cc (aarch64_ptrue_reg): New function. - * config/aarch64/aarch64.md (popcount2): Add TARGET_SVE support. - * config/aarch64/iterators.md (VDQHSD_V1DI): New mode iterator. - (SVE_VDQ_I): Add V1DI. - (bitsize): Likewise. - (VPRED): Likewise. - (VEC_POP_MODE): New mode attribute. - (vec_pop_mode): Likewise. - -2024-10-23 Andrew MacLeod - - PR tree-optimization/117222 - * range-op-ptr.cc (operator_pointer_diff::fold_range): New. - (operator_pointer_diff::op1_op2_relation_effect): Remove irange - variant. - (operator_pointer_diff::update_bitmask): Likewise. - -2024-10-23 David Malcolm - - PR fortran/105916 - * diagnostic-buffer.h: New file. - * diagnostic-format-json.cc: Define INCLUDE_VECTOR. Include - "diagnostic-buffer.h". - (class diagnostic_json_format_buffer): New subclass. - (class json_output_format): Add friend class - diagnostic_json_format_buffer. - (json_output_format::make_per_format_buffer): New vfunc - implementation. - (json_output_format::set_buffer): New vfunc implementation. - (json_output_format::json_output_format): Initialize m_buffer. - (json_output_format::m_buffer): New field. - (diagnostic_json_format_buffer::dump): New. - (diagnostic_json_format_buffer::empty_p): New. - (diagnostic_json_format_buffer::move_to): New. - (diagnostic_json_format_buffer::clear): New. - (diagnostic_json_format_buffer::flush): New. - (json_output_format::on_report_diagnostic): Implement optional - buffering. - * diagnostic-format-sarif.cc: Include "diagnostic-buffer.h". - (class diagnostic_sarif_format_buffer): New subclass. - (class sarif_builder): Add friend - class diagnostic_sarif_format_buffer. - (sarif_builder::num_results): New accessor. - (sarif_builder::get_result): New accessor. - (sarif_builder::on_report_diagnostic): Add param "buffer"; use it - to implement optional buffering. - (diagnostic_sarif_format_buffer::dump): New. - (diagnostic_sarif_format_buffer::empty_p): New. - (diagnostic_sarif_format_buffer::move_to): New. - (diagnostic_sarif_format_buffer::clear): New. - (diagnostic_sarif_format_buffer::flush): New. - (sarif_output_format::make_per_format_buffer): New vfunc - implementation. - (sarif_output_format::set_buffer): New vfunc implementation. - (sarif_output_format::on_report_diagnostic): Pass m_buffer to - sarif_builder::on_report_diagnostic. - (sarif_output_format::num_results): New accessor. - (sarif_output_format::get_result): New accessor. - (diagnostic_output_format::diagnostic_output_format): Initialize - m_buffer. - (diagnostic_output_format::m_buffer): New field. - (diagnostic_output_format::num_results): Get accessor. - (diagnostic_output_format::get_result): Get accessor. - (selftest::get_message_from_result): New. - (selftest::test_buffering): New. - (selftest::diagnostic_format_sarif_cc_tests): Call it. - * diagnostic-format-text.cc: Include - "diagnostic-client-data-hooks.h". - (class diagnostic_text_format_buffer): New subclass. - (diagnostic_text_format_buffer::diagnostic_text_format_buffer): - New. - (diagnostic_text_format_buffer::dump): New. - (diagnostic_text_format_buffer::empty_p): New. - (diagnostic_text_format_buffer::move_to): New. - (diagnostic_text_format_buffer::clear): New. - (diagnostic_text_format_buffer::flush): New. - (diagnostic_text_output_format::dump): Dump m_saved_output_buffer. - (diagnostic_text_output_format::set_buffer): New. - (diagnostic_text_output_format::make_per_format_buffer): New. - * diagnostic-format-text.h - (diagnostic_text_output_format::diagnostic_text_output_format): - Initialize m_saved_output_buffer. - (diagnostic_text_output_format::set_buffer): New decl. - (diagnostic_text_output_format::make_per_format_buffer): New decl. - (diagnostic_text_output_format::m_saved_output_buffer): New field. - * diagnostic-format.h (class diagnostic_per_format_buffer): New - forward decl. - (diagnostic_output_format::make_per_format_buffer): New vfunc. - (diagnostic_output_format::set_buffer): New vfunc. - * diagnostic.cc: Include "diagnostic-buffer.h". - (diagnostic_context::initialize): Replace memset with call to - "clear" on m_diagnostic_counters. Initializer - m_diagnostic_buffer. - (diagnostic_context::finish): Call set_diagnostic_buffer with - nullptr. - (diagnostic_context::dump): Update for encapsulation of counts - into m_diagnostic_counters. Dump m_diagnostic_buffer. - (diagnostic_context::execution_failed_p): Update for encapsulation of - counts into m_diagnostic_counters. - (diagnostic_context::check_max_errors): Likewise. - (diagnostic_context::report_diagnostic): Likewise. Eliminate - diagnostic_check_max_errors in favor of check_max_errors. - Update increment of counter to support buffering. Eliminate - diagnostic_action_after_output in favor of action_after_output. - Only add fixits to m_edit_context_ptr if buffering is disabled. - Only call diagnostic_output_format::after_diagnostic if buffering - is disabled. - (diagnostic_context::error_recursion): Eliminate - diagnostic_action_after_output in favor of action_after_output. - (diagnostic_context::set_diagnostic_buffer): New. - (diagnostic_context::clear_diagnostic_buffer): New. - (diagnostic_context::flush_diagnostic_buffer): New. - (diagnostic_counters::diagnostic_counters): New. - (diagnostic_counters::dump): New. - (diagnostic_counters::move_to): New. - (diagnostic_counters::clear): New. - (diagnostic_buffer::diagnostic_buffer): New. - (diagnostic_buffer::~diagnostic_buffer): New. - (diagnostic_buffer::dump): New. - (diagnostic_buffer::empty_p): New. - (diagnostic_buffer::move_to): New. - (diagnostic_buffer::ensure_per_format_buffer): New. - (c_diagnostic_cc_tests): Remove stray newline. - * diagnostic.h (class diagnostic_buffer): New forward decl. - (struct diagnostic_counters): New. - (diagnostic_context::check_max_errors): Make private. - (diagnostic_context::action_after_output): Make private. - (diagnostic_context::get_output_format): Make non-const. - (diagnostic_context::diagnostic_count): Update for change - to m_diagnostic_counters. - (diagnostic_context::set_diagnostic_buffer): New decl. - (diagnostic_context::get_diagnostic_buffer): New decl. - (diagnostic_context::clear_diagnostic_buffer): New decl. - (diagnostic_context::flush_diagnostic_buffer): New decl. - (diagnostic_context::m_diagnostic_count): Replace array with... - (diagnostic_context::m_diagnostic_counters): ...this. - (diagnostic_context::m_diagnostic_buffer): New field. - (diagnostic_action_after_output): Delete. - (diagnostic_check_max_errors): Delete. - -2024-10-23 Wilco Dijkstra - - * config/aarch64/aarch64-simd.md (aarch64_simd_mov): - Remove redundant mode check. - -2024-10-23 Wilco Dijkstra - - * config/aarch64/aarch64.md (copysign3): Widen immediate to - vector. - (copysign3_insn): Use VQ_INT_EQUIV in operand 3. - * config/aarch64/iterators.md (VQ_INT_EQUIV): New iterator. - (vq_int_equiv): Likewise. - -2024-10-23 Jason Merrill - - * doc/extend.texi (Deprecated Features): Remove text about some - no-longer-deprecated features. - -2024-10-23 Wilco Dijkstra - - * config/aarch64/aarch64.cc (enum simd_immediate_check): Add - AARCH64_CHECK_XOR. - (aarch64_simd_valid_xor_imm): New function. - (aarch64_output_simd_imm): Add AARCH64_CHECK_XOR support. - (aarch64_output_simd_xor_imm): New function. - * config/aarch64/aarch64-protos.h (aarch64_output_simd_xor_imm): New - prototype. - (aarch64_simd_valid_xor_imm): New prototype. - * config/aarch64/aarch64-simd.md (xor3): - Use aarch64_reg_or_xor_imm predicate and add an immediate alternative. - * config/aarch64/predicates.md (aarch64_reg_or_xor_imm): Add new - predicate. - -2024-10-23 Wilco Dijkstra - - * config/aarch64/aarch64-simd.md (ior3): - Use aarch64_reg_or_orr_imm predicate. Combine SVE/AdvSIMD immediates - and use aarch64_output_simd_orr_imm. - * config/aarch64/aarch64.cc (struct simd_immediate_info): Add SVE_MOV. - (aarch64_sve_valid_immediate): Use SVE_MOV for SVE move immediates. - (aarch64_simd_valid_imm): Enable SVE SIMD immediates when possible. - (aarch64_output_simd_imm): Support emitting SVE SIMD immediates. - * config/aarch64/predicates.md (aarch64_orr_imm_sve_advsimd): Remove. - -2024-10-23 Wilco Dijkstra - - * config/aarch64/aarch64-protos.h (enum simd_immediate_check): Move to aarch64.cc. - (aarch64_output_simd_mov_immediate): Remove. - (aarch64_output_simd_mov_imm): New prototype. - (aarch64_output_simd_orr_imm): Likewise. - (aarch64_output_simd_and_imm): Likewise. - (aarch64_simd_valid_immediate): Remove. - (aarch64_simd_valid_and_imm): New prototype. - (aarch64_simd_valid_mov_imm): Likewise. - (aarch64_simd_valid_orr_imm): Likewise. - * config/aarch64/aarch64-simd.md: Use aarch64_output_simd_mov_imm. - * config/aarch64/aarch64.cc (enum simd_immediate_check): Moved from aarch64-protos.h. - Use AARCH64_CHECK_AND rather than AARCH64_CHECk_BIC. - (aarch64_expand_sve_const_vector): Use aarch64_simd_valid_mov_imm. - (aarch64_expand_mov_immediate): Likewise. - (aarch64_can_const_movi_rtx_p): Likewise. - (aarch64_secondary_reload): Likewise. - (aarch64_legitimate_constant_p): Likewise. - (aarch64_advsimd_valid_immediate): Simplify checks on 'which' param. - (aarch64_sve_valid_immediate): Add extra param for move vs logical. - (aarch64_simd_valid_immediate): Rename to aarch64_simd_valid_imm. - (aarch64_simd_valid_mov_imm): New function. - (aarch64_simd_valid_orr_imm): Likewise. - (aarch64_simd_valid_and_imm): Likewise. - (aarch64_mov_operand_p): Use aarch64_simd_valid_mov_imm. - (aarch64_simd_scalar_immediate_valid_for_move): Likewise. - (aarch64_simd_make_constant): Likewise. - (aarch64_expand_vector_init_fallback): Likewise. - (aarch64_output_simd_mov_immediate): Rename to aarch64_output_simd_imm. - (aarch64_output_simd_orr_imm): New function. - (aarch64_output_simd_and_imm): Likewise. - (aarch64_output_simd_mov_imm): Likewise. - (aarch64_output_scalar_simd_mov_immediate): Use aarch64_output_simd_mov_imm. - (aarch64_output_sve_mov_immediate): Use aarch64_simd_valid_imm. - (aarch64_output_sve_ptrues): Likewise. - * config/aarch64/constraints.md (Do): Use aarch64_simd_valid_orr_imm. - (Db): Use aarch64_simd_valid_and_imm. - * config/aarch64/predicates.md (aarch64_reg_or_bic_imm): Use aarch64_simd_valid_orr_imm. - (aarch64_reg_or_and_imm): Use aarch64_simd_valid_and_imm. - -2024-10-23 liuhongt - - PR target/117240 - * config/i386/i386-builtin.def: Add avx/avx512f to vaes - ymm/zmm builtins. - -2024-10-23 Martin Jambor - - PR tree-optimization/117142 - * tree-sra.cc (build_access_from_call_arg): Disqualify any - candidate passed to a function returning twice. - -2024-10-23 Jakub Jelinek - - * doc/invoke.texi (Wleading-whitespace=): Document. - -2024-10-23 liuhongt - - PR target/117232 - * config/i386/sse.md (*kortest_cmp_movqicc): - New define_insn_and_split. - (*kortest_cmp_movcc): - Ditto. - -2024-10-22 Jakub Jelinek - - PR middle-end/117199 - * varasm.cc (compare_constant): Handle RAW_DATA_CST. Formatting fix - in the STRING_CST case. - -2024-10-22 Jakub Jelinek - - PR c/117190 - * varasm.cc (array_size_for_constructor): For RAW_DATA_CST, - use bitsize_int rather than size_int. - -2024-10-22 Tobias Burnus - - * config/gcn/gcn-devices.def: Add generic version/flag as additional - value and architecture family entry; update; add gfx-10-3-generic - and gfx11-generic. - * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Remove - (ASM_SPEC): Use generated ABI_VERSION_OPT instead. - * config/gcn/gcn-tables.opt: Regenerate - * config/gcn/gcn.h (gcn_device_def): Add generic_version and - arch_family members. - (TARGET_CPU_CPP_BUILTINS): Fix allocation bug, handle '-' in the - name and add additional macro defines. - * config/gcn/gcn.cc (gcn_devices): Handle it. - * config/gcn/gen-gcn-device-macros.awk: Likewise; use ELF name - for the macro name; generate ABI_VERSION_OPT. - * config/gcn/mkoffload.cc (ELFABIVERSION_AMDGPU_HSA_V6, - EF_AMDGPU_GENERIC_VERSION_V, EF_AMDGPU_GENERIC_VERSION_OFFSET, - GET_GENERIC_VERSION, SET_GENERIC_VERSION): Define. - (get_arch): Call SET_GENERIC_VERSION flag on elf_flags. - (copy_early_debug_info): If the arch sets the generic version, - use ELFABIVERSION_AMDGPU_HSA_V6. - -2024-10-22 Richard Biener - - PR tree-optimization/117254 - * gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg): - Check the array domain max is constant before using it. - -2024-10-22 Andrew Stubbs - Tobias Burnus - - * config.gcc (amdgcn): Add gcn-device-macros.h to tm_file. - Add gcn-tables.opt to extra_options. - * config/gcn/gcn-hsa.h (NO_XNACK): Delete. - (NO_SRAM_ECC): Delete. - (SRAMOPT): Move definition to generated file gcn-device-macros.h. - (XNACKOPT): Likewise. - (ASM_SPEC): Redefine using generated values from gcn-device-macros.h. - * config/gcn/gcn-opts.h - (enum processor_type): Generate from gcn-devices.def. - (TARGET_VEGA10): Delete. - (TARGET_VEGA20): Delete. - (TARGET_GFX908): Delete. - (TARGET_GFX90a): Delete. - (TARGET_GFX90c): Delete. - (TARGET_GFX1030): Delete. - (TARGET_GFX1036): Delete. - (TARGET_GFX1100): Delete. - (TARGET_GFX1103): Delete. - (TARGET_XNACK): Redefine to allow for HSACO_ATTR_UNSUPPORTED. - (enum hsaco_attr_type): Add HSACO_ATTR_UNSUPPORTED. - (TARGET_TGSPLIT): New define. - * config/gcn/gcn.cc (gcn_devices): New constant table. - (gcn_option_override): Rework to use gcn_devices table. - (gcn_omp_device_kind_arch_isa): Likewise. - (output_file_start): Likewise. - (gcn_hsa_declare_function_name): Rework using TARGET_* macros. - * config/gcn/gcn.h (gcn_devices): Declare struct and table. - (TARGET_CPU_CPP_BUILTINS): Rework using gcn_devices. - * config/gcn/gcn.opt: Move enum data to generated file gcn-tables.opt. - Use new names for the default values. - * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX900): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX906): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX908): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX90a): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX90c): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX1030): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX1036): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX1100): Delete. - (EF_AMDGPU_MACH_AMDGCN_GFX1103): Delete. - (enum elf_arch_code): Define using gcn-devices.def. - (get_arch): Rework using gcn-devices.def. - (main): Rework using gcn-devices.def - * config/gcn/t-gcn-hsa (gcn-tables.opt): Generate file. - (gcn-device-macros.h): Generate file. - * config/gcn/t-omp-device: Generate isa list from gcn-devices.def. - * config/gcn/gcn-devices.def: New file. - * config/gcn/gcn-tables.opt: New file. - * config/gcn/gcn-tables.opt.urls: New file. - * config/gcn/gen-gcn-device-macros.awk: New file. - * config/gcn/gen-opt-tables.awk: New file. - -2024-10-22 Richard Biener - - PR tree-optimization/117123 - * tree-ssa-sccvn.cc (visit_phi): First process a non-constant - argument edge to handle more equivalences. Remove the - two-arg special case. - -2024-10-22 xuli - - * match.pd: Support IMM=1. - -2024-10-22 xuli - - * match.pd: Support IMM=max-1. - -2024-10-21 Jeff Law - - PR rtl-optimization/116488 - PR rtl-optimization/116579 - PR rtl-optimization/116915 - PR rtl-optimization/117226 - * ext-dce.cc (carry_backpropagate): Properly handle SIGN_EXTEND, add - ZERO_EXTEND handling as well. - (ext_dce_process_uses): Call carry_backpropagate before the optimization - step. - -2024-10-21 Pan Li - - * config/riscv/autovec.md (sstrunc2): Add - new pattern sstrunc for double trunc. - (sstrunc2): Ditto but for quad trunc. - (sstrunc2): Ditto but for oct trunc. - * config/riscv/riscv-protos.h (expand_vec_double_sstrunc): Add - new func decl to expand double trunc. - (expand_vec_quad_sstrunc): Ditto but for quad trunc. - (expand_vec_oct_sstrunc): Ditto but for oct trunc. - * config/riscv/riscv-v.cc (expand_vec_double_sstrunc): Add new - func to expand double trunc. - (expand_vec_quad_sstrunc): Ditto but for quad trunc. - (expand_vec_oct_sstrunc): Ditto but for oct trunc. - -2024-10-21 Pan Li - - * tree-vect-patterns.cc (gimple_signed_integer_sat_trunc): Add - new func decl for signed SAT_TRUNC. - (vect_recog_sat_trunc_pattern): Try signed match pattern for - the SAT_TRUNC. - -2024-10-21 Pan Li - - * match.pd: Refine matching for vector signed SAT_TRUNC form 1. - -2024-10-21 Andrew Carlotti - - * config/aarch64/aarch64.cc (aarch64_register_move_cost): - Increase costs involving MOVEABLE_SYSREGS. - -2024-10-21 Andrew Stubbs - - * config/gcn/gcn.h (SGPR_REGNO_P): Silence warning. - -2024-10-21 Alex Coplan - - PR rtl-optimization/116783 - * pair-fusion.cc (def_walker::cand_addr_uses): New. - (def_walker::def_walker): Add parameter for candidate address - uses. - (def_walker::alias_conflict_p): Declare. - (def_walker::addr_reg_conflict_p): New. - (def_walker::conflict_p): New. - (store_walker::store_walker): Add parameter for candidate - address uses and pass to base ctor. - (store_walker::conflict_p): Rename to ... - (store_walker::alias_conflict_p): ... this. - (load_walker::load_walker): Add parameter for candidate - address uses and pass to base ctor. - (load_walker::conflict_p): Rename to ... - (load_walker::alias_conflict_p): ... this. - (pair_fusion_bb_info::try_fuse_pair): Collect address register - uses for candidate insns and pass down to alias walkers. - -2024-10-21 Jeevitha - - * config/rs6000/amo.h (enum _AMO_LD): Correct the function code for - _AMO_LD_DEC_BOUNDED. - -2024-10-21 Haochen Jiang - - * common/config/i386/cpuinfo.h (get_intel_cpu): Refactor the - function for future expansion on different family. - -2024-10-21 liuhongt - - PR target/117159 - * config/i386/sse.md - (*_cmp3_zero_extend): - Change from define_insn_and_split to define_insn. - (*_cmp3_zero_extend): - Ditto. - (*_ucmp3_zero_extend): - Ditto. - (*_ucmp3_zero_extend): - Ditto. - (*_cmp3_zero_extend_2): - Split to the zero_extend pattern. - (*_cmp3_zero_extend_2): - Ditto. - (*_ucmp3_zero_extend_2): - Ditto. - (*_ucmp3_zero_extend_2): - Ditto. - -2024-10-20 Jeff Law - - Revert: - 2024-10-19 Craig Blackmore - - * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p): - New function. - (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define. - -2024-10-19 Andrew Pinski - - PR tree-optimization/112418 - * tree-ssa-phiopt.cc (is_factor_profitable): New function. - (factor_out_conditional_operation): Add merge argument. Remove - arg0/arg1 arguments. Return bool instead of the new phi. - Early return for virtual ops. Call is_factor_profitable to - check if the factoring would be profitable. - (pass_phiopt::execute): Call factor_out_conditional_operation - on all phis instead of just singleton phi. - * doc/invoke.texi (--param phiopt-factor-max-stmts-live=): Document. - * params.opt (--param=phiopt-factor-max-stmts-live=): New opt. - -2024-10-19 Greg McGary - - * config/riscv/autovec.md (vec_mask_len_load_lanes, vec_mask_len_store_lanes): - Predicate with TARGET_VECTOR_AUTOVEC_SEGMENT - * config/riscv/riscv-opts.h (TARGET_VECTOR_AUTOVEC_SEGMENT): New macro. - * config/riscv/riscv.opt (-m(no-)autovec-segment): New option. - -2024-10-19 Craig Blackmore - - * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p): - New function. - (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define. - -2024-10-19 Craig Blackmore - - * config/riscv/riscv-string.cc (struct stringop_info): New. - (expand_block_move): Move decision making code to... - (use_vector_stringop_p): ...here. - -2024-10-19 Craig Blackmore - - * config/riscv/riscv-protos.h (get_lmul_mode): New prototype. - (expand_block_move): Add bool parameter for movmem_p. - * config/riscv/riscv-string.cc (riscv_expand_block_move_scalar): - Pass movmem_p as false to riscv_vector::expand_block_move. - (expand_block_move): Add movmem_p parameter. Return false if - loop needed and movmem_p is true. Respect TARGET_MAX_LMUL. - * config/riscv/riscv-v.cc (get_lmul_mode): New function. - * config/riscv/riscv.md (movmem): Move checking for - whether to generate inline vector code to - riscv_vector::expand_block_move by passing movmem_p as true. - -2024-10-19 David Malcolm - - * diagnostic.h (json::value): Remove forward decl. - -2024-10-19 David Malcolm - - * diagnostic-format-json.cc (json_output_format::dump): New. - * diagnostic-format-sarif.cc (sarif_output_format::dump): New. - (sarif_file_output_format::dump): New. - * diagnostic-format-text.cc (diagnostic_text_output_format::dump): - New. - * diagnostic-format-text.h (diagnostic_text_output_format::dump): - New decl. - * diagnostic-format.h (diagnostic_output_format::dump): New decls. - * diagnostic.cc (diagnostic_context::dump): New. - (diagnostic_output_format::dump): New. - * diagnostic.h (diagnostic_context::dump): New decls. - * pretty-print-format-impl.h (pp_formatted_chunks::dump): Add - "indent" param. - * pretty-print.cc (bytes_per_hexdump_line): New constant. - (print_hexdump_line): New. - (print_hexdump): New. - (output_buffer::dump): Add "indent" param and use it. Add - hexdump of current object in m_formatted_obstack and - m_chunk_obstack. - (pp_formatted_chunks::dump): Add "indent" param and use it. - (pretty_printer::dump): Likewise. Add dumping of m_show_color - and m_url_format. - * pretty-print.h (output_buffer::dump): Add "indent" param. - (pretty_printer::dump): Likewise. - -2024-10-18 Alejandro Colomar - - * tree.h (array_type_nelts_top) - * tree.cc (array_type_nelts_top): - Define function (moved from gcc/cp/). - -2024-10-18 Alejandro Colomar - - * tree.cc (array_type_nelts, array_type_nelts_minus_one) - * tree.h (array_type_nelts, array_type_nelts_minus_one) - * expr.cc (count_type_elements) - * config/aarch64/aarch64.cc - (pure_scalable_type_info::analyze_array) - * config/i386/i386.cc (ix86_canonical_va_list_type): - Rename array_type_nelts => array_type_nelts_minus_one - The old name was misleading. - -2024-10-18 John David Anglin - - * config/pa/pa.opt.urls: Fix for -mlra. - -2024-10-18 John David Anglin - - PR target/113933 - * config/pa/pa.cc (pa_use_lra_p): Declare. - (TARGET_LRA_P): Change define to pa_use_lra_p. - (pa_use_lra_p): New function. - (legitimize_pic_address): Also check lra_in_progress. - (pa_emit_move_sequence): Likewise. - (pa_legitimate_constant_p): Likewise. - (pa_legitimate_address_p): Likewise. - (pa_secondary_reload): For floating-point loads and stores, - return NO_REGS for REG and SUBREG operands. Return - GENERAL_REGS for some shift register spills. - * config/pa/pa.opt: Add mlra option. - * config/pa/predicates.md (integer_store_memory_operand): - Also check lra_in_progress. - (floating_point_store_memory_operand): Likewise. - (reg_before_reload_operand): Likewise. - -2024-10-18 Craig Blackmore - - * config/riscv/riscv-string.cc (expand_block_move): Fix - condition for using smaller LMUL. Break outer loop if a - suitable vmode has been found. - -2024-10-18 Craig Blackmore - - * config/riscv/riscv-string.cc (expand_block_move): Replace - `end` with `length_rtx` in gen_rtx_NE. - -2024-10-18 Craig Blackmore - - * config/riscv/riscv-string.cc (expand_block_move): Fix - indentation. - -2024-10-18 Uros Bizjak - - PR target/117192 - * config/i386/mmx.md (andn3): Swap operand - indexes 1 and 2 to comply with andn specification. - -2024-10-18 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold): - Refactor using fold_active_lanes_to and fold to dividend, is the - divisor is all ones. - (svmul_impl::fold): Refactor using fold_active_lanes_to and fold - to the other operand, if one of the operands is all ones. - * config/aarch64/aarch64-sve-builtins.h: Declare - gimple_folder::fold_active_lanes_to (tree). - * config/aarch64/aarch64-sve-builtins.cc - (gimple_folder::fold_actives_lanes_to): Add new method to fold - actives lanes to given argument and setting inactives lanes - according to the predication. - -2024-10-18 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_2): Only expect - IFN_MASK_LOAD for masked loads that are not - STMT_VINFO_GATHER_SCATTER_P. - -2024-10-18 Tamar Christina - - PR tree-optimization/117140 - * tree-vect-slp.cc (vectorize_slp_instance_root_stmt): Use gsi from - original statement. - -2024-10-18 Tamar Christina - - * tree-vect-generic.cc (lower_vec_perm): Use output vector size instead - of input vector when determining output nunits. - -2024-10-18 Tamar Christina - - * config/aarch64/aarch64.cc (aarch64_output_sve_mov_immediate): Use - fmov for SVE zeros. - -2024-10-18 Tamar Christina - - * config/aarch64/aarch64.cc (aarch64_sve_valid_immediate, - aarch64_simd_valid_immediate): Refactor accepting modes and values. - (aarch64_float_const_representable_p): Refactor and extract FP checks - into ... - (aarch64_real_float_const_representable_p): ...This and fix fail - fallback from real_to_integer. - (aarch64_advsimd_valid_immediate): Use it. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (long_type_suffix): New. - (half_type_suffix): New. - (struct binary_move_narrow_def): Use new helper. - (struct binary_move_narrow_unsigned_def): Likewise. - (struct binary_rshift_narrow_def): Likewise. - (struct binary_rshift_narrow_unsigned_def): Likewise. - (struct binary_widen_def): Likewise. - (struct binary_widen_n_def): Likewise. - (struct binary_widen_opt_n_def): Likewise. - (struct unary_widen_def): Likewise. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vadc_vsbc_impl): Add - support for vsbciq and vsbcq. - (vadciq, vadcq): Add new parameter. - (vsbciq): New. - (vsbcq): New. - * config/arm/arm-mve-builtins-base.def (vsbciq): New. - (vsbcq): New. - * config/arm/arm-mve-builtins-base.h (vsbciq): New. - (vsbcq): New. - * config/arm/arm_mve.h (vsbciq): Delete. - (vsbciq_m): Delete. - (vsbcq): Delete. - (vsbcq_m): Delete. - (vsbciq_s32): Delete. - (vsbciq_u32): Delete. - (vsbciq_m_s32): Delete. - (vsbciq_m_u32): Delete. - (vsbcq_s32): Delete. - (vsbcq_u32): Delete. - (vsbcq_m_s32): Delete. - (vsbcq_m_u32): Delete. - (__arm_vsbciq_s32): Delete. - (__arm_vsbciq_u32): Delete. - (__arm_vsbciq_m_s32): Delete. - (__arm_vsbciq_m_u32): Delete. - (__arm_vsbcq_s32): Delete. - (__arm_vsbcq_u32): Delete. - (__arm_vsbcq_m_s32): Delete. - (__arm_vsbcq_m_u32): Delete. - (__arm_vsbciq): Delete. - (__arm_vsbciq_m): Delete. - (__arm_vsbcq): Delete. - (__arm_vsbcq_m): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (vadcq_vsbc): Add support - for vadcq. - * config/arm/arm-mve-builtins-base.def (vadcq): New. - * config/arm/arm-mve-builtins-base.h (vadcq): New. - * config/arm/arm_mve.h (vadcq): Delete. - (vadcq_m): Delete. - (vadcq_s32): Delete. - (vadcq_u32): Delete. - (vadcq_m_s32): Delete. - (vadcq_m_u32): Delete. - (__arm_vadcq_s32): Delete. - (__arm_vadcq_u32): Delete. - (__arm_vadcq_m_s32): Delete. - (__arm_vadcq_m_u32): Delete. - (__arm_vadcq): Delete. - (__arm_vadcq_m): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vadc_vsbc_impl): New. - (vadciq): New. - * config/arm/arm-mve-builtins-base.def (vadciq): New. - * config/arm/arm-mve-builtins-base.h (vadciq): New. - * config/arm/arm_mve.h (vadciq): Delete. - (vadciq_m): Delete. - (vadciq_s32): Delete. - (vadciq_u32): Delete. - (vadciq_m_s32): Delete. - (vadciq_m_u32): Delete. - (__arm_vadciq_s32): Delete. - (__arm_vadciq_u32): Delete. - (__arm_vadciq_m_s32): Delete. - (__arm_vadciq_m_u32): Delete. - (__arm_vadciq): Delete. - (__arm_vadciq_m): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/iterators.md (mve_insn): Add VADCIQ_M_S, VADCIQ_M_U, - VADCIQ_U, VADCIQ_S, VADCQ_M_S, VADCQ_M_U, VADCQ_S, VADCQ_U, - VSBCIQ_M_S, VSBCIQ_M_U, VSBCIQ_S, VSBCIQ_U, VSBCQ_M_S, VSBCQ_M_U, - VSBCQ_S, VSBCQ_U. - (VADCIQ, VSBCIQ): Merge into ... - (VxCIQ): ... this. - (VADCIQ_M, VSBCIQ_M): Merge into ... - (VxCIQ_M): ... this. - (VSBCQ, VADCQ): Merge into ... - (VxCQ): ... this. - (VSBCQ_M, VADCQ_M): Merge into ... - (VxCQ_M): ... this. - * config/arm/mve.md - (mve_vadciq_v4si, mve_vsbciq_v4si): Merge into ... - (@mve_q_v4si): ... this. - (mve_vadciq_m_v4si, mve_vsbciq_m_v4si): Merge into ... - (@mve_q_m_v4si): ... this. - (mve_vadcq_v4si, mve_vsbcq_v4si): Merge into ... - (@mve_q_v4si): ... this. - (mve_vadcq_m_v4si, mve_vsbcq_m_v4si): Merge into ... - (@mve_q_m_v4si): ... this. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (vadc_vsbc): New. - * config/arm/arm-mve-builtins-shapes.h (vadc_vsbc): New. - -2024-10-18 Christophe Lyon - - * config/arm/arm-builtins.cc - (arm_ternop_unone_none_unone_imm_qualifiers) - (-arm_ternop_none_none_unone_imm_qualifiers): Delete. - * config/arm/arm_mve_builtins.def (vshlcq_m_vec_s) - (vshlcq_m_carry_s, vshlcq_m_vec_u, vshlcq_m_carry_u): Delete. - * config/arm/mve.md (mve_vshlcq_vec_): Delete. - (mve_vshlcq_carry_): Delete. - (mve_vshlcq_m_vec_): Delete. - (mve_vshlcq_m_carry_): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vshlc_impl): New. - (vshlc): New. - * config/arm/arm-mve-builtins-base.def (vshlcq): New. - * config/arm/arm-mve-builtins-base.h (vshlcq): New. - * config/arm/arm-mve-builtins.cc - (function_instance::has_inactive_argument): Handle vshlc. - * config/arm/arm_mve.h (vshlcq): Delete. - (vshlcq_m): Delete. - (vshlcq_s8): Delete. - (vshlcq_u8): Delete. - (vshlcq_s16): Delete. - (vshlcq_u16): Delete. - (vshlcq_s32): Delete. - (vshlcq_u32): Delete. - (vshlcq_m_s8): Delete. - (vshlcq_m_u8): Delete. - (vshlcq_m_s16): Delete. - (vshlcq_m_u16): Delete. - (vshlcq_m_s32): Delete. - (vshlcq_m_u32): Delete. - (__arm_vshlcq_s8): Delete. - (__arm_vshlcq_u8): Delete. - (__arm_vshlcq_s16): Delete. - (__arm_vshlcq_u16): Delete. - (__arm_vshlcq_s32): Delete. - (__arm_vshlcq_u32): Delete. - (__arm_vshlcq_m_s8): Delete. - (__arm_vshlcq_m_u8): Delete. - (__arm_vshlcq_m_s16): Delete. - (__arm_vshlcq_m_u16): Delete. - (__arm_vshlcq_m_s32): Delete. - (__arm_vshlcq_m_u32): Delete. - (__arm_vshlcq): Delete. - (__arm_vshlcq_m): Delete. - * config/arm/mve.md (mve_vshlcq_): Add '@' prefix. - (mve_vshlcq_m_): Likewise. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (vshlc): New. - * config/arm/arm-mve-builtins-shapes.h (vshlc): New. - -2024-10-18 Christophe Lyon - - * config/arm/arm-builtins.cc - (arm_quinop_unone_unone_unone_unone_imm_pred_qualifiers): Delete. - * config/arm/arm_mve_builtins.def (viwdupq_wb_u, vdwdupq_wb_u) - (viwdupq_m_wb_u, vdwdupq_m_wb_u, viwdupq_m_n_u, vdwdupq_m_n_u) - (vdwdupq_n_u, viwdupq_n_u): Delete. - * config/arm/mve.md (mve_vdwdupq_n_u): Delete. - (mve_vdwdupq_wb_u): Delete. - (mve_vdwdupq_m_n_u): Delete. - (mve_vdwdupq_m_wb_u): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (viddup_impl): Add support - for wrapping versions. - (vdwdupq): New. - (viwdupq): New. - * config/arm/arm-mve-builtins-base.def (vdwdupq): New. - (viwdupq): New. - * config/arm/arm-mve-builtins-base.h (vdwdupq): New. - (viwdupq): New. - * config/arm/arm_mve.h (vdwdupq_m): Delete. - (vdwdupq_u8): Delete. - (vdwdupq_u32): Delete. - (vdwdupq_u16): Delete. - (viwdupq_m): Delete. - (viwdupq_u8): Delete. - (viwdupq_u32): Delete. - (viwdupq_u16): Delete. - (vdwdupq_x_u8): Delete. - (vdwdupq_x_u16): Delete. - (vdwdupq_x_u32): Delete. - (viwdupq_x_u8): Delete. - (viwdupq_x_u16): Delete. - (viwdupq_x_u32): Delete. - (vdwdupq_m_n_u8): Delete. - (vdwdupq_m_n_u32): Delete. - (vdwdupq_m_n_u16): Delete. - (vdwdupq_m_wb_u8): Delete. - (vdwdupq_m_wb_u32): Delete. - (vdwdupq_m_wb_u16): Delete. - (vdwdupq_n_u8): Delete. - (vdwdupq_n_u32): Delete. - (vdwdupq_n_u16): Delete. - (vdwdupq_wb_u8): Delete. - (vdwdupq_wb_u32): Delete. - (vdwdupq_wb_u16): Delete. - (viwdupq_m_n_u8): Delete. - (viwdupq_m_n_u32): Delete. - (viwdupq_m_n_u16): Delete. - (viwdupq_m_wb_u8): Delete. - (viwdupq_m_wb_u32): Delete. - (viwdupq_m_wb_u16): Delete. - (viwdupq_n_u8): Delete. - (viwdupq_n_u32): Delete. - (viwdupq_n_u16): Delete. - (viwdupq_wb_u8): Delete. - (viwdupq_wb_u32): Delete. - (viwdupq_wb_u16): Delete. - (vdwdupq_x_n_u8): Delete. - (vdwdupq_x_n_u16): Delete. - (vdwdupq_x_n_u32): Delete. - (vdwdupq_x_wb_u8): Delete. - (vdwdupq_x_wb_u16): Delete. - (vdwdupq_x_wb_u32): Delete. - (viwdupq_x_n_u8): Delete. - (viwdupq_x_n_u16): Delete. - (viwdupq_x_n_u32): Delete. - (viwdupq_x_wb_u8): Delete. - (viwdupq_x_wb_u16): Delete. - (viwdupq_x_wb_u32): Delete. - (__arm_vdwdupq_m_n_u8): Delete. - (__arm_vdwdupq_m_n_u32): Delete. - (__arm_vdwdupq_m_n_u16): Delete. - (__arm_vdwdupq_m_wb_u8): Delete. - (__arm_vdwdupq_m_wb_u32): Delete. - (__arm_vdwdupq_m_wb_u16): Delete. - (__arm_vdwdupq_n_u8): Delete. - (__arm_vdwdupq_n_u32): Delete. - (__arm_vdwdupq_n_u16): Delete. - (__arm_vdwdupq_wb_u8): Delete. - (__arm_vdwdupq_wb_u32): Delete. - (__arm_vdwdupq_wb_u16): Delete. - (__arm_viwdupq_m_n_u8): Delete. - (__arm_viwdupq_m_n_u32): Delete. - (__arm_viwdupq_m_n_u16): Delete. - (__arm_viwdupq_m_wb_u8): Delete. - (__arm_viwdupq_m_wb_u32): Delete. - (__arm_viwdupq_m_wb_u16): Delete. - (__arm_viwdupq_n_u8): Delete. - (__arm_viwdupq_n_u32): Delete. - (__arm_viwdupq_n_u16): Delete. - (__arm_viwdupq_wb_u8): Delete. - (__arm_viwdupq_wb_u32): Delete. - (__arm_viwdupq_wb_u16): Delete. - (__arm_vdwdupq_x_n_u8): Delete. - (__arm_vdwdupq_x_n_u16): Delete. - (__arm_vdwdupq_x_n_u32): Delete. - (__arm_vdwdupq_x_wb_u8): Delete. - (__arm_vdwdupq_x_wb_u16): Delete. - (__arm_vdwdupq_x_wb_u32): Delete. - (__arm_viwdupq_x_n_u8): Delete. - (__arm_viwdupq_x_n_u16): Delete. - (__arm_viwdupq_x_n_u32): Delete. - (__arm_viwdupq_x_wb_u8): Delete. - (__arm_viwdupq_x_wb_u16): Delete. - (__arm_viwdupq_x_wb_u32): Delete. - (__arm_vdwdupq_m): Delete. - (__arm_vdwdupq_u8): Delete. - (__arm_vdwdupq_u32): Delete. - (__arm_vdwdupq_u16): Delete. - (__arm_viwdupq_m): Delete. - (__arm_viwdupq_u8): Delete. - (__arm_viwdupq_u32): Delete. - (__arm_viwdupq_u16): Delete. - (__arm_vdwdupq_x_u8): Delete. - (__arm_vdwdupq_x_u16): Delete. - (__arm_vdwdupq_x_u32): Delete. - (__arm_viwdupq_x_u8): Delete. - (__arm_viwdupq_x_u16): Delete. - (__arm_viwdupq_x_u32): Delete. - * config/arm/mve.md (@mve_q_m_wb_u_insn): Swap - operands 1 and 2. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (vidwdup): New. - * config/arm/arm-mve-builtins-shapes.h (vidwdup): New. - -2024-10-18 Christophe Lyon - - * config/arm/iterators.md (mve_insn): Add VIWDUPQ, VDWDUPQ, - VIWDUPQ_M, VDWDUPQ_M. - (VIDWDUPQ): New iterator. - (VIDWDUPQ_M): New iterator. - * config/arm/mve.md (mve_vdwdupq_wb_u_insn) - (mve_viwdupq_wb_u_insn): Merge into ... - (@mve_q_wb_u_insn): ... this. Add missing - mve_unpredicated_insn and mve_move attributes. - (mve_vdwdupq_m_wb_u_insn, mve_viwdupq_m_wb_u_insn): - Merge into ... - (@mve_q_m_wb_u_insn): ... this. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): Fix - check of scalar argument. - (binary_acca_int64): Likewise. - (binary_lshift_unsigned): Likewise. - (binary_rshift_narrow): Likewise. - (binary_rshift_narrow_unsigned): Likewise. - (ternary_lshift): Likewise. - (ternary_rshift): Likewise. - (unary_int32_acc): Likewise. - -2024-10-18 Christophe Lyon - - * config/arm/arm_mve_builtins.def (vddupq_n_u, vidupq_n_u) - (vddupq_m_n_u, vidupq_m_n_u): Delete. - * config/arm/mve.md (mve_vidupq_n_u, mve_vidupq_m_n_u) - (mve_vddupq_n_u, mve_vddupq_m_n_u): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class viddup_impl): New. - (vddup): New. - (vidup): New. - * config/arm/arm-mve-builtins-base.def (vddupq): New. - (vidupq): New. - * config/arm/arm-mve-builtins-base.h (vddupq): New. - (vidupq): New. - * config/arm/arm_mve.h (vddupq_m): Delete. - (vddupq_u8): Delete. - (vddupq_u32): Delete. - (vddupq_u16): Delete. - (vidupq_m): Delete. - (vidupq_u8): Delete. - (vidupq_u32): Delete. - (vidupq_u16): Delete. - (vddupq_x_u8): Delete. - (vddupq_x_u16): Delete. - (vddupq_x_u32): Delete. - (vidupq_x_u8): Delete. - (vidupq_x_u16): Delete. - (vidupq_x_u32): Delete. - (vddupq_m_n_u8): Delete. - (vddupq_m_n_u32): Delete. - (vddupq_m_n_u16): Delete. - (vddupq_m_wb_u8): Delete. - (vddupq_m_wb_u16): Delete. - (vddupq_m_wb_u32): Delete. - (vddupq_n_u8): Delete. - (vddupq_n_u32): Delete. - (vddupq_n_u16): Delete. - (vddupq_wb_u8): Delete. - (vddupq_wb_u16): Delete. - (vddupq_wb_u32): Delete. - (vidupq_m_n_u8): Delete. - (vidupq_m_n_u32): Delete. - (vidupq_m_n_u16): Delete. - (vidupq_m_wb_u8): Delete. - (vidupq_m_wb_u16): Delete. - (vidupq_m_wb_u32): Delete. - (vidupq_n_u8): Delete. - (vidupq_n_u32): Delete. - (vidupq_n_u16): Delete. - (vidupq_wb_u8): Delete. - (vidupq_wb_u16): Delete. - (vidupq_wb_u32): Delete. - (vddupq_x_n_u8): Delete. - (vddupq_x_n_u16): Delete. - (vddupq_x_n_u32): Delete. - (vddupq_x_wb_u8): Delete. - (vddupq_x_wb_u16): Delete. - (vddupq_x_wb_u32): Delete. - (vidupq_x_n_u8): Delete. - (vidupq_x_n_u16): Delete. - (vidupq_x_n_u32): Delete. - (vidupq_x_wb_u8): Delete. - (vidupq_x_wb_u16): Delete. - (vidupq_x_wb_u32): Delete. - (__arm_vddupq_m_n_u8): Delete. - (__arm_vddupq_m_n_u32): Delete. - (__arm_vddupq_m_n_u16): Delete. - (__arm_vddupq_m_wb_u8): Delete. - (__arm_vddupq_m_wb_u16): Delete. - (__arm_vddupq_m_wb_u32): Delete. - (__arm_vddupq_n_u8): Delete. - (__arm_vddupq_n_u32): Delete. - (__arm_vddupq_n_u16): Delete. - (__arm_vidupq_m_n_u8): Delete. - (__arm_vidupq_m_n_u32): Delete. - (__arm_vidupq_m_n_u16): Delete. - (__arm_vidupq_n_u8): Delete. - (__arm_vidupq_m_wb_u8): Delete. - (__arm_vidupq_m_wb_u16): Delete. - (__arm_vidupq_m_wb_u32): Delete. - (__arm_vidupq_n_u32): Delete. - (__arm_vidupq_n_u16): Delete. - (__arm_vidupq_wb_u8): Delete. - (__arm_vidupq_wb_u16): Delete. - (__arm_vidupq_wb_u32): Delete. - (__arm_vddupq_wb_u8): Delete. - (__arm_vddupq_wb_u16): Delete. - (__arm_vddupq_wb_u32): Delete. - (__arm_vddupq_x_n_u8): Delete. - (__arm_vddupq_x_n_u16): Delete. - (__arm_vddupq_x_n_u32): Delete. - (__arm_vddupq_x_wb_u8): Delete. - (__arm_vddupq_x_wb_u16): Delete. - (__arm_vddupq_x_wb_u32): Delete. - (__arm_vidupq_x_n_u8): Delete. - (__arm_vidupq_x_n_u16): Delete. - (__arm_vidupq_x_n_u32): Delete. - (__arm_vidupq_x_wb_u8): Delete. - (__arm_vidupq_x_wb_u16): Delete. - (__arm_vidupq_x_wb_u32): Delete. - (__arm_vddupq_m): Delete. - (__arm_vddupq_u8): Delete. - (__arm_vddupq_u32): Delete. - (__arm_vddupq_u16): Delete. - (__arm_vidupq_m): Delete. - (__arm_vidupq_u8): Delete. - (__arm_vidupq_u32): Delete. - (__arm_vidupq_u16): Delete. - (__arm_vddupq_x_u8): Delete. - (__arm_vddupq_x_u16): Delete. - (__arm_vddupq_x_u32): Delete. - (__arm_vidupq_x_u8): Delete. - (__arm_vidupq_x_u16): Delete. - (__arm_vidupq_x_u32): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (viddup): New. - * config/arm/arm-mve-builtins-shapes.h (viddup): New. - * config/arm/arm-mve-builtins.cc (report_not_one_of): New. - (function_checker::require_immediate_one_of): New. - * config/arm/arm-mve-builtins.def (wb): New mode. - * config/arm/arm-mve-builtins.h (function_checker) Add - require_immediate_one_of. - -2024-10-18 Christophe Lyon - - * config/arm/iterators.md (mve_insn): Add VIDUPQ, VDDUPQ, - VIDUPQ_M, VDDUPQ_M. - (viddupq_op): New. - (viddupq_m_op): New. - (VIDDUPQ): New. - (VIDDUPQ_M): New. - * config/arm/mve.md (mve_vddupq_u_insn) - (mve_vidupq_u_insn): Merge into ... - (mve_q_u_insn): ... this. - (mve_vddupq_m_wb_u_insn, mve_vidupq_m_wb_u_insn): - Merge into ... - (mve_q_m_wb_u_insn): ... this. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vctpq_impl): New. - (vctp16q): New. - (vctp32q): New. - (vctp64q): New. - (vctp8q): New. - * config/arm/arm-mve-builtins-base.def (vctp16q): New. - (vctp32q): New. - (vctp64q): New. - (vctp8q): New. - * config/arm/arm-mve-builtins-base.h (vctp16q): New. - (vctp32q): New. - (vctp64q): New. - (vctp8q): New. - * config/arm/arm-mve-builtins-shapes.cc (vctp): New. - * config/arm/arm-mve-builtins-shapes.h (vctp): New. - * config/arm/arm-mve-builtins.cc - (function_instance::has_inactive_argument): Add support for vctp. - * config/arm/arm_mve.h (vctp16q): Delete. - (vctp32q): Delete. - (vctp64q): Delete. - (vctp8q): Delete. - (vctp8q_m): Delete. - (vctp64q_m): Delete. - (vctp32q_m): Delete. - (vctp16q_m): Delete. - (__arm_vctp16q): Delete. - (__arm_vctp32q): Delete. - (__arm_vctp64q): Delete. - (__arm_vctp8q): Delete. - (__arm_vctp8q_m): Delete. - (__arm_vctp64q_m): Delete. - (__arm_vctp32q_m): Delete. - (__arm_vctp16q_m): Delete. - * config/arm/mve.md (mve_vctpq): Add '@' - prefix. - (mve_vctpq_m): Likewise. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (vornq): New. - * config/arm/arm-mve-builtins-base.def (vornq): New. - * config/arm/arm-mve-builtins-base.h (vornq): New. - * config/arm/arm-mve-builtins-functions.h (class - unspec_based_mve_function_exact_insn_vorn): New. - * config/arm/arm_mve.h (vornq): Delete. - (vornq_m): Delete. - (vornq_x): Delete. - (vornq_u8): Delete. - (vornq_s8): Delete. - (vornq_u16): Delete. - (vornq_s16): Delete. - (vornq_u32): Delete. - (vornq_s32): Delete. - (vornq_f16): Delete. - (vornq_f32): Delete. - (vornq_m_s8): Delete. - (vornq_m_s32): Delete. - (vornq_m_s16): Delete. - (vornq_m_u8): Delete. - (vornq_m_u32): Delete. - (vornq_m_u16): Delete. - (vornq_m_f32): Delete. - (vornq_m_f16): Delete. - (vornq_x_s8): Delete. - (vornq_x_s16): Delete. - (vornq_x_s32): Delete. - (vornq_x_u8): Delete. - (vornq_x_u16): Delete. - (vornq_x_u32): Delete. - (vornq_x_f16): Delete. - (vornq_x_f32): Delete. - (__arm_vornq_u8): Delete. - (__arm_vornq_s8): Delete. - (__arm_vornq_u16): Delete. - (__arm_vornq_s16): Delete. - (__arm_vornq_u32): Delete. - (__arm_vornq_s32): Delete. - (__arm_vornq_m_s8): Delete. - (__arm_vornq_m_s32): Delete. - (__arm_vornq_m_s16): Delete. - (__arm_vornq_m_u8): Delete. - (__arm_vornq_m_u32): Delete. - (__arm_vornq_m_u16): Delete. - (__arm_vornq_x_s8): Delete. - (__arm_vornq_x_s16): Delete. - (__arm_vornq_x_s32): Delete. - (__arm_vornq_x_u8): Delete. - (__arm_vornq_x_u16): Delete. - (__arm_vornq_x_u32): Delete. - (__arm_vornq_f16): Delete. - (__arm_vornq_f32): Delete. - (__arm_vornq_m_f32): Delete. - (__arm_vornq_m_f16): Delete. - (__arm_vornq_x_f16): Delete. - (__arm_vornq_x_f32): Delete. - (__arm_vornq): Delete. - (__arm_vornq_m): Delete. - (__arm_vornq_x): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC): Add VORNQ_M_S, - VORNQ_M_U. - (MVE_FP_M_BINARY_LOGIC): Add VORNQ_M_F. - (mve_insn): Add VORNQ_M_S, VORNQ_M_U, VORNQ_M_F. - * config/arm/mve.md (mve_vornq_s): Rename into ... - (@mve_vornq_s): ... this. - (mve_vornq_u): Rename into ... - (@mve_vornq_u): ... this. - (mve_vornq_f): Rename into ... - (@mve_vornq_f): ... this. - (mve_vornq_m_): Merge into vand/vbic pattern. - (mve_vornq_m_f): Likewise. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (vbicq): New. - * config/arm/arm-mve-builtins-base.def (vbicq): New. - * config/arm/arm-mve-builtins-base.h (vbicq): New. - * config/arm/arm-mve-builtins-functions.h (class - unspec_based_mve_function_exact_insn_vbic): New. - * config/arm/arm-mve-builtins.cc - (function_instance::has_inactive_argument): Add support for vbicq. - * config/arm/arm_mve.h (vbicq): Delete. - (vbicq_m_n): Delete. - (vbicq_m): Delete. - (vbicq_x): Delete. - (vbicq_u8): Delete. - (vbicq_s8): Delete. - (vbicq_u16): Delete. - (vbicq_s16): Delete. - (vbicq_u32): Delete. - (vbicq_s32): Delete. - (vbicq_n_u16): Delete. - (vbicq_f16): Delete. - (vbicq_n_s16): Delete. - (vbicq_n_u32): Delete. - (vbicq_f32): Delete. - (vbicq_n_s32): Delete. - (vbicq_m_n_s16): Delete. - (vbicq_m_n_s32): Delete. - (vbicq_m_n_u16): Delete. - (vbicq_m_n_u32): Delete. - (vbicq_m_s8): Delete. - (vbicq_m_s32): Delete. - (vbicq_m_s16): Delete. - (vbicq_m_u8): Delete. - (vbicq_m_u32): Delete. - (vbicq_m_u16): Delete. - (vbicq_m_f32): Delete. - (vbicq_m_f16): Delete. - (vbicq_x_s8): Delete. - (vbicq_x_s16): Delete. - (vbicq_x_s32): Delete. - (vbicq_x_u8): Delete. - (vbicq_x_u16): Delete. - (vbicq_x_u32): Delete. - (vbicq_x_f16): Delete. - (vbicq_x_f32): Delete. - (__arm_vbicq_u8): Delete. - (__arm_vbicq_s8): Delete. - (__arm_vbicq_u16): Delete. - (__arm_vbicq_s16): Delete. - (__arm_vbicq_u32): Delete. - (__arm_vbicq_s32): Delete. - (__arm_vbicq_n_u16): Delete. - (__arm_vbicq_n_s16): Delete. - (__arm_vbicq_n_u32): Delete. - (__arm_vbicq_n_s32): Delete. - (__arm_vbicq_m_n_s16): Delete. - (__arm_vbicq_m_n_s32): Delete. - (__arm_vbicq_m_n_u16): Delete. - (__arm_vbicq_m_n_u32): Delete. - (__arm_vbicq_m_s8): Delete. - (__arm_vbicq_m_s32): Delete. - (__arm_vbicq_m_s16): Delete. - (__arm_vbicq_m_u8): Delete. - (__arm_vbicq_m_u32): Delete. - (__arm_vbicq_m_u16): Delete. - (__arm_vbicq_x_s8): Delete. - (__arm_vbicq_x_s16): Delete. - (__arm_vbicq_x_s32): Delete. - (__arm_vbicq_x_u8): Delete. - (__arm_vbicq_x_u16): Delete. - (__arm_vbicq_x_u32): Delete. - (__arm_vbicq_f16): Delete. - (__arm_vbicq_f32): Delete. - (__arm_vbicq_m_f32): Delete. - (__arm_vbicq_m_f16): Delete. - (__arm_vbicq_x_f16): Delete. - (__arm_vbicq_x_f32): Delete. - (__arm_vbicq): Delete. - (__arm_vbicq_m_n): Delete. - (__arm_vbicq_m): Delete. - (__arm_vbicq_x): Delete. - * config/arm/mve.md (mve_vbicq_u): Rename into ... - (@mve_vbicq_u): ... this. - (mve_vbicq_s): Rename into ... - (@mve_vbicq_s): ... this. - (mve_vbicq_f): Rename into ... - (@mve_vbicq_f): ... this. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (vcvtaq): New. - (vcvtmq): New. - (vcvtnq): New. - (vcvtpq): New. - * config/arm/arm-mve-builtins-base.def (vcvtaq): New. - (vcvtmq): New. - (vcvtnq): New. - (vcvtpq): New. - * config/arm/arm-mve-builtins-base.h: (vcvtaq): New. - (vcvtmq): New. - (vcvtnq): New. - (vcvtpq): New. - * config/arm/arm-mve-builtins.cc (cvtx): New type. - * config/arm/arm_mve.h (vcvtaq_m): Delete. - (vcvtmq_m): Delete. - (vcvtnq_m): Delete. - (vcvtpq_m): Delete. - (vcvtaq_s16_f16): Delete. - (vcvtaq_s32_f32): Delete. - (vcvtnq_s16_f16): Delete. - (vcvtnq_s32_f32): Delete. - (vcvtpq_s16_f16): Delete. - (vcvtpq_s32_f32): Delete. - (vcvtmq_s16_f16): Delete. - (vcvtmq_s32_f32): Delete. - (vcvtpq_u16_f16): Delete. - (vcvtpq_u32_f32): Delete. - (vcvtnq_u16_f16): Delete. - (vcvtnq_u32_f32): Delete. - (vcvtmq_u16_f16): Delete. - (vcvtmq_u32_f32): Delete. - (vcvtaq_u16_f16): Delete. - (vcvtaq_u32_f32): Delete. - (vcvtaq_m_s16_f16): Delete. - (vcvtaq_m_u16_f16): Delete. - (vcvtaq_m_s32_f32): Delete. - (vcvtaq_m_u32_f32): Delete. - (vcvtmq_m_s16_f16): Delete. - (vcvtnq_m_s16_f16): Delete. - (vcvtpq_m_s16_f16): Delete. - (vcvtmq_m_u16_f16): Delete. - (vcvtnq_m_u16_f16): Delete. - (vcvtpq_m_u16_f16): Delete. - (vcvtmq_m_s32_f32): Delete. - (vcvtnq_m_s32_f32): Delete. - (vcvtpq_m_s32_f32): Delete. - (vcvtmq_m_u32_f32): Delete. - (vcvtnq_m_u32_f32): Delete. - (vcvtpq_m_u32_f32): Delete. - (vcvtaq_x_s16_f16): Delete. - (vcvtaq_x_s32_f32): Delete. - (vcvtaq_x_u16_f16): Delete. - (vcvtaq_x_u32_f32): Delete. - (vcvtnq_x_s16_f16): Delete. - (vcvtnq_x_s32_f32): Delete. - (vcvtnq_x_u16_f16): Delete. - (vcvtnq_x_u32_f32): Delete. - (vcvtpq_x_s16_f16): Delete. - (vcvtpq_x_s32_f32): Delete. - (vcvtpq_x_u16_f16): Delete. - (vcvtpq_x_u32_f32): Delete. - (vcvtmq_x_s16_f16): Delete. - (vcvtmq_x_s32_f32): Delete. - (vcvtmq_x_u16_f16): Delete. - (vcvtmq_x_u32_f32): Delete. - (__arm_vcvtpq_u16_f16): Delete. - (__arm_vcvtpq_u32_f32): Delete. - (__arm_vcvtnq_u16_f16): Delete. - (__arm_vcvtnq_u32_f32): Delete. - (__arm_vcvtmq_u16_f16): Delete. - (__arm_vcvtmq_u32_f32): Delete. - (__arm_vcvtaq_u16_f16): Delete. - (__arm_vcvtaq_u32_f32): Delete. - (__arm_vcvtaq_s16_f16): Delete. - (__arm_vcvtaq_s32_f32): Delete. - (__arm_vcvtnq_s16_f16): Delete. - (__arm_vcvtnq_s32_f32): Delete. - (__arm_vcvtpq_s16_f16): Delete. - (__arm_vcvtpq_s32_f32): Delete. - (__arm_vcvtmq_s16_f16): Delete. - (__arm_vcvtmq_s32_f32): Delete. - (__arm_vcvtaq_m_s16_f16): Delete. - (__arm_vcvtaq_m_u16_f16): Delete. - (__arm_vcvtaq_m_s32_f32): Delete. - (__arm_vcvtaq_m_u32_f32): Delete. - (__arm_vcvtmq_m_s16_f16): Delete. - (__arm_vcvtnq_m_s16_f16): Delete. - (__arm_vcvtpq_m_s16_f16): Delete. - (__arm_vcvtmq_m_u16_f16): Delete. - (__arm_vcvtnq_m_u16_f16): Delete. - (__arm_vcvtpq_m_u16_f16): Delete. - (__arm_vcvtmq_m_s32_f32): Delete. - (__arm_vcvtnq_m_s32_f32): Delete. - (__arm_vcvtpq_m_s32_f32): Delete. - (__arm_vcvtmq_m_u32_f32): Delete. - (__arm_vcvtnq_m_u32_f32): Delete. - (__arm_vcvtpq_m_u32_f32): Delete. - (__arm_vcvtaq_x_s16_f16): Delete. - (__arm_vcvtaq_x_s32_f32): Delete. - (__arm_vcvtaq_x_u16_f16): Delete. - (__arm_vcvtaq_x_u32_f32): Delete. - (__arm_vcvtnq_x_s16_f16): Delete. - (__arm_vcvtnq_x_s32_f32): Delete. - (__arm_vcvtnq_x_u16_f16): Delete. - (__arm_vcvtnq_x_u32_f32): Delete. - (__arm_vcvtpq_x_s16_f16): Delete. - (__arm_vcvtpq_x_s32_f32): Delete. - (__arm_vcvtpq_x_u16_f16): Delete. - (__arm_vcvtpq_x_u32_f32): Delete. - (__arm_vcvtmq_x_s16_f16): Delete. - (__arm_vcvtmq_x_s32_f32): Delete. - (__arm_vcvtmq_x_u16_f16): Delete. - (__arm_vcvtmq_x_u32_f32): Delete. - (__arm_vcvtaq_m): Delete. - (__arm_vcvtmq_m): Delete. - (__arm_vcvtnq_m): Delete. - (__arm_vcvtpq_m): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (vcvtx): New. - * config/arm/arm-mve-builtins-shapes.h (vcvtx): New. - -2024-10-18 Christophe Lyon - - * config/arm/iterators.md (mve_insn): Add VCVTAQ_M_S, VCVTAQ_M_U, - VCVTAQ_S, VCVTAQ_U, VCVTMQ_M_S, VCVTMQ_M_U, VCVTMQ_S, VCVTMQ_U, - VCVTNQ_M_S, VCVTNQ_M_U, VCVTNQ_S, VCVTNQ_U, VCVTPQ_M_S, - VCVTPQ_M_U, VCVTPQ_S, VCVTPQ_U. - (VCVTAQ, VCVTPQ, VCVTNQ, VCVTMQ, VCVTAQ_M, VCVTMQ_M, VCVTNQ_M) - (VCVTPQ_M): Delete. - (VCVTxQ, VCVTxQ_M): New. - * config/arm/mve.md (mve_vcvtpq_) - (mve_vcvtnq_, mve_vcvtmq_) - (mve_vcvtaq_): Merge into ... - (@mve_q_): ... this. - (mve_vcvtaq_m_, mve_vcvtmq_m_) - (mve_vcvtpq_m_, mve_vcvtnq_m_): Merge into - ... - (@mve_q_m_): ... this. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vcvtxq_impl): New. - (vcvtbq, vcvttq): New. - * config/arm/arm-mve-builtins-base.def (vcvtbq, vcvttq): New. - * config/arm/arm-mve-builtins-base.h (vcvtbq, vcvttq): New. - * config/arm/arm-mve-builtins.cc (cvt_f16_f32, cvt_f32_f16): New - types. - (function_instance::has_inactive_argument): Support vcvtbq and - vcvttq. - * config/arm/arm_mve.h (vcvttq_f32): Delete. - (vcvtbq_f32): Delete. - (vcvtbq_m): Delete. - (vcvttq_m): Delete. - (vcvttq_f32_f16): Delete. - (vcvtbq_f32_f16): Delete. - (vcvttq_f16_f32): Delete. - (vcvtbq_f16_f32): Delete. - (vcvtbq_m_f16_f32): Delete. - (vcvtbq_m_f32_f16): Delete. - (vcvttq_m_f16_f32): Delete. - (vcvttq_m_f32_f16): Delete. - (vcvtbq_x_f32_f16): Delete. - (vcvttq_x_f32_f16): Delete. - (__arm_vcvttq_f32_f16): Delete. - (__arm_vcvtbq_f32_f16): Delete. - (__arm_vcvttq_f16_f32): Delete. - (__arm_vcvtbq_f16_f32): Delete. - (__arm_vcvtbq_m_f16_f32): Delete. - (__arm_vcvtbq_m_f32_f16): Delete. - (__arm_vcvttq_m_f16_f32): Delete. - (__arm_vcvttq_m_f32_f16): Delete. - (__arm_vcvtbq_x_f32_f16): Delete. - (__arm_vcvttq_x_f32_f16): Delete. - (__arm_vcvttq_f32): Delete. - (__arm_vcvtbq_f32): Delete. - (__arm_vcvtbq_m): Delete. - (__arm_vcvttq_m): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (vcvt_f16_f32) - (vcvt_f32_f16): New. - * config/arm/arm-mve-builtins-shapes.h (vcvt_f16_f32) - (vcvt_f32_f16): New. - -2024-10-18 Christophe Lyon - - * config/arm/iterators.md (mve_insn): Add VCVTBQ_F16_F32, - VCVTTQ_F16_F32, VCVTBQ_F32_F16, VCVTTQ_F32_F16, VCVTBQ_M_F16_F32, - VCVTTQ_M_F16_F32, VCVTBQ_M_F32_F16, VCVTTQ_M_F32_F16. - (VCVTxQ_F16_F32): New iterator. - (VCVTxQ_F32_F16): Likewise. - (VCVTxQ_M_F16_F32): Likewise. - (VCVTxQ_M_F32_F16): Likewise. - * config/arm/mve.md (mve_vcvttq_f32_f16v4sf) - (mve_vcvtbq_f32_f16v4sf): Merge into ... - (@mve_q_f32_f16v4sf): ... this. - (mve_vcvtbq_f16_f32v8hf, mve_vcvttq_f16_f32v8hf): Merge into ... - (@mve_q_f16_f32v8hf): ... this. - (mve_vcvtbq_m_f16_f32v8hf, mve_vcvttq_m_f16_f32v8hf): Merge into - ... - (@mve_q_m_f16_f32v8hf): ... this. - (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f32_f16v4sf): Merge into - ... - (@mve_q_m_f32_f16v4sf): ... this. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (class vcvtq_impl): New. - (vcvtq): New. - * config/arm/arm-mve-builtins-base.def (vcvtq): New. - * config/arm/arm-mve-builtins-base.h (vcvtq): New. - * config/arm/arm-mve-builtins.cc (cvt): New type. - * config/arm/arm_mve.h (vcvtq): Delete. - (vcvtq_n): Delete. - (vcvtq_m): Delete. - (vcvtq_m_n): Delete. - (vcvtq_x): Delete. - (vcvtq_x_n): Delete. - (vcvtq_f16_s16): Delete. - (vcvtq_f32_s32): Delete. - (vcvtq_f16_u16): Delete. - (vcvtq_f32_u32): Delete. - (vcvtq_s16_f16): Delete. - (vcvtq_s32_f32): Delete. - (vcvtq_u16_f16): Delete. - (vcvtq_u32_f32): Delete. - (vcvtq_n_f16_s16): Delete. - (vcvtq_n_f32_s32): Delete. - (vcvtq_n_f16_u16): Delete. - (vcvtq_n_f32_u32): Delete. - (vcvtq_n_s16_f16): Delete. - (vcvtq_n_s32_f32): Delete. - (vcvtq_n_u16_f16): Delete. - (vcvtq_n_u32_f32): Delete. - (vcvtq_m_f16_s16): Delete. - (vcvtq_m_f16_u16): Delete. - (vcvtq_m_f32_s32): Delete. - (vcvtq_m_f32_u32): Delete. - (vcvtq_m_s16_f16): Delete. - (vcvtq_m_u16_f16): Delete. - (vcvtq_m_s32_f32): Delete. - (vcvtq_m_u32_f32): Delete. - (vcvtq_m_n_f16_u16): Delete. - (vcvtq_m_n_f16_s16): Delete. - (vcvtq_m_n_f32_u32): Delete. - (vcvtq_m_n_f32_s32): Delete. - (vcvtq_m_n_s32_f32): Delete. - (vcvtq_m_n_s16_f16): Delete. - (vcvtq_m_n_u32_f32): Delete. - (vcvtq_m_n_u16_f16): Delete. - (vcvtq_x_f16_u16): Delete. - (vcvtq_x_f16_s16): Delete. - (vcvtq_x_f32_s32): Delete. - (vcvtq_x_f32_u32): Delete. - (vcvtq_x_n_f16_s16): Delete. - (vcvtq_x_n_f16_u16): Delete. - (vcvtq_x_n_f32_s32): Delete. - (vcvtq_x_n_f32_u32): Delete. - (vcvtq_x_s16_f16): Delete. - (vcvtq_x_s32_f32): Delete. - (vcvtq_x_u16_f16): Delete. - (vcvtq_x_u32_f32): Delete. - (vcvtq_x_n_s16_f16): Delete. - (vcvtq_x_n_s32_f32): Delete. - (vcvtq_x_n_u16_f16): Delete. - (vcvtq_x_n_u32_f32): Delete. - (__arm_vcvtq_f16_s16): Delete. - (__arm_vcvtq_f32_s32): Delete. - (__arm_vcvtq_f16_u16): Delete. - (__arm_vcvtq_f32_u32): Delete. - (__arm_vcvtq_s16_f16): Delete. - (__arm_vcvtq_s32_f32): Delete. - (__arm_vcvtq_u16_f16): Delete. - (__arm_vcvtq_u32_f32): Delete. - (__arm_vcvtq_n_f16_s16): Delete. - (__arm_vcvtq_n_f32_s32): Delete. - (__arm_vcvtq_n_f16_u16): Delete. - (__arm_vcvtq_n_f32_u32): Delete. - (__arm_vcvtq_n_s16_f16): Delete. - (__arm_vcvtq_n_s32_f32): Delete. - (__arm_vcvtq_n_u16_f16): Delete. - (__arm_vcvtq_n_u32_f32): Delete. - (__arm_vcvtq_m_f16_s16): Delete. - (__arm_vcvtq_m_f16_u16): Delete. - (__arm_vcvtq_m_f32_s32): Delete. - (__arm_vcvtq_m_f32_u32): Delete. - (__arm_vcvtq_m_s16_f16): Delete. - (__arm_vcvtq_m_u16_f16): Delete. - (__arm_vcvtq_m_s32_f32): Delete. - (__arm_vcvtq_m_u32_f32): Delete. - (__arm_vcvtq_m_n_f16_u16): Delete. - (__arm_vcvtq_m_n_f16_s16): Delete. - (__arm_vcvtq_m_n_f32_u32): Delete. - (__arm_vcvtq_m_n_f32_s32): Delete. - (__arm_vcvtq_m_n_s32_f32): Delete. - (__arm_vcvtq_m_n_s16_f16): Delete. - (__arm_vcvtq_m_n_u32_f32): Delete. - (__arm_vcvtq_m_n_u16_f16): Delete. - (__arm_vcvtq_x_f16_u16): Delete. - (__arm_vcvtq_x_f16_s16): Delete. - (__arm_vcvtq_x_f32_s32): Delete. - (__arm_vcvtq_x_f32_u32): Delete. - (__arm_vcvtq_x_n_f16_s16): Delete. - (__arm_vcvtq_x_n_f16_u16): Delete. - (__arm_vcvtq_x_n_f32_s32): Delete. - (__arm_vcvtq_x_n_f32_u32): Delete. - (__arm_vcvtq_x_s16_f16): Delete. - (__arm_vcvtq_x_s32_f32): Delete. - (__arm_vcvtq_x_u16_f16): Delete. - (__arm_vcvtq_x_u32_f32): Delete. - (__arm_vcvtq_x_n_s16_f16): Delete. - (__arm_vcvtq_x_n_s32_f32): Delete. - (__arm_vcvtq_x_n_u16_f16): Delete. - (__arm_vcvtq_x_n_u32_f32): Delete. - (__arm_vcvtq): Delete. - (__arm_vcvtq_n): Delete. - (__arm_vcvtq_m): Delete. - (__arm_vcvtq_m_n): Delete. - (__arm_vcvtq_x): Delete. - (__arm_vcvtq_x_n): Delete. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc - (nonoverloaded_base::explicit_type_suffix_p): Add unused - type_suffix_info parameter. - (overloaded_base::explicit_type_suffix_p): Likewise. - (unary_n_def::explicit_type_suffix_p): Likewise. - (vcvt): New. - * config/arm/arm-mve-builtins-shapes.h (vcvt): New. - * config/arm/arm-mve-builtins.cc (function_builder::get_name): Add - new type_suffix parameter. - (function_builder::add_overloaded_functions): Likewise. - * config/arm/arm-mve-builtins.h - (function_shape::explicit_type_suffix_p): Likewise. - -2024-10-18 Christophe Lyon - - * config/arm/iterators.md (mve_insn): Add VCVTQ_FROM_F_S, - VCVTQ_FROM_F_U, VCVTQ_M_FROM_F_S, VCVTQ_M_FROM_F_U, - VCVTQ_M_N_FROM_F_S, VCVTQ_M_N_FROM_F_U, VCVTQ_M_N_TO_F_S, - VCVTQ_M_N_TO_F_U, VCVTQ_M_TO_F_S, VCVTQ_M_TO_F_U, - VCVTQ_N_FROM_F_S, VCVTQ_N_FROM_F_U, VCVTQ_N_TO_F_S, - VCVTQ_N_TO_F_U, VCVTQ_TO_F_S, VCVTQ_TO_F_U. - * config/arm/mve.md (mve_vcvtq_to_f_): Rename into - @mve_q_to_f_. - (mve_vcvtq_from_f_): Rename into - @mve_q_from_f_. - (mve_vcvtq_n_to_f_): Rename into - @mve_q_n_to_f_. - (mve_vcvtq_n_from_f_): Rename into - @mve_q_n_from_f_. - (mve_vcvtq_m_to_f_): Rename into - @mve_q_m_to_f_. - (mve_vcvtq_m_n_from_f_): Rename into - @mve_q_m_n_from_f_. - (mve_vcvtq_m_from_f_): Rename into - @mve_q_m_from_f_. - (mve_vcvtq_m_n_to_f_): Rename into - @mve_q_m_n_to_f_. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-functions.h - (unspec_based_mve_function_base): Add m_unspec_for_sint, - m_unspec_for_uint, m_unspec_for_fp and expand_unspec members. - (unspec_based_mve_function_exact_insn): Inherit from - unspec_based_mve_function_base and use expand_unspec. - (unspec_mve_function_exact_insn): Likewise. - (unspec_mve_function_exact_insn_pred_p): Likewise. Use - conditionals. - (unspec_mve_function_exact_insn_vshl): Likewise. - (unspec_based_mve_function_exact_insn_vcmp): Initialize new - inherited members. Use conditionals. - (unspec_mve_function_exact_insn_rot): Merge PRED_m and PRED_x - handling. Use conditionals. - (unspec_mve_function_exact_insn_vmull): Likewise. - (unspec_mve_function_exact_insn_vmull_poly): Likewise. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (create_def::resolve): - Delete function. - -2024-10-18 Christophe Lyon - - * config/arm/arm-mve-builtins-shapes.cc (binary_orrq_def): Improve comment. - -2024-10-18 Richard Biener - - PR tree-optimization/117171 - * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): - Relax vect_external_def VECTOR_BOOLEAN_TYPE_P constraint. - -2024-10-17 Siddhesh Poyarekar - - PR middle-end/77608 - * tree-object-size.cc (plus_stmt_object_size): Drop check for - constant offset. - -2024-10-17 Patrick Palka - - * doc/extend.texi (C++ Concepts): Remove section. Move - __is_same documentation to the previous Type Traits section. - -2024-10-17 Oleg Endo - - PR target/113533 - * config/sh/sh.cc (sh_rtx_costs): Delete wrong semicolon. - -2024-10-17 Richard Biener - - PR tree-optimization/117172 - * tree-vect-loop.cc (vectorizable_nonlinear_induction): Add - single-lane SLP support. - -2024-10-17 Denis Chertykov - - PR target/116550 - * lra-constraints.cc (get_reload_reg): Reuse scratch registers - generated by LRA. - -2024-10-17 Richard Biener - - * tree-vect-slp.cc (vect_lower_load_permutations): Avoid - exempting non-power-of-two group sizes from lowering. - -2024-10-17 Lingling Kong - - * config/i386/sse.md(avx10_2_comsbf16_v8bf): Fixed scalar - operands. - -2024-10-17 liuhongt - - PR target/116940 - * config/i386/sse.md (*avx2_pcmp3_7): Change - UNSPEC_PCMP_ITER to UNSPEC_PCMP. - (*avx2_pcmp3_8): New pre_reload - define_insn_and_splitter. - -2024-10-17 liuhongt - - PR target/117072 - * config/i386/sse.md (_fmadd__mask): - Relax predicates of fma operands from register_operand to - nonimmediate_operand. - (_fmadd__mask3): Ditto. - (_fmsub__mask): Ditto. - (_fmsub__mask3): Ditto. - (_fnmadd__mask): Ditto. - (_fnmadd__mask3): Ditto. - (_fnmsub__mask): Ditto. - (_fnmsub__mask3): Ditto. - (_fmaddsub__mask3): Ditto. - (_fmsubadd__mask): Ditto. - (_fmsubadd__mask3): Ditto. - (avx512f_vmfmadd__mask): Ditto. - (avx512f_vmfmadd__mask3): Ditto. - (avx512f_vmfmadd__maskz_1): Ditto. - (*avx512f_vmfmsub__mask): Ditto. - (avx512f_vmfmsub__mask3): Ditto. - (*avx512f_vmfmsub__maskz_1): Ditto. - (avx512f_vmfnmadd__mask): Ditto. - (avx512f_vmfnmadd__mask3): Ditto. - (avx512f_vmfnmadd__maskz_1): Ditto. - (*avx512f_vmfnmsub__mask): Ditto. - (*avx512f_vmfnmsub__mask3): Ditto. - (*avx512f_vmfnmsub__maskz_1): Ditto. - (avx10_2_fmaddnepbf16__mask3): Ditto. - (avx10_2_fnmaddnepbf16__mask3): Ditto. - (avx10_2_fmsubnepbf16__mask3): Ditto. - (avx10_2_fnmsubnepbf16__mask3): Ditto. - (fmai_vmfmadd_): Swap operands[1] and operands[2]. - (fmai_vmfmsub_): Ditto. - (fmai_vmfnmadd_): Ditto. - (fmai_vmfnmsub_): Ditto. - (*fmai_fmadd_): Swap operands[1] and operands[2] adjust - operands[1] predicates from register_operand to - nonimmediate_operand. - (*fmai_fmsub_): Ditto. - (*fmai_fnmadd_): Ditto. - (*fmai_fnmsub_): Ditto. - -2024-10-17 liuhongt - - PR middle-end/117072 - * combine.cc (maybe_swap_commutative_operands): - Canonicalize (vec_merge (fma op2 op1 op3) op1 mask) - to (vec_merge (fma op1 op2 op3) op1 mask). - -2024-10-17 Cui, Lili - - * config/i386/sse.md (andn3): New. - * config/i386/mmx.md (andn3): New. - -2024-10-16 Siddhesh Poyarekar - - * tree-object-size.cc (plus_stmt_object_size): Call - SIZE_FOR_OFFSET for some negative offset cases. - -2024-10-16 Jolen Li - Christophe Lyon - - * config/arm/arm-mve-builtins-base.cc (vdupq_impl): New class. - (vdupq): Use new implementation. - * config/arm/arm.cc (arm_rtx_costs_internal): Handle HFmode - for COST_DOUBLE. Update costing for CONST_VECTOR. - * config/arm/arm_mve_builtins.def: Merge vdupq_n_f, vdupq_n_s - and vdupq_n_u into vdupq_n. - * config/arm/mve.md (mve_vdup): Rename into ... - (@mve_vdup_n): ... this. - (@mve_q_n_f): Delete. - (@mve_q_n_): Delete.. - (@mve_q_m_n_): Update mve_unpredicated_insn - attribute. - (@mve_q_m_n_f): Likewise. - -2024-10-16 Jolen Li - Christophe Lyon - - * config/arm/mve.md (mve_vdup): Fix mode iterator. - -2024-10-16 David Malcolm - - PR other/116602 - * diagnostic-format-sarif.cc: Include "demangle.h" and - "backtrace.h". - (sarif_invocation::add_notification_for_ice): Add "backtrace" - param and pass it to ctor. - (sarif_ice_notification::sarif_ice_notification): Add "backtrace" - param and add it to property bag. - (bt_stop): New, taken from diagnostic.cc. - (struct bt_closure): New. - (bt_callback): New, adapted from diagnostic.cc. - (sarif_builder::make_stack_from_backtrace): New. - (sarif_builder::on_report_diagnostic): Attempt to get backtrace - and pass it to add_notification_for_ice. - -2024-10-16 David Malcolm - - PR other/116613 - * diagnostic-format-sarif.cc - (sarif_builder::on_report_diagnostic): Move the fnotice here from - sarif_ice_handler. - (sarif_ice_handler): Delete. - (diagnostic_output_format_init_sarif): Drop setting of ice handler - callback. - * diagnostic.cc (diagnostic_context::initialize): Likewise. - (diagnostic_context::action_after_output): Rather than call - m_ice_handler_cb, instead call finish on this context. - * diagnostic.h (ice_handler_callback_t): Delete typedef. - (diagnostic_context::set_ice_handler_callback): Delete. - (diagnostic_context::m_ice_handler_cb): Delete. - -2024-10-16 Andi Kleen - - PR middle-end/116510 - * tree-if-conv.cc (predicate_bbs): Add missing fold_converts. - -2024-10-16 Jakub Jelinek - - * attribs.cc (lookup_scoped_attribute_spec): ?: operator formatting - fixes. - * basic-block.h (FOR_BB_INSNS_SAFE): Likewise. - * cfgcleanup.cc (outgoing_edges_match): Likewise. - * cgraph.cc (cgraph_node::dump): Likewise. - * config/arc/arc.cc (gen_acc1, gen_acc2): Likewise. - * config/arc/arc.h (CLASS_MAX_NREGS, CONSTANT_ADDRESS_P): Likewise. - * config/arm/arm.cc (arm_print_operand): Likewise. - * config/cris/cris.md (*b): Likewise. - * config/darwin.cc (darwin_asm_declare_object_name, - darwin_emit_common): Likewise. - * config/darwin-driver.cc (darwin_driver_init): Likewise. - * config/epiphany/epiphany.md (call, sibcall, call_value, - sibcall_value): Likewise. - * config/i386/i386.cc (gen_push2): Likewise. - * config/i386/i386.h (ix86_cur_cost): Likewise. - * config/i386/openbsdelf.h (FUNCTION_PROFILER): Likewise. - * config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): - Likewise. - * config/loongarch/loongarch-cpu.cc (fill_native_cpu_config): - Likewise. - * config/riscv/riscv.cc (riscv_union_memmodels): Likewise. - * config/riscv/zc.md (*mva01s, *mvsa01): Likewise. - * config/rs6000/mmintrin.h (_mm_cmpeq_pi8, _mm_cmpgt_pi8, - _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32, _mm_cmpgt_pi32): - Likewise. - * config/v850/predicates.md (pattern_is_ok_for_prologue): Likewise. - * config/xtensa/constraints.md (d, C, W): Likewise. - * coverage.cc (coverage_begin_function, build_init_ctor, - build_gcov_exit_decl): Likewise. - * df-problems.cc (df_create_unused_note): Likewise. - * diagnostic.cc (diagnostic_set_caret_max_width): Likewise. - * diagnostic-path.cc (path_summary::path_summary): Likewise. - * expr.cc (expand_expr_divmod): Likewise. - * gcov.cc (format_gcov): Likewise. - * gcov-dump.cc (dump_gcov_file): Likewise. - * genmatch.cc (main): Likewise. - * incpath.cc (remove_duplicates, register_include_chains): Likewise. - * ipa-devirt.cc (dump_odr_type): Likewise. - * ipa-icf.cc (sem_item_optimizer::merge_classes): Likewise. - * ipa-inline.cc (inline_small_functions): Likewise. - * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::dump): - Likewise. - * ipa-sra.cc (create_parameter_descriptors): Likewise. - * ipa-utils.cc (find_always_executed_bbs): Likewise. - * predict.cc (predict_loops): Likewise. - * selftest.cc (read_file): Likewise. - * sreal.h (SREAL_SIGN, SREAL_ABS): Likewise. - * tree-dump.cc (dequeue_and_dump): Likewise. - * tree-ssa-ccp.cc (bit_value_binop): Likewise. - -2024-10-16 Eric Botcazou - - PR target/113952 - PR target/117168 - * config/sparc/constraints.md ('U'): Delete. - * config/sparc/sparc.md (*movdi_insn_sp32): Remove U alternatives. - (*movdf_insn_sp32): Likewise. - (*mov_insn_sp32): Likewise. - * doc/md.texi (SPARC constraints): Remove entry for 'U'. - -2024-10-16 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Move - VMAT_ELEMENTWISE fallback for single-element interleaving - of too large groups before overrun checking. - -2024-10-16 Richard Biener - - PR tree-optimization/117050 - * tree-vect-slp.cc (vect_build_slp_tree_2): Properly handle - non-grouped masked loads when handling permutations. - -2024-10-16 Richard Biener - - * tree-vectorizer.h (SLP_INSTANCE_UNROLLING_FACTOR): Remove. - (slp_instance::unrolling_factor): Likewise. - * tree-vect-slp.cc (vect_build_slp_instance): Do not set - SLP_INSTANCE_UNROLLING_FACTOR. Remove then dead code. - Compute and set max_nunits from the RHS nodes merged. - (vect_update_slp_vf_for_node): New function. - (vect_make_slp_decision): Use vect_update_slp_vf_for_node - to compute VF recursively. - (vect_build_slp_store_interleaving): Get max_nunits and - properly set that on the permute nodes built. - (vect_analyze_slp): Do not set SLP_INSTANCE_UNROLLING_FACTOR. - -2024-10-16 Robin Dapp - - PR target/116655 - * config/riscv/riscv-vector-costs.cc (max_number_of_live_regs): - Use biggest mode instead of constant's saved mode. - -2024-10-16 Jakub Jelinek - - * gimplify.cc (gimplify_init_ctor_eval): For larger RAW_DATA_CST, - just gimplify cref as lvalue and add gimple assignment of rctor - to cref instead of going through gimplification of INIT_EXPR, as - the latter can suffer from infinite recursion. - -2024-10-16 Jakub Jelinek - - * treestruct.def (TS_RAW_DATA_CST): New. - * tree.def (RAW_DATA_CST): New tree code. - * tree-core.h (struct tree_raw_data): New type. - (union tree_node): Add raw_data_cst member. - * tree.h (RAW_DATA_LENGTH, RAW_DATA_POINTER, RAW_DATA_OWNER): Define. - (gt_ggc_mx, gt_pch_nx): Declare overloads for tree_raw_data *. - * tree.cc (tree_node_structure_for_code): Handle RAW_DATA_CST. - (initialize_tree_contains_struct): Handle TS_RAW_DATA_CST. - (tree_code_size): Handle RAW_DATA_CST. - (initializer_zerop): Likewise. - (gt_ggc_mx, gt_pch_nx): Define overloads for tree_raw_data *. - * gimplify.cc (gimplify_init_ctor_eval): Handle RAW_DATA_CST. - * fold-const.cc (operand_compare::operand_equal_p): Handle - RAW_DATA_CST. Formatting fix. - (operand_compare::hash_operand): Handle RAW_DATA_CST. - (native_encode_initializer): Likewise. - (get_array_ctor_element_at_index): Likewise. - (fold): Likewise. - * gimple-fold.cc (fold_array_ctor_reference): Likewise. Formatting - fix. - * varasm.cc (const_hash_1): Handle RAW_DATA_CST. - (initializer_constant_valid_p_1): Likewise. - (array_size_for_constructor): Likewise. - (output_constructor_regular_field): Likewise. - * expr.cc (categorize_ctor_elements_1): Likewise. - (expand_expr_real_1) : Punt for RAW_DATA_CST. - * tree-streamer.cc (streamer_check_handled_ts_structures): Mark - TS_RAW_DATA_CST as handled. - * tree-streamer-in.cc (streamer_alloc_tree): Handle RAW_DATA_CST. - (lto_input_ts_raw_data_cst_tree_pointers): New function. - (streamer_read_tree_body): Call it for RAW_DATA_CST. - * tree-streamer-out.cc (write_ts_raw_data_cst_tree_pointers): New - function. - (streamer_write_tree_body): Call it for RAW_DATA_CST. - (streamer_write_tree_header): Handle RAW_DATA_CST. - * lto-streamer-out.cc (DFS::DFS_write_tree_body): Handle RAW_DATA_CST. - * tree-pretty-print.cc (dump_generic_node): Likewise. - -2024-10-16 Sam James - - * config/vax/vax.opt.urls: Adjust index for -mlra. - -2024-10-16 Sam James - - PR target/113952 - * config/sparc/sparc.cc (sparc_lra_p): Delete. - (TARGET_LRA_P): Ditto. - (sparc_option_override): Don't use MASK_LRA. - * config/sparc/sparc.md (disabled,enabled): Drop lra attribute. - * config/sparc/sparc.opt: Delete -mlra. - * config/sparc/sparc.opt.urls: Ditto. - * doc/invoke.texi (SPARC options): Drop -mlra and -mno-lra. - -2024-10-15 Qing Zhao - - PR c/116016 - * doc/extend.texi: Add documentation for __builtin_counted_by_ref. - -2024-10-15 Jakub Jelinek - - PR middle-end/116891 - * match.pd ((negate (fmas@3 @0 @1 @2)) -> (IFN_FNMS @0 @1 @2)): - Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING. - ((negate (IFN_FMS@3 @0 @1 @2)) -> (IFN_FNMA @0 @1 @2)): Likewise. - ((negate (IFN_FNMA@3 @0 @1 @2)) -> (IFN_FMS @0 @1 @2)): Likewise. - -2024-10-15 Andrew Pinski - - PR c++/117157 - * doc/invoke.texi (Wno-changes-meaning): Add opindex. - -2024-10-15 Uros Bizjak - - PR target/117116 - * config/i386/i386-expand.cc (expand_vector_set): Force "val" - into a register before VEC_MERGE/VEC_DUPLICATE RTX is generated - if it doesn't satisfy nonimmediate_operand predicate. - -2024-10-15 Andrew Pinski - - * tree-ssa-dce.cc (perform_tree_ssa_dce): Remove FIXME note. - -2024-10-15 Andrew Pinski - - * gen-pass-instances.awk: Remove the limit of the params. - * pass_manager.h (NEXT_PASS_WITH_ARG2): Rename to ... - (NEXT_PASS_WITH_ARGS): This. - * passes.cc (NEXT_PASS_WITH_ARG2): Rename to ... - (NEXT_PASS_WITH_ARGS): This and support more than 2 params by using - a constexpr array. - -2024-10-15 Richard Biener - - PR tree-optimization/116907 - * tree-ssa-live.cc (clear_unused_block_pointer_in_block): New - helper. - (clear_unused_block_pointer): Call it. - -2024-10-15 Pan Li - - PR middle-end/117141 - * match.pd: Remove the dup pattern for signed SAT_SUB. - -2024-10-15 Tamar Christina - - * tree-vectorizer.h (vect_mem_access_type): New. - * config/aarch64/aarch64.cc (aarch64_ld234_st234_vectors): Use it. - (aarch64_detect_vector_stmt_subtype): Likewise. - (aarch64_adjust_stmt_cost): Likewise. - (aarch64_vector_costs::count_ops): Likewise. - (aarch64_vector_costs::add_stmt_cost): Make SLP node named. - -2024-10-15 Richard Biener - - PR tree-optimization/117138 - * gimple-range-fold.cc (fold_using_range::condexpr_adjust): - Check if the comparison operand type is supported. - -2024-10-15 Richard Biener - - PR middle-end/117137 - * expr.cc (expand_cond_expr_using_cmove): Make sure to - expand vector comparisons separately. - -2024-10-15 Richard Biener - - PR tree-optimization/117147 - * tree-vect-slp.cc (vect_build_slp_tree_1): Put vars and - initialization of per-lane data into the per-lane processing - loop to avoid re-using previous lane state. - -2024-10-15 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold): - Implement fold to svlsl for power-of-2 operands. - -2024-10-15 Jakub Jelinek - - * doc/invoke.texi (Wtrailing-whitespace): Document. - -2024-10-15 Jakub Jelinek - - PR bootstrap/117110 - * Makefile.in (generated_files, generated_match_files, - build/genmatch$(build_exeext), LINKER_FOR_BUILD): Revert - 2024-10-12 changes. - * genmatch.cc: Don't include pretty-print.h and input.h. - (fatal, ggc_internal_cleared_alloc, ggc_free, line_table, - linemap_client_expand_location_to_spelling_point): Revert - 2024-10-12 changes. - (DIAG_ARGMAX): Define. - (diag_integer_with_precision): Define. - (diag_vfprintf): New function. - (diagnostic_cb): Use diag_vfprintf instead of pp_format_verbatim. - (output_line_directive): Revert 2024-10-12 changes. - -2024-10-14 David Malcolm - - PR bootstrap/117109 - * diagnostic-format-sarif.cc - (diagnostic_output_format_init_sarif_file): Rename - diagnostic_context::emit_diagnostic to - diagnostic_context::emit_diagnostic_with_group. - * diagnostic.cc (diagnostic_context::emit_diagnostic): Rename - to... - (diagnostic_context::emit_diagnostic_with_group): ...this. - (diagnostic_context::emit_diagnostic_va): Rename to... - (diagnostic_context::emit_diagnostic_with_group_va): ...this. - * diagnostic.h (diagnostic_context::emit_diagnostic): Rename to... - (diagnostic_context::emit_diagnostic_with_group): ...this. - (diagnostic_context::emit_diagnostic_va): Rename to... - (diagnostic_context::emit_diagnostic_with_group_va): ...this. - -2024-10-14 Andre Vieira - Andrew Pinski - - PR middle-end/116997 - * fold-const.cc (fold_ternary_loc): Fix BIT_INSERT_EXPR constant folding - for BYTES_BIG_ENDIAN targets. - -2024-10-14 Andrew Pinski - - * tree-ssa-dce.cc (tree_ssa_dce): Remove. - (tree_ssa_cd_dce): Remove. - (class pass_dce_base): New class. - (class pass_dce): Use pass_dce_base as the base class. - (class pass_cd_dce): Likewise. - -2024-10-14 Andrew Pinski - - PR tree-optimization/117096 - * passes.def: Update some of the dce/cd-cde passes setting - the 2nd arg to true. - Also remove comment about stdarg since dce does it. - * tree-ssa-dce.cc (pass_dce): Add remove_unused_locals_p field. - Update set_pass_param to allow for 2nd param. - Use remove_unused_locals_p in execute to return TODO_remove_unused_locals. - (pass_cd_dce): Likewise. - * tree-stdarg.cc (pass_data_stdarg): Remove TODO_remove_unused_locals. - -2024-10-14 Andrew Pinski - - * gen-pass-instances.awk (END): Handle processing - of multiple arguments to NEXT_PASS. Also error out - if using more than max_number_args (2). - * pass_manager.h (NEXT_PASS_WITH_ARG2): New define. - * passes.cc (NEXT_PASS_WITH_ARG2): New define. - -2024-10-14 Andrew Pinski - - * gen-pass-instances.awk: Print out the #undefs. - * pass_manager.h: Don't #undef INSERT_PASSES_AFTER, - PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES, NEXT_PASS, - NEXT_PASS_WITH_ARG, and TERMINATE_PASS_LIST. - * passes.cc: Likewise. - -2024-10-14 Tamar Christina - - PR tree-optimization/116956 - * tree-vectorizer.cc (vec_info::move_dr): Copy STMT_VINFO_STRIDED_P. - -2024-10-14 Tamar Christina - - PR rtl-optimization/117012 - * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Use - const_vec_duplicate_p instead of CONST_VECTOR_DUPLICATE_P. - -2024-10-14 Tamar Christina - - PR target/116371 - * config/aarch64/aarch64-sve-builtins-sve2.cc (class svpsel_impl): - Renamed to ... - (class svpsel_lane_impl): ... This and adjust initialization. - * config/aarch64/aarch64-sve-builtins-sve2.def (svpsel): Renamed to ... - (svpsel_lane): ... This. - * config/aarch64/aarch64-sve-builtins-sve2.h (svpsel): Renamed to - svpsel_lane. - -2024-10-14 Tamar Christina - - * tree-vect-loop.cc (vect_analyze_loop_2): Handle SLP trees with no - children. - * tree-vectorizer.h (enum slp_instance_kind): Add slp_inst_kind_gcond. - (LOOP_VINFO_EARLY_BREAKS_LIVE_IVS): New. - (vectorizable_early_exit): Expose. - (class _loop_vec_info): Add early_break_live_stmts. - * tree-vect-slp.cc (vect_build_slp_instance, vect_analyze_slp_instance): - Support gcond instances. - (vect_analyze_slp): Analyze gcond roots and early break live statements. - (maybe_push_to_hybrid_worklist): Don't sink gconds. - (vect_slp_analyze_operations): Support gconds. - (vect_slp_check_for_roots): Update comments. - (vectorize_slp_instance_root_stmt): Support gconds. - (vect_schedule_slp): Pass vinfo to vectorize_slp_instance_root_stmt. - * tree-vect-stmts.cc (vect_stmt_relevant_p): Record early break live - statements. - (vectorizable_early_exit): Support SLP. - -2024-10-14 Victor Do Nascimento - - PR middle-end/116926 - * optabs-query.cc (find_widening_optab_handler_and_mode): Add - handling of vector -> scalar optab handling. - -2024-10-14 Richard Sandiford - - PR target/116999 - PR target/117045 - * config/aarch64/aarch64-sve-builtins-base.cc - (svwhilelx_impl::fold): Check for WHILELTs of the minimum value - and WHILELEs of the maximum value. Fold them to all-false and - all-true respectively. - -2024-10-14 Richard Biener - - PR middle-end/116891 - * match.pd ((negate (IFN_FNMS@3 @0 @1 @2)) -> (IFN_FMA @0 @1 @2)): - Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING. - -2024-10-14 Pan Li - - * match.pd: Add matching pattern for vector signed SAT_SUB form 3. - -2024-10-14 Richard Biener - - PR tree-optimization/116290 - * tree-loop-distribution.cc (determine_reduction_stmt_1): PHIs - have no debug variants. Start with first non-debug real stmt. - * tree-ssa-loop-ivopts.cc (find_givs_in_bb): Do not analyze - debug stmts. - -2024-10-14 Oleg Endo - Roger Sayle - - PR target/113533 - * config/sh/sh.cc (sh_rtx_costs): Adjust cost estimation of MEM rtx - to be always at least COST_N_INSNS (1). Forward speed argument to - sh_address_cost. - -2024-10-13 Andreas Schwab - - * config/m68k/m68k.md ("movsi", "movxf"): Replace - reload_in_progress by reload_in_progress || lra_in_progress. - * config/m68k/m68k.cc (m68k_legitimate_mem_p) - (emit_move_sequence): Likewise. - * config/m68k/predicates.md ("fp_src_operand"): Likewise. - -2024-10-13 Richard Biener - - PR tree-optimization/116481 - * pointer-query.cc (build_printable_array_type): - Build an array types with function or method element type - manually to avoid bogus diagnostic. - -2024-10-13 Tobias Burnus - - * gimple-fold.cc (gimple_fold_builtin_acc_on_device): Also fold - when offloading is not configured. - -2024-10-13 Jivan Hakobyan - - * config/riscv/riscv.md (zero_extendsidi2): If RHS is already - zero extended, then this is just a copy. - (extendsidi2): Similarly, but for sign extension. - -2024-10-12 Feng Xue - - PR tree-optimization/116985 - * tree-vect-loop.cc (vect_transform_reduction): Compute loop mask - index based on effective vector copies for reduction op. - -2024-10-12 Richard Biener - - PR tree-optimization/117104 - * match.pd ((cmp:c (minmax:c @0 @1) @0) -> (out @0 @1)): Properly - guard the vector case. - -2024-10-12 Jeff Law - - * config/riscv/constraints.md (P): New constraint. - * config/riscv/vector.md (pred_broadcast expander): Do - not force small integers into GPRs so aggressively. - (pred_broadcast insn & splitter): Allow splatting small - constants across the vector register directly. Allow splatting - (const_int 0) into element 0 directly. - -2024-10-12 Jakub Jelinek - - * Makefile.in (LINKER_FOR_BUILD): Append -no-pie if it is in - $(LD_PICFLAG) when building build/genmatch. - -2024-10-12 Jakub Jelinek - - * Makefile.in (generated_files): Remove {gimple,generic}-match*. - (generated_match_files): New variable. Add a dependency of - $(filter-out $(OBJS-libcommon),$(ALL_HOST_OBJS)) files on those. - (build/genmatch$(build_exeext)): Depend on and link against - libcommon.a and $(LIBBACKTRACE). - * genmatch.cc: Include pretty-print.h and input.h. - (ggc_internal_cleared_alloc, ggc_free): Remove. - (fatal): New function. - (line_table): Remove. - (linemap_client_expand_location_to_spelling_point): Remove. - (diagnostic_cb): Use gcc_diag rather than printf format. Use - pp_format_verbatim on a temporary pretty_printer instead of - vfprintf. - (fatal_at, warning_at): Use gcc_diag rather than printf format. - (output_line_directive): Rename location_hash to loc_hash. - (parser::eat_ident, parser::parse_operation, parser::parse_expr, - parser::parse_pattern, parser::finish_match_operand): Fix up - -Wformat-diag warnings. - -2024-10-12 Pan Li - - * config/riscv/autovec.md (sssub3): Add new pattern for - signed SAT_SUB. - * config/riscv/riscv-protos.h (expand_vec_sssub): Add new func - decl to expand sssub to vssub. - * config/riscv/riscv-v.cc (expand_vec_sssub): Add new func - impl to expand sssub to vssub. - -2024-10-12 Pan Li - - * tree-vect-patterns.cc (gimple_signed_integer_sat_sub): Add new - func decl for signed SAT_SUB. - (vect_recog_sat_sub_pattern_transform): Update comments. - (vect_recog_sat_sub_pattern): Try the vector signed SAT_SUB - pattern. - -2024-10-12 Pan Li - - * match.pd: Add case 1 matching pattern for vector signed SAT_SUB. - -2024-10-11 Kyrylo Tkachov - - PR target/117048 - * config/aarch64/aarch64-simd.md (aarch64_xarqv2di): Redefine into a - define_expand. - (*aarch64_xarqv2di_insn): Define. - -2024-10-11 Kyrylo Tkachov - - PR target/117048 - * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): - Handle vector constants in (x << C1) | (x >> C2) -> ROTATE - simplification. - -2024-10-11 Jennifer Schmitz - - PR tree-optimization/116826 - PR tree-optimization/86710 - * match.pd: Fold logN(1.0/a) -> -logN(a), - logN(C/a) -> logN(C) - logN(a), logN(a) + logN(b) -> logN(a*b), - and logN(a) - logN(b) -> logN(a/b). - -2024-10-11 Richard Biener - - PR tree-optimization/117080 - * tree-vectorizer.h (_slp_tree::memory_access_type): Add. - (SLP_TREE_MEMORY_ACCESS_TYPE): New. - (record_stmt_cost): Add another overload. - * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize - memory_access_type. - * tree-vect-stmts.cc (vectorizable_store): Set - SLP_TREE_MEMORY_ACCESS_TYPE. - (vectorizable_load): Likewise. Also record the SLP node - when costing emulated gather offset decompose and vector - composition. - * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Also - recognize SLP emulated gather/scatter. - -2024-10-11 Saurabh Jha - - * config/aarch64/aarch64-sve2.md - (*aarch64_pred_faminmax_fused): Instruction pattern for faminmax - codegen. - * config/aarch64/iterators.md: Iterator and attribute for - faminmax codegen. - -2024-10-11 Saurabh Jha - - * config/aarch64/aarch64-sve-builtins-base.cc - (svamax): Absolute maximum declaration. - (svamin): Absolute minimum declaration. - * config/aarch64/aarch64-sve-builtins-base.def - (REQUIRED_EXTENSIONS): Add faminmax intrinsics behind a flag. - (svamax): Absolute maximum declaration. - (svamin): Absolute minimum declaration. - * config/aarch64/aarch64-sve-builtins-base.h: Declaring function - bases for the new intrinsics. - * config/aarch64/aarch64.h - (TARGET_SVE_FAMINMAX): New flag for SVE2 faminmax. - * config/aarch64/iterators.md: New unspecs, iterators, and attrs - for the new intrinsics. - -2024-10-11 Richard Biener - - PR middle-end/117086 - * match.pd ((op (vec_cond ...) ..) -> (vec_cond ...)): Add - missing checks for VECTOR_TYPE_P (type). - -2024-10-11 Pan Li - - * match.pd: Add case 4 matching pattern for signed SAT_TRUNC. - -2024-10-11 Pan Li - - * match.pd: Add case 3 matching pattern for signed SAT_TRUNC. - -2024-10-11 Pan Li - - * match.pd: Add case 2 matching pattern for signed SAT_TRUNC. - -2024-10-11 Jakub Jelinek - - PR target/117053 - * config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Handle - TARGET_ZERO_EXTEND_WITH_AND differently. - (ix86_expand_int_spaceship): Likewise. - -2024-10-11 Richard Biener - - PR tree-optimization/117050 - * tree-vect-slp.cc (vect_build_slp_tree_2): Do not support - permutes of non-grouped .MASK_LOAD. - -2024-10-11 Richard Biener - - * tree-vect-slp.cc (vect_slp_prefer_store_lanes_p): Allow - passing in of vectype, pass in whether the stores are masked - and query the correct optab. - (vect_build_slp_instance): Guard store-lanes query with - ! STMT_VINFO_SLP_VECT_ONLY, guaranteeing an uniform mask. - -2024-10-11 Hu, Lin1 - - * config/i386/sse.md - (sse_movhlps): Change type attr from ssemov to ssemov2. - (sse_loadhps): Ditto. - (*vec_concat): Ditto. - (vec_setv2df_0): Ditto. - (sse_loadlps): Change attr from ssemov to ssemov2 except for 2, 3. - (sse2_loadhps): Change attr from ssemov to ssemov2 except for 0, 1. - (sse2_loadlpd): Change attr from ssemov to ssemov2 except for 0, 1, - 2. - (sse2_movsd_): Change attr from ssemov to ssemov2 except for 5. - (vec_concatv2df): Change attr from ssemov to ssemov2 except for 0, 1, - 2. - (*vec_concat): Change attr from ssemov to ssemov2 for 3, 4. - (vec_concatv2di): Change attr from ssemov to ssemov2 except for 0, 1, - 2, 3, 4, 5. - -2024-10-10 Michael Matz - - PR rtl-optimization/116650 - * regrename.cc (check_new_reg_p): Calculate nregs in terms of - the new candidate register. - -2024-10-10 Andrew Pinski - - * tree-ssa-phiopt.cc (pass_phiopt::execute): Remove candorest - and return instead of setting candorest. - -2024-10-10 Li Xu - - PR target/116883 - * config/riscv/riscv-c.cc (riscv_pragma_intrinsic_flags_pollute): Choose zvl4096b - to initialize null type. - -2024-10-10 Richard Sandiford - - * tree-vect-slp.cc (vectorizable_slp_permutation_1): Set repeating_p - to false if we have an external node for a pre-existing vector. - -2024-10-10 Richard Biener - - PR tree-optimization/117060 - * tree-vect-slp.cc (vect_build_slp_tree_1): When comparing - calls also fail if the first isn't a call. - -2024-10-10 Jennifer Schmitz - - PR tree-optimization/116831 - * match.pd: Guard simplification to trunc_mod with check for - mod optab support. - -2024-10-10 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_1): Do not compare - RHS codes for loads or stores. - (vect_get_and_check_slp_defs): Only demote operand to external - in case there is more than one operand. - -2024-10-10 liuhongt - - * config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs): - Add new member m_num_avx256_vec_perm. - (ix86_vector_costs::add_stmt_cost): Record 256-bit vec_perm. - (ix86_vector_costs::finish_cost): Prevent vectorization for - TAREGT_AVX256_AVOID_VEC_PERM when there's 256-bit vec_perm - instruction. - * config/i386/i386.h (TARGET_AVX256_AVOID_VEC_PERM): New - Macro. - * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): Add - m_CORE_ATOM. - (X86_TUNE_AVX256_AVOID_VEC_PERM): New tune. - -2024-10-10 liuhongt - - * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Guard - instruction blendv generation under new tune. - * config/i386/i386.h (TARGET_SSE_MOVCC_USE_BLENDV): New Macro. - * config/i386/x86-tune.def (X86_TUNE_SSE_MOVCC_USE_BLENDV): - New tune. - -2024-10-10 Levy Hsu - - * config/i386/i386.md: Rewrite insn truncsfbf2. - -2024-10-10 David Malcolm - - * diagnostic-format-text.cc - (diagnostic_text_output_format::after_diagnostic): Replace call to - show_any_path with body, taken from diagnostic.cc. - (diagnostic_text_output_format::build_prefix): Move here from - diagnostic.cc, updating to use get_diagnostic_kind_text and - diagnostic_get_color_for_kind. - (diagnostic_text_output_format::file_name_as_prefix): Move here - from diagnostic.cc - (diagnostic_text_output_format::append_note): Likewise. - * diagnostic-format-text.h - (diagnostic_text_output_format::show_any_path): Drop decl. - * diagnostic.cc - (diagnostic_text_output_format::file_name_as_prefix): Move to - diagnostic-format-text.cc. - (diagnostic_text_output_format::build_prefix): Likewise. - (diagnostic_text_output_format::show_any_path): Move to body of - diagnostic_text_output_format::after_diagnostic. - (diagnostic_text_output_format::append_note): Move to - diagnostic-format-text.cc. - -2024-10-10 David Malcolm - - * doc/invoke.texi (fdiagnostics-format): Describe "json" et al as - deprecated, and remove the long description of the output format. - -2024-10-10 David Malcolm - - PR other/116613 - * lto-wrapper.cc (print_lto_docs_link): Use a format string rather - than building the string manually. Fix memory leak of "url" by - using label_text. - -2024-10-09 liuhongt - - * tree-vect-loop.cc (vect_analyze_loop_costing): Enable - vectorization for LOOP_VINFO_PEELING_FOR_NITER in very cheap - cost model. - (vect_analyze_loop): Disable epilogue vectorization in very - cheap cost model. - * doc/invoke.texi: Adjust documents for very-cheap cost model. - -2024-10-09 Jovan Vukic - - PR target/115921 - * config/riscv/iterators.md (any_eq): New code iterator. - * config/riscv/riscv.h (COMMON_TRAILING_ZEROS): New macro. - (SMALL_AFTER_COMMON_TRAILING_SHIFT): Ditto. - * config/riscv/riscv.md (*branch_shiftedarith__shifted): - New pattern. - -2024-10-09 Jeff Law - - Revert: - 2024-10-08 Tsung Chun Lin - - * common/config/riscv/riscv-common.cc: M implies Zmmul. - -2024-10-09 Jeff Law - - Revert: - 2024-10-08 Tsung Chun Lin - - * config/riscv/riscv-c.cc: (riscv_cpu_cpp_builtins): - Enable builtin __riscv_mul with Zmmul extension. - -2024-10-09 Richard Sandiford - - PR target/116629 - * config/aarch64/aarch64-sve-builtins.cc - (function_builder::function_builder): Use direct overloads for LTO. - -2024-10-09 Richard Biener - - * tree-vect-data-refs.cc (vect_analyze_data_ref_access): When - cancelling a DR group also clear DR_GROUP_NEXT_ELEMENT. - -2024-10-09 Richard Biener - - PR tree-optimization/117041 - * tree-vect-stmts.cc (get_group_load_store_type): Only - check DR_GROUP_NEXT_ELEMENT for STMT_VINFO_GROUPED_ACCESS. - -2024-10-09 René Rebe - - * config/ia64/ia64.cc: Enable LRA for ia64. - * config/ia64/ia64.md: Likewise. - * config/ia64/predicates.md: Likewise. - -2024-10-09 René Rebe - - * config.gcc: Only list ia64*-*-(hpux|vms|elf) in the list of - obsoleted targets. - -2024-10-09 Richard Biener - - PR tree-optimization/116974 - * tree-vect-stmts.cc (check_scan_store): Pass in the SLP node - instead of just a flag. Allow single-lane scan stores. - (vectorizable_store): Adjust. - * tree-vect-loop.cc (vect_analyze_loop_2): Empty scan_map - before re-trying. - -2024-10-09 Richard Biener - - PR tree-optimization/116575 - PR tree-optimization/114375 - * tree-vect-slp.cc (vect_build_slp_tree_2): Do not reject - permuted mask loads without gaps but instead discover a - node for the full unpermuted load and permute that with - a VEC_PERM node. - -2024-10-09 Richard Biener - - PR tree-optimization/117000 - * match.pd (.REDUC_IOR !=/== 0): New pattern. - * gimple-match-head.cc: Include memmodel.h and optabs.h. - * generic-match-head.cc: Likewise. - -2024-10-09 Richard Biener - - * tree-vect-slp.cc (vect_cse_slp_nodes): Fix memory leak. - -2024-10-09 Jan Beulich - - * doc/extend.texi: Clarify __builtin_choose_expr() - (dis)similarity to the ?: operator. - -2024-10-09 Ken Matsui - - PR preprocessor/89808 - * doc/invoke.texi (Warning Options): Document - -Wno-pragma-once-outside-header. - -2024-10-09 Artemiy Volkov - - PR tree-optimization/116024 - * match.pd: New transformation around integer comparison. - -2024-10-09 Artemiy Volkov - - PR tree-optimization/116024 - * match.pd: New transformation around integer comparison. - -2024-10-08 Artemiy Volkov - - PR tree-optimization/116024 - * match.pd: New transformation around integer comparison. - -2024-10-08 Artemiy Volkov - - PR tree-optimization/116024 - * match.pd: New transformation around integer comparison. - -2024-10-08 Tsung Chun Lin - - * config/riscv/riscv-c.cc: (riscv_cpu_cpp_builtins): - Enable builtin __riscv_mul with Zmmul extension. - -2024-10-08 Tsung Chun Lin - - * common/config/riscv/riscv-common.cc: M implies Zmmul. - -2024-10-08 Yangyu Chen - - * common/config/riscv/riscv-common.cc (cl_opt_var_ref_t): Add - cl_opt_var_ref_t pointer to member of cl_target_option. - (struct riscv_ext_flag_table_t): Add new cl_opt_var_ref_t field. - (RISCV_EXT_FLAG_ENTRY): New macro to simplify the definition of - riscv_ext_flag_table. - (riscv_ext_is_subset): New function to check if the callee's ISA - is a subset of the caller's. - (riscv_x_target_flags_isa_mask): New function to get the mask of - ISA extension in x_target_flags of gcc_options. - * config/riscv/riscv-subset.h (riscv_ext_is_subset): Declare - riscv_ext_is_subset function. - (riscv_x_target_flags_isa_mask): Declare - riscv_x_target_flags_isa_mask function. - * config/riscv/riscv.cc (riscv_can_inline_p): New function. - (TARGET_CAN_INLINE_P): Implement TARGET_CAN_INLINE_P. - -2024-10-08 Pan Li - - * config/riscv/riscv-protos.h (riscv_expand_sstrunc): Add new - func decl to expand SAT_TRUNC. - * config/riscv/riscv.cc (riscv_expand_sstrunc): Add new func - impl to expand SAT_TRUNC. - * config/riscv/riscv.md (sstrunc2): - Add new pattern for double truncation. - (sstrunc2): Ditto but for quad. - (sstrunc2): Ditto but for oct. - -2024-10-08 Pan Li - - * tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Rename - to... - (build_saturation_binary_arith_call_and_replace): ...this. - (build_saturation_binary_arith_call_and_insert): ...this. - (match_unsigned_saturation_add): Leverage renamed func. - (match_unsigned_saturation_sub): Ditto. - (match_saturation_add): Return bool on matched and leverage - renamed func. - (match_saturation_sub): Ditto. - (match_saturation_trunc): Ditto. - (math_opts_dom_walker::after_dom_children): Ensure at most one - pattern will be matched for each phi node. - -2024-10-08 Pan Li - - * match.pd: Add case 1 matching pattern for signed SAT_TRUNC. - * tree-ssa-math-opts.cc (gimple_signed_integer_sat_trunc): Add - new decl for signed SAT_TRUNC. - (match_saturation_trunc): Add new func impl to try SAT_TRUNC - pattern on phi node. - (math_opts_dom_walker::after_dom_children): Add - match_saturation_trunc for phi node iteration. - -2024-10-08 Jan Beulich - - * config/i386/sse.md (vaesdec_, vaesdeclast_, - vaesenc_, vaesenclast_): Replace which_alternative - check by TARGET_AES one. - -2024-10-08 Soumya AR - - PR target/109498 - * config/aarch64/aarch64-sve.md (ctz2): Added pattern to expand - CTZ to RBIT + CLZ for SVE. - -2024-10-08 Palmer Dabbelt - - PR target/116615 - * config/riscv/riscv.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove. - -2024-10-08 Xi Ruoyao - - * config/loongarch/loongarch.opt: Regenerate. - * config/loongarch/loongarch.opt.urls: Regenerate. - -2024-10-08 Pan Li - - * match.pd: Add case 3 matching pattern for signed SAT_SUB. - -2024-10-08 Jakub Jelinek - - PR middle-end/116896 - * tree-ssa-math-opts.cc (optimize_spaceship): Handle unordered values - other than 2, but they still need to be signed char range possibly - converted to the PHI result and can't be in [-1, 1] range. Use - last .SPACESHIP argument of 1 for unsigned int comparisons, -1 for - signed int, 0 for floating point branches and any other for floating - point with that value as unordered. - * config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Use op2 rather - const2_rtx if op2 is not const0_rtx for unordered result. - (ix86_expand_int_spaceship): Change INTVAL (op2) == 1 tests to - INTVAL (op2) != -1. - * doc/md.texi (spaceship@var{m}4): Document the above changes. - -2024-10-08 Prathamesh Kulkarni - - PR ipa/96265 - * lto-streamer-in.cc (lto_read_tree_1): Set TYPE_MODE and DECL_MODE - for vector_type if offloading is enabled. - (lto_input_mode_table): Remove handling of vector modes. - * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream out - VOIDmode for vector_type if offloading is enabled. - (pack_ts_decl_common_value_fields): Likewise. - -2024-10-08 Torbjörn SVENSSON - - * diagnostic-color.cc: Conditionally enable terminal processing - based on define availability. - * pretty-print.cc: Likewise. - -2024-10-08 Xi Ruoyao - - * config/loongarch/genopts/loongarch.opt.in - (mannotate-tablejump): New option. - * config/loongarch/loongarch.opt: Regenerate. - * config/loongarch/loongarch.md (tablejump): Emit - additional correlation info between the jump instruction and the - jump table, if -mannotate-tablejump. - * doc/invoke.texi: Document -mannotate-tablejump. - -2024-10-08 Xiao Zeng - - * common/config/riscv/riscv-common.cc: zawrs -> zalrsc. - -2024-10-07 Jeff Law - - * config/riscv/iterators.md (scc_0): New code iterator. - * config/riscv/zicond.md: New splitters to improve code generated for - cases like (and (scc) (scc)) for zicond, xventanacondops, xtheadcondmov. - -2024-10-07 Jason Merrill - - * doc/invoke.texi (C++ Module Preprocessing): Allow -M, - refer to -fdeps. - -2024-10-07 Andre Vieira - - * config/arm/arm.cc (arm_noce_oncersion_profitable_p): Remove unused - argument name. - (arm_is_v81m_cond_insn): Initialize variable. - -2024-10-07 Jakub Jelinek - - * config/riscv/vector-crypto.md: Remove executable permissions. - -2024-10-07 Victor Do Nascimento - - * tree-if-conv.cc (if_convertible_stmt_p): Check for explicit - function declaration before IFN fallback. - -2024-10-07 Richard Sandiford - - PR tree-optimization/116583 - * tree-vect-slp.cc (vectorizable_slp_permutation_1): Add more - dump messages. - -2024-10-07 Richard Sandiford - - PR tree-optimization/116583 - * tree-vect-slp.cc (vectorizable_slp_permutation_1): Handle - variable-length pack and unpack permutations. - -2024-10-07 Richard Sandiford - - PR tree-optimization/116583 - * tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove - the noutputs_per_mask inner loop and instead generate a - separate permute vector for each output. - -2024-10-07 Richard Sandiford - - PR tree-optimization/116583 - * tree-vect-slp.cc (vectorizable_slp_permutation_1): Using - poly_uint64 for scalar lane indices. - -2024-10-07 Richard Sandiford - - * config/aarch64/iterators.md (SVE_I): Move further up file. - (SVE_F): New mode iterator. - (SVE_ALL): Redefine in terms of SVE_I and SVE_F. - * config/aarch64/aarch64-sve.md (*3): Extend - to all SVE_F. - -2024-10-07 Richard Sandiford - - PR target/116583 - * config/aarch64/aarch64.cc (aarch64_coalesce_units): New function, - extending the Advanced SIMD handling from... - (aarch64_evpc_reencode): ...here to SVE data and predicate modes. - -2024-10-07 Richard Biener - - PR tree-optimization/116990 - * tree-vect-loop.cc (vect_analyze_loop_form): Check the current - loop body for control flow. - -2024-10-07 Richard Biener - - PR tree-optimization/116982 - * tree-vectorizer.h (vect_analyze_loop): Pass in .LOOP_VECTORIZED - call. - (vect_analyze_loop_form): Likewise. - * tree-vect-loop.cc (vect_analyze_loop_form): Reject loops where we - cannot determine a IV exit for the scalar loop. - (vect_analyze_loop): Adjust. - * tree-vectorizer.cc (try_vectorize_loop_1): Likewise. - * tree-parloops.cc (gather_scalar_reductions): Likewise. - -2024-10-07 Jakub Jelinek - - PR middle-end/116896 - * optabs.def (spaceship_optab): Use spaceship$a4 rather than - spaceship$a3. - * internal-fn.cc (expand_SPACESHIP): Expect 3 call arguments - rather than 2, expand the last one, expect 4 operands of - spaceship_optab. - * tree-ssa-math-opts.cc: Include cfghooks.h. - (optimize_spaceship): Check if a single PHI is initialized to - -1, 0, 1, 2 or -1, 0, 1 values, in that case pass 1 as last (new) - argument to .SPACESHIP and optimize away the comparisons, - otherwise pass 0. Also check for integer comparisons rather than - floating point, in that case do it only if there is a single PHI - with -1, 0, 1 values and pass 1 to last argument of .SPACESHIP - if the <=> is signed, 2 if unsigned. - * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Add - another rtx argument. - (ix86_expand_int_spaceship): Declare. - * config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Add - arg3 argument, if it is const0_rtx, expand like before, otherwise - emit optimized sequence for setting the result into a GPR. - (ix86_expand_int_spaceship): New function. - * config/i386/i386.md (UNSPEC_SETCC_SI_SLP): New UNSPEC code. - (setcc_si_slp): New define_expand. - (*setcc_si_slp): New define_insn_and_split. - (setcc + setcc + movzbl): New define_peephole2. - (spaceship3): Renamed to ... - (spaceship4): ... this. Add an extra operand, pass it - to ix86_expand_fp_spaceship. - (spaceshipxf3): Renamed to ... - (spaceshipxf4): ... this. Add an extra operand, pass it - to ix86_expand_fp_spaceship. - (spaceship4): New define_expand for SWI modes. - * doc/md.texi (spaceship@var{m}3): Renamed to ... - (spaceship@var{m}4): ... this. Document the meaning of last - operand. - -2024-10-07 Tobias Burnus - - * gimplify.cc (gimplify_bind_expr): Fix corner case for OpenMP - allocate directive. - (gimplify_scan_omp_clauses): Warn if omp_thread_mem_alloc is used - as allocator with the target/task/taskloop directive. - -2024-10-06 John David Anglin - - * config/pa/pa-64.h (PA_SECONDARY_MEMORY_NEEDED): Define - to false. Update comment. - * config/pa/pa.md: Modify 64-bit move patterns to support - copying between integer and floating-point registers using - stack slot SP-40. - -2024-10-06 Richard Biener - - * tree-vect-slp.cc (no_arg_map): New. - (vect_get_operand_map): Handle IFN_GOMP_SIMD_LANE. - (vect_build_slp_tree_1): Likewise. - * tree-vect-stmts.cc (vectorizable_call): Handle single-lane SLP - for .GOMP_SIMD_LANE calls. - -2024-10-06 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) <*-*-freebsd*>: Focus on DWARF - only. - -2024-10-05 John David Anglin - - * config/pa/pa.md (nonlocal_goto): Don't clobber - frame_pointer_rtx. - (builtin_longjmp): Likewise. - -2024-10-05 John David Anglin - - * config/pa/pa.md: Fix indirect_got constraint. - -2024-10-05 Eric Botcazou - - PR middle-end/116933 - * gimplify.cc (gimple_add_init_for_auto_var): Use the correct macro - to fetch the source location of the variable. - * tree.cc (common_builtin_nodes): Remove the 3rd parameter in the - type of BUILT_IN_CLEAR_PADDING. - -2024-10-05 Richard Biener - - * tree-vect-slp.cc (vect_lower_load_permutations): Prefer - level 1 even/odd extracts. - -2024-10-04 David Malcolm - - PR other/116978 - * diagnostic-format-sarif.cc (sarif_builder::sarif_builder): - Gracefully handle "main_input_filename_" being NULL. - (sarif_output_format::sarif_output_format): Replace param - "base_file_name" with "output_file" and assert that the file - was opened successfully and has a non-NULL filename. - (sarif_output_format::~sarif_file_output_format): Move - responsibility for building the filename and opening the file from - here to the creator of the instance. - (sarif_output_format::m_base_file_name): Replace with... - (sarif_output_format::m_output_file): ...this. - (diagnostic_output_format_init_sarif_file): Make "line_maps" param - non-const. Gracefully handle "base_file_name" being NULL. - Construct the filename and open the file here, rather than in - ~sarif_file_output_format, and handle failures immediately here, - rather than at the end of the compile. - * diagnostic-format-sarif.h: Include "diagnostic-output-file.h". - (diagnostic_output_format_init_sarif_file): Make "line_maps" param - non-const. - * diagnostic-output-file.h: New file. - * diagnostic.cc (diagnostic_context::emit_diagnostic): New. - (diagnostic_context::emit_diagnostic_va): New. - * diagnostic.h (diagnostic_context::emit_diagnostic): New decl. - (diagnostic_context::emit_diagnostic_va): New decl. - -2024-10-04 H.J. Lu - - PR target/116962 - * config/i386/i386.cc (ix86_stack_protect_runtime_enabled_p): New - function. - (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): New. - -2024-10-04 Saurabh Jha - - PR target/116934 - * config/aarch64/iterators.md: Move UNSPEC_COND_SMAX and - UNSPEC_COND_SMIN to correct iterators. - -2024-10-04 Georg-Johann Lay - - PR target/116953 - * config/avr/avr.cc (avr_out_sbxx_branch): Work on a copy of - the operands rather than on operands itself, which is just - recog_data.operand and may be clobbered by jump_over_one_insn_p. - -2024-10-04 Andrew Pinski - - * cfgexpand.cc (add_scope_conflicts_1): Expand comment - on when non-var clobbers show up. - -2024-10-04 Georg-Johann Lay - - * config/avr/avr.cc (avr_floatn_mode): Remove. - (TARGET_FLOATN_MODE): Remove. - -2024-10-04 Georg-Johann Lay - - * config/avr/avr.cc (avr_floatn_mode): New static function. - (TARGET_FLOATN_MODE): New define. - -2024-10-04 Kyrylo Tkachov - - * config/aarch64/tuning_models/generic_armv9_a.h - (generic_armv9a_prefetch_tune): Define. - (generic_armv9_a_tunings): Use the above. - -2024-10-04 Andre Vieira - - PR target/116444 - * config/arm/arm-protos.h (arm_noce_conversion_profitable_p): New - declaration. - * config/arm/arm.cc (arm_is_v81m_cond_insn): New helper function used - in ... - (arm_noce_conversion_profitable_p): ... here. New function to implement - ... - (TARGET_NOCE_PROFITABLE_P): ... this target hook. New define. - -2024-10-04 Richard Biener - - * tree-vect-loop.cc (vect_analyze_loop_2): Derement 'slp' - before dumping which stage we're starting. - -2024-10-04 Jakub Jelinek - - PR pch/116936 - * diagnostic.cc (diagnostic_option_classifier::pch_save): Only call - fwrite if corresponding length is non-zero. - (diagnostic_option_classifier::pch_restore): Only call fread if - corresponding length is non-zero. - -2024-10-04 Jakub Jelinek - - PR target/116921 - * config/i386/i386-expand.cc (ix86_expand_int_compare): Add a SUBREG - to V8HImode from V8HFmode or V8BFmode before generating a ptest. - -2024-10-04 Jakub Jelinek - - PR target/116925 - * config/i386/sse.md (*minmax3_2): Assign force_reg result - back to operands[2] instead of throwing it away. - -2024-10-04 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) : Drop GCC 2.6 - ABI change note. - -2024-10-04 Sam James - - * gimplify.cc (gimple_add_init_for_auto_var): Fix 'variable' typo. - -2024-10-03 Eric Botcazou - - * config/aarch64/aarch64.h (WIDEST_HARDWARE_FP_SIZE): Define to 64. - -2024-10-03 Jason Merrill - - * doc/invoke.texi: Explicit -Wdeprecated enables more warnings. - -2024-10-03 Jason Merrill - - * doc/invoke.texi: Document -Wdeprecated-literal-operator. - -2024-10-03 Richard Biener - - * tree-vect-loop.cc (vectorizable_induction): Initialize - vec_init. - -2024-10-03 Andrew Pinski - - PR target/116927 - * config/aarch64/aarch64-early-ra.cc (early_ra::is_dead_insn): Insns - that throw are not dead with -fno-delete-dead-exceptions. - -2024-10-03 David Malcolm - - PR other/116301 - * common.opt (sarif-file-2.2-prerelease): New value for - -fdiagnostics-format=. - * diagnostic-format-sarif.cc - (sarif_location_manager::sarif_location_manager): Move - initialization of m_related_locations_arr here from sarif_result's - ctor. - (sarif_location_manager::add_related_location): Implement for - base class, taking sarif_result's implementation. Add "builder" - param. - (sarif_location_manager::m_related_locations_arr): Move here from - class sarif_result. - (class sarif_result): Move m_related_locations_arr field and - add_related_location vfunc to class sarif_location_manager. - (sarif_builder::get_version): New accessor. - (sarif_builder::m_version): New field. - (sarif_invocation::add_notification_for_ice): Call - process_worklist on the notification for SARIF 2.2 and later. - (sarif_location_manager::process_worklist_item): Pass builder to - calls to add_related_location. - (sarif_result::on_nested_diagnostic): Likewise. - (sarif_result::on_diagram): Likewise. - (sarif_ice_notification::add_related_location): Add builder param. - For SARIF 2.2 and later chain up to base class impl so that - notifications get related locations. - (sarif_builder::sarif_builder): Add "version" param. - (SARIF_SCHEMA): Delete in favor of... - (sarif_version_to_url): New function. - (SARIF_VERSION): Delete in favor of... - (sarif_version_to_property): New function. - (make_top_level_object): Update to use m_version for "$schema" and - "version". - (sarif_output_format::sarif_output_format): Add "version" param. - (sarif_stream_output_format::sarif_stream_output_format): - Likewise. - (sarif_file_output_format::sarif_file_output_format): Likewise. - (diagnostic_output_format_init_sarif_stderr): Likewise. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - (selftest::test_sarif_diagnostic_context): Likewise. - (selftest::test_make_location_object): Likewise. - (selftest::test_simple_log): Likewise. Update schema and version - tests accordingly. - (selftest::test_simple_log_2): Add "version" param. - (selftest::test_message_with_embedded_link): Likewise. - (selftest::run_tests_per_version): New, based on the - for_each_line_table_case calls in... - (selftest::diagnostic_format_sarif_cc_tests): Add loop over sarif - versions. Replace for_each_line_table_case calls with one - call to run_tests_per_version. - * diagnostic-format-sarif.h: Include "diagnostic-format.h". - (enum class sarif_version): New. - (diagnostic_output_format_init_sarif_stderr): Move to here from - diagnostic-format.h. Add "version" param. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - * diagnostic-format.h: Include "diagnostic.h". - (diagnostic_output_format_init_sarif_stderr): Move from here to - diagnostic-format-sarif.h. - * diagnostic.cc: Define INCLUDE_MEMORY. - Include "diagnostic-format-sarif.h". - (diagnostic_output_format_init): Pass sarif_version::v2_1_0 to - existing SARIF options. - Add case DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE. - * diagnostic.h (enum diagnostics_output_format): Add - DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE. - -2024-10-02 Andrew Pinski - - PR tree-optimization/116098 - * tree-ssa-phiopt.cc (move_stmt): Rewrite VCEs from integer to integer - types to case. - -2024-10-02 Victor Do Nascimento - - * tree-if-conv.cc (predicate_statements): Fix handling of - predicated function calls. - -2024-10-02 Andre Vieira - - * config/arm/arm.cc (check_dec_insn): New helper function containing - code hoisted from... - (arm_mve_dlstp_check_dec_counter): ... here. Use check_dec_insn to - check the validity of the candidate dec_insn. - -2024-10-02 Filip Kastl - - PR tree-optimization/116616 - * tree-switch-conversion.cc (can_pow2p): Remove this function. - (gen_pow2p): Generate bitmagic instead of a builtin. Remove the - TYPE parameter. - (switch_conversion::is_exp_index_transform_viable): Don't call - can_pow2p. - (switch_conversion::exp_index_transform): Call gen_pow2p without - the TYPE parameter. - * tree-switch-conversion.h: Remove - m_exp_index_transform_pow2p_type. - -2024-10-02 Richard Biener - - PR tree-optimization/113197 - * tree-ssa-structalias.cc (handle_call_arg): Remove bougs - assert. - -2024-10-02 Richard Biener - - PR tree-optimization/114855 - * predict.cc (ssa_expected_value): New global. - (expr_expected_value): Do not take bitmap. - (expr_expected_value_1): Likewise. Use ssa_expected_value - to cache results for a SSA def. - (tree_predict_by_opcode): Adjust. - (tree_estimate_probability): Manage ssa_expected_value. - (tree_guess_outgoing_edge_probabilities): Likewise. - -2024-10-02 Richard Biener - - PR tree-optimization/116566 - * tree-vect-loop.cc (vectorizable_induction): Handle single-lane - SLP for VLA vectors. - -2024-10-02 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) : Drop obsolete - reference to binaries download docs. - -2024-10-02 Jakub Jelinek - - PR preprocessor/96842 - * doc/invoke.texi (Wheader-guard): Document. - -2024-10-02 Jakub Jelinek - - * Makefile.in ($(OPT_URLS_HTML_DEPS)): Add dependencies of the - Option-Index.html files on the corresponding index.html files. - Don't mention the requirement that all languages that have their own - HTML manuals to be enabled. - -2024-10-02 Andrew Pinski - - PR tree-optimization/116922 - * gimple-ssa-backprop.cc (remove_unused_var): Handle phi - nodes correctly. - -2024-10-02 Richard Biener - - PR tree-optimization/116654 - * tree-vect-data-refs.cc (vect_supportable_dr_alignment): - Treat non-grouped accesses like non-SLP. - -2024-10-02 Pan Li - - * match.pd: Add case 2 matching pattern for signed SAT_SUB. - -2024-10-01 Georg-Johann Lay - - * config/avr/avr.cc (avr_out_compare): Drop superfluous sub-condition. - -2024-10-01 Georg-Johann Lay - - * config/avr/avr-passes.cc (avr_split_fake_addressing_move): Fix - a build warning. - -2024-10-01 Saurabh Jha - - * config/aarch64/aarch64-sve.md - (3): Remove this instruction pattern. - (cond_): Remove this instruction pattern. - * config/aarch64/iterators.md: New unspecs and changes to - iterators and attrs to use the new unspecs - -2024-10-01 Eric Botcazou - - * tree-inline.cc (expand_call_inline): Remove the store to the - return slot if it is a global variable that is only written to. - -2024-10-01 Giuseppe D'Angelo - - * doc/extend.texi: Document the new - __builtin_is_virtual_base_of builtin; amend the docs for - __is_base_of. - -2024-10-01 Andrew Pinski - - PR tree-optimization/116890 - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Conversions - from bool is also should be considered as wanting to happen. - -2024-10-01 Claudio Bantaloukas - - * config/aarch64/aarch64-builtins.cc (aarch64_mfp8_type_node): Add node - for __mfp8 type. - (aarch64_mfp8_ptr_type_node): Add node for __mfp8 pointer type. - (aarch64_init_fp8_types): New function to initialise fp8 types and - register with language backends. - * config/aarch64/aarch64.cc (aarch64_mangle_type): Add ABI mangling for - new type. - (aarch64_invalid_conversion): Add function implementing - TARGET_INVALID_CONVERSION hook that blocks conversion to and from the - __mfp8 type. - (aarch64_invalid_unary_op): Add function implementing TARGET_UNARY_OP - hook that blocks operations on __mfp8 other than &. - (aarch64_invalid_binary_op): Extend TARGET_BINARY_OP hook to disallow - operations on __mfp8 type. - (TARGET_INVALID_CONVERSION): Add define. - (TARGET_INVALID_UNARY_OP): Likewise. - * config/aarch64/aarch64.h (aarch64_mfp8_type_node): Add node for __mfp8 - type. - (aarch64_mfp8_ptr_type_node): Add node for __mfp8 pointer type. - * config/aarch64/arm_private_fp8.h (mfloat8_t): Add typedef. - -2024-10-01 Richard Biener - - PR tree-optimization/116902 - PR tree-optimization/116842 - * tree-vect-stmts.cc (sort_after_uid): Remove again. - (hoist_defs_of_uses): Copy defs instead of hoisting them so - we can zero their UID. - (vectorizable_load): Separate analysis and transform call, - do transform on the stmt copy. - -2024-10-01 Richard Biener - - PR tree-optimization/116905 - * tree-vect-stmts.cc (supportable_indirect_convert_operation): - Fix guard for vect_get_range_info. - -2024-10-01 Richard Biener - - PR tree-optimization/116906 - * tree-ssa-pre.cc (prune_clobbered_mems): Add clean_traps - argument. - (compute_antic_aux): Direct prune_clobbered_mems to prune - all traps when any MAX solution was involved in the ANTIC - computation. - (compute_partial_antic_aux): Adjust. - -2024-10-01 Jakub Jelinek - - PR middle-end/116899 - * gimple-range-cache.cc (ranger_cache::ranger_cache): Set m_workback - to vNULL instead of creating it, growing and then truncating. - (ranger_cache::fill_block_cache): Use safe_push rather than quick_push - on m_workback. - (ranger_cache::range_from_dom): Likewise. - -2024-10-01 Jakub Jelinek - - PR middle-end/116898 - * gimple-range-cache.cc (ranger_cache::block_range): If a SSA_NAME - with NULL def_bb isn't SSA_NAME_IS_DEFAULT_DEF, return false instead - of failing assertion. Formatting fix. - -2024-09-30 Eric Botcazou - - PR ipa/113996 - * ipa-icf.cc (sem_function::get_hash): Hash DECL_STATIC_CHAIN. - (sem_function::equals_wpa): Compare it. - (sem_function::equals_private): Likewise. - -2024-09-30 David Malcolm - - PR other/116613 - * diagnostic-show-locus.cc - (selftest::test_diagnostic_show_locus_unknown_location): Move call - to dc.test_show_locus into ASSERT_STREQ, and compare against its - result, rather than explicitly using dc.m_printer. - (selftest::test_one_liner_simple_caret): Likewise. - (selftest::test_one_liner_no_column): Likewise. - (selftest::test_one_liner_caret_and_range): Likewise. - (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. - (selftest::test_one_liner_fixit_insert_before): Likewise. - (selftest::test_one_liner_fixit_insert_after): Likewise. - (selftest::test_one_liner_fixit_remove): Likewise. - (selftest::test_one_liner_fixit_replace): Likewise. - (selftest::test_one_liner_fixit_replace_non_equal_range): - Likewise. - (selftest::test_one_liner_fixit_replace_equal_secondary_range): - Likewise. - (selftest::test_one_liner_fixit_validation_adhoc_locations): - Likewise. - (selftest::test_one_liner_many_fixits_1): Likewise. - (selftest::test_one_liner_many_fixits_2): Likewise. - (selftest::test_one_liner_labels): Likewise. - (selftest::test_one_liner_simple_caret_utf8): Likewise. - (selftest::test_one_liner_multiple_carets_and_ranges_utf8): - Likewise. - (selftest::test_one_liner_fixit_insert_before_utf8): Likewise. - (selftest::test_one_liner_fixit_insert_after_utf8): Likewise. - (selftest::test_one_liner_fixit_remove_utf8): Likewise. - (selftest::test_one_liner_fixit_replace_utf8): Likewise. - (selftest::test_one_liner_fixit_replace_non_equal_range_utf8): - Likewise. - (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8): - Likewise. - (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8): - Likewise. - (selftest::test_one_liner_many_fixits_1_utf8): Likewise. - (selftest::test_one_liner_many_fixits_2_utf8): Likewise. - (selftest::test_one_liner_labels_utf8): Likewise. - (selftest::test_one_liner_colorized_utf8): Likewise. - (selftest::test_add_location_if_nearby): Likewise. - (selftest::test_diagnostic_show_locus_fixit_lines): Likewise. - (selftest::test_overlapped_fixit_printing): Likewise. - (selftest::test_overlapped_fixit_printing_utf8): Likewise. - (selftest::test_overlapped_fixit_printing_utf8): Likewise. - (selftest::test_overlapped_fixit_printing_2): Likewise. - (selftest::test_fixit_insert_containing_newline): Likewise. - (selftest::test_fixit_insert_containing_newline_2): Likewise. - (selftest::test_fixit_replace_containing_newline): Likewise. - (selftest::test_fixit_deletion_affecting_newline): Likewise. - (selftest::test_tab_expansion): Likewise. - (selftest::test_escaping_bytes_1): Likewise. - (selftest::test_escaping_bytes_2): Likewise. - (selftest::test_line_numbers_multiline_range): Likewise. - * selftest-diagnostic.cc - (selftest::test_diagnostic_context::test_show_locus): Return the - formatted text of m_printer. - * selftest-diagnostic.h - (selftest::test_diagnostic_context::test_show_locus): Convert - return type from void to const char *. - -2024-09-30 David Malcolm - - PR other/116613 - * diagnostic-show-locus.cc (diagnostic_context::maybe_show_locus): - Convert param "pp" from * to &. Drop logic for using the - context's m_printer when the param is null. - * diagnostic.h (diagnostic_context::maybe_show_locus): Convert - param "pp" from * to &. - (diagnostic_show_locus): Drop default "nullptr" value for pp - param. Assert that it and context are nonnull. Pass pp by - reference to maybe_show_locus. - -2024-09-30 David Malcolm - - PR other/116613 - * diagnostic-format-json.cc (json_from_expanded_location): Replace - call to diagnostic_context::converted_column with call to - diagnostic_column_policy::converted_column. - * diagnostic-format-sarif.cc - (sarif_builder::make_location_object): Replace call to - diagnostic_show_locus with call to - diagnostic_source_print_policy::print. - * diagnostic-format-text.cc (get_location_text): Replace call to - diagnostic_context::get_location_text with call to - diagnostic_column_policy::get_location_text. - (diagnostic_text_output_format::report_current_module): Replace call - to diagnostic_context::converted_column with call to - diagnostic_column_policy::converted_column. - * diagnostic-format-text.h - (diagnostic_text_output_format::diagnostic_output_format): - Initialize m_column_policy. - (diagnostic_text_output_format::get_column_policy): New. - (diagnostic_text_output_format::m_column_policy): New. - * diagnostic-path.cc (class path_print_policy): New. - (event_range::maybe_add_event): Replace diagnostic_context param - with path_print_policy. - (event_range::print): Convert "pp" from * to &. Convert first - param of start_span callback from diagnostic_context to - diagnostic_location_print_policy. - (path_summary::path_summary): Convert first param from - diagnostic_text_output_format to path_print_policy. Add - colorize param. Update for changes to - event_range::maybe_add_event. - (thread_event_printer::print_swimlane_for_event_range): Assert - that pp is non-null. Update for change to event_range::print. - (diagnostic_text_output_format::print_path): Pass - path_print_policy to path_summary's ctor. - (selftest::test_empty_path): Likewise. - (selftest::test_intraprocedural_path): Likewise. - (selftest::test_interprocedural_path_1): Likewise. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - (selftest::test_control_flow_1): Likewise. - (selftest::test_control_flow_2): Likewise. - (selftest::test_control_flow_3): Likewise. - (selftest::assert_cfg_edge_path_streq): Likewise. - (selftest::test_control_flow_5): Likewise. - (selftest::test_control_flow_6): Likewise. - * diagnostic-show-locus.cc (colorizer::set_range): Update for - change to m_pp. - (colorizer::m_pp): Convert from * to &. - (class layout): Add friend class layout_printer and move various - decls to it. - (layout::m_pp): Drop field. - (layout::m_policy): Rename to... - (layout::m_char_policy): ...this. - (layout::m_colorizer): Move field to class layout_printer. - (layout::m_diagnostic_path_p): Drop field. - (class layout_printer): New class, by refactoring class layout. - (colorizer::colorizer): Convert "pp" param from * to &. - (colorizer::set_named_color): Update for above change. - (colorizer::begin_state): Likewise. - (colorizer::finish_state): Likewise. - (make_policy): Rename to... - (make_char_policy): ...this, and update param from - diagnostic_context to diagnostic_source_print_policy. - (layout::layout): Update param from diagnostic_context to - diagnostic_source_print_policy. Drop params "diagnostic_kind" and - "pp", moving these and other material to class layout_printer. - (layout::maybe_add_location_range): Update for renamed field. - (layout::print_gap_in_line_numbering): Convert to... - (layout_printer::print_gap_in_line_numbering): ...this. - (layout::calculate_x_offset_display): Update for renamed field. - (layout::print_source_line): Convert to... - (layout_printer::print_source_line): ...this. - (layout::print_leftmost_column): Convert to... - (layout_printer::print_leftmost_column): ...this. - (layout::start_annotation_line): Convert to... - (layout_printer::start_annotation_line): ...this. - (layout::print_annotation_line): Convert to... - (layout_printer::print_annotation_line): ...this. - (layout::print_any_labels): Convert to... - (layout_printer::print_any_labels): ...this. - (layout::print_leading_fixits): Convert to... - (layout_printer::print_leading_fixits): ...this. - (layout::print_trailing_fixits): Convert to... - (layout_printer::print_trailing_fixits): ...this. - (layout::print_newline): Convert to... - (layout_printer::print_newline): ...this. - (layout::get_state_at_point): Make const. - (layout::get_x_bound_for_row): Make const. - (layout::move_to_column): Convert to... - (layout_printer::move_to_column): ...this. - (layout::show_ruler): Convert to... - (layout_printer::show_ruler): ...this. - (layout::print_line): Convert to... - (layout_printer::print_line): ...this. - (layout::print_any_right_to_left_edge_lines): Convert to... - (layout_printer::print_any_right_to_left_edge_lines): ...this. - (layout::print_any_right_to_left_edge_lines): Likewise. - (layout_printer::layout_printer): New. - (layout::update_any_effects): Delete, moving logic to - layout_printer::print. - (gcc_rich_location::add_location_if_nearby): Update param from - diagnostic_context to diagnostic_source_print_policy. Add - overload taking a diagnostic_context. - (diagnostic_context::maybe_show_locus): Move handling of null - pretty_printer here, from layout ctor. Convert call to - diagnostic_context::show_locus to - diagnostic_source_print_policy::print. - (diagnostic_source_print_policy::diagnostic_source_print_policy): - New. - (diagnostic_context::show_locus): Convert to... - (diagnostic_source_print_policy::print): ...this. Convert pp - from * to &. - (layout_printer::print): New, based on material in - diagnostic_context::show_locus. - (selftest::make_char_policy): New. - (selftest::test_display_widths): Update for above changes. - (selftest::test_offset_impl): Likewise. - (selftest::test_layout_x_offset_display_utf8): Likewise. - (selftest::test_layout_x_offset_display_tab): Likewise. - (selftest::test_diagnostic_show_locus_unknown_location): Use - test_diagnostic_context::test_show_locus rather than - diagnostic_show_locus. - (selftest::test_one_liner_no_column): Likewise. - (selftest::test_one_liner_caret_and_range): Likewise. - (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. - (selftest::test_one_liner_fixit_insert_before): Likewise. - (selftest::test_one_liner_fixit_insert_after): Likewise. - (selftest::test_one_liner_fixit_remove): Likewise. - (selftest::test_one_liner_fixit_replace): Likewise. - (selftest::test_one_liner_fixit_replace_non_equal_range): - Likewise. - (selftest::test_one_liner_fixit_replace_equal_secondary_range): - Likewise. - (selftest::test_one_liner_fixit_validation_adhoc_locations): - Likewise. - (selftest::test_one_liner_many_fixits_1): Likewise. - (selftest::test_one_liner_many_fixits_2): Likewise. - (selftest::test_one_liner_labels): Likewise. - (selftest::test_one_liner_simple_caret_utf8): Likewise. - (selftest::test_one_liner_caret_and_range_utf8): Likewise. - (selftest::test_one_liner_multiple_carets_and_ranges_utf8): - Likewise. - (selftest::test_one_liner_fixit_insert_before_utf8): Likewise. - (selftest::test_one_liner_fixit_insert_after_utf8): Likewise. - (selftest::test_one_liner_fixit_remove_utf8): Likewise. - (selftest::test_one_liner_fixit_replace_utf8): Likewise. - (selftest::test_one_liner_fixit_replace_non_equal_range_utf8): - Likewise. - (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8): - Likewise. - (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8): - Likewise. - (selftest::test_one_liner_many_fixits_1_utf8): Likewise. - (selftest::test_one_liner_many_fixits_2_utf8): Likewise. - (selftest::test_one_liner_labels_utf8): Likewise. - (selftest::test_one_liner_colorized_utf8): Likewise. - (selftest::test_add_location_if_nearby): Likewise. - (selftest::test_diagnostic_show_locus_fixit_lines): Likewise. - (selftest::test_overlapped_fixit_printing): Likewise. - (selftest::test_overlapped_fixit_printing_utf8): Likewise. - (selftest::test_overlapped_fixit_printing_2): Likewise. - (selftest::test_fixit_insert_containing_newline): Likewise. - (selftest::test_fixit_insert_containing_newline_2): Likewise. - (selftest::test_fixit_replace_containing_newline): Likewise. - (selftest::test_fixit_deletion_affecting_newline): Likewise. - (selftest::test_tab_expansion): Likewise. - (selftest::test_escaping_bytes_1): Likewise. - (selftest::test_escaping_bytes_2): Likewise. - (selftest::test_line_numbers_multiline_range): Likewise. - * diagnostic.cc - (diagnostic_column_policy::diagnostic_column_policy): New. - (diagnostic_context::converted_column): Convert to... - (diagnostic_column_policy::converted_column): ...this. - (diagnostic_context::get_location_text): Convert to... - (diagnostic_column_policy::get_location_text): ...this, adding - "show_column" param. - (diagnostic_location_print_policy::diagnostic_location_print_policy): - New ctors. - (default_diagnostic_start_span_fn): Convert param from - diagnostic_context * to const diagnostic_location_print_policy &. - Add "pp" param. - (selftest::assert_location_text): Update for above changes. - (selftest::test_diagnostic_get_location_text): Rename to... - (selftest::test_get_location_text): ...this. - (selftest::c_diagnostic_cc_tests): Update for renaming. - * diagnostic.h (class diagnostic_location_print_policy): New - forward decl. - (class diagnostic_source_print_policy): New forward decl. - (diagnostic_start_span_fn): Convert first param from - diagnostic_context * to const diagnostic_location_print_policy & - and add pretty_printer * param. - (class diagnostic_column_policy): New. - (class diagnostic_location_print_policy): New. - (class diagnostic_source_print_policy): New. - (class diagnostic_context): Add friend class - diagnostic_source_print_policy. - (diagnostic_context::converted_column): Drop decl in favor of - diagnostic_column_policy::converted_column. - (diagnostic_context::get_location_text): Drop decl in favor of - diagnostic_column_policy::get_location_text. - (diagnostic_context::show_locus): Drop decl in favor of - diagnostic_source_print_policy::print. - (default_diagnostic_start_span_fn): Update for change to - diagnostic_start_span_fn. - * gcc-rich-location.h (class diagnostic_source_print_policy): New - forward decl. - (gcc_rich_location::add_location_if_nearby): Convert first param - from diagnostic_context to diagnostic_source_print_policy. Add - overload taking diagnostic_context. - * selftest-diagnostic.cc - (selftest::test_diagnostic_context::test_diagnostic_context): Turn - off colorization. - (selftest::test_diagnostic_context::start_span_cb): Update for - change to callback type. - (test_diagnostic_context::test_show_locus): New. - * selftest-diagnostic.h - (selftest::test_diagnostic_context::start_span_cb): Update for - change to callback type. - (test_diagnostic_context::test_show_locus): New decl. - -2024-09-30 David Malcolm - - PR other/116613 - * diagnostic-format-json.cc (diagnostic_output_format_init_json): - Pass in the format. Use the format's printer when disabling - colorization. Move the call to set_output_format into here. - (diagnostic_output_format_init_json_stderr): Update for above - change. - (diagnostic_output_format_init_json_file): Likewise. - * diagnostic-format-sarif.cc - (diagnostic_output_format_init_sarif): Use the format's printer - when disabling colorization. - * diagnostic-path.cc (selftest::test_empty_path): Use the - text_output's printer. - (selftest::test_intraprocedural_path): Likewise. - (selftest::test_interprocedural_path_1): Likewise. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - (selftest::test_control_flow_1): Likewise. - (selftest::test_control_flow_2): Likewise. - (selftest::test_control_flow_3): Likewise. - (selftest::assert_cfg_edge_path_streq): Likewise. - (selftest::test_control_flow_5): Likewise. - (selftest::test_control_flow_6): Likewise. - -2024-09-30 David Malcolm - - PR other/116613 - * attribs.cc: Include "pretty-print-markup.h". - (decls_mismatched_attributes): Defer colorization choices by - replacing printing to a pretty_printer * param with appending - to a vec of strings. - (maybe_diag_alias_attributes): As above, replacing pretty_printer - with usage of pp_markup::comma_separated_quoted_strings and "%e" - in two places. - * attribs.h (decls_mismatched_attributes): Update decl. - * gimple-ssa-warn-access.cc: Include "pretty-print-markup.h". - (pass_waccess::maybe_warn_memmodel): Defer colorization choices by - replacing printing to a pretty_printer * param with use of - pp_markup::comma_separated_quoted_strings and "%e". - (pass_waccess::maybe_warn_memmodel): Likewise, replacing printing - to a temporary buffer. - * pretty-print-markup.h - (class pp_markup::comma_separated_quoted_strings): New. - * pretty-print.cc - (pp_markup::comma_separated_quoted_strings::add_to_phase_2): New. - (selftest::test_pp_printf_within_pp_element): New. - (selftest::test_comma_separated_quoted_strings): New. - (selftest::pretty_print_cc_tests): Call the new tests. - -2024-09-30 David Malcolm - - * pretty-print.cc (output_buffer::dump): New. - (pretty_printer::dump): New. - * pretty-print.h (output_buffer::dump): New decls. - (pretty_printer::dump): New decls. - -2024-09-30 David Malcolm - - * diagnostic-format-sarif.cc (sarif_builder::~sarif_builder): New, - deleting any remaining artifact objects. - (sarif_builder::make_run_object): Empty the artifact map. - * ordered-hash-map.h (ordered_hash_map::empty): New. - -2024-09-30 Victor Do Nascimento - - * config/c6x/c6x.md (sdot_prodv2hi): Renamed to... - (sdot_prodsiv2hi): ...this. - -2024-09-30 Victor Do Nascimento - - * config/rs6000/altivec.md (udot_prod): Renamed to... - (udot_prodv4si): ...this. - (sdot_prodv8hi): Renamed to... - (sdot_prodv4siv8hi): ...this. - -2024-09-30 Victor Do Nascimento - - * config/mips/loongson-mmi.md (sdot_prodv4hi): Renamed to... - (sdot_prodv2siv4hi): ...this. - -2024-09-30 Victor Do Nascimento - - * config/arc/simdext.md (sdot_prodv2hi): Renamed to... - (sdot_prodsiv2hi): ...this. - (udot_prodv2hi): Renamed to... - (udot_prodsiv2hi): ...this. - (sdot_prodv4hi): Renamed to... - (sdot_prodv2siv4hi): ...this. - (udot_prodv4hi): Renamed to... - (udot_prodv2siv4hi): ...this. - -2024-09-30 Victor Do Nascimento - - * config/i386/mmx.md (usdot_prodv8qi): Renamed to... - (usdot_prodv2siv8qi): ...this. - (sdot_prodv8qi): Renamed to... - (sdot_prodv2siv8qi): ...this. - (udot_prodv8qi): Renamed to... - (udot_prodv2siv8qi): ...this. - (usdot_prodv4hi): Renamed to... - (usdot_prodv2siv4hi): ...this. - (udot_prodv4hi): Renamed to... - (udot_prodv2siv4hi): ...this. - (sdot_prodv4hi): Renamed to... - (sdot_prodv2siv4hi): ...this. - * config/i386/sse.md (sdot_prod): Renamed to... - (sdot_prod): ...this. - (sdot_prodv4si): Renamed to... - (sdot_prodv2div4si): ...this. - (usdot_prod): Renamed to... - (usdot_prod): ...this. - (sdot_prod): Renamed to... - (sdot_prod): ...this. - (sdot_prodv64qi): Renamed to... - (sdot_prodv16siv64qi): ...this. - (udot_prod): Renamed to... - (udot_prod): ...this. - (udot_prodv64qi): Renamed to... - (udot_prodv16qiv64qi): ...this. - (usdot_prod): Renamed to... - (usdot_prod): ...this. - (udot_prod): Renamed to... - (udot_prod): ...this. - -2024-09-30 Victor Do Nascimento - - * config/arm/neon.md (dot_prod): Renamed to... - (dot_prod): ...this. - (neon_dot): Renamed to... - (neon_dot): ...this. - (neon_usdot): Renamed to... - (neon_usdot): ...this. - (usdot_prod): Renamed to... - (usdot_prod): ...this. - * config/arm/arm-builtins.cc - (CODE_FOR_neon_sdotv8qi): Definie as alias to - new CODE_FOR_neon_sdotv2siv8qi. - (CODE_FOR_neon_udotv8qi): Definie as alias to - new CODE_FOR_neon_udotv2siv8qi. - (CODE_FOR_neon_usdotv8qi): Definie as alias to - new CODE_FOR_neon_usdotv2siv8qi. - (CODE_FOR_neon_sdotv16qi): Definie as alias to - new CODE_FOR_neon_sdotv4siv16qi. - (CODE_FOR_neon_udotv16qi): Definie as alias to - new CODE_FOR_neon_udotv4siv16qi. - (CODE_FOR_neon_usdotv16qi): Definie as alias to - new CODE_FOR_neon_usdotv4siv16qi. - -2024-09-30 Victor Do Nascimento - - * config/aarch64/aarch64-simd.md - (dot_prod): Renamed to... - (dot_prod): ...this. - (usdot_prod): Renamed to... - (usdot_prod): ...this. - (sadv16qi): Adjust call to gen_udot_prod take second mode. - (popcount): fix use of `udot_prod_optab'. - * config/aarch64/aarch64-sve.md - (dot_prod): Renamed to... - (dot_prod): ...this. - (@dot_prod): Renamed to... - (@dot_prod): ...this. - (sad): Adjust call to gen_udot_prod take second mode. - * config/aarch64/aarch64-sve2.md - (@aarch64_sve_dotvnx4sivnx8hi): Renamed to... - (dot_prodvnx4sivnx8hi): ...this. - * config/aarch64/aarch64-simd-builtins.def: Modify macro - expansion-based initialization and expansion - of (u|s|us)dot_prod builtins. - * config/aarch64/aarch64-builtins.cc - (CODE_FOR_aarch64_sdot_prodv8qi): Define as alias to - new CODE_FOR_sdot_prodv2siv8qi. - (CODE_FOR_aarch64_udot_prodv8qi): Define as alias to - new CODE_FOR_udot_prodv2siv8qi. - (CODE_FOR_aarch64_usdot_prodv8qi): Define as alias to - new CODE_FOR_usdot_prodv2siv8qi. - (CODE_FOR_aarch64_sdot_prodv16qi): Define as alias to - new CODE_FOR_sdot_prodv4siv16qi. - (CODE_FOR_aarch64_udot_prodv16qi): Define as alias to - new CODE_FOR_udot_prodv4siv16qi. - (CODE_FOR_aarch64_usdot_prodv16qi): Define as alias to - new CODE_FOR_usdot_prodv4siv16qi. - * config/aarch64/aarch64-sve-builtins-base.cc - (svdot_impl::expand): s/direct/convert/ in - `convert_optab_handler_for_sign' function call. - (svusdot_impl::expand): add second mode argument in call to - `code_for_dot_prod'. - * config/aarch64/aarch64-sve-builtins.cc - (function_expander::convert_optab_handler_for_sign): New class - method. - * config/aarch64/aarch64-sve-builtins.h - (class function_expander): Add prototype for new - `convert_optab_handler_for_sign' method. - -2024-09-30 Victor Do Nascimento - - * gimple-match-exports.cc (directly_supported_p): Add overload - for conversion-type optabs. - * gimple-match.h (directly_supported_p): Add new function - prototype. - * optabs.cc (expand_widen_pattern_expr): Make the - DOT_PROD_EXPR tree code use `find_widening_optab_handler' to - retrieve icode. - * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): make it - call conversion-type overloaded `directly_supported_p'. - * tree-vect-patterns.cc (vect_supportable_conv_optab_p): New. - (vect_recog_dot_prod_pattern): s/direct/conv/ in call to - `vect_supportable_direct_optab_p'. - -2024-09-30 Victor Do Nascimento - - * optabs.def (sdot_prod_optab): Convert from OPTAB_D to - OPTAB_CD. - (udot_prod_optab): Likewise. - (usdot_prod_optab): Likewise. - * doc/md.texi (Standard Names): update entries for u,s and us - dot_prod names. - -2024-09-30 Richard Biener - - PR tree-optimization/116879 - * tree-vect-loop.cc (vect_analyze_loop_form): Scan all - blocks that form the latch. - -2024-09-30 Tamar Christina - - PR tree-optimization/116817 - * tree-vect-patterns.cc (vect_recog_bool_pattern): Check for const or - externals. - -2024-09-30 Richard Biener - - PR tree-optimization/116842 - * tree-vect-stmts.cc (hoist_defs_of_uses): Sort stmts to hoist - after UID to avoid breaking vect_stmt_dominates_stmt_p. - -2024-09-30 Richard Biener - - PR tree-optimization/116785 - * tree-ssa-structalias.cc (get_constraint_for_1): Only - volatile qualified reads produce ANYTHING. - -2024-09-30 Richard Biener - - PR tree-optimization/116850 - * gimple-ssa-isolate-paths.cc (bb_split_points): New global. - (insert_trap): Delay BB splitting if post-doms are computed. - (find_explicit_erroneous_behavior): Process delayed BB - splitting after releasing post dominators. - (gimple_ssa_isolate_erroneous_paths): Do not free post-dom - info here. - -2024-09-30 Pan Li - - * match.pd: Add case 1 matching pattern for signed SAT_SUB. - * tree-ssa-math-opts.cc (gimple_signed_integer_sat_sub): Add new - decl for generated SAT_SUB matching func. - (match_unsigned_saturation_sub): Rename from... - (match_saturation_sub): ...Rename to and add signed SAT_SUB matching. - (math_opts_dom_walker::after_dom_children): Leverage the named - match func for both the unsigned and signed SAT_SUB. - -2024-09-29 Pan Li - - * config/riscv/riscv-protos.h (riscv_expand_sssub): Add new func - decl for expanding signed SAT_SUB. - * config/riscv/riscv.cc (riscv_expand_sssub): Add new func impl - for expanding signed SAT_SUB. - * config/riscv/riscv.md (sssub3): Add new pattern sssub - for scalar signed integer. - -2024-09-29 Jakub Jelinek - - PR target/116627 - * cselib.cc (remove_useless_values): Discard useless locs - even from preserved cselib_vals in cselib_preserved_hash_table - hash table. - -2024-09-29 Pietro Monteiro - - * doc/extend.texi (SH Operand Modifiers): New. - -2024-09-29 Jovan Vukic - - PR target/108038 - * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): New - simplification. - -2024-09-29 Dimitar Dimitrov - - * doc/sourcebuild.texi: Document struct-layout-1.exp. - -2024-09-28 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) : Remove note - from 2003. - -2024-09-27 Jakub Jelinek - - PR libstdc++/116847 - * diagnostic.h (diagnostic_option_classifier): Add pch_save and - pch_restore method declarations. - (diagnostic_context): Add pch_save and pch_restore inline method - definitions. - * diagnostic.cc (diagnostic_option_classifier::pch_save): New method. - (diagnostic_option_classifier::pch_restore): Likewise. - -2024-09-27 Jakub Jelinek - - PR libstdc++/116847 - * diagnostic.h (diagnostic_option_classifier): Change type - of m_classification_history from diagnostic_classification_change_t * - to vec. Change type of - m_push_list from int * to vec. Remove m_n_classification_history - and m_n_push members. - * diagnostic.cc (diagnostic_option_classifier::init): Set m_push_list - to vNULL rather than nullptr. Don't initialize m_n_push. Initialize - m_classification_history to vNULL. - (diagnostic_option_classifier::fini): Call release () method on - m_push_list instead of free on it. Call release () on - m_classification_history. Don't clear m_n_push. - (diagnostic_option_classifier::push): Adjust for m_push_list and - m_classification_history being vectors rather than custom allocated - arrays with counter. - (diagnostic_option_classifier::pop): Likewise. - (classify_diagnostic): Adjust for m_classification_history being - vector rather than custom allocated array with counter. - (update_effective_level_from_pragmas): Likewise. - -2024-09-27 Uros Bizjak - - * config/i386/i386.h: Add PTA_BDVER1, PTA_BDVER2, PTA_BDVER3, - PTA_BDVER4, PTA_BTVER1 and PTA_BTVER2. - * common/config/i386/i386-common.cc (processor_alias_table) - <"bdver1">: Use PTA_BDVER1. - <"bdver2">: Use PTA_BDVER2. - <"bdver3">: Use PTA_BDVER3. - <"bdver4">: Use PTA_BDVER4. - <"btver1">: Use PTA_BTVER1. Use M_CPU_TYPE (AMD_BTVER1). - <"btver2">: Use PTA_BTVER2. - <"shanghai>: Use M_CPU_SUBTYPE (AMDFAM10H_SHANGHAI). - <"istanbul>: Use M_CPU_SUBTYPE (AMDFAM10H_ISTANBUL). - -2024-09-27 Pan Li - - PR middle-end/116861 - * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Backup - the next psi iterator before remove the phi node. - -2024-09-27 Richard Biener - - * doc/contrib.texi (Richard Biener): Move entry. - -2024-09-27 Richard Biener - - PR tree-optimization/116818 - * tree-vect-stmts.cc (get_group_load_store_type): Consider - VMAT_GATHER_SCATTER instead of VMAT_ELEMENTWISE also for SLP. - (vectorizable_load): For single-lane VMAT_GATHER_SCATTER also - ignore permutations. - -2024-09-27 Richard Biener - - * tree-vect-stmts.cc (check_load_store_for_partial_vectors): - Use the new vect_get_num_copies overload. Only divide by - group_size for SLP for load-store lanes. - -2024-09-27 Andrew Pinski - - PR tree-optimization/116848 - * tree-ssa-loop-unswitch.cc (tree_ssa_unswitch_loops): Call mark_ssa_maybe_undefs. - (is_maybe_undefined): Call ssa_name_maybe_undef_p instead of ondemand undef. - -2024-09-26 Richard Biener - - PR tree-optimization/114855 - * params.opt (--param transitive-relations-work-bound): New. - * doc/invoke.texi (--param transitive-relations-work-bound): - Document. - * value-relation.cc (dom_oracle::register_transitives): - Assing an overall work budget, bounding the dominator walk and - the number of relations processed. - (dom_oracle::record): Only register_transitives when the - number of already registered relations does not yet exceed - the per-BB limit. - -2024-09-26 Tobias Burnus - - * langhooks-def.h (lhd_omp_deep_mapping_p, - lhd_omp_deep_mapping_cnt, lhd_omp_deep_mapping): New. - (LANG_HOOKS_OMP_DEEP_MAPPING_P, LANG_HOOKS_OMP_DEEP_MAPPING_CNT, - LANG_HOOKS_OMP_DEEP_MAPPING): Define. - (LANG_HOOKS_DECLS): Use it. - * langhooks.cc (lhd_omp_deep_mapping_p, lhd_omp_deep_mapping_cnt, - lhd_omp_deep_mapping): New stubs. - * langhooks.h (struct lang_hooks_for_decls): Add new hooks - * omp-expand.cc (expand_omp_target): Handle dynamic-size - addr/sizes/kinds arrays. - * omp-low.cc (build_sender_ref, fixup_child_record_type, - scan_sharing_clauses, lower_omp_target): Update to handle - new hooks and dynamic-size addr/sizes/kinds arrays. - -2024-09-26 Jakub Jelinek - - * pretty-print.cc (allocate_object): Use obstack_blank rather than - obstack_grow. - -2024-09-26 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) <*-*-mingw32>: Remove note regarding - binutils 2.16. - -2024-09-26 Kugan Vivekanandarajah - - * match.pd: Extend A CMP 0 ? A : -A into (type)A CMP 0 ? A : -A. - Extend A CMP 0 ? A : -A into (type) A CMP 0 ? A : -A. - -2024-09-26 Levy Hsu - - * config/i386/mmx.md: - (VQI_16_32_64): New mode iterator for 8-byte, 4-byte, and 2-byte QImode. - (popcount2): New pattern for popcount of V2QI/V4QI/V8QI mode. - (popcount2): New pattern for popcount of V2HI/V4HI mode. - (popcountv2si2): New pattern for popcount of V2SI mode. - -2024-09-26 liuhongt - - * config/i386/i386.h (VECTOR_STORE_FLAG_VALUE): New macro. - -2024-09-26 Pan Li - - * match.pd: Add optional nop_convert for signed SAT_ADD case 4. - -2024-09-25 Mikael Morin - - PR other/116801 - * common.opt.urls: Regenerate. - -2024-09-25 Jakub Jelinek - - PR target/116738 - * config/i386/i386.cc (ix86_fold_builtin): Handle - IX86_BUILTIN_M{IN,AX}{S,P}{S,H,D}*. - (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_M{IN,AX}P{S,H,D}*. - -2024-09-25 H.J. Lu - - PR target/116839 - * config/i386/i386.cc (ix86_rewrite_tls_address_1): Make it - static. Return if TLS address is thread register plus an integer - register. - -2024-09-25 Andrew Pinski - - PR middle-end/116772 - * generic-match-head.cc (expr_no_side_effects_p): New function - * gimple-match-head.cc (expr_no_side_effects_p): New function - * match.pd (`a != 0 ? a / b : 0`): Check expr_no_side_effects_p. - (`a != 0 ? a * b : 0`, `a != 0 ? a & b : 0`): Likewise. - -2024-09-25 Konstantinos Eleftheriou - - PR tree-optimization/114326 - * match.pd: Add two patterns to fold a ^ b to 0, when a == b. - -2024-09-25 Richard Biener - - * value-range.cc (get_bitmask_from_range): Remove redundant - compare of xorv with zero. - -2024-09-25 Richard Biener - - * wide-int.h (wide_int_storage::wide_int_storage): Branch - on source precision to avoid data dependence on memcpy - destination. - (wide_int_storage::operator=): Likewise. - -2024-09-25 Konstantinos Eleftheriou - - PR tree-optimization/109393 - * match.pd: (A * B) + (-C) -> (B - C/A) * A, if C a multiple of A. - -2024-09-25 Richard Biener - - * tree-ssa-reassoc.cc (break_up_subtract_bb): Remove recursion. - (reassociate_bb): Likewise. - (do_reassoc): Implement worklist based dominator walks for - both break_up_subtract_bb and reassociate_bb. - -2024-09-25 Aldy Hernandez - - PR tree-optimization/114855 - * tree-ssa-threadedge.cc: Remove unneeded recursion. - -2024-09-25 Richard Biener - - * ipa-utils.cc (find_always_executed_bbs): Switch result - bitmap to tree view. - -2024-09-25 Richard Biener - - PR rtl-optimization/114855 - * ira.cc (add_store_equivs): Use sbitmap for tracking - visited insns. - -2024-09-25 Richard Biener - - * ira.cc (ira): Gate add_store_equivs on flag_expensive_optimizations. - -2024-09-25 Richard Biener - - PR tree-optimization/114855 - * value-relation.cc (equiv_oracle::equiv_oracle): Switch - m_equiv_set to tree view. - -2024-09-25 Lingling Kong - - * config/i386/i386.opt: Update the features included in apxf. - -2024-09-24 Jakub Jelinek - - PR c++/107637 - * omp-general.cc (find_combined_omp_for, find_nested_loop_xform): - Handle CLEANUP_POINT_EXPR like TRY_FINALLY_EXPR. - * doc/invoke.texi (frange-for-ext-temps): Document. Add - -fconcepts to the C++ option list. - -2024-09-24 Jakub Jelinek - - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Fix comment - typo, insead -> instead. - -2024-09-24 Yixuan Chen - - * config/riscv/riscv.h: Fix FIXED_REGISTERS comment missing return - address register. - -2024-09-24 Sandra Loosemore - - * omp-general.cc (omp_check_context_selector): Reject other - properties in the same selector set with kind(any). Also reject - duplicate name-list properties. - -2024-09-24 Richard Biener - - * range-op.cc (operator_rshift::op1_range): Use wi::mask instead - of shift and not. - -2024-09-24 Pan Li - - PR middle-end/116814 - * tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Make - ifn is_supported type check based on operand instead of lhs. - -2024-09-24 Richard Biener - - PR tree-optimization/116819 - * tree-vect-stmts.cc (vect_analyze_stmt): When the SLP - representative isn't relevant signal failure instead of - success. - -2024-09-24 Robin Dapp - - * config/riscv/autovec.md (vec_extract): - Add quarter vec-vec extract. - * config/riscv/vector-iterators.md: New iterators. - -2024-09-24 Jason Merrill - - * configure.ac (CXX_WARNING_OPTS): Change -Wno-narrowing - to -Wno-error=narrowing. - * configure: Regenerate. - * config/i386/i386.h (debugger_register_map) - (debugger64_register_map) - (svr4_debugger_register_map): Make unsigned. - * config/i386/i386.cc: Likewise. - * diagnostic-event-id.h (diagnostic_thread_id_t): Make int. - * vec.h (vec::size): Make unsigned int. - * ipa-modref.cc (escape_point::arg): Make unsigned. - (modref_lattice::add_escape_point): Use eaf_flags_t. - (update_escape_summary_1): Use eaf_flags_t, && for bool. - * pair-fusion.cc (pair_fusion_bb_info::track_access): - Make mem_size unsigned int. - * pretty-print.cc (format_phase_2): Cast va_arg to char. - * tree-ssa-loop-ch.cc (ch_base::copy_headers): Make nheaders - unsigned, remove cast. - * tree-ssa-structalias.cc (bitpos_of_field): Return unsigned. - (push_fields_onto_fieldstack):Make offset unsigned, remove cast. - * tree-vect-slp.cc (vect_prologue_cost_for_slp): Use nelt_limit. - * tree-vect-stmts.cc (vect_truncate_gather_scatter_offset): - Make scale unsigned. - (vectorizable_operation): Make ncopies unsigned. - * rtl-ssa/member-fns.inl: Make num_accesses unsigned int. - -2024-09-24 Richard Biener - - PR tree-optimization/114855 - * tree-into-ssa.cc (update_ssa): Use tree view for the - initial population of blocks_to_update. - -2024-09-24 Tobias Burnus - - * lto-cgraph.cc (output_offload_tables, omp_requires_to_name): Handle - self_maps clause. - * omp-general.cc (struct omp_ts_info, omp_context_selector_matches): - Likewise for the associated trait. - * omp-general.h (enum omp_requires): Add OMP_REQUIRES_SELF_MAPS. - * omp-selectors.h (enum omp_ts_code): Add - OMP_TRAIT_IMPLEMENTATION_SELF_MAPS. - -2024-09-24 Richard Biener - - PR tree-optimization/115372 - * tree-vect-slp.cc (vect_build_slp_instance): Compute the - uniform, if, number of lanes of the RHS sub-graphs feeding - the store and if uniformly one, use store-lanes if the target - supports that. - -2024-09-24 Richard Biener - - PR tree-optimization/114855 - * tree-into-ssa.cc (phis_to_rewrite): Remove global var. - (mark_phi_for_rewrite): Simplify. - (rewrite_update_phi_arguments): Walk all PHIs, process - those satisfying rewrite_uses_p. - (delete_update_ssa): Simplify. - (update_ssa): Likewise. Switch blocks_with_phis_to_rewrite - to tree view. - -2024-09-24 Yangyu Chen - - * hosthooks.h (struct host_hooks): Fix GCC_HOST_HOOKS_H typo. - -2024-09-24 Prathamesh Kulkarni - Thomas Schwinge - - PR target/104957 - * config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls): Use - cgraph_node::get(name)->ultimate_alias_target instead of value. - -2024-09-23 Saurabh Jha - - * config/aarch64/aarch64-simd.md - (*aarch64_faminmax_fused): Instruction pattern for faminmax - codegen. - * config/aarch64/iterators.md: Attribute for faminmax codegen. - -2024-09-23 Saurabh Jha - - * config/aarch64/aarch64-builtins.cc - (ENTRY): Macro to parse the contents of - aarch64-simd-pragma-builtins.def. - (ENTRY_VHSDF): Macro to parse the contents of - aarch64-simd-pragma-builtins.def. - (enum aarch64_builtins): New enum values for faminmax builtins - via aarch64-simd-pragma-builtins.def. - (enum class aarch64_builtin_signatures): Enum class to specify - the number of operands a builtin will take. - (struct aarch64_pragma_builtins_data): Struct to hold data from - aarch64-simd-pragma-builtins.def. - (aarch64_fntype): New function to define function types of - intrinsics given an object of type aarch64_pragma_builtins_data. - (aarch64_init_pragma_builtins): New function to define pragma - builtins. - (aarch64_get_pragma_builtin): New function to get a row of - aarch64_pragma_builtins, given code. - (handle_arm_neon_h): Modify to call - aarch64_init_pragma_builtins. - (aarch64_general_check_builtin_call): Modify to check whether - required flag is being used for pragma builtins. - (aarch64_expand_pragma_builtin): New function to emit - instructions of pragma_builtin. - (aarch64_general_expand_builtin): Modify to call - aarch64_expand_pragma_builtin. - * config/aarch64/aarch64-option-extensions.def - (AARCH64_OPT_EXTENSION): Introduce new flag for this extension. - * config/aarch64/aarch64-simd.md - (@aarch64_): Instruction pattern for - faminmax intrinsics. - * config/aarch64/aarch64.h - (TARGET_FAMINMAX): Introduce new flag for this extension. - * config/aarch64/iterators.md: New iterators and unspecs. - * doc/invoke.texi: Document extension in AArch64 Options. - * config/aarch64/aarch64-simd-pragma-builtins.def: New file to - list pragma builtins. - -2024-09-23 Matthieu Longo - - * dwarf2cfi.cc - (struct dw_cfi_row): Declare a new enum type to replace ra_mangled. - (cfi_row_equal_p): Use ra_state instead of ra_mangled. - (dwarf2out_frame_debug_cfa_negate_ra_state): Same. - (change_cfi_row): Same. - -2024-09-23 Matthieu Longo - - * config/aarch64/aarch64.cc - (aarch64_output_cfi_directive): New hook for CFI directives. - (aarch64_dw_cfi_oprnd1_desc): Same. - (TARGET_OUTPUT_CFI_DIRECTIVE): Hook for output_cfi_directive. - (TARGET_DW_CFI_OPRND1_DESC): Hook for dw_cfi_oprnd1_desc. - * config/sparc/sparc.cc - (sparc_output_cfi_directive): New hook for CFI directives. - (sparc_dw_cfi_oprnd1_desc): Same. - (TARGET_OUTPUT_CFI_DIRECTIVE): Hook for output_cfi_directive. - (TARGET_DW_CFI_OPRND1_DESC): Hook for dw_cfi_oprnd1_desc. - * coretypes.h - (struct dw_cfi_node): Forward declaration of CFI type from - gcc/dwarf2out.h. - (enum dw_cfi_oprnd_type): Same. - (enum dwarf_call_frame_info): Same. - * doc/tm.texi: Regenerated from doc/tm.texi.in. - * doc/tm.texi.in: Add doc for new target hooks. - type of enum to allow forward declaration. - * dwarf2cfi.cc - (struct dw_cfi_row): Update the description for window_save - and ra_mangled. - (dwarf2out_frame_debug_cfa_negate_ra_state): Use AArch64 CFI - directive instead of the SPARC one. - (change_cfi_row): Use the right CFI directive's name for RA - mangling. - (output_cfi): Remove explicit architecture-specific CFI - directive DW_CFA_GNU_window_save that falls into default case. - (output_cfi_directive): Use target hook as default. - * dwarf2out.cc (dw_cfi_oprnd1_desc): Use target hook as default. - * dwarf2out.h (enum dw_cfi_oprnd_type): specify underlying type - of enum to allow forward declaration. - (dw_cfi_oprnd1_desc): Call target hook. - (output_cfi_directive): Use dw_cfi_ref instead of struct - dw_cfi_node *. - * hooks.cc - (hook_bool_dwcfi_dwcfioprndtyperef_false): New. - (hook_bool_FILEptr_dwcfiptr_false): New. - * hooks.h - (hook_bool_dwcfi_dwcfioprndtyperef_false): New. - (hook_bool_FILEptr_dwcfiptr_false): New. - * target.def: Documentation for new hooks. - -2024-09-23 Matthieu Longo - - * combine-stack-adj.cc - (no_unhandled_cfa): Rename. - * config/aarch64/aarch64.cc - (aarch64_expand_prologue): Rename. - (aarch64_expand_epilogue): Rename. - * dwarf2cfi.cc - (dwarf2out_frame_debug_cfa_toggle_ra_mangle): Rename this... - (dwarf2out_frame_debug_cfa_negate_ra_state): To this. - (dwarf2out_frame_debug): Rename. - * reg-notes.def (REG_CFA_NOTE): Rename REG_CFA_TOGGLE_RA_MANGLE. - -2024-09-23 Tobias Burnus - - * omp-general.cc (omp_runtime_api_procname): Strip "omp_" from - string; move get_device_from_uid as now a '_' suffix exists. - -2024-09-23 Claudiu Zissulescu - - PR target/113954 - * config/arc/arc.cc (TARGET_LRA_P): Always return true. - (arc_lra_p): Remove. - * config/arc/arc.h (TARGET_LRA): Remove. - * config/arc/arc.opt (mlra): Change it to do nothing. - * doc/invoke.texi (mlra): Update option description. - -2024-09-23 Richard Biener - - PR tree-optimization/116810 - * tree-vect-slp.cc (vect_build_slp_instance): Onlu force - splitting for group_size > 1. - -2024-09-23 Richard Biener - - PR tree-optimization/116796 - * cfgloopmanip.cc (fix_loop_placements): Get LC-SSA-invalidated - bitmap and pass it on. - (remove_path): Pass LC-SSA-invalidated to fix_loop_placements. - -2024-09-23 Tamar Christina - - PR tree-optimization/116812 - * tree-vect-slp.cc (vect_slp_region): Fix insertion. - -2024-09-23 Richard Biener - - PR tree-optimization/116791 - * tree-vect-stmts.cc (get_group_load_store_type): Only - fall back to elementwise access for single-lane SLP, restore - hard failure mode for other cases. - -2024-09-23 Tobias Burnus - - * config/gcn/mkoffload.cc (process_asm): (Re)add the fprintf - lines for stdlib.h/stdbool.h inclusion if gcn_stack_size is used. - -2024-09-23 Pan Li - - PR target/116795 - * gimple-match-head.cc (match_cond_with_binary_phi): Fix the - incorrect cfg check as b0->b1 in above example. - -2024-09-23 Andrew Pinski - - * gimple-iterator.h (gimple_seq_nondebug_singleton_p): - Rewrite to be simplely, gsi_start_nondebug/gsi_one_nondebug_before_end_p. - -2024-09-23 Andrew Pinski - - * gimple.h (remove_pointer): Remove. - (GIMPLE_CHECK2): Use std::remove_pointer instead of custom one. - -2024-09-23 Andrew Pinski - - * tree-ssa-operands.h (PHI_ARG_DEF): Remove definition. - -2024-09-23 Pan Li - - * match.pd: Add the case 3 for signed .SAT_ADD matching. - -2024-09-22 Tamar Christina - - * tree-vect-patterns.cc (append_inv_pattern_def_seq): New. - (vect_recog_bool_pattern): Lower COND_EXPRs. - * tree-vect-slp.cc (vect_slp_region): Materialize loop invariant - statements. - * tree-vect-loop.cc (vect_transform_loop): Likewise. - * tree-vect-stmts.cc (vectorizable_comparison_1): Remove - VECT_SCALAR_BOOLEAN_TYPE_P handling for vectype. - * tree-vectorizer.cc (vec_info::vec_info): Initialize - inv_pattern_def_seq. - * tree-vectorizer.h (LOOP_VINFO_INV_PATTERN_DEF_SEQ): New. - (class vec_info): Add inv_pattern_def_seq. - -2024-09-22 Tamar Christina - - * config/aarch64/aarch64.cc (adjust_body_cost): - Cap VF for low iteration loops. - -2024-09-21 Mikael Morin - - PR fortran/90608 - * flag-types.h (enum gfc_inlineable_intrinsics): New type. - -2024-09-20 David Malcolm - - PR other/116613 - * text-art/dump.h (dump_to_file): Simplify using - tree_dump_pretty_printer. - * tree-diagnostic.h (class tree_dump_pretty_printer): New. - -2024-09-20 David Malcolm - - PR other/116613 - * diagnostic-format-sarif.cc (sarif_builder::m_printer): New - field. - (sarif_invocation::add_notification_for_ice): Drop context param. - (sarif_invocation::prepare_to_flush): Convert param from context - to builder. - (sarif_result::on_nested_diagnostic): Drop context param. Use - builder's printer. - (sarif_result::on_diagram): Drop context param. - (sarif_ice_notification::sarif_ice_notification): Drop context - param. Use builder's printer. - (sarif_builder::sarif_builder): Initialize m_printer. - (sarif_builder::on_report_diagnostic): Drop context param. Use - builder's printer. - (sarif_builder::emit_diagram): Drop context param. - (sarif_builder::flush_to_object): Use this rather than context - for call to prepare_to_flush. - (sarif_builder::make_result_object): Drop context param. Use - builder's printer. - (sarif_builder::make_reporting_descriptor_object_for_warning): - Drop context param. - (sarif_builder::make_message_object_for_diagram): Likewise. - Use builder's printer. - (sarif_output_format::on_report_diagnostic): Drop context param - from call to sarif_builder::on_report_diagnostic. - (sarif_output_format::on_diagram): Drop context param from call to - sarif_builder::emit_diagram. - * diagnostic.h (diagnostic_conetxt::get_client_data_hooks): Make const. - -2024-09-20 David Malcolm - - PR other/116613 - * coretypes.h (class diagnostic_text_output_format): Add forward - decl. - * diagnostic-format-json.cc - (json_output_format::after_diagnostic): New. - * diagnostic-format-sarif.cc - (sarif_output_format::after_diagnostic): New. - * diagnostic-format-text.cc: Use pragmas to ignore -Wformat-diag. - (diagnostic_text_output_format::~diagnostic_text_output_format): - Use get_printer. Clean up m_includes_seen here, rather than - in ~diagnostic_context. - (diagnostic_text_output_format::on_report_diagnostic): Use - get_printer. Update for callback renamings and pass *this - to them, rather than &m_context. - (diagnostic_text_output_format::after_diagnostic): New. - (diagnostic_text_output_format::includes_seen_p): Move here - from diagnostic_context/diagnostic.cc. - (diagnostic_text_output_format::get_location_text): New. - (maybe_line_and_column): Move here from diagnostic.cc and make - non-static. - (diagnostic_text_output_format::report_current_module): Move - here from diagnostic_context/diagnostic.cc. - (default_diagnostic_text_starter): Move here from diagnostic.cc, - renaming from default_diagnostic_starter. - (default_diagnostic_text_finalizer): Likewise, renaming from - default_diagnostic_finalizer. - * diagnostic-format-text.h - (diagnostic_text_output_format::diagnostic_text_output_format): - Initialize m_last_module and m_includes_seen. - (diagnostic_text_output_format::after_diagnostic): New decl. - (diagnostic_text_output_format::build_prefix): New decl. - (diagnostic_text_output_format::report_current_module): New decl. - (diagnostic_text_output_format::append_note): New decl. - (diagnostic_text_output_format::file_name_as_prefix): New decl. - (diagnostic_text_output_format::print_path): New decl. - (diagnostic_text_output_format::show_column_p): New decl. - (diagnostic_text_output_format::get_location_text): New decl. - (diagnostic_text_output_format::includes_seen_p): New decl. - (diagnostic_text_output_format::show_any_path): New decl. - (diagnostic_text_output_format::m_last_module): New field. - (diagnostic_text_output_format::m_includes_seen): New field. - * diagnostic-format.h - (diagnostic_output_format::after_diagnostic): New vfunc. - (diagnostic_output_format::get_context): New. - (diagnostic_output_format::get_diagram_theme): New. - * diagnostic-macro-unwinding.cc: Include - "diagnostic-format-text.h". - (maybe_unwind_expanded_macro_loc): Convert first param from - diagnostic_context * to diagnostic_text_output_format & and update - accordingly. - (virt_loc_aware_diagnostic_finalizer): Likewise. - * diagnostic-macro-unwinding.h - (virt_loc_aware_diagnostic_finalizer): Likewise. - (maybe_unwind_expanded_macro_loc): Likewise. - * diagnostic-path.cc: Include "diagnostic-format-text.h". - (path_label::path_label): Drop "ctxt" param and add "colorize" - and "allow_emojis" params. Update initializations. - (path_label::get_text): Use m_colorize rather than querying - m_ctxt.m_printer. Use m_allow_emojis rather than querying - m_ctxt's diagram theme. - (path_label::m_ctxt): Drop field. - (path_label::m_colorize): Drop field. - (path_label::m_allow_emojis): Drop field. - (event_range::event_range): Drop param "ctxt". Add params - "colorize_labels" and "allow_emojis". - (event_range::print): Convert first param from - diagnostic_context & to diagnostic_text_output_format & and update - accordingly. - (path_summary::path_summary): Likewise. - (path_summary::print_swimlane_for_event_range): Likewise. - (print_path_summary_as_text): Likewise for 3rd param. - (diagnostic_context::print_path): Convert to... - (diagnostic_text_output_format::print_path): ...this. - (selftest::test_empty_path): Update to use a - diagnostic_text_output_format. - (selftest::test_intraprocedural_path): Likewise. - (selftest::test_interprocedural_path_1): Likewise. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - (selftest::test_control_flow_1): Likewise. - (selftest::test_control_flow_2): Likewise. - (selftest::test_control_flow_3): Likewise. - (selftest::assert_cfg_edge_path_streq): Likewise. - (selftest::test_control_flow_5): Likewise. - (selftest::test_control_flow_6): Likewise. - * diagnostic.cc (file_name_as_prefix): Convert to... - (diagnostic_text_output_format::file_name_as_prefix): ...this. - (diagnostic_context::initialize): Update for renamings. - Move m_last_module and m_includes_seen into text output. - (diagnostic_context::finish): Likewise. - (diagnostic_context::get_location_text): Add "colorize" param. - (diagnostic_build_prefix): Convert to... - (diagnostic_text_output_format::build_prefix): ...this. - (diagnostic_context::includes_seen_p): Move from here to - diagnostic_text_output_format/diagnostic-format-text.cc. - (diagnostic_context::report_current_module): Likewise. - (diagnostic_context::show_any_path): Convert to... - (diagnostic_text_output_format::show_any_path): ...this. - (default_diagnostic_starter): Rename and move to - diagnostic-format-text.cc. - (default_diagnostic_start_span_fn): Pass colorize bool - to get_location_text. - (default_diagnostic_finalizer): Rename and move to - diagnostic-format-text.cc. - (diagnostic_context::report_diagnostic): Replace call to - show_any_path with call to new output format "after_diagnostic" - vfunc, moving show_any_path call to the text output format. - (diagnostic_append_note): Convert to... - (diagnostic_text_output_format::append_note): ...this. - (selftest::assert_location_text): Pass in false for colorization. - * diagnostic.h (diagnostic_starter_fn): Rename to... - (diagnostic_text_starter_fn): ...this. Convert first param from - diagnostic_context * to diagnostic_text_output_format &. - (diagnostic_finalizer_fn, diagnostic_text_finalizer_fn): Likewise. - (diagnostic_context): Update friends for renamings. - (diagnostic_context::report_current_module): Move to text output - format. - (diagnostic_context::get_location_text): Add "colorize" bool. - (diagnostic_context::includes_seen_p): Move to text output format. - (diagnostic_context::show_any_path): Likewise. - (diagnostic_context::print_path): Likewise. - (diagnostic_context::m_text_callbacks): Update for renamings. - (diagnostic_context::m_last_module): Move to text output format. - (diagnostic_context::m_includes_seen): Likewise. - (diagnostic_starter): Rename to... - (diagnostic_text_starter): ...this and update return type. - (diagnostic_finalizer): Rename to... - (diagnostic_text_finalizer): ...this and update return type. - (diagnostic_report_current_module): Drop decl in favor of a member - function of diagnostic_text_output_format. - (diagnostic_append_note): Likewise. - (default_diagnostic_starter): Rename to... - (default_diagnostic_text_starter): ...this, updating type. - (default_diagnostic_finalizer): Rename to... - (default_diagnostic_text_finalizer): ...this, updating type. - (file_name_as_prefix): Drop decl. - * langhooks-def.h (lhd_print_error_function): Convert first param - from diagnostic_context * to diagnostic_text_output_format &. - * langhooks.cc: Include "diagnostic-format-text.h". - (lhd_print_error_function): Likewise. Update accordingly - * langhooks.h (lang_hooks::print_error_function): Convert first - param from diagnostic_context * to - diagnostic_text_output_format &. - * tree-diagnostic.cc: Include "diagnostic-format-text.h". - (diagnostic_report_current_function): Convert first param from - diagnostic_context * to diagnostic_text_output_format & and update - accordingly. - (default_tree_diagnostic_starter): Rename to... - (default_tree_diagnostic_text_starter): ...this. Convert first - param from diagnostic_context * to diagnostic_text_output_format & - and update accordingly. - (tree_diagnostics_defaults): Update for renamings. - -2024-09-20 Tamar Christina - - * config/aarch64/aarch64.h (VECTOR_STORE_FLAG_VALUE): New. - -2024-09-20 Iain Sandoe - - * config/darwin.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): New. - -2024-09-20 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Fall back - to VMAT_ELEMENTWISE when single element interleaving of - a too large group. - (vectorizable_load): Do not try to verify load permutations - when using VMAT_ELEMENTWISE for single-lane SLP and fix code - generation for this case. - -2024-09-20 Richard Biener - - * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when - discovering from only-live roots. - -2024-09-20 Stefan Schulze Frielinghaus - - * config/s390/s390.cc (s390_lra_p): Remove. - (TARGET_LRA_P): Remove. - * config/s390/s390.opt (mlra): Remove. - * config/s390/s390.opt.urls (mlra): Remove. - -2024-09-20 Eric Botcazou - - * ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Always - process both the load and the store of a memory copy operation. - -2024-09-20 Tobias Burnus - - * omp-general.cc (omp_runtime_api_procname): Add - get_device_from_uid and omp_get_uid_from_device routines. - -2024-09-20 Uros Bizjak - Jakub Jelinek - - PR target/116738 - * config/i386/subst.md (mask_scalar_operand_arg34, - mask_scalar_expand_op3, round_saeonly_scalar_mask_arg3): New - subst attributes. - * config/i386/sse.md - (_vm3): - Change from define_insn to define_expand, rename the old define_insn - to ... - (*_vm3): - ... this. - (_ieee_vm3): - New define_insn. - -2024-09-20 Andrew Pinski - - PR middle-end/116643 - * ssa-iterators.h (single_phi_def): Use gimple_phi_result - instead of PHI_RESULT. - (op_iter_init_phidef): Use gimple_phi_result/gimple_phi_result_ptr - instead of PHI_RESULT/PHI_RESULT_PTR. - * tree-ssa-operands.h (PHI_RESULT_PTR): Remove. - (PHI_RESULT): Use gimple_phi_result directly. - (SET_PHI_RESULT): Use gimple_phi_result_ptr directly. - -2024-09-19 Marek Polacek - - PR c++/116162 - * doc/invoke.texi: Document -Wdefaulted-function-deleted. - -2024-09-19 Jakub Jelinek - - * dwarf2asm.cc (eh_data_format_name): Use constexpr initialization - of format_names table for C++14 instead of a large switch. - -2024-09-19 Richard Biener - - PR tree-optimization/116768 - * tree-data-ref.cc (build_classic_dist_vector_1): Revert - PR101009 change. - * tree-chrec.cc (eq_evolutions_p): Make sure (sizetype)1 - and (int)1 compare equal. - -2024-09-19 Richard Biener - - * tree-vectorizer.h (vect_analyze_slp): Add force_single_lane - parameter. - * tree-vect-slp.cc (vect_analyze_slp_instance): Remove - defaulting of force_single_lane. - (vect_build_slp_instance): Likewise. Pass down appropriate - force_single_lane. - (vect_analyze_slp): Add force_sigle_lane parameter and pass - it down appropriately. - (vect_slp_analyze_bb_1): Always do multi-lane SLP. - * tree-vect-loop.cc (vect_analyze_loop_2): Track two SLP - modes and adjust accordingly. - (vect_analyze_loop_1): Save the SLP mode when unrolling. - -2024-09-19 Jason Merrill - - * ginclude/stdint-wrap.h: Add #pragma GCC diagnostic to suppress - undesired warnings. - * gsyslimits.h: Likewise. - -2024-09-19 Richard Biener - - * tree-data-ref.cc (build_classic_dist_vector): Move - distance vector dumping to single caller ... - (subscript_dependence_tester): ... here, dumping always - when we succeed computing it. - -2024-09-19 Richard Biener - - PR tree-optimization/116573 - * tree-vect-loop.cc (vect_analyze_loop_2): Allow .SELECV_VL - for SLP but disable it when there's multi-lane instances. - * tree-vect-stmts.cc (vectorizable_store): Only compute the - ptr increment when generating code. - (vectorizable_load): Likewise. - -2024-09-19 Pan Li - - * match.pd: Add the form 3 of signed .SAT_ADD matching. - -2024-09-19 Pan Li - - * genmatch.cc (dt_operand::gen_phi_on_cond): Leverage the - match_cond_with_binary_phi API to get cond gimple, true and - false TREE arg. - -2024-09-19 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold): - Add folding of all-zero operands to zero vector. - -2024-09-19 Kyrylo Tkachov - - * config/aarch64/tuning_models/neoversev2.h (neoversev2_prefetch_tune): - Define. - (neoversev2_tunings): Use it. - -2024-09-19 Hu, Lin1 - - * config/i386/i386.md: Add ssemov2, sseicvt2. - * config/i386/sse.md (sse2_cvtsi2sd): Apply sseicvt2. - (sse2_cvtsi2sdq): Ditto. - (vec_set_0): Apply ssemov2 for 4, 6. - -2024-09-19 Pan Li - - * gimple-match-head.cc (match_cond_with_binary_phi): Add new func - impl to match binary phi for true and false arg. - -2024-09-19 Haochen Jiang - - * doc/invoke.texi: Add corei7, corei7-avx, core-avx-i, - core-avx2, atom, slm, gracemont and emerarldrapids. Reorder - the -march documentation by splitting them into date-to-now - products, P-core and E-core. Refine the product names in - documentation. - -2024-09-18 John David Anglin - - * config/pa/pa.h (GENERAL_REGNO_P): Define. - * config/pa/pa.md: Add SImode and SFmode peephole2 - patterns to generate loads and stores with long - displacements. - -2024-09-18 Jin Ma - - * config/riscv/riscv.md: Change "truncate" to unspec for the Zfa extension on rv32. - -2024-09-18 Richard Biener - - * params.opt (vect-force-slp): New param, default 0. - * doc/invoke.texi (--param vect-force-slp): Document. - * tree-vect-loop.cc (vect_analyze_loop_2): When analyzing - without SLP but --param vect-force-slp is 1 fail. - * tree-vect-stmts.cc (vect_analyze_stmt): Fail vectorization - for non-SLP stmts when --param vect-force-slp is 1. - -2024-09-18 Xianmiao Qu - - * config/riscv/riscv.cc (riscv_rtx_costs): Fix the outer_code - when calculating the cost of SET expression. - -2024-09-18 Xianmiao Qu - - * config/riscv/thead.md (*th_extu4): Fix th.extu - operands exceeding range on rv32. - -2024-09-18 Bohan Lei - - * config/riscv/vector.md: Allow zero operand for DI variants of - vssubu.vx - -2024-09-18 Jennifer Schmitz - - PR tree-optimization/116569 - * match.pd: Guard simplification to trunc_mod with check for - mod optab support. - -2024-09-18 Georg-Johann Lay - - PR rtl-optimization/116326 - * reload1.cc (reg_eliminate_1): Initialize from - RELOAD_ELIMINABLE_REGS if defined. - * config/avr/avr.h (RELOAD_ELIMINABLE_REGS): Copy from ELIMINABLE_REGS. - (ELIMINABLE_REGS): Don't mention sub-regnos of the frame pointer. - * doc/tm.texi.in (Eliminating Frame Pointer and Arg Pointer) - : Add documentation. - * doc/tm.texi: Rebuild. - -2024-09-18 Georg-Johann Lay - - * doc/install.texi (Host/Target specific installation notes for GCC) - [avr]: Update web links to AVR-LibC and AVR Options. - Remove outdated note about Binutils. - -2024-09-18 Richard Biener - - PR tree-optimization/116585 - * tree-data-ref.cc (split_constant_offset_1): When either - operand is subject to abnormal coalescing do no further - processing. - -2024-09-18 Andrew Pinski - - * tree-ssa-phiopt.cc (cond_if_else_store_replacement): Use - range fors and use one vec for then/else stores instead of 2. - -2024-09-18 Andrew Pinski - - * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Add debug dump. - -2024-09-18 Pan Li - - * config/riscv/autovec.md (ssadd3): Add new pattern for - signed integer vector SAT_ADD. - * config/riscv/riscv-protos.h (expand_vec_ssadd): Add new func - decl for vector ssadd expanding. - * config/riscv/riscv-v.cc (expand_vec_ssadd): Add new func impl - to expand vector ssadd pattern. - -2024-09-18 Michael Meissner - - PR target/89213 - * config/rs6000/altivec.md (UNSPEC_VECTOR_SHIFT): New unspec. - (VSHIFT_MODE): New mode iterator. - (vshift_code): New code iterator. - (vshift_attr): New code attribute. - (altivec___const): New pattern to optimize - vector long long/int shifts by a constant. - (altivec__shift_const): New helper insn to load up a - constant used by the shift operation. - * config/rs6000/predicates.md (vector_shift_constant): New - predicate. - -2024-09-17 Marek Polacek - - PR c++/116534 - * fold-const.cc (operand_compare::operand_equal_p): If either - field's DECL_FIELD_OFFSET is null, compare the fields with ==. - -2024-09-17 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold): - Add folding of all-zero operands to zero vector. - -2024-09-16 Pengxuan Zheng - - PR target/113328 - * config/aarch64/aarch64.cc (aarch64_simd_valid_immediate): Improve - handling of some ADVSIMD vectors by using SVE's INDEX if TARGET_SVE is - available. - (aarch64_output_simd_mov_immediate): Likewise. - -2024-09-16 Georg-Johann Lay - - * doc/invoke.texi (AVR Options): Update AVR-LibC weblink from - nongnu.org to https://github.com/avrdudes/avr-libc - * doc/extend.texi (AVR Named Address Spaces): Same. - (AVR Function Attributes): Same. - * doc/install.texi (Cross-Compiler-Specific Options, AVR): Same. - -2024-09-16 Soumya AR - - * config/aarch64/aarch64-sve.md (*post_ra_v3): Split pattern - to accomodate left and right shifts separately. - (*post_ra_v_ashl3): Matches left shifts with additional - constraint to check for shifts by 1. - (*post_ra_v_3): Matches right shifts. - -2024-09-16 Georg-Johann Lay - - * config/avr/avr-protos.h (avr_out_cmp_lsr, avr_maybe_cmp_lsr): New. - * config/avr/avr.cc (avr_maybe_cmp_lsr, avr_out_cmp_lsr): New functions. - (avr_out_compare) [GEU, LTU]: Start output at byte CTZ(xval) / 8. - (avr_adjust_insn_length) [ADJUST_LEN_CMP_LSR]: Handle case. - * config/avr/avr.md (adjust_len) : New attr value. - (*cmp_lsr): New define_insn_and_split. - (cbranch4_insn): When splitting, run avr_maybe_cmp_lsr() - which may map the operands to *cmp_lsr. - -2024-09-16 Andreas Schwab - - PR target/116693 - * config/riscv/riscv.cc (riscv_legitimize_tls_address): Don't pass - seqno to gen_tlsdesc and remove it. - * config/riscv/riscv.md (@tlsdesc): Remove operand 1. Use - %= instead of %1 in template. - -2024-09-16 Andrew Pinski - - * tree-vectorizer.cc (vec_info::add_pattern_stmt): Set pattern_stmt_p. - -2024-09-16 Georg-Johann Lay - - * config/avr/avr.cc: Use rtx_code for RTX codes. - Drop enum and struct tags. - * config/avr/avr.md: Same. - * config/avr/avr-c.cc: Same. - * config/avr/avr-dimode.md: Same. - * config/avr/avr-passes.cc: Same. - * config/avr/avr-protos.h: Same. - -2024-09-16 Georg-Johann Lay - - * config/avr/avr.cc (avr_out_compare): Don't mix ADIW with SBCI / CPC. - -2024-09-15 Andrew Pinski - - PR tree-optimization/116699 - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Skip over nop/predicates - for seeing the assignment is the last statement. - -2024-09-15 Andrew Pinski - - * tree-vect-loop.cc (optimize_mask_stores): Call release_defs - after the call to gsi_remove with last argument of true. - -2024-09-15 Andrew Pinski - - * bitmap.h (class auto_bitmap): Mark copy/move constructor/operator= - as deleted. - -2024-09-14 Georg-Johann Lay - - * config/avr/avr.md (UNSPEC_COPYSIGN): Remove define_enum. - (copysignsf3): Use copysign instead of UNSPEC_COPYSIGN. - Allow const_double for operand 2. - -2024-09-13 Georg-Johann Lay - - * config/avr/avr.cc (avr_2word_insn_p): Return true for - transparent calls: When insn attribute "type" is "xcall" - or when "adjust_len" is "call". - -2024-09-13 Andrew Pinski - - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Instead - of just ignorning a NOP/PREDICT, skip over them before checking - the heuristics. - -2024-09-13 Georg-Johann Lay - - * config/avr/avr.cc: Use functions like avr_byte, - avr_word, avr_[u]int8/16 if convenient. - (avr_uint16): New function. - -2024-09-13 Tobias Burnus - - PR fortran/116661 - * omp-api.h (omp_get_fr_id_from_name, omp_get_name_from_fr_id): New - prototypes. - * omp-general.cc (omp_get_fr_id_from_name, omp_get_name_from_fr_id): - New. - -2024-09-13 Tobias Burnus - - * config/gcn/mkoffload.cc (read_file): Remove. - (process_asm): Do not add '#include' to generated C file. - (process_obj): Generate C file that uses #embed and use - __SIZE_TYPE__ and __UINTPTR_TYPE__ instead the #include-defined - size_t and uintptr. - (main): Update call to it; remove no longer needed file I/O. - -2024-09-13 Stefan Schulze Frielinghaus - - PR target/115860 - * config/s390/s390.cc (print_operand): Remove operand specifier - %V. - * config/s390/s390.md (UNSPEC_TF_TO_FPRX2): New. - * config/s390/vector.md (*tf_to_fprx2_0): Remove. - (*tf_to_fprx2_1): Remove. - (tf_to_fprx2): New. - -2024-09-13 Stefan Schulze Frielinghaus - - * config/s390/s390.cc (s390_mem_constraint): Check displacement - for AQ and AR constraints. - -2024-09-13 Georg-Johann Lay - - * config/avr/avr.cc (avr_chunk, avr_byte, avr_word) - (avr_int8, avr_uint8, avr_int16): New helper functions. - (avr_out_compare): Overhaul. - -2024-09-13 Georg-Johann Lay - - * config/avr/avr.cc (avr_out_compare): Tweak 32-bit EQ and NE - comparisons that can use SBIW for the hi16 part. - -2024-09-13 Georg-Johann Lay - - * config/avr/avr.cc (avr_init_machine_status): Move code to... - (avr_option_override) : ...lambda. - (avr_insn_has_reg_unused_note_p): Move up. - (_reg_unused_after, reg_unused_after): Move up. - (output_reload_in_const): Move up. - (avr_c_mode_for_floating_type): Move down. - -2024-09-13 Pan Li - - * match.pd: Remove the types_match check for signed SAT_ADD - case 1. - -2024-09-12 Alexandre Oliva - Olivier Hainque - - * doc/sourcebuild.texi (hostedlib): New effective target. - -2024-09-12 Uros Bizjak - - PR target/112600 - * config/i386/mmx.md (3): Rename - from *3. - -2024-09-12 Jakub Jelinek - - * doc/cpp.texi (Binary Resource Inclusion): Document gnu::base64 - parameter. - -2024-09-12 Richard Earnshaw - - * config/arm/arm.h (OPTION_DEFAULT_SPECS): Allow -mcpu and -march - to be unset. - (ARCH_CPU_CLEANUP_SPECS): Likewise - (DRIVER_SELF_SPECS): Add ARCH_CPU_CLEANUP_SPECS - * doc/invoke.texi (arm: -mcpu= and -march=): Document use of 'unset'. - -2024-09-12 Uros Bizjak - - * config/i386/i386.md (*insvti_lowpart_1): Use "o" constraint - instead of "m" for double-word mode memory operands. - -2024-09-12 Stefan Schulze Frielinghaus - - * config/s390/s390-protos.h (s390_gen_lowpart_subreg): Remove. - * config/s390/s390.cc (s390_gen_lowpart_subreg): Remove. - (s390_expand_insv): Use adjust_address() and emit a - strict_low_part only in case of a natural subreg. - * config/s390/s390.md: Use gen_lowpart() instead of - s390_gen_lowpart_subreg(). - -2024-09-12 Richard Biener - - * tree-vect-slp.cc (vect_slp_analyze_operations): When - doing loop analysis fail after the first failed SLP - instance. Only remove instances when doing BB vectorization. - * tree-vect-loop.cc (vect_analyze_loop_2): Check whether - vect_slp_analyze_operations failed instead of checking - the number of SLP instances remaining. - -2024-09-12 Jakub Jelinek - - * doc/cpp.texi (Binary Resource Inclusion): Document gnu::offset - #embed parameter. - -2024-09-12 Jakub Jelinek - - PR c/105863 - * doc/cppdiropts.texi (--embed-dir=): Document. - * doc/cpp.texi (Binary Resource Inclusion): New chapter. - (__has_embed): Document. - * doc/invoke.texi (Directory Options): Mention --embed-dir=. - * gcc.cc (cpp_unique_options): Add %{-embed*}. - * genmatch.cc (main): Adjust cpp_set_include_chains caller. - * incpath.h (enum incpath_kind): Add INC_EMBED. - * incpath.cc (merge_include_chains): Handle INC_EMBED. - (register_include_chains): Adjust cpp_set_include_chains caller. - -2024-09-12 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_2): On reassociation - chain length mismatch do not fail discovery of the node - but try without re-associating to compute a better matches[]. - Provide a reassociation failure hint in the dump. - (vect_slp_analyze_node_operations): Avoid stray failure - dumping. - (vectorizable_slp_permutation_1): Dump the address of the - SLP node representing the permutation. - -2024-09-12 Levy Hsu - - * config/i386/i386.cc (ix86_get_mask_mode): - Enable BFmode for targetm.vectorize.get_mask_mode with AVX10.2. - * config/i386/mmx.md (vec_cmpqi): - Implement vec_cmpv2bfqi and vec_cmpv4bfqi. - -2024-09-12 Bohan Lei - - * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info): - Delete vsetvl insn when `prev_info` is compatible - -2024-09-12 garthlei - - * config/riscv/riscv-vsetvl.cc: Use `dest_vl` for dest VL operand - -2024-09-11 Martin Jambor - - * ipa-cp.cc (propagate_vr_across_jump_function): Use - ipa_vr_supported_type_p instead of explicit check for integral and - pointer types. - -2024-09-11 Martin Jambor - - * ipa-cp.h (ipa_supports_p): Rename to ipa_vr_supported_type_p. - * ipa-cp.cc (ipa_vr_operation_and_type_effects): Adjust called - function name. - (propagate_vr_across_jump_function): Likewise. - * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Likewise. - (ipcp_get_parm_bits): Likewise. - -2024-09-11 Richard Earnshaw - - PR target/116597 - * config/arm/arm.cc (arm_function_ok_for_sibcall): Use the list of - actuals for the call, not the list of formals. - -2024-09-11 Richard Biener - - PR tree-optimization/116674 - * tree-vect-stmts.cc (vectorizable_simd_clone_call): Support - re-analysis. - -2024-09-11 Alex Coplan - - PR libstdc++/116140 - * lto-streamer-in.cc (input_struct_function_base): Stream in - fn->has_unroll. - * lto-streamer-out.cc (output_struct_function_base): Stream out - fn->has_unroll. - -2024-09-11 Tobias Burnus - - * omp-general.cc (omp_runtime_api_procname): Add - omp_get_interop_{int,name,ptr,rc_desc,str,type_desc} - and omp_get_num_interop_properties. - -2024-09-11 Pan Li - - * match.pd: Add case 2 for the signed .SAT_ADD consumed by - vect pattern. - * tree-vect-patterns.cc (gimple_signed_integer_sat_add): Add new - matching func decl for signed .SAT_ADD. - (vect_recog_sat_add_pattern): Add signed .SAT_ADD pattern match. - -2024-09-11 liuhongt - - * config/i386/x86-tune.def (X86_TUNE_FUSE_MOV_AND_ALU): Enable - for GNR and GNR-D. - -2024-09-10 Prathamesh Kulkarni - - PR target/96265 - * common.opt (foffload-abi-host-opts): New option. - * config/aarch64/aarch64.cc (aarch64_offload_options): Pass - -foffload-abi-host-opts. - * config/i386/i386-options.cc (ix86_offload_options): Likewise. - * config/rs6000/rs6000.cc (rs6000_offload_options): Likewise. - * config/nvptx/mkoffload.cc (offload_abi_host_opts): Define. - (compile_native): Append offload_abi_host_opts to argv_obstack. - (main): Handle option -foffload-abi-host-opts. - * config/gcn/mkoffload.cc (offload_abi_host_opts): Define. - (compile_native): Append offload_abi_host_opts to argv_obstack. - (main): Handle option -foffload-abi-host-opts. - * lto-wrapper.cc (merge_and_complain): Handle - -foffload-abi-host-opts. - (append_compiler_options): Likewise. - * opts.cc (common_handle_option): Likewise. - -2024-09-10 Richard Biener - - PR tree-optimization/116658 - * tree-vect-slp.cc (vect_is_slp_load_node): Make sure - node isn't a permute. - -2024-09-10 Pan Li - - * match.pd: Add the form 2 of signed .SAT_ADD matching. - -2024-09-10 Andrew Pinski - - * tree-ssa-phiopt.cc (execute_over_cond_phis): New template function, - moved the common parts from pass_phiopt::execute/pass_cselim::execute. - (pass_phiopt::execute): Move the functon specific parts of the loop - into an lamdba. - (pass_cselim::execute): Likewise. - -2024-09-10 Andrew Pinski - - PR tree-optimization/116643 - * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): s/PHI_RESULT/gimple_phi_result/. - (factor_out_conditional_operation): Likewise. - (minmax_replacement): Likewise. - (spaceship_replacement): Likewise. - (cond_store_replacement): Likewise. - (cond_if_else_store_replacement_1): Likewise. - -2024-09-10 liuhongt - - * config/i386/sse.md (*avx2_pcmp3_1): Don't force_reg - operands[3] when it's not const0_rtx. - -2024-09-09 David Malcolm - - * ipa-pure-const.cc: Replace include of "opts.h" with - "opts-diagnostic.h". - (suggest_attribute): Convert param from int to - diagnostic_option_id. - * lto-wrapper.cc (class lto_diagnostic_option_manager): Use - diagnostic_option_id rather than "int". - * opts-common.cc - (compiler_diagnostic_option_manager::option_enabled_p): Likewise. - * opts-diagnostic.h (class gcc_diagnostic_option_manager): - Likewise. - (class compiler_diagnostic_option_manager): Likewise. - * opts.cc (compiler_diagnostic_option_manager::make_option_name): - Likewise. - (gcc_diagnostic_option_manager::make_option_url): Likewise. - * substring-locations.cc - (format_string_diagnostic_t::emit_warning_n_va): Likewise. - (format_string_diagnostic_t::emit_warning_va): Likewise. - (format_string_diagnostic_t::emit_warning): Likewise. - (format_string_diagnostic_t::emit_warning_n): Likewise. - * substring-locations.h - (format_string_diagnostic_t::emit_warning_va): Likewise. - (format_string_diagnostic_t::emit_warning_n_va): Likewise. - (format_string_diagnostic_t::emit_warning): Likewise. - (format_string_diagnostic_t::emit_warning_n): Likewise. - -2024-09-09 David Malcolm - - * diagnostic-core.h (struct diagnostic_option_id): New. - (warning): Use it rather than "int" for param. - (warning_n): Likewise. - (warning_at): Likewise. - (warning_meta): Likewise. - (pedwarn): Likewise. - (permerror_opt): Likewise. - (emit_diagnostic): Likewise. - (emit_diagnostic_valist): Likewise. - (emit_diagnostic_valist_meta): Likewise. - * diagnostic-format-json.cc - (json_output_format::on_report_diagnostic): Update for renaming of - diagnostic_info field. - * diagnostic-format-sarif.cc (sarif_builder::make_result_object): - Likewise. - (make_reporting_descriptor_object_for_warning): Likewise. - * diagnostic-format-text.cc (print_option_information): Likewise. - * diagnostic-global-context.cc (emit_diagnostic): Use - "diagnostic_option_id option_id" rather than "int opt". - (emit_diagnostic_valist): Likewise. - (emit_diagnostic_valist_meta): Likewise. - (warning): Likewise. - (warning_at): Likewise. - (warning_meta): Likewise. - (warning_n): Likewise. - (pedwarn): Likewise. - (permerror_opt): Likewise. - * diagnostic.cc (diagnostic_set_info_translated): Update for - renaming of diagnostic_info field. - (diagnostic_option_classifier::classify_diagnostic): Use - "diagnostic_option_id option_id" rather than "int opt". - (update_effective_level_from_pragmas): Update for renaming of - diagnostic_info field. - (diagnostic_context::diagnostic_enabled): Likewise. - (diagnostic_context::warning_enabled_at): Use - "diagnostic_option_id option_id" rather than "int opt". - (diagnostic_context::diagnostic_impl): Likewise. - (diagnostic_context::diagnostic_n_impl): Likewise. - * diagnostic.h (diagnostic_info::diagnostic_info): Update for... - (diagnostic_info::option_index): Rename... - (diagnostic_info::option_id): ...to this. - (class diagnostic_option_manager): Use - "diagnostic_option_id option_id" rather than "int opt" for vfuncs. - (diagnostic_option_classifier): Likewise for member funcs. - (diagnostic_classification_change_t::option): Add comment. - (diagnostic_context::warning_enabled_at): Use - "diagnostic_option_id option_id" rather than "int option_index". - (diagnostic_context::option_unspecified_p): Likewise. - (diagnostic_context::classify_diagnostic): Likewise. - (diagnostic_context::option_enabled_p): Likewise. - (diagnostic_context::make_option_name): Likewise. - (diagnostic_context::make_option_url): Likewise. - (diagnostic_context::diagnostic_impl): Likewise. - (diagnostic_context::diagnostic_n_impl): Likewise. - (diagnostic_override_option_index): Rename... - (diagnostic_set_option_id): ...to this, and update for - diagnostic_info field renaming. - (diagnostic_classify_diagnostic): Use "diagnostic_option_id" - rather than "int". - (warning_enabled_at): Likewise. - (option_unspecified_p): Likewise. - -2024-09-09 David Malcolm - - * diagnostic.cc (diagnostic_context::initialize): Replace - m_options_callbacks with m_option_mgr. - (diagnostic_context::set_option_hooks): Replace with... - (diagnostic_context::set_option_manager): ...this. - * diagnostic.h (diagnostic_option_enabled_cb): Delete. - (diagnostic_make_option_name_cb): Delete. - (diagnostic_make_option_url_cb): Delete. - (class diagnostic_option_manager): New. - (diagnostic_manager::option_enabled_p): Convert from using - m_option_callbacks to m_option_mgr. - (diagnostic_manager::make_option_name): Likewise. - (diagnostic_manager::make_option_url): Likewise. - (diagnostic_manager::set_option_hooks): Replace with... - (diagnostic_manager::set_option_manager): ...this. - (diagnostic_manager::get_lang_mask): Update for field changes. - (diagnostic_manager::m_option_callbacks): Replace with... - (diagnostic_manager::m_option_mgr): ...this and... - (diagnostic_manager::m_lang_mask): ...this. - * lto-wrapper.cc (class lto_diagnostic_option_manager): New. - (main): Port from option hooks to diagnostic_option_manager. - * opts-common.cc: Include "opts-diagnostic.h". - (compiler_diagnostic_option_manager::option_enabled_p): New. - * opts-diagnostic.h (option_name): Drop decl. - (get_option_url): Drop decl. - (class gcc_diagnostic_option_manager): New. - (class compiler_diagnostic_option_manager): New. - * opts.cc (option_name): Convert to... - (compiler_diagnostic_option_manager::make_option_name): ...this. - (get_option_url): Convert to... - (gcc_diagnostic_option_manager::make_option_url): ...this. - * toplev.cc (general_init): Port from option hooks to - diagnostic_option_manager. - -2024-09-09 David Malcolm - - PR other/116613 - * attribs.cc (decls_mismatched_attributes): Rename - diagnostic_context's "printer" field to "m_printer". - (attr_access::array_as_string): Likewise. - * diagnostic-format-json.cc - (json_output_format::on_report_diagnostic): Likewise. - (diagnostic_output_format_init_json): Likewise. - * diagnostic-format-sarif.cc - (sarif_result::on_nested_diagnostic): Likewise. - (sarif_ice_notification): Likewise. - (sarif_builder::on_report_diagnostic): Likewise. - (sarif_builder::make_result_object): Likewise. - (sarif_builder::make_location_object): Likewise. - (sarif_builder::make_message_object_for_diagram): Likewise. - (diagnostic_output_format_init_sarif): Likewise. - * diagnostic-format-text.cc - (diagnostic_text_output_format::~diagnostic_text_output_format): - Likewise. - (diagnostic_text_output_format::on_report_diagnostic): Likewise. - (diagnostic_text_output_format::on_diagram): Likewise. - (diagnostic_text_output_format::print_any_cwe): Likewise. - (diagnostic_text_output_format::print_any_rules): Likewise. - (diagnostic_text_output_format::print_option_information): - Likewise. - * diagnostic-format.h (diagnostic_output_format::get_printer): - New. - * diagnostic-global-context.cc (verbatim): Rename - diagnostic_context's "printer" field to "m_printer". - * diagnostic-path.cc (path_label::get_text): Likewise. - (print_path_summary_as_text): Likewise. - (diagnostic_context::print_path): Likewise. - (selftest::test_empty_path): Likewise. - (selftest::test_intraprocedural_path): Likewise. - (selftest::test_interprocedural_path_1): Likewise. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - (selftest::test_control_flow_1): Likewise. - (selftest::test_control_flow_2): Likewise. - (selftest::test_control_flow_3): Likewise. - (assert_cfg_edge_path_streq): Likewise. - (selftest::test_control_flow_5): Likewise. - (selftest::test_control_flow_6): Likewise. - * diagnostic-show-locus.cc (layout::layout): Likewise. - (selftest::test_layout_x_offset_display_utf8): Likewise. - (selftest::test_layout_x_offset_display_tab): Likewise. - (selftest::test_diagnostic_show_locus_unknown_location): Likewise. - (selftest::test_one_liner_simple_caret): Likewise. - (selftest::test_one_liner_no_column): Likewise. - (selftest::test_one_liner_caret_and_range): Likewise. - (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. - (selftest::test_one_liner_fixit_insert_before): Likewise. - (selftest::test_one_liner_fixit_insert_after): Likewise. - (selftest::test_one_liner_fixit_remove): Likewise. - (selftest::test_one_liner_fixit_replace): Likewise. - (selftest::test_one_liner_fixit_replace_non_equal_range): - Likewise. - (selftest::test_one_liner_fixit_replace_equal_secondary_range): - Likewise. - (selftest::test_one_liner_fixit_validation_adhoc_locations): - Likewise. - (selftest::test_one_liner_many_fixits_1): Likewise. - (selftest::test_one_liner_many_fixits_2): Likewise. - (selftest::test_one_liner_labels): Likewise. - (selftest::test_one_liner_simple_caret_utf8): Likewise. - (selftest::test_one_liner_caret_and_range_utf8): Likewise. - (selftest::test_one_liner_multiple_carets_and_ranges_utf8): - Likewise. - (selftest::test_one_liner_fixit_insert_before_utf8): Likewise. - (selftest::test_one_liner_fixit_insert_after_utf8): Likewise. - (selftest::test_one_liner_fixit_remove_utf8): Likewise. - (selftest::test_one_liner_fixit_replace_utf8): Likewise. - (selftest::test_one_liner_fixit_replace_non_equal_range_utf8): - Likewise. - (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8): - Likewise. - (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8): - Likewise. - (selftest::test_one_liner_many_fixits_1_utf8): Likewise. - (selftest::test_one_liner_many_fixits_2_utf8): Likewise. - (selftest::test_one_liner_labels_utf8): Likewise. - (selftest::test_one_liner_colorized_utf8): Likewise. - (selftest::test_add_location_if_nearby): Likewise. - (selftest::test_diagnostic_show_locus_fixit_lines): Likewise. - (selftest::test_overlapped_fixit_printing): Likewise. - (selftest::test_overlapped_fixit_printing_utf8): Likewise. - (selftest::test_overlapped_fixit_printing_2): Likewise. - (selftest::test_fixit_insert_containing_newline): Likewise. - (selftest::test_fixit_insert_containing_newline_2): Likewise. - (selftest::test_fixit_replace_containing_newline): Likewise. - (selftest::test_fixit_deletion_affecting_newline): Likewise. - (selftest::test_tab_expansion): Likewise. - (selftest::test_escaping_bytes_1): Likewise. - (selftest::test_escaping_bytes_2): Likewise. - (selftest::test_line_numbers_multiline_range): Likewise. - * diagnostic.cc (file_name_as_prefix): Likewise. - (diagnostic_set_caret_max_width): Likewise. - (diagnostic_context::initialize): Likewise. - (diagnostic_context::color_init): Likewise. - (diagnostic_context::urls_init): Likewise. - (diagnostic_context::finish): Likewise. - (diagnostic_context::get_location_text): Likewise. - (diagnostic_build_prefix): Likewise. - (diagnostic_context::report_current_module): Likewise. - (default_diagnostic_starter): Likewise. - (default_diagnostic_start_span_fn): Likewise. - (default_diagnostic_finalizer): Likewise. - (diagnostic_context::report_diagnostic): Likewise. - (diagnostic_append_note): Likewise. - (diagnostic_context::error_recursion): Likewise. - (fancy_abort): Likewise. - * diagnostic.h (diagnostic_context::set_show_highlight_colors): - Likewise. - (diagnostic_context::printer): Rename to... - (diagnostic_context::m_printer): ...this. - (diagnostic_format_decoder): Rename diagnostic_context's "printer" - field to "m_printer". - (diagnostic_prefixing_rule): Likewise. - (diagnostic_ready_p): Likewise. - * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): - Likewise. - * langhooks.cc (lhd_print_error_function): Likewise. - * lto-wrapper.cc (print_lto_docs_link): Likewise. - * opts-global.cc (init_options_once): Likewise. - * opts.cc (common_handle_option): Likewise. - * simple-diagnostic-path.cc (simple_diagnostic_path_cc_tests): - Likewise. - * text-art/dump.h (dump_to_file): Likewise. - * toplev.cc (announce_function): Likewise. - (toplev::main): Likewise. - * tree-diagnostic.cc (default_tree_diagnostic_starter): Likewise. - * tree.cc (escaped_string::escape): Likewise. - (selftest::test_escaped_strings): Likewise. - -2024-09-09 David Malcolm - - PR other/116603 - * diagnostic-format-sarif.cc (SARIF_SCHEMA): Update URL. - (sarif_builder::maybe_make_region_object): Don't create regions - with startLine <= 0. - (sarif_builder::maybe_make_region_object_for_context): Likewise. - -2024-09-09 Uros Bizjak - - * config/i386/i386.md (*insvdi_lowpart_1): Use "o" constraint - instead of "m" for double-word mode memory operands. - (*add3_doubleword_zext): Ditto. - (*addv4_doubleword_1): Use "jO" constraint instead of "jM" - for double-word mode memory operands. - -2024-09-09 Andrew Pinski - - PR middle-end/90693 - * internal-fn.cc (expand_POPCOUNT): Handle the second argument - being `-1` for `<= 1`. - * tree-ssa-math-opts.cc (match_single_bit_test): Handle LE/GT - cases. - (math_opts_dom_walker::after_dom_children): Call match_single_bit_test - for LE_EXPR/GT_EXPR also. - -2024-09-09 John David Anglin - - * config/pa/pa.cc (pa_legitimate_address_p): Don't - canonicalize operand order of scaled index addresses. - -2024-09-09 Richard Biener - - PR tree-optimization/116514 - * tree-ssa-ccp.cc (bit_value_binop): Handle EXACT_DIV_EXPR - like TRUNC_DIV_EXPR. Handle exact division of a signed value - by a power-of-two like a shift. Handle unsigned division by - a power-of-two like a shift. - Handle unsigned TRUNC_MOD_EXPR by power-of-two, handle signed - TRUNC_MOD_EXPR by power-of-two if the result is zero. - -2024-09-09 Richard Biener - - PR tree-optimization/116647 - * tree-vect-loop.cc (vect_is_simple_reduction): Add missing - check to double reduction detection. - -2024-09-09 Andrew Pinski - - PR tree-optimization/116601 - * gimple-fold.cc (optimize_memcpy_to_memset): Move - from tree-ssa-ccp.cc and rename. Also return true - if the optimization happened. - (gimple_fold_builtin_memory_op): Call - optimize_memcpy_to_memset. - (fold_stmt_1): Call optimize_memcpy_to_memset for - load/store copies. - * tree-ssa-ccp.cc (optimize_memcpy): Delete. - (pass_fold_builtins::execute): Remove code that - calls optimize_memcpy. - -2024-09-09 Andrew Pinski - - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Move the has_single_use - checks much earlier. Remove redundant check for gimple_assign_cast_p. - Change around the check if the integral consts fits into the new type. - -2024-09-09 Haochen Jiang - - PR target/116617 - * doc/invoke.texi: Add meteorlake, raptorlake and lunarlake. - -2024-09-08 H.J. Lu - - PR target/116621 - * config/i386/i386.cc (ix86_gimplify_va_arg): Don't use temp for - a PARALLEL BLKmode container of an EXPR_LIST expression in a - TImode register. - -2024-09-08 Jørgen Kvalsvik - - * gcov.cc (release_structures): Release source_lines. - (slurp): New function. - (output_lines): Read sources with slurp. - -2024-09-07 Andrew Pinski - - * gimple-ssa-split-paths.cc (is_feasible_trace): Fix wording - on the print. - -2024-09-07 Andrew MacLeod - - PR tree-optimization/116588 - * tree-vrp.cc (execute_fast_vrp): Start with all edges executable. - -2024-09-07 Zhao Dingyi - - * config/riscv/xiangshan.md: Add atomic, trap, fcvt_i2f, fcvt_f2i. - -2024-09-07 Jin Ma - - PR target/116592 - * config/riscv/thead.cc (th_asm_output_opcode): Change '0' to - "zero" - -2024-09-06 Carl Love - - * config/rs6000/rs6000-overload.def (vec_test_lsbb_all_ones, - vec_test_lsbb_all_zeros): Add built-in instances for vector signed - char and vector bool char. - * doc/extend.texi (vec_test_lsbb_all_ones, - vec_test_lsbb_all_zeros): Add documentation for the - existing built-ins. - -2024-09-06 Tamar Christina - - PR tree-optimization/116628 - * tree-vect-patterns.cc (vect_recog_cond_store_pattern): Add SSA_NAME - check on expression. - -2024-09-06 Andrew Pinski - - PR target/116598 - * config/aarch64/aarch64.cc (aarch64_lookup_shared_state_flags): Use - is_attribute_namespace_p and get_attribute_name instead of manually grabbing - the namespace and name of the attribute. - -2024-09-06 Martin Jambor - - * passes.def: Move pass_ipa_cdtor_merge before pass_ipa_cp and - pass_ipa_sra. - -2024-09-06 Martin Jambor - - PR ipa/115815 - * cgraph.cc (cgraph_node_cannot_be_local_p_1): Also check - DECL_STATIC_CONSTRUCTOR and DECL_STATIC_DESTRUCTOR. - * ipa-visibility.cc (non_local_p): Likewise. - (cgraph_node::local_p): Delete extraneous line of tabs. - -2024-09-06 Richard Biener - - * tree-vect-slp.cc (vect_analyze_slp): Also handle discovery - for double reductions. - -2024-09-06 Richard Biener - - * tree-vect-slp.cc (vect_analyze_slp): Perform single-lane - loop SLP discovery for non-grouped stores. Move check on the root - for re-doing SLP analysis with a single lane for load/store-lanes - earlier and make sure we are dealing with a grouped access. - * tree-vect-stmts.cc (vectorizable_store): Always set - vec_num for SLP. - -2024-09-06 Georg-Johann Lay - - * config/avr/avr.h: Remove "Atmel" from header comment. - * config/avr/avr.cc: Same. - * config/avr/avr.md: Same. - * config/avr/avr.opt: Same. - * config/avr/avr-dimode.md: Same. - * config/avr/avr-fixed.md: Same. - * config/avr/constraints.md: Same. - * config/avr/predicates.md: Same. - * config/avr/avr-log.cc: Same. - * config/avr/avrlibc.h: Same. - * config/avr/specs.h: Same. - * common/config/avr/avr-common.cc: Same. - * doc/install.texi: Same. - * config/avr/avr-arch.h: Adjust header comment. - * config/avr/avr-c.cc: Same. - * config/avr/avr-mcus.def: Same. - * config/avr/avr-modes.def: Same. - * config/avr/avr-passes.cc: Same. - * config/avr/avr-passes.def: Same. - * config/avr/avr-protos.h: Same. - * config/avr/driver-avr.cc: Same. - * config/avr/elf.h: Same. - * config/avr/gen-avr-mmcu-specs.cc: Same. - * config/avr/gen-avr-mmcu-texi.cc: Same. - -2024-09-06 Richard Biener - - PR tree-optimization/116610 - * tree-vect-loop.cc (vectorizable_induction): Use MINUS_EXPR - to apply a mask peeling adjustment. - -2024-09-06 Richard Biener - - PR tree-optimization/116609 - * tree-vect-loop.cc (vectorizable_live_operation_1): Support - partial vectors for single-lane SLP. - -2024-09-06 Raphael Moreira Zinsly - - * config/riscv/riscv.cc (riscv_build_integer): Detect constants - were the higher half is the lower half inverted. - -2024-09-06 Raphael Moreira Zinsly - - * config/riscv/riscv.cc (riscv_build_integer): Detect new case - of constants that can be improved. - (riscv_move_integer): Add synthesys for concatening constants - without Zbkb. - -2024-09-06 Pan Li - - * match.pd: Add int_fits_type_p check for .SAT_SUB imm operand. - -2024-09-06 Pan Li - - * match.pd: Add int_fits_type_p check for .SAT_SUB imm operand. - -2024-09-06 YunQiang Su - - * common/config/riscv/riscv-common.cc(riscv_select_multilib_by_abi): - Fix out of index problem. - -2024-09-06 Jason Merrill - - PR c++/46457 - PR c++/81665 - * doc/extend.texi: Document flag_enum attribute. - * doc/invoke.texi: Mention flag_enum in -Wswitch. - -2024-09-06 liuhongt - - PR target/115517 - * config/i386/sse.md (*avx2_pcmp3_1): Change predicate - of operands[1] and operands[2] from nonimmdiate_operand to - nonimm_or_0_operand. - -2024-09-05 Jeff Law - - * config/riscv/riscv.cc (riscv_expand_int_scc): For rv64, use a DI - temporary for the output and a promoted subreg to extract it into SI - arget. - (riscv_noce_conversion_profitable_p): Recognize new output from - sCC expansion too. - -2024-09-05 Marek Polacek - - * doc/invoke.texi: Remove an extra char in @item sme2. - -2024-09-05 Prathamesh Kulkarni - - * gimplify.cc (omp_add_variable): Check if decl size is not poly_int_tree_p. - (gimplify_adjust_omp_clauses): Likewise. - * omp-low.cc (scan_sharing_clauses): Likewise. - (lower_omp_target): Likewise. - -2024-09-05 Thomas Schwinge - - PR target/104957 - * config/nvptx/nvptx.cc (write_fn_proto_1): Revert 2022-03-22 - change; 'write_fn_marker' also for alias DECL. - (nvptx_asm_output_def_from_decls): 'write_fn_marker' for alias - DEF. - -2024-09-05 Thomas Schwinge - - * doc/sourcebuild.texi (Effective-Target Keywords): Document - 'nvptx_default_ptx_isa_version_at_least_6_0', - 'nvptx_runtime_alias_ptx'. - (Add Options): Document 'nvptx_alias_ptx'. - -2024-09-05 Tamar Christina - - * tree-vect-patterns.cc (vect_recog_cond_store_pattern): Use pattern - statement. - -2024-09-05 Tamar Christina - - * doc/invoke.texi: Remove duplicate armv9-a mention. - -2024-09-05 Jakub Jelinek - - * tree-vrp.cc (pass_vrp::execute): Start diagnostics with - lowercase u rather than capital U, use semicolon instead of dot. - -2024-09-05 YunQiang Su - - * common/config/riscv/riscv-common.cc(riscv_select_multilib_by_abi): - look up reversely as the fallback path is listed as the 1st one. - -2024-09-05 Richard Biener - - * tree-vect-slp.cc (vect_analyze_slp): Analyze SLP for live - but otherwise unused defs. - -2024-09-05 Thomas Schwinge - - * gen-pass-instances.awk: Handle 'PUSH_INSERT_PASSES_WITHIN'. - * pass_manager.h (PUSH_INSERT_PASSES_WITHIN): Adjust. - * passes.cc (PUSH_INSERT_PASSES_WITHIN): Likewise. - -2024-09-05 Levy Hsu - - * config/i386/mmx.md (TARGET_MMX_WITH_SSE): New mode iterator VBF_32_64 - (fma4): define_expand for V2BF/V4BF fma4. - (fnma4): define_expand for V2BF/V4BF fnma4. - (fms4): define_expand for V2BF/V4BF fms4. - (fnms4): define_expand for V2BF/V4BF fnms4. - -2024-09-05 Hu, Lin1 - - * match.pd: Fix match for (bit_and (ordered @0 @1) (ne @0 @1)). - -2024-09-05 Levy Hsu - - * config/i386/i386.cc (ix86_build_const_vector): Add V2BF/V4BF. - (ix86_build_signbit_mask): Add V2BF/V4BF. - * config/i386/mmx.md: Modified supported logic op to use VHBF_32_64. - -2024-09-05 Levy Hsu - - * config/i386/i386.cc (ix86_preferred_simd_mode): Add BFmode Support. - -2024-09-04 Raphael Moreira Zinsly - - * config/riscv/riscv.cc (riscv_split_integer_cost): Adjust the - cost of negative repeating constants. - (riscv_split_integer): Handle negative repeating constants. - -2024-09-04 Tom Tromey - - * dwarf2out.cc (modified_type_die): Check DECL_NAMELESS. - -2024-09-04 Arsen Arsenović - - PR c++/106973 - * internal-fn.def (CO_YIELD): Mark as ECF_LEAF. - -2024-09-04 Andrew Pinski - - * tree-object-size.cc (object_sizes_execute): Mark lhs for maybe dceing - if doing a propagate. Call simple_dce_from_worklist. - -2024-09-04 Thomas Schwinge - - * config/nvptx/gen-opt.sh: Use 'enum ptx_isa' instead of 'int'. - * config/nvptx/nvptx-gen.opt: Regenerate. - * config/nvptx/nvptx.opt: Use 'enum ptx_version' instead of 'int'. - * config/nvptx/nvptx-opts.h (enum ptx_isa): Add 'PTX_ISA_unset'. - (enum ptx_version): Add 'PTX_VERSION_unset'. - * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Adjust. - * config/nvptx/nvptx.cc (default_ptx_version_option) - (handle_ptx_version_option, nvptx_option_override) - (nvptx_file_start): Likewise. - -2024-09-04 Frederik Harwath - Thomas Schwinge - - * predict.cc (pass_profile::execute): Fix dump message. - -2024-09-04 Frederik Harwath - - * tree-cfg.h (gimple_debug_cfg): Change argument type from int - to dump_flags_t. - -2024-09-04 Thomas Schwinge - - * passes.cc: Document 'pass_postreload' vs. 'pass_late_compilation'. - * passes.def: Likewise. - -2024-09-04 Richard Biener - - * tree-vect-slp.cc (vect_lower_load_permutations): Also - process single-use grouped loads. - Avoid lowering contiguous aligned power-of-two sized - chunks, those are better handled by the vector size - specific SLP code generation. - * tree-vect-stmts.cc (get_group_load_store_type): Drop - the unrelated requirement of a load permutation for the - single-element interleaving limit. - -2024-09-04 Jan Hubicka - - * config/i386/x86-tune-costs.h (znver5_cost): Update instruction - costs. - -2024-09-04 Andrew Pinski - - * expr.cc (expand_expr_divmod): Add dump of the two costs for - positive division. - -2024-09-04 Hans-Peter Nilsson - - * config/cris/cris.md (lra_szext_decomposed_indir_plus): New - peephole2 pattern. - -2024-09-04 Pan Li - - * config/riscv/riscv.cc (riscv_expand_usadd): Zero extend - the second operand of usadd as the first operand does. - * config/riscv/riscv.md (usadd3): Allow imm operand for - scalar usadd pattern. - -2024-09-03 Andrew Pinski - - PR tree-optimization/112402 - * gimple-ssa-split-paths.cc (poor_ifcvt_pred): New function. - (is_feasible_trace): Remove old heurstics for ifcvt cases. - For num_stmts <=1 for both pred check poor_ifcvt_pred on both - pred. - -2024-09-03 Andrew Pinski - - * gimple-ssa-split-paths.cc (is_feasible_trace): Move - check for # of statments in join earlier and add a - debug print. - -2024-09-03 Qing Zhao - - * doc/extend.texi: Explicitly mentions counted_by is available - only in C for now. - -2024-09-03 David Malcolm - - * pretty-print-markup.h (pp_markup::context::context): Drop - params "buf" and "chunk_idx", initializing m_buf from pp. - (pp_markup::context::m_chunk_idx): Drop field. - * pretty-print.cc (pretty_printer::format): Convert param - from a text_info * to a text_info &. Split out phase 1 - and phase 2 into subroutines... - (format_phase_1): New, from pretty_printer::format. - (format_phase_2): Likewise. - * pretty-print.h (pretty_printer::format): Convert param - from a text_info * to a text_info &. - (pp_format): Update for above change. Assert that text_info is - non-null. - -2024-09-03 David Malcolm - - * pretty-print-format-impl.h (pp_formatted_chunks::get_prev): New - accessor. - * pretty-print.cc (selftest::push_pp_format): New. - (ASSERT_TEXT_TOKEN): New macro. - (selftest::test_pp_format_stack): New test. - (selftest::pretty_print_cc_tests): New. - -2024-09-03 David Malcolm - - * diagnostic.cc (diagnostic_set_caret_max_width): Prefix all - output_buffer fields with "m_". - * dumpfile.cc (emit_any_pending_textual_chunks): Likewise. - (emit_any_pending_textual_chunks): Likewise. - * gimple-pretty-print.cc (gimple_dump_bb_buff): Likewise. - * json.cc (value::dump): Likewise. - * pretty-print-format-impl.h (class chunk_info): Rename to... - (class pp_formatted_chunks): ...this. Add friend - class output_buffer. Update comment near end of decl to show - the pp_formatted_chunks instance on the chunk_obstack. - (pp_formatted_chunks::pop_from_output_buffer): Delete decl. - (pp_formatted_chunks::on_begin_quote): Delete decl that should - have been removed in r15-3311-ge31b6176996567. - (pp_formatted_chunks::on_end_quote): Likewise. - (pp_formatted_chunks::m_prev): Update for renaming. - * pretty-print.cc (output_buffer::output_buffer): Prefix all - fields with "m_". Rename "cur_chunk_array" to - "m_cur_formatted_chunks". - (output_buffer::~output_buffer): Prefix all fields with "m_". - (output_buffer::push_formatted_chunks): New. - (output_buffer::pop_formatted_chunks): New. - (pp_write_text_to_stream): Prefix all output_buffer fields with - "m_". - (pp_write_text_as_dot_label_to_stream): Likewise. - (pp_write_text_as_html_like_dot_to_stream): Likewise. - (chunk_info::append_formatted_chunk): Rename to... - (pp_formatted_chunks::append_formatted_chunk): ...this. - (chunk_info::pop_from_output_buffer): Delete. - (pretty_printer::format): Update leading comment to mention - pushing pp_formatted_chunks, and to reflect changes in - r15-3311-ge31b6176996567. Prefix all output_buffer fields with - "m_". - (pp_output_formatted_text): Update leading comment to mention - popping a pp_formatted_chunks, and to reflect the changes in - r15-3311-ge31b6176996567. Prefix all output_buffer fields with - "m_" and rename "cur_chunk_array" to "m_cur_formatted_chunks". - Replace call to chunk_info::pop_from_output_buffer with a call to - output_buffer::pop_formatted_chunks. - (pp_flush): Prefix all output_buffer fields with "m_". - (pp_really_flush): Likewise. - (pp_clear_output_area): Likewise. - (pp_append_text): Likewise. - (pretty_printer::remaining_character_count_for_line): Likewise. - (pp_newline): Likewise. - (pp_character): Likewise. - (pp_markup::context::push_back_any_text): Likewise. - * pretty-print.h (class chunk_info): Rename to... - (class pp_formatted_chunks): ...this. - (class output_buffer): Delete unimplemented rule-of-5 members. - (output_buffer::push_formatted_chunks): New decl. - (output_buffer::pop_formatted_chunks): New decl. - (output_buffer::formatted_obstack): Rename to... - (output_buffer::m_formatted_obstack): ...this. - (output_buffer::chunk_obstack): Rename to... - (output_buffer::m_chunk_obstack): ...this. - (output_buffer::obstack): Rename to... - (output_buffer::m_obstack): ...this. - (output_buffer::cur_chunk_array): Rename to... - (output_buffer::m_cur_formatted_chunks): ...this. - (output_buffer::stream): Rename to... - (output_buffer::m_stream): ...this. - (output_buffer::line_length): Rename to... - (output_buffer::m_line_length): ...this. - (output_buffer::digit_buffer): Rename to... - (output_buffer::m_digit_buffer): ...this. - (output_buffer::flush_p): Rename to... - (output_buffer::m_flush_p): ...this. - (output_buffer_formatted_text): Prefix all output_buffer fields - with "m_". - (output_buffer_append_r): Likewise. - (output_buffer_last_position_in_text): Likewise. - (pretty_printer::set_output_stream): Likewise. - (pp_scalar): Likewise. - (pp_wide_int): Likewise. - * tree-pretty-print.cc (dump_generic_node): Likewise. - (dump_generic_node): Likewise. - (pp_double_int): Likewise. - -2024-09-03 Jan Hubicka - - * config/i386/i386.cc (ix86_reassociation_width): Update for Znver5. - * config/i386/x86-tune-costs.h (znver5_costs): Update reassociation - widths. - -2024-09-03 Jeff Law - - * J: Drop file that should not have been committed - -2024-09-03 Jan Hubicka - - * config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix - typo. - -2024-09-03 Richard Biener - - * tree-vect-slp.cc (vect_print_slp_tree): Annotate load - and store-lanes nodes. - -2024-09-03 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Only disable - peeling for gaps by using smaller vectors when not using - load-lanes. - -2024-09-03 Jan Hubicka - - * config/i386/i386.h (TARGET_FUSE_MOV_AND_ALU): New tune. - * config/i386/x86-tune-sched.cc (ix86_issue_rate): Updat for znver5. - (ix86_adjust_cost): Add TODO about znver5 memory latency. - (ix86_fuse_mov_alu_p): New. - (ix86_macro_fusion_pair_p): Use it. - * config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add ZNVER5. - (X86_TUNE_FUSE_MOV_AND_ALU): New tune; - -2024-09-03 Jan Hubicka - - * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable for - ZNVER5. - (X86_TUNE_USE_SCATTER_2PARTS): Disable for ZNVER5. - (X86_TUNE_USE_GATHER_4PARTS): Disable for ZNVER5. - (X86_TUNE_USE_SCATTER_4PARTS): Disable for ZNVER5. - (X86_TUNE_USE_GATHER_8PARTS): Disable for ZNVER5. - (X86_TUNE_USE_SCATTER_8PARTS): Disable for ZNVER5. - -2024-09-03 H.J. Lu - - PR ipa/116410 - * ipa-modref.cc (analyze_parms): Always analyze function parameter - for LTO. - -2024-09-03 Jeff Law - - PR target/115921 - * config/riscv/riscv.md (reassociate bitwise ops): Tighten test for - cases we do not want reassociate. - * J: New file. - -2024-09-03 Jan Hubicka - - * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): Enable for - znver5. - (X86_TUNE_AVOID_256FMA_CHAINS): Likewise. - (X86_TUNE_AVOID_512FMA_CHAINS): Likewise. - -2024-09-03 Tobias Burnus - - PR lto/116535 - * lto-cgraph.cc (output_offload_tables): Remove offload_ frees. - * lto-streamer-out.cc (lto_output): Make call to it depend on - lto_get_out_decl_state ()->output_offload_tables_p. - * lto-streamer.h (struct lto_out_decl_state): Add - output_offload_tables_p field. - * tree-pass.h (ipa_write_optimization_summaries): Add bool argument. - * passes.cc (ipa_write_summaries_1): Add bool - output_offload_tables_p arg. - (ipa_write_summaries): Update call. - (ipa_write_optimization_summaries): Accept output_offload_tables_p. - -2024-09-03 Richard Biener - - PR tree-optimization/116575 - * tree-vect-slp.cc (vect_analyze_slp): Properly compute - the mask argument for vect_load/store_lanes_supported. - When the load is masked for now avoid rediscovery. - -2024-09-03 Haochen Jiang - - * config/i386/avx512fp16intrin.h - (_mm512_mask_fpclass_ph_mask): Correct mask type to __mmask32. - (_mm512_fpclass_ph_mask): Ditto. - -2024-09-03 Richard Biener - - * fold-const.cc (poly_int_binop): Move assert on - NUM_POLY_INT_COEFFS after INTEGER_CST processing. - -2024-09-03 Jakub Jelinek - - PR tree-optimization/116501 - * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow): - In the last_ovf case, use build_zero_cst operand not just when - TYPE_UNSIGNED (typeN), but also when precN >= 0. - -2024-09-03 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold): - Try constant folding. - -2024-09-03 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold): - Try constant folding. - * config/aarch64/aarch64-sve-builtins.h: Declare - gimple_folder::fold_const_binary. - * config/aarch64/aarch64-sve-builtins.cc (aarch64_const_binop): - New function to fold binary SVE intrinsics without overflow. - (gimple_folder::fold_const_binary): New helper function for - constant folding of SVE intrinsics. - -2024-09-03 Jennifer Schmitz - - * fold-const.h: Declare vector_const_binop. - * fold-const.cc (const_binop): Remove cases for vector constants. - (vector_const_binop): New function that folds vector constants - element-wise. - (int_const_binop): Remove call to wide_int_binop. - (poly_int_binop): Add call to wide_int_binop. - -2024-09-03 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_1): Handle mixing - all of handled components besides ARRAY_RANGE_REF, drop - handling of INDIRECT_REF. - -2024-09-03 Richard Biener - - * tree-vect-stmts.cc (vect_get_vector_types_for_stmt): - Handle all internal_store_fn_p the same. Remove special-casing - for the scalar_type of IFN_MASK_STORE. - -2024-09-03 Levy Hsu - - * config/i386/mmx.md (3): New define_expand for V2BF/V4BFsmaxmin - -2024-09-03 Levy Hsu - - * config/i386/mmx.md (VBF_32_64): New mode iterator for partial vectorized V2BF/V4BF. - (3): New define_expand for plusminusmultdiv. - (sqrt2): New define_expand for sqrt. - -2024-09-03 Pan Li - - * config/riscv/riscv-protos.h (riscv_expand_ssadd): Add new func - decl for expanding ssadd. - * config/riscv/riscv.cc (riscv_gen_sign_max_cst): Add new func - impl to gen the max int rtx. - (riscv_expand_ssadd): Add new func impl to expand the ssadd. - * config/riscv/riscv.md (ssadd3): Add new pattern for - signed integer .SAT_ADD. - -2024-09-03 YunQiang Su - - * config/mips/mips-msa.md: (MSA_NO_HADD): we have HADD for - S8/U8/S16/U16/S32/U32 only. - (reduc_smin_scal_): New define pattern. - (reduc_smax_scal_): Ditto. - (reduc_umin_scal_): Ditto. - (reduc_umax_scal_): Ditto. - (reduc_plus_scal_): Ditto. - (reduc_plus_scal_v4si): Ditto. - (reduc_plus_scal_v8hi): Ditto. - (reduc_plus_scal_v16qi): Ditto. - (reduc__scal_): Ditto. - * config/mips/mips-protos.h: New function mips_expand_msa_reduc. - * config/mips/mips.cc: New function mips_expand_msa_reduc. - * config/mips/mips.md: Define any_bitwise iterator. - -2024-09-02 Alexandre Oliva - - PR d/115295 - * doc/sourcebuild.texi (dg-additional-sources): Add linkonly. - -2024-09-02 Andrew Stubbs - - * config/gcn/gcn-opts.h (TARGET_GCN5_PLUS): Delete. - (TARGET_GLOBAL_ADDRSPACE): Delete. - (TARGET_FLAT_OFFSETS): Delete. - (TARGET_EXPLICIT_CARRY): Delete. - (TARGET_MULTIPLY_IMMEDIATE): Delete. - * config/gcn/gcn-valu.md (*mov): Rename "gcn_version" to "cdna". - (*mov_4reg): Likewise. - (@mov_sgprbase): Likwise. - (gather_insn_1offset): Likewise. - (gather_insn_1offset_ds): Likewise. - (gather_insn_2offsets): Likewise. - (scatter_insn_1offset): Likewise. - (scatter_insn_1offset_ds): Likewise. - (scatter_insn_2offsets): Likewise. - (gather_insn_1offset): Remove TARGET_FLAT_OFFSETS - conditionals. - (scatter_insn_1offset): Likewise. - (scatter_insn_1offset): Likewise. - (add3): Use "_co" instead of "%^". - (add3_dup): Likewise. - (add3_vcc): Likewise. - (add3_vcc_dup): Likewise. - (addc3): Likewise. - (sub3): Likewise. - (sub3_vcc): Likewise. - (subc3): Likewise. - (*plus_carry_dpp_shr_): Likewise. - (*plus_carry_in_dpp_shr_): Likewise. - * config/gcn/gcn.cc (gcn_flat_address_p): Remove TARGET_FLAT_OFFSETS - conditionals. - (gcn_addr_space_legitimate_address_p): Likewise. - (gcn_addr_space_legitimize_address): Likewise. - (gcn_expand_scalar_to_vector_address): Likewise. - (print_operand_address): Likewise, and TARGET_GLOBAL_ADDRSPACE also. - (print_operand): Remove "%^" operand code. - Remove TARGET_GLOBAL_ADDRSPACE assertion. - * config/gcn/gcn.h (STACK_ADDR_SPACE): Remove GCN5 conditional. - * config/gcn/gcn.md (gcn_version): Rename attribute ... - (cdna): ... to this, and remove the gcn3 and gcn5 values. - (enabled): Replace old "gcn_version" logic with new "cdna" logic. - (*mov_insn): Rename "gcn_version" to "cdna". - (*movti_insn): Likewise. - (addsi3): Use "_co" instead of "%^". - (addsi3_scalar_carry): Likewise. - (addsi3_scalar_carry_cst): Likewise. - (addcsi3_scalar): Likewise. - (addcsi3_scalar_zero): Likewise. - (addptrdi3): Likewise. - (subsi3): Likewise. - (mulsi3_highpart): Remove TARGET_MULTIPLY_IMMEDIATE conditions. - (mulsi3_highpart_reg): Remove "gcn_version" attribute. - (muldi3): Likewise. - (atomic_fetch_): Likewise. - (atomic_): Likewise. - (sync_compare_and_swap_insn): Likewise. - (atomic_load): Likewise. - (atomic_store): Likewise. - (atomic_exchange): Likewise. - (mulsi3_highpart_imm): Remove both TARGET_MULTIPLY_IMMEDIATE and - "gcn_version". - (mulsidi3): Likewise. - (mulsidi3_imm): Likewise. - -2024-09-02 Andrew Stubbs - - * config/gcn/gcn-opts.h (enum gcn_isa): Delete ISA_GCN3. - (TARGET_GCN3): Delete. - (TARGET_GCN3_PLUS): Delete. - (TARGET_M0_LDS_LIMIT): Delete. - * config/gcn/gcn-valu.md - (gather_insn_1offset): Remove TARGET_GCN3 from conditions. - (*_dpp_shr_): Likewise. - * config/gcn/gcn.cc (enum gcn_isa): Change default to ISA_GCN5. - (gcn_expand_prologue): Remove TARGET_M0_LDS_LIMIT feature. - (gcn_expand_reduc_scalar): Remove TARGET_GCN3 conditions. - * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Remove TARGET_GCN3. - -2024-09-02 Andrew Stubbs - - * config.gcc (amdgcn-*-*): Remove "fiji" from with_arch checks. - * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Remove fiji alternative. - (NO_XNACK): Likewise. - (NO_SRAM_ECC): Likewise. - (ASM_SPEC): Remove "%{}" around ABI_VERSION_SPEC. - * config/gcn/gcn-opts.h (enum processor_type): Remove PROCESSOR_FIJI. - (TARGET_FIJI): Delete. - * config/gcn/gcn.cc (gcn_option_override): Remove Fiji. - (gcn_omp_device_kind_arch_isa): Likewise. - (output_file_start): Likewise. - * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Likewise. - * config/gcn/gcn.opt (gpu_type): Likewise. - (march, mtune): Change default to PROCESSOR_VEGA10. - * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX803): Delete. - (copy_early_debug_info): Remove elf_flags_actual. - Use ELFABIVERSION_AMDGPU_HSA_V4 unconditionally. - (get_arch): Remove Fiji. - (main): Remove gfx803. - * config/gcn/t-omp-device - (omp-device-properties-gcn): Remove fiji and gfx803. - * doc/install.texi (amdgcn*-*-*): Remove fiji and special instructions. - * doc/invoke.texi: Remove fiji. - -2024-09-02 Richard Sandiford - - * doc/gimple.texi (gimple_asm_basic_p): Document. - (gimple_asm_set_basic): Likewise. - * gimple.h (GF_ASM_INPUT): Rename to... - (GF_ASM_BASIC): ...this. - (gimple_asm_set_input): Rename to... - (gimple_asm_set_basic): ...this. - (gimple_asm_input_p): Rename to... - (gimple_asm_basic_p): ...this. - * cfgexpand.cc (expand_asm_stmt): Update after above renaming. - * gimple.cc (gimple_asm_clobbers_memory_p): Likewise. - * gimplify.cc (gimplify_asm_expr): Likewise. - * ipa-icf-gimple.cc (func_checker::compare_gimple_asm): Likewise. - * tree-cfg.cc (stmt_can_terminate_bb_p): Likewise. - -2024-09-02 Richard Sandiford - - * doc/generic.texi (ASM_BASIC_P): Document. - * tree.h (ASM_INPUT_P): Rename to... - (ASM_BASIC_P): ...this. - (ASM_VOLATILE_P, ASM_INLINE_P): Reindent. - * gimplify.cc (gimplify_asm_expr): Update after above renaming. - * tree-core.h (tree_base): Likewise. - -2024-09-02 Tobias Burnus - - * lto-wrapper.cc (run_gcc): Honor -save-temps for - makefile name. - -2024-09-02 Jakub Jelinek - - PR middle-end/116486 - * gimple-range-op.cc (cfn_clz::fold_range): If lh is [0,0] - and mini is -1, return [-1,-1] range rather than [prec-1,prec-1]. - -2024-09-02 Richard Biener - - * tree-vectorizer.h (_slp_tree::ldst_lanes): New flag to mark - load, store and permute nodes. - * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize ldst_lanes. - (vect_build_slp_instance): For stores iff the target prefers - store-lanes discover single-lane sub-groups, do not perform - interleaving lowering but mark the node with ldst_lanes. - Also allow i == 0 - fatal failure - for splitting up a store group - when we're not doing single-lane discovery already. - (vect_lower_load_permutations): When the target supports - load lanes and the loads all fit the pattern split out - a single level of permutes only and mark the load and - permute nodes with ldst_lanes. - (vectorizable_slp_permutation_1): Handle the load-lane permute - forwarding of vector defs. - (vect_analyze_slp): After SLP pattern recog is finished see if - there are any SLP instances that would benefit from using - load/store-lanes and re-discover those with forced single lanes. - * tree-vect-stmts.cc (get_group_load_store_type): Support - load/store-lanes for SLP. - (vectorizable_store): Support SLP code generation for store-lanes. - (vectorizable_load): Support SLP code generation for load-lanes. - * tree-vect-loop.cc (vect_analyze_loop_2): Do not cancel SLP - when store-lanes can be used. - -2024-09-02 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_1): Handle NULL stmt. - (vect_build_slp_tree_2): Likewise. Release load permutation - when there's a NULL in SLP_TREE_SCALAR_STMTS and assert there's - no actual permutation in that case. - (vllp_cmp): New function. - (vect_lower_load_permutations): Likewise. - (vect_analyze_slp): Call it. - -2024-09-02 Xianmiao Qu - - * config/riscv/riscv.cc (riscv_rtx_costs): Optimize the cost of the - DFmode register move for RV32. - -2024-09-02 Jeff Law - - PR rtl-optimization/116544 - * ext-dce.cc (ext_dce_process_uses): Fix thinko in promoted subreg - handling. - -2024-09-02 Levy Hsu - - * config/i386/i386-expand.cc (ix86_use_mask_cmp_p): Add BFmode - for int mask cmp. - * config/i386/sse.md (vec_cmp): New - vec_cmp expand for VBF modes. - -2024-09-02 Levy Hsu - - * config/i386/sse.md: Expand VF2H to VF2HB with VBF modes. - -2024-09-02 Levy Hsu - - * config/i386/sse.md - (3): New define expand pattern for BF smaxmin. - -2024-09-02 Levy Hsu - - * config/i386/sse.md: Add V8BF/V16BF/V32BF to mode iterator FMAMODEM. - -2024-09-02 Levy Hsu - - * config/i386/sse.md (div3): New expander for BFmode div. - (VF_BHSD): New mode iterator with vector BFmodes. - (3): Change mode to VF_BHSD. - (mul3): Likewise. - -2024-09-02 Hu, Lin1 - - * config/i386/i386-expand.cc (ix86_expand_fp_compare): Add UNSPEC to - support the optimization. - * config/i386/i386.cc (ix86_fp_compare_code_to_integer): Add NE/EQ. - * config/i386/i386.md (*cmpx): New define_insn. - (*cmpxhf): Ditto. - * config/i386/predicates.md (ix86_trivial_fp_comparison_operator): - Add ne/eq. - -2024-09-02 Hu, Lin1 - - * match.pd: Optimize (and ordered non-equal) to - (not (or unordered equal)) - -2024-09-02 Haochen Jiang - - * config/i386/sse.md (VI1_AVX512VNNIBW): New. - (VI2_AVX10_2): Ditto. - (sdot_prod): Add AVX10.2 - to auto vectorize and combine 512 bit part. - (udot_prod): Ditto. - (sdot_prodv64qi): Removed. - (udot_prodv64qi): Ditto. - (usdot_prod): Add AVX10.2 to auto vectorize. - (udot_prod): Ditto. - -2024-09-02 Pan Li - - * config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Merge - the zero_extend handing from func riscv_gen_unsigned_xmode_reg. - (riscv_gen_unsigned_xmode_reg): Remove. - (riscv_expand_ussub): Leverage riscv_gen_zero_extend_rtx - instead of riscv_gen_unsigned_xmode_reg. - -2024-09-01 Andrew Pinski - - PR tree-optimization/116554 - * gimple-ssa-strength-reduction.cc: Include tree-ssa-dce.h. - (replace_mult_candidate): Add sdce_worklist argument, mark - the rhs1/rhs2 for maybe dceing. - (replace_unconditional_candidate): Add sdce_worklist argument, - Update call to replace_mult_candidate. - (replace_conditional_candidate): Add sdce_worklist argument, - update call to replace_mult_candidate. - (replace_uncond_cands_and_profitable_phis): Add sdce_worklist argument, - update call to replace_conditional_candidate, - replace_unconditional_candidate, and replace_uncond_cands_and_profitable_phis. - (replace_one_candidate): Add sdce_worklist argument, mark - the orig_rhs1/orig_rhs2 for maybe dceing. - (replace_profitable_candidates): Add sdce_worklist argument, - update call to replace_one_candidate and replace_profitable_candidates. - (analyze_candidates_and_replace): Call simple_dce_from_worklist and - update calls to replace_profitable_candidates, and - replace_uncond_cands_and_profitable_phis. - -2024-08-31 Roger Sayle - - * config/i386/i386-features.cc (timode_scalar_to_vector_candidate_p): - Support the first operand of AND, IOR and XOR being MEM_P, i.e. a - read-modify-write insn. - -2024-08-31 Georg-Johann Lay - - * config/avr/avr-passes.cc (avr_pass_fuse_add) : Override. - * config/avr/avr-passes.def (avr_pass_fuse_add): Run again - after pass_cprop_hardreg. - -2024-08-31 Georg-Johann Lay - - * config/avr/avr-protos.h (avr_split_tiny_move): Rename to - avr_split_fake_addressing_move. - * config/avr/avr-passes.def: Same. - * config/avr/avr-passes.cc: Same. - (avr_pass_data_fuse_add) : Set to TV_MACH_DEP. - * config/avr/avr.md (split-lpmx): Remove a define_split. Such - splits are performed by avr_split_fake_addressing_move. - -2024-08-31 John David Anglin - - * config/pa/pa.cc (pa_emit_move_sequence): Remove symbolic - memory work arounds for TARGET_ELF32. - (pa_legitimate_address_p): Likewise. Allow symbolic - operands. Adjust comment. - * config/pa/pa.md: Replace reg_or_0_or_nonsymb_mem_operand - with reg_or_0_or_mem_operand predicate in various unnamed - move insns. - * config/pa/predicates.md (floating_point_store_memory_operand): - Update comment. Remove symbolic memory work arounds for - TARGET_ELF32. - (nonsymb_mem_operand): Rename to mem_operand. Allow - symbolic memory operands. - (reg_or_0_or_nonsymb_mem_operand): Rename to - reg_or_0_or_mem_operand. Allow symbolic memory operands. - -2024-08-31 Andrew Pinski - - PR tree-optimization/116098 - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Ignore - nops, labels and predicts for heuristic for conversion with a constant. - -2024-08-31 Jakub Jelinek - - PR c/116130 - * doc/extend.texi (unsequenced, reproducible): Document new function - type attributes. - * calls.cc (flags_from_decl_or_type): Handle "unsequenced noptr" and - "reproducible noptr" attributes. - -2024-08-31 Georg-Johann Lay - - * config/avr/avr.cc: Follow the convention to not add a space - after comma when printing instructions. - -2024-08-31 Alexandre Oliva - - * expr.cc (categorize_ctor_elements_1): Change p_complete to - int, to distinguish complete initialization in presence or - absence of uninitialized padding bits. - (categorize_ctor_elements): Likewise. Adjust all callers... - * expr.h (categorize_ctor_elements): ... and declaration. - (type_has_padding_at_level_p): New. - * gimple-fold.cc (type_has_padding_at_level_p): New. - * fold-const.cc (native_encode_constructor): New. - (native_encode_expr): Call it. - * gimplify.cc (gimplify_init_constructor): Clear small - non-addressable non-volatile objects with padding or - other uninitialized fields as an optimization. - -2024-08-30 Alex Coplan - - * gdbhooks.py (VEC_KIND_EMBED): New. - (VEC_KIND_PTR): New. - (get_vec_kind): New. - (VecPrinter.children): Also handle vectors with vl_ptr layout. - -2024-08-30 Andrew Pinski - - PR driver/104707 - PR driver/97304 - * gcc.cc (is_directory): Don't not include /usr/lib and /lib - for library directory pathes. Remove library argument. - (add_to_obstack): Update call to is_directory. - (driver_handle_option): Likewise. - (spec_path): Likewise. - -2024-08-30 Andrew Pinski - - PR middle-end/116537 - * tree-core.h (enum tree_index): Remove TI_INTEGER_THREE - * tree-ssa-loop-prefetch.cc (issue_prefetch_ref): Call build_int_cst - instead of using integer_three_node. - * tree.cc (build_common_tree_nodes): Remove initialization - of integer_three_node. - * tree.h (integer_three_node): Delete. - -2024-08-30 Andrew Pinski - - * builtins.cc (expand_builtin_prefetch): Rewrite expansion of the optional - arguments to not expand known constants. - -2024-08-30 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Check - known_ne (remain, 0u) before doing constant_multiple_p. - (vectorizable_load): Likewise. - -2024-08-30 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_2): Disable SLP - reassociation for single-lane. - -2024-08-30 liuhongt - - PR target/116512 - * config/i386/i386.cc (ix86_check_avx_upper_register): Iterate - subrtx to scan for avx upper register. - (ix86_check_avx_upper_stores): Inline old - ix86_check_avx_upper_register. - (ix86_avx_u128_mode_needed): Ditto, and replace - FOR_EACH_SUBRTX with call to new - ix86_check_avx_upper_register. - -2024-08-29 David Malcolm - - PR other/116419 - * diagnostic-event-id.h (diagnostic_event_id_t::zero_based): New. - * diagnostic-format-sarif.cc: Include "pretty-print-format-impl.h" - and "pretty-print-urlifier.h". - (sarif_result::sarif_result): Add param "idx_within_parent". - (sarif_result::get_index_within_parent): New accessor. - (sarif_result::m_idx_within_parent): New field. - (sarif_code_flow::sarif_code_flow): New ctor. - (sarif_code_flow::get_parent): New accessor. - (sarif_code_flow::get_index_within_parent): New accessor. - (sarif_code_flow::m_parent): New field. - (sarif_code_flow::m_thread_id_map): New field. - (sarif_code_flow::m_thread_flows_arr): New field. - (sarif_code_flow::m_all_tfl_objs): New field. - (sarif_thread_flow::sarif_thread_flow): Add "parent" and - "idx_within_parent" params. - (sarif_thread_flow::get_parent): New accessor. - (sarif_thread_flow::get_index_within_parent): New accessor. - (sarif_thread_flow::m_parent): New field. - (sarif_thread_flow::m_idx_within_parent): New field. - (sarif_thread_flow_location::sarif_thread_flow_location): New - ctor. - (sarif_thread_flow_location::get_parent): New accessor. - (sarif_thread_flow_location::get_index_within_parent): New - accessor. - (sarif_thread_flow_location::m_parent): New field. - (sarif_thread_flow_location::m_idx_within_parent): New field. - (sarif_builder::get_code_flow_for_event_ids): New accessor. - (class sarif_builder::sarif_token_printer): New. - (sarif_builder::m_token_printer): New member. - (sarif_builder::m_next_result_idx): New field. - (sarif_builder::m_current_code_flow): New field. - (sarif_code_flow::get_or_append_thread_flow): New. - (sarif_code_flow::get_thread_flow): New. - (sarif_code_flow::add_location): New. - (sarif_code_flow::get_thread_flow_loc_obj): New. - (sarif_thread_flow::add_location): Create the new - sarif_thread_flow_location internally, rather than passing - it in as a parm so that we can keep track of its index in - the array. Return a reference to it. - (sarif_builder::sarif_builder): Initialize m_token_printer, - m_next_result_idx, and m_current_code_flow. - (sarif_builder::on_report_diagnostic): Pass index to - make_result_object. - (sarif_builder::make_result_object): Add "idx_within_parent" param - and pass to sarif_result ctor. Pass code flow index to call to - make_code_flow_object. - (make_sarif_url_for_event): New. - (sarif_builder::make_code_flow_object): Add "idx_within_parent" - param and pass it to sarif_code_flow ctor. Reimplement walking - of events so that we first create threadFlow objects for each - thread, then populate them with threadFlowLocation objects, so - that the IDs work. Set m_current_code_flow whilst creating the - latter, so that we can create correct URIs for "%@". - (sarif_builder::make_thread_flow_location_object): Replace with... - (sarif_builder::populate_thread_flow_location_object): ...this. - (sarif_output_format::get_builder): New accessor. - (sarif_begin_embedded_link): New. - (sarif_end_embedded_link): New. - (sarif_builder::sarif_token_printer::print_tokens): New. - (diagnostic_output_format_init_sarif): Add "fmt" param; use it to - set the token printer and output format for the context. - (diagnostic_output_format_init_sarif_stderr): Move responsibility - for setting the context's output format to within - diagnostic_output_format_init_sarif. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - (test_sarif_diagnostic_context::test_sarif_diagnostic_context): - Likewise. - (selftest::test_make_location_object): Provide an idx for the - result. - (selftest::get_result_from_log): New. - (selftest::get_message_from_log): New. - (selftest::test_message_with_embedded_link): New test. - (selftest::diagnostic_format_sarif_cc_tests): Call it. - * pretty-print-format-impl.h: Include "diagnostic-event-id.h". - (pp_token::kind): Add "event_id". - (struct pp_token_event_id): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - * pretty-print.cc (pp_token::dump): Handle kind::event_id. - (pretty_printer::format): Update handling of "%@" in phase 2 - so that we add a pp_token_event_id, rather that the text "(N)". - (default_token_printer): Handle pp_token::kind::event_id by - printing the text "(N)". - -2024-08-29 David Malcolm - - * diagnostic.cc (diagnostic_context::report_diagnostic): Don't - pass m_urlifier to pp_format, as urlification now happens in - phase 3. - * dump-context.h (class dump_pretty_printer): Update leading - comment. - (dump_pretty_printer::emit_items): Drop decl. - (dump_pretty_printer::set_optinfo): New. - (class dump_pretty_printer::stashed_item): Delete class. - (class dump_pretty_printer::custom_token_printer): New class. - (dump_pretty_printer::format_decoder_cb): Convert param from - const char ** to pp_token_list &. - (dump_pretty_printer::decode_format): Likewise. - (dump_pretty_printer::stash_item): Likewise. - (dump_pretty_printer::emit_any_pending_textual_chunks): Drop decl. - (dump_pretty_printer::m_stashed_items): Delete field. - (dump_pretty_printer::m_token_printer): New member data. - * dumpfile.cc (struct wrapped_optinfo_item): New. - (dump_pretty_printer::dump_pretty_printer): Update for dropping - of field m_stashed_items and new field m_token_printer. - (dump_pretty_printer::emit_items): Delete; we now use - pp_output_formatted_text.. - (dump_pretty_printer::emit_any_pending_textual_chunks): Delete. - (dump_pretty_printer::stash_item): Convert param from - const char ** to pp_token_list &. - (dump_pretty_printer::format_decoder_cb): Likewise. - (dump_pretty_printer::decode_format): Likewise. - (dump_pretty_printer::custom_token_printer::print_tokens): New. - (dump_pretty_printer::custom_token_printer::emit_any_pending_textual_chunks): - New. - (dump_context::dump_printf_va): Call set_optinfo on the - dump_pretty_printer. Replace call to emit_items with a call to - pp_output_formatted_text. - * opt-problem.cc (opt_problem::opt_problem): Replace call to - emit_items with call to set_optinfo and call to - pp_output_formatted_text. - * pretty-print-format-impl.h (struct pp_token): New. - (struct pp_token_text): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (struct pp_token_begin_color): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (struct pp_token_end_color): New. - (struct pp_token_begin_quote): New. - (struct pp_token_end_quote): New. - (struct pp_token_begin_url): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (struct pp_token_end_url): New. - (struct pp_token_custom_data): New. - (is_a_helper ::test): New. - (is_a_helper ::test): New. - (class pp_token_list): New. - (chunk_info::get_args): Drop. - (chunk_info::get_quoting_info): Drop. - (chunk_info::get_token_lists): New accessor. - (chunk_info::append_formatted_chunk): Add obstack & param. - (chunk_info::dump): New decls. - (chunk_info::m_args): Convert element type from const char * to - pp_token_list *. Rewrite/update comment. - (chunk_info::m_quotes): Drop field. - * pretty-print-markup.h (class pp_token_list): New forward decl. - (pp_markup::context::context): Drop urlifier param; add - formatted_token_list param. - (pp_markup::context::push_back_any_text): New decl. - (pp_markup::context::m_urlifier): Drop field. - (pp_markup::context::m_formatted_token_list): New field. - * pretty-print-urlifier.h: Update comment. - * pretty-print.cc: Define INCLUDE_MEMORY. Include - "make-unique.h". - (default_token_printer): New forward decl. - (obstack_append_string): Delete. - (urlify_quoted_string): Delete. - (pp_token::pp_token): New. - (pp_token::dump): New. - (allocate_object): New. - (class quoting_info): Delete. - (pp_token::operator new): New. - (pp_token::operator delete): New. - (pp_token_list::operator new): New. - (pp_token_list::operator delete): New. - (pp_token_list::pp_token_list): New. - (pp_token_list::~pp_token_list): New. - (pp_token_list::push_back_text): New. - (pp_token_list::push_back): New. - (pp_token_list::push_back_list): New. - (pp_token_list::pop_front): New. - (pp_token_list::remove_token): New. - (pp_token_list::insert_after): New. - (pp_token_list::replace_custom_tokens): New. - (pp_token_list::merge_consecutive_text_tokens): New. - (pp_token_list::apply_urlifier): New. - (pp_token_list::dump): New. - (chunk_info::append_formatted_chunk): Add obstack & param and use - it to reimplement in terms of token lists. - (chunk_info::pop_from_output_buffer): Drop m_quotes. - (chunk_info::on_begin_quote): Delete. - (chunk_info::dump): New. - (chunk_info::on_end_quote): Delete. - (push_back_any_text): New. - (pretty_printer::format): Drop "urlifier" param and quoting_info - logic. Convert "formatters" and "args" from const ** to - pp_token_list **. Reimplement so that rather than just - accumulating a text buffer in the chunk_obstack for each arg, - instead also accumulate a pp_token_list and pp_tokens for each - arg. - (auto_obstack::operator obstack &): New. - (quoting_info::handle_phase_3): Delete. - (pp_output_formatted_text): Reimplement in terms of manipulations - of pp_token_lists, rather than char buffers. Call - default_token_printer, or m_token_printer's print_tokens vfunc. - (default_token_printer): New. - (pretty_printer::pretty_printer): Initialize m_token_printer in - both ctors. - (pp_markup::context::begin_quote): Reimplement to use token list. - (pp_markup::context::end_quote): Likewise. - (pp_markup::context::begin_highlight_color): Likewise. - (pp_markup::context::end_highlight_color): Likewise. - (pp_markup::context::push_back_any_text): New. - (selftest::test_merge_consecutive_text_tokens): New. - (selftest::test_custom_tokens_1): New. - (selftest::test_custom_tokens_2): New. - (selftest::pp_printf_with_urlifier): Drop "urlifier" param from - call to pp_format. - (selftest::test_urlification): Add test of the example from - pretty-print-format-impl.h. - (selftest::pretty_print_cc_tests): Call the new selftest - functions. - * pretty-print.h (class quoting_info): Drop forward decl. - (class pp_token_list): New forward decl. - (printer_fn): Convert final param from const char ** to - pp_token_list &. - (class token_printer): New. - (class pretty_printer): Add pp_output_formatted_text as friend. - (pretty_printer::set_token_printer): New. - (pretty_printer::format): Drop urlifier param as this now happens - in phase 3. - (pretty_printer::m_format_decoder): Update comment. - (pretty_printer::m_token_printer): New field. - (pp_format): Drop urlifier param. - * tree-diagnostic.cc (default_tree_printer): Convert final param - from const char ** to pp_token_list &. - * tree-diagnostic.h: Likewise for decl. - -2024-08-29 David Malcolm - - * dumpfile.cc: Include "pretty-print-format-impl.h". - * pretty-print-format-impl.h: New file, based on material from - pretty-print.h. - * pretty-print.cc: Include "pretty-print-format-impl.h". - * pretty-print.h (chunk_info): Replace full declaration with - a forward decl, moving full decl to pretty-print-format-impl.h. - -2024-08-29 David Malcolm - - * config/aarch64/aarch64.cc: Define INCLUDE_MEMORY. - * config/arm/arm.cc: Likewise. - * config/i386/i386.cc: Likewise. - * config/loongarch/loongarch.cc: Likewise. - * config/riscv/riscv-vector-costs.cc: Likewise. - * config/riscv/riscv.cc: Likewise. - * config/rs6000/rs6000.cc: Likewise. - * dump-context.h (dump_context::emit_item): Convert "item" param - from * to const &. - (dump_pretty_printer::stash_item): Convert "item" param from - optinfo_ * to std::unique_ptr. - (dump_pretty_printer::emit_item): Likewise. - * dumpfile.cc: Include "make-unique.h". - (make_item_for_dump_gimple_stmt): Replace uses of optinfo_item * - with std::unique_ptr. - (dump_context::dump_gimple_stmt): Likewise. - (make_item_for_dump_gimple_expr): Likewise. - (dump_context::dump_gimple_expr): Likewise. - (make_item_for_dump_generic_expr): Likewise. - (dump_context::dump_generic_expr): Likewise. - (make_item_for_dump_symtab_node): Likewise. - (dump_pretty_printer::emit_items): Likewise. - (dump_pretty_printer::emit_any_pending_textual_chunks): Likewise. - (dump_pretty_printer::emit_item): Likewise. - (dump_pretty_printer::stash_item): Likewise. - (dump_pretty_printer::decode_format): Likewise. - (dump_context::dump_printf_va): Fix overlong line. - (make_item_for_dump_dec): Replace uses of optinfo_item * with - std::unique_ptr. - (dump_context::dump_dec): Likewise. - (dump_context::dump_symtab_node): Likewise. - (dump_context::begin_scope): Likewise. - (dump_context::emit_item): Likewise. - * gimple-loop-interchange.cc: Define INCLUDE_MEMORY. - * gimple-loop-jam.cc: Likewise. - * gimple-loop-versioning.cc: Likewise. - * graphite-dependences.cc: Likewise. - * graphite-isl-ast-to-gimple.cc: Likewise. - * graphite-optimize-isl.cc: Likewise. - * graphite-poly.cc: Likewise. - * graphite-scop-detection.cc: Likewise. - * graphite-sese-to-poly.cc: Likewise. - * graphite.cc: Likewise. - * opt-problem.cc: Likewise. - * optinfo.cc (optinfo::add_item): Convert "item" param from - optinfo_ * to std::unique_ptr. - (optinfo::emit_for_opt_problem): Update for change to - dump_context::emit_item. - * optinfo.h: Add #error to fail immediately if INCLUDE_MEMORY - wasn't defined, rather than fail to find std::unique_ptr. - (optinfo::add_item): Convert "item" param from optinfo_ * to - std::unique_ptr. - * sese.cc: Define INCLUDE_MEMORY. - * targhooks.cc: Likewise. - * tree-data-ref.cc: Likewise. - * tree-if-conv.cc: Likewise. - * tree-loop-distribution.cc: Likewise. - * tree-parloops.cc: Likewise. - * tree-predcom.cc: Likewise. - * tree-ssa-live.cc: Likewise. - * tree-ssa-loop-ivcanon.cc: Likewise. - * tree-ssa-loop-ivopts.cc: Likewise. - * tree-ssa-loop-prefetch.cc: Likewise. - * tree-ssa-loop-unswitch.cc: Likewise. - * tree-ssa-phiopt.cc: Likewise. - * tree-ssa-threadbackward.cc: Likewise. - * tree-ssa-threadupdate.cc: Likewise. - * tree-vect-data-refs.cc: Likewise. - * tree-vect-generic.cc: Likewise. - * tree-vect-loop-manip.cc: Likewise. - * tree-vect-loop.cc: Likewise. - * tree-vect-patterns.cc: Likewise. - * tree-vect-slp-patterns.cc: Likewise. - * tree-vect-slp.cc: Likewise. - * tree-vect-stmts.cc: Likewise. - * tree-vectorizer.cc: Likewise. - -2024-08-29 John David Anglin - - * config/pa/pa.cc (load_reg): Don't generate load with - unscaled index address when !TARGET_NO_SPACE_REGS. - (pa_legitimate_address_p): Only allow unscaled index - addresses when TARGET_NO_SPACE_REGS. - -2024-08-29 Andrew Pinski - - PR middle-end/116508 - * internal-fn.cc (expand_POPCOUNT): Use OPTAB_WIDEN for PLUS and - XOR/AND expansion. - -2024-08-29 Richard Sandiford - - PR middle-end/116516 - * rtlanal.cc (strip_address_mutations): Allow subregs around - constant displacements. - -2024-08-29 Richard Sandiford - - * dse.cc (find_shift_sequence): Allow smallest_int_mode_for_size - to failure. - * optabs.cc (expand_twoval_binop_libfunc): Likewise. - -2024-08-29 Georg-Johann Lay - - PR target/115830 - * config/avr/avr-modes.def (CCN, CCZN): New CC_MODEs. - * config/avr/avr-protos.h (avr_cond_branch): New from - ret_cond_branch. - (avr_out_plus_set_N, avr_op8_ZN_operator, avr_cmp0_code) - (avr_out_op8_set_ZN, avr_len_op8_set_ZN): New protos. - (ccn_reg_rtx, cczn_reg_rtx): New declarations. - * config/avr/avr.cc (avr_cond_branch): New from ret_cond_branch. - (avr_cond_string): Add bool cc_overflow_unusable argument. - (avr_print_operand) ['L']: Like 'j' but overflow unusable. - ['K']: Like 'k' but overflow unusable. - (avr_out_plus_set_ZN): Remove handling of QImode. - (avr_out_plus_set_N, avr_op8_ZN_operator, avr_cmp0_code) - (avr_out_op8_set_ZN, avr_len_op8_set_ZN): New functions. - (avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_N]: Hande case. - (avr_class_max_nregs): All MODE_CCs occupy one hard reg. - (avr_hard_regno_nregs): Same. - (avr_hard_regno_mode_ok) [REG_CC]: Allow all MODE_CC. - (pass_manager.h, context.h, tree-pass.h): Include them. - (ccn_reg_rtx, cczn_reg_rtx): New GTY variables. - (avr_init_expanders): Initialize them. - (avr_option_override): Run peephole2 a second time. - * config/avr/avr.md (adjust_len) [add_set_N]: New attr value. - (ALLCC, HI_SI): New mode iterators. - (CCname): New mode attribute. - (eqnegtle, cmp_signed, op8_ZN): New code iterators. - (swap, SWAP): New code attributes. - (branch): Handle CCNmode and CCZNmode. Assimilate... - (difficult_branch): ...this insn. - (p1m1): Remove. - (gen_add_for__): Adjust to CCNmode and CCZNmode. Use - HISI as mode iterator. Extend peephole2s that produce them. - (*add.for.eqne.): Extend to *add.for.cc[z]n.. - (*ashift.for.ccn.): New insn and peephole2 to make them. - (*sub.for.cczn., *sub-extend.for.cczn.): - New insns and peephole2s to make them. - (*op8.for.cczn.): New insn and peephole2 to make them. - * config/avr/predicates.md (const_1_to_3_operand) - (abs1_abs2_operand, signed_comparison_operator) - (op8_ZN_operator): New predicates. - -2024-08-29 Arsen Arsenović - - PR c++/105104 - * coroutine-passes.cc (execute_early_expand_coro_ifns): Don't - remove any labels. - -2024-08-29 Georg-Johann Lay - - * config.gcc (extra_objs) [target=avr]: Add avr-passes.o. - * config/avr/t-avr (avr-passes.o): New rule to make it. - * config/avr/avr.cc (#define INCLUDE_VECTOR): Remove. - (cfganal.h, cfgrtl.h, context.h, tree-pass.h, print-rtl.h): Don't - include them. - (avr_strict_signed_p, avr_strict_unsigned_p, avr_2comparisons_rhs) - (make_avr_pass_recompute_notes, make_avr_pass_casesi) - (make_avr_pass_ifelse, make_avr_pass_pre_proep, avr_split_tiny_move) - (emit_move_ccc, emit_move_ccc_after, reg_seen_between_p) - (avr_maybe_adjust_cfa, avr_redundant_compare_regs) - (avr_parallel_insn_from_insns, avr_is_casesi_sequence) - (avr_optimize_casesi, avr_redundant_compare, make_avr_pass_fuse_add) - (avr_optimize_2ifelse, avr_rest_of_handle_ifelse) - (avr_casei_sequence_check_operands) - Move functions... - (avr_pass_data_fuse_add, avr_pass_data_ifelse) - (avr_pass_data_casesi, avr_pass_data_recompute_notes) - (avr_pass_data_pre_proep): Move objects... - (avr_pass_fuse_add, avr_pass_pre_proep, avr_pass_recompute_notes) - (avr_pass_ifelse, avr_pass_casesi, AVR_LdSt_Props): Move classes... - * config/avr/avr-passes.cc: ... to this new C++ module. - (struct Ranges): Move to... - * config/avr/ranges.h: ...this new file. - * config/avr/avr-protos.h: Adjust comments. - -2024-08-29 Robin Dapp - - PR target/116086 - * config/riscv/autovec.md (vec_extract): Add - vector-vector extract for VLS modes. - * config/riscv/riscv.cc (riscv_can_change_mode_class): Forbid - VLS modes larger than one vector. - * config/riscv/vector-iterators.md: Add vector-vector extract - iterators. - -2024-08-29 Roger Sayle - - * config/i386/i386-features.cc (timode_immed_const_gain): New - function to determine the gain/cost on a CONST_WIDE_INT. - (timode_scalar_chain::compute_convert_gain): Fix whitespace. - : Provide more accurate estimates using - timode_immed_const_gain. - : Handle CONSTANT_SCALAR_INT_P (src). - -2024-08-29 Mark Harmstone - - * dwarf2codeview.cc (enum cv_leaf_type): Add LF_MFUNC_ID. - (write_lf_mfunc_id): New function. - (add_lf_func_id): New function. - (add_lf_mfunc_id): New function. - (add_function): Call add_lf_func_id or add_lf_mfunc_id. - -2024-08-29 Mark Harmstone - - * dwarf2codeview.cc (enum cv_leaf_type): Add LF_MFUNCTION, - LF_METHODLIST, LF_METHOD, and LF_ONEMETHOD. - (struct codeview_subtype): Add lf_onemethod and lf_method to union. - (struct lf_methodlist_entry): New type. - (struct codeview_custom_type): Add lf_mfunc_id, lf_mfunction, and - lf_methodlist to union. - (struct codeview_method): New type. - (struct method_hasher): New type. - (get_type_num_subroutine_type): Add forward declaration. - (write_lf_fieldlist): Handle LF_ONEMETHOD and LF_METHOD. - (write_lf_mfunction): New function. - (write_lf_methodlist): New function. - (write_custom_types): Handle LF_MFUNCTION and LF_METHODLIST. - (add_struct_function): New function. - (get_mfunction_type): New function. - (is_templated_func): New function. - (get_type_num_struct): Handle DW_TAG_subprogram child DIEs. - (get_type_num_subroutine_type): Add containing_class_type, this_type, - and this_adjustment params, and handle creating LF_MFUNCTION types as - well as LF_PROCEDURE. - (get_type_num): New params for get_type_num_subroutine_type. - (add_function): New params for get_type_num_subroutine_type. - * dwarf2codeview.h (CV_METHOD_VANILLA, CV_METHOD_VIRTUAL): Define. - (CV_METHOD_STATIC, CV_METHOD_FRIEND, CV_METHOD_INTRO): Likewise. - (CV_METHOD_PUREVIRT, CV_METHOD_PUREINTRO): Likewise. - -2024-08-29 Mark Harmstone - - * dwarf2codeview.cc (enum cv_leaf_type): Add LF_STMEMBER. - (struct codeview_subtype): Add lf_static_member to union. - (write_lf_fieldlist): Handle LF_STMEMBER. - (add_struct_member): New function. - (add_struct_static_member): New function. - (get_accessibility): New function. - (get_type_num_struct): Split out into add_struct_member and - get_accessibility, and handle static members. - -2024-08-29 Mark Harmstone - - * dwarf2codeview.cc (enum cf_leaf_type): Add LF_STRING_ID. - (struct codeview_custom_type): Add lf_string_id to union. - (struct string_id_hasher): New type. - (string_id_htab): New global variable. - (write_lf_string_id): New function. - (write_custom_types): Call write_lf_string_id. - (codeview_debug_finish): Free string_id_htab. - (add_string_id): New function. - (get_scope_string_id): New function. - (add_function): Call get_scope_string_id and set scope. - -2024-08-29 Mark Harmstone - - * dwarf2codeview.cc (get_name): New function. - (add_enum_forward_def): Call get_name. - (get_type_num_enumeration_type): Call get_name. - (add_struct_forward_def): Call get_name. - (get_type_num_struct): Call get_name. - (add_variable): Call get_name. - (add function): Call get_name. - * dwarf2out.cc (get_die_parent): Rename to dw_get_die_parent and make - non-static. - (generate_type_signature): Handle renamed get_die_parent. - * dwarf2out.h (dw_get_die_parent): Add declaration. - -2024-08-28 Andrew Pinski - - * internal-fn.cc (expand_POPCOUNT): Dump the costs for - the two choices. - -2024-08-28 Jonathan Wakely - - * doc/contrib.texi (Contributors): Add Dhruv Matani. - -2024-08-28 Georg-Johann Lay - - * config/avr/avr.cc (INCLUDE_VECTOR): Define it. - (cfganal.h): Include it. - (Ranges): New struct. - (avr_2comparisons_rhs, avr_redundant_compare_regs) - (avr_strict_signed_p, avr_strict_unsigned_p): New static functions. - (avr_redundant_compare): Overhaul: Allow more cases. - (avr_optimize_2ifelse): New static function, outsourced from... - (avr_rest_of_handle_ifelse): ...this method. - -2024-08-28 Richard Sandiford - - * config/aarch64/tuning_models/generic.h (generic_sve_vector_cost): - Set gather_load_x32_init_cost and gather_load_x64_init_cost to 0. - -2024-08-28 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype) - (aarch64_vector_costs::add_stmt_cost): Use the x64 cost rather - than x32 cost for all VNx2 modes. - -2024-08-28 Richard Sandiford - - * tree.h (ASM_INPUT_P): Fix documentation. - -2024-08-28 Filip Kastl - - PR tree-optimization/116355 - * tree-switch-conversion.cc (can_log2): Add capability to - suggest converting the operand to a different type. - (gen_log2): Add capability to generate a conversion in case the - operand is of a type incompatible with the logarithm operation. - (can_pow2p): New function. - (gen_pow2p): Rewrite to use __builtin_popcount instead of - manually inserting an internal fn call or bitmagic. Also add - capability to generate a conversion. - (switch_conversion::is_exp_index_transform_viable): Call - can_pow2p. Store types suggested by can_log2 and gen_log2. - (switch_conversion::exp_index_transform): Params of gen_pow2p - and gen_log2 changed so update their calls. - * tree-switch-conversion.h: Add m_exp_index_transform_log2_type - and m_exp_index_transform_pow2p_type to switch_conversion class - to track type conversions needed to generate the "is power of 2" - and logarithm operations. - -2024-08-28 Alex Coplan - - PR libstdc++/116140 - * doc/sourcebuild.texi: Document ltrans-rtl value of kind for - scan--dump*. - -2024-08-28 Richard Biener - - * tree-vect-slp.cc (debug): Add overload for slp_instance. - -2024-08-28 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_store_interleaving): - Fix reference counting. - (vect_build_slp_instance): Release rhs_nodes. - -2024-08-28 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_store_interleaving): Split - out from ... - (vect_build_slp_instance): Here. - -2024-08-28 Pan Li - - * tree-vect-patterns.cc (vect_recog_sat_add_pattern): Add fold - convert for const_int to the type of operand 0. - -2024-08-28 Kito Cheng - - * config/riscv/vector.md (mode_idx): Add vrol and vror. - -2024-08-28 Pan Li - - * match.pd: Add the matching for signed .SAT_ADD. - * tree-ssa-math-opts.cc (gimple_signed_integer_sat_add): Add new - matching func decl. - (match_unsigned_saturation_add): Try signed .SAT_ADD and rename - to ... - (match_saturation_add): ... here. - (math_opts_dom_walker::after_dom_children): Update the above renamed - func from caller. - -2024-08-27 Andreas Schwab - - PR target/116413 - * config/m68k/m68k.cc (m68k_decompose_index): Accept ASHIFT like - MULT. - (m68k_rtx_costs) [PLUS]: Likewise. - (m68k_legitimize_address): Likewise. - -2024-08-27 Patrick O'Neill - - * config/riscv/riscv-v.cc (expand_vector_init_insert_elems): Relocate. - (expand_vector_init_trailing_same_elem): Ditto. - -2024-08-27 Patrick O'Neill - - * config/riscv/riscv-v.cc (expand_const_vector): Allow non-duplicate - to fall through other patterns before asserting. - -2024-08-27 Patrick O'Neill - - * config/riscv/riscv-v.h (valid_vec_immediate_p): Add new helper. - * config/riscv/riscv-v.cc (valid_vec_immediate_p): Ditto. - (expand_const_vector): Use new helper. - * config/riscv/riscv.cc (riscv_const_insns): Handle 0.0 floating-point - case. - -2024-08-27 Patrick O'Neill - - * config/riscv/riscv-v.cc (class rvv_builder): Move to riscv-v.h. - * config/riscv/riscv.cc (riscv_const_insns): Emit placeholder costs for - bool/stepped const vectors. - * config/riscv/riscv-v.h: New file. - -2024-08-27 Patrick O'Neill - - * config/riscv/riscv-v.cc (expand_const_vector): Use tmp register if - needed. - -2024-08-27 Patrick O'Neill - - * config/riscv/riscv.cc (riscv_const_insns): Relocate. - -2024-08-27 Patrick O'Neill - - * config/riscv/riscv-v.cc (expand_const_vector): Fix STEP size in - expander. - -2024-08-27 Christophe Lyon - - * config/arm/vfp.md (movdi_vfp, thumb2_movdf_vfp): Handle MVE - case. - -2024-08-27 H.J. Lu - - * doc/sourcebuild.texi (check-function-bodies): Add an optional - argument for matched output lines. - -2024-08-27 Michael Matz - - PR target/116429 - * lra.cc (setup_sp_offset): Start with sp_offset from - before the new sequence, not from after. - -2024-08-27 Michael Matz - - PR target/116374 - * lra-eliminations.cc (init_elim_table): Use -1 as initializer. - (update_reg_eliminate): Accept -1 as not-yet-used marker. - (eliminate_regs_in_insn): Use previous_sp_offset only when - not first_p. - -2024-08-27 Michael Matz - - PR target/116413 - * final.cc (walk_alter_subreg): Recurse on AHIFT. - -2024-08-27 Richard Sandiford - - PR middle-end/116413 - * rtl.h (address_info): Update commentary. - * rtlanal.cc (valid_base_or_index_term_p): New function, split - out from... - (get_base_term, get_index_term): ...here. Handle elimination PLUSes. - -2024-08-27 Richard Sandiford - - PR middle-end/116321 - * lra-constraints.cc (get_hard_regno): Only apply eliminations - to existing hard registers. - (get_reg_class): Likewise. - -2024-08-27 Richard Biener - - PR tree-optimization/116460 - * tree-ssa-forwprop.cc (pass_forwprop::execute): First do - simple_dce_from_worklist and then remove stmts in to_remove. - Track defs to be removed in to_remove_defs. - -2024-08-27 Pan Li - - * config/riscv/riscv.cc (riscv_expand_ussub): Gen xmode for the - second operand, aka y in parameter. - * config/riscv/riscv.md (ussub3): Allow const_int for operand 2. - -2024-08-26 Hans-Peter Nilsson - - PR middle-end/115883 - * combine.cc (make_more_copies): Copy attributes from the original - pseudo to the new copy. - -2024-08-26 Arsen Arsenović - - * coroutine-passes.cc (execute_early_expand_coro_ifns): Emit a - sorry if a statement is an alloca call. - -2024-08-26 David Malcolm - - * Makefile.in (OBJS-libcommon): Add diagnostic-format-text.o. - * diagnostic-format-json.cc: Include "diagnostic-format.h". - * diagnostic-format-sarif.cc: Likewise. - * diagnostic-format-text.cc: New file, using material from - diagnostics.cc. - * diagnostic-global-context.cc: Include - "diagnostic-format.h". - * diagnostic-format-text.h: New file, using material from - diagnostics.h. - * diagnostic-format.h: New file, using material from - diagnostics.h. - * diagnostic.cc: Include "diagnostic-format.h" and - "diagnostic-format-text.h". - (diagnostic_text_output_format::~diagnostic_text_output_format): - Move to diagnostic-format-text.cc. - (diagnostic_text_output_format::on_report_diagnostic): Likewise. - (diagnostic_text_output_format::on_diagram): Likewise. - (diagnostic_text_output_format::print_any_cwe): Likewise. - (diagnostic_text_output_format::print_any_rules): Likewise. - (diagnostic_text_output_format::print_option_information): - Likewise. - * diagnostic.h (class diagnostic_output_format): Move to - diagnostic-format.h. - (class diagnostic_text_output_format): Move to - diagnostic-format-text.h. - (diagnostic_output_format_init): Move to - diagnostic-format.h. - (diagnostic_output_format_init_json_stderr): Likewise. - (diagnostic_output_format_init_json_file): Likewise. - (diagnostic_output_format_init_sarif_stderr): Likewise. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - * gcc.cc: Include "diagnostic-format.h". - * opts.cc: Include "diagnostic-format.h". - -2024-08-26 David Malcolm - - * diagnostic-format-json.cc - (json_output_format::on_begin_diagnostic): Delete. - (json_output_format::on_end_diagnostic): Rename to... - (json_output_format::on_report_diagnostic): ...this and add call - to pp_output_formatted_text. - (diagnostic_output_format_init_json): Drop unnecessary calls - to disable textual printing of CWEs, rules, and options. - * diagnostic-format-sarif.cc (sarif_builder::end_diagnostic): - Rename to... - (sarif_builder::on_report_diagnostic): ...this and add call to - pp_output_formatted_text. - (sarif_output_format::on_begin_diagnostic): Delete. - (sarif_output_format::on_end_diagnostic): Rename to... - (sarif_output_format::on_report_diagnostic): ...this and update - call to m_builder accordingly. - (diagnostic_output_format_init_sarif): Drop unnecessary calls - to disable textual printing of CWEs, rules, and options. - * diagnostic.cc (diagnostic_context::print_any_cwe): Convert to... - (diagnostic_text_output_format::print_any_cwe): ...this. - (diagnostic_context::print_any_rules): Convert to... - (diagnostic_text_output_format::print_any_rules): ...this. - (diagnostic_context::print_option_information): Convert to... - (diagnostic_text_output_format::print_option_information): - ...this. - (diagnostic_context::report_diagnostic): Replace calls to the - output format's on_begin_diagnostic, to pp_output_formatted_text, - printing CWE, rules, option info, and the call to the format's - on_end_diagnostic with a call to the format's - on_report_diagnostic. - (diagnostic_text_output_format::on_begin_diagnostic): Delete. - (diagnostic_text_output_format::on_end_diagnostic): Delete. - (diagnostic_text_output_format::on_report_diagnostic): New vfunc, - which effectively does the on_begin_diagnostic, the call to - pp_output_formatted_text, the calls for printing CWE, rules, - option info, and the call to the diagnostic_finalizer. - * diagnostic.h (diagnostic_output_format::on_begin_diagnostic): - Delete. - (diagnostic_output_format::on_end_diagnostic): Delete. - (diagnostic_output_format::on_report_diagnostic): New. - (diagnostic_text_output_format::on_begin_diagnostic): Delete. - (diagnostic_text_output_format::on_end_diagnostic): Delete. - (diagnostic_text_output_format::on_report_diagnostic): New. - (class diagnostic_context): Add friend class - diagnostic_text_output_format. - (diagnostic_context::get_urlifier): New accessor. - (diagnostic_context::print_any_cwe): Move decl... - (diagnostic_text_output_format::print_any_cwe): ...to here. - (diagnostic_context::print_any_rules): Move decl... - (diagnostic_text_output_format::print_any_rules): ...to here. - (diagnostic_context::print_option_information): Move decl... - (diagnostic_text_output_format::print_option_information): ...to - here. - -2024-08-26 David Malcolm - - * diagnostic-format-sarif.cc: Add comments noting that we don't - yet capture any diagnostic_metadata::rules associated with a - diagnostic. - -2024-08-26 David Malcolm - - * pretty-print.cc (selftest::test_urls): Make static. - (selftest::test_urls_from_braces): New. - (selftest::test_null_urls): Make static. - (selftest::test_urlification): Likewise. - (selftest::pretty_print_cc_tests): Call test_urls_from_braces. - -2024-08-26 David Malcolm - - * json.h: Fix typo in comment about missing INCLUDE_MEMORY. - -2024-08-26 Andi Kleen - - * tree-if-conv.cc: Remove unneeded include from last change. - -2024-08-26 Bernd Edlinger - - PR debug/116470 - * configure.ac: Add the "nop" instruction for cpu type ft32. - * configure: Regenerate. - * dwarf2out.cc (dwarf2out_set_ignored_loc): Use the correct - line info section. - -2024-08-26 Richard Biener - - PR tree-optimization/116460 - * tree-ssa-forwprop.cc (pass_forwprop::execute): Do not - process blocks in unreachable natural loops. - -2024-08-26 Richard Biener - - * tree-ssa-forwprop.cc (simplify_gimple_switch_label_vec): - Delay removing edges and releasing dominator info, instead - record into edges_to_remove vector. - (simplify_gimple_switch): Pass through vector of to remove - edges. - (pass_forwprop::execute): Likewise. Remove queued edges. - -2024-08-26 Xi Ruoyao - Richard Biener - - PR tree-optimization/116348 - * tree-vect-stmts.cc (supportable_widening_operation): Use - STMT_VINFO_REDUC_DEF (x) instead of - STMT_VINFO_DEF_TYPE (x) == vect_reduction_def. - -2024-08-26 Pan Li - - * match.pd: Add int_fits_type_p check for .SAT_ADD imm operand. - -2024-08-26 Andrew Pinski - - PR middle-end/116480 - * internal-fn.cc (expand_POPCOUNT): Use the correct mode - for store flags. - -2024-08-26 Haochen Jiang - - * config/i386/avx10_2-512convertintrin.h - (_mm512_cvtpbf8_ph): New. - (_mm512_mask_cvtpbf8_ph): Ditto. - (_mm512_maskz_cvtpbf8_ph): Ditto. - * config/i386/avx10_2convertintrin.h - (_mm_cvtpbf8_ph): Ditto. - (_mm_mask_cvtpbf8_ph): Ditto. - (_mm_maskz_cvtpbf8_ph): Ditto. - (_mm256_cvtpbf8_ph): Ditto. - (_mm256_mask_cvtpbf8_ph): Ditto. - (_mm256_maskz_cvtpbf8_ph): Ditto. - -2024-08-26 Zhang, Jun - Haochen Jiang - Hongtao Liu - - * config/i386/i386-expand.cc - (ix86_ssecom_setcc): Mention behavior change on flags. - (ix86_expand_sse_comi): Handle AVX10.2 behavior. - (ix86_expand_sse_comi_round): Ditto. - (ix86_expand_round_builtin): Ditto. - (ix86_expand_builtin): Change function call. - * config/i386/i386.md (UNSPEC_COMX): New unspec. - * config/i386/sse.md - (avx10_2_vcomx): New. - (_comi): Add HFmode. - -2024-08-26 Zhang, Jun - - * config.gcc: Add avx10_2copyintrin.h. - * config/i386/i386.md (avx10_2): New isa attribute. - * config/i386/immintrin.h: Include avx10_2copyintrin.h. - * config/i386/sse.md - (sse_movss_): Add new constraints to handle AVX10.2. - (vec_set_0): Ditto. - (@vec_set_0): Ditto. - (vec_set_0): Ditto. - (avx512fp16_mov): Ditto. - (*vec_set_0_1): New split. - * config/i386/avx10_2copyintrin.h: New file. - -2024-08-26 Mo, Zewei - Hu, Lin1 - Haochen Jiang - - * config.gcc: Add avx10_2-512minmaxintrin.h and - avx10_2minmaxintrin.h. - * config/i386/i386-builtin-types.def: - Add DEF_FUNCTION_TYPE (V8BF, V8BF, V8BF, INT, V8BF, UQI), - (V16BF, V16BF, V16BF, INT, V16BF, UHI), - (V32BF, V32BF, V32BF, INT, V32BF, USI), - (V8HF, V8HF, V8HF, INT, V8HF, UQI), - (V8DF, V8DF, V8DF, INT, V8DF, UQI, INT), - (V32HF, V32HF, V32HF, INT, V32HF, USI, INT), - (V16HF, V16HF, V16HF, INT, V16HF, UHI, INT), - (V16SF, V16SF, V16SF, INT, V16SF, UHI, INT). - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc - (ix86_expand_args_builtin): Handle V8BF_FTYPE_V8BF_V8BF_INT_V8BF_UQI, - V16BF_FTYPE_V16BF_V16BF_INT_V16BF_UHI, - V32BF_FTYPE_V32BF_V32BF_INT_V32BF_USI, - V8HF_FTYPE_V8HF_V8HF_INT_V8HF_UQI, - (ix86_expand_round_builtin): Handle V8DF_FTYPE_V8DF_V8DF_INT_V8DF_UQI_INT, - V32HF_FTYPE_V32HF_V32HF_INT_V32HF_USI_INT, - V16HF_FTYPE_V16HF_V16HF_INT_V16HF_UHI_INT. - V16SF_FTYPE_V16SF_V16SF_INT_V16SF_UHI_INT. - * config/i386/immintrin.h: Include avx10_2-512mixmaxintrin.h and - avx10_2minmaxintrin.h. - * config/i386/sse.md (VFH_AVX10_2): New. - (avx10_2_vminmaxnepbf16_): New define_insn. - (avx10_2_minmaxp): Ditto. - (avx10_2_minmaxs): Ditto. - * config/i386/avx10_2-512minmaxintrin.h: New file. - * config/i386/avx10_2minmaxintrin.h: Ditto. - -2024-08-26 Hu, Lin1 - - * config/i386/avx10_2-512satcvtintrin.h: Add new intrin. - * config/i386/avx10_2satcvtintrin.h: Ditto. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md (VF1_VF2_AVX10_2): New iterator. - (VF2_AVX10_2): Ditto. - (VI8_AVX10_2): Ditto. - (sat_cvt_sign_prefix): Add new UNSPEC. - (UNSPEC_SAT_CVT_DS_SIGN_ITER): New iterator. - (pd2dqssuff): Ditto. - (avx10_2_vcvtt2dqs): - New. - (avx10_2_vcvttpd2qqs): - Ditto. - (avx10_2_vcvttps2qqs): - Ditto. - (avx10_2_vcvttsd2sis): - Ditto. - (avx10_2_vcvttss2sis): - Ditto. - -2024-08-26 Hu, Lin1 - - * config.gcc: Add avx10_2satcvtintrin.h and - avx10_2-512satcvtintrin.h. - * config/i386/i386-builtin-types.def: - Add DEF_FUNCTION_TYPE (V8HI, V8BF, V8HI, UQI), - (V16HI, V16BF, V16HI, UHI), (V32HI, V32BF, V32HI, USI), - (V16SI, V16SF, V16SI, UHI, INT), (V16HI, V16BF, V16HI, UHI, INT), - (V32HI, V32BF, V32HI, USI, INT). - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle - V32HI_FTYPE_V32BF_V32HI_USI, V16HI_FTYPE_V16BF_V16HI_UHI, - V8HI_FTYPE_V8BF_V8HI_UQI. - (ix86_expand_round_builtin): Handle V32HI_FTYPE_V32BF_V32HI_USI_INT, - V16SI_FTYPE_V16SF_V16SI_UHI_INT, V16HI_FTYPE_V16BF_V16HI_UHI_INT. - * config/i386/immintrin.h: Include avx10_2satcvtintrin.h and - avx10_2-512savcvtintrin.h. - * config/i386/sse.md: - (UNSPEC_CVTNE_BF16_IBS_ITER): New iterator. - (sat_cvt_sign_prefix): Ditto. - (sat_cvt_trunc_prefix): Ditto. - (UNSPEC_CVT_PH_IBS_ITER): Ditto. - (UNSPEC_CVTT_PH_IBS_ITER): Ditto. - (UNSPEC_CVT_PS_IBS_ITER): Ditto. - (UNSPEC_CVTT_PS_IBS_ITER): Ditto. - (avx10_2_cvtnebf162ibs): - New define_insn. - (avx10_2_cvtph2ibs): - Ditto. - (avx10_2_cvttph2ibs): - Ditto. - (avx10_2_cvtps2ibs): - Ditto. - (avx10_2_cvttps2ibs): - Ditto. - * config/i386/avx10_2-512satcvtintrin.h: New file. - * config/i386/avx10_2satcvtintrin.h: Ditto. - -2024-08-26 konglin1 - Levy Hsu - - * config/i386/avx10_2-512bf16intrin.h: Add new intrinsics. - * config/i386/avx10_2bf16intrin.h: Diito. - * config/i386/i386-builtin-types.def : Add new DEF_FUNCTION_TYPE - for new type. - * config/i386/i386-builtin.def (BDESC): Add new buildin. - * config/i386/i386-expand.cc (ix86_expand_args_builtin): - Handle new type. - * config/i386/sse.md (vecmemsuffix): Add vector BF mode. - (avx10_2_rsqrtpbf16_): New define_insn. - (avx10_2_sqrtnepbf16_): Ditto. - (avx10_2_rcppbf16_): Ditto. - (avx10_2_getexppbf16_): Ditto. - (BF16IMMOP): New iterator. - (bf16immop): Ditto. - (avx10_2_pbf16_): New define_insn. - (avx10_2_fpclasspbf16_): Ditto. - (avx10_2_cmppbf16_): Ditto. - (avx10_2_comsbf16_v8bf): Ditto. - -2024-08-26 konglin1 - Levy Hsu - - * config.gcc: Add avx10_2-512bf16intrin.h and avx10_2bf16intrin.h. - * config/i386/i386-builtin-types.def : Add new - DEF_FUNCTION_TYPE for V32BF_FTYPE_V32BF_V32BF, - V16BF_FTYPE_V16BF_V16BF, V8BF_FTYPE_V8BF_V8BF, - V8BF_FTYPE_V8BF_V8BF_UQI, V16BF_FTYPE_V16BF_V16BF_UHI, - V32BF_FTYPE_V32BF_V32BF_USI, V32BF_FTYPE_V32BF_V32BF_V32BF_USI, - V8BF_FTYPE_V8BF_V8BF_V8BF_UQI and V16BF_FTYPE_V16BF_V16BF_V16BF_UHI. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_args_builtin): - Handle new DEF_FUNCTION_TYPE. - * config/i386/immintrin.h: Include avx10_2-512bf16intrin.h and - avx10_2bf16intrin.h. - * config/i386/sse.md - (VBF_AVX10_2): New iterator. - (avx10_2_scalefpbf16_): New define_insn. - (avx10_2_nepbf16_): Ditto. - (avx10_2_nepbf16_): Ditto. - (avx10_2_fmaddnepbf16__maskz): New expander. - (avx10_2_fnmaddnepbf16__maskz): Ditto. - (avx10_2_fmsubnepbf16__maskz): Ditto. - (avx10_2_fnmsubnepbf16__maskz): Ditto. - (avx10_2_fmaddnepbf16_): New define_insn. - (avx10_2_fmaddnepbf16__mask): Ditto. - (avx10_2_fmaddnepbf16__mask3): Ditto. - (avx10_2_fnmaddnepbf16_): Ditto. - (avx10_2_fnmaddnepbf16__mask): Ditto. - (avx10_2_fnmaddnepbf16__mask3): Ditto. - (avx10_2_fmsubnepbf16_): Ditto. - (avx10_2_fmsubnepbf16__mask): Ditto. - (avx10_2_fmsubnepbf16__mask3): Ditto. - (avx10_2_fnmsubnepbf16_): Ditto. - (avx10_2_fnmsubnepbf16__mask): Ditto. - (avx10_2_fnmsubnepbf16__mask3): Ditto. - * config/i386/avx10_2-512bf16intrin.h: New file. - * config/i386/avx10_2bf16intrin.h: Ditto. - -2024-08-26 Levy Hsu - Kong Lingling - - * config.gcc: Add avx10_2-512convertintrin.h and - avx10_2convertintrin.h. - * config/i386/i386-builtin-types.def: Add new DEF_POINTER_TYPE - and DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_args_builtin): - Handle AVX10.2. - (ix86_expand_round_builtin): Ditto. - * config/i386/immintrin.h: Include avx10_2-512convertintrin.h, - avx10_2convertintrin.h. - * config/i386/sse.md (VHF_AVX10_2): New iterator. - (bf16_ph): Add 512 bit mode. - (avx10_2_cvt2ps2phx_): New define_insn. - (ssebvecmode): New iterator. - (UNSPEC_NECONVERTFP8_PACK): Ditto. - (neconvertfp8_pack): Ditto. - (vcvt): New define_insn. - (ssebvecmode_2): New iterator. - (UNSPEC_VCVTBIASPH2FP8_PACK): Ditto. - (biasph2fp8_pack): Ditto. - (vcvtv8hf): New expander. - (vcvtv8hf_mask): Ditto. - (*vcvtv8hf): New define_insn. - (*vcvtv8hf_mask): Ditto. - (VHF_AVX10_2_2): New iterator. - (vcvt): New define_insn. - (VHF_256_512): New iterator. - (ph2fp8suff): Ditto. - (UNSPEC_NECONVERTPH2FP8_PACK): Ditto. - (neconvertph2fp8): Ditto. - (vcvtv8hf_mask): New expander. - (*vcvtv8hf): New define_insn. - (*vcvtv8hf_mask): Ditto. - (vcvt): Ditto. - (vcvthf82ph): Ditto. - * config/i386/avx10_2-512convertintrin.h: New file. - * config/i386/avx10_2convertintrin.h: Ditto. - -2024-08-26 Haochen Jiang - Hongyu Wang - - * config/i386/avx10_2-512mediaintrin.h: Add new intrins. - * config/i386/avx10_2mediaintrin.h: Ditto. - * config/i386/i386-builtin.def: Add new builtins. - * config/i386/i386-builtins.cc (def_builtin): Handle shared - builtins between AVXVNNIINT16 and AVX10.2. - * config/i386/i386-expand.cc (ix86_check_builtin_isa_match): - Ditto. - * config/i386/sse.md (unspec): Add UNSPEC_VDPPHPS. - (avx10_2_mpsadbw): New define_insn. - (_mpsadbw): Ditto. - (vpdp_): Add AVX10_2_256. - (vpdp_v16si): New defin_insn. - (vpdp__mask): Ditto. - (*vpdp__maskz): Ditto. - (vpdp__maskz): New expander. - (vdpphps_): New define_insn. - (vdpphps__mask): Ditto. - (*vdpphps__maskz): Ditto. - (vdpphps__maskz): New expander. - -2024-08-26 Hongyu Wang - Haochen Jiang - - * config.gcc: Add avx10_2mediaintrin.h and - avx10_2-512mediaintrin.h. - * config/i386/i386-builtin.def: Add new builtins. - * config/i386/i386-builtins.cc (def_builtin): Handle shared - builtins between AVXVNNIINT8 and AVX10.2. - * config/i386/i386-expand.cc (ix86_check_builtin_isa_match): - Ditto. - * config/i386/immintrin.h: Include avx10_2mediaintrin.h and - avx10_2-512mediaintrin.h - * config/i386/sse.md: (VI4_AVX10_2): New. - (vpdp_): Add AVX10_2_256. - (vpdp_v16si): New define_insn. - (vpdp__mask): Ditto. - (*vpdp__maskz): Ditto. - (vpdp__maskz): New expander. - * config/i386/avx10_2-512mediaintrin.h: New file. - * config/i386/avx10_2mediaintrin.h: Ditto. - -2024-08-26 Pan Li - - * config/riscv/riscv.cc (riscv_gen_unsigned_xmode_reg): Add new - func impl to gen xmode rtx reg from operand rtx. - (riscv_expand_ussub): Gen xmode reg for operand 1. - * config/riscv/riscv.md: Allow const_int for operand 1. - -2024-08-25 demin.han - - * config/riscv/vector.md: Add !FLOAT_MODE_P constraint. - -2024-08-25 Xianmiao Qu - - * lower-subreg.cc (resolve_simple_move): Re-add calling emit_clobber - immediately before moving a multi-word register by parts. - -2024-08-25 Andi Kleen - - PR tree-optimization/115866 - * tree-if-conv.cc (if_convertible_switch_p): New function. - (if_convertible_stmt_p): Check for switch. - (get_loop_body_in_if_conv_order): Handle switch. - (predicate_bbs): Likewise. - (predicate_statements): Likewise. - (remove_conditions_and_labels): Likewise. - (ifcvt_split_critical_edges): Likewise. - (ifcvt_local_dce): Likewise. - -2024-08-25 Mark Harmstone - - * dwarf2codeview.cc (write_optimized_static_local_vars): New function. - (write_function): Call write_optimized_static_local_vars. - -2024-08-25 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add S_FRAMEPROC. - (write_s_frameproc): New function. - (write_function): Call write_s_frameproc. - -2024-08-25 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add S_DEFRANGE_REGISTER_REL. - (write_defrange_register_rel): New function. - (write_optimized_local_variable_loc): Add fbloc param, and call - write_defrange_register_rel. - (write_optimized_local_variable): Add fbloc param. - (write_optimized_function_vars): Add fbloc param. - -2024-08-25 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add S_LOCAL and - S_DEFRANGE_REGISTER. - (write_s_local): New function. - (write_defrange_register): New function. - (write_optimized_local_variable_loc): New function. - (write_optimized_local_variable): New function. - (write_optimized_function_vars): New function. - (write_function): Call write_optimized_function_vars if variable - tracking enabled. - * dwarf2out.cc (typedef var_loc_view): Move to dwarf2out.h. - (struct dw_loc_list_struct): Likewise. - * dwarf2out.h (typedef var_loc_view): Move from dwarf2out.h. - (struct dw_loc_list_struct): Likewise. - * opts.cc (finish_options): Enable variable tracking for CodeView. - -2024-08-25 Roger Sayle - Uros Bizjak - - * config/i386/i386-features.cc (compute_convert_gain) - : Update to match ix86_expand_v1ti_ashiftrt. - -2024-08-23 Patrick O'Neill - - * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p): - Use encoded_nelts when calling repeating_sequence_p. - (rvv_builder::is_repeating_sequence): Ditto. - (rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto. - -2024-08-23 Manolis Tsamis - - PR rtl-optimization/116372 - PR rtl-optimization/116405 - * ifcvt.cc (noce_convert_multiple_sets): Iterate backwards and track - target registers. - -2024-08-23 Manolis Tsamis - - PR middle-end/116358 - * ifcvt.cc (noce_convert_multiple_sets): Disallow call insns. - -2024-08-23 Peter Bergner - - PR target/116415 - * config/rs6000/rs6000.h (TI_OR_PTI_MODE): New define. - * config/rs6000/rs6000-p8swap.cc (rs6000_analyze_swaps): Use it to - handle PTImode identically to TImode. - -2024-08-23 Richard Biener - - PR tree-optimization/116463 - * tree-complex.cc: Include tree-ssa-dce.h. - (dce_worklist): New global. - (update_complex_assignment): Add SSA def to the DCE worklist. - (tree_lower_complex): Perform DCE. - -2024-08-23 Pan Li - - * match.pd: Add form 4 for unsigned .SAT_TRUNC matching. - -2024-08-23 Robin Dapp - - PR middle-end/115495 - * cfgexpand.cc (expand_debug_expr): Require mode. - * combine.cc (make_extraction): Ditto. - * config/aarch64/aarch64.cc (aarch64_expand_cpymem): Ditto. - (aarch64_expand_setmem): Ditto. - * config/arc/arc.cc (arc_expand_cpymem): Ditto. - * config/arm/arm.cc (arm_expand_divmod_libfunc): Ditto. - * config/i386/i386.cc (ix86_get_mask_mode): Ditto. - * config/rs6000/predicates.md: Ditto. - * config/rs6000/rs6000.cc (vspltis_constant): Ditto. - * config/s390/s390.cc (s390_expand_insv): Ditto. - * config/sparc/sparc.cc (assign_int_registers): Ditto. - * coverage.cc (get_gcov_type): Ditto. - (get_gcov_unsigned_t): Ditto. - * dse.cc (find_shift_sequence): Ditto. - * expmed.cc (store_integral_bit_field): Ditto. - * expr.cc (convert_mode_scalar): Ditto. - (op_by_pieces_d::smallest_fixed_size_mode_for_size): Ditto. - (emit_block_move_via_oriented_loop): Ditto. - (copy_blkmode_to_reg): Ditto. - (store_field): Ditto. - * internal-fn.cc (expand_arith_overflow): Ditto. - * machmode.h (HAVE_MACHINE_MODES): Ditto. - (smallest_mode_for_size): Use opt_machine_mode. - (smallest_int_mode_for_size): Use opt_scalar_int_mode. - * optabs-query.cc (get_best_extraction_insn): Require mode. - * optabs.cc (expand_twoval_binop_libfunc): Ditto. - * stor-layout.cc (smallest_mode_for_size): Return - opt_machine_mode. - (layout_type): Require mode. - (initialize_sizetypes): Ditto. - * tree-ssa-loop-manip.cc (canonicalize_loop_ivs): Ditto. - -2024-08-23 Robin Dapp - - * config/riscv/autovec.md (abs2): Expand via max (a, -a). - -2024-08-23 Gerald Pfeifer - - * doc/gm2.texi (License): Specifically link to GPL v3.0 - -2024-08-22 Jeff Law - - PR rtl-optimization/116420 - * ext-dce.cc (ext_dce_init): Fix loop iteration when setting up the - interesting block for DF to analyze. - -2024-08-22 Prathamesh Kulkarni - - * lto-streamer-in.cc: (lto_read_tree_1): Set DECL_MODE (expr) to - TREE_TYPE (TYPE_MODE (expr)) if TREE_TYPE (expr) is aggregate type and - offloading is enabled. - * stor-layout.cc (layout_type): Move computation of mode for - ARRAY_TYPE from ... - (compute_array_mode): ... to here. - * stor-layout.h (compute_array_mode): Declare. - * tree-streamer-in.cc: Include stor-layout.h. - (unpack_ts_common_value_fields): Call compute_array_mode if offloading - is enabled. - * tree-streamer-out.cc (pack_ts_fixed_cst_value_fields): Stream out - VOIDmode if decl has aggregate type and offloading is enabled. - (pack_ts_type_common_value_fields): Stream out VOIDmode for aggregate - type if offloading is enabled. - -2024-08-22 Raphael Moreira Zinsly - - * config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): Add - epilogue code for stack-clash and fix prologue cfi note. - -2024-08-22 Andrew Pinski - Richard Biener - - PR middle-end/116454 - * fold-const.cc (fold_binary_loc): Fix `a * +-1i` - by wrapping arg0 with save_expr when it is not COMPLEX_EXPR. - -2024-08-22 Jennifer Schmitz - - PR target/116365 - * config/aarch64/aarch64-opts.h - (enum aarch64_autovec_preference_enum): New enum. - * config/aarch64/aarch64.cc (aarch64_cmp_autovec_modes): - Change numerical to enum values. - (aarch64_autovectorize_vector_modes): Change numerical to enum - values. - (aarch64_vector_costs::record_potential_advsimd_unrolling): - Change numerical to enum values. - * config/aarch64/aarch64.opt: Change param type to enum. - * doc/invoke.texi: Update documentation. - -2024-08-22 Bernd Edlinger - - * dwarf2out.cc (dwarf2out_maybe_output_loclist_view_pair, - output_loc_list): Correct handling of -gno-as-loc-support, - use ZERO_VIEW_P to output view number as zero value. - * toplev.cc (process_options): Do not automatically disable - -gvariable-location-views when -gno-as-loc-support or - -gno-as-locview-support is used, instead do automatically - disable -gas-locview-support if -gno-as-loc-support is used. - -2024-08-22 Bernd Edlinger - - PR debug/87440 - * dwarf2out.cc (gen_inlined_subroutine_die): Handle the case - of multiple subranges correctly. - -2024-08-22 Jennifer Schmitz - - PR tree-optimization/101390 - * tree-vect-patterns.cc (vect_recog_mod_var_pattern): Add new pattern. - -2024-08-22 Alexandre Oliva - - * toplev.cc (dump_final_alias_vcg): New. - (dump_final_node_vcg): Dump aliases along with node. - -2024-08-22 liuhongt - - * config/i386/i386-options.cc (ix86_option_override_internal): - set ix86_{move_max,store_max} to PVW_AVX256 when TARGET_AVX - instead of PVW_AVX128. - -2024-08-21 Jeff Law - - PR rtl-optimization/116437 - * ext-dce.cc (ext_dce_try_optimize_insn): Handle SUBREG and - ZERO_EXTRACT destinations. - -2024-08-21 Richard Sandiford - - PR testsuite/116238 - * config/aarch64/aarch64.cc (aarch64_hard_regno_caller_save_mode): - Only return SImode if we can convert to and from it. - -2024-08-21 Andrew Pinski - - PR target/113042 - * config/aarch64/aarch64.md (popcountti2): New define_expand. - -2024-08-21 Richard Biener - - PR tree-optimization/116406 - * tree-ssa-sccvn.cc (vn_reference_eq): Never equate - float and int when the float mode cannot transfer bits. - Do not try to anticipate which is the mode we actually load - from. - -2024-08-21 Martin Jambor - - PR target/58416 - * tree-sra.cc (types_risk_mangled_binary_repr_p): New function. - (sort_and_splice_var_accesses): Use it. - (propagate_subaccesses_from_rhs): Likewise. - -2024-08-21 Richard Biener - - PR tree-optimization/116380 - * tree-loop-distribution.cc (copy_loop_before): Handle - out-of-loop defs appropriately. - -2024-08-21 Kewen Lin - - * config/rs6000/vsx.md (define_insn *vsx_le_perm_store_{, - ,v8hi,v16qi,}): Remove constraint modifier - "+" from operand 1. - -2024-08-21 Kewen Lin - - * config/rs6000/vsx.md (*vsx_le_perm_store_{,, - v8hi,v16qi,} !reload_completed splitters): Assert - can_create_pseudo_p and always generate one new pseudo for operand 1. - -2024-08-21 liuhongt - - * config/i386/sse.md (mov): Align predicates for - operands[1] between mov and *mov_internal. - * config/i386/mmx.md (mov): Ditto. - -2024-08-21 Andrew Pinski - - * builtins.cc (fold_builtin_bit_query): Don't expand double - `unsigned long long` typess if there is an optab entry for that - type. - -2024-08-21 Andrew Pinski - - PR sanitizer/115205 - * asan.cc (asan_instrument): Call initialize_sanitizer_builtins - for hwasan. - (hwasan_finish_file): Likewise. - -2024-08-20 Andrew Pinski - - PR tree-optimization/116412 - * gimple-match-exports.cc (gimple_extract): Return false if op0 - was not a SSA name nor a min invariant for REALPART_EXPR/IMAGPART_EXPR/VCE - and BIT_FIELD_REF. - -2024-08-20 Andrew Pinski - - PR tree-optimization/116409 - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Move - maybe_push_res_to_seq before creating the phi node and the debug dump. - Return false if maybe_push_res_to_seq fails. - -2024-08-20 Gerald Pfeifer - - * doc/install.texi (Specific) : Normalize reference to - binutils. - -2024-08-20 Andrew Pinski - - PR tree-optimization/103660 - * match.pd (`(a ? b : 0) | (a ? 0 : c)`): New pattern. - -2024-08-20 Andrew Pinski - - PR tree-optimization/103660 - * match.pd (`((a CMP b) ? c : 0) | ((a CMP' b) ? d : 0)`): Extend to support - XOR and PLUS. - -2024-08-20 Richard Biener - - PR tree-optimization/116274 - * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Cost scalar loads - and stores as simple scalar stmts when they access a non-global, - not address-taken variable that doesn't have BLKmode assigned. - -2024-08-20 Prathamesh Kulkarni - - * optc-save-gen.awk: New array var_target_opt. Use it to generate - if (!lto_stream_offload_p) check in cl_optimization_stream_out, - and generate a diagnostic with #error if accelerator backend uses - Optimization for target-specifc options in cl_optimization_stream_in. - -2024-08-19 Andreas Schwab - - PR target/113939 - * config/m68k/m68k.opt (mlra): New target option. - * config/m68k/m68k.cc (m68k_use_lra_p): New function. - (TARGET_LRA_P): Use it. - * config/m68k/m68k.opt.urls: Regenerate. - -2024-08-19 Andrew Carlotti - - PR target/112108 - * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): Remove - feature check at initialisation. - (aarch64_general_check_builtin_call): Check ls64 intrinsics. - * config/aarch64/arm_acle.h: (data512_t) Make always available. - -2024-08-19 Andrew Carlotti - - PR target/112108 - * config/aarch64/aarch64-builtins.cc (aarch64_init_memtag_builtins): - Define intrinsic names directly. - (aarch64_general_init_builtins): Move memtag intialisation... - (handle_arm_acle_h): ...to here, and remove feature check. - (aarch64_general_check_builtin_call): Check memtag intrinsics. - * config/aarch64/arm_acle.h (__arm_mte_create_random_tag) - (__arm_mte_exclude_tag, __arm_mte_ptrdiff) - (__arm_mte_increment_tag, __arm_mte_set_tag, __arm_mte_get_tag): - Remove. - -2024-08-19 Andrew Carlotti - - PR target/112108 - * config/aarch64/aarch64-builtins.cc (aarch64_init_tme_builtins): - Define intrinsic names directly. - (aarch64_general_init_builtins): Move tme initialisation... - (handle_arm_acle_h): ...to here, and remove feature check. - (aarch64_general_check_builtin_call): Check tme intrinsics. - * config/aarch64/arm_acle.h (__tstart, __tcommit, __tcancel) - (__ttest): Remove. - (_TMFAILURE_*): Define unconditionally. - -2024-08-19 Andrew Carlotti - - * config/aarch64/aarch64-sve-builtins.cc (check_builtin_call) - (expand_builtin): Update calls to the below. - (report_missing_extension, report_missing_registers) - (check_required_extensions): Move out of aarch64_sve namespace, - rename, and move into... - * config/aarch64/aarch64-builtins.cc (aarch64_report_missing_extension) - (aarch64_report_missing_registers) - (aarch64_check_required_extensions) ...here. - * config/aarch64/aarch64-protos.h (aarch64_check_required_extensions): - Add prototype. - -2024-08-19 Andrew Carlotti - - * config/aarch64/aarch64-sve-builtins.cc - (check_required_registers): Remove target check and rename to... - (report_missing_registers): ...this. - (check_required_extensions): Refactor. - -2024-08-19 Kyrylo Tkachov - - * config/aarch64/tuning_models/neoversev2.h (fp_reassoc_width): - Set to 4. - (tune_flags): Add AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA. - -2024-08-19 Andre Vieira - - * read-rtl.cc (rtx_reader::rtx_alloc_for_name): Allow all attribute - types to produce code 'values'. - (check_code_attribute): Rename ... - (check_attribute_codes): ... to this. And change comments to refer to - * doc/md.texi: Add paragraph to document that you can use int and mode - attributes to produce codes. - -2024-08-19 Haochen Gui - - * config/aarch64/aarch64-simd.md (mov for VSTRUCT_QD): - Expand 16-byte vector mode const0 store by TImode. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def: Add new builtins. - * config/i386/sse.md: - (_scalef): Add condition check. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md: - (reducep): - Add condition check. - (_rndscale): Ditto. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): - Handle V8SF_FTYPE_V8SF_V8SF_INT_V8SF_UQI_INT, - V4DF_FTYPE_V4DF_V4DF_INT_V4DF_UQI_INT. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V8SF_FTYPE_V8SF_V8SF_UQI_INT, V4DF_FTYPE_V4DF_V4DF_UQI_INT, - V16HF_FTYPE_V16HF_V16HF_UHI_INT, V16HF_FTYPE_V16HF_INT_V16HF_UHI_INT, - V4DF_FTYPE_V4DF_INT_V4DF_UQI_INT, V8SF_FTYPE_V8SF_INT_V8SF_UQI_INT. - * config/i386/sse.md: - (_getexp): - Add condition check. - (_getmant): - Ditto. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md: - (_fnmsub__mask3): Add condition check. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md: - (_fmsub__mask): Add condition check. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md: - (_fmaddsub__mask): Add condition check. - (_fmaddsub__mask3): Ditto. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md: - (_fmadd__mask3): Add condition check. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V16HF_FTYPE_V16HF_V16HF_INT, V16HF_FTYPE_V16HF_V16HF_V16HF_INT, - V16HF_FTYPE_V16HF_V16HF_V16HF_UQI_INT, - V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI_INT, - V8SF_FTYPE_V8SF_V8SF_V8SI_INT_UQI_INT. - * config/i386/sse.md: - (_fixupimm): - Add condition check. - (_fixupimm_mask): Ditto. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V16HF_FTYPE_V16HI_V16HF_UHI_INT. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md - (unspec_fix_truncv8sfv8si2): Extend rounding control. - (fixuns_trunc2): - Ditto. - (floatuns2): - Add condition check. - (fix_trunc2): - Remove round_saeonly_name. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/sse.md (avx512fp16_fix_trunc2): - Extend round control for 256bit. - (unspec_avx512fp16_fix_trunc2): - Ditto. - (avx512fp16_fix_trunc2): - Add condition check. - * config/i386/subst.md - (round_saeonly_mode_condition): Add V16HI check for 256bit. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V4DF_FTYPE_V4DI_V4DF_UQI_INT, V4SF_FTYPE_V4DI_V4SF_UQI_INT, - V8HF_FTYPE_V4DI_V8HF_UQI_INT. - * config/i386/sse.md: - (avx512fp16_vcvtqq2ph_v4di_mask_round): New expand. - (*avx512fp16_vcvt2ph__mask): - Extend round control and add "_1" suffix. - (float2): - Add condition check. - (float2): - Ditto. - (float2): - Limit suffix output. - (unspec_fix_truncv4dfv4si2): Extend round control. - (unspec_fixuns_truncv4dfv4si2): Ditto. - * config/i386/subst.md (round_qq2pssuff): New iterator. - (round_saeonly_suff): Ditto. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V8SI_FTYPE_V8SF_V8SI_UQI_INT, V4DI_FTYPE_V4SF_V4DI_UQI_INT. - * config/i386/sse.md - (_fix_notrunc): - Extend to round. - (_fixuns_notrunc): - Add round condition check. - * config/i386/subst.md (round_constraint4): New. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V16HI_FTYPE_V16HF_V16HI_UHI_INT, V4DF_FTYPE_V4SF_V4DF_UQI_INT - V8HF_FTYPE_V8SF_V8HF_UQI_INT. - * config/i386/sse.md - (avx512fp16_vcvt2ph_): - Add round condition check. - * config/i386/subst.md (round_mode_condition): Add V16HI check for - 256bit. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: New intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V8SF_FTYPE_V8HF_V8SF_UQI_INT, V8SI_FTYPE_V8HF_V8SI_UQI_INT, - V4DF_FTYPE_V8HF_V4DF_UQI_INT, V4DI_FTYPE_V8HF_V4DI_UQI_INT. - * config/i386/sse.md: - (avx512fp16_float_extend_ph2): - Add condition check. - (avx512fp16_vcvtph2_ - ): - Ditto. - (avx512fp16_float_extend_ph2): Extend round saeonly. - (vcvtph2ps256): Ditto. - * config/i386/subst.md - (round_saeonly_applied): New condition. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: Add new intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V4DI_FTYPE_V4DF_V4DI_UQI_INT, V4SI_FTYPE_V4DF_V4SI_UQI_INT. - * config/i386/sse.md: - (avx_cvtpd2dq256): Change name to - avx_cvtpd2dq256 and extend pattern to - generate 256bit insns. - (fixuns_notrunc2): - Add round_mode_condition. - * config/i386/subst.md (round_pd2udqsuff): New iterator. - -2024-08-19 Hu, Lin1 - - * config/i386/avx10_2roundingintrin.h: Add new intrins. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V8SF_FTYPE_V8SI_V8SF_UQI_INT, V4SF_FTYPE_V4DF_V4SF_UQI_INT, - V8HF_FTYPE_V8SI_V8HF_UQI_INT, V8HF_FTYPE_V4DF_V8HF_UQI_INT. - * config/i386/sse.md: - (avx512fp16_vcvt2ph_): - Add condition check. - (avx512fp16_vcvtpd2ph_v4df_mask_round): New expand. - (*avx512fp16_vcvt2ph__mask): Change name to - avx512fp16_vcvt2ph__mask_1 - and extend pattern to generate 256bit insns. - (avx_cvtpd2ps256): Change name to - avx_cvtpd2ps256 and extend pattern to - generate 256bit insns. - * config/i386/subst.md (round_applied): New condition. - (round_suff): New iterator. - (round_mode_condition): Add V32HI check for 512bit. - (round_saeonly_mode_condition): Ditto. - -2024-08-19 Hu, Lin1 - - * config.gcc: Add avx10_2roundingintrin.h. - * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE. - * config/i386/i386-builtin.def (BDESC): Add new builtins. - * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle - V4DF_FTYPE_V4DF_V4DF_V4DF_UQI_INT, V8SF_FTYPE_V8SF_V8SF_V8SF_UQI_INT, - V16HF_FTYPE_V16HF_V16HF_V16HF_UHI_INT, UQI_FTYPE_V4DF_V4DF_INT_UQI_INT, - UHI_FTYPE_V16HF_V16HF_INT_UHI_INT, UQI_FTYPE_V8SF_V8SF_INT_UQI_INT. - * config/i386/immintrin.h: Include avx10_2roundingintrin.h. - * config/i386/sse.md: Change subst_attr name due to renaming. - * config/i386/subst.md: - (): Add condition check for avx10.2 - rounding control 256bit intrins and renamed to ... - (): ...this. - (round_saeonly_mode512bit_condition): Add condition check for - avx10.2 rounding control 256 bit intris and renamed to ... - (round_saeonly_mode_condition): ...this. - * config/i386/avx10_2roundingintrin.h: New file. - -2024-08-18 Jeff Law - - PR rtl-optimization/115876 - * ext-dce.cc (ext_dce_process_sets): Replace hardcoded 63/64 instances - with HOST_BITS_PER_WIDE_INT based values. - (carry_backpropagate): Handle modes with more bits than - HOST_BITS_PER_WIDE_INT gracefully, avoiding undefined behavior. - (ext_dce_process_uses): Handle subreg offsets which would result - in ubsan shifts gracefully, avoiding undefined behavior. - -2024-08-18 Gerald Pfeifer - - * doc/gm2.texi (Contributing): Tweak gm2 mailing list address. - -2024-08-18 Andrew Pinski - - * gimple-match-exports.cc (gimple_match_op::operands_occurs_in_abnormal_phi): - New function. - * gimple-match.h (gimple_match_op): Add operands_occurs_in_abnormal_phi. - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Use gimple_match_op - instead of manually extracting from/creating the gimple. - -2024-08-18 Georg-Johann Lay - - * config/avr/avr.md (*add3_split) [!reload_completed]: - Add a scratch:QI to 16-bit additions with constant. - -2024-08-18 Georg-Johann Lay - - PR target/116407 - * config/avr/avr.md (*dec-and-branchhi!=-1.l.clobber): - Increase the additional jump offset to 2 words. - -2024-08-18 Georg-Johann Lay - - PR target/116407 - * config/avr/avr-protos.h (avr_jump_mode): Add an int argument. - * config/avr/avr.cc (avr_jump_mode): Add an int argument to increase - the computed jump offset of backwards branches. - * config/avr/avr.md (*dec-and-branchhi!=-1, *dec-and-branchsi!=-1): - Increase the jump offset used by avr_jump_mode() as needed. - -2024-08-18 Andrew Pinski - - * gimple-fold.cc (mark_lhs_in_seq_for_dce): New function. - (replace_stmt_with_simplification): Call mark_lhs_in_seq_for_dce - right before inserting the sequence. - (fold_stmt_1): Add dce_worklist argument, update call to - replace_stmt_with_simplification. - (fold_stmt): Add dce_worklist argument, update call to fold_stmt_1. - (fold_stmt_inplace): Update call to fold_stmt_1. - * gimple-fold.h (fold_stmt): Add bitmap argument. - * tree-ssa-forwprop.cc (pass_forwprop::execute): Update call to fold_stmt. - -2024-08-18 Pan Li - - * config/riscv/iterators.md (ANYI_QUAD_TRUNC): New iterator for - quad truncation. - (ANYI_OCT_TRUNC): New iterator for oct truncation. - (ANYI_QUAD_TRUNCATED): New attr for truncated quad modes. - (ANYI_OCT_TRUNCATED): New attr for truncated oct modes. - (anyi_quad_truncated): Ditto but for lower case. - (anyi_oct_truncated): Ditto but for lower case. - * config/riscv/riscv.md (ustrunc2): - Add new pattern for quad truncation. - (ustrunc2): Ditto but for oct. - -2024-08-18 Pan Li - - PR target/116278 - * config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Add new - func impl to zero extend rtx. - (riscv_expand_usadd): Leverage above func to cleanup operands 0 - and remove the special handing for SImode in RV64. - -2024-08-17 Jeff Law - - * ext-dce.cc (carry_backpropagate): Cast mask to HOST_WIDE_INT before - shifting. - -2024-08-17 Kevin Kirspel - - * config/riscv/t-rtems: Add ilp32f multilib. - -2024-08-17 Jeff Law - - * config/v850/v850.md (rotlsi3): Allow more cases for V850E3V5+. - -2024-08-17 Jin Ma - - * config/riscv/vector.md: Allow scalar operand to be 0. - -2024-08-17 Jeff Law - - PR target/116282 - * config/riscv/riscv-protos.h (riscv_const_insns): Add new argument. - * config/riscv/riscv.cc (riscv_build_integer): Add new argument - ALLOW_NEW_PSEUDOS. Pass it down to recursive calls and check it - before using synthesis which allows new registers to be created. - (riscv_split_integer_cost): Pass new argument to riscv_build_integer. - (riscv_integer_cost): Add ALLOW_NEW_PSEUDOS argument, pass it down to - riscv_build_integer. - (riscv_legitimate_constant_p): Pass new argument to riscv_const_insns. - (riscv_const_insns): New argment ALLOW_NEW_PSEUDOS. Pass it down to - riscv_integer_cost and riscv_const_insns. - (riscv_split_const_insns): Pass new argument to riscv_const_insns. - (riscv_move_integer, riscv_rtx_costs): Similarly. - * config/riscv/riscv.md (shadd with costly constant): Pass new argument - to riscv_const_insns. - * config/riscv/bitmanip.md (and with costly constant): Pass new argument - to riscv_const_insns. - -2024-08-17 Jin Ma - - * config/riscv/riscv-protos.h (riscv_vector_float_type_p): New. - * config/riscv/riscv-vector-builtins.cc (function_instance::any_type_float_p): - Use riscv_vector_float_type_p instead of FLOAT_MODE_P for judgment. - * config/riscv/riscv.cc (riscv_vector_int_type_p): Change static to extern. - -2024-08-17 Pan Li - - PR target/116280 - * config/riscv/autovec-opt.md: Add quad truncation to - align the mode requirement for vwsll. - -2024-08-17 Feng Wang - - * config/riscv/autovec.md (v3): - Add new define_expand pattern for vector rotate shift. - -2024-08-17 Gerald Pfeifer - - * doc/gm2.texi (What is GNU Modula-2): Tweak PIM4 link. - -2024-08-17 Gerald Pfeifer - - * doc/gm2.texi (Community): Tweak link to gm2 list archive. - -2024-08-17 Georg-Johann Lay - - PR target/116390 - * config/avr/avr.cc (avr_out_movsi_mr_r_reg_disp_tiny): Fix - output templates for the reg_base == reg_src and - reg_src == reg_base - 2 cases. - -2024-08-17 曾治金 - - PR target/116305 - * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Take - BYTES_PER_RISCV_VECTOR for *factor instead of riscv_bytes_per_vector_chunk. - -2024-08-16 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add S_REGREL32. - (write_fbreg_variable): New function. - (write_unoptimized_local_variable): Add fblock parameter, and handle - DW_OP_fbreg locations. - (write_unoptimized_function_vars): Add fbloc parameter. - (write_function): Extract frame base from DWARF. - * dwarf2out.cc (convert_cfa_to_fb_loc_list): Output simplified frame - base information for CodeView. - -2024-08-16 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add S_REGISTER. - (enum cv_x86_register): New type. - (enum cv_amd64_register): New type. - (dwarf_reg_to_cv): New function. - (write_s_register): New function. - (write_unoptimized_local_variable): Handle parameters and DW_OP_reg* - location types. - -2024-08-16 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add S_END and S_BLOCK32. - (write_local_s_ldata32): New function. - (write_unoptimized_local_variable): New function. - (write_s_block32): New function. - (write_s_end): New function. - (write_unoptimized_function_vars): New function. - (write_function): Call write_unoptimized_function_vars. - -2024-08-16 Mark Harmstone - - * dwarf2codeview.cc (get_type_num_enumeration_type): Initialize last_type - to 0. - (get_type_num_struct): Likewise. - -2024-08-16 Georg-Johann Lay - - Backported from master: - 2024-08-16 Georg-Johann Lay - - PR target/85624 - * config/avr/avr.md (*clrmemqi*): Use HImode for alignment operand. - -2024-08-16 Lingling Kong - - * config/i386/sse.md (vpmadd52): - Prohibit egpr for vex version. - (vpdpbusd_): Ditto. - (vpdpbusds_): Ditto. - (vpdpwssd_): Ditto. - (vpdpwssds_): Ditto. - (*vcvtneps2bf16_v4sf): Ditto. - (*vcvtneps2bf16_v8sf): Ditto. - (vpdp_): Ditto. - (vbcstnebf162ps_): Ditto. - (vbcstnesh2ps_): Ditto. - (vcvtnee2ps_): Ditto. - (vcvtneo2ps_): Ditto. - (vpdp_): Ditto. - -2024-08-16 Andrew Pinski - - PR target/113042 - * config/aarch64/aarch64.md (popcount2): Update pattern - to support ALLI modes. - -2024-08-16 Andrew Pinski - - * tree-ssa-phiopt.cc (factor_out_conditional_operation): Update - comment. - -2024-08-15 Vineet Gupta - - * config/riscv/riscv.md: define_insn for fclass insn. - define_expand for isfinite, isnormal, isinf. - -2024-08-15 Roger Sayle - Uros Bizjak - - * config/i386/i386.md (*extendv2di2_highpart_stv_noavx512vl): Split - to an improved implementation on !TARGET_XOP. On TARGET_XOP, use - a new pseudo for the intermediate to simplify register allocation. - -2024-08-15 Richard Sandiford - - PR middle-end/116236 - * rtlanal.cc (decompose_normal_address): Try to distinguish - bases and indices based on mode, before resorting to "baseness". - -2024-08-15 Richard Sandiford - - PR testsuite/116343 - * recog.h (insn_propagation::apply_to_note): Declare. - * recog.cc (insn_propagation::apply_to_note): New function. - * late-combine.cc (insn_combination::substitute_note): Use - apply_to_note instead of apply_to_rvalue. - * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Improve - dumping of costs for noop moves. - -2024-08-15 Xi Ruoyao - - * config/loongarch/loongarch.md (extendsidi2): Add ("=r", "f") - alternative and use movfr2gr.s for it. The spec clearly states - movfr2gr.s sign extends the value to GRLEN. - (fclass_): Make the result SImode instead of a floating - mode. The fclass results are really not FP values. - (FCLASS_MASK): New define_int_iterator. - (fclass_optab): New define_int_attr. - (): New define_expand - template. - -2024-08-15 liuhongt - - PR target/116274 - * config/i386/i386-expand.cc (ix86_expand_vector_move): - Restrict special case TImode to 128-bit vector conversions via - V2DI under ix86_pre_reload_split (). - * config/i386/i386.cc (inline_secondary_memory_needed): - Movement between GENERAL_REGS and SSE_REGS for TImode doesn't - need secondary reload. - * config/i386/i386.md (*extendsidi2_rex64): Add a - define_peephole2 after it. - -2024-08-15 Richard Sandiford - - PR target/116371 - * config/aarch64/aarch64-sve-builtins-sve2.h (svpext): Rename to... - (svpext_lane): ...this. - * config/aarch64/aarch64-sve-builtins-sve2.cc (svpext_impl): Rename - to... - (svpext_lane_impl): ...this and update instantiation accordingly. - * config/aarch64/aarch64-sve-builtins-sve2.def (svpext): Rename to... - (svpext_lane): ...this. - -2024-08-15 Haochen Gui - - * config/rs6000/rs6000.md (floatti2, floatunsti2, - fix_truncti2): Add guard TARGET_FLOAT128_HW. - * config/rs6000/vsx.md (xsxexpqp__, - xsxsigqp__, xsiexpqpf_, - xsiexpqp__, xscmpexpqp__, - *xscmpexpqp, xststdcnegqp_): Replace guard TARGET_P9_VECTOR - with TARGET_FLOAT128_HW. - (xststdc_, *xststdc_, isinf2): Add guard - TARGET_FLOAT128_HW for the IEEE128 modes. - -2024-08-15 Haochen Gui - - PR target/97786 - * config/rs6000/vsx.md (isnormal2): New expand. - -2024-08-15 Haochen Gui - - PR target/97786 - * config/rs6000/vsx.md (isfinite2): New expand. - -2024-08-15 Haochen Gui - - PR target/97786 - * config/rs6000/rs6000.md (constant VSX_TEST_DATA_CLASS_NAN, - VSX_TEST_DATA_CLASS_POS_INF, VSX_TEST_DATA_CLASS_NEG_INF, - VSX_TEST_DATA_CLASS_POS_ZERO, VSX_TEST_DATA_CLASS_NEG_ZERO, - VSX_TEST_DATA_CLASS_POS_DENORMAL, VSX_TEST_DATA_CLASS_NEG_DENORMAL): - Define. - (mode_attr sdq, vsx_altivec, wa_v, x): Define. - (mode_iterator IEEE_FP): Define. - * config/rs6000/vsx.md (isinf2): New expand. - (expand xststdcqp_, xststdcp): Combine into... - (expand xststdc_): ...this. - (insn *xststdcqp_, *xststdcp): Combine into... - (insn *xststdc_): ...this. - * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Rename - CODE_FOR_xststdcqp_kf as CODE_FOR_xststdc_kf, - CODE_FOR_xststdcqp_tf as CODE_FOR_xststdc_tf. - * config/rs6000/rs6000-builtins.def: Rename xststdcdp as xststdc_df, - xststdcsp as xststdc_sf, xststdcqp_kf as xststdc_kf. - -2024-08-15 Haochen Gui - - * gimple-range-op.cc (class cfn_isfinite): New. - (op_cfn_finite): New variables. - (gimple_range_op_handler::maybe_builtin_call): Handle - CFN_BUILT_IN_ISFINITE. - * value-range.h (class frange): Declear known_isnormal and - known_isdenormal_or_zero. - (frange::known_isnormal): Define. - (frange::known_isdenormal_or_zero): Define. - -2024-08-15 Haochen Gui - - * gimple-range-op.cc (class cfn_isfinite): New. - (op_cfn_finite): New variables. - (gimple_range_op_handler::maybe_builtin_call): Handle - CFN_BUILT_IN_ISFINITE. - -2024-08-15 Haochen Gui - - PR target/114678 - * gimple-range-op.cc (class cfn_isinf): New. - (op_cfn_isinf): New variables. - (gimple_range_op_handler::maybe_builtin_call): Handle - CASE_FLT_FN (BUILT_IN_ISINF). - -2024-08-14 Marek Polacek - - PR c++/116015 - * gimplify.cc (gimplify_arg): Do not strip a TARGET_EXPR whose - initializer is a CONSTRUCTOR. - -2024-08-14 Stefan Schulze Frielinghaus - - * config/s390/vecintrin.h (vec_vstbrh): Remove. - (vec_vstbrf): Remove. - (vec_vstbrg): Remove. - (vec_vstbrq): Remove. - (vec_vstbrf_flt): Remove. - (vec_vstbrg_dbl): Remove. - (vec_vsterb): Remove. - (vec_vsterh): Remove. - (vec_vsterf): Remove. - (vec_vsterg): Remove. - (vec_vsterf_flt): Remove. - (vec_vsterg_dbl): Remove. - -2024-08-14 Stefan Schulze Frielinghaus - - * config/s390/s390-builtin-types.def (BT_FN_UV16QI_UV2DI_UV2DI): - New. - (BT_FN_UV16QI_UV2DI_UV2DI_UV16QI): New. - * config/s390/s390-builtins.def (s390_vgfmg_128): New. - (s390_vgfmag_128): New. - * config/s390/vecintrin.h (vec_gfmsum_128): Use s390_vgfmg_128. - (vec_gfmsum_accum_128): Use s390_vgfmag_128. - -2024-08-14 Lingling Kong - - PR target/113729 - * config/i386/i386.md (*ashlqi3_1_zext): - New define_insn. - (*ashlhi3_1_zext): Ditto. - (*qi3_1_zext): Ditto. - (*hi3_1_zext): Ditto. - -2024-08-14 Lingling Kong - - PR target/113729 - * config/i386/i386.md (*andqi_1_zext): New - define_insn. - (*andhi_1_zext): Ditto. - (*qi_1_zext): Ditto. - (*hi_1_zext): Ditto. - (*negqi_1_zext): Ditto. - (*neghi_1_zext): Ditto. - (*one_cmplqi2_1_zext): Ditto. - (*one_cmplhi2_1_zext): Ditto. - -2024-08-14 Lingling Kong - - PR target/113729 - * config/i386/i386.md (*subqi_1_zext): New - define_insn. - (*subhi_1_zext): Ditto. - (*addqi3_carry_zext): Ditto. - (*addhi3_carry_zext): Ditto. - (*addqi3_carry_zext_0): Ditto. - (*addhi3_carry_zext_0): Ditto. - (*addqi3_carry_zext_0r): Ditto. - (*addhi3_carry_zext_0r): Ditto. - (*subqi3_carry_zext): Ditto. - (*subhi3_carry_zext): Ditto. - (*subqi3_carry_zext_0): Ditto. - (*subhi3_carry_zext_0): Ditto. - (*subqi3_carry_zext_0r): Ditto. - (*subhi3_carry_zext_0r): Ditto. - -2024-08-14 Lingling Kong - - PR target/113729 - * config/i386/i386.md (*addqi_1_zext): New - define. - (*addhi_1_zext): Ditto. - -2024-08-14 Xianmiao Qu - - * genoutput.cc (struct operand_data): Add member 'eq_next' to - point to the next member with the same hash value in the - hash table. - (compare_operands): Move the comparison of the mode to the very - beginning to accelerate the comparison of the two operands. - (struct operand_data_hasher): New, a class that takes into account - the necessary elements for comparing the equality of two operands - in its hash value. - (operand_data_hasher::hash): New. - (operand_data_hasher::equal): New. - (operand_datas): New, hash table of konwn pattern operands. - (place_operands): Use a hash table instead of traversing the array - to find the same operand. - (main): Add initialization of the hash table 'operand_datas'. - -2024-08-14 Jeff Law - - Revert: - 2024-08-12 Jeff Law - - * rtlanal.cc (subreg_regno): Update comment. - * final.cc (alter_subrg): Always use REGNO (SUBREG_REG ()) to get - the base regsiter for paradoxical subregs. - -2024-08-14 liuhongt - - PR target/116174 - * config/i386/i386.cc (ix86_align_loops): Move this to .. - * config/i386/i386-features.cc (ix86_align_loops): .. here. - (class pass_align_tight_loops): New class. - (make_pass_align_tight_loops): New function. - * config/i386/i386-passes.def: Insert pass_align_tight_loops - after pass_insert_endbr_and_patchable_area. - * config/i386/i386-protos.h (make_pass_align_tight_loops): New - declare. - -2024-08-13 Manolis Tsamis - - PR tree-optimization/116353 - * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Check - noce_can_force_operand. - -2024-08-13 Patrick O'Neill - - * config/riscv/riscv-v.cc (legitimize_move): extrac -> extract. - (expand_vec_cmp_float): Remove duplicate vmnor.mm. - * config/riscv/riscv-vector-builtins.cc: ins -> insns. - * config/riscv/riscv.cc (riscv_init_machine_status): mwrvv -> mrvv. - * config/riscv/vector-iterators.md: RVVM8QImde -> RVVM8QImode - * config/riscv/vector.md: Replaced non-existant vsetivl with vsetivli. - -2024-08-13 Pan Li - - PR target/116103 - * internal-fn.cc (type_strictly_matches_mode_p): Add handling - for vector bool type. - -2024-08-13 Kewen Lin - - PR rtl-optimization/116170 - * lra-constraints.cc (curr_insn_transform): Don't emit move back to - old operand if it's CONSTANT_P. - -2024-08-13 Mark Wielaard - - * config/avr/avr.opt.urls: Regenerate. - -2024-08-12 Peter Bergner - - PR target/114759 - * config/rs6000/rs6000.cc (rs6000_override_options_after_change): Move - the disabling of shrink-wrapping from here.... - * config/rs6000/rs6000-logue.cc (rs6000_emit_prologue): ...to here. - -2024-08-12 Jeff Law - - * rtlanal.cc (subreg_regno): Update comment. - * final.cc (alter_subrg): Always use REGNO (SUBREG_REG ()) to get - the base regsiter for paradoxical subregs. - -2024-08-12 Manolis Tsamis - - * ifcvt.cc (need_cmov_or_rewire): Renamed init_noce_multiple_sets_info. - (init_noce_multiple_sets_info): Initialize noce_multiple_sets_info. - (noce_convert_multiple_sets_1): Use noce_multiple_sets_info and handle - rewiring of multiple registers. - (noce_convert_multiple_sets): Updated to use noce_multiple_sets_info. - * ifcvt.h (struct noce_multiple_sets_info): Introduce new struct - noce_multiple_sets_info to store info for noce_convert_multiple_sets. - -2024-08-12 Manolis Tsamis - - * ifcvt.cc (try_emit_cmove_seq): Modify comments. - (noce_convert_multiple_sets_1): Modify comments. - (bb_ok_for_noce_convert_multiple_sets): Allow more operations. - -2024-08-12 Manolis Tsamis - - * ifcvt.cc (check_for_cc_cmp_clobbers): Use modified_in_p instead. - (noce_convert_multiple_sets_1): Don't use seq2 if it clobbers cc_cmp. - Punt if seq clobbers cond. Refactor the code that sets read_comparison. - -2024-08-12 Georg-Johann Lay - - PR target/85624 - * config/avr/avr.md (setmemhi): Set alignment to 0. - -2024-08-12 Joern Rennecke - - * except.cc (sjlj_emit_function_enter): - Set fn_begin_outside_block again if encountering a jump instruction. - -2024-08-12 Richard Sandiford - - PR other/30920 - * splay-tree-utils.h (rooted_splay_tree::insert_relative) - (rooted_splay_tree::lookup_le): New functions. - (rooted_splay_tree::remove_root_and_splay_next): Likewise. - * splay-tree-utils.tcc (rooted_splay_tree::insert_relative): New - function, extracted from... - (rooted_splay_tree::insert): ...here. - (rooted_splay_tree::lookup_le): New function. - (rooted_splay_tree::remove_root_and_splay_next): Likewise. - * tree-ssa-sccvn.cc (pd_range::m_children): New member variable. - (vn_walk_cb_data::vn_walk_cb_data): Initialize first_range. - (vn_walk_cb_data::known_ranges): Use a default_splay_tree. - (vn_walk_cb_data::~vn_walk_cb_data): Remove freeing of known_ranges. - (pd_range_compare, pd_range_alloc, pd_range_dealloc): Delete. - (vn_walk_cb_data::push_partial_def): Rewrite splay tree operations - to use splay-tree-utils.h. - * rtl-ssa/accesses.cc (function_info::add_use): Use insert_relative. - -2024-08-12 Kyrylo Tkachov - - * config/aarch64/aarch64-simd.md - (aarch64_simd_imm_shl): Rewrite to new - syntax. Add =w,w,vs1 alternative. - * config/aarch64/constraints.md (vs1): New constraint. - -2024-08-12 Haochen Jiang - - * common/config/i386/cpuinfo.h (get_available_features): Handle - avx10.2. - * common/config/i386/i386-common.cc - (OPTION_MASK_ISA2_AVX10_2_256_SET): New. - (OPTION_MASK_ISA2_AVX10_2_512_SET): Ditto. - (OPTION_MASK_ISA2_AVX10_1_256_UNSET): - Add OPTION_MASK_ISA2_AVX10_2_256_UNSET. - (OPTION_MASK_ISA2_AVX10_1_512_UNSET): - Add OPTION_MASK_ISA2_AVX10_2_512_UNSET. - (OPTION_MASK_ISA2_AVX10_2_256_UNSET): New. - (OPTION_MASK_ISA2_AVX10_2_512_UNSET): Ditto. - (ix86_handle_option): Handle avx10.2-256 and avx10.2-512. - * common/config/i386/i386-cpuinfo.h (enum processor_features): - Add FEATURE_AVX10_2_256 and FEATURE_AVX10_2_512. - * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY for - avx10.2-256 and avx10.2-512. - * config/i386/i386-c.cc (ix86_target_macros_internal): Define - __AVX10_2_256__ and __AVX10_2_512__. - * config/i386/i386-isa.def (AVX10_2): Add DEF_PTA(AVX10_2_256) - and DEF_PTA(AVX10_2_512). - * config/i386/i386-options.cc (isa2_opts): Add -mavx10.2-256 and - -mavx10.2-512. - (ix86_valid_target_attribute_inner_p): Handle avx10.2-256 and - avx10.2-512. - * config/i386/i386.opt: Add option -mavx10.2, -mavx10.2-256 and - -mavx10.2-512. - * config/i386/i386.opt.urls: Regenerated. - * doc/extend.texi: Document avx10.2, avx10.2-256 and avx10.2-512. - * doc/invoke.texi: Document -mavx10.2, -mavx10.2-256 and - -mavx10.2-512. - * doc/sourcebuild.texi: Document target avx10.2, avx10.2-256, - avx10.2-512. - -2024-08-12 Roger Sayle - - PR target/116275 - * config/i386/i386.md (*extendv2di2_highpart_stv_noavx512vl): New - define_insn_and_split to handle the STV conversion of the DImode - pattern *extendsi2_doubleword_highpart. - -2024-08-12 Lulu Cheng - - * config/loongarch/loongarch.md (insn): Added rotatert rotr pairs. - * config/loongarch/simd.md (rotr3): Remove to ... - (3): This. - -2024-08-12 Lulu Cheng - - PR target/114189 - * config/loongarch/lasx.md (vcondu): Delete. - (vcond): Likewise. - * config/loongarch/lsx.md (vcondu): Likewise. - (vcond): Likewise. - -2024-08-12 Lulu Cheng - - * config/loongarch/lasx.md (xvandn3): Rename to ... - (andn3): This. - (xvorn3): Rename to ... - (iorn3): This. - * config/loongarch/loongarch-builtins.cc - (CODE_FOR_lsx_vandn_v): Defined as the modified name. - (CODE_FOR_lsx_vorn_v): Likewise. - (CODE_FOR_lasx_xvandn_v): Likewise. - (CODE_FOR_lasx_xvorn_v): Likewise. - (loongarch_expand_builtin_insn): When the builtin function to be - called is __builtin_lasx_xvandn or __builtin_lsx_vandn, swap the - two operands. - * config/loongarch/loongarch.md (n): Rename to ... - (n3): This. - * config/loongarch/lsx.md (vandn3): Rename to ... - (andn3): This. - (vorn3): Rename to ... - (iorn3): This. - -2024-08-11 Georg-Johann Lay - - * config/avr/avr.opt (mlra): Set Undocumented flag. - -2024-08-11 Georg-Johann Lay - - * config/avr/avr.cc (ra_in_progress): New static function. - (avr_legitimate_address_p, avr_addr_space_legitimate_address_p) - (extra_constraint_Q): Use it with -mlog=. - -2024-08-10 Andi Kleen - - * doc/cfg.texi: Fix references to dom_walker. - -2024-08-10 Georg-Johann Lay - - PR target/113934 - * config/avr/avr.opt (-mlra): New target option. - * config/avr/avr.cc (avr_use_lra_p): New function. - (TARGET_LRA_P): Use it. - (avr_hard_regno_mode_ok) [lra]: Don't disallow 4-byte modes for X. - -2024-08-09 Jeff Law - - PR target/116283 - * config/riscv/bitmanip.md (Zbs combiner patterns/splitters): Mask the - bit position in the split code appropriately. - -2024-08-09 Kyrylo Tkachov - - Revert: - 2024-08-08 Surya Kumari Jangala - - PR rtl-optimization/116028 - * lra-constraints.cc (split_reg): Spill register before call - insn. - (latest_call_insn): New variable. - (inherit_in_ebb): Track the latest call insn. - -2024-08-09 Andrew MacLeod - - PR tree-optimization/114855 - * gimple-range-gori.cc (gori_compute::gori_compute): Adjust - ranger_recompute_depth limit based on the number of BBs. - (gori_compute::may_recompute_p): Use previosuly calculated value. - * gimple-range-gori.h (gori_compute::m_recompute_depth): New. - -2024-08-09 Andrew MacLeod - - PR tree-optimization/114855 - * gimple-range-cache.cc (ranger_cache::fill_block_cache): Do not - process equivalencies if the number of blocks is too high. - -2024-08-09 Raphael Moreira Zinsly - - * config/riscv/riscv.cc (riscv_compute_frame_info): Update - outgoing args size. - (riscv_stack_clash_protection_alloca_probe_range): New. - (TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. - * config/riscv/riscv.h - (STACK_CLASH_MIN_BYTES_OUTGOING_ARGS): New. - (STACK_DYNAMIC_OFFSET): New. - -2024-08-09 Raphael Moreira Zinsly - - * config/riscv/riscv.cc - (riscv_allocate_and_probe_stack_loop): New function. - (riscv_v_adjust_scalable_frame): Add stack-clash protection - support. - (riscv_allocate_and_probe_stack_space): Move the probe loop - implementation to riscv_allocate_and_probe_stack_loop. - * config/riscv/riscv.h: Define RISCV_STACK_CLASH_VECTOR_CFA_REGNUM. - -2024-08-09 Raphael Moreira Zinsly - - * config/riscv/riscv.cc - (riscv_option_override): Enforce that interval is the same size as - guard size. - (riscv_allocate_and_probe_stack_space): New function. - (riscv_expand_prologue): Call riscv_allocate_and_probe_stack_space - to the final allocation of the stack and add stack-clash dump - information. - * config/riscv/riscv.h: Define STACK_CLASH_CALLER_GUARD and - STACK_CLASH_MAX_UNROLL_PAGES. - -2024-08-09 Raphael Moreira Zinsly - - * config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): Move - closer to riscv_expand_prologue. - -2024-08-09 Raphael Moreira Zinsly - - * config/riscv/riscv.cc (riscv_emit_stack_tie): Pass the - register to be tied to the stack pointer as argument. - * config/riscv/riscv.md (stack_tie): Don't match equal - operands. - -2024-08-09 Jakub Jelinek - - PR target/116287 - * config/i386/i386.cc (ix86_fold_builtin) : - When folding into zero without checking whether first argument is - constant, use omit_one_operand. - (ix86_fold_builtin) : Likewise. - -2024-08-09 Andrew Stubbs - - * config/gcn/gcn.cc (gcn_asm_trampoline_template): Add .align. - * config/gcn/gcn.h (TRAMPOLINE_SIZE): Increase to 40. - -2024-08-09 Georg-Johann Lay - - * config/avr/avr.md (*load__libgcc, *xload__libgcc): - Tidy up code. - -2024-08-09 Kyrylo Tkachov - - * config/aarch64/constraints.md (Dm): Match CONSTM1_RTX rather - CONST1_RTX. - -2024-08-08 Tamar Christina - - PR target/116229 - * config/aarch64/aarch64-simd.md (aarch64_fnegv2di2): New. - * config/aarch64/aarch64.cc (aarch64_maybe_generate_simd_constant): - Update call to gen_aarch64_fnegv2di2. - * config/aarch64/iterators.md: New UNSPEC_FNEG. - -2024-08-08 Georg-Johann Lay - - * config/avr/avr.cc (Mem_Insn::Mem_Insn): Don't consider MEMs - that are avr_mem_memx_p or avr_load_libgcc_p. - -2024-08-08 Georg-Johann Lay - - * doc/extend.texi (AVR Built-in Functions) : Fix a typo. - -2024-08-08 Georg-Johann Lay - - * config/avr/avr.cc (avr_insn_has_reg_unused_note_p): New function. - (_reg_unused_after): Use it to recognize more cases. - (avr_out_lpm_no_lpmx) [POST_INC]: Use reg_unused_after. - -2024-08-08 Andrew Stubbs - - * config/gcn/gcn.cc (gcn_conditional_register_usage): Fix registers - remaining after maximum allocation using TARGET_VGPR_GRANULARITY. - -2024-08-08 Christoph Müllner - - * config/riscv/constraints.md (th_m_noi): New constraint. - * config/riscv/riscv.md: Adjust movdf_hardfloat_rv32 for - XTheadMemIdx. - -2024-08-08 Christoph Müllner - - PR target/116131 - * config/riscv/thead.cc (th_memidx_classify_address_index): - Recognize all possible XTheadMemIdx memory operand structures. - (th_fmemidx_output_index): Do strict classification. - * config/riscv/thead.md (*th_memidx_operand): Remove. - (TARGET_XTHEADMEMIDX): Likewise. - (TARGET_HARD_FLOAT && TARGET_XTHEADFMEMIDX): Likewise. - (!TARGET_64BIT && TARGET_XTHEADMEMIDX): Likewise. - (*th_memidx_I_a): Likewise. - (*th_memidx_I_b): Likewise. - (*th_memidx_I_c): Likewise. - (*th_memidx_US_a): Likewise. - (*th_memidx_US_b): Likewise. - (*th_memidx_US_c): Likewise. - (*th_memidx_UZ_a): Likewise. - (*th_memidx_UZ_b): Likewise. - (*th_memidx_UZ_c): Likewise. - (*th_fmemidx_movsf_hardfloat): Likewise. - (*th_fmemidx_movdf_hardfloat_rv64): Likewise. - (*th_fmemidx_I_a): Likewise. - (*th_fmemidx_I_c): Likewise. - (*th_fmemidx_US_a): Likewise. - (*th_fmemidx_US_c): Likewise. - (*th_fmemidx_UZ_a): Likewise. - (*th_fmemidx_UZ_c): Likewise. - -2024-08-08 Andrew Pinski - - * tree-vect-patterns.cc (NUM_PATTERNS): Delete. - (vect_pattern_recog_1): Constify and change - recog_func to a reference. - (vect_pattern_recog): Use range-based loop over - vect_vect_recog_func_ptrs. - -2024-08-08 Jin Ma - - * config/riscv/riscv.h (RISCV_DWARF_VLENB): Delete. - -2024-08-08 Andrew Stubbs - - * config/gcn/gcn.cc (gcn_trampoline_init): Re-enable trampolines. - -2024-08-08 Jeff Law - - PR target/116240 - * config/riscv/riscv.cc (riscv_rtx_costs): Ensure object is a - comparison before looking at its arguments. - -2024-08-08 Manolis Tsamis - - PR tree-optimization/98138 - * tree-vect-slp.cc: Avoid duplicates in two_operators nodes. - -2024-08-08 Roger Sayle - - * config/i386/i386.cc (ix86_mode_can_transfer_bits): Use E_?Fmode - enumeration constants in switch statement. - -2024-08-08 Surya Kumari Jangala - - PR rtl-optimization/116028 - * lra-constraints.cc (split_reg): Spill register before call - insn. - (latest_call_insn): New variable. - (inherit_in_ebb): Track the latest call insn. - -2024-08-08 Jiawei - - * common/config/riscv/riscv-common.cc: New extension. - * config/riscv/riscv.opt: New mask. - -2024-08-07 Iain Sandoe - - PR target/116237 - * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Add a spec for - weak_framework. - * config/darwin.opt: Handle weak_framework driver option. - -2024-08-07 Prathamesh Kulkarni - - PR ipa/96265 - PR ipa/111937 - * data-streamer-in.cc (streamer_read_poly_uint64): Remove code for - streaming, and call poly_int_read_common instead. - (streamer_read_poly_int64): Likewise. - * data-streamer.cc (host_num_poly_int_coeffs): Conditionally define - new variable if ACCEL_COMPILER is defined. - * data-streamer.h (host_num_poly_int_coeffs): Declare. - (poly_int_read_common): New function template. - (bp_unpack_poly_value): Remove code for streaming and call - poly_int_read_common instead. - * lto-streamer-in.cc (lto_input_mode_table): Stream-in host - NUM_POLY_INT_COEFFS into host_num_poly_int_coeffs if ACCEL_COMPILER - is defined. - * lto-streamer-out.cc (lto_write_mode_table): Stream out - NUM_POLY_INT_COEFFS if offloading is enabled. - * poly-int.h (MAX_NUM_POLY_INT_COEFFS_BITS): New macro. - * tree-streamer-in.cc (lto_input_ts_poly_tree_pointers): Adjust - streaming-in of poly_int. - -2024-08-07 Jakub Jelinek - - PR c++/116219 - * gimple-expr.cc (remove_suffix): Formatting fixes. - (create_tmp_var_name): Don't call clean_symbol_name. - * gimplify.cc (gimplify_init_constructor): When promoting automatic - DECL_NAMELESS vars to static, don't preserve their DECL_NAME. - -2024-08-07 Julian Brown - Tobias Burnus - - * builtins.def (DEF_GOMP_BUILTIN_COMPILER): Define - DEF_GOMP_BUILTIN_COMPILER to handle the non-prefix version. - * gimple-fold.cc (gimple_fold_builtin_omp_is_initial_device): New. - (gimple_fold_builtin): Call it. - * omp-builtins.def (BUILT_IN_OMP_IS_INITIAL_DEVICE): Define. - * tree.cc (get_file_function_name): Support names for on-target - constructor/destructor functions. - -2024-08-07 Carl Love - - * config/rs6000/altivec.md (vsdb_): Change - define_insn iterator to VEC_IC. - * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsldoi_v1ti, - __builtin_vsx_xxsldwi_v1ti, __builtin_altivec_vsldb_v1ti, - __builtin_altivec_vsrdb_v1ti): New builtin definitions. - * config/rs6000/rs6000-overload.def (vec_sld, vec_sldb, vec_sldw, - vec_sll, vec_slo, vec_srdb, vec_srl, vec_sro): New overloaded - definitions. - * doc/extend.texi (vec_sld, vec_sldb, vec_sldw, vec_sll, vec_slo, - vec_srdb, vec_srl, vec_sro): Add documentation for new overloaded - built-ins. - -2024-08-07 Richard Biener - - PR tree-optimization/116258 - * tree-vect-generic.cc (expand_vector_operations_1): Do not - lower PAREN_EXPR. - -2024-08-07 Xi Ruoyao - Richard Biener - - PR tree-optimization/116142 - * tree-vect-stmts.cc (supportable_widening_operation): Remove an - redundant and incorrect vect_reduction_def check, and fix the - operand of another vect_reduction_def check. - -2024-08-07 Richard Biener - - PR tree-optimization/116166 - * tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks): - Add limit parameter. - (jump_threader::thread_through_normal_block): Likewise. - * tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks): - Honor and decrement limit parameter. - (jump_threader::thread_through_normal_block): Likewise. - (jump_threader::thread_across_edge): Initialize limit from - param_max_jump_thread_paths and pass it down to workers. - -2024-08-07 Pan Li - - PR target/116202 - * tree-vect-patterns.cc (vect_recog_sat_trunc_pattern): Add the - type_has_mode_precision_p check for the lhs type. - -2024-08-07 Patrick Palka - - PR c++/116064 - * diagnostic.cc (diagnostic_context::initialize): Set - m_adjust_diagnostic_info. - (diagnostic_context::report_diagnostic): Call - m_adjust_diagnostic_info. - * diagnostic.h (diagnostic_context::m_adjust_diagnostic_info): - New data member. - * doc/invoke.texi (-Wno-template-body): Document. - (-fpermissive): Mention -Wtemplate-body. - -2024-08-06 David Malcolm - - PR other/116177 - * diagnostic-format-sarif.cc (sarif_invocation::prepare_to_flush): - If the diagnostics would lead to us exiting with a failure code, - then emit "executionSuccessful": False (SARIF v2.1.0 section - §3.20.14). - * diagnostic.cc (diagnostic_context::execution_failed_p): New. - * diagnostic.h (diagnostic_context::execution_failed_p): New decl. - * toplev.cc (toplev::main): Use it for determining returned value. - -2024-08-06 Tamar Christina - - * config/aarch64/aarch64-protos.h (struct sve_vec_cost): Add - gather_load_x32_init_cost and gather_load_x64_init_cost. - * config/aarch64/aarch64.cc (aarch64_vector_costs): Add - m_sve_gather_scatter_init_cost. - (aarch64_vector_costs::add_stmt_cost): Use them. - (aarch64_vector_costs::finish_cost): Likewise. - * config/aarch64/tuning_models/a64fx.h: Update. - * config/aarch64/tuning_models/cortexx925.h: Update. - * config/aarch64/tuning_models/generic.h: Update. - * config/aarch64/tuning_models/generic_armv8_a.h: Update. - * config/aarch64/tuning_models/generic_armv9_a.h: Update. - * config/aarch64/tuning_models/neoverse512tvb.h: Update. - * config/aarch64/tuning_models/neoversen2.h: Update. - * config/aarch64/tuning_models/neoversen3.h: Update. - * config/aarch64/tuning_models/neoversev1.h: Update. - * config/aarch64/tuning_models/neoversev2.h: Update. - * config/aarch64/tuning_models/neoversev3.h: Update. - * config/aarch64/tuning_models/neoversev3ae.h: Update. - -2024-08-06 Gerald Pfeifer - - * doc/gm2.texi (Limitations): Rephrase. Remove invalid link. - -2024-08-06 John David Anglin - - PR target/113384 - * config/pa/pa.cc (hppa_legitimize_address): Add check to - ensure constant is an integral multiple of shift the value. - -2024-08-06 Patrick O'Neill - - * config/riscv/riscv-target-attr.cc (num_occurences_in_str): Rename... - (num_occurrences_in_str): here. - (riscv_process_target_attr): Update num_occurences_in_str callsite. - * config/riscv/riscv-v.cc (emit_vec_widden_cvt_x_f): widden -> widen. - (emit_vec_widen_cvt_x_f): Ditto. - (emit_vec_widden_cvt_f_f): Ditto. - (emit_vec_widen_cvt_f_f): Ditto. - (emit_vec_rounding_to_integer): Update *widden* callsites. - * config/riscv/riscv-vector-builtins.cc (expand_builtin): Update - required_ext_to_isa_name callsite and fix xtheadvector typo. - * config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): Rename... - (required_ext_to_isa_name): here. - * config/riscv/riscv_th_vector.h: Fix endif label. - * config/riscv/vector-crypto.md: boardcast_scalar -> broadcast_scalar. - * config/riscv/vector.md: Ditto. - -2024-08-06 Patrick O'Neill - - * config/riscv/arch-canonicalize: Fix typos in comments. - * config/riscv/autovec.md: Ditto. - * config/riscv/riscv-avlprop.cc (avl_can_be_propagated_p): Ditto. - (pass_avlprop::get_vlmax_ta_preferred_avl): Ditto. - * config/riscv/riscv-modes.def (ADJUST_FLOAT_FORMAT): Ditto. - (VLS_MODES): Ditto. - * config/riscv/riscv-opts.h (TARGET_ZICOND_LIKE): Ditto. - (enum rvv_vector_bits_enum): Ditto. - * config/riscv/riscv-protos.h (enum insn_flags): Ditto. - (enum insn_type): Ditto. - * config/riscv/riscv-sr.cc (riscv_sr_match_epilogue): Ditto. - * config/riscv/riscv-string.cc (expand_block_move): Ditto. - * config/riscv/riscv-v.cc (rvv_builder::is_repeating_sequence): Ditto. - (rvv_builder::single_step_npatterns_p): Ditto. - (calculate_ratio): Ditto. - (expand_const_vector): Ditto. - (shuffle_merge_patterns): Ditto. - (shuffle_compress_patterns): Ditto. - (expand_select_vl): Ditto. - * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): Ditto. - * config/riscv/riscv-vector-builtins-shapes.h: Ditto. - * config/riscv/riscv-vector-builtins.cc (function_builder::add_function): Ditto. - (resolve_overloaded_builtin): Ditto. - * config/riscv/riscv-vector-builtins.def (vbool1_t): Ditto. - (vuint8m8_t): Ditto. - (vuint16m8_t): Ditto. - (vfloat16m8_t): Ditto. - (unsigned_vector): Ditto. - * config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto. - * config/riscv/riscv-vector-costs.cc (get_store_value): Ditto. - (costs::analyze_loop_vinfo): Ditto. - (costs::add_stmt_cost): Ditto. - * config/riscv/riscv.cc (riscv_build_integer): Ditto. - (riscv_vector_type_p): Ditto. - * config/riscv/thead.cc (th_mempair_output_move): Ditto. - * config/riscv/thead.md: Ditto. - * config/riscv/vector-iterators.md: Ditto. - * config/riscv/vector.md: Ditto. - * config/riscv/zc.md: Ditto. - -2024-08-06 Roger Sayle - - * config/i386/i386-expand.cc (ix86_expand_v2di_ashiftrt): New - function refactored from define_expand ashrv2di3. - * config/i386/i386-features.cc (general_scalar_to_vector_candidate_p) - : Handle like other shifts and rotates. - * config/i386/i386-protos.h (ix86_expand_v2di_ashiftrt): Prototype. - * config/i386/sse.md (ashrv2di3): Call ix86_expand_v2di_ashiftrt. - (*ashrv2di3): New define_insn_and_split to enable creation by stv2 - pass, and splitting during split1 reusing ix86_expand_v2di_ashiftrt. - -2024-08-06 Patrick O'Neill - Jakub Jelinek - - PR target/116152 - * config/riscv/riscv.cc (riscv_option_override): Fix url - formatting. - -2024-08-06 Filip Kastl - - * gimple-ssa-sccopy.cc (class scc_copy_prop): New class. - (replace_scc_by_value): Put into... - (scc_copy_prop::replace_scc_by_value): ...scc_copy_prop. - (sccopy_visit_op): Put into... - (scc_copy_prop::visit_op): ...scc_copy_prop. - (sccopy_propagate): Put into... - (scc_copy_prop::propagate): ...scc_copy_prop. - (init_sccopy): Replace by... - (scc_copy_prop::scc_copy_prop): ...the construtor. - (finalize_sccopy): Replace by... - (scc_copy_prop::~scc_copy_prop): ...the destructor. - (pass_sccopy::execute): Use scc_copy_prop. - -2024-08-06 Richard Biener - - PR tree-optimization/116241 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): Handle - non-COND_EXPR nodes in SLP reduction chain following. - -2024-08-06 Jakub Jelinek - - PR tree-optimization/116224 - * wide-int.cc (wi::mul_internal): If prec isn't multiple of - HOST_BITS_PER_WIDE_INT, for need_overflow checking only look at - the least significant prec bits starting with r[half_blocks_needed]. - -2024-08-06 Richard Biener - - PR middle-end/111821 - * expmed.cc (store_integral_bit_field): Terminate the - word-wise copy loop when we get out of the destination - and do a forward copy. Skip the word if it would be - outside of the destination in case of a backward copy. - -2024-08-06 Haochen Gui - - * config/rs6000/predicates.md (any_operand): Add const_vector. - -2024-08-06 Feng Xue - - PR tree-optimization/115228 - * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Add - missed opcodes that involve widening operation. - -2024-08-06 Feng Xue - - PR tree-optimization/115707 - * tree-vect-patterns.cc (vect_look_through_possible_promotion): Allow - unsigned-to-signed promotion. - -2024-08-06 Andrew Pinski - - PR target/116189 - * config/sh/sh.cc (sh_recog_treg_set_expr): Don't call make_insn_raw, - make the insn with a fake uid. - -2024-08-05 Patrick O'Neill - - PR target/116152 - * config/riscv/riscv.cc (riscv_option_override): Add deprecation - warning. - -2024-08-05 Mark Harmstone - - * dwarf2codeview.cc (get_type_num_const_type): Handle missing - DW_AT_type attribute. - (get_type_num_volatile_type): Likewise. - -2024-08-05 Jose E. Marchesi - - * config/bpf/atomic.md ("atomic_add"): Remove insn. - ("atomic_and"): Likewise - ("atomic_or"): Likewise. - ("atomic_xor"): Likewise. - -2024-08-05 Jennifer Schmitz - - * config/aarch64/aarch64.md (*and_compare0): Change attribute. - -2024-08-05 Filip Kastl - - * gimple-ssa-sccopy.cc: Move a misplaced comment. - -2024-08-05 Kyrylo Tkachov - - PR tree-optimization/116139 - * tree-ssa-reassoc.cc (get_reassociation_width): Move width_mult - <= width comparison to if condition rather than assert. - -2024-08-05 Richard Sandiford - - Revert: - 2024-08-02 Richard Sandiford - - PR rtl-optimization/116145 - * rtlanal.cc (may_trap_p_1): Trust MEM_NOTRAP_P even for code - movement if MEM_READONLY_P is also true. - -2024-08-05 Alex Coplan - - * gdbhooks.py: Add attempted call to "on-gcc-hooks-load" once - we've finished loading the hooks. - -2024-08-05 Alex Coplan - - * gdbhooks.py (GCCDotCmd): New. - (gcc_dot_cmd): New. Use it ... - (DotFn.invoke): ... here. - -2024-08-05 Andrew Pinski - - PR rtl-optimization/116179 - * ira.cc (split_live_ranges_for_shrink_wrap): For the uses loop, - only look at non-debug insns. - -2024-08-04 Jeff Law - - PR rtl-optimization/116199 - * reload.cc (operands_match_p): Verify subreg is expressable before - trying to simplify and match it to another operand. - -2024-08-02 Marek Polacek - - * doc/invoke.texi: Document that -Wdangling-reference is - enabled by -Wextra. - -2024-08-02 Andrew Pinski - - PR middle-end/116058 - * genemit.cc (struct clobber_pat): Change pattern to be rtvec. - Add code field. - (gen_insn): Look through an explicit parallel if there was one. - Update store to new clobber_pat. - (output_add_clobbers): Update call to gen_exp for the changed - clobber_pat. - -2024-08-02 Patrick O'Neill - - * config/riscv/sync-rvwmo.md: Add conditional length attributes. - * config/riscv/sync-ztso.md: Ditto. - * config/riscv/sync.md: Fix incorrect insn length attributes and - reformat existing conditional checks. - -2024-08-02 Jennifer Schmitz - - * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement - fusion logic. - * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry. - (cmp+cset): Likewise. - * config/aarch64/tuning_models/neoversev2.h: Enable logic in - field fusible_ops. - -2024-08-02 Richard Sandiford - - PR rtl-optimization/116145 - * rtlanal.cc (may_trap_p_1): Trust MEM_NOTRAP_P even for code - movement if MEM_READONLY_P is also true. - -2024-08-02 Andrew Pinski - - PR tree-optimization/116156 - * tree-ssa-forwprop.cc (pass_forwprop::execute): Don't add - uses if the statement was a debug statement. - -2024-08-02 Lingling Kong - - * config/i386/constraints.md: Fixed the comment/naming for je/jM/jO. - * config/i386/predicates.md (apx_ndd_memory_operand): Renamed and - fixed the comment. - (apx_evex_memory_operand): New name. - (apx_ndd_add_memory_operand): Ditto. - (apx_evex_add_memory_operand): Ditto. - -2024-08-02 Lingling Kong - - * config/i386/i386.md (nf_mem_constraint): Fixed the constraint - for the define_subst_attr. - (nf_mem_constraint): Added new define_subst_attr. - (*add_1): Fixed the constraint. - -2024-08-02 Yang Yujie - - * config/loongarch/genopts/gen-evolution.awk: Do not use - "length()" to compute the size of an array. - -2024-08-02 Pengxuan Zheng - - PR target/113860 - * config/aarch64/aarch64-simd.md (popcount2): Add TARGET_SVE - support. - * config/aarch64/aarch64-sve.md (@aarch64_pred_): Use new - iterator SVE_VDQ_I. - * config/aarch64/iterators.md (SVE_VDQ_I): New mode iterator. - (VPRED): Add V8QI, V16QI, V4HI, V8HI and V2SI. - -2024-08-01 Robin Dapp - - PR target/116149 - * config/riscv/vector.md: Fix mode_idx attribute of scalar - widen add/sub variants. - -2024-08-01 Patrick O'Neill - - PR target/116111 - * config/riscv/riscv.cc (riscv_option_override): Add error. - -2024-08-01 Tamar Christina - - * config/aarch64/aarch64-cores.def (cortex-x925): New. - * config/aarch64/aarch64-tune.md: Regenerate. - * config/aarch64/tuning_models/cortexx925.h: New file. - * config/aarch64/aarch64.cc: Use it. - * doc/invoke.texi: Document it. - -2024-08-01 Tamar Christina - - * config/aarch64/tuning_models/neoversen2.h: Update costs. - -2024-08-01 Tamar Christina - - * config/aarch64/tuning_models/generic_armv9_a.h: Update costs. - -2024-08-01 Tamar Christina - - * config/aarch64/aarch64-cores.def (neoverse-n3, cortex-a725): New. - * config/aarch64/aarch64-tune.md: Regenerate. - * config/aarch64/tuning_models/neoversen3.h: New file. - * config/aarch64/aarch64.cc: Use it. - * doc/invoke.texi: Document it. - -2024-08-01 Tamar Christina - - * config/aarch64/aarch64-cores.def (neoverse-v3ae): New. - * config/aarch64/aarch64-tune.md: Regenerate. - * config/aarch64/tuning_models/neoversev3ae.h: New file. - * config/aarch64/aarch64.cc: Use it. - * doc/invoke.texi: Document it. - -2024-08-01 Tamar Christina - - * config/aarch64/aarch64-cores.def (cortex-x4): Update. - (neoverse-v3): New. - * config/aarch64/aarch64-tune.md: Regenerate. - * config/aarch64/tuning_models/neoversev3.h: New file. - * config/aarch64/aarch64.cc: Use it. - * doc/invoke.texi: Document it. - -2024-08-01 Tamar Christina - - * config/aarch64/aarch64-cores.def (cortex-x3): Use Neoverse-V2 costs. - * config/aarch64/tuning_models/neoversev2.h: Update costs. - -2024-08-01 Andrew Pinski - - PR tree-optimization/116120 - * match.pd (`(a ? x : y) eq/ne (b ? x : y)`): Add test for `x != y` - in result. - (`(a ? x : y) eq/ne (b ? y : x)`): Add test for `x == y` in result. - -2024-08-01 liuhongt - - PR target/116096 - * config/i386/constraints.md (Wc): New constraint for integer - 1 or -1. - * config/i386/i386.md (ashl3_doubleword): Refine - constraint with Wc. - -2024-08-01 Richard Biener - - PR tree-optimization/114659 - * tree-ssa-sccvn.cc (visit_reference_op_load): Do not - prevent punning from modes with padding here, but ... - (vn_reference_eq): ... ensure this here, also honoring - types with modes that cannot act as bit container. - -2024-08-01 Richard Biener - - * config/i386/i386.cc (TARGET_MODE_CAN_TRANSFER_BITS): Define. - (ix86_mode_can_transfer_bits): New function. - -2024-08-01 Richard Biener - - * target.def (mode_can_transfer_bits): New target hook. - * target.h (mode_can_transfer_bits): New function wrapping the - hook and providing default behavior. - * doc/tm.texi.in: Update. - * doc/tm.texi: Re-generate. - -2024-08-01 Georg-Johann Lay - - * config/avr/avr.md (cbranch4_insn): Split to a test of the - high part against 0 if possible. - -2024-08-01 Georg-Johann Lay - - * config/avr/constraints.md (YMM): New constraint. - * config/avr/avr.md (cmp3, *cmp3) - (cbranch4_insn): Allow YMM where M is allowed. - -2024-08-01 Jakub Jelinek - - PR target/115981 - * config/i386/sse.md - (*_vinsert_0): Swap the - first two VEC_MERGE operands, renumber match_operands and test - for 0xF or 0x3 rather than 0xFFF0 or 0xFC immediate. - -2024-08-01 Tobias Burnus - Richard Biener - Hu, Lin1 - - PR target/113744 - * config/i386/i386.md (*add_4): Remove ndd support. - (*adddi_4): Ditto. - -2024-08-01 Mark Harmstone - - * dwarf2codeview.cc (get_type_num_struct): Fix NULL pointer dereference. - -2024-08-01 David Malcolm - - * diagnostic-path.cc - (thread_event_printer::print_swimlane_for_event_range): Gracefully - handle logical_location::get_name_for_path_output returning null. - -2024-08-01 David Malcolm - - * diagnostic-format-sarif.cc - (sarif_location_manager::worklist_item::unlabelled_secondary_location): - New enum value. - (sarif_location_manager::m_unlabelled_secondary_locations): New - field. - (sarif_location_manager::process_worklist_item): Handle unlabelled - secondary locations. - (sarif_builder::make_location_object): Generalize code to handle - ranges within a rich_location so as well as using annotations for - those with labels, we now add related locations for those without - labels. - -2024-08-01 David Malcolm - - * diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Assert - that m_line_maps is nonnull. - (diagnostic_output_format_init_sarif_stderr): Add "line_maps" - param and pass to format ctor. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - * diagnostic.cc (diagnostic_output_format_init): Pass "line_table" - as line_maps param to the above. - * diagnostic.h (diagnostic_output_format_init_sarif_stderr): Add - "line_maps" param. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - -2024-08-01 David Malcolm - - * diagnostic-format-sarif.cc: Tweak ASCII art in comment - to show edges for both directions in the digraph. - -2024-07-31 Andrew Pinski - - PR middle-end/116134 - * match.pd (`(a ? x : y) eq/ne (b ? x : y)`): Check that - a and b types match. - (`(a ? x : y) eq/ne (b ? y : x)`): Likewise. - -2024-07-31 Jeff Law - - * ext-dce.cc (carry_backpropagate): Change more guards of [U]INTVAL to - test CONST_INT_P rather than CONSTANT_P, fixing rtl-checking failures. - -2024-07-31 Dimitar Dimitrov - - * common/config/pru/pru-common.cc - (TARGET_OPTION_OPTIMIZATION_TABLE): New definition. - * config/pru/pru.cc (TARGET_MIN_ANCHOR_OFFSET): Set minimal - anchor offset. - (TARGET_MAX_ANCHOR_OFFSET): Set maximum anchor offset. - -2024-07-31 Jeff Law - - PR rtl-optimization/116136 - * simplify-rtx.cc (simplify_context::simplify_subreg): Check - that we're working with the lowpart offset rather than byte 0. - -2024-07-31 Claudio Bantaloukas - - * config.gcc (extra_headers): Install arm_private_fp8.h. - * config/aarch64/arm_neon.h: Include arm_private_fp8.h. - * config/aarch64/arm_sve.h: Likewise. - * config/aarch64/arm_private_fp8.h: New file - (fpm_t): New type representing fpmr values. - (enum __ARM_FPM_FORMAT): New enum representing valid fp8 formats. - (enum __ARM_FPM_OVERFLOW): New enum representing how some fp8 - calculations work. - (__arm_fpm_init): New. - (__arm_set_fpm_src1_format): Likewise. - (__arm_set_fpm_src2_format): Likewise. - (__arm_set_fpm_dst_format): Likewise. - (__arm_set_fpm_overflow_cvt): Likewise. - (__arm_set_fpm_overflow_mul): Likewise. - (__arm_set_fpm_lscale): Likewise. - (__arm_set_fpm_lscale2): Likewise. - (__arm_set_fpm_nscale): Likewise. - -2024-07-31 Claudio Bantaloukas - - * config/aarch64/aarch64.cc (aarch64_hard_regno_nregs): Add - support for MOVEABLE_SYSREGS class. - (aarch64_hard_regno_mode_ok): Allow reads and writes to fpmr. - (aarch64_regno_regclass): Support MOVEABLE_SYSREGS class. - (aarch64_class_max_nregs): Likewise. - * config/aarch64/aarch64.h (FIXED_REGISTERS): add fpmr. - (CALL_REALLY_USED_REGISTERS): Likewise. - (REGISTER_NAMES): Likewise. - (enum reg_class): Add MOVEABLE_SYSREGS class. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Update class bitmaps to deal with fpmr, - the new MOVEABLE_REGS class and renumbering of registers. - * config/aarch64/aarch64.md: (FPM_REGNUM): added new register - number, reusing old value. - (FFR_REGNUM): Renumber. - (FFRT_REGNUM): Likewise. - (LOWERING_REGNUM): Likewise. - (TPIDR2_BLOCK_REGNUM): Likewise. - (SME_STATE_REGNUM): Likewise. - (TPIDR2_SETUP_REGNUM): Likewise. - (ZA_FREE_REGNUM): Likewise. - (ZA_SAVED_REGNUM): Likewise. - (ZA_REGNUM): Likewise. - (ZT0_REGNUM): Likewise. - (*mov_aarch64): Add support for moveable sysregs. - (*movsi_aarch64): Likewise. - (*movdi_aarch64): Likewise. - * config/aarch64/constraints.md (MOVEABLE_SYSREGS): New constraint. - -2024-07-31 Claudio Bantaloukas - - * config/aarch64/aarch64-option-extensions.def (fp8): New. - * config/aarch64/aarch64.h (TARGET_FP8): Likewise. - * doc/invoke.texi (AArch64 Options): Document new -march flags - and extensions. - -2024-07-31 Xi Ruoyao - - * config/loongarch/loongarch.md (UNSPEC_REVB_2H, UNSPEC_REVB_4H, - UNSPEC_REVH_D): Remove UNSPECs. - (revb_4h, revh_d): Remove define_insn. - (revb_2h): Define as (rotatert:SI (bswap:SI x) 16) instead of - an UNSPEC. - (revb_2h_extend, revb_2w, *bswapsi2, bswapdi2): New define_insn. - (bswapsi2): Change to define_expand. Only expand to revb.2h + - rotri.w if !TARGET_64BIT. - (bswapdi2): Change to define_insn of which the output is just a - revb.d instruction. - -2024-07-31 Xi Ruoyao - - * config/loongarch/predicates.md (ins_zero_bitmask_operand): - Cover more cases that bstrins can benefit. - (high_bitmask_operand): Remove. - * config/loongarch/constraints.md (Yy): Remove. - * config/loongarch/loongarch.md (and3_align): Remove. - -2024-07-31 Richard Biener - - PR middle-end/101478 - * gimplify.cc (gimplify_addr_expr): Check we still have an - ADDR_EXPR before calling recompute_tree_invariant_for_addr_expr. - -2024-07-31 Hongyu Wang - - PR target/116065 - * config/i386/i386.opt (munroll-only-small-loops): Mark as - Optimization instead of Save. - -2024-07-31 Richard Sandiford - - PR rtl-optimization/115881 - * recog.cc: Include rtl-iter.h. - (insn_propagation::apply_to_rvalue_1): Check that the result - of simplify_subreg does not include nested subregs. - -2024-07-31 Kewen Lin - - PR target/105359 - * config/rs6000/rs6000.md (@extenddf2): Don't check - TARGET_LONG_DOUBLE_128 for FLOAT128_IEEE_P modes. - (extendsf2): Likewise. - (truncdf2): Likewise. - (truncsf2): Likewise. - (floatsi2): Likewise. - (fix_truncsi2): Likewise. - -2024-07-31 Kewen Lin - - * config/rs6000/altivec.md (p9_vadu3): Rename to ... - (uabd3): ... this. Update RTL pattern with umin and umax rather - than UNSPEC_VADU. - (vadu3): Remove. - (UNSPEC_VADU): Remove. - (usadv16qi): Replace gen_p9_vaduv16qi3 with gen_uabdv16qi3. - (usadv8hi): Replace gen_p9_vaduv8hi3 with gen_uabdv8hi3. - * config/rs6000/rs6000-builtins.def (__builtin_altivec_vadub): Replace - expander with uabdv16qi3. - (__builtin_altivec_vaduh): Adjust expander with uabdv8hi3. - (__builtin_altivec_vaduw): Adjust expander with uabdv4si3. - -2024-07-31 Xi Ruoyao - - * config/loongarch/loongarch.md (optab): Add (rotatert "rotr"). - (3, 3, - sub3, rotr3, mul3): Add a "*" to the insn name - so we can redefine the names with define_expand. - (*si3_extend): Remove "*" so we can use them - in expanders. - (*subsi3_extended, *mulsi3_extended): Likewise, also remove the - trailing "ed" for consistency. - (*si3_extended): Add mode for sign_extend to - prevent an ICE using it in expanders. - (shift_w, arith_w): New define_code_iterator. - (3): New define_expand. Expand with - si3_extend for SImode if TARGET_64BIT. - (3): Likewise. - (mul3): Expand to mulsi3_extended for SImode if - TARGET_64BIT and ISA_HAS_DIV32. - (3): Expand to si3_extended - for SImode if TARGET_64BIT. - (rotl3): Expand to rotrsi3_extend for SImode if - TARGET_64BIT. - (bytepick_w_): Add mode for lshiftrt and ashift. - (bitsize, bytepick_imm, bytepick_w_ashift_amount): New - define_mode_attr. - (bytepick_w__extend): Adjust for the RTL change - caused by 32-bit shift expanding. Now bytepick_imm only covers - 2 and 3, separate one remaining case to ... - (bytepick_w_1_extend): ... here, new define_insn. - -2024-07-30 Edwin Lu - - * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string): - Skip b in march string - * config.in: Regenerate. - * configure: Regenerate. - * configure.ac: Add B assembler check - -2024-07-30 Filip Kastl - - * tree-switch-conversion.cc (can_log2): New static function to - check if gen_log2 can be used on current target. - (gen_log2): New static function to generate efficient GIMPLE - code for taking an exact base 2 log. - (gen_pow2p): New static function to generate efficient GIMPLE - code for checking if a value is a power of 2. - (switch_conversion::switch_conversion): Track if the - transformation happened. - (switch_conversion::is_exp_index_transform_viable): New function - to decide whether the transformation should be applied. - (switch_conversion::exp_index_transform): New function to - execute the transformation. - (switch_conversion::gen_inbound_check): Don't remove the default - BB if the transformation happened. - (switch_conversion::expand): Execute the transform if it is - viable. Skip the "sufficiently small case range" test if the - transformation is going to be executed. - * tree-switch-conversion.h: Add is_exp_index_transform_viable - and exp_index_transform. - -2024-07-30 Gianluca Guida - Patrick O'Neill - - * common/config/riscv/riscv-common.cc: Add zacas extension. - * config/riscv/arch-canonicalize: Make zacas imply zaamo. - * config/riscv/riscv.opt: Add zacas. - * config/riscv/sync.md (zacas_atomic_cas_value): New pattern. - (atomic_compare_and_swap): Use new pattern for compare-and-swap ops. - (zalrsc_atomic_cas_value_strong): Rename atomic_cas_value_strong. - * doc/sourcebuild.texi: Add Zacas documentation. - -2024-07-30 Patrick O'Neill - - * common/config/riscv/riscv-common.cc - (riscv_subset_list::to_string): Remove zabha configure check - handling and clarify zaamo/zalrsc comment. - * config.in: Regenerate. - * configure: Regenerate. - * configure.ac: Remove zabha configure check. - -2024-07-30 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold): - Implement strength reduction. - -2024-07-30 Georg-Johann Lay - - * doc/extend.texi (AVR Function Attributes): Propose to use - attribute signal(n) via AVR-LibC's ISR_N from avr/interrupt.h - -2024-07-30 Pan Li - - * config/riscv/riscv.cc (riscv_expand_ussub): Promote to Xmode - instead of Pmode. - -2024-07-30 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.cc (xtensa_insn_cost): - Add a case statement for TYPE_FARITH. - -2024-07-30 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.md (movsf_internal): - Reorder alternative that corresponds to L32R machine instruction, - and prefix alternatives that correspond to LSI/SSI instructions - with the constraint character '^' so that they are disparaged by - reload/LRA. - -2024-07-30 Takayuki 'January June' Suwa - - * config/xtensa/xtensa-protos.h (xtensa_expand_call): - Remove the third argument. - * config/xtensa/xtensa.cc (xtensa_expand_call): - Remove the third argument and the code that uses it. - * config/xtensa/xtensa.md (call, call_value, sibcall, sibcall_value): - Remove each Boolean constant specified in the third argument of - xtensa_expand_call. - (sibcall_epilogue): Add emitting '(use A0_REG)' after calling - xtensa_expand_epilogue. - -2024-07-30 liuhongt - - PR target/116043 - * config/i386/constraints.md (Bk): Refine to - define_special_memory_constraint. - -2024-07-30 Haochen Jiang - - * config/i386/prfchiintrin.h - (_m_prefetchit0): Add macro for non-optimized option. - (_m_prefetchit1): Ditto. - -2024-07-30 Takayuki 'January June' Suwa - - * config/xtensa/predicates.md - (fix_scaling_operand, float_scaling_operand): New predicates. - * config/xtensa/xtensa.md - (any_fix/m_fix/s_fix, any_float/m_float/s_float): - New code iterators and their attributes. - (fix_truncsfsi2): Change from "fix_truncsfsi2". - (*fix_truncsfsi2_2x, *fix_truncsfsi2_scaled): - New insn definitions. - (floatsisf2): Change from "floatsisf2". - (*floatsisf2_scaled): New insn definition. - -2024-07-30 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.cc - (gen_int_relational, gen_float_relational): Replace tempvar-based - value-swapping codes with std::swap. - * config/xtensa/xtensa.md (movdi_internal, movdf_internal): - Ditto. - -2024-07-29 Jeff Law - - PR target/116104 - * ext-dce.cc (carry_backpropagate): Fix test guarding UINTVAL - extraction of shift count. - -2024-07-29 Jonathan Wakely - - * doc/invoke.texi (Diagnostic Message Formatting Options): - Replace hyphen with a new sentence. Replace "the former" with - the actual value. - -2024-07-29 Max Filippov - - * config/xtensa/xtensa.cc (xtensa_option_override_after_change): - New function. - (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define as - xtensa_option_override_after_change. - (xtensa_option_override): Call - xtensa_option_override_after_change. - -2024-07-29 Georg-Johann Lay - - * config/avr/avr.cc (avr_set_current_function): Fix typo in - error message. - -2024-07-29 Carl Love - - * config/rs6000/vector.md: Add comment for the VEC_IC - define_mode_iterator. - -2024-07-29 Pan Li - - * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): - Try .SAT_SUB for PLUS_EXPR case. - -2024-07-29 Jan Hubicka - - PR ipa/116055 - * ipa-modref.cc (analyze_function): Do not ICE when flags regress. - -2024-07-29 Feng Xue - - * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Only call - single_imm_use if statement is not generated from pattern recognition. - -2024-07-29 Haochen Jiang - - * config/i386/avx512dqintrin.h - (_mm_mask_fpclass_ss_mask): Correct operand order. - (_mm_mask_fpclass_sd_mask): Ditto. - (_mm256_maskz_reduce_round_ss): Use __builtin_ia32_reducess_mask_round - instead of __builtin_ia32_reducesd_mask_round. - (_mm_reduce_round_sd): Use -1 as mask since it is non-mask. - (_mm_reduce_round_ss): Ditto. - * config/i386/avx512vlbwintrin.h - (_mm256_mask_alignr_epi8): Correct operand usage. - (_mm_mask_alignr_epi8): Ditto. - * config/i386/avx512vlintrin.h (_mm_mask_alignr_epi64): Ditto. - -2024-07-28 Jonathan Wakely - - * exec-tool.in: Exit with an error if $original is empty. - -2024-07-28 Georg-Johann Lay - - PR target/116056 - * config/avr/avr.h (machine_function) : New field. - * config/avr/avr-c.cc (avr_cpu_cpp_builtins) <__HAVE_SIGNAL_N__>: New - built-in macro. - * config/avr/avr.cc (avr_declare_function_name): New function. - (avr_attribute_table) : New function attribute>. - : Allow any number of args. - (avr_insert_attributes): Check validity of "signal" and "interrupt" - arguments. - (avr_foreach_function_attribute, avr_interrupt_signal_function) - (avr_isr_number, avr_asm_isr_alias, avr_handle_isr_attribute) - (avr_noblock_function_p): New static functions. - (avr_interrupt_function): New from avr_interrupt_function_p. - Adjust callers. - (avr_signal_function): New from avr_signal_function_p. - Adjust callers. - (avr_set_current_function): Only diagnose non-__vector ISR names - when "signal" or "interrupt" attribute has no args. Set - cfun->machine->is_noblock. Warn about "noblock" in non-ISR functions. - (struct avr_fun_cookie): New. - (avr_expand_prologue, avr_asm_function_end_prologue): Handle "noblock". - * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): New define. - * config/avr/avr-protos.h (avr_declare_function_name): New proto. - * doc/extend.texi (AVR Function Attributes): Document - signal(num) and interrupt(num). - * doc/invoke.texi (AVR Built-in Macros) <__HAVE_SIGNAL_N__>: Document. - -2024-07-27 Roger Sayle - Andrew Pinski - - * match.pd (ctz (-X) => ctz (X)): New simplification. - (ctz (abs (X)) => ctz (X)): Likewise. - -2024-07-27 Pan Li - - * match.pd: Add case 9 and case 10 for .SAT_SUB when one - of the op is IMM. - -2024-07-27 David Malcolm - - PR middle-end/107941 - * diagnostic-format-sarif.cc: Define INCLUDE_LIST and INCLUDE_MAP. - (enum class location_relationship_kind): New. - (diagnostic_artifact_role::scanned_file): New value. - (class sarif_location_manager): New. - (class sarif_result): Derive from sarif_location_manager rather - than directly from sarif_object. - (sarif_result::add_related_location): Convert to vfunc - implementation. - (sarif_location::m_relationships_map): New field. - (class sarif_location_relationship): New. - (class sarif_ice_notification): Derive from sarif_location_manager - rather than directly from sarif_object. - (sarif_builder::take_current_result): New. - (sarif_builder::m_line_maps): New field. - (sarif_builder::m_cur_group_result): Convert to std::unique_ptr. - (sarif_artifact::add_role): Skip scanned_file. - (get_artifact_role_string): Handle scanned_file. - (sarif_location_manager::add_relationship_to_worklist): New. - (sarif_location_manager::process_worklist): New. - (sarif_location_manager::process_worklist_item): New. - (sarif_result::on_nested_diagnostic): Pass *this to - make_location_object. - (sarif_location::lazily_add_id): New. - (sarif_location::get_id): New. - (get_string_for_location_relationship_kind): New. - (sarif_location::lazily_add_relationship): New. - (sarif_location::lazily_add_relationship_object): New. - (sarif_location::lazily_add_relationships_array): New. - (sarif_ice_notification::sarif_ice_notification): Fix overlong line. - Pass *this to make_locations_arr. - (sarif_ice_notification::add_related_location): New. - (sarif_location_relationship::sarif_location_relationship): New. - (sarif_location_relationship::get_target_id): New. - (sarif_location_relationship::lazily_add_kind): New. - (sarif_builder::sarif_builder): Add "line_maps" param and use it - to initialize m_line_maps. - (sarif_builder::end_diagnostic): Update for m_cur_group_result - becoming a std::unique_ptr. Don't append to m_results_array yet. - (sarif_builder::end_group): Append m_cur_group_result to - m_results_array here, rather than in end_diagnostic. - (sarif_builder::make_result_object): Pass result_obj to - make_locations_arr and to make_code_flow_object. - (sarif_builder::make_locations_arr): Add "loc_mgr" param and pass - it to make_location_object. - (sarif_builder::make_location_object): For two overloads, add - "loc_mgr" param and call add_any_include_chain on the location. - (sarif_builder::add_any_include_chain): New. - (sarif_builder::make_location_object): New overload. - (sarif_builder::make_code_flow_object): Add "result" param and - pass it to make_thread_flow_location_object. - (sarif_builder::make_thread_flow_location_object): Add "result" - param and pass it to make_location_object. - (sarif_builder::get_or_create_artifact): Handle scanned_file. - (sarif_output_format::~sarif_output_format): Assert that there - isn't a pending result. - (sarif_output_format::sarif_output_format): Add "line_maps" param - and pass it to m_builder's ctor. - (sarif_stream_output_format::sarif_stream_output_format): Add - "line_maps" param and pass it to base class ctor. - (sarif_file_output_format::sarif_file_output_format): Likewise. - (diagnostic_output_format_init_sarif_stderr): Pass "line_table" - global to format. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - (test_sarif_diagnostic_context::test_sarif_diagnostic_context): - Likewise. - (buffered_output_format::buffered_output_format): Likewise. - (selftest::test_make_location_object): Likewise. - (selftest::test_make_location_object): Create a sarif_result for - use when calling make_location_object. - * diagnostic.cc (diagnostic_context::finish): End any active - diagnostic groups. - (diagnostic_context::report_diagnostic): Assert that we're within - a diagnostic group. - * diagnostic.h (diagnostic_report_diagnostic): Add - begin_group/end_group pair around call to - diagnostic_context::report_diagnostic. - * selftest-diagnostic.cc (test_diagnostic_context::report): Add - begin_group/end_group pair around diagnostic_impl call. - -2024-07-26 Jeff Law - - PR target/116085 - * config/riscv/bitmanip.md (minmax extension avoidance splitter): - Rewrite as a simpler define_split. Adjust the opcode appropriately. - Avoid emitting sign extension if it's clearly not needed. - * config/riscv/iterators.md (minmax_optab): Rename to uminmax_optab - and map everything to unsigned variants. - -2024-07-26 Siddhesh Poyarekar - - * gimple-ssa-sprintf.cc (format_string): Fix type in range check - for UNLIKELY for wide chars. - -2024-07-26 Andrew Pinski - - * config/aarch64/aarch64-sve-builtins-base.cc (svbic_impl::expand): Update - to use andn optab instead of using code_for_aarch64_bic. - * config/aarch64/aarch64-sve.md (@aarch64_bic): Rename to ... - (andn3): This. - -2024-07-26 Andrew Pinski - - * config/aarch64/aarch64.md (*_one_cmpl3): Rename to ... - (n3): This. - (*_one_cmplsidi3_ze): Rename to ... - (*nsidi3_ze): This. - -2024-07-26 Andrew Pinski - - * config/aarch64/aarch64-simd.md - (bic3): Rename to ... - (andn3): This. Also swap operands. - (orn3): Rename to ... - (iorn3): This. Also swap operands. - (vec_cmp): Update orn call to iorn - and swap the last two arguments. - -2024-07-26 Andrew Pinski - - PR target/116065 - * config/aarch64/aarch64.opt (mearly-ra=): Mark as Optimization rather - than Save. - -2024-07-26 Andrew Pinski - - PR tree-optimization/116101 - * gimple-isel.cc (maybe_duplicate_comparison): Don't - do anything for -O0 or -fno-tree-ter. - -2024-07-26 Andrew Pinski - - * gimple-isel.cc (duplicate_comparison): Rename to ... - (maybe_duplicate_comparison): This. Add check for use here - rather than in its caller. - (pass_gimple_isel::execute): Don't check how many uses the - comparison had and call maybe_duplicate_comparison instead of - duplicate_comparison. - -2024-07-26 Andrew Pinski - - * gimple-isel.cc (pass_gimple_isel::execute): Factor out - duplicate comparisons out to ... - (duplicate_comparison): New function. - -2024-07-26 Andi Kleen - - PR c++/116019 - * tree-tailcall.cc (find_tail_calls): Change tail call - error message. - -2024-07-26 Robin Dapp - - * config/riscv/riscv.cc (riscv_override_options_internal): - Reword error string without apostrophe. - -2024-07-26 Tamar Christina - - PR target/116074 - * tree-vect-patterns.cc (vect_recog_cond_store_pattern): Check vector mode. - -2024-07-26 Haochen Jiang - - * config/i386/i386-expand.cc (ix86_expand_builtin): Change - from XImode to BLKmode. - * config/i386/i386.md (ldtilecfg): Change XI to BLK. - (sttilecfg): Ditto. - -2024-07-26 Nathaniel Shead - - PR c++/115757 - * tree.h (put_warning_spec_at): Declare new function. - (has_warning_spec): Likewise. - (get_warning_spec): Likewise. - (put_warning_spec): Likewise. - * diagnostic-spec.h (nowarn_spec_t::from_bits): New function. - * diagnostic-spec.cc (put_warning_spec_at): New function. - * warning-control.cc (has_warning_spec): New function. - (get_warning_spec): New function. - (put_warning_spec): New function. - -2024-07-25 Carl Love - - * config/rs6000/rs6000-builtin.cc (get_element_number, - altivec_expand_vec_set_builtin): Remove functions. - (rs6000_expand_builtin): Remove the if statement to call - altivec_expand_vec_set_builtin. - * config/rs6000/rs6000-builtins.def (__builtin_vsx_set_1ti, - __builtin_vsx_set_2df, __builtin_vsx_set_2di): Remove the - built-in definitions. - * config/rs6000/rs6000-gen-builtins.cc (struct attrinfo): - Remove the isset variable from the structure. - (parse_bif_attrs): Remove the uses of the isset variable. - -2024-07-25 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vec_set_v1ti, - __builtin_vec_set_v2df, __builtin_vec_set_v2di): Remove built-in - definitions. - * config/rs6000/rs6000-c.cc (resolve_vec_insert): Remove the - handling for constant vec_insert position with - VECTOR_UNIT_VSX_P V1TImode, V2DFmode and V2DImode modes. - -2024-07-25 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcmpeqsp, - __builtin_vsx_xvcmpgesp, __builtin_vsx_xvcmpgtsp): Remove - definitions. - -2024-07-25 Jeff Law - - PR rtl-optimization/116039 - * ext-dce.cc (ext_dce_process_uses): Add some comments about concerns - with current code. Mark additional bit groups as live when we have - an extension of a suitably promoted subreg. - -2024-07-25 Christoph Müllner - - PR target/116033 - * config/riscv/thead.cc (th_memidx_classify_address_modify): - Fix mode test. - -2024-07-25 Richard Biener - - PR tree-optimization/116083 - * tree-vect-slp.cc (vect_build_slp_tree): Do not allocate - a discovery fail node when we reached the discovery limit. - (vect_build_slp_instance): Terminate early when the - discovery limit is reached. - -2024-07-25 Richard Sandiford - - * doc/rtl.texi: Document the need to define INCLUDE_ARRAY before - including rtl-ssa.h. - * rtl-ssa.h: Likewise (in comment). - * config/aarch64/aarch64-cc-fusion.cc: Add INCLUDE_ARRAY. - * config/aarch64/aarch64-early-ra.cc: Likewise. - * config/riscv/riscv-avlprop.cc: Likewise. - * config/riscv/riscv-vsetvl.cc: Likewise. - * fwprop.cc: Likewise. - * late-combine.cc: Likewise. - * pair-fusion.cc: Likewise. - * rtl-ssa/accesses.cc: Likewise. - * rtl-ssa/blocks.cc: Likewise. - * rtl-ssa/changes.cc: Likewise. - * rtl-ssa/functions.cc: Likewise. - * rtl-ssa/insns.cc: Likewise. - * rtl-ssa/movement.cc: Likewise. - -2024-07-25 Sam James - - PR middle-end/114855 - * doc/invoke.texi (Optimize options): Mention machine-generated - code for -O1. - -2024-07-25 Richard Biener - - PR tree-optimization/116081 - * tree-vect-loop.cc (get_initial_defs_for_reduction): - Use operand_equal_p for comparing the element with the - neutral op. - -2024-07-25 Richard Biener - - PR tree-optimization/116079 - * tree-ssa-loop-im.cc (hoist_memory_references): Clear - VDEF of elided clobbers. - -2024-07-25 Richard Biener - - PR tree-optimization/116081 - * tree-vect-stmts.cc (vect_get_vector_types_for_stmt): - Properly compare types. - -2024-07-25 Robin Dapp - - PR target/116036 - * config/riscv/riscv.cc (riscv_override_options_internal): Error - with TARGET_VECTOR && !TARGET_MUL. - -2024-07-25 Juzhe-Zhong - - * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation. - -2024-07-25 Richard Sandiford - - PR rtl-optimization/116044 - * rtl-ssa/functions.h (function_info::split_clobber_group): Return - an array of two clobber_groups. - * rtl-ssa/accesses.cc (function_info::split_clobber_group): Return - the new clobber groups. Don't modify the splay tree here. - (function_info::add_def): Update call accordingly. Generalize - the splay tree insertion code so that the new definition can be - inserted as a child of any existing node, not just the root. - Fix the insertion used after calling split_clobber_group. - -2024-07-25 Jennifer Schmitz - - * config/aarch64/aarch64-sve-builtins.cc - (gimple_folder::redirect_call): Update return type. - * config/aarch64/aarch64-sve-builtins.h: Likewise. - * config/aarch64/aarch64-sve-builtins-sve2.cc (svqshl_impl::fold): - Remove cast to gcall. - (svrshl_impl::fold): Likewise. - -2024-07-25 Richard Biener - - * tree-ssa-structalias.cc (constraint_equal): Take const - reference to constraints. - (constraint_vec_find): Similar. - (solve_graph): Keep constraint vector sorted and verify - sorting with checking. - -2024-07-25 Lingling Kong - - PR target/115749 - * config/i386/x86-tune-costs.h (struct processor_costs): - Adjust rtx_cost of imulq and imulw for COST_N_INSNS (4) - to COST_N_INSNS (3). - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc (sarif_builder::make_locations_arr): - Don't add entirely empty location objects, such as for - UNKNOWN_LOCATION. - (test_sarif_diagnostic_context::test_sarif_diagnostic_context): - Add param "main_input_filename". - (selftest::test_simple_log): Provide above param. Verify that - "locations" is empty. - (selftest::test_simple_log_2): New. - (selftest::diagnostic_format_sarif_cc_tests): Call it. - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc (sarif_builder::flush_to_object): - New, using code moved from... - (sarif_builder::end_group): ...here. - (class selftest::test_sarif_diagnostic_context): New. - (selftest::test_simple_log): New. - (selftest::diagnostic_format_sarif_cc_tests): Call it. - * json.h (json::object::is_empty): New. - * selftest-diagnostic.cc (test_diagnostic_context::report): New. - * selftest-diagnostic.h (test_diagnostic_context::report): New - decl. - * selftest-json.cc (selftest::assert_json_string_eq): New. - (selftest::expect_json_object_with_string_property): New. - (selftest::assert_json_string_property_eq): New. - * selftest-json.h (selftest::assert_json_string_eq): New decl. - (ASSERT_JSON_STRING_EQ): New macro. - (selftest::expect_json_object_with_string_property): New decl. - (EXPECT_JSON_OBJECT_WITH_STRING_PROPERTY): New macro. - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc - (sarif_builder::make_location_object): Add "annotations" property if - there are any labelled ranges (§3.28.6). - (selftest::test_make_location_object): Verify annotations are added - to location_obj. - * json.h (json::array::size): New. - (json::array::operator[]): New. - * selftest-json.cc - (selftest::expect_json_object_with_array_property): New. - * selftest-json.h - (selftest::expect_json_object_with_array_property): New decl. - (EXPECT_JSON_OBJECT_WITH_ARRAY_PROPERTY): New macro. - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc - (make_date_time_string_for_current_time): New. - (sarif_invocation::sarif_invocation): Set "startTimeUtc" - property (§3.20.7). - (sarif_invocation::prepare_to_flush): Set "endTimeUtc" - property (§3.20.8). - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc (sarif_invocation::sarif_invocation): - Add "original_argv" param and use it to populate "arguments" - property (§3.20.2). - (sarif_builder::sarif_builder): Pass argv to m_invocation_obj's - ctor. - * diagnostic.cc (diagnostic_context::initialize): Initialize - m_original_argv. - (diagnostic_context::finish): Clean up m_original_argv. - (diagnostic_context::set_original_argv): New. - * diagnostic.h: Include "unique-argv.h". - (diagnostic_context::set_original_argv): New decl. - (diagnostic_context::get_original_argv): New decl. - (diagnostic_context::m_original_argv): New field. - * toplev.cc: Include "unique-argv.h". - (general_init): Add "original_argv" param and move it to global_dc. - (toplev::main): Stash a copy of the original argv before expansion, - and pass it to general_init for use by SARIF output. - * unique-argv.h: New file. - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc - (sarif_builder::make_artifact_location_object): Make public. - (sarif_invocation::sarif_invocation): Add param "builder". - Use it to potentially populate the "workingDirectory" property - with the result of pwd (§3.20.19). - (sarif_builder::sarif_builder): Pass *this to m_invocation_obj's - ctor. - -2024-07-24 David Malcolm - - * text-range-label.h: New file, taking class text_range_label from - gcc-rich-location.h. - -2024-07-24 David Malcolm - - * Makefile.in (OBJS-libcommon): Add selftest-json.o. - * diagnostic-format-sarif.cc: Include "selftest.h", - "selftest-diagnostic.h", "selftest-diagnostic-show-locus.h", - "selftest-json.h", and "text-range-label.h". - (class content_renderer): New. - (sarif_builder::m_rules_arr): Convert to std::unique_ptr. - (sarif_builder::make_location_object): Add class - escape_nonascii_renderer. If rich_loc.escape_on_output_p (), - pass a nonnull escape_nonascii_renderer to - maybe_make_physical_location_object as its snippet_renderer, and - add a property bag property "gcc/escapeNonAscii" to the SARIF - location object. For other overloads of make_location_object, - pass nullptr for the snippet_renderer. - (sarif_builder::maybe_make_region_object_for_context): Add - "snippet_renderer" param and pass it to - maybe_make_artifact_content_object. - (sarif_builder::make_tool_object): Drop "const". - (sarif_builder::make_driver_tool_component_object): Likewise. - Use typesafe unique_ptr variant of object::set for setting "rules" - property on driver_obj. - (sarif_builder::maybe_make_artifact_content_object): Add param "r" - and use it to potentially set the "rendered" property (§3.3.4). - (selftest::test_make_location_object): New. - (selftest::diagnostic_format_sarif_cc_tests): New. - * diagnostic-show-locus.cc: Include "text-range-label.h" and - "selftest-diagnostic-show-locus.h". - (selftests::diagnostic_show_locus_fixture::diagnostic_show_locus_fixture): - New. - (selftests::test_layout_x_offset_display_utf8): Use - diagnostic_show_locus_fixture to simplify and consolidate setup - code. - (selftests::test_diagnostic_show_locus_one_liner): Likewise. - (selftests::test_one_liner_colorized_utf8): Likewise. - (selftests::test_diagnostic_show_locus_one_liner_utf8): Likewise. - * gcc-rich-location.h (class text_range_label): Move to new file - text-range-label.h. - * selftest-diagnostic-show-locus.h: New file, based on material in - diagnostic-show-locus.cc. - * selftest-json.cc: New file. - * selftest-json.h: New file. - * selftest-run-tests.cc (selftest::run_tests): Call - selftest::diagnostic_format_sarif_cc_tests. - * selftest.h (selftest::diagnostic_format_sarif_cc_tests): New decl. - -2024-07-24 David Malcolm - - * diagnostic-format-json.cc: Include "make-unique.h". - (json_output_format::m_toplevel_array): Convert to - std::unique_ptr. - (json_output_format::json_output_format): Update accordingly. - (json_output_format::~json_output_format): Remove manual - "delete" of field. - (json_from_expanded_location): Convert return type to - std::unique_ptr. - (json_from_location_range): Likewise. Use nullptr rather than - NULL. - (json_from_fixit_hint): Convert return type to std::unique_ptr. - (json_from_metadata): Likewise. - (make_json_for_path): Likewise. - (json_output_format::on_end_diagnostic): Use std::unique_ptr - throughout. - (json_file_output_format::~json_file_output_format): Use nullptr. - (selftest::test_unknown_location): Update to use std::unique_ptr. - (selftest::test_bad_endpoints): Likewise. Replace NULL with - nullptr. - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc: Include "make-unique.h". Convert - raw pointers to std::unique_ptr throughout to indicate ownership, - adding comments in the few places where pointers are borrowed. - Use typesafe unique_ptr variants of json::object::set and - json::array::append throughout to make types of properties more - explicit, whilst using "auto" to reduce typing. - Use "nullptr" rather than "NULL" throughout. - * diagnostic-format-sarif.h (make_sarif_logical_location_object): - Use std::unique_ptr for return type. - -2024-07-24 David Malcolm - - * diagnostic-format-json.cc: Define INCLUDE_MEMORY. - * diagnostic-format-sarif.cc: Likewise. - * dumpfile.cc: Likewise. - * gcov.cc: Likewise. - * json.cc: Likewise. Include "make-unique.h". - (selftest::test_formatting): Exercise overloads of - array::append and object::set that use unique_ptr. - * json.h: Require INCLUDE_MEMORY to have been defined. - (json::object::set): Add a template to add a family of overloads - taking a std::unique_ptr - (json::array::append): Likewise. - * optinfo-emit-json.cc: Define INCLUDE_MEMORY. - * optinfo.cc: Likewise. - * timevar.cc: Likewise. - * toplev.cc: Likewise. - * tree-diagnostic-client-data-hooks.cc: Likewise. - -2024-07-24 David Malcolm - - * diagnostic-format-json.cc (json_from_expanded_location): Make - "static". Pass param "context" by reference, as it cannot be null. - (json_from_location_range): Likewise for param "context". - (json_from_fixit_hint): Likewise. - (make_json_for_path): Likewise. - (json_output_format::on_end_diagnostic): Update for above changes. - (diagnostic_output_format_init_json::diagnostic_output_format_init_json): - Pass param "context" by reference, as it cannot be null. - (diagnostic_output_format_init_json_stderr): Likewise. - (diagnostic_output_format_init_json_file): Likewise. - (selftest::test_unknown_location): Update for above changes. - (selftest::test_bad_endpoints): Likewise. - * diagnostic-format-sarif.cc (sarif_builder::m_context): Convert - from pointer to reference. - (sarif_invocation::add_notification_for_ice): Convert both params - from pointers to references. - (sarif_invocation::prepare_to_flush): Likewise for "context". - (sarif_result::on_nested_diagnostic): Likewise for "context" and - "builder". - (sarif_result::on_diagram): Likewise. - (sarif_ice_notification::sarif_ice_notification): Likewise. - (sarif_builder::sarif_builder): Likewise for "context". - (sarif_builder::end_diagnostic): Likewise. - (sarif_builder::emit_diagram): Likewise. - (sarif_builder::make_result_object): Likewise. - (make_reporting_descriptor_object_for_warning): Likewise. - (sarif_builder::make_locations_arr): Update for change to m_context. - (sarif_builder::get_sarif_column): Likewise. - (sarif_builder::make_message_object_for_diagram): Convert "context" - from pointer to reference. - (sarif_builder::make_tool_object): Likewise for "m_context". - (sarif_builder::make_driver_tool_component_object): Likewise. - (sarif_builder::get_or_create_artifact): Likewise. - (sarif_builder::maybe_make_artifact_content_object): Likewise. - (sarif_builder::get_source_lines): Likewise. - (sarif_output_format::on_end_diagnostic): Update for above changes. - (sarif_output_format::on_diagram): Likewise. - (sarif_output_format::sarif_output_format): Likewise. - (diagnostic_output_format_init_sarif): Convert param "context" - from pointer to reference. - (diagnostic_output_format_init_sarif_stderr): Likewise. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - * diagnostic.cc (diagnostic_output_format_init): Likewise. - * diagnostic.h (diagnostic_output_format_init): Likewise. - (diagnostic_output_format_init_json_stderr): Likewise. - (diagnostic_output_format_init_json_file): Likewise. - (diagnostic_output_format_init_sarif_stderr): Likewise. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - (json_from_expanded_location): Delete decl. - * gcc.cc (driver_handle_option): Update for change to - diagnostic_output_format_init. - * opts.cc (common_handle_option): Likewise. - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc: Introduce subclasses of sarif_object - for all aspects of the spec that we're using. Replace almost all - usage of json::object with uses of these subclasses, the only - remaining use of json::object being for originalUriBaseIds, as per - SARIF 2.1.0 §3.14.14. This stronger typing makes it considerably - easier to maintain validity against the schema. - * diagnostic-format-sarif.h (class sarif_logical_location): New. - (make_sarif_logical_location_object): Convert return type from - json::object * to sarif_logical_location *. - -2024-07-24 David Malcolm - - * gcov.cc (output_intermediate_json_line): Use - json::object::set_integer to avoid naked "new". - -2024-07-24 David Malcolm - - * diagnostic-format-sarif.cc (sarif_artifact::populate_roles): - Avoid naked "new" by using json::array::append_string. - (sarif_builder::maybe_make_kinds_array): Likewise. - * json.cc (json::array::append_string): New. - (selftest::test_writing_arrays): Use it. - * json.h (json::array::append_string): New decl. - * optinfo-emit-json.cc (optrecord_json_writer::pass_to_json): - Avoid naked "new" by using json::array::append_string. - (optrecord_json_writer::optinfo_to_json): Likewise. - -2024-07-24 David Malcolm - - * json.cc (value::dump): New overload, taking no params. - * json.h (value::dump): New decl. - -2024-07-24 Jeff Law - - PR rtl-optimization/116037 - * ext-dce.cc (ext_dce_process_sets): Note if we ever skip a dest - and return that info explicitly. - (ext_dce_process_uses): If a set was skipped, then consider all bits - in every input as live. Do not try to optimize away an extension if - we skipped processing a destination in the same insn. Restore code - to make shift/rotate count fully live. - (ext_dce_process_bb): Handle API changes for ext_dce_process_sets. - -2024-07-24 Andrew Carlotti - - * common/config/aarch64/aarch64-common.cc - (aarch64_set_asm_isa_flags): Store a second uint64_t value. - * config/aarch64/aarch64-opts.h - (aarch64_feature_flags): Switch typedef to bbitmap<2>. - * config/aarch64/aarch64.cc - (aarch64_set_current_function): Extract isa mode from val[0]. - * config/aarch64/aarch64.h - (aarch64_get_asm_isa_flags): Load a second uint64_t value. - (aarch64_get_isa_flags): Ditto. - (aarch64_asm_isa_flags): Ditto. - (aarch64_isa_flags): Ditto. - (HANDLE): Use bbitmap<2>::from_index to initialise flags. - (AARCH64_FL_ISA_MODES): Do arithmetic on integer type. - (AARCH64_ISA_MODE): Extract value from bbitmap<2> array. - * config/aarch64/aarch64.opt - (aarch64_asm_isa_flags_1): New variable. - (aarch64_isa_flags_1): Ditto. - -2024-07-24 Andrew Carlotti - - * bbitmap.h: New file. - -2024-07-24 Andrew Carlotti - - * config/aarch64/aarch64-feature-deps.h - (get_flags_off): Construct aarch64_feature_flags (0) explicitly. - -2024-07-24 Andrew Carlotti - - * config/aarch64/aarch64-c.cc - (aarch64_define_unconditional_macros): Use TARGET_V8R macro. - (aarch64_update_cpp_builtins): Use TARGET_* macros. - * config/aarch64/aarch64.h (AARCH64_HAVE_ISA): New macro. - (AARCH64_ISA_SM_OFF, AARCH64_ISA_SM_ON, AARCH64_ISA_ZA_ON) - (AARCH64_ISA_V8A, AARCH64_ISA_V8_1A, AARCH64_ISA_CRC) - (AARCH64_ISA_FP, AARCH64_ISA_SIMD, AARCH64_ISA_LSE) - (AARCH64_ISA_RDMA, AARCH64_ISA_V8_2A, AARCH64_ISA_F16) - (AARCH64_ISA_SVE, AARCH64_ISA_SVE2, AARCH64_ISA_SVE2_AES) - (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3) - (AARCH64_ISA_SVE2_SM4, AARCH64_ISA_SME, AARCH64_ISA_SME_I16I64) - (AARCH64_ISA_SME_F64F64, AARCH64_ISA_SME2, AARCH64_ISA_V8_3A) - (AARCH64_ISA_DOTPROD, AARCH64_ISA_AES, AARCH64_ISA_SHA2) - (AARCH64_ISA_V8_4A, AARCH64_ISA_SM4, AARCH64_ISA_SHA3) - (AARCH64_ISA_F16FML, AARCH64_ISA_RCPC, AARCH64_ISA_RCPC8_4) - (AARCH64_ISA_RNG, AARCH64_ISA_V8_5A, AARCH64_ISA_TME) - (AARCH64_ISA_MEMTAG, AARCH64_ISA_V8_6A, AARCH64_ISA_I8MM) - (AARCH64_ISA_F32MM, AARCH64_ISA_F64MM, AARCH64_ISA_BF16) - (AARCH64_ISA_SB, AARCH64_ISA_RCPC3, AARCH64_ISA_V8R) - (AARCH64_ISA_PAUTH, AARCH64_ISA_V8_7A, AARCH64_ISA_V8_8A) - (AARCH64_ISA_V8_9A, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A) - (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A, AARCH64_ISA_V9_4A) - (AARCH64_ISA_MOPS, AARCH64_ISA_LS64, AARCH64_ISA_CSSC) - (AARCH64_ISA_D128, AARCH64_ISA_THE, AARCH64_ISA_GCS): Remove. - (TARGET_BASE_SIMD, TARGET_SIMD, TARGET_FLOAT) - (TARGET_NON_STREAMING, TARGET_STREAMING, TARGET_ZA, TARGET_SHA2) - (TARGET_SHA3, TARGET_AES, TARGET_SM4, TARGET_F16FML) - (TARGET_CRC32, TARGET_LSE, TARGET_FP_F16INST) - (TARGET_SIMD_F16INST, TARGET_DOTPROD, TARGET_SVE, TARGET_SVE2) - (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3) - (TARGET_SVE2_SM4, TARGET_SME, TARGET_SME_I16I64) - (TARGET_SME_F64F64, TARGET_SME2, TARGET_ARMV8_3, TARGET_JSCVT) - (TARGET_FRINT, TARGET_TME, TARGET_RNG, TARGET_MEMTAG) - (TARGET_I8MM, TARGET_SVE_I8MM, TARGET_SVE_F32MM) - (TARGET_SVE_F64MM, TARGET_BF16_FP, TARGET_BF16_SIMD) - (TARGET_SVE_BF16, TARGET_PAUTH, TARGET_BTI, TARGET_MOPS) - (TARGET_LS64, TARGET_CSSC, TARGET_SB, TARGET_RCPC, TARGET_RCPC2) - (TARGET_RCPC3, TARGET_SIMD_RDMA, TARGET_ARMV9_4, TARGET_D128) - (TARGET_THE, TARGET_GCS): Redefine using AARCH64_HAVE_ISA. - (TARGET_V8R, TARGET_V9A): New. - * config/aarch64/aarch64.md (arch_enabled): Use TARGET_RCPC2. - * config/aarch64/iterators.md (GPI_I16): Use TARGET_FP_F16INST. - (GPF_F16): Ditto. - * config/aarch64/predicates.md - (aarch64_rcpc_memory_operand): Use TARGET_RCPC2. - -2024-07-24 Andrew Carlotti - - * config/aarch64/aarch64.cc - (aarch64_valid_sysreg_name_p): Add bool cast. - -2024-07-24 Andrew Carlotti - - * common/config/aarch64/aarch64-common.cc - (aarch64_set_asm_isa_flags): Reorder, and add suffix to names. - * config/aarch64/aarch64.h - (aarch64_get_asm_isa_flags): Add "_0" suffix. - (aarch64_get_isa_flags): Ditto. - (aarch64_asm_isa_flags): Redefine using renamed uint64_t value. - (aarch64_isa_flags): Ditto. - * config/aarch64/aarch64.opt: - (aarch64_asm_isa_flags): Rename to... - (aarch64_asm_isa_flags_0): ...this, and change to uint64_t. - (aarch64_isa_flags): Rename to... - (aarch64_isa_flags_0): ...this, and change to uint64_t. - -2024-07-24 Andrew Carlotti - - * common/config/aarch64/aarch64-common.cc - (aarch64_handle_option): Use new macro. - * config/aarch64/aarch64.cc - (aarch64_override_options_internal): Ditto. - (aarch64_option_print): Ditto. - (aarch64_set_current_function): Ditto. - (aarch64_can_inline_p): Ditto. - (aarch64_declare_function_name): Ditto. - (aarch64_start_file): Ditto. - * config/aarch64/aarch64.h (aarch64_get_asm_isa_flags): New - (aarch64_get_isa_flags): New. - (aarch64_asm_isa_flags): Use new macro. - (aarch64_isa_flags): Ditto. - -2024-07-24 Andrew Carlotti - - * config/aarch64/aarch64-opts.h: Add aarch64_isa_mode typedef. - * config/aarch64/aarch64-protos.h - (aarch64_gen_callee_cookie): Use aarch64_isa_mode parameter. - (aarch64_sme_vq_immediate): Ditto. - * config/aarch64/aarch64.cc - (aarch64_fntype_pstate_sm): Use aarch64_isa_mode values. - (aarch64_fntype_pstate_za): Ditto. - (aarch64_fndecl_pstate_sm): Ditto. - (aarch64_fndecl_pstate_za): Ditto. - (aarch64_fndecl_isa_mode): Ditto. - (aarch64_cfun_incoming_pstate_sm): Ditto. - (aarch64_cfun_enables_pstate_sm): Ditto. - (aarch64_call_switches_pstate_sm): Ditto. - (aarch64_gen_callee_cookie): Ditto. - (aarch64_callee_isa_mode): Ditto. - (aarch64_insn_callee_abi): Ditto. - (aarch64_sme_vq_immediate): Ditto. - (aarch64_add_offset_temporaries): Ditto. - (aarch64_add_offset): Ditto. - (aarch64_add_sp): Ditto. - (aarch64_sub_sp): Ditto. - (aarch64_guard_switch_pstate_sm): Ditto. - (aarch64_switch_pstate_sm): Ditto. - (aarch64_init_cumulative_args): Ditto. - (aarch64_allocate_and_probe_stack_space): Ditto. - (aarch64_expand_prologue): Ditto. - (aarch64_expand_epilogue): Ditto. - (aarch64_start_call_args): Ditto. - (aarch64_expand_call): Ditto. - (aarch64_end_call_args): Ditto. - (aarch64_set_current_function): Ditto, with added conversions. - (aarch64_handle_attr_arch): Avoid macro with changed type. - (aarch64_handle_attr_cpu): Ditto. - (aarch64_handle_attr_isa_flags): Ditto. - (aarch64_switch_pstate_sm_for_landing_pad): - Use arch64_isa_mode values. - (aarch64_switch_pstate_sm_for_jump): Ditto. - (pass_switch_pstate_sm::gate): Ditto. - * config/aarch64/aarch64.h - (AARCH64_ISA_MODE_{SM_ON|SM_OFF|ZA_ON}): New macros. - (AARCH64_FL_SM_STATE): Mark as possibly unused. - (AARCH64_ISA_MODE_SM_STATE): New aarch64_isa_mode mask. - (AARCH64_DEFAULT_ISA_MODE): New aarch64_isa_mode value. - (AARCH64_FL_DEFAULT_ISA_MODE): Define using above value. - (AARCH64_ISA_MODE): Change type to aarch64_isa_mode. - (arm_pcs): Use aarch64_isa_mode value. - -2024-07-24 Andrew Carlotti - - * config/aarch64/aarch64.cc - (aarch64_override_options): Remove temporary variable. - -2024-07-24 Andrew Carlotti - - * config/aarch64/aarch64.h (DEF_AARCH64_ISA_MODE): Move to... - * config/aarch64/aarch64-opts.h (DEF_AARCH64_ISA_MODE): ...here. - -2024-07-24 Andrew Carlotti - - * config/aarch64/aarch64.cc - (aarch64_tune_flags): Remove unused global variable. - (aarch64_override_options_internal): Remove dead assignment. - -2024-07-24 Andrew Pinski - - * config/rs6000/rs6000-builtins.def: s/iorc/iorn/. s/andc/andn/ - for the code. - * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update - to iorn. - * config/rs6000/rs6000.md (andc3): Rename to ... - (andn3): This. - (iorc3): Rename to ... - (iorn3): This. - * doc/md.texi: Update documentation for the rename. - * internal-fn.def (BIT_ANDC): Rename to ... - (BIT_ANDN): This. - (BIT_IORC): Rename to ... - (BIT_IORN): This. - * optabs.def (andc_optab): Rename to ... - (andn_optab): This. - (iorc_optab): Rename to ... - (iorn_optab): This. - * gimple-isel.cc (gimple_expand_vec_cond_expr): Update for the - renamed internal functions, ANDC/IORC to ANDN/IORN. - -2024-07-24 Gaius Mulley - - * doc/install.texi (GM2-prerequisite): Add GNU flex. - -2024-07-24 Richard Biener - - PR tree-optimization/116057 - * tree-ssa-ccp.cc (likely_value): Also walk CTORs in stmt - operands to look for constants. - -2024-07-24 Kyrylo Tkachov - - Revert: - 2024-07-24 Jennifer Schmitz - - * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement - fusion logic. - * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry. - (cmp+cset): Likewise. - * config/aarch64/tuning_models/neoversev2.h: Enable logic in - field fusible_ops. - -2024-07-24 Jennifer Schmitz - - * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement - fusion logic. - * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry. - (cmp+cset): Likewise. - * config/aarch64/tuning_models/neoversev2.h: Enable logic in - field fusible_ops. - -2024-07-24 Christoph Müllner - - PR target/116035 - * config/riscv/bitmanip.md: Disable zero_extendsidi2_bitmanip - for XTheadMemIdx. - -2024-07-24 Lingling Kong - - PR target/115978 - * config/i386/driver-i386.cc (host_detect_local_cpu): Enable - APX_F only for 64-bit codegen. - * config/i386/i386-options.cc (DEF_PTA): Skip PTA_APX_F if - not in 64-bit mode. - -2024-07-24 Pan Li - - PR target/115961 - * internal-fn.cc (type_strictly_matches_mode_p): Add new func - impl to check type strictly matches mode or not. - (type_pair_strictly_matches_mode_p): Ditto but for tree type - pair. - (direct_internal_fn_supported_p): Add above check for the tree - type pair. - -2024-07-23 Mark Harmstone - - * dwarf2codeview.cc (get_type_num_reference_type): Handle rvalue refs. - (get_type_num_array_type): Add DW_TAG_rvalue_reference_type to switch. - (get_type_num): Handle DW_TAG_rvalue_reference_type DIEs. - * dwarf2codeview.h (CV_PTR_MODE_RVREF): Define. - -2024-07-23 Mark Harmstone - - * dwarf2codeview.cc (get_type_num_reference_type): New function. - (get_type_num_array_type): Add DW_TAG_reference_type to switch. - (get_type_num): Handle DW_TAG_reference_type DIEs. - * dwarf2codeview.h (CV_PTR_MODE_LVREF): Define. - -2024-07-23 Vineet Gupta - - * config/riscv/bitmanip.md: Fix splitter. - -2024-07-23 Marek Polacek - - * doc/extend.texi: Add missing @option. - -2024-07-23 Andi Kleen - - PR c/83324 - * doc/extend.texi: Document [[musttail]] - -2024-07-23 Tobias Burnus - - * doc/install.texi (amdgcn-x-amdhsa): Suggest newer git version - for newlib. - -2024-07-23 Jiufu Guo - - PR target/96866 - * config/rs6000/rs6000.cc (print_operand_address): Emit message for - unsupported operand. - -2024-07-23 Richard Biener - - PR tree-optimization/116002 - * tree-ssa-structalias.cc (topo_visit): Also consider - SCALAR = SCALAR complex constraints as edges. - -2024-07-23 Jakub Jelinek - Andrew Pinski - - PR tree-optimization/116034 - * tree-ssa.cc (maybe_rewrite_mem_ref_base): Only use IMAGPART_EXPR - if MEM_REF offset is equal to element type size. - -2024-07-23 Richard Biener - - PR rtl-optimization/116002 - * cselib.cc (cselib_hash_rtx): Use inchash to get proper mixing. - Consistently avoid a zero return value when hashing successfully. - Consistently treat a zero hash value from recursing as fatal. - Use hashval_t where appropriate. - (cselib_hash_plus_const_int): Likewise. - (new_cselib_val): Use hashval_t. - (cselib_lookup_1): Likewise. - -2024-07-23 liuhongt - - * config/i386/i386.cc (ix86_hardreg_mov_ok): Relax mov subreg - to hard register after split1. - -2024-07-23 Kewen Lin - - PR target/115713 - * config/rs6000/rs6000.cc (rs6000_inner_target_options): Update option - set information for rs6000_opt_vars. - -2024-07-23 Kewen Lin - - PR target/115713 - * config/rs6000/rs6000.cc (rs6000_inner_target_options): Avoid to - enable altivec or disable avoid-indexed-addresses automatically - when they get specified explicitly. - -2024-07-23 Kewen Lin - - PR target/115713 - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Emit error - messages when explicit VSX encounters explicit soft-float, no-altivec - or avoid-indexed-addresses. - -2024-07-23 Haochen Jiang - - * config/i386/i386.md (prefetchi): Change to %a. - -2024-07-23 Jeff Law - - PR rtl-optimization/115877 - * ext-dce.cc (ext_dce_process_sets): Reasonably handle input/output - operands. - (ext_dce_rd_transfer_n): Drop bogus assertion. - -2024-07-23 Pan Li - - * config/riscv/iterators.md (ANYI_DOUBLE_TRUNC): Add new iterator - for int double truncation. - (ANYI_DOUBLE_TRUNCATED): Add new attr for int double truncation. - (anyi_double_truncated): Ditto but for lowercase. - * config/riscv/riscv-protos.h (riscv_expand_ustrunc): Add new - func decl for expanding ustrunc - * config/riscv/riscv.cc (riscv_expand_ustrunc): Add new func - impl to expand ustrunc. - * config/riscv/riscv.md (ustrunc2): Impl - the new pattern ustrunc2 for int. - -2024-07-22 Jan Hubicka - - PR ipa/109985 - * ipa-modref.cc (modref_summary::useful_p): Fix handling of ECF_NOVOPS. - (modref_access_analysis::process_fnspec): Likevise. - (modref_access_analysis::analyze_call): Likevise. - (propagate_unknown_call): Likevise. - (modref_propagate_in_scc): Likevise. - (modref_propagate_flags_in_scc): Likewise. - (ipa_merge_modref_summary_after_inlining): Likewise. - -2024-07-22 Jan Hubicka - - PR ipa/111613 - * ipa-modref.cc (analyze_parms): Do not preserve EAF_NO_DIRECT_READ and - EAF_NO_INDIRECT_READ from past flags. - -2024-07-22 Michael Meissner - - * config.gcc (powerpc*-*-*): Add support for power11. - * config/rs6000/aix71.h (ASM_CPU_SPEC): Add support for -mcpu=power11. - * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. - * config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise. - * config/rs6000/driver-rs6000.cc (asm_names): Likewise. - * config/rs6000/ppc-auxv.h (PPC_PLATFORM_POWER11): New define. - * config/rs6000/rs6000-builtin.cc (cpu_is_info): Add power11. - * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define - _ARCH_PWR11 if -mcpu=power11. - * config/rs6000/rs6000-cpus.def (POWER11_MASKS_SERVER): New define. - (POWERPC_MASKS): Add power11. - (power11 cpu): Add power11 definition. - * config/rs6000/rs6000-opts.h (PROCESSOR_POWER11): Add power11 processor. - * config/rs6000/rs6000-string.cc (expand_compare_loop): Likewise. - * config/rs6000/rs6000-tables.opt: Regenerate. - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Add power11 - support. - (rs6000_machine_from_flags): Likewise. - (rs6000_reassociation_width): Likewise. - (rs6000_adjust_cost): Likewise. - (rs6000_issue_rate): Likewise. - (rs6000_sched_reorder): Likewise. - (rs6000_sched_reorder2): Likewise. - (rs6000_register_move_cost): Likewise. - (rs6000_opt_masks): Likewise. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise. - * config/rs6000/rs6000.md (cpu attribute): Add power11. - * config/rs6000/rs6000.opt (-mpower11): Add internal power11 flag. - * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=power11. - * config/rs6000/power10.md (all reservations): Add power11 support. - -2024-07-22 Jeff Law - - PR rtl-optimization/115877 - * ext-dce.cc (ext_dce_process_sets): More correctly handle SUBREG - destinations. - -2024-07-22 Jan Hubicka - - PR ipa/115033 - * ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Fix checking of - EAF flags when analysing values dereferenced as function parameters. - -2024-07-22 Jan Hubicka - - PR ipa/114207 - * ipa-prop.cc (unadjusted_ptr_and_unit_offset): Fix accounting of offsets in ADDR_EXPR. - -2024-07-22 Jan Hubicka - - PR ipa/115277 - * ipa-icf-gimple.cc (func_checker::compare_loops): compare loop - bounds. - -2024-07-22 Richard Sandiford - - PR rtl-optimization/116009 - * rtl-ssa/accesses.cc (function_info::add_def): Set the root - local variable after removing the old clobber group. - -2024-07-22 Richard Sandiford - - * rtl-ssa/accesses.h (rtl_ssa::pp_def_splay_tree): Declare. - (dump, debug): Add overloads for def_splay_tree. - * rtl-ssa/accesses.cc (rtl_ssa::pp_def_splay_tree): New function. - (dump, debug): Add overloads for def_splay_tree. - -2024-07-22 Richard Sandiford - - PR target/115969 - * config/aarch64/aarch64.cc (aarch64_simd_mem_operand_p): Require - the operand to be a legitimate memory_operand. - -2024-07-22 Jeff Law - - PR rtl-optimization/115877 - * ext-dce.cc (group_limit): New function. - (mark_reg_live): Likewise. - (ext_dce_process_sets): Use new functions. - (ext_dce_process_uses): Likewise. - (ext_dce_init): Likewise. - -2024-07-22 Richard Biener - - * fold-const.cc (operand_compare::hash_operand): Fix hash - of WIDEN_*_EXPR. - -2024-07-22 Richard Biener - - * inchash.h (inchash::end): Make const. - (inchash::merge): Take const reference hash argument. - (inchash::add_commutative): Likewise. - -2024-07-22 Tamar Christina - - PR tree-optimization/115531 - * config/aarch64/aarch64.cc - (aarch64_conditional_operation_is_expensive): New. - (TARGET_VECTORIZE_CONDITIONAL_OPERATION_IS_EXPENSIVE): New. - -2024-07-22 Tamar Christina - - PR tree-optimization/115531 - * tree-vect-patterns.cc (vect_cond_store_pattern_same_ref): New. - (vect_recog_cond_store_pattern): New. - (vect_vect_recog_func_ptrs): Use it. - * target.def (conditional_operation_is_expensive): New. - * doc/tm.texi: Regenerate. - * doc/tm.texi.in: Document it. - * targhooks.cc (default_conditional_operation_is_expensive): New. - * targhooks.h (default_conditional_operation_is_expensive): New. - -2024-07-21 Jeff Law - - PR rtl-optimization/115877 - * ext-dce.cc (safe_for_live_propagation): Handle RTX_CONST_OBJ. - -2024-07-21 Jeff Law - - PR rtl-optimization/115877 - * ext-dce.cc (ext_dce_process_uses): Restore the value of DST_MASK - for reach operand. - -2024-07-21 Sam James - - * Makefile.in (NOCOMMON_FLAG): Delete. - (GCC_WARN_CFLAGS): Drop NOCOMMON_FLAG. - (GCC_WARN_CXXFLAGS): Drop NOCOMMON_FLAG. - * configure.ac: Ditto. - * configure: Regenerate. - -2024-07-21 Oleg Endo - - * config/sh/sh.md (mov_neg_si_t): Allow insn and split after - register allocation. - (*treg_noop_move): New insn. - -2024-07-20 Andi Kleen - - Revert: - 2024-07-20 Andi Kleen - - PR c/83324 - * doc/extend.texi: Document [[musttail]] - -2024-07-20 Mark Harmstone - - * dwarf2codeview.cc (enum cv_sym_type): Add new values. - (struct codeview_symbol): Add function to union. - (struct codeview_custom_type): Add lf_func_id to union. - (write_function): New function. - (write_codeview_symbols): Call write_function. - (write_lf_func_id): New function. - (write_custom_types): Call write_lf_func_id. - (add_function): New function. - (codeview_debug_early_finish): Call add_function. - -2024-07-20 André Maroneze - - * doc/invoke.texi (Spec Files): Remove documentation of obsolete - spec strings "predefines" and "signed_char". - -2024-07-20 Siddhesh Poyarekar - - * opt-suggestions.cc - (option_proposer::build_option_suggestions): Pull OPTB - definition out of the innermost loop. - -2024-07-20 Andi Kleen - - PR c/83324 - * doc/extend.texi: Document [[musttail]] - -2024-07-20 Lulu Cheng - - * config/loongarch/loongarch-protos.h - (loongarch_split_128bit_move): Delete. - (loongarch_split_128bit_move_p): Delete. - (loongarch_split_256bit_move): Delete. - (loongarch_split_256bit_move_p): Delete. - (loongarch_split_vector_move): Add a function declaration. - * config/loongarch/loongarch.cc - (loongarch_vector_costs::finish_cost): Adjust the code - formatting. - (loongarch_split_vector_move_p): Merge - loongarch_split_128bit_move_p and loongarch_split_256bit_move_p. - (loongarch_split_move_p): Merge code. - (loongarch_split_move): Likewise. - (loongarch_split_128bit_move_p): Delete. - (loongarch_split_256bit_move_p): Delete. - (loongarch_split_128bit_move): Delete. - (loongarch_split_vector_move): Merge loongarch_split_128bit_move - and loongarch_split_256bit_move. - (loongarch_split_256bit_move): Delete. - (loongarch_global_init): Remove the extra semicolon at the - end of the function. - * config/loongarch/loongarch.md (*movdf_softfloat): Added a new - condition TARGET_64BIT. - -2024-07-19 Andrew MacLeod - - PR tree-optimization/116003 - * value-relation.cc (equiv_oracle::register_initial_def): Check - if SSA_NAME is in the IL before registering. - -2024-07-19 Thomas Schwinge - - * passes.def: Rewrite usage comment at the top. - -2024-07-19 Richard Sandiford - - PR middle-end/115406 - * fold-const.cc (native_encode_vector_part): For vector booleans, - check whether an element is nonzero and, if so, set all of the - correspending bits in the target image. - * simplify-rtx.cc (native_encode_rtx): Likewise. - -2024-07-19 Georg-Johann Lay - - * config/avr/builtins.def (MASK1): New DEF_BUILTIN. - * config/avr/avr.cc (avr_rtx_costs_1): Handle rtx costs for - expressions like __builtin_avr_mask1. - (avr_init_builtins) : New tree type. - (avr_expand_builtin) [AVR_BUILTIN_MASK1]: Diagnose unexpected forms. - (avr_fold_builtin) [AVR_BUILTIN_MASK1]: Handle case. - * config/avr/avr.md (gen_mask1): New expand helper. - (mask1_0x01_split, mask1_0x80_split, mask1_0xfe_split): New - insn-and-split. - (*mask1_0x01, *mask1_0x80, *mask1_0xfe): New insns. - * doc/extend.texi (AVR Built-in Functions) <__builtin_avr_mask1>: - Document new built-in function. - -2024-07-19 Cupertino Miranda - - * config/bpf/atomic.md (atomic_compare_and_swap, - atomic_exchange): Add operand modifier %M to the first - operand. - * config/bpf/bpf.cc (no_parentheses_mem_operand): Create - variable. - (bpf_print_operand): Set no_parentheses_mem_operand variable if - %M operand is used. - (bpf_print_operand_address): Conditionally output parentheses. - -2024-07-19 Pan Li - - PR target/115863 - * match.pd: Add single_use check for .SAT_TRUNC form 2. - -2024-07-18 René Rebe - Peter Bergner - - PR target/97367 - * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Do not consider - OPTION_MASK_ALTIVEC. - (emit_asm_machine): For Altivec compiles, emit a ".machine altivec". - -2024-07-18 Marek Polacek - Jakub Jelinek - - PR c++/115865 - * tree-eh.cc (get_eh_else): Check that the result of - gimple_seq_first_stmt is non-null. - -2024-07-18 LIU Hao - - PR rtl-optimization/115049 - * varasm.cc (decl_binds_to_current_def_p): Add a check for COMDAT - declarations too, like weak ones. - -2024-07-18 Richard Biener - - PR middle-end/115641 - * fold-const.cc (decode_field_reference): If the inner - reference isn't something we can take the address of, fail. - -2024-07-18 Pan Li - - * doc/md.texi: Add Standard-Names ustrunc and sstrunc. - -2024-07-18 Rubin Gerritsen - - * gimple-fold.cc (dump_transformation): Moved definition. - (replace_call_with_call_and_fold): Calls dump_transformation. - (gimple_fold_builtin_stxcpy_chk): Removes call to - dump_transformation, now in replace_call_with_call_and_fold. - (gimple_fold_builtin_stxncpy_chk): Removes call to - dump_transformation, now in replace_call_with_call_and_fold. - -2024-07-18 Richard Biener - - PR tree-optimization/104515 - * tree-ssa-loop-im.cc (execute_sm_exit): Add clobbers_to_prune - parameter and handle re-materializing of clobbers. - (sm_seq_valid_bb): end-of-storage/object clobbers are OK inside - an ordered sequence of stores. - (sm_seq_push_down): Refuse to push down clobbers. - (hoist_memory_references): Prune clobbers from the loop body - we re-materialized on an exit. - -2024-07-18 Roger Sayle - - * match.pd ((FTYPE) N CMP CST): Only worry about exceptions with - flag_trapping_math, and about signaling NaNs with HONOR_SNANS. - -2024-07-18 Kyrylo Tkachov - - * doc/invoke.texi (AArch64 Options): Document rewriting of - -march=native to -mcpu=native. - -2024-07-18 liuhongt - - PR target/115843 - * config/i386/predicates.md (const0_or_m1_operand): New - predicate. - * config/i386/sse.md (*_store_mask_1): New - pre_reload define_insn_and_split. - (V): Add V32BF,V16BF,V8BF. - (V4SF_V8BF): Rename to .. - (V24F_128): .. this. - (*vec_concat): Adjust with V24F_128. - (*vec_concat_0): Ditto. - -2024-07-18 Andi Kleen - - PR c/83324 - * calls.cc (initialize_argument_information): Mark messages - for translation. - (can_implement_as_sibling_call_p): Dito. - (expand_call): Dito. - -2024-07-18 Andi Kleen - - PR c/83324 - * tree-tailcall.cc (maybe_error_musttail): New function. - (suitable_for_tail_opt_p): Report error reason. - (suitable_for_tail_call_opt_p): Report error reason. - (find_tail_calls): Accept basic blocks with abnormal edges. - Delay reporting of errors until the call is discovered. - Move top level suitability checks to here. - (tree_optimize_tail_calls_1): Remove top level checks. - -2024-07-18 Andi Kleen - - PR c/83324 - * function.h (struct function): Add has_musttail. - * lto-streamer-in.cc (input_struct_function_base): Stream - has_musttail. - * lto-streamer-out.cc (output_struct_function_base): Dito. - * passes.def (pass_musttail): Add. - * tree-cfg.cc (notice_special_calls): Record has_musttail. - (clear_special_calls): Clear has_musttail. - * tree-pass.h (make_pass_musttail): Add. - * tree-tailcall.cc (find_tail_calls): Handle only_musttail - argument. - (tree_optimize_tail_calls_1): Pass on only_musttail. - (execute_tail_calls): Pass only_musttail as false. - (class pass_musttail): Add. - (make_pass_musttail): Add. - -2024-07-18 Andi Kleen - - PR target/115255 - * function.cc (thread_prologue_and_epilogue_insns): Check - cfun->tail_call_marked for sibcalls too. - (rest_of_handle_thread_prologue_and_epilogue): Dito. - -2024-07-18 Andi Kleen - - PR c/83324 - * calls.cc (maybe_complain_about_tail_call): Clear must tail - flag on error. - (expand_call): Give error messages for all musttail failures. - -2024-07-17 Richard Sandiford - - PR rtl-optimization/115929 - * rtl-ssa/movement.h (canonicalize_move_range): Check for null prev - and next insns and create an invalid move range for them. - -2024-07-17 Richard Sandiford - - PR rtl-optimization/115928 - * rtl-ssa/accesses.h (clobber_group): Add a new constructor that - takes the first, last and root clobbers. - * rtl-ssa/internals.inl (clobber_group::clobber_group): Define it. - * rtl-ssa/accesses.cc (function_info::split_clobber_group): Use it. - Allocate a new group for both sides and invalidate the previous group. - (function_info::add_def): After calling split_clobber_group, - remove the old group from the splay tree. - -2024-07-17 Richard Sandiford - - * genattrtab.cc (attr_desc::cxx_type): New field. - (write_attr_get, write_attr_value): Use it. - (gen_attr, find_attr, make_internal_attr): Initialize it, - dropping enum tags. - -2024-07-17 Eikansh Gupta - - PR tree-optimization/111150 - * match.pd (`(a ? x : y) eq/ne (b ? x : y)`): New pattern. - (`(a ? x : y) eq/ne (b ? y : x)`): New pattern. - -2024-07-17 Andrew Pinski - - * dbgcnt.def (ext_dce): New debug counter. - * ext-dce.cc (ext_dce_try_optimize_insn): Reject the insn - if the debug counter says so. - (ext_dce): Rename to ... - (ext_dce_execute): This. - (pass_ext_dce::execute): Update for the name of ext_dce. - -2024-07-17 Uros Bizjak - - PR target/115526 - * config/alpha/alpha.md (movdi_er_high_g): Add cannot_copy attribute. - (movdi_er_tlsgd): Ditto. - (movdi_er_tlsldm): Ditto. - (call_value_osf_): Ditto. - -2024-07-17 Georg-Johann Lay - - PR target/90616 - * config/avr/predicates.md (const_0mod256_operand): New predicate. - * config/avr/constraints.md (Cp8): New constraint. - * config/avr/avr.md (*aligned_add_symbol): New insn. - * config/avr/avr.cc (avr_out_plus_symbol) [HImode]: - When op2 is a multiple of 256, there is no need to add / subtract - the lo8 part. - (avr_rtx_costs_1) [PLUS && HImode]: Return expected costs for - new insn *aligned_add_symbol as it applies. - -2024-07-17 Jakub Jelinek - - PR middle-end/115887 - * gimple-lower-bitint.cc (gimple_lower_bitint): Use gsi_insert_on_edge - instead of gsi_insert_on_edge_immediate and set edge_insertions to - true. - -2024-07-17 Jakub Jelinek - - * varasm.cc (default_elf_asm_output_ascii): Use ASM_OUTPUT_SKIP instead - of 2 or more default_elf_asm_output_limited_string (f, "") calls and - adjust base64 heuristics correspondingly. - -2024-07-17 Tamar Christina - - PR tree-optimization/115936 - * tree-scalar-evolution.cc (simple_iv_with_niters): Use sizetype for - pointers. - -2024-07-17 Feng Xue - - PR tree-optimization/114440 - * tree-vectorizer.h (struct _stmt_vec_info): Add a new field - reduc_result_pos. - * tree-vect-loop.cc (vect_transform_reduction): Generate lane-reducing - statements in an optimized order. - -2024-07-17 Feng Xue - - PR tree-optimization/114440 - * tree-vectorizer.h (vectorizable_lane_reducing): New function - declaration. - * tree-vect-stmts.cc (vect_analyze_stmt): Call new function - vectorizable_lane_reducing to analyze lane-reducing operation. - * tree-vect-loop.cc (vect_model_reduction_cost): Remove cost computation - code related to emulated_mixed_dot_prod. - (vectorizable_lane_reducing): New function. - (vectorizable_reduction): Allow multiple lane-reducing operations in - loop reduction. Move some original lane-reducing related code to - vectorizable_lane_reducing. - (vect_transform_reduction): Adjust comments with updated example. - -2024-07-17 Feng Xue - - * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): - Calculate effective vector stmts number with generic - vect_get_num_copies. - (vect_transform_reduction): Insert copies for lane-reducing so as to - fix over-estimated vector stmts number. - (vect_transform_cycle_phi): Calculate vector PHI number only based on - output vectype. - * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Remove - adjustment on vector stmts number specific to slp reduction. - -2024-07-17 Feng Xue - - * tree-vectorizer.h (vect_get_num_copies): New overload function. - * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Calculate - number of vector stmts for slp node with vect_get_num_copies. - (vect_slp_analyze_node_operations): Calculate number of vector elements - for constant/external slp node with vect_get_num_copies. - -2024-07-17 Richard Biener - - PR tree-optimization/115959 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): - Get at the REDUC_IDX child in a safer way for COND_EXPR - nodes. - -2024-07-17 Jakub Jelinek - - PR other/115958 - * varasm.cc (default_elf_asm_output_ascii): Cast t - s to unsigned - to avoid -Wsign-compare warnings. - -2024-07-17 Jakub Jelinek - - PR middle-end/115527 - * gimple-fold.cc (clear_padding_flush): Introduce endsize - variable and use it instead of wordsize when comparing it against - nonzero_last. - (clear_padding_type): Increment off by sz. - -2024-07-17 Haochen Gui - - * config/rs6000/rs6000.md (movcc, *movcc_p10, - *movcc_invert_p10, *fpmask, *xxsel, - @ieee_128bit_vsx_abs2, *ieee_128bit_vsx_nabs2, - add3, sub3, mul3, div3, sqrt2, - copysign3, copysign3_hard, copysign3_soft, - @neg2_hw, @abs2_hw, *nabs2_hw, fma4_hw, - *fms4_hw, *nfma4_hw, *nfms4_hw, - extend2_hw, truncdf2_hw, - truncsf2_hw, fix_2_hw, - fix_trunc2, - *fix_trunc2_mem, - float_di2_hw, float_si2_hw, - float2, floatuns_di2_hw, - floatuns_si2_hw, floatuns2, - floor2, ceil2, btrunc2, round2, - add3_odd, sub3_odd, mul3_odd, div3_odd, - sqrt2_odd, fma4_odd, *fms4_odd, *nfma4_odd, - *nfms4_odd, truncdf2_odd, *cmp_hw for IEEE128): - Remove guard FLOAT128_IEEE_P. - (@extenddf2_fprs, @extenddf2_vsx, - truncdf2_internal1, truncdf2_internal2, - fix_trunc_helper, neg2, *cmp_internal1, - *cmp_internal2 for IBM128): Remove guard FLOAT128_IBM_P. - -2024-07-17 Kewen Lin - - * config/rs6000/rs6000.cc (init_float128_ieee): Use trunc_optab rather - than sext_optab for converting FLOAT128_IBM_P mode to FLOAT128_IEEE_P - mode, and use sext_optab rather than trunc_optab for converting - FLOAT128_IEEE_P mode to FLOAT128_IBM_P mode. - (rs6000_expand_float128_convert): Likewise. - -2024-07-17 Kewen Lin - - PR target/112993 - * tree.cc (build_common_tree_nodes): Drop the workaround for rs6000 - KFmode precision adjustment. - -2024-07-17 Kewen Lin - - PR target/112993 - * value-range.h (range_compatible_p): Remove the workaround on - different type precision between _Float128 and long double. - -2024-07-17 Kewen Lin - - PR target/112993 - * config/rs6000/rs6000-modes.def (IFmode, KFmode, TFmode): Define - with FLOAT_MODE instead of FRACTIONAL_FLOAT_MODE, don't use special - precisions any more. - (rs6000-modes.h): Remove include. - * config/rs6000/rs6000-modes.h: Remove. - * config/rs6000/rs6000.h (rs6000-modes.h): Remove include. - * config/rs6000/t-rs6000: Remove rs6000-modes.h include. - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace - all uses of FLOAT_PRECISION_TFmode with 128. - (rs6000_c_mode_for_floating_type): Likewise. - * config/rs6000/rs6000.md (define_expand extendiftf2): Remove. - (define_expand extendifkf2): Remove. - (define_expand extendtfkf2): Remove. - (define_expand trunckftf2): Remove. - (define_expand trunctfif2): Remove. - (define_expand extendtfif2): Add new assertion. - (define_expand expandkftf2): New. - (define_expand trunciftf2): Add new assertion. - (define_expand trunctfkf2): New. - (define_expand truncifkf2): Change with gcc_unreachable. - (define_expand expandkfif2): New. - (define_insn_and_split extendkftf2): Rename to ... - (define_insn_and_split *extendkftf2): ... this. - (define_insn_and_split trunctfkf2): Rename to ... - (define_insn_and_split *extendtfkf2): ... this. - -2024-07-17 Kewen Lin - - PR target/112993 - * expr.cc (convert_mode_scalar): Allow same precision conversion - between scalar floating point modes if whose underlying format is - ibm_extended_format or ieee_quad_format, and refactor assertion - with new lambda function acceptable_same_precision_modes. Use - trunc_optab rather than sext_optab for ibm128 to ieee128 conversion. - * optabs-libfuncs.cc (gen_trunc_conv_libfunc): Use trunc_optab rather - than sext_optab for ibm128 to ieee128 conversion. - -2024-07-17 Peter Bergner - - PR target/114759 - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disallow - CPUs and ABIs that do no support the ROP protection insns. - * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Remove now - unneeded tests. - (rs6000_emit_prologue): Likewise. - Remove unneeded gcc_assert. - (rs6000_emit_epilogue): Likewise. - * config/rs6000/rs6000.md: Likewise. - -2024-07-17 Peter Bergner - - PR target/114759 - * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Use TARGET_POWER8. - (rs6000_emit_prologue): Likewise. - * config/rs6000/rs6000.md (hashchk): Likewise. - (hashst): Likewise. - Fix whitespace. - -2024-07-16 Andrew MacLeod - - PR tree-optimization/115951 - * range-op-ptr.cc (operator_equal::fold_range): Return a boolean - range with the requested type. - (operator_not_equal::fold_range): Likewise. - (operator_lt::fold_range): Likewise. - (operator_le::fold_range): Likewise. - (operator_gt::fold_range): Likewise. - (operator_ge::fold_range): Likewise. - -2024-07-16 Iain Sandoe - - PR c++/115434 - PR c++/110871 - PR c++/110872 - * gimplify.cc (struct gimplify_ctx): Add a flag to show we are - expending a handler. - (gimplify_expr): When we are expanding a handler, and the body - transforms might have re-written DECL_RESULT into a gimple var, - ensure that hander references to DECL_RESULT are also re-written - to refer to the gimple var. When we are processing an EH_ELSE - expression, then add it if either of the cleanup slots is in - use. - -2024-07-16 Richard Sandiford - - PR rtl-optimization/115929 - * rtl-ssa/insns.cc (function_info::remove_insn): Remove an - order_node from the instruction as well as from the splay tree. - -2024-07-16 Richard Sandiford - - PR rtl-optimization/115901 - * recog.cc (insn_propagation::apply_to_rvalue_1): Restrict - paradoxical mode punning to cases where "to" is constant. - -2024-07-16 Richard Sandiford - - PR rtl-optimization/115891 - * rtl-ssa/changes.cc (find_clobbered_access): New function. - (recog_level2): Use it to check for overlap between input - registers and hard-coded clobbers. Conditionally reset - recog_data.insn after changing the insn code. - -2024-07-16 Georg-Johann Lay - - * config/avr/avr.cc (avr_out_minus): Assimilate into... - (avr_out_plus_ext): ...this new function. - (avr_adjust_insn_length) [ADJUST_LEN_PLUS_EXT]: Handle case. - (avr_rtx_costs_1) [PLUS, MINUS]: Adjust RTX costs. - * config/avr/avr.md (adjust_len) : Add new attribute value. - (*addpsi3_zero_extend.hi_split): Assimilate... - (*addpsi3_zero_extend.qi_split): Assimilate... - (*addsi3_zero_extend_split): Assimilate... - (*addsi3_zero_extend.hi_split): Assimilate... - (*addpsi3_sign_extend.hi_split): Assimilate... - (*addhi3.sign_extend1_split): Assimilate... - (*add3.._split): ...into this - new insn-and-split. - (*addpsi3_zero_extend.hi): Assimilate... - (*addpsi3_zero_extend.qi): Assimilate... - (*addsi3_zero_extend): Assimilate... - (*addsi3_zero_extend.hi): Assimilate... - (*addpsi3_sign_extend.hi): Assimilate... - (*addhi3.sign_extend1): Assimilate... - (*add3..): ...into this new insn. - (*subpsi3_sign_extend.hi_split): Assimilate... - (*subhi3.sign_extend2_split): Assimilate... - (*sub3.zero_extend._split): Assimilate... - (*sub3._split): ...into this new - insn-and-split. - (*subpsi3_sign_extend.hi): Assimilate... - (*subhi3.sign_extend2): Assimilate... - (*sub3.zero_extend.): Assimilate... - (*sub3..): ...into this new insn. - (*sub3.zero_extend.): Use avr_out_plus_ext - for asm out. - * config/avr/avr-protos.h (avr_out_minus): Remove. - (avr_out_plus_ext): New proto. - -2024-07-16 Richard Biener - - PR tree-optimization/115841 - * tree-vect-loop.cc (vect_transform_cycle_phi): Correctly - place the partial vector reduction for the accumulator - re-use when the main loop cannot be skipped but the - epilogue can. - -2024-07-16 Georg-Johann Lay - - * config/avr/avr-protos.h (avr_emit_xior_with_shift): New proto. - * config/avr/avr.cc (avr_emit_xior_with_shift): New function. - * config/avr/avr.md (any_lshift): New code iterator. - (*.): New insn-and-split. - (.0): Replaces... - (*qi.byte0): ...this one. - (*.): Replaces... - (*qi.byte1-3): ...this one. - -2024-07-16 Stefan Schulze Frielinghaus - - * config/s390/3931.md (vlbr, vstbr): Remove. - * config/s390/s390.md (xdee): Add FPRX2 mapping. - * config/s390/vector.md (bhfgq): Add TF mapping. - -2024-07-16 Richard Biener - - * config/i386/x86-tune-costs.h (znver5_cost): Update unaligned - load and store cost from the aligned costs. - -2024-07-16 Stefan Schulze Frielinghaus - - PR target/114189 - * config/s390/vector.md (V_HW2): Remove. - (vcond): Remove. - (vcondu): Remove. - -2024-07-16 Stefan Schulze Frielinghaus - - * config/s390/vector.md: Enable vcond_mask for 128-bit ops. - -2024-07-16 Stefan Schulze Frielinghaus - - * config/s390/vector.md (V_HW): Enable V1TI unconditionally and - add TI. - (vec_cmpu): Add 128-bit integer - variants. - (*vec_cmpeq_nocc_emu): Emulate operation. - (*vec_cmpgt_nocc_emu): Emulate operation. - (*vec_cmpgtu_nocc_emu): Emulate operation. - -2024-07-16 Richard Biener - - PR tree-optimization/115843 - * tree-vect-loop-manip.cc - (vect_set_loop_condition_partial_vectors_avx512): Properly - bias the shift of the initial mask for alignment peeling. - -2024-07-16 Richard Biener - - PR tree-optimization/115843 - * config/i386/x86-tune-costs.h (znver4_cost): Update unaligned - load and store cost from the aligned costs. - -2024-07-16 Roger Sayle - Richard Biener - - PR tree-optimization/114661 - * match.pd ((X*C1)|(X*C2) to X*(C1+C2)): Allow optional useless - type conversions around multiplications, such as those inserted - by this transformation. - -2024-07-16 Hu, Lin1 - - PR target/107432 - * config/i386/sse.md - (PMOV_SRC_MODE_3_AVX2): Add TARGET_AVX2 for V4DI and V8SI. - (PMOV_SRC_MODE_4): Add TARGET_AVX2 for V4DI. - (trunc2): Change constraint from TARGET_AVX2 to - TARGET_SSSE3. - (trunc2): Ditto. - (truncv2div2si2): Change constraint from TARGET_AVX2 to TARGET_SSE. - -2024-07-16 Jeff Law - - * ext-dce.cc (ext_dce_process_uses): Simplify control flow and fix - liveness computation for shift/rotate counts. - -2024-07-15 Jeff Law - - * ext-dce.cc (carry_backpropagate): Make return type unsigned as well. - Cast to signed for right shift to preserve sign bit. - -2024-07-15 Christoph Müllner - - Revert: - 2024-07-15 Christoph Müllner - - * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): - Replace new + std::unique_ptr by alloca(). - (riscv_process_one_target_attr): Likewise. - (riscv_process_target_attr): Likewise. - -2024-07-15 Christoph Müllner - - * common/config/riscv/riscv-common.cc (riscv_subset_list::add): - Allow adding enabled extension if m_allow_adding_dup is set. - * config/riscv/riscv-subset.h: Add m_allow_adding_dup and setter. - * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): - Allow adding enabled extensions. - -2024-07-15 Christoph Müllner - - PR target/115554 - PR target/115562 - * common/config/riscv/riscv-common.cc (struct riscv_func_target_info): - Remove. - (struct riscv_func_target_hasher): Likewise. - (riscv_func_decl_hash): Likewise. - (riscv_func_target_hasher::hash): Likewise. - (riscv_func_target_hasher::equal): Likewise. - (riscv_current_subset_list): Likewise. - (riscv_cmdline_subset_list): Remove obsolete space. - (riscv_func_target_table_lazy_init): Remove. - (riscv_func_target_get): Likewise. - (riscv_func_target_put): Likewise. - (riscv_func_target_remove_and_destory): Likewise. - (riscv_arch_str): Generate from cmdline_subset_list. - (riscv_set_arch_by_subset_list): Don't set current_subset_list. - (riscv_parse_arch_string): Remove current_subset_list. - * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): - Get subset list via riscv_cmdline_subset_list(). - * config/riscv/riscv-subset.h (riscv_current_subset_list): - Remove prototype. - (riscv_func_target_get): Likewise. - (riscv_func_target_put): Likewise. - (riscv_func_target_remove_and_destory): Likewise. - * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): - Build base arch string from existing target options, if any. - (riscv_target_attr_parser::update_settings): Store new arch - string in target options. - (riscv_process_one_target_attr): Whitespace fix. - (riscv_process_target_attr): Drop opts argument. - (riscv_option_valid_attribute_p): Properly save, change and restore - target options. - * config/riscv/riscv.cc (get_arch_str): New function. - (riscv_declare_function_name): Get arch string for option-arch - directive from function's target options. - * config/riscv/riscv.opt: Add riscv_arch_string variable to - march option. - -2024-07-15 Christoph Müllner - - * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): - Replace new + std::unique_ptr by alloca(). - (riscv_process_one_target_attr): Likewise. - (riscv_process_target_attr): Likewise. - -2024-07-15 Alexandre Oliva - - PR target/113719 - * config/i386/i386-options.cc (ix86_option_override_internal): - Move flag_omit_frame_pointer final overrider... - (ix86_recompute_optlev_based_flags): ... here. - -2024-07-15 Georg-Johann Lay - - * config/avr/avr.md: Simplify mode usage. - (GET_MODE_SIZE (mode)): Use instead. - (GET_MODE_BITSIZE (mode) - 1): Use instead. - (GET_MODE_MASK (QImode)): Use 0xff instead. - * config/avr/avr-fixed.md: Same. - -2024-07-15 Jakub Jelinek - - * configure.ac (HAVE_GAS_BASE64): New check. - * config/elfos.h (BASE64_ASM_OP): Define if HAVE_GAS_BASE64 is - defined. - * varasm.cc (assemble_string): Bump maximum from 2000 to 16384 if - BASE64_ASM_OP is defined. - (default_elf_asm_output_limited_string): Emit opening '"' together - with STRING_ASM_OP. - (default_elf_asm_output_ascii): Use BASE64_ASM_OP if defined and - beneficial. Remove UB when last_null is NULL. - * configure: Regenerate. - * config.in: Regenerate. - -2024-07-15 liuhongt - - PR target/115872 - * tree-ssa-ccp.cc (convert_atomic_bit_not): Remove use_stmt after use_nop_stmt is removed. - (optimize_atomic_bit_test_and): Ditto. - -2024-07-15 Hongyu Wang - - * config/i386/i386.md (has_nf): New define_attr, add to all - nf related patterns. - * config/i386/i386-features.cc (apx_nf_convert): New function - to convert Non-NF insns to their NF counterparts. - (class pass_apx_nf_convert): New pass class. - (make_pass_apx_nf_convert): New. - * config/i386/i386-passes.def: Add pass_apx_nf_convert after - rtl_ifcvt. - * config/i386/i386-protos.h (make_pass_apx_nf_convert): Declare. - -2024-07-15 Monk Chiang - - * config/riscv/riscv.cc (riscv_print_operand): Add 'L' letter - to print zihintntl instructions string. - * config/riscv/riscv.md (prefetch): Add zihintntl instructions. - -2024-07-15 Feng Wang - - * config/riscv/generic-vector-ooo.md: Add def_insn_reservation for vector BFloat16. - * config/riscv/riscv.md: Add new insn name for vector BFloat16. - * config/riscv/vector-iterators.md: Add some iterators for vector BFloat16. - * config/riscv/vector.md: Add some attribute for vector BFloat16. - * config/riscv/vector-bfloat16.md: New file. Add insn pattern vector BFloat16. - -2024-07-15 Feng Wang - - * config/riscv/riscv-vector-builtins-bases.cc (class vfncvtbf16_f): - Add 'Zvfbfmin' intrinsic in bases. - (class vfwcvtbf16_f): Ditto. - (class vfwmaccbf16): Add 'Zvfbfwma' intrinsic in bases. - (BASE): Add BASE macro for 'Zvfbfmin' and 'Zvfbfwma'. - * config/riscv/riscv-vector-builtins-bases.h: Add declaration for 'Zvfbfmin' and 'Zvfbfwma'. - * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): - Add builtins def for 'Zvfbfmin' and 'Zvfbfwma'. - (vfncvtbf16_f): Ditto. - (vfncvtbf16_f_frm): Ditto. - (vfwcvtbf16_f): Ditto. - (vfwmaccbf16): Ditto. - (vfwmaccbf16_frm): Ditto. - * config/riscv/riscv-vector-builtins-shapes.cc (supports_vectype_p): - Add vector intrinsic build judgment for BFloat16. - (build_all): Ditto. - (BASE_NAME_MAX_LEN): Adjust max length. - * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_F32_OPS): - Add new operand type for BFloat16. - (vfloat32mf2_t): Ditto. - (vfloat32m1_t): Ditto. - (vfloat32m2_t): Ditto. - (vfloat32m4_t): Ditto. - (vfloat32m8_t): Ditto. - * config/riscv/riscv-vector-builtins.cc (DEF_RVV_F32_OPS): Ditto. - (validate_instance_type_required_extensions): - Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'. - * config/riscv/riscv-vector-builtins.h (enum required_ext): - Add required_ext declaration for 'Zvfbfmin' and 'Zvfbfwma'. - (reqired_ext_to_isa_name): Ditto. - (required_extensions_specified): Ditto. - (struct function_group_info): Add match case for 'Zvfbfmin' and 'Zvfbfwma'. - * config/riscv/riscv.cc (riscv_validate_vector_type): - Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'. - -2024-07-15 Hongyu Wang - - PR target/115889 - * config/i386/predicates.md (vcvtne2ps2bf_parallel): Remove. - * config/i386/sse.md (hi_cvt_bf): Remove. - (HI_CVT_BF): Likewise. - (vpermt2_sepcial_bf16_shuffle_):Likewise. - -2024-07-15 Feng Wang - - * config/riscv/genrvv-type-indexer.cc (bfloat16_type): - Generate bf16 vector_type and scalar_type in DEF_RVV_TYPE_INDEX. - (bfloat16_wide_type): Ditto. - (same_ratio_eew_bf16_type): Ditto. - (main): Ditto. - * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): - Add vector type for BFloat16. - (RVV_WHOLE_MODES): Add vector type for BFloat16. - (RVV_FRACT_MODE): Ditto. - (RVV_NF4_MODES): Ditto. - (RVV_NF8_MODES): Ditto. - (RVV_NF2_MODES): Ditto. - * config/riscv/riscv-vector-builtins-types.def (vbfloat16mf4_t): - Add builtin vector type for BFloat16. - (vbfloat16mf2_t): Add builtin vector type for BFloat16. - (vbfloat16m1_t): Ditto. - (vbfloat16m2_t): Ditto. - (vbfloat16m4_t): Ditto. - (vbfloat16m8_t): Ditto. - (vbfloat16mf4x2_t): Ditto. - (vbfloat16mf4x3_t): Ditto. - (vbfloat16mf4x4_t): Ditto. - (vbfloat16mf4x5_t): Ditto. - (vbfloat16mf4x6_t): Ditto. - (vbfloat16mf4x7_t): Ditto. - (vbfloat16mf4x8_t): Ditto. - (vbfloat16mf2x2_t): Ditto. - (vbfloat16mf2x3_t): Ditto. - (vbfloat16mf2x4_t): Ditto. - (vbfloat16mf2x5_t): Ditto. - (vbfloat16mf2x6_t): Ditto. - (vbfloat16mf2x7_t): Ditto. - (vbfloat16mf2x8_t): Ditto. - (vbfloat16m1x2_t): Ditto. - (vbfloat16m1x3_t): Ditto. - (vbfloat16m1x4_t): Ditto. - (vbfloat16m1x5_t): Ditto. - (vbfloat16m1x6_t): Ditto. - (vbfloat16m1x7_t): Ditto. - (vbfloat16m1x8_t): Ditto. - (vbfloat16m2x2_t): Ditto. - (vbfloat16m2x3_t): Ditto. - (vbfloat16m2x4_t): Ditto. - (vbfloat16m4x2_t): Ditto. - * config/riscv/riscv-vector-builtins.cc (check_required_extensions): - Add required_ext checking for BFloat16. - * config/riscv/riscv-vector-builtins.def (vbfloat16mf4_t): - Add vector_type for BFloat16 in builtins.def. - (vbfloat16mf4x2_t): Ditto. - (vbfloat16mf4x3_t): Ditto. - (vbfloat16mf4x4_t): Ditto. - (vbfloat16mf4x5_t): Ditto. - (vbfloat16mf4x6_t): Ditto. - (vbfloat16mf4x7_t): Ditto. - (vbfloat16mf4x8_t): Ditto. - (vbfloat16mf2_t): Ditto. - (vbfloat16mf2x2_t): Ditto. - (vbfloat16mf2x3_t): Ditto. - (vbfloat16mf2x4_t): Ditto. - (vbfloat16mf2x5_t): Ditto. - (vbfloat16mf2x6_t): Ditto. - (vbfloat16mf2x7_t): Ditto. - (vbfloat16mf2x8_t): Ditto. - (vbfloat16m1_t): Ditto. - (vbfloat16m1x2_t): Ditto. - (vbfloat16m1x3_t): Ditto. - (vbfloat16m1x4_t): Ditto. - (vbfloat16m1x5_t): Ditto. - (vbfloat16m1x6_t): Ditto. - (vbfloat16m1x7_t): Ditto. - (vbfloat16m1x8_t): Ditto. - (vbfloat16m2_t): Ditto. - (vbfloat16m2x2_t): Ditto. - (vbfloat16m2x3_t): Ditto. - (vbfloat16m2x4_t): Ditto. - (vbfloat16m4_t): Ditto. - (vbfloat16m4x2_t): Ditto. - (vbfloat16m8_t): Ditto. - (double_trunc_bfloat_scalar): Add scalar_type def for BFloat16. - (double_trunc_bfloat_vector): Add vector_type def for BFloat16. - * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_BF_16): - Add required defination of BFloat16 ext. - * config/riscv/riscv-vector-switch.def (ENTRY): - Add vector_type information for BFloat16. - (TUPLE_ENTRY): Add tuple vector_type information for BFloat16. - -2024-07-14 Roger Sayle - - * config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator): - Use E_?Fmode enumeration constants in switch statement. - (ix86_expand_copysign): Likewise. - (ix86_expand_xorsign): Likewise. - -2024-07-14 Alejandro Colomar - - PR c/115185 - * doc/invoke.texi: Document the new - -Wunterminated-string-initialization. - -2024-07-14 Hans-Peter Nilsson - - * config/cris/cris.cc (cris_option_override_after_change): Fix up - comment regarding disabling late_combine. - -2024-07-14 Hans-Peter Nilsson - - * config/cris/cris.cc (cris_option_override_after_change): New - function. Disable late-combine by default. - (cris_option_override): Call the new function. - -2024-07-13 Mark Harmstone - - * dwarf2codeview.cc (write_lf_modifier): Expand upon comment. - -2024-07-13 Mark Harmstone - - * dwarf2codeview.cc (write_data_symbol): Add alignment directive. - -2024-07-13 Mark Harmstone - - * dwarf2codeview.cc (enum cv_leaf_type): Add padding constants. - (write_cv_padding): Use names for padding constants. - -2024-07-13 Mark Harmstone - - * dwarf2codeview.cc (S_LDATA32, S_GDATA32, S_COMPILE3): Undefine. - (enum cv_sym_type): Define. - (struct codeview_symbol): Use enum cv_sym_type. - (write_codeview_symbols): Add default to switch. - -2024-07-13 Mark Harmstone - - * dwarf2codeview.cc (enum cv_leaf_type): Define. - (struct codeview_subtype): Use enum cv_leaf_type. - (struct codeview_custom_type): Use enum cv_leaf_type. - (write_lf_fieldlist): Add default to switch. - (write_custom_types): Add default to switch. - * dwarf2codeview.h (LF_MODIFIER, LF_POINTER): Undefine. - (LF_PROCEDURE, LF_ARGLIST, LF_FIELDLIST, LF_BITFIELD): Likewise. - (LF_INDEX, LF_ENUMERATE, LF_ARRAY, LF_CLASS): Likewise. - (LF_STRUCTURE, LF_UNION, LF_ENUM, LF_MEMBER, LF_CHAR): Likewise. - (LF_SHORT, LF_USHORT, LF_LONG, LF_ULONG, LF_QUADWORD): Likewise. - (LF_UQUADWORD): Likewise. - -2024-07-13 David Malcolm - - * common.opt (fdiagnostics-show-highlight-colors): New option. - * common.opt.urls: Regenerate. - * coretypes.h (pp_markup::element): New forward decl. - (pp_element): New typedef. - * diagnostic-color.cc (gcc_color_defaults): Add "highlight-a" - and "highlight-b". - * diagnostic-format-json.cc (diagnostic_output_format_init_json): - Disable highlight colors. - * diagnostic-format-sarif.cc (diagnostic_output_format_init_sarif): - Likewise. - * diagnostic-highlight-colors.h: New file. - * diagnostic-path.cc (struct event_range): Pass nullptr for - highlight color of m_rich_loc. - * diagnostic-show-locus.cc (colorizer::set_range): Handle ranges - with m_highlight_color. - (colorizer::STATE_NAMED_COLOR): New. - (colorizer::m_richloc): New field. - (colorizer::colorizer): Add richloc param for initializing - m_richloc. - (colorizer::set_named_color): New. - (colorizer::begin_state): Add case STATE_NAMED_COLOR. - (layout::layout): Pass richloc to m_colorizer's ctor. - (selftest::test_one_liner_labels): Pass nullptr for new param of - gcc_rich_location ctor for labels. - (selftest::test_one_liner_labels_utf8): Likewise. - * diagnostic.h (diagnostic_context::set_show_highlight_colors): - New. - * doc/invoke.texi: Add option -fdiagnostics-show-highlight-colors - and highlight-a and highlight-b color caps. - * doc/ux.texi - (Use color consistently when highlighting mismatches): New - subsection. - * gcc-rich-location.cc (gcc_rich_location::add_expr): Add - "highlight_color" param. - (gcc_rich_location::maybe_add_expr): Likewise. - * gcc-rich-location.h (gcc_rich_location::gcc_rich_location): - Split out into a pair of ctors, where if a range_label is supplied - the caller must also supply a highlight color. - (gcc_rich_location::add_expr): Add "highlight_color" param. - (gcc_rich_location::maybe_add_expr): Likewise. - * gcc.cc (driver_handle_option): Handle - OPT_fdiagnostics_show_highlight_colors. - * lto-wrapper.cc (merge_and_complain): Likewise. - (append_compiler_options): Likewise. - (append_diag_options): Likewise. - (run_gcc): Likewise. - * opts-common.cc (decode_cmdline_options_to_array): Add comment - about -fno-diagnostics-show-highlight-colors. - * opts-global.cc (init_options_once): Preserve - pp_show_highlight_colors in case the global_dc's printer is - recreated. - * opts.cc (common_handle_option): Handle - OPT_fdiagnostics_show_highlight_colors. - (gen_command_line_string): Likewise. - * pretty-print-markup.h: New file. - * pretty-print.cc: Include "pretty-print-markup.h" and - "diagnostic-highlight-colors.h". - (pretty_printer::format): Handle %e. - (pretty_printer::pretty_printer): Handle new field - m_show_highlight_colors. - (pp_string_n): New. - (pp_markup::context::begin_quote): New. - (pp_markup::context::end_quote): New. - (pp_markup::context::begin_color): New. - (pp_markup::context::end_color): New. - (highlight_colors::expected): New. - (highlight_colors::actual): New. - (highlight_colors::lhs): New. - (highlight_colors::rhs): New. - (class selftest::test_element): New. - (selftest::test_pp_format): Add tests of %e. - (selftest::test_urlification): Likewise. - * pretty-print.h (pp_markup::context): New forward decl. - (class chunk_info): Add friend class pp_markup::context. - (class pretty_printer): Add friend pp_show_highlight_colors. - (pretty_printer::m_show_highlight_colors): New field. - (pp_show_highlight_colors): New inline function. - (pp_string_n): New decl. - * substring-locations.cc: Include "diagnostic-highlight-colors.h". - (format_string_diagnostic_t::highlight_color_format_string): New. - (format_string_diagnostic_t::highlight_color_param): New. - (format_string_diagnostic_t::emit_warning_n_va): Use highlight - colors. - * substring-locations.h - (format_string_diagnostic_t::highlight_color_format_string): New. - (format_string_diagnostic_t::highlight_color_param): New. - * toplev.cc (general_init): Initialize global_dc's - show_highlight_colors. - * tree-pretty-print-markup.h: New file. - -2024-07-13 Richard Biener - - PR tree-optimization/115868 - * tree-vect-stmts.cc (vectorizable_simd_clone_call): Correctly - compute the number of mask copies required for vect_record_loop_mask. - -2024-07-12 Gerald Pfeifer - - * doc/gm2.texi (Community): Update lists.nongnu.org and - lists.gnu.org links. - -2024-07-12 Jeff Law - - PR rtl-optimization/115876 - * ext-dce.cc (carry_backpropagate): Make mask and mmask unsigned. - -2024-07-12 Marek Polacek - - * doc/invoke.texi: Remove @opindex and @itemx for -fconcepts-ts. - -2024-07-12 Daniel Bertalan - - * value-pointer-equiv.cc: Change NULL to nullptr. - -2024-07-12 Richard Sandiford - - PR rtl-optimization/115785 - * rtl-ssa/insns.h (insn_info::prev_insn_or_last_debug_insn) - (insn_info::next_nondebug_or_debug_insn): Remove typedefs. - (insn_info::m_prev_insn_or_last_debug_insn): Rename to... - (insn_info::m_prev_sametype_or_last_debug_insn): ...this. - * rtl-ssa/internals.inl (insn_info::insn_info): Update after - above renaming. - (insn_info::copy_prev_from): Likewise. - (insn_info::set_prev_sametype_insn): Likewise. - (insn_info::set_last_debug_insn): Likewise. - (insn_info::clear_insn_links): Likewise. - (insn_info::has_insn_links): Likewise. - * rtl-ssa/member-fns.inl (insn_info::prev_nondebug_insn): Likewise. - (insn_info::prev_any_insn): Fix moves from non-debug to debug insns. - -2024-07-12 Jeff Law - - * config/riscv/riscv-string.cc (emit_memcmp_scalar_load_and_compare): - Set RESULT directly rather than using a temporary. - (emit_memcmp_scalar_result_calculation): Similarly. - (riscv_expand_block_compare_scalar): Use CONST0_RTX rather than - generating new RTL. - * config/riscv/riscv.md (cmpmemsi): Pass an X mode temporary to the - expansion routines. If necessary extract low part of the word to store - in final result location. - -2024-07-12 Stefan Schulze Frielinghaus - - * config/s390/2964.md: Remove extended mnemonics for vgm. - * config/s390/3906.md: Remove extended mnemonics for vgm. - * config/s390/3931.md: Remove extended mnemonics for vgm. - * config/s390/8561.md: Remove extended mnemonics for vgm. - * config/s390/constraints.md (jKK): Remove constraint. - (jzz): Add constraint. - * config/s390/s390-protos.h (s390_contiguous_bitmask_vector_p): - Add prototype. - (s390_constant_via_vgm_p): Add prototype. - (s390_constant_via_vrepi_p): Add prototype. - * config/s390/s390.cc (s390_contiguous_bitmask_vector_p): New - function. - (s390_constant_via_vgm_vrepi_helper): New function. - (s390_constant_via_vgm_p): New function. - (s390_constant_via_vgbm_p): For the sake of symmetry rename - s390_bytemask_vector_p into s390_constant_via_vgbm_p. - (s390_bytemask_vector_p): Deal with non-integer and partial - vectors. - (s390_constant_via_vrepi_p): New function. - (s390_legitimate_constant_p): Allow partial vectors. - (legitimate_reload_constant_p): Fix indentation. - (legitimate_reload_vector_constant_p): Restrict to constraints - j00, jm1, jxx, jyy, jzz only, i.e., allow partial vectors. - (s390_expand_vec_init): Also make use of vrepi if possible. - (print_operand): Add q,p,r for vgm,vrepi,vgbm, respectively. - Remove e,s,t for constant vectors. - * config/s390/s390.md (movti): Add variants utilizing - vgbm,vgm,vrepi. - * config/s390/vector.md (mov): Adapt variants - for vgbm,vgm,vrepi for the new scheme. - (mov): Adapt variants for vgbm,vgm for the new - scheme and add vrepi variant for modes V_8,V_16,V_32,V_64. - -2024-07-12 Stefan Schulze Frielinghaus - - * config/s390/vector.md (mov): Fix output template for - movv1qi. - -2024-07-12 Roger Sayle - Hongtao Liu - - * config/i386/i386-expand.cc (ix86_broadcast_from_constant): - Use CONST_VECTOR_P instead of comparison against GET_CODE. - (ix86_gen_bcst_mem): Likewise. - (ix86_ternlog_leaf_p): Likewise. - (ix86_ternlog_operand_p): ix86_ternlog_leaf_p is always true for - vector_all_ones_operand. - (ix86_expand_ternlog_bin_op): Use CONST_VECTOR_P instead of - equality comparison against GET_CODE. Replace call to force_reg - with gen_reg_rtx and emit_move_insn (for VEC_DUPLICATE broadcast). - Check for !register_operand instead of memory_operand. - Support CONST_VECTORs by calling force_const_mem. - (ix86_expand_ternlog): Fix indentation whitespace. - Allow ix86_ternlog_leaf_p as ix86_expand_ternlog_andnot's second - operand. Use CONST_VECTOR_P instead of equality against GET_CODE. - Use gen_reg_rtx and emit_move_insn for ~a, ~b and ~c cases. - -2024-07-12 Stefan Schulze Frielinghaus - - * config/s390/s390.md (*icjump_64): Allow raw CC comparisons, - i.e., any constant integer between 0 and 15 for CC comparisons. - -2024-07-12 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_process_one_target_attr) - (aarch64_process_target_attr): Avoid alloca. - -2024-07-12 Alexandre Oliva - - PR target/115459 - * config/alpha/alpha.cc (alpha_expand_block_move): Adjust - MEMs to match inferred alignment. - -2024-07-12 YunQiang Su - - PR target/115840 - * config/riscv/riscv.cc(riscv_preferred_else_value): Mark - tmp_var as NO_WARNING. - -2024-07-12 xuli - - PR target/115862 - * config/riscv/riscv.cc (riscv_slow_unaligned_access): Disable vector misalign. - -2024-07-12 Kito Cheng - - * common/config/riscv/riscv-common.cc (riscv_implied_info): Add xsfvcp. - (riscv_ext_version_table): Add xsfvcp, xsfcease. - (riscv_ext_flag_table): Ditto. - * config/riscv/riscv.opt (riscv_sifive_subext): New. - (XSFVCP): New. - (XSFCEASE): New. - -2024-07-12 Kewen Lin - - PR target/115659 - * config/rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): Remove. - * config/rs6000/rs6000.cc (rs6000_emit_vector_cond_expr): Add static - qualifier as it is only called by rs6000_emit_swsqrt now. - * config/rs6000/vector.md (vcond): Remove. - (vcond): Remove. - (vcondv4sfv4si): Likewise. - (vcondv4siv4sf): Likewise. - (vcondv2dfv2di): Likewise. - (vcondv2div2df): Likewise. - (vcondu): Likewise. - (vconduv4sfv4si): Likewise. - (vconduv2dfv2di): Likewise. - -2024-07-12 Richard Biener - - PR tree-optimization/115867 - * tree-vect-stmts.cc (vectorizable_simd_clone_call): Properly - guess the number of mask elements for integer mode masks. - -2024-07-12 Jeff Law - - * config/m68k/m68k.md (extendsidi2): Add missing early clobbers. - -2024-07-12 Lulu Cheng - - * config/loongarch/loongarch.cc - (loongarch_split_move): Delete. - (loongarch_hard_regno_mode_ok_uncached): Likewise. - * config/loongarch/loongarch.md - (move_doubleword_fpr): Likewise. - (load_low): Likewise. - (load_high): Likewise. - (store_word): Likewise. - (movgr2frh): Likewise. - (movfrh2gr): Likewise. - -2024-07-12 Lulu Cheng - - PR target/115752 - * config/loongarch/loongarch.cc - (loongarch_hard_regno_mode_ok_uncached): Replace - UNITS_PER_FPVALUE with UNITS_PER_HWFPVALUE. - * config/loongarch/loongarch.h (UNITS_PER_FPVALUE): Delete. - -2024-07-11 Jeff Law - - * config/riscv/riscv-string.cc - (emit_strcmp_scalar_compare_byte): Set RESULT directly rather - than using a new temporary. - (emit_strcmp_scalar_result_calculation_nonul): Likewise. - (emit_strcmp_scalar_result_calculation): Likewise. - (riscv_expand_strcmp_scalar): Use CONST0_RTX rather than - generating a new node. - (expand_strcmp): Copy directly from SUB to RESULT. - * config/riscv/riscv.md (cmpstrnsi, cmpstrsi): Pass an X - mode temporary to the expansion routines. If necessary - extract low part of the word to store in final result location. - -2024-07-11 Andrew Pinski - - * value-range.h (class int_range): Mark as final. - (class prange): Likewise. - (class frange): Likewise. - -2024-07-11 Andre Vieira - - PR target/115611 - * config/arm/mve.md (mve_vec_setv2di_internal): Fix printing of input - scalar register pair when lane = 1. - -2024-07-11 Richard Sandiford - - PR rtl-optimization/115782 - * recog.cc (validate_change_1): Suppress early exit for no-op - changes that are part of a group. - -2024-07-11 Eric Botcazou - - * gimplify.cc (gimplify_scalar_mode_aggregate_compare): Add support - for ordering comparisons. - (gimplify_expr) : Call gimplify_scalar_mode_aggregate_compare - only for integral scalar modes. - -2024-07-11 Georg-Johann Lay - - * config/avr/avr-protos.h (avr_out_minus): New prototype. - * config/avr/avr.cc (avr_out_minus): New function. - * config/avr/avr.md (*sub3.zero_extend.) - (*sub3.zero_extend._split): New insns. - (*subpsi3_zero_extend.qi_split): Remove isns_and_split. - (*subpsi3_zero_extend.hi_split): Remove insn_and_split. - (*subhi3_zero_extend1_split): Remove insn_and_split. - (*subsi3_zero_extend_split): Remove insn_and_split. - (*subsi3_zero_extend.hi_split): Remove insn_and_split. - (*subpsi3_zero_extend.qi): Remove insn. - (*subpsi3_zero_extend.hi): Remove insn. - (*subhi3_zero_extend1): Remove insn. - (*subsi3_zero_extend): Remove insn. - (*subsi3_zero_extend.hi): Remove insn. - -2024-07-11 Jørgen Kvalsvik - - * doc/gcov.texi: Add --include, --exclude, --match-on-demangled - documentation. - * gcov.cc (struct fnfilter): New. - (print_usage): Add --include, --exclude, -M, - --match-on-demangled. - (process_args): Likewise. - (release_structures): Release filters. - (read_graph_file): Only add function_infos matching filters. - (output_lines): Likewise. - -2024-07-11 Jørgen Kvalsvik - - * gcov.cc (process_all_functions): Ensure fn.end_line is - included source[fn].lines. - -2024-07-11 Fei Gao - - * common/config/riscv/riscv-common.cc: - c implies zca, and conditionally zcf & zcd. - -2024-07-10 Pan Li - - * tree-vect-patterns.cc (vect_recog_sat_sub_pattern_transform): - Add new func impl to perform the truncation distribution. - (vect_recog_sat_sub_pattern): Perform above optimize before - generate .SAT_SUB call. - -2024-07-10 Uros Bizjak - - * config/i386/i386.md (ustruncdi2): Swap compare operands. - (ustruncsi2): Ditto. - (ustrunchiqi2): Ditto. - -2024-07-10 Marek Polacek - - * doc/invoke.texi: Mention that -fconcepts-ts was removed. - -2024-07-10 Edwin Lu - - * common/config/riscv/riscv-common.cc: Add imply rules for B extension - * config/riscv/arch-canonicalize: Ditto - -2024-07-10 Richard Sandiford - - * internal-fn.cc (create_call_lhs_operand, assign_call_lhs): New - functions, split out from... - (expand_fn_using_insn): ...here. - (expand_load_lanes_optab_fn): Use them. - (expand_GOMP_SIMT_ENTER_ALLOC): Likewise. - (expand_GOMP_SIMT_LAST_LANE): Likewise. - (expand_GOMP_SIMT_ORDERED_PRED): Likewise. - (expand_GOMP_SIMT_VOTE_ANY): Likewise. - (expand_GOMP_SIMT_XCHG_BFLY): Likewise. - (expand_GOMP_SIMT_XCHG_IDX): Likewise. - (expand_partial_load_optab_fn): Likewise. - (expand_vec_cond_optab_fn): Likewise. - (expand_vec_cond_mask_optab_fn): Likewise. - (expand_RAWMEMCHR): Likewise. - (expand_gather_load_optab_fn): Likewise. - (expand_while_optab_fn): Likewise. - (expand_SPACESHIP): Likewise. - -2024-07-10 Richard Sandiford - - * recog.cc (insn_propagation::apply_to_rvalue_1): Handle simple - cases of hardreg propagation in which the register is set and - used in different modes. - -2024-07-10 Richard Sandiford - - PR rtl-optimization/115785 - * rtl-ssa/functions.h (function_info::replace_nondebug_insn): Declare. - * rtl-ssa/insns.h (insn_info::order_node::set_uid): New function. - (insn_info::remove_note): Declare. - * rtl-ssa/insns.cc (insn_info::remove_note): New function. - (function_info::replace_nondebug_insn): Likewise. - * rtl-ssa/changes.cc (function_info::change_insns): Use - replace_nondebug_insn instead of remove_insn + add_insn. - -2024-07-10 Uros Bizjak - - PR middle-end/115836 - * expmed.cc (emit_store_flag_1): Move calculation of - scode just before its only usage site. - -2024-07-10 Richard Earnshaw - - * config/arm/arm-protos.h (arm_dllexport_name_p): Remove prototype. - (arm_dllimport_name_p): Likewise. - (arm_pe_unique_section): Likewise. - (arm_pe_encode_section_info): Likewise. - (arm_dllexport_p): Likewise. - (arm_dllimport_p): Likewise. - (arm_mark_dllexport): Likewise. - (arm_mark_dllimport): Likewise. - (arm_change_mode_p): Likewise. - * config/arm/arm.cc (arm_gnu_attributes): Remove attributes for ARM_PE. - (TARGET_ENCODE_SECTION_INFO): Remove setting for ARM_PE. - (is_called_in_ARM_mode): Remove ARM_PE conditional code. - (thumb1_output_interwork): Remove obsolete ARM_PE code. - (arm_encode_section_info): Remove surrounding #ifndef. - -2024-07-10 Prathamesh Kulkarni - - PR lto/115394 - * lto-streamer.h: Remove streamer_debugging definition. - * lto-streamer-out.cc (stream_write_tree_ref): Remove use of streamer_debugging. - (lto_output_tree): Likewise. - * tree-streamer-in.cc (streamer_read_tree_bitfields): Likewise. - (streamer_get_pickled_tree): Likewise. - * tree-streamer-out.cc (pack_ts_base_value_fields): Likewise. - -2024-07-10 Pan Li - - * match.pd: Add form 2 for .SAT_TRUNC. - * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): - Add new case NOP_EXPR, and try to match SAT_TRUNC. - -2024-07-10 Andrew Pinski - - PR tree-optimization/115721 - * tree-complex.cc (expand_complex_comparison): Remove - support for GIMPLE_RETURN. - -2024-07-10 Fei Gao - - PR target/113715 - * config/riscv/riscv.cc (riscv_zcmp_can_use_popretz): Removed. - (riscv_gen_multi_pop_insn): Remove generation of cm.popretz. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtin.cc (altivec_expand_vec_init_builtin): - Remove the function. - (rs6000_expand_builtin): Remove the if bif_is_int check to call - the altivec_expand_vec_init_builtin function. - * config/rs6000/rs6000-builtins.def: Remove the attribute string - comment for init. - (__builtin_vec_init_v16qi, - __builtin_vec_init_v4sf, __builtin_vec_init_v4si, - __builtin_vec_init_v8hi, __builtin_vec_init_v1ti, - __builtin_vec_init_v2df, __builtin_vec_init_v2di, - __builtin_vec_set_v16qi, __builtin_vec_set_v4sf, - __builtin_vec_set_v4si, __builtin_vec_set_v8hi): Remove - built-in definitions. - * config/rs6000/rs6000-gen-builtins.cc: Remove comment for init - attribute string. - (struct attrinfo): Remove isinit entry. - (parse_bif_attrs): Remove the if statement to check for attribute - init. - (ifdef DEBUG): Remove print for init attribute string. - (write_decls): Remove print for define bif_init_bit and - define for bif_is_init. - (write_bif_static_init): Remove if bifp->attrs.isinit statement. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcmpeqsp_p): - Remove built-in definition. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-overload.def (vec_xxpermdi): Add new - overloaded built-in instances of vector signed and unsigned - int128. - * doc/extend.texi: Add documentation for built-in instances of - vector signed and unsigned int128. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvnegdp, - __builtin_vsx_xvnegsp): Remove built-in definitions. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_vperm_16qi_uns, - __builtin_vsx_vperm_1ti, __builtin_vsx_vperm_1ti_uns, - __builtin_vsx_vperm_2df, __builtin_vsx_vperm_2di, - __builtin_vsx_vperm_2di_uns, __builtin_vsx_vperm_4sf, - __builtin_vsx_vperm_4si, __builtin_vsx_vperm_4si_uns): Remove - built-in definitions and comments. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_16qi, - __builtin_vsx_xxsel_16qi_uns, __builtin_vsx_xxsel_2df, - __builtin_vsx_xxsel_2di, __builtin_vsx_xxsel_2di_uns, - __builtin_vsx_xxsel_4sf, __builtin_vsx_xxsel_4si, - __builtin_vsx_xxsel_4si_uns, __builtin_vsx_xxsel_8hi, - __builtin_vsx_xxsel_8hi_uns): Remove built-in definitions. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_1ti, - __builtin_vsx_xxsel_1ti_uns): Remove built-in definitions. - * config/rs6000/rs6000-overload.def (vec_sel): Add new - overloaded vector signed, unsigned and bool 128-bit definitions. - * doc/extend.texi (vec_sel): Add documentation for new instances - with signed, unsigned and bool 129-bit bool arguments. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxmrghw, - __builtin_vsx_xxmrghw_4si, __builtin_vsx_xxmrglw, - __builtin_vsx_xxmrglw_4si, __builtin_vsx_xxsel_16qi): Remove - built-in definition. - * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): - remove case entries RS6000_BIF_XXMRGLW_4SI, - RS6000_BIF_XXMRGLW_4SF, RS6000_BIF_XXMRGHW_4SI, - RS6000_BIF_XXMRGHW_4SF. - * config/rs6000/vsx.md (vsx_xxmrghw_, vsx_xxmrglw_): - Remove unused define_expands. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspdp, - __builtin_vsx_xvcvdpsp, __builtin_vsx_xvcvsxwdp, - __builtin_vsx_xvcvuxddp_uns): Remove. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxds, - __builtin_vsx_xvcvspuxds): Rename to __builtin_vsignede_v4sf, - __builtin_vunsignede_v4sf respectively. - (XVCVSPSXDS, XVCVSPUXDS): Rename to VEC_VSIGNEDE_V4SF, - VEC_VUNSIGNEDE_V4SF respectively. - (__builtin_vsignedo_v4sf, __builtin_vunsignedo_v4sf): New - built-in definitions. - * config/rs6000/rs6000-overload.def (vec_signede, vec_signedo, - vec_unsignede, vec_unsignedo): Add new overloaded specifications. - * config/rs6000/vsx.md (vsignede_v4sf, vsignedo_v4sf, - vunsignede_v4sf, vunsignedo_v4sf): New define_expands. - * doc/extend.texi (vec_signedo, vec_signede, vec_unsignedo, - vec_unsignede): Add documentation for new overloaded built-ins to - convert vector float to vector {un,}signed long long. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_vunsigned_v2df, - __builtin_vsx_vunsigned_v4sf, __builtin_vsx_vunsignede_v2df, - __builtin_vsx_vunsignedo_v2df): Change the result type to unsigned. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxws, - __builtin_vsx_xvcvdpuxds_uns, __builtin_vsx_xvcvspuxws, - __builtin_vsx_xvcvdpsxws, __builtin_vsx_xvcvdpuxws): Remove - built-in definitions. - -2024-07-09 Carl Love - - * config/rs6000/rs6000-builtin.cc (RS6000_BIF_CMPLE_16QI, - RS6000_BIF_CMPLE_U16QI, RS6000_BIF_CMPLE_8HI, - RS6000_BIF_CMPLE_U8HI, RS6000_BIF_CMPLE_4SI, RS6000_BIF_CMPLE_U4SI, - RS6000_BIF_CMPLE_2DI, RS6000_BIF_CMPLE_U2DI, RS6000_BIF_CMPLE_1TI, - RS6000_BIF_CMPLE_U1TI): Remove case statements. - * config/rs6000/rs6000-builtins.def (__builtin_vsx_cmple_16qi, - __builtin_vsx_cmple_2di, __builtin_vsx_cmple_4si, - __builtin_vsx_cmple_8hi, __builtin_vsx_cmple_u16qi, - __builtin_vsx_cmple_u2di, __builtin_vsx_cmple_u4si, - __builtin_vsx_cmple_u8hi): Remove buit-in definitions. - -2024-07-09 Uros Bizjak - - * config/i386/i386.md (@cmp_1): Use SWI mode iterator. - (ustruncdi2): New expander. - (ustruncsi2): Ditto. - (ustrunchiqi2): Ditto. - -2024-07-09 David Malcolm - - * diagnostic-path.cc: Replace "const diagnostic_path *" with - "const diagnostic_path &" throughout, and "diagnostic_context *" - with "diagnostic context &". - * diagnostic.cc (diagnostic_context::show_any_path): Pass - reference in call to print_path. - * diagnostic.h (diagnostic_context::print_path): Convert param - to a reference. - -2024-07-09 Richard Earnshaw - - * config/arm/arm.cc (fp_consts_initited): Delete variable. - (value_fp0): Likewise. - (init_fp_table): Delete function. - (fp_const_from_val): Likewise. - (arm_const_double_rtx): Rework to avoid converting to REAL_VALUE_TYPE. - (arm_print_operand, case 'N'): Make use of this case an error. - -2024-07-09 Christoph Müllner - - * config/riscv/riscv-target-attr.cc (riscv_process_target_attr): - Fix comments and variable names. - -2024-07-09 Christoph Müllner - - * common/config/riscv/riscv-common.cc (riscv_set_arch_by_subset_list): - Fix overlong line. - (riscv_parse_arch_string): Replace duplicated code by a call to - riscv_set_arch_by_subset_list. - -2024-07-09 Haochen Jiang - - * common/config/i386/cpuinfo.h (get_available_features): Correct - AVX10 CPUID emulation to specify ecx value. - -2024-07-09 liuhongt - - PR target/115796 - * config/i386/emmintrin.h (__float_u): Rename to .. - (__x86_float_u): .. this. - (_mm_load_sd): Ditto. - (_mm_store_sd): Ditto. - (_mm_loadh_pd): Ditto. - (_mm_loadl_pd): Ditto. - * config/i386/xmmintrin.h (__double_u): Rename to .. - (__x86_double_u): .. this. - (_mm_load_ss): Ditto. - (_mm_store_ss): Ditto. - -2024-07-08 Jeff Law - - * Makefile.in (OBJS): Add ext-dce.o - * common.opt (ext-dce): Document new option. - * df-scan.cc (df_get_ext_block_use_set): Delete prototype and - make extern. - * df.h (df_get_exit_block_use_set): Prototype. - * ext-dce.cc: New file/pass. - * opts.cc (default_options_table): Handle ext-dce at -O2 or higher. - * passes.def: Add ext-dce before combine. - * tree-pass.h (make_pass_ext_dce): Prototype. - -2024-07-08 Uros Bizjak - - * config/i386/i386.md (x86_movcc_0_m1_neg splitter to SImode): - New splitter. - (NEG and NOT splitter to SImode): Remove optimize_insn_for_size_p - predicate from insn condition. - -2024-07-08 Patrick O'Neill - - * doc/invoke.texi: Remove trailing whitespace. - -2024-07-08 Levy Hsu - - * config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator): Add VBF modes. - (ix86_expand_copysign): Ditto. - (ix86_expand_xorsign): Ditto. - * config/i386/i386.cc (ix86_build_const_vector): Ditto. - (ix86_build_signbit_mask): Ditto. - * config/i386/sse.md: Ditto. - -2024-07-08 Jeevitha Palanisamy - - PR target/110040 - * config/rs6000/vsx.md (split pattern for V1TI to DI move): New define. - -2024-07-08 Pan Li - - * config/riscv/autovec.md (ustrunc2): Add - new pattern for double truncation. - (ustrunc2): Ditto but for quad truncation. - (ustrunc2): Ditto but for oct truncation. - * config/riscv/riscv-protos.h (expand_vec_double_ustrunc): Add - new func decl to expand double vec ustrunc. - (expand_vec_quad_ustrunc): Ditto but for quad. - (expand_vec_oct_ustrunc): Ditto but for oct. - * config/riscv/riscv-v.cc (expand_vec_double_ustrunc): Add new - func impl to expand vector double ustrunc. - (expand_vec_quad_ustrunc): Ditto but for quad. - (expand_vec_oct_ustrunc): Ditto but for oct. - -2024-07-08 Fei Gao - - * common/config/riscv/riscv-common.cc (riscv_subset_list::riscv_subset_list): - init m_subset_num to 0. - (riscv_subset_list::add): increase m_subset_num once a subset added. - (riscv_subset_list::finalize): call handle_implied_ext repeatly - until no change in m_subset_num. - * config/riscv/riscv-subset.h: add m_subset_num member. - -2024-07-08 Kewen Lin - - PR tree-optimization/115659 - * config/rs6000/rs6000-builtins.def: Update some bif expanders by - replacing orc3 with iorc3. - * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update gen - function by replacing orc3 with iorc3. - * config/rs6000/rs6000.md (orc3): Rename to ... - (iorc3): ... this. - -2024-07-08 Kewen Lin - - PR tree-optimization/115659 - * doc/md.texi: Document andcm3 and iorcm3. - * gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for - patterns x CMP y ? 0 : z and x CMP y ? z : -1. - * internal-fn.def (BIT_ANDC): New internal function. - (BIT_IORC): Likewise. - * optabs.def (andc, iorc): New optab. - -2024-07-08 Kewen Lin - - PR target/115688 - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Consider - explicit VSX when masking off ALTIVEC. - -2024-07-08 H.J. Lu - - * config/i386/i386.cc (ix86_print_operand): Always generate - branch hint for conditional branches. - * config/i386/i386.h (TARGET_BRANCH_PREDICTION_HINTS): Split - into .. - (TARGET_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and .. - (TARGET_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this. - * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS): - Split into .. - (X86_TUNE_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and .. - (X86_TUNE_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this. - -2024-07-07 Gerald Pfeifer - - * doc/bugreport.texi (Bug Criteria): Remove dubious example. - -2024-07-06 Jeff Law - - * config/riscv/bitmanip.md (bset splitters): Turn into define_and_splits. - Don't depend on combine splitting the "andn with constant" form. - (bset, binv, bclr with masked bit position): New patterns. - -2024-07-06 Jeff Law - - * config/sh/sh.md (adddi3): Only allow matching when we can - still create new pseudos. - (subdi3, *rotcl, *rotcr, *rotcr_neg_t, negdi2): Likewise. - (abs2, negabs2, negdi_cond): Likewise. - (*swapbisi2_and_shl8, *swapbhisi2, *movsi_index_disp_load): Likewise. - (*movhi_index_disp_load, *movindex_disp_store): Likewise. - (*mov_t_msb_neg, *negt_msb, clipu_one): Likewise. - -2024-07-06 Georg-Johann Lay - - * config/avr/avr.md: Also split with avr_split_tiny_move() - for non-AVR_TINY. - * config/avr/avr.cc (avr_split_tiny_move): Don't change memory - references with base regs that can do PLUS addressing. - (avr_out_lpm_no_lpmx) [POST_INC]: Don't output final ADIW when the - address register is unused after. - -2024-07-06 Eric Botcazou - - PR target/115591 - * config/riscv/riscv.cc (riscv_valid_lo_sum_p): Add missing test on - tree_fits_uhwi_p before calling tree_to_uhwi. - -2024-07-06 Roger Sayle - - PR target/115751 - * config/i386/i386-expand.cc (ix86_expand_ternlog): Avoid use of - force_reg to "reload" non-register operands, as these may contain - vec_duplicate (broadcast) operands that aren't supported by - force_reg. Use (safer) gen_reg_rtx and emit_move instead. - -2024-07-05 Iain Sandoe - - * config/i386/i386.cc (ix86_cannot_copy_insn_p): New. - (TARGET_CANNOT_COPY_INSN_P): New. - -2024-07-05 Wilco Dijkstra - - PR target/115153 - * config/arm/arm.cc (arm_legitimate_index_p): Move LDRD case before - NEON. - (thumb2_legitimate_index_p): Update comments. - (output_move_neon): Use DFmode for vldr/vstr and non-checking - adjust_address. - -2024-07-05 Robin Dapp - - * config/riscv/autovec.md: Add TU policy. - * config/riscv/riscv-protos.h (enum insn_type): Define - SCALAR_MOVE_MERGED_OP_TU. - -2024-07-05 Georg-Johann Lay - - PR target/87376 - * config/avr/avr-dimode.md: Use "nop_general_operand" instead - of "general_operand" as predicate for all input operands. - -2024-07-05 Tamar Christina - - * config/aarch64/aarch64.cc (struct expand_vec_perm_d): Add zero_op0_p - and zero_op_p1. - (aarch64_evpc_tbl): Implement register value remapping. - (aarch64_vectorize_vec_perm_const): Detect if operand is a zero dup - before it's forced to a reg. - -2024-07-05 Tamar Christina - - * config/aarch64/aarch64-simd.md - (aarch64_simd_vec_unpack_lo_): Remove. - (vec_unpack_lo_ - - * dominance.cc (dot_dominance_tree): New. - -2024-07-05 Hu, Lin1 - - * config/i386/sse.md (ssedoublemode): Remove mappings to twice - the number of same-sized elements. Add mappings to the same - number of double-sized elements. - (define_split for vec_concat_minus_plus): Change mode_attr from - ssedoublemode to ssedoublevecmode. - (define_split for vec_concat_plus_minus): Ditto. - (avx512dq_shuf_64x2_1): - Ditto. - (avx512f_shuf_64x2_1): Ditto. - (avx512vl_shuf_32x4_1): Ditto. - (avx512f_shuf_32x4_1): Ditto. - -2024-07-05 YunQiang Su - - * config/mips/mips-protos.h: New function mips_msa_shf_i8. - * config/mips/mips-msa.md(MSA_WHB_W): Not used anymore; - (msa_shf_): Use mips_msa_shf_i8. - * config/mips/mips.cc(mips_const_vector_shuffle_set_p): - Support more cases try to use alien mode instruction; - (mips_msa_shf_i8): New function to get the correct MSA SHF - instruction and IMM. - -2024-07-05 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_instance): Special case - three input permute with the same number of lanes in store - permute lowering. - -2024-07-04 Siarhei Volkau - - * config/arm/arm.cc (thumb_load_double_from_address): Emit ldmia - when address reg rewritten by load. - * config/arm/thumb1.md (peephole2 to rewrite DI/DF load): New. - (peephole2 to rewrite DI/DF store): New. - * config/arm/iterators.md (DIDF): New. - -2024-07-04 Alfie Richards - - PR target/114890 - * config/aarch64/aarch64-simd.md: Remove bigendian operand swap. - -2024-07-04 Richard Biener - - PR middle-end/115426 - * gimplify.cc (gimplify_asm_expr): Handle "rm" output - constraint gimplified to a register (operation). - -2024-07-04 Roger Sayle - - * config/i386/i386.md (bswaphisi2_lowpart peephole2): New - peephole2 variant to eliminate register shuffling. - -2024-07-04 Jeff Law - - * config/rx/rx.cc (rx_expand_prologue): Mark the copy from FP to SP - as frame related. - (rx_expand_epilogue): Mark the stack pointer adjustment as frame - related. - -2024-07-04 Hongyu Wang - - * config/i386/i386.cc (ix86_expand_prologue): Set apx_ppx_used - flag in m.fs with TARGET_APX_PPX && !crtl->calls_eh_return. - (ix86_emit_save_regs): Emit ppx is available only when - TARGET_APX_PPX && !crtl->calls_eh_return. - (ix86_expand_epilogue): Don't restore reg using mov when - apx_ppx_used flag is true. - * config/i386/i386.h (struct machine_frame_state): - Add apx_ppx_used flag. - -2024-07-04 Hu, Lin1 - - PR tree-optimization/115753 - * tree-vect-stmts.cc (supportable_indirect_convert_operation): Add - TYPE_CODE check before SSA_NAME_RANGE_INFO. - -2024-07-03 Jeff Law - - * reorg.cc (relax_delay_slots): Do not optimize a conditional - jump around an unconditional jump/return in the presence of - a text section switch. - -2024-07-03 John David Anglin - - Revert: - 2023-10-05 John David Anglin - - * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Delete. - -2024-07-03 Palmer Dabbelt - - * doc/invoke.texi: Describe -march behavior for dependent extensions on - RISC-V. - -2024-07-03 Gianluca Guida - Patrick O'Neill - - * common/config/riscv/riscv-common.cc - (riscv_subset_list::to_string): Skip zabha when not supported by - the assembler. - * config.in: Regenerate. - * config/riscv/arch-canonicalize: Make zabha imply zaamo. - * config/riscv/iterators.md (amobh): Add iterator for amo - byte/halfword. - * config/riscv/riscv.opt: Add zabha. - * config/riscv/sync.md (atomic_): Add - subword atomic op pattern. - (zabha_atomic_fetch_): Add subword - atomic_fetch op pattern. - (lrsc_atomic_fetch_): Prefer zabha over lrsc - for subword atomic ops. - (zabha_atomic_exchange): Add subword atomic exchange - pattern. - (lrsc_atomic_exchange): Prefer zabha over lrsc for subword - atomic exchange ops. - * configure: Regenerate. - * configure.ac: Add zabha assembler check. - * doc/sourcebuild.texi: Add zabha documentation. - -2024-07-03 Pan Li - - PR target/115763 - * config/riscv/vector.md (*pred_broadcast): Split into - zvfh and zvfhmin part. - (*pred_broadcast_zvfh): New define_insn for zvfh part. - (*pred_broadcast_zvfhmin): Ditto but for zvfhmin. - -2024-07-03 Pan Li - - * match.pd: Allow any otype is less than itype truncation. - -2024-07-03 Pan Li - - * tree-vect-patterns.cc (gimple_unsigned_integer_sat_trunc): Add - new decl generated by match. - (vect_recog_sat_trunc_pattern): Add new func impl to recog the - .SAT_TRUNC pattern. - -2024-07-03 Richard Biener - - * tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove - redundant dump. - -2024-07-03 Jennifer Schmitz - - * match.pd: Fold x/sqrt(x) to sqrt(x). - -2024-07-03 Alexandre Oliva - - * dwarf2out.cc (modified_type_die): Follow name's debug type. - -2024-07-03 Alexandre Oliva - - PR target/113719 - * config/i386/i386-options.cc - (ix86_override_options_after_change_1): Add opts and opts_set - parms, operate on them, after factoring out of... - (ix86_override_options_after_change): ... this. Restore calls - of ix86_default_align and ix86_recompute_optlev_based_flags. - (ix86_option_override_internal): Call the factored-out bits. - -2024-07-03 Kyrylo Tkachov - - PR target/115475 - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): - Define __ARM_FEATURE_SVE_BF16 for TARGET_SVE_BF16. - -2024-07-03 Kyrylo Tkachov - - PR target/115457 - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): - Define __ARM_FEATURE_BF16 for TARGET_BF16_FP. - -2024-07-03 Richard Biener - - * tree-vect-slp.cc (bst_traits::hash): Handle NULL elements - in SLP_TREE_SCALAR_STMTS. - (vect_print_slp_tree): Likewise. - (vect_mark_slp_stmts): Likewise. - (vect_mark_slp_stmts_relevant): Likewise. - (vect_find_last_scalar_stmt_in_slp): Likewise. - (vect_bb_slp_mark_live_stmts): Likewise. - (vect_slp_prune_covered_roots): Likewise. - (vect_bb_partition_graph_r): Likewise. - (vect_remove_slp_scalar_calls): Likewise. - (vect_slp_gather_vectorized_scalar_stmts): Likewise. - (vect_bb_slp_scalar_cost): Likewise. - (vect_contains_pattern_stmt_p): Likewise. - (vect_slp_convert_to_external): Likewise. - (vect_find_first_scalar_stmt_in_slp): Likewise. - (vect_optimize_slp_pass::remove_redundant_permutations): Likewise. - (vect_slp_analyze_node_operations_1): Likewise. - (vect_schedule_slp_node): Likewise. - * tree-vect-stmts.cc (can_vectorize_live_stmts): Likewise. - (vectorizable_shift): Likewise. - * tree-vect-data-refs.cc (vect_slp_analyze_load_dependences): - Handle NULL elements in SLP_TREE_SCALAR_STMTS. - -2024-07-03 Georg-Johann Lay - - PR target/98762 - * config/avr/avr.cc (avr_out_movqi_r_mr_reg_disp_tiny): Properly - restore the base register when it is partially clobbered. - -2024-07-03 Tamar Christina - - PR tree-optimization/114932 - * tree-ssa-loop-ivopts.cc (constant_multiple_of): Use - aff_combination_constant_multiple_p instead. - -2024-07-03 Tamar Christina - - PR tree-optimization/114932 - * tree-affine.cc (wide_int_constant_multiple_p): Support 0 and 0 being - multiples. - -2024-07-03 Richard Sandiford - - * df.h (DF_LR_DCE): New df_problem_id. - (df_lr_dce): New macro. - * df-core.cc (rest_of_handle_df_finish): Check for a null free_fun. - * df-problems.cc (df_lr_finalize): Split out fast DCE handling to... - (df_lr_dce_finalize): ...this new function. - (problem_LR_DCE): New df_problem. - (df_lr_add_problem): Register LR_DCE rather than LR itself. - * dce.cc (fast_dce): Clear df_lr_dce->solutions_dirty. - -2024-07-02 Pengxuan Zheng - - PR target/113859 - * config/aarch64/aarch64-simd.md (aarch64_addlp): Rename to... - (@aarch64_addlp): ... This. - (popcount2): New define_expand. - -2024-07-02 Andrew Pinski - - * passes.def (expand_pow): Renamed from expand_powcabs. - * timevar.def (TV_TREE_POWCABS): Remove. - (TV_TREE_POW): Add - * tree-pass.h (make_pass_expand_powcabs): Rename to ... - (make_pass_expand_pow): This. - * tree-ssa-math-opts.cc (class pass_expand_powcabs): Rename to ... - (class pass_expand_pow): This. - (pass_expand_powcabs::execute): Rename to ... - (pass_expand_pow::execute): This. - (make_pass_expand_powcabs): Rename to ... - (make_pass_expand_pow): This. - -2024-07-02 Andrew Pinski - - * tree-complex.cc (gimple_expand_builtin_cabs): Add - `cabs(a+ai)`, `cabs(x+0i)` and `cabs(0+xi)` optimizations. - -2024-07-02 Andrew Pinski - - PR tree-optimization/115710 - * tree-complex.cc (init_dont_simulate_again): Handle CABS. - (gimple_expand_builtin_cabs): New function, moved mostly - from tree-ssa-math-opts.cc. - (expand_complex_operations_1): Call gimple_expand_builtin_cabs. - * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Remove. - (build_and_insert_binop): Remove. - (pass_data_expand_powcabs): Update comment. - (pass_expand_powcabs::execute): Don't handle CABS. - -2024-07-02 Andrew Pinski - - * tree-complex.cc (expand_complex_addition): If both - operands have the same real and imag parts, only - add the addition once. - -2024-07-02 David Faust - - * common.opt.urls: Regenerate. - -2024-07-02 David Faust - Cupertino Miranda - - * btfout.cc (btf_mark_type_used): New. - * ctfc.h (btf_mark_type_used): Declare it here. - * config/bpf/bpf.cc (bpf_option_override): Enable -gprune-btf - by default if -gbtf is enabled. - * config/bpf/core-builtins.cc (extra_fn): New typedef. - (compute_field_expr): Add callback parameter, and call it if supplied. - Fix computation for MEM_REF. - (mark_component_type_as_used): New. - (bpf_mark_types_as_used): Likewise. - (bpf_expand_core_builtin): Call here. - * doc/invoke.texi (Debugging Options): Note that -gprune-btf is - enabled by default for BPF target when generating BTF. - -2024-07-02 David Faust - - * btfout.cc (btf_used_types): New hash set. - (struct btf_fixup): New. - (fixups, forwards): New vecs. - (btf_output): Calculate num_types depending on debug_prune_btf. - (btf_early_finsih): New initialization for debug_prune_btf. - (btf_add_used_type): New function. - (btf_used_type_list_cb): Likewise. - (btf_collect_pruned_types): Likewise. - (btf_add_vars): Handle special case for variables in ".maps" section - when generating BTF for BPF CO-RE target. - (btf_late_finish): Use btf_collect_pruned_types when debug_prune_btf - is in effect. Move some initialization to btf_early_finish. - (btf_finalize): Additional deallocation for debug_prune_btf. - * common.opt (gprune-btf): New flag. - * ctfc.cc (init_ctf_strtable): Make non-static. - * ctfc.h (init_ctf_strtable, ctfc_delete_strtab): Make extern. - * doc/invoke.texi (Debugging Options): Document -gprune-btf. - -2024-07-02 David Faust - - * btfout.cc (struct btf_datasec_entry): New. - (struct btf_datasec): Add `id' member. Change `entries' to use - new struct btf_datasec_entry. - (func_map): New hash_map. - (max_translated_id): New. - (btf_var_ids, btf_id_map, holes, voids, num_vars_added) - (num_types_added, num_types_created): Delete. - (btf_absolute_var_id, btf_relative_var_id, btf_absolute_func_id) - (btf_relative_func_id, btf_absolute_datasec_id, init_btf_id_map) - (get_btf_id, set_btf_id, btf_emit_id_p): Delete. - (btf_removed_type_p): Delete. - (btf_dtd_kind, btf_emit_type_p): New helpers. - (btf_fwd_to_enum_p, btf_calc_num_vbytes): Use them. - (btf_collect_datasec): Delete. - (btf_dtd_postprocess_cb, btf_dvd_emit_preprocess_cb) - (btf_dtd_emit_preprocess_cb, btf_emit_preprocess): Delete. - (btf_dmd_representable_bitfield_p): Adapt to type reference changes - and delete now-unused ctfc argument. - (btf_asm_datasec_type_ref): Delete. - (btf_asm_type_ref): Adapt to type reference changes, simplify. - (btf_asm_type): Likewise. Mark struct/union types with bitfield - members. - (btf_asm_array): Adapt to data structure changes. - (btf_asm_varent): Likewise. - (btf_asm_sou_member): Likewise. Ensure non-bitfield members are - correctly re-encoded if struct or union contains any bitfield. - (btf_asm_func_arg, btf_asm_func_type, btf_asm_datasec_entry) - (btf_asm_datasec_type): Adapt to data structure changes. - (output_btf_header): Adapt to other changes, simplify type - length calculation, add info to assembler comments. - (output_btf_vars): Adapt to other changes. - (output_btf_strs): Fix overlong lines. - (output_asm_btf_sou_fields, output_asm_btf_enum_list) - (output_asm_btf_func_args_list, output_asm_btf_vlen_bytes) - (output_asm_btf_type, output_btf_types, output_btf_func_types) - (output_btf_datasec_types): Adapt to other changes. - (btf_init_postprocess): Delete. - (btf_output): Change to only perform output. - (btf_add_const_void, btf_add_func_records): New. - (btf_early_finish): Use them here. New. - (btf_datasec_push_entry): Adapt to data structure changes. - (btf_datasec_add_func, btf_datasec_add_var): New. - (btf_add_func_datasec_entries): New. - (btf_emit_variable_p): New helper. - (btf_add_vars): Use it here. New. - (btf_type_list_cb, btf_collect_translated_types): New. - (btf_assign_func_ids, btf_late_assign_var_ids) - (btf_assign_datasec_ids): New. - (btf_finish): Remove unused argument. Call new btf_late* - functions and btf_output. - (btf_finalize): Adapt to data structure changes. - * ctfc.h (struct ctf_dtdef): Convert existing boolean flags to - BOOL_BITFIELD and reorder. - (struct ctf_dvdef): Add dvd_id member. - (btf_finish): Remove argument from prototype. - (get_btf_id): Delete prototype. - (funcs_traverse_callback, traverse_btf_func_types): Add an - explanatory comment. - * dwarf2ctf.cc (ctf_debug_finish): Remove unused argument. - * dwarf2ctf.h: Analogous change. - * dwarf2out.cc: Likewise. - -2024-07-02 David Faust - - * btfout.cc (BTF_VOID_TYPEID, BTF_INIT_TYPEID): Move defines to - include/btf.h. - (btf_dvd_emit_preprocess_cb, btf_emit_preprocess) - (btf_dmd_representable_bitfield_p, btf_asm_array, btf_asm_varent) - (btf_asm_sou_member, btf_asm_func_arg, btf_init_postprocess): - Adapt to structural changes in ctf_* structs. - * ctfc.h (struct ctf_dtdef): Add forward declaration. - (ctf_dtdef_t, ctf_dtdef_ref): Move typedefs earlier. - (struct ctf_arinfo, struct ctf_funcinfo, struct ctf_sliceinfo) - (struct ctf_itype, struct ctf_dmdef, struct ctf_func_arg) - (struct ctf_dvdef): Use pointers instead of type IDs for - references to other types and use typedefs where appropriate. - (struct ctf_dtdef): Add ref_type member. - (ctf_type_exists): Use pointer instead of type ID. - (ctf_add_reftype, ctf_add_enum, ctf_add_slice, ctf_add_float) - (ctf_add_integer, ctf_add_unknown, ctf_add_pointer) - (ctf_add_array, ctf_add_forward, ctf_add_typedef) - (ctf_add_function, ctf_add_sou, ctf_add_enumerator) - (ctf_add_variable): Likewise. Return pointer instead of ID. - (ctf_lookup_tree_type): Return pointer to type instead of ID. - * ctfc.cc: Analogous changes. - * ctfout.cc (ctf_asm_type, ctf_asm_slice, ctf_asm_varent) - (ctf_asm_sou_lmember, ctf_asm_sou_member, ctf_asm_func_arg) - (output_ctf_objt_info): Adapt to changes. - * dwarf2ctf.cc (gen_ctf_type, gen_ctf_void_type) - (gen_ctf_unknown_type, gen_ctf_base_type, gen_ctf_pointer_type) - (gen_ctf_subrange_type, gen_ctf_array_type, gen_ctf_typedef) - (gen_ctf_modifier_type, gen_ctf_sou_type, gen_ctf_function_type) - (gen_ctf_enumeration_type, gen_ctf_variable, gen_ctf_function) - (gen_ctf_type, ctf_do_die): Likewise. - * config/bpf/btfext-out.cc (struct btf_ext_core_reloc): Use - pointer instead of type ID. - (bpf_core_reloc_add, bpf_core_get_sou_member_index) - (output_btfext_core_sections): Adapt to above changes. - * config/bpf/core-builtins.cc (process_type): Likewise. - -2024-07-02 David Faust - - * btfout.cc (btf_init_postprocess): Rename to... - (btf_early_finish): ...this. - (btf_output): Rename to... - (btf_finish): ...this. - * ctfc.h: Analogous changes. - * dwarf2ctf.cc (ctf_debug_early_finish): Conditionally call - btf_early_finish, or ctf_finalize as appropriate. Emit BTF - here for LTO builds. - (ctf_debug_finish): Always call btf_finish here if generating - BTF info in non-LTO builds. - (ctf_debug_finalize, ctf_debug_init_postprocess): Delete. - * dwarf2out.cc (dwarf2out_early_finish): Remove call to - ctf_debug_init_postprocess. - -2024-07-02 Wilco Dijkstra - - PR target/115188 - * config/arm/arm.md (unaligned_loadsi): Use 'Uw' constraint and - 'mem_and_no_t1_wback_op'. - (unaligned_loadhiu): Likewise. - (unaligned_storesi): Likewise. - (unaligned_storehi): Likewise. - * config/arm/predicates.md (mem_and_no_t1_wback_op): Add new predicate. - * config/arm/sync.md (arm_atomic_load): Use 'Uw' constraint. - (arm_atomic_store): Likewise. - -2024-07-02 Matthew Malcomson - - * doc/tm.texi: Regenerated. - * target.def (function_attribute_inlinable_p, - unspec_may_trap_p): Update documentation. - -2024-07-02 Richard Biener - - PR tree-optimization/115741 - * tree-vect-stmts.cc (get_group_load_store_type): Also - handle VMAT_CONTIGUOUS_REVERSE when determining overrun. - -2024-07-02 Andrew Stubbs - - * config/gcn/gcn-opts.h (TARGET_GLOBAL_ADDRSPACE): New. - (TARGET_AVGPRS): New. - (TARGET_AVGPR_MEMOPS): New. - (TARGET_AVGPR_COMBINED): New. - (TARGET_FLAT_OFFSETS): New. - (TARGET_11BIT_GLOBAL_OFFSET): New. - (TARGET_CDNA2_MEM_COSTS): New. - (TARGET_WAVE64_COMPAT): New. - (TARGET_DPP_FULL): New. - (TARGET_DPP16): New. - (TARGET_DPP8): New. - (TARGET_AVGPR_CDNA1_NOPS): New. - (TARGET_VGPR_GRANULARITY): New. - (TARGET_ARCHITECTED_FLAT_SCRATCH): New. - (TARGET_EXPLICIT_CARRY): New. - (TARGET_MULTIPLY_IMMEDIATE): New. - (TARGET_SDWA): New. - (TARGET_WBINVL1_CACHE): New. - (TARGET_GLn_CACHE): New. - * config/gcn/gcn-valu.md (throughout): Change TARGET_GCN*, - TARGET_CDNA* and TARGET_RDNA* to use TARGET_ instead. - * config/gcn/gcn.cc (throughout): Likewise. - * config/gcn/gcn.md (throughout): Likewise. - -2024-07-02 Lingling Kong - - * config/i386/i386.md (*imulhizu): Added APX - NF support. - (*imulhizu): New define_insn. - (*mulsi3_1_zext): Ditto. - (*mul3_1): Ditto. - (*mulqihi3_1): Ditto. - (*mul3_1): Added APX NDD support. - (*mulv4): Ditto. - (*mulvhi4): Ditto. - -2024-07-02 Kewen Lin - - PR target/115739 - * config/sparc/vxworks.h (SPARC_LONG_DOUBLE_TYPE_SIZE): New define. - -2024-07-02 Lulu Cheng - - * config/loongarch/loongarch.cc (loongarch_insn_cost): - New function. - (TARGET_INSN_COST): New macro. - -2024-07-02 Kewen Lin - - PR tree-optimization/115659 - * gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for - patterns x CMP y ? -1 : z and x CMP y ? z : 0. - -2024-07-01 Richard Biener - - * tree-ssa-forwprop.cc (fwprop_set_lattice_val): Preserve - SSA info. - * tree-ssa-propagate.cc - (substitute_and_fold_dom_walker::before_dom_children): Likewise. - -2024-07-01 Roger Sayle - - * config/i386/i386.md (peephole2): Transform two consecutive - additions into a 3-component lea if !TARGET_AVOID_LEA_FOR_ADDR. - -2024-07-01 Georg-Johann Lay - - PR target/88236 - PR target/115726 - * config/avr/avr.md (mov) [avr_mem_memx_p]: Expand in such a - way that the destination does not overlap with any hard register - clobbered / used by xload8qi_A resp. xload_A. - * config/avr/avr.cc (avr_out_xload): Avoid early-clobber - situation for Z by executing just one load when the output register - overlaps with Z. - -2024-07-01 Richard Biener - - PR tree-optimization/115723 - * tree-vect-loop.cc (check_reduction_path): For a .COND_ADD - verify the else value also refers to the reduction chain op. - -2024-07-01 Richard Biener - - PR tree-optimization/115694 - * tree-ssa-forwprop.cc (pass_forwprop::execute): Check the - store is complex before rewriting it. - -2024-07-01 liuhongt - - PR target/115517 - * config/i386/mmx.md (vcondv2sf): Removed. - (vcond): Ditto. - (vcond): Ditto. - (vcondu): Ditto. - (vcondu): Ditto. - * config/i386/sse.md (vcond): Ditto. - (vcond): Ditto. - (vcond): Ditto. - (vcond): Ditto. - (vcond): Ditto. - (vcond): Ditto. - (vcond): Ditto. - (vcondv2di): Ditto. - (vcondu): Ditto. - (vcondu): Ditto. - (vcondu): Ditto. - (vconduv2di): Ditto. - (vcondeqv2di): Ditto. - -2024-07-01 liuhongt - - PR target/115517 - * config/i386/sse.md ("*ashr3_1"): New - define_insn_and_split. - (*avx512_ashr3_1): Ditto. - (*avx2_lshr3_1): Ditto. - (*avx2_lshr3_2): Ditto and add 2 combine splitter after - it. - * config/i386/mmx.md (mmxscalarsize): New mode attribute. - (*mmw_ashr3_1): New define_insn_and_split. - ("mmx_3): Add a combine spiltter after it. - (*mmx_ashrv2hi3_1): New define_insn_and_plit, also add a - combine splitter after it. - -2024-07-01 liuhongt - - PR target/115517 - * config/i386/sse.md - (*_movmsk_lt_avx512): New - define_insn_and_split. - (*_movmsk_ext_lt_avx512): - Ditto. - (*_pmovmskb_lt_avx512): Ditto. - (*_pmovmskb_zext_lt_avx512): Ditto. - (*sse2_pmovmskb_ext_lt_avx512): Ditto. - (*pmovsk_kmask_v16qi_avx512): Ditto. - (*pmovsk_mask_v32qi_avx512): Ditto. - (*pmovsk_mask_cmp__avx512): Ditto. - (*pmovsk_ptest__avx512): Ditto. - -2024-07-01 liuhongt - - PR target/115517 - * config/i386/sse.md (*minmax3_1): New pre_reload - define_insn_and_split. - (*minmax3_2): Ditto. - -2024-07-01 liuhongt - - PR target/115517 - * config/i386/sse.md - (*_cvtmask2_not): New pre_reload - splitter. - (*_cvtmask2_not): Ditto. - (*avx2_pcmp3_6): Ditto. - (*avx2_pcmp3_7): Ditto. - -2024-07-01 liuhongt - - PR target/115517 - * config/i386/sse.md - (*_blendv_gt): New - define_insn_and_split. - (*_blendv_gtint): - Ditto. - (*_blendv_not_gtint): - Ditto. - (*_pblendvb_gt): Ditto. - (*_pblendvb_gt_subreg_not): Ditto. - -2024-07-01 liuhongt - - * config/i386/i386-features.cc (ix86_rpad_gate): New function. - * config/i386/i386-options.cc (ix86_override_options_after_change): - Don't disable flate_combine. - * config/i386/i386-passes.def: Move pass_stv2 and pass_rpad - after pre_reload pas_late_combine. - * config/i386/i386-protos.h (ix86_rpad_gate): New declare. - * config/i386/i386.cc (ix86_insn_cost): New function. - (TARGET_INSN_COST): Define. - -2024-07-01 liuhongt - - PR target/115610 - * config/i386/i386.md (<*insnsi3_zext): Add alternative ?k, - enable it only for lshiftrt and under avx512bw. - * config/i386/sse.md (*klshrsi3_1_zext): New define_insn, and - add corresponding define_split after it. - -2024-06-30 John David Anglin - - PR target/115691 - * config/pa/pa.md: Remove incorrect xmpyu patterns. - -2024-06-30 Richard Biener - - PR tree-optimization/115701 - * tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy): - Only copy info from within the same BB. - -2024-06-30 Richard Biener - - PR tree-optimization/115701 - * tree-ssanames.h (maybe_duplicate_ssa_info_at_copy): Declare. - * tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy): New - function, split out from ... - * tree-ssa-copy.cc (fini_copy_prop): ... here. - * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): ... - and here. - -2024-06-30 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_1): Compare - STMT_VINFO_REDUC_IDX. - (vect_build_slp_tree_2): Prevent operand swapping for - all stmts participating in a reduction. - -2024-06-30 Feng Xue - - * tree-vect-loop.cc (vectorizable_reduction): Determine input vectype - during traversal of reduction statements. - -2024-06-30 Feng Xue - - * tree-vect-stmts.cc (vectorizable_shift): Allow shift-by-induction - for single-lane slp node. - -2024-06-29 Maciej W. Rozycki - - PR rtl-optimization/115565 - * cse.cc (record_jump_cond): Use INT_MIN rather than -1 for - `comparison_qty' if !REG_P. - -2024-06-29 Sergei Lewis - - * config/riscv/riscv.md (movmem): New expander. - -2024-06-29 Pan Li - - * match.pd: Add imm form for .SAT_ADD matching. - * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): - Add .SAT_ADD matching under PLUS_EXPR. - -2024-06-29 Jeff Law - - * config/mcore/mcore.md (zero_extendqihi2): Clobber CC in expander - and matching insn. - (zero_extendqisi2): Likewise. - -2024-06-28 Andrew MacLeod - - * gimple-range-cache.cc (ssa_lazy_cache::ssa_lazy_cache): Relocate here. - Check for provided obstack. - (ssa_lazy_cache::~ssa_lazy_cache): Relocate here. Free bitmap or obstack. - * gimple-range-cache.h (ssa_lazy_cache::ssa_lazy_cache): Move. - (ssa_lazy_cache::~ssa_lazy_cache): Move. - (ssa_lazy_cache::m_ob): New. - * gimple-range.cc (dom_ranger::dom_ranger): Iniitialize obstack. - (dom_ranger::~dom_ranger): Release obstack. - (dom_ranger::pre_bb): Create ssa_lazy_cache using obstack. - * gimple-range.h (m_bitmaps): New. - -2024-06-28 Uros Bizjak - - * config/i386/i386-expand.cc (ix86_expand_move): Remove extra - assignment to tmp variable, reuse tmp variable instead of - declaring new temporary variable and remove tmp variable shadowing. - -2024-06-28 Jørgen Kvalsvik - - * tree-profile.cc (find_conditions): Use auto_vec without - embedded storage. - -2024-06-28 Richard Biener - - PR tree-optimization/115652 - * tree-vect-slp.cc (vect_schedule_slp_node): Handle the case - where the outer loop header block is empty. - -2024-06-28 Evgeny Karpov - - PR bootstrap/115635 - PR target/115643 - PR target/115661 - * config/aarch64/cygming.h - (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to - PE_COFF_LEGITIMIZE_EXTERN_DECL. - (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise. - * config/i386/cygming.h (GOT_ALIAS_SET): Remove the diffinition to - reuse it from i386.h. - (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to - PE_COFF_LEGITIMIZE_EXTERN_DECL. - (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise. - * config/i386/i386-expand.cc (ix86_expand_move): Return - ix86_GOT_alias_set. - * config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise. - * config/i386/i386.cc (ix86_GOT_alias_set): Likewise. - * config/i386/i386.h (GOT_ALIAS_SET): Likewise. - * config/mingw/winnt-dll.cc (get_dllimport_decl): Use - GOT_ALIAS_SET. - (legitimize_pe_coff_symbol): Rename to - PE_COFF_LEGITIMIZE_EXTERN_DECL. - * config/mingw/winnt-dll.h (ix86_GOT_alias_set): Declare - ix86_GOT_alias_set. - -2024-06-28 Aldy Hernandez - - * range-op-ptr.cc (class hybrid_and_operator): Remove. - (class hybrid_or_operator): Same. - (class hybrid_min_operator): Same. - (class hybrid_max_operator): Same. - -2024-06-28 Richard Biener - - PR tree-optimization/115640 - * tree-vect-stmts.cc (vectorizable_load): With an inner - loop SLP access to not apply a gap adjustment. - -2024-06-28 Andrew Stubbs - - PR target/115640 - * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Modify RDNA checks. - -2024-06-28 Roger Sayle - - * config/i386/i386.md (*concat3_3): Change zero_extend - to any_extend in first operand to left shift by mode precision. - (*concat3_4): Likewise. - (*concat3_6): Likewise. - -2024-06-28 Roger Sayle - - * config/i386/i386-expand.cc (ix86_ternlog_idx) : - Add a "goto do_mem_operand" as this need not match memory_operand. - : Only args[2] may be volatile memory operand. - Allow MEM/VEC_DUPLICATE/CONST_VECTOR as args[0] and args[1]. - -2024-06-27 Richard Sandiford - - PR rtl-optimization/115677 - * late-combine.cc (pass_late_combine::gate): New function. - -2024-06-27 Stefan Schulze Frielinghaus - - PR target/115634 - * config/s390/s390.cc (s390_decompose_addrstyle_without_index): - Check for ADDR_REGS in s390_decompose_addrstyle_without_index. - -2024-06-27 Richard Biener - - PR tree-optimization/115669 - * tree-vect-slp.cc (vect_build_slp_tree_2): Do not reassociate - chains that participate in a reduction. - -2024-06-27 Aldy Hernandez - - * gimple-range-cache.cc (update_list::update_list): Add m_bitmaps. - (update_list::~update_list): Initialize m_bitmaps. - * gimple-range-cache.h (ssa_lazy_cache): Add m_bitmaps. - * gimple-range.cc (enable_ranger): Remove global bitmap - initialization. - (disable_ranger): Remove global bitmap release. - -2024-06-27 Hu, Lin1 - - * config/i386/sse.md - (float2 - ): Refactor the pattern. - (unspec_fix_trunc2 - ): Ditto. - (fix_trunc2 - ): Ditto. - * config/i386/subst.md (round_modev8sf_condition): Remove. - (round_saeonly_modev8sf_condition): Ditto. - -2024-06-27 Hu, Lin1 - - PR target/107432 - * config/i386/i386-expand.cc (ix86_expand_trunc_with_avx2_noavx512f): - New function for generate a series of suitable insn. - * config/i386/i386-protos.h (ix86_expand_trunc_with_avx2_noavx512f): - Define new function. - * config/i386/sse.md: Extend trunc2 for x86-64-v3. - (ssebytemode) Add V8HI. - (PMOV_DST_MODE_2_AVX2): New mode iterator. - (PMOV_SRC_MODE_3_AVX2): Ditto. - * config/i386/mmx.md - (trunc2): Ditto. - (avx512vl_trunc2): Ditto. - (truncv2si2): Ditto. - (avx512vl_truncv2si2): Ditto. - (mmxbytemode): New mode attr. - -2024-06-27 Hu, Lin1 - - PR target/107432 - * config/i386/mmx.md - (VI2_32_64): New mode iterator. - (mmxhalfmode): New mode atter. - (mmxhalfmodelower): Ditto. - (truncv2hiv2qi2): Extend mode v4hi and change name from - truncv2hiv2qi to trunc2. - -2024-06-27 Hu, Lin1 - - PR target/107432 - * tree-vect-generic.cc - (expand_vector_conversion): Support convert for int -> int, - float -> float and int <-> float. - * tree-vect-stmts.cc (vectorizable_conversion): Wrap the - indirect convert part. - (supportable_indirect_convert_operation): New function. - * tree-vectorizer.h (supportable_indirect_convert_operation): - Define the new function. - -2024-06-27 Xi Ruoyao - - * config/loongarch/loongarch.cc (loongarch_print_operand_reloc): - Dedup and sort the comment describing modifiers. - -2024-06-27 Xi Ruoyao - - * config/loongarch/loongarch.cc: - (loongarch_use_bstrins_for_ior_with_mask): Split the main logic - into ... - (loongarch_use_bstrins_for_ior_with_mask_1): ... here. - (loongarch_rtx_costs): Special case for IOR those can be - implemented with bstrins. - -2024-06-27 liuhongt - - PR target/115462 - * config/i386/i386.cc (ix86_rtx_costs): Make cost of MEM (reg + - disp) just a little bit more than MEM (reg). - -2024-06-27 Pan Li - - * internal-fn.def (SAT_TRUNC): Add new signed IFN sat_trunc as - unary_convert. - * match.pd: Add new matching pattern for unsigned int sat_trunc. - * optabs.def (OPTAB_CL): Add unsigned and signed optab. - * tree-ssa-math-opts.cc (gimple_unsigend_integer_sat_trunc): Add - new decl for the matching pattern generated func. - (match_unsigned_saturation_trunc): Add new func impl to match - the .SAT_TRUNC. - (math_opts_dom_walker::after_dom_children): Add .SAT_TRUNC match - function under BIT_IOR_EXPR case. - -2024-06-27 Pan Li - - * match.pd: Add convert description for minus and capture. - * tree-vect-patterns.cc (vect_recog_build_binary_gimple_call): Add - new logic to handle in_type is incompatibile with out_type, as - well as rename from. - (vect_recog_build_binary_gimple_stmt): Rename to. - (vect_recog_sat_add_pattern): Leverage above renamed func. - (vect_recog_sat_sub_pattern): Ditto. - -2024-06-27 Richard Biener - - PR tree-optimization/115652 - * tree-vect-slp.cc (vect_schedule_slp_node): Only insert - at the start of the block if that strictly dominates - the discovered dependent stmt. - -2024-06-27 Richard Biener - - PR tree-optimization/115493 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use - first scalar result. - -2024-06-26 Richard Biener - - PR tree-optimization/115629 - * tree-ssa-tail-merge.cc (gimple_equal_p): Handle - memory references better. - (deps_ok_for_redirect): Handle the case not both blocks - are considered a valid prevailing block. - -2024-06-26 Richard Biener - - PR tree-optimization/115652 - * tree-vect-slp.cc (vect_schedule_slp_node): Advance the - iterator based on last_stmt only for vector defs. - -2024-06-26 Jørgen Kvalsvik - - * gcov-io.h (GCOV_ARC_TRUE): New. - (GCOV_ARC_FALSE): New. - * gcov.cc (struct arc_info): Add true_value, false_value. - (read_graph_file): Read true_value, false_value. - * profile.cc (branch_prob): Write GCOV_ARC_TRUE, GCOV_ARC_FALSE. - -2024-06-26 Jørgen Kvalsvik - - * gcov.cc (print_usage): Reference masking MC/DC. - -2024-06-26 Jørgen Kvalsvik - - * doc/gcov.texi: Add MC/DC section. - -2024-06-26 Jørgen Kvalsvik - - * tree-profile.cc (find_conditions): Use auto_vec. - -2024-06-26 Andre Vieira - - * config/arm/arm.cc (arm_predict_doloop_p): Reject loops with function - calls that are not builtins. - -2024-06-26 Kyrylo Tkachov - - * config/aarch64/aarch64-cores.def (grace): New entry. - * config/aarch64/aarch64-tune.md: Regenerate. - * doc/invoke.texi (AArch64 Options): Document the above. - -2024-06-26 Evgeny Karpov - - * config/i386/i386.cc (legitimize_dllimport_symbol): Remove unused - functions. - (legitimize_pe_coff_extern_decl): Likewise. - -2024-06-26 Kewen Lin - Xionghu Luo - - PR target/106069 - PR target/115355 - * config/rs6000/altivec.md (altivec_vmrghh_direct): Rename to ... - (altivec_vmrghh_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. - (altivec_vmrghh_direct_le): New define_insn. - (altivec_vmrglh_direct): Rename to ... - (altivec_vmrglh_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. - (altivec_vmrglh_direct_le): New define_insn. - (altivec_vmrghh): Adjust by calling gen_altivec_vmrghh_direct_be - for BE and gen_altivec_vmrglh_direct_le for LE. - (altivec_vmrglh): Adjust by calling gen_altivec_vmrglh_direct_be - for BE and gen_altivec_vmrghh_direct_le for LE. - (vec_widen_umult_hi_v16qi): Adjust the call to - gen_altivec_vmrghh_direct by gen_altivec_vmrghh for BE - and by gen_altivec_vmrglh for LE. - (vec_widen_smult_hi_v16qi): Likewise. - (vec_widen_umult_lo_v16qi): Adjust the call to - gen_altivec_vmrglh_direct by gen_altivec_vmrglh for BE - and by gen_altivec_vmrghh for LE. - (vec_widen_smult_lo_v16qi): Likewise. - * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace - CODE_FOR_altivec_vmrghh_direct by - CODE_FOR_altivec_vmrghh_direct_be for BE and - CODE_FOR_altivec_vmrghh_direct_le for LE. And replace - CODE_FOR_altivec_vmrglh_direct by - CODE_FOR_altivec_vmrglh_direct_be for BE and - CODE_FOR_altivec_vmrglh_direct_le for LE. - -2024-06-26 Kewen Lin - Xionghu Luo - - PR target/106069 - PR target/115355 - * config/rs6000/altivec.md (altivec_vmrghb_direct): Rename to ... - (altivec_vmrghb_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. - (altivec_vmrghb_direct_le): New define_insn. - (altivec_vmrglb_direct): Rename to ... - (altivec_vmrglb_direct_be): ... this. Add condition BYTES_BIG_ENDIAN. - (altivec_vmrglb_direct_le): New define_insn. - (altivec_vmrghb): Adjust by calling gen_altivec_vmrghb_direct_be - for BE and gen_altivec_vmrglb_direct_le for LE. - (altivec_vmrglb): Adjust by calling gen_altivec_vmrglb_direct_be - for BE and gen_altivec_vmrghb_direct_le for LE. - * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace - CODE_FOR_altivec_vmrghb_direct by - CODE_FOR_altivec_vmrghb_direct_be for BE and - CODE_FOR_altivec_vmrghb_direct_le for LE. And replace - CODE_FOR_altivec_vmrglb_direct by - CODE_FOR_altivec_vmrglb_direct_be for BE and - CODE_FOR_altivec_vmrglb_direct_le for LE. - -2024-06-26 Richard Biener - - PR tree-optimization/115646 - * tree-call-cdce.cc (check_pow): Check for bit_sz values - as allowed by transform. - -2024-06-26 Haochen Gui - - * builtins.cc (interclass_mathfn_icode): Set optab to isnormal_optab - for isnormal builtin. - * optabs.def (isnormal_optab): New. - * doc/md.texi (isnormal): Document. - -2024-06-26 Haochen Gui - - * builtins.cc (interclass_mathfn_icode): Set optab to isfinite_optab - for isfinite builtin. - * optabs.def (isfinite_optab): New. - * doc/md.texi (isfinite): Document. - -2024-06-26 liuhongt - - PR target/114189 - * match.pd: Simplify a < 0 ? -1 : 0 to (signed) >> 31 and a < - 0 ? 1 : 0 to (unsigned) a >> 31 for vector integer type. - -2024-06-26 Mark Harmstone - - * dwarf2codeview.cc (struct codeview_custom_type): Add lf_procedure - and lf_arglist to union. - (write_lf_procedure, write_lf_arglist): New functions. - (write_custom_types): Call write_lf_procedure and write_lf_arglist. - (get_type_num_subroutine_type): New function. - (get_type_num): Handle DW_TAG_subroutine_type DIEs. - * dwarf2codeview.h (LF_PROCEDURE, LF_ARGLIST): Define. - -2024-06-26 Mark Harmstone - - * dwarf2codeview.cc (struct codeview_custom_type): Add lf_bitfield to - union. - (write_lf_bitfield): New function. - (write_custom_types): Call write_lf_bitfield. - (create_bitfield): New function. - (get_type_num_struct): Handle bitfields. - * dwarf2codeview.h (LF_BITFIELD): Define. - -2024-06-26 David Malcolm - - * Makefile.in (OBJS-libcommon): Add diagnostic-global-context.o. - * diagnostic-global-context.cc: New file, taken from material in - diagnostic.cc. - * diagnostic.cc (global_diagnostic_context): Move to - diagnostic-global-context.cc. - (global_dc): Likewise. - (verbatim): Likewise. - (emit_diagnostic): Likewise. - (emit_diagnostic_valist): Likewise. - (emit_diagnostic_valist_meta): Likewise. - (inform): Likewise. - (inform_n): Likewise. - (warning): Likewise. - (warning_at): Likewise. - (warning_meta): Likewise. - (warning_n): Likewise. - (pedwarn): Likewise. - (permerror): Likewise. - (permerror_opt): Likewise. - (error): Likewise. - (error_n): Likewise. - (error_at): Likewise. - (error_meta): Likewise. - (sorry): Likewise. - (sorry_at): Likewise. - (seen_error): Likewise. - (fatal_error): Likewise. - (internal_error): Likewise. - (internal_error_no_backtrace): Likewise. - (fnotice): Likewise. - (auto_diagnostic_group::auto_diagnostic_group): Likewise. - (auto_diagnostic_group::~auto_diagnostic_group): Likewise. - -2024-06-26 David Malcolm - - * diagnostic-path.cc (class path_label): Add m_path field, - and use it to replace all uses of global_dc. - (event_range::event_range): Add "ctxt" param and use it to - construct m_path_label. - (event_range::maybe_add_event): Add "ctxt" param and pass it to - gcc_rich_location::add_location_if_nearby. - (path_summary::path_summary): Add "ctxt" param and pass it to - event_range::maybe_add_event. - (diagnostic_context::print_path): Pass *this to path_summary ctor. - (selftest::test_empty_path): Use "dc" when constructing - path_summary rather than implicitly using global_dc. - (selftest::test_intraprocedural_path): Likewise. - (selftest::test_interprocedural_path_1): Likewise. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - (selftest::test_control_flow_1): Likewise. - (selftest::test_control_flow_2): Likewise. - (selftest::test_control_flow_3): Likewise. - (selftest::assert_cfg_edge_path_streq): Likewise. - (selftest::test_control_flow_5): Likewise. - (selftest::test_control_flow_6): Likewise. - (selftest::diagnostic_path_cc_tests): Eliminate use of global_dc. - * diagnostic-show-locus.cc - (gcc_rich_location::add_location_if_nearby): Add "ctxt" param and - use it instead of implicitly using global_dc. - (selftest::test_add_location_if_nearby): Use - test_diagnostic_context rather than implicitly using global_dc. - * diagnostic.cc (pedantic_warning_kind): Delete macro. - (permissive_error_kind): Delete macro. - (permissive_error_option): Delete macro. - (diagnostic_context::diagnostic_enabled): Remove use of - permissive_error_option. - (diagnostic_context::report_diagnostic): Remove use of - pedantic_warning_kind. - (diagnostic_impl): Convert to... - (diagnostic_context::diagnostic_impl): ...this. - (diagnostic_n_impl): Convert to... - (diagnostic_context::diagnostic_n_impl): ...this. - (emit_diagnostic): Explicitly use global_dc for method call. - (emit_diagnostic_valist): Likewise. - (emit_diagnostic_valist_meta): Likewise. - (inform): Likewise. - (inform_n): Likewise. - (warning): Likewise. - (warning_at): Likewise. - (warning_meta): Likewise. - (warning_n): Likewise. - (pedwarn): Likewise. - (permerror): Likewise. - (permerror_opt): Likewise. - (error): Likewise. - (error_n): Likewise. - (error_at): Likewise. - (error_meta): Likewise. - (sorry): Likewise. - (sorry_at): Likewise. - (fatal_error): Likewise. - (internal_error): Likewise. - (internal_error_no_backtrace): Likewise. - * diagnostic.h (diagnostic_context::diagnostic_impl): New decl. - (diagnostic_context::diagnostic_n_impl): New decl. - * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): - Add "ctxt" param. - -2024-06-26 David Malcolm - - PR testsuite/109360 - * doc/install.texi (Python3 modules): Update SARIF validation - requirement to use check-jsonschema rather than jsonschema. - -2024-06-25 Mark Harmstone - - * dwarf2codeview.cc (struct codeview_custom_type): Add lf_array to - union. - (write_lf_array): New function. - (write_custom_types): Call write_lf_array. - (get_type_num_array_type): New function. - (get_type_num): Handle DW_TAG_array_type DIEs. - * dwarf2codeview.h (LF_ARRAY): Define. - -2024-06-25 Mark Harmstone - - * dwarf2codeview.cc (write_lf_union): New function. - (write_custom_types): Call write_lf_union. - (add_struct_forward_def): Handle DW_TAG_union_type DIEs. - (get_type_num_struct): Handle unions. - (get_type_num): Handle DW_TAG_union_type DIEs. - * dwarf2codeview.h (LF_UNION): Define. - -2024-06-25 Sergei Lewis - - * config/riscv/riscv-protos.h (riscv_vector::expand_vec_cmpmem): New - function declaration. - * config/riscv/riscv-string.cc (riscv_vector::expand_vec_cmpmem): New - function. - * config/riscv/riscv.md (cmpmemsi): Try riscv_vector::expand_vec_cmpmem - for constant lengths. - -2024-06-25 Andrew MacLeod - - * doc/invoke.texi (vrp-block-limit): Document. - * params.opt (param=vrp-block-limit): New. - * tree-vrp.cc (fvrp_folder::execute): Invoke fast_vrp if block - count exceeds limit. - -2024-06-25 Surya Kumari Jangala - - PR rtl-optimization/111673 - * ira-color.cc (assign_hard_reg): Scale save/restore costs of - callee save registers with block frequency. - -2024-06-25 Jeff Law - - * config/fr30/constraints.md (Q): Remove unused constraint. - * config/fr30/predicates.md (call_operand): Remove unused predicate. - * config/fr30/fr30.md (call, vall_value): Turn into expanders and - force the call address into a register. - (*call, *call_value): Adjust to only allow indirect calls. Adjust - output template accordingly. - -2024-06-25 Richard Sandiford - - * late-combine.cc (insn_combination::substitute_nondebug_use): - Reject second and subsequent uses if targetm.cannot_copy_insn_p - disallows copying. - -2024-06-25 Richard Biener - - * gimple-range-gori.cc (gori_compute::may_recompute_p): - Call is_export_p with NULL bb. - -2024-06-25 Xi Ruoyao - - * doc/rtl.texi (jump_table_data): Fix typos. - -2024-06-25 Richard Sandiford - - * dbgcnt.def (late_combine): New debug counter. - * late-combine.cc (insn_combination::run): Use it. - -2024-06-25 Eric Botcazou - - PR target/115608 - * config/sparc/linux64.h (CC1_SPEC): Pass -m32 for -mv8plus. - -2024-06-25 Thomas Schwinge - - PR target/106594 - PR target/115622 - PR target/115633 - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move - default-disable of late-combine passes from here... - (rs6000_override_options_after_change): ... to here. - -2024-06-25 Richard Sandiford - - * expmed.cc (store_bit_field_using_insv): Revert earlier change - to use force_subreg instead of simplify_gen_subreg. - -2024-06-25 YunQiang Su - - * config/mips/mips.cc(mips_expand_vec_cond_expr): Add extra - argument to info that opernads[3] is cmp_res already. - * config/mips/mips-protos.h(mips_expand_vec_cond_expr): Ditto. - * config/mips/mips-msa.md(vcond_mask): Define new expand. - (vcondu): Use mips_expand_vec_cond_expr with 4th argument. - (vcond): Ditto. - -2024-06-25 YunQiang Su - - * config/mips/mips.md(conditional_trap_reg): Output $0 instead - of 0 if !ISA_HAS_COND_TRAPI. - -2024-06-25 Evgeny Karpov - - * config.gcc: Add winnt-dll.o, which contains the DLL - import/export implementation. - * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): - Add dllimport implementation. - (aarch64_expand_call): Likewise. - (aarch64_legitimize_address): Likewise. - * config/aarch64/cygming.h (SYMBOL_FLAG_DLLIMPORT): Modify MinGW - environment to support DLL import/export. - (SYMBOL_FLAG_DLLEXPORT): Likewise. - (SYMBOL_REF_DLLIMPORT_P): Likewise. - (SYMBOL_FLAG_STUBVAR): Likewise. - (SYMBOL_REF_STUBVAR_P): Likewise. - (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise. - (TARGET_ASM_FILE_END): Likewise. - (SUB_TARGET_RECORD_STUB): Likewise. - (GOT_ALIAS_SET): Likewise. - (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Likewise. - (HAVE_64BIT_POINTERS): Likewise. - -2024-06-25 Evgeny Karpov - - * config/i386/cygming.h - (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Declare whether an - external declaration should be legitimized. - (HAVE_64BIT_POINTERS): Define whether the target supports 64-bit - pointers. - * config/mingw/mingw32.h (defined): Use the correct - DllMainCRTStartup entry function. - * config/mingw/winnt-dll.cc (defined): Exclude ix86-related code. - -2024-06-25 Evgeny Karpov - - * config/aarch64/aarch64.cc: Extend the aarch64 attributes list. - * config/aarch64/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define the - selectany attribute. - -2024-06-25 Evgeny Karpov - - * config/i386/cygming.h (mingw_pe_record_stub): Rename functions - in mingw folder which will be reused for aarch64. - (TARGET_ASM_FILE_END): Update to new target-independent name. - (SUBTARGET_ATTRIBUTE_TABLE): Likewise. - (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise. - (SUB_TARGET_RECORD_STUB): Likewise. - * config/i386/i386-protos.h (ix86_handle_selectany_attribute): - Likewise. - (mingw_handle_selectany_attribute): Likewise. - (i386_pe_valid_dllimport_attribute_p): Likewise. - (mingw_pe_valid_dllimport_attribute_p): Likewise. - (i386_pe_file_end): Likewise. - (mingw_pe_file_end): Likewise. - (i386_pe_record_stub): Likewise. - (mingw_pe_record_stub): Likewise. - * config/mingw/winnt.cc (ix86_handle_selectany_attribute): - Likewise. - (mingw_handle_selectany_attribute): Likewise. - (i386_pe_valid_dllimport_attribute_p): Likewise. - (mingw_pe_valid_dllimport_attribute_p): Likewise. - (i386_pe_record_stub): Likewise. - (mingw_pe_record_stub): Likewise. - (i386_pe_file_end): Likewise. - (mingw_pe_file_end): Likewise. - * config/mingw/winnt.h (mingw_handle_selectany_attribute): Declate - functionality that will be reused by multiple targets. - (mingw_pe_file_end): Likewise. - (mingw_pe_record_stub): Likewise. - (mingw_pe_valid_dllimport_attribute_p): Likewise. - -2024-06-25 Evgeny Karpov - - * config.gcc: Add winnt-dll.o, which contains the DLL - import/export implementation. - * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): Remove the - old implementation. Rename the required function to MinGW. - Use MinGW implementation for COFF and nothing otherwise. - (GOT_ALIAS_SET): Likewise. - * config/i386/i386-expand.cc (ix86_expand_move): Likewise. - * config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise. - (legitimize_pe_coff_symbol): Likewise. - * config/i386/i386-protos.h (i386_pe_record_stub): Likewise. - * config/i386/i386.cc (is_imported_p): Likewise. - (legitimate_pic_address_disp_p): Likewise. - (ix86_GOT_alias_set): Likewise. - (legitimize_pic_address): Likewise. - (legitimize_tls_address): Likewise. - (struct dllimport_hasher): Likewise. - (GTY): Likewise. - (get_dllimport_decl): Likewise. - (legitimize_pe_coff_extern_decl): Likewise. - (legitimize_dllimport_symbol): Likewise. - (legitimize_pe_coff_symbol): Likewise. - (ix86_legitimize_address): Likewise. - * config/i386/i386.h (GOT_ALIAS_SET): Likewise. - * config/mingw/winnt.cc (i386_pe_record_stub): Likewise. - (mingw_pe_record_stub): Likewise. - * config/mingw/winnt.h (mingw_pe_record_stub): Likewise. - * config/mingw/t-cygming: Add the winnt-dll.o compilation. - * config/mingw/winnt-dll.cc: New file. - * config/mingw/winnt-dll.h: New file. - -2024-06-25 Evgeny Karpov - - * config.gcc: Move mingw_* declations to mingw. - * config/aarch64/aarch64-protos.h - (mingw_pe_maybe_record_exported_symbol): Likewise. - (mingw_pe_section_type_flags): Likewise. - (mingw_pe_unique_section): Likewise. - (mingw_pe_encode_section_info): Likewise. - * config/aarch64/cygming.h - (mingw_pe_asm_named_section): Likewise. - (mingw_pe_declare_function_type): Likewise. - * config/i386/i386-protos.h - (mingw_pe_unique_section): Likewise. - (mingw_pe_declare_function_type): Likewise. - (mingw_pe_maybe_record_exported_symbol): Likewise. - (mingw_pe_encode_section_info): Likewise. - (mingw_pe_section_type_flags): Likewise. - (mingw_pe_asm_named_section): Likewise. - * config/mingw/winnt.h: New file. - -2024-06-25 Mark Harmstone - - * dwarf2codeview.cc (struct codeview_type): Add is_fwd_ref member. - (struct codeview_subtype): Add lf_member to union. - (struct codeview_custom_type): Add lf_structure to union. - (struct codeview_deferred_type): New structure. - (deferred_types, last_deferred_type): New variables. - (get_type_num): Add new args to prototype. - (write_lf_fieldlist): Handle LF_MEMBER subtypes. - (write_lf_structure): New function. - (write_custom_types): Call write_lf_structure. - (get_type_num_pointer_type): Add in_struct argument. - (get_type_num_const_type): Likewise. - (get_type_num_volatile_type): Likewise. - (add_enum_forward_def): Fix get_type_num call. - (get_type_num_enumeration_type): Add in-struct argument. - (add_deferred_type, flush_deferred_types): New functions. - (add_struct_forward_def, get_type_num_struct): Likewise. - (get_type_num): Handle self-referential structs. - (add_variable): Fix get_type_num call. - (codeview_debug_early_finish): Call flush_deferred_types. - * dwarf2codeview.h (LF_CLASS, LF_STRUCTURE, LF_MEMBER): Define. - -2024-06-25 Kewen Lin - - * coretypes.h (enum tree_index): Forward declaration. - * defaults.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * doc/rtl.texi: Update document by replacing {FLOAT,DOUBLE}_TYPE_SIZE - with C type {float,double}. - * doc/tm.texi.in: Document new hook mode_for_floating_type, remove - document entries for {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE and - update document for WIDEST_HARDWARE_FP_SIZE. - * doc/tm.texi: Regenerate. - * emit-rtl.cc (init_emit_once): Replace DOUBLE_TYPE_SIZE by - calling targetm.c.mode_for_floating_type with TI_DOUBLE_TYPE. - * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use TYPE_PRECISION of - long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. - * system.h (FLOAT_TYPE_SIZE): Poison. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * target.def (mode_for_floating_type): New hook. - * targhooks.cc (default_mode_for_floating_type): New function. - (default_scalar_mode_supported_p): Update macros - {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling - targetm.c.mode_for_floating_type with - TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE. - * targhooks.h (default_mode_for_floating_type): New declaration. - * tree-core.h (enum tree_index): Specify underlying type unsigned - to sync with forward declaration in coretypes.h. - (NUM_FLOATN_TYPES): Explicitly convert to int. - (NUM_FLOATNX_TYPES): Likewise. - (NUM_FLOATN_NX_TYPES): Likewise. - * tree.cc (build_common_tree_nodes): Update macros - {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling - targetm.c.mode_for_floating_type with - TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE and set type mode accordingly. - * config/arc/arc.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/bpf/bpf.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/epiphany/epiphany.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/fr30/fr30.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/frv/frv.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/ft32/ft32.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/gcn/gcn.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/iq2000/iq2000.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/lm32/lm32.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/m32c/m32c.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/m32r/m32r.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/microblaze/microblaze.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/mmix/mmix.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/moxie/moxie.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/msp430/msp430.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/nds32/nds32.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/nios2/nios2.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/nvptx/nvptx.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/or1k/or1k.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/pru/pru.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/stormy16/stormy16.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/visium/visium.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/xtensa/xtensa.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/rs6000/rs6000.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - (rs6000_c_mode_for_floating_type): New function. - * config/rs6000/rs6000.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/aarch64/aarch64.cc (aarch64_c_mode_for_floating_type): - New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/aarch64/aarch64.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/alpha/alpha.cc (alpha_c_mode_for_floating_type): New - function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/alpha/alpha.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/avr/avr.cc (avr_c_mode_for_floating_type): New - function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/avr/avr.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/i386/i386.cc (ix86_c_mode_for_floating_type): New - function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/i386/i386.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/ia64/ia64.cc (ia64_c_mode_for_floating_type): New - function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/ia64/ia64.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/riscv/riscv.cc (riscv_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/riscv/riscv.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/rl78/rl78.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - (rl78_c_mode_for_floating_type): New function. - * config/rl78/rl78.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/rx/rx.cc (rx_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/rx/rx.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/s390/s390.cc (s390_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/s390/s390.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/sh/sh.cc (sh_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Remove. - * config/h8300/h8300.cc (h8300_c_mode_for_floating_type): New - function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/h8300/h8300.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Remove. - (LONG_DOUBLE_TYPE_SIZE): Remove. - (DOUBLE_TYPE_MODE): New macro. - * config/h8300/linux.h (DOUBLE_TYPE_SIZE): Remove. - (DOUBLE_TYPE_MODE): New macro. - * config/loongarch/loongarch.cc (loongarch_c_mode_for_floating_type): - New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/loongarch/loongarch.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Remove. - (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (LA_LONG_DOUBLE_TYPE_SIZE): ... this. - (UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE with - LA_LONG_DOUBLE_TYPE_SIZE. - (MAX_FIXED_MODE_SIZE): Likewise. - (STRUCTURE_SIZE_BOUNDARY): Likewise. - (BIGGEST_ALIGNMENT): Likewise. - * config/m68k/m68k.cc (m68k_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Remove. - (LONG_DOUBLE_TYPE_MODE): New macro. - * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Remove. - (LONG_DOUBLE_TYPE_MODE): New macro. - * config/mips/mips.cc (mips_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - * config/mips/mips.h (UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE - with MIPS_LONG_DOUBLE_TYPE_SIZE. - (MAX_FIXED_MODE_SIZE): Likewise. - (STRUCTURE_SIZE_BOUNDARY): Likewise. - (BIGGEST_ALIGNMENT): Likewise. - (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Remove. - (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (MIPS_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/mips/n32-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (MIPS_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/pa/pa.cc (pa_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - (pa_scalar_mode_supported_p): Rename FLOAT_TYPE_SIZE to - PA_FLOAT_TYPE_SIZE, rename DOUBLE_TYPE_SIZE to PA_DOUBLE_TYPE_SIZE - and rename LONG_DOUBLE_TYPE_SIZE to PA_LONG_DOUBLE_TYPE_SIZE. - * config/pa/pa.h (PA_FLOAT_TYPE_SIZE): New macro. - (PA_DOUBLE_TYPE_SIZE): Likewise. - (PA_LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/pa/pa-64.h (FLOAT_TYPE_SIZE): Rename to ... - (PA_FLOAT_TYPE_SIZE): ... this. - (DOUBLE_TYPE_SIZE): Rename to ... - (PA_DOUBLE_TYPE_SIZE): ... this. - (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (PA_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/pa/pa-hpux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (PA_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/sparc.cc (sparc_c_mode_for_floating_type): New function. - (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro. - (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Likewise. - (LONG_DOUBLE_TYPE_SIZE): Likewise. - (sparc_type_code): Replace FLOAT_TYPE_SIZE with TYPE_PRECISION of - float_type_node. - * config/sparc/sparc.h (FLOAT_TYPE_SIZE): Remove. - (DOUBLE_TYPE_SIZE): Remove. - * config/sparc/freebsd.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/linux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/linux64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/openbsd64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/sol2.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/sp-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/sparc/sp64-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ... - (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this. - * config/bfin/bfin.h (FLOAT_TYPE_SIZE): Rename to ... - (BFIN_FLOAT_TYPE_SIZE): ... this. - (DOUBLE_TYPE_SIZE): Rename to ... - (BFIN_DOUBLE_TYPE_SIZE): ... this. - (LONG_DOUBLE_TYPE_SIZE): Remove. - (UNITS_PER_FLOAT): Replace FLOAT_TYPE_SIZE with BFIN_FLOAT_TYPE_SIZE. - (UNITS_PER_DOUBLE): Replace DOUBLE_TYPE_SIZE with - BFIN_DOUBLE_TYPE_SIZE. - -2024-06-25 Kewen Lin - - * config/vms/vms.cc (vms_patch_builtins): Use TYPE_PRECISION of - long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. - -2024-06-25 Andrew MacLeod - - * tree-vrp.cc (execute_fast_vrp): Do not use transitive relations. - * value-query.cc (range_query::create_relation_oracle): Add - parameter to enable transitive relations. - * value-query.h (range_query::create_relation_oracle): Likewise. - * value-relation.h (dom_oracle::dom_oracle): Likewise. - * value-relation.cc (dom_oracle::dom_oracle): Likewise. - (dom_oracle::register_transitives): Check transitive flag. - -2024-06-24 Sergei Lewis - - * config/riscv/riscv-protos.h (riscv_vector::expand_vec_setmem): New - function declaration. - * config/riscv/riscv-string.cc (riscv_vector::expand_vec_setmem): New - function: this generates an inline vectorised memory set, if and only if - we know the entire operation can be performed in a single vector store. - * config/riscv/riscv.md (setmem): Try riscv_vector::expand_vec_setmem - for constant lengths. Do not require operand 2 to be a constant. - -2024-06-24 Patrick O'Neill - - * doc/sourcebuild.texi (dg-remove-option): Add documentation. - (dg-add-option): Add documentation for riscv_{a,zaamo,zalrsc,ztso} - -2024-06-24 Roger Sayle - Richard Biener - - PR tree-optimization/113673 - * gimple-ssa-store-merging.cc (find_bswap_or_nop_load): Make static. - (find_bswap_or_nop_1): Avoid transformations (load merging) when - stmt_can_throw_internal indicates that a statement can trap. - -2024-06-24 Richard Biener - - PR tree-optimization/115602 - * tree-vect-slp.cc (vect_cse_slp_nodes): Delay populating the - bst-map to avoid cycles. - -2024-06-24 Richard Biener - - PR tree-optimization/115528 - * tree-vect-data-refs.cc (vect_compute_data_ref_alignment): - Make sure to look at both the inner and outer loop step - behavior. - -2024-06-24 Pali Rohár - - * config/i386/mingw-w64.h (CPP_SPEC): Add missing -mcrtdll= - cases: msvcr40*, msvcrtd*. - * config/mingw/mingw32.h (CPP_SPEC): Add missing -mcrtdll= - cases: msvcr40*, msvcrtd*. - * doc/invoke.texi: Add missing -mcrtdll= cases: msvcr40*, - msvcrtd*, msvcr71*. Express wildcards with *. Document _UCRT. - -2024-06-24 Richard Sandiford - - * common.opt.urls: Regenerate. - -2024-06-24 Richard Sandiford - - PR rtl-optimization/106594 - PR rtl-optimization/114515 - PR rtl-optimization/114575 - PR rtl-optimization/114996 - PR rtl-optimization/115104 - * Makefile.in (OBJS): Add late-combine.o. - * common.opt (flate-combine-instructions): New option. - * doc/invoke.texi: Document it. - * opts.cc (default_options_table): Enable it by default at -O2 - and above. - * tree-pass.h (make_pass_late_combine): Declare. - * late-combine.cc: New file. - * passes.def: Add two instances of late_combine. - * doc/passes.texi: Document the new passes. - * config/i386/i386-options.cc (ix86_override_options_after_change): - Disable late-combine by default. - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise. - * config/xtensa/xtensa.cc (xtensa_option_override): Likewise. - -2024-06-24 Richard Sandiford - - * rtl-ssa.h: Include predicates.h. - * rtl-ssa/predicates.h: New file. - * rtl-ssa/access-utils.h (prev_call_clobbers_ignoring): Rename to... - (prev_call_clobbers): ...this and treat the ignore parameter as an - object with the same interface as ignore_nothing. - (next_call_clobbers_ignoring): Rename to... - (next_call_clobbers): ...this and treat the ignore parameter as an - object with the same interface as ignore_nothing. - (first_nondebug_insn_use_ignoring): Rename to... - (first_nondebug_insn_use): ...this and treat the ignore parameter as - an object with the same interface as ignore_nothing. - (last_nondebug_insn_use_ignoring): Rename to... - (last_nondebug_insn_use): ...this and treat the ignore parameter as - an object with the same interface as ignore_nothing. - (last_access_ignoring): Rename to... - (last_access): ...this and treat the ignore parameter as an object - with the same interface as ignore_nothing. Conditionally skip - definitions. - (prev_access_ignoring): Rename to... - (prev_access): ...this and treat the ignore parameter as an object - with the same interface as ignore_nothing. - (first_def_ignoring): Replace with... - (first_access): ...this new function. - (next_access_ignoring): Rename to... - (next_access): ...this and treat the ignore parameter as an object - with the same interface as ignore_nothing. Conditionally skip - definitions. - * rtl-ssa/change-utils.h (insn_is_changing): Delete. - (restrict_movement_ignoring): Rename to... - (restrict_movement): ...this and treat the ignore parameter as an - object with the same interface as ignore_nothing. - (recog_ignoring): Rename to... - (recog): ...this and treat the ignore parameter as an object with - the same interface as ignore_nothing. - * rtl-ssa/changes.h (insn_is_changing_closure): Delete. - * rtl-ssa/functions.h (function_info::add_regno_clobber): Treat - the ignore parameter as an object with the same interface as - ignore_nothing. - * rtl-ssa/insn-utils.h (insn_is): Delete. - * rtl-ssa/insns.h (insn_is_closure): Delete. - * rtl-ssa/member-fns.inl - (insn_is_changing_closure::insn_is_changing_closure): Delete. - (insn_is_changing_closure::operator()): Likewise. - (function_info::add_regno_clobber): Treat the ignore parameter - as an object with the same interface as ignore_nothing. - (ignore_changing_insns::ignore_changing_insns): New function. - (ignore_changing_insns::should_ignore_insn): Likewise. - * rtl-ssa/movement.h (restrict_movement_for_dead_range): Treat - the ignore parameter as an object with the same interface as - ignore_nothing. - (restrict_movement_for_defs_ignoring): Rename to... - (restrict_movement_for_defs): ...this and treat the ignore parameter - as an object with the same interface as ignore_nothing. - (restrict_movement_for_uses_ignoring): Rename to... - (restrict_movement_for_uses): ...this and treat the ignore parameter - as an object with the same interface as ignore_nothing. Conditionally - skip definitions. - * doc/rtl.texi: Update for above name changes. Use - ignore_changing_insns instead of insn_is_changing. - * config/aarch64/aarch64-cc-fusion.cc (cc_fusion::parallelize_insns): - Likewise. - * pair-fusion.cc (no_ignore): Delete. - (latest_hazard_before, first_hazard_after): Update for above name - changes. Use ignore_nothing instead of no_ignore. - (pair_fusion_bb_info::fuse_pair): Update for above name changes. - Use ignore_changing_insns instead of insn_is_changing. - (pair_fusion::try_promote_writeback): Likewise. - -2024-06-24 Richard Biener - - PR tree-optimization/115599 - * tree-ssa-reassoc.cc (compare_repeat_factors): Use explicit - compares to avoid truncations. - -2024-06-24 Haochen Gui - - PR target/113325 - * config/rs6000/vsx.md (vsx_stxvd2x4_le_const_): New. - -2024-06-24 Haochen Gui - - * fwprop.cc (try_fwprop_subst_pattern): Invoke change_is_worthwhile - to judge if a replacement is worthwhile. Remove single_set check - and add is_debug_insn check. - * recog.cc (swap_change): Invalidate recog_data when the cached INSN - is swapped out. - * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Check if the - insn cost of new rtl is unknown and fail the replacement. - -2024-06-24 Mark Harmstone - - * dwarf2codeview.cc (MAX_FIELDLIST_SIZE): Define. - (struct codeview_integer): New structure. - (struct codeview_subtype): Likewise - (struct codeview_custom_type): Add lf_fieldlist and lf_enum to union. - (write_cv_integer, cv_integer_len): New functions. - (write_lf_fieldlist, write_lf_enum): Likewise. - (write_custom_types): Call write_lf_fieldlist and write_lf_enum. - (add_enum_forward_def): New function. - (get_type_num_enumeration_type): Likewise. - (get_type_num): Handle DW_TAG_enumeration_type DIEs. - * dwarf2codeview.h (LF_FIELDLIST, LF_INDEX, LF_ENUMERATE): Define. - (LF_ENUM, LF_CHAR, LF_SHORT, LF_USHORT, LF_LONG): Likewise. - (LF_ULONG, LF_QUADWORD, LF_UQUADWORD): Likewise. - (CV_ACCESS_PRIVATE, CV_ACCESS_PROTECTED): Likewise. - (CV_ACCESS_PUBLIC, CV_PROP_FWDREF): Likewise. - -2024-06-24 Mark Harmstone - - * dwarf2codeview.cc - (struct codeview_custom_type): Add lf_modifier to union. - (write_cv_padding, write_lf_modifier): New functions. - (write_custom_types): Call write_lf_modifier. - (get_type_num_const_type): New function. - (get_type_num_volatile_type): Likewise. - (get_type_num): Handle DW_TAG_const_type and DW_TAG_volatile_type DIEs. - * dwarf2codeview.h (MOD_const, MOD_volatile): Define. - (LF_MODIFIER): Likewise. - -2024-06-24 Mark Harmstone - - * dwarf2codeview.cc (FIRST_TYPE): Define. - (struct codeview_custom_type): New structure. - (custom_types, last_custom_type): New variables. - (get_type_num): Prototype. - (write_lf_pointer, write_custom_types): New functions. - (codeview_debug_finish): Call write_custom_types. - (add_custom_type, get_type_num_pointer_type): New functions. - (get_type_num): Handle DW_TAG_pointer_type DIEs. - * dwarf2codeview.h (T_VOID): Define. - (CV_POINTER_32, CV_POINTER_64): Likewise. - (T_32PVOID, T_64PVOID): Likewise. - (CV_PTR_NEAR32, CV_PTR64, LF_POINTER): Likewise. - -2024-06-24 Mark Harmstone - - * dwarf2codeview.cc (get_type_num): Handle typedefs. - -2024-06-24 Mark Harmstone - - * dwarf2codeview.cc (struct codeview_type): New structure. - (struct die_hasher): Likewise. - (types_htab): New variable. - (codeview_debug_finish): Free types_htab if allocated. - (get_type_num_base_type, get_type_num): New function. - (add_variable): Call get_type_num. - * dwarf2codeview.h (T_CHAR, T_SHORT, T_LONG, T_QUAD): Define. - (T_UCHAR, T_USHORT, T_ULONG, T_UQUAD, T_BOOL08): Likewise. - (T_REAL32, T_REAL64, T_REAL80, T_REAL128, T_RCHAR): Likewise. - (T_WCHAR, T_INT4, T_UINT4, T_CHAR16, T_CHAR32, T_CHAR8): Likewise. - -2024-06-23 Mark Harmstone - - * dwarf2codeview.cc (S_LDATA32, S_GDATA32): Define. - (struct codeview_symbol): New structure. - (sym, last_sym): New variables. - (write_data_symbol): New function. - (write_codeview_symbols): Call write_data_symbol. - (add_variable, codeview_debug_early_finish): New functions. - * dwarf2codeview.h (codeview_debug_early_finish): Prototype. - * dwarf2out.cc - (dwarf2out_early_finish): Call codeview_debug_early_finish. - -2024-06-23 Artemiy Volkov - - * config/riscv/riscv.cc (riscv_expand_conditional_move): Add a - CONST0_RTX check. - -2024-06-23 Jeff Law - - PR target/114139 - * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Verify object - is a CONST_INT before looking at INTVAL. - -2024-06-23 Richard Biener - - PR tree-optimization/115597 - * tree-vect-slp.cc (vect_cse_slp_nodes): Allow to CSE - VEC_PERM nodes. - -2024-06-23 Richard Biener - - PR tree-optimization/115579 - * tree-ssa-loop-im.cc (execute_sm): Return the auxiliary data - created. - (hoist_memory_references): Record the flag var that's eventually - created and re-use it when all stores are in the same BB. - -2024-06-23 Collin Funk - - PR target/115409 - * config/i386/avx512fp16intrin.h (_mm512_conj_pch): Make the - constant unsigned before shifting. - * config/i386/avx512fp16vlintrin.h (_mm256_conj_pch): Likewise. - (_mm_conj_pch): Likewise. - -2024-06-23 demin.han - - * config/riscv/predicates.md (comparison_except_eqge_operator): Only - exclude ge. - (comparison_except_ge_operator): Ditto. - * config/riscv/riscv-string.cc (expand_rawmemchr): Use cmp pattern. - (expand_strcmp): Ditto. - * config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond. - * config/riscv/vector.md (@pred_eqne_scalar): Remove eqne - patterns. - (*pred_eqne_scalar_merge_tie_mask): Ditto. - (*pred_eqne_scalar): Ditto. - (*pred_eqne_scalar_narrow): Ditto. - (*pred_eqne_extended_scalar_merge_tie_mask): Ditto. - (*pred_eqne_extended_scalar): Ditto. - (*pred_eqne_extended_scalar_narrow): Ditto. - -2024-06-21 David Malcolm - - * diagnostic-format-json.cc - (json_output_format::on_end_diagnostic): Use - get_diagnostic_kind_text rather than embedding a duplicate copy of - the table. - * diagnostic-format-sarif.cc - (make_rule_id_for_diagnostic_kind): Likewise. - * diagnostic.cc (get_diagnostic_kind_text): New. - * diagnostic.h (get_diagnostic_kind_text): New decl. - -2024-06-21 David Malcolm - - * diagnostic-path.cc (diagnostic_event::meaning::dump_to_pp): Move - here from diagnostic.cc. - (diagnostic_event::meaning::maybe_get_verb_str): Likewise. - (diagnostic_event::meaning::maybe_get_noun_str): Likewise. - (diagnostic_event::meaning::maybe_get_property_str): Likewise. - (diagnostic_path::get_first_event_in_a_function): Likewise. - (diagnostic_path::interprocedural_p): Likewise. - (debug): Likewise for diagnostic_path * overload. - * diagnostic.cc (diagnostic_event::meaning::dump_to_pp): Move from - here to diagnostic-path.cc. - (diagnostic_event::meaning::maybe_get_verb_str): Likewise. - (diagnostic_event::meaning::maybe_get_noun_str): Likewise. - (diagnostic_event::meaning::maybe_get_property_str): Likewise. - (diagnostic_path::get_first_event_in_a_function): Likewise. - (diagnostic_path::interprocedural_p): Likewise. - (debug): Likewise for diagnostic_path * overload. - -2024-06-21 Jeff Law - - * config/stormy16/stormy16.md (swpn_zext): New pattern. - -2024-06-21 Richard Sandiford - - * config/stormy16/predicates.md (xs_hi_nonmemory_operand): Handle - symbol_ref and label_ref. - -2024-06-21 Richard Sandiford - - * config/iq2000/iq2000.cc (iq2000_print_operand): Make %p handle 1<<31. - * config/iq2000/iq2000.md: Remove "I" constraints on - power_of_2_operands. - -2024-06-21 Richard Sandiford - - * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Don't - cost no-op moves. - * rtl-ssa/insns.cc (insn_info::calculate_cost): Likewise. - -2024-06-21 Andrew MacLeod - - * gimple-range.cc (gimple_ranger::register_inferred_ranges): Do not - dump global range info after set_range_info. - (gimple_ranger::register_transitive_inferred_ranges): Likewise. - (dom_ranger::range_of_stmt): Likewise. - * tree-ssanames.cc (set_range_info): If global range info - changes, maybe print new range to dump_file. - * tree-vrp.cc (remove_unreachable::handle_early): Do not - dump global range info after set_range_info. - (remove_unreachable::remove): Likewise. - (remove_unreachable::remove_and_update_globals): Likewise. - (pass_assumptions::execute): Likewise. - -2024-06-21 Andrew MacLeod - - * gimple-range.cc (dom_ranger::dom_ranger): Create a block - vector. - (dom_ranger::~dom_ranger): Dispose of the block vector. - (dom_ranger::edge_range): Delete. - (dom_ranger::range_on_edge): Combine range in src BB with any - range gori_nme_on_edge returns. - (dom_ranger::range_in_bb): Combine global range with any active - contextual range for an ssa-name. - (dom_ranger::range_of_stmt): Fix non-ssa LHS case, use - fur_depend for folding so relations can be registered. - (dom_ranger::maybe_push_edge): Delete. - (dom_ranger::pre_bb): Create incoming contextual range vector. - (dom_ranger::post_bb): Free contextual range vector. - * gimple-range.h (dom_ranger::edge_range): Delete. - (dom_ranger::m_e0): Delete. - (dom_ranger::m_e1): Delete. - (dom_ranger::m_bb): New. - (dom_ranger::m_pop_list): Delete. - * tree-vrp.cc (execute_fast_vrp): Enable relation oracle. - -2024-06-21 Andrew MacLeod - - * tree-vrp.cc (remove_unreachable::remove): Export global range - if builtin_unreachable dominates all uses. - (remove_unreachable::remove_and_update_globals): Do not reset SCEV. - (execute_ranger_vrp): Reset SCEV here instead. - (fvrp_folder::fvrp_folder): Take final pass flag - and create a remove_unreachable object when specified. - (fvrp_folder::pre_fold_stmt): Register GIMPLE_CONDs with - the remove_unreachcable object. - (fvrp_folder::m_unreachable): New. - (execute_fast_vrp): Process remove_unreachable object. - (pass_vrp::execute): Add final_p flag to execute_fast_vrp. - -2024-06-21 David Malcolm - - PR testsuite/109360 - * doc/install.texi: Mention optional usage of "jsonschema" tool. - -2024-06-21 David Malcolm - - PR testsuite/109360 - * diagnostic-format-sarif.cc - (sarif_builder::make_location_object): Pass any column override - from rich_loc to maybe_make_physical_location_object. - (sarif_builder::maybe_make_physical_location_object): Add - "column_override" param and pass it to maybe_make_region_object. - (sarif_builder::maybe_make_region_object): Add "column_override" - param and use it when the location has 0 for a column. Don't - add "startLine", "startColumn", "endLine", or "endColumn" if - the values aren't positive. - (sarif_builder::maybe_make_region_object_for_context): Don't - add "startLine" or "endLine" if the values aren't positive. - -2024-06-21 Richard Sandiford - - * config/sh/sh.md (*minus_plus_one): Add constraints. - -2024-06-21 Andrew Pinski - - PR tree-optimization/68855 - * tree-complex.cc (init_dont_simulate_again): Handle PAREN_EXPR - like NEGATE_EXPR. - (complex_propagate::visit_stmt): Likewise. - (expand_complex_move): Don't handle PAREN_EXPR. - (expand_complex_paren): New function. - (expand_complex_operations_1): Handle PAREN_EXPR like - NEGATE_EXPR. And call expand_complex_paren for PAREN_EXPR. - -2024-06-21 Richard Biener - - * doc/passes.texi: Remove references to no longer existing - passes. - -2024-06-21 YunQiang Su - - * configure.ac: Set gcc_cv_as_mips_explicit_relocs if - gcc_cv_as_mips_explicit_relocs_pcrel. - * configure: Regenerate. - -2024-06-21 YunQiang Su - - * config/mips/mips.cc(mips_rtx_costs): Set condmove cost. - * config/mips/mips.md(mov_on_, - mov_on__mips16e2, - mov_on__ne - mov_on__ne_mips16e2): Define name by - remove starting *, so that we can use CODE_FOR_. - -2024-06-21 Kewen Lin - Xionghu Luo - - PR target/106069 - PR target/115355 - * config/rs6000/altivec.md (altivec_vmrghw_direct_): Rename - to ... - (altivec_vmrghw_direct__be): ... this. Add the condition - BYTES_BIG_ENDIAN. - (altivec_vmrghw_direct__le): New define_insn. - (altivec_vmrglw_direct_): Rename to ... - (altivec_vmrglw_direct__be): ... this. Add the condition - BYTES_BIG_ENDIAN. - (altivec_vmrglw_direct__le): New define_insn. - (altivec_vmrghw): Adjust by calling gen_altivec_vmrghw_direct_v4si_be - for BE and gen_altivec_vmrglw_direct_v4si_le for LE. - (altivec_vmrglw): Adjust by calling gen_altivec_vmrglw_direct_v4si_be - for BE and gen_altivec_vmrghw_direct_v4si_le for LE. - (vec_widen_umult_hi_v8hi): Adjust the call to - gen_altivec_vmrghw_direct_v4si by gen_altivec_vmrghw for BE - and by gen_altivec_vmrglw for LE. - (vec_widen_smult_hi_v8hi): Likewise. - (vec_widen_umult_lo_v8hi): Adjust the call to - gen_altivec_vmrglw_direct_v4si by gen_altivec_vmrglw for BE - and by gen_altivec_vmrghw for LE - (vec_widen_smult_lo_v8hi): Likewise. - * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace - CODE_FOR_altivec_vmrghw_direct_v4si by - CODE_FOR_altivec_vmrghw_direct_v4si_be for BE and - CODE_FOR_altivec_vmrghw_direct_v4si_le for LE. And replace - CODE_FOR_altivec_vmrglw_direct_v4si by - CODE_FOR_altivec_vmrglw_direct_v4si_be for BE and - CODE_FOR_altivec_vmrglw_direct_v4si_le for LE. - * config/rs6000/vsx.md (vsx_xxmrghw_): Adjust by calling - gen_altivec_vmrghw_direct_v4si_be for BE and - gen_altivec_vmrglw_direct_v4si_le for LE. - (vsx_xxmrglw_): Adjust by calling - gen_altivec_vmrglw_direct_v4si_be for BE and - gen_altivec_vmrghw_direct_v4si_le for LE. - -2024-06-20 Roger Sayle - - * config/i386/i386-expand.cc (ix86_ternlog_idx): Allow any SUBREG - that matches register_operand. Use rtx_equal_p to compare REG - or SUBREG "leaf" operands. - -2024-06-20 Jeff Law - - * config/riscv/bitmanip.md (): New unified - pattern for bset/binv using a code iterator. - (i): Likewise. - (_mask): Likewise. Support XOR via any_or. - (isidi): Likewise. - * config/riscv/iterators.md (bit_optab): New iterator. - -2024-06-20 Hongyu Wang - - * config/i386/i386-options.cc (ix86_option_override_internal): - Use TARGET_*_P (opts->x_ix86_isa_flags*) instead of TARGET_* - for UINTR, LAM and APX_F. - -2024-06-20 Richard Biener - - PR tree-optimization/114413 - * tree-vect-slp.cc (release_scalar_stmts_to_slp_tree_map): - New function, split out from ... - (vect_analyze_slp): ... here. Call it. - (vect_cse_slp_nodes): New function. - (vect_optimize_slp): Call it. - -2024-06-20 Feng Xue - - * tree-vect-loop.cc (vect_transform_reduction): Change assertion to - cover all lane-reducing ops. - -2024-06-20 Feng Xue - - * tree-vect-loop.cc (vect_transform_reduction): Replace vec_oprnds0/1/2 - with one new array variable vec_oprnds[3]. - -2024-06-20 Feng Xue - - * tree-vect-loop.cc (vectorizable_reduction): Remove v_reduc_type, and - replace it to another local variable reduction_type. - -2024-06-20 Feng Xue - - * tree-vect-loop.cc (vectorizable_reduction): Remove the duplicated - check. - -2024-06-20 Feng Xue - - * tree-vectorizer.h (lane_reducing_stmt_p): New function. - * tree-vect-slp.cc (vect_analyze_slp): Use new function - lane_reducing_stmt_p to check statement. - -2024-06-19 YunQiang Su - - Revert: - 2024-06-19 Collin Funk - - * configure.ac: Add missing quotation of variable - gcc_cv_as_mips_explicit_relocs. - * configure: Regenerate. - -2024-06-19 demin.han - - * config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond - * config/riscv/vector.md (@pred_eqne_scalar): Remove patterns - (*pred_eqne_scalar_merge_tie_mask): Ditto - (*pred_eqne_scalar): Ditto - (*pred_eqne_scalar_narrow): Ditto - -2024-06-19 Patrick O'Neill - - * common/config/riscv/riscv-common.cc: Add 'a' extension to - riscv_combine_info. - -2024-06-19 Jakub Jelinek - - PR tree-optimization/115544 - * gimple-lower-bitint.cc (gimple_lower_bitint): Disable optimizing - loads used by COMPLEX_EXPR operands. - -2024-06-19 mayshao - - * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize shijidadao. - * common/config/i386/i386-common.cc: Add shijidadao. - * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): - Add ZHAOXIN_FAM7H_SHIJIDADAO. - * config.gcc: Add shijidadao. - * config/i386/driver-i386.cc (host_detect_local_cpu): - Let -march=native recognize shijidadao processors. - * config/i386/i386-c.cc (ix86_target_macros_internal): Add shijidadao. - * config/i386/i386-options.cc (m_ZHAOXIN): Add m_SHIJIDADAO. - (m_SHIJIDADAO): New definition. - * config/i386/i386.h (enum processor_type): Add PROCESSOR_SHIJIDADAO. - * config/i386/x86-tune-costs.h (struct processor_costs): - Add shijidadao_cost. - * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add shijidadao. - (ix86_adjust_cost): Ditto. - * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Add m_SHIJIDADAO. - (X86_TUNE_USE_GATHER_4PARTS): Ditto. - (X86_TUNE_USE_GATHER_8PARTS): Ditto. - (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. - * doc/extend.texi: Add details about shijidadao. - * doc/invoke.texi: Ditto. - -2024-06-19 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.cc (print_operand): - When outputting MEMW before the instruction, check if the previous - instruction is already that. - -2024-06-19 Andre Vieira - Stam Markianos-Wright - - * config/arm/arm-protos.h (arm_target_bb_ok_for_lob): Change - declaration to pass basic_block. - (arm_attempt_dlstp_transform): New declaration. - * config/arm/arm.cc (TARGET_LOOP_UNROLL_ADJUST): Define targethook. - (TARGET_PREDICT_DOLOOP_P): Likewise. - (arm_target_bb_ok_for_lob): Adapt condition. - (arm_mve_get_vctp_lanes): New function. - (arm_dl_usage_type): New internal enum. - (arm_get_required_vpr_reg): New function. - (arm_get_required_vpr_reg_param): New function. - (arm_get_required_vpr_reg_ret_val): New function. - (arm_mve_get_loop_vctp): New function. - (arm_mve_insn_predicated_by): New function. - (arm_mve_across_lane_insn_p): New function. - (arm_mve_load_store_insn_p): New function. - (arm_mve_impl_pred_on_outputs_p): New function. - (arm_mve_impl_pred_on_inputs_p): New function. - (arm_last_vect_def_insn): New function. - (arm_mve_impl_predicated_p): New function. - (arm_mve_check_reg_origin_is_num_elems): New function. - (arm_mve_dlstp_check_inc_counter): New function. - (arm_mve_dlstp_check_dec_counter): New function. - (arm_mve_loop_valid_for_dlstp): New function. - (arm_predict_doloop_p): New function. - (arm_loop_unroll_adjust): New function. - (arm_emit_mve_unpredicated_insn_to_seq): New function. - (arm_attempt_dlstp_transform): New function. - * config/arm/arm.opt (mdlstp): New option. - * config/arm/iterators.md (dlstp_elemsize, letp_num_lanes, - letp_num_lanes_neg, letp_num_lanes_minus_1): New attributes. - (DLSTP, LETP): New iterators. - * config/arm/mve.md (predicated_doloop_end_internal, - dlstp_insn): New insn patterns. - * config/arm/thumb2.md (doloop_end): Adapt to support tail-predicated - loops. - (doloop_begin): Likewise. - * config/arm/types.md (mve_misc): New mve type to represent - predicated_loop_end insn sequences. - * config/arm/unspecs.md: - (DLSTP8, DLSTP16, DLSTP32, DSLTP64, - LETP8, LETP16, LETP32, LETP64): New unspecs for DLSTP and LETP. - -2024-06-19 Andre Vieira - Stam Markianos-Wright - - * df-core.cc (df_bb_regno_only_def_find): New helper function. - * df.h (df_bb_regno_only_def_find): Declare new function. - * loop-doloop.cc (doloop_condition_get): Add support for detecting - predicated vectorized hardware loops. - (doloop_modify): Add support for GTU condition checks. - (doloop_optimize): Update costing computation to support alterations to - desc->niter_expr by the backend. - -2024-06-19 Collin Funk - - * configure.ac: Add missing quotation of variable - gcc_cv_as_mips_explicit_relocs. - * configure: Regenerate. - -2024-06-19 Takayuki 'January June' Suwa - - * config/xtensa/xtensa-protos.h (xtensa_constantsynth): - Change the second argument from HOST_WIDE_INT to rtx. - * config/xtensa/xtensa.cc (#include): - Add "context.h" and "pass_manager.h". - (machine_function): Add a new hash_map field "litpool_usage". - (xtensa_constantsynth): Make "src" (the second operand) accept - RTX literal instead of its value, and treat both bare and pooled - SI/SFmode literals equally by bit-exact canonicalization into - CONST_INT RTX internally. And then, make avoid synthesis if - such multiple identical canonicalized literals are found in same - function when optimizing for size. Finally, for literals where - synthesis is not possible or has been avoided, re-emit "move" - RTXes with canonicalized ones to increase the chances of sharing - literal pool entries. - * config/xtensa/xtensa.md (split patterns for constant synthesis): - Change to simply invoke xtensa_constantsynth() as mentioned above, - and add new patterns for when TARGET_AUTO_LITPOOLS is enabled. - -2024-06-18 Edwin Lu - Robin Dapp - - * config/riscv/riscv-v.cc: Move assert out of conditional block - -2024-06-18 Edwin Lu - Robin Dapp - - * config/riscv/autovec-opt.md: Fix mode mismatch - -2024-06-18 Andrew Pinski - - * config/aarch64/aarch64-cores.def: Add comment - saying thunderxt81/t83 are aliases of octeontx81/83. - -2024-06-18 Andrew Pinski - - * config/aarch64/aarch64-cores.def (thunderxt88p1): Make an alias of thunderxt88 and - move below thunderxt88. - * config/aarch64/aarch64-tune.md: Regenerate. - -2024-06-18 David Malcolm - - * Makefile.in (OBJS): Move selftest-diagnostic-path.o, - selftest-logical-location.o, and tree-diagnostic-path.o to... - (OBJS-libcommon): ...here, renaming tree-diagnostic-path.o to - diagnostic-path.o. - * tree-diagnostic-path.cc: Rename to... - * diagnostic-path.cc: ...this. Drop include of "tree.h". - (tree_diagnostic_path_cc_tests): Rename to... - (diagnostic_path_cc_tests): ...this. - * selftest-run-tests.cc (selftest::run_tests): Update for above - renaming. - * selftest.h (tree_diagnostic_path_cc_tests): Rename decl to... - (diagnostic_path_cc_tests): ...this. - -2024-06-18 David Malcolm - - * diagnostic-format-json.cc (diagnostic_output_format_init_json): - Replace clearing of diagnostic_context::m_print_path callback with - setting the path format to DPF_NONE. - * diagnostic-format-sarif.cc - (diagnostic_output_format_init_sarif): Likewise. - * diagnostic.cc (diagnostic_context::show_any_path): Replace call - to diagnostic_context::m_print_path callback with a direct call to - diagnostic_context::print_path. - * diagnostic.h (diagnostic_context::print_path): New decl. - (diagnostic_context::m_print_path): Delete callback. - * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer): - Convert to... - (diagnostic_context::print_path): ...this. - * tree-diagnostic.cc (tree_diagnostics_defaults): Delete - initialization of m_print_path. - * tree-diagnostic.h (default_tree_diagnostic_path_printer): Delete - decl. - -2024-06-18 David Malcolm - - * diagnostic-macro-unwinding.cc: New file, with material taken - from tree-diagnostic.cc. - * diagnostic-macro-unwinding.h: New file, with material taken - from tree-diagnostic.h. - * tree-diagnostic-path.cc: Repalce include of "tree-diagnostic.h" - with "diagnostic-macro-unwinding.h". - * tree-diagnostic.cc (struct loc_map_pair): Move to - diagnostic-macro-unwinding.cc. - (maybe_unwind_expanded_macro_loc): Likewise. - (virt_loc_aware_diagnostic_finalizer): Likewise. - * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Move - decl to diagnostic-macro-unwinding.h. - (maybe_unwind_expanded_macro_loc): Likewise. - -2024-06-18 David Malcolm - - * Makefile.in (OBJS): Add diagnostic-macro-unwinding.o. - -2024-06-18 David Malcolm - - * diagnostic-format-json.cc: Include "diagnostic-path.h" and - "logical-location.h". - (make_json_for_path): Move tree-diagnostic-path.cc's - default_tree_make_json_for_path here, renaming it and making it - static. - (json_output_format::on_end_diagnostic): Replace call of - m_context's m_make_json_for_path callback with a direct call to - make_json_for_path. - * diagnostic.h (diagnostic_context::m_make_json_for_path): Drop - field. - * tree-diagnostic-path.cc: Drop include of "json.h". - (default_tree_make_json_for_path): Rename to make_json_for_path - and move to diagnostic-format-json.cc. - * tree-diagnostic.cc (tree_diagnostics_defaults): Drop - initialization of m_make_json_for_path. - * tree-diagnostic.h (default_tree_make_json_for): Delete decl. - -2024-06-18 David Malcolm - - * Makefile.in (OBJS): Add selftest-diagnostic-path.o and - selftest-logical-location.o. - * logical-location.h: Include "label-text.h". - (class logical_location): Update leading comment. - * selftest-diagnostic-path.cc: New file, adapted from - simple-diagnostic-path.cc and from material in - tree-diagnostic-path.cc. - * selftest-diagnostic-path.h: New file, adapted from - simple-diagnostic-path.h and from material in - tree-diagnostic-path.cc. - * selftest-logical-location.cc: New file. - * selftest-logical-location.h: New file. - * tree-diagnostic-path.cc: Remove includes of "tree-pretty-print.h", - "langhooks.h", and "simple-diagnostic-path.h". Add include of - "selftest-diagnostic-path.h". - (class test_diagnostic_path): Delete, in favor of new - implementation in selftest-diagnostic-path.{h,cc}, which is - directly derived from diagnostic_path, rather than from - simple_diagnostic_path. - (selftest::test_intraprocedural_path): Eliminate tree usage, - via change to test_diagnostic_path, using strings rather than - function_decls for identifying functions in the test. - (selftest::test_interprocedural_path_1): Likewise. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - (selftest::test_control_flow_1): Likewise. - (selftest::test_control_flow_2): Likewise. - (selftest::test_control_flow_3): Likewise. - (selftest::assert_cfg_edge_path_streq): Likewise. - (selftest::test_control_flow_5): Likewise. - (selftest::test_control_flow_6): Likewise. - -2024-06-18 David Malcolm - - * diagnostic.cc: Include "logical-location.h". - (diagnostic_path::get_first_event_in_a_function): Fix typo in - leading comment. Rewrite to use logical_location rather than - tree. Drop test on stack depth. - (diagnostic_path::interprocedural_p): Rewrite to use - logical_location rather than tree. - (logical_location::function_p): New. - * diagnostic-path.h (diagnostic_event::get_fndecl): Eliminate - vfunc. - (diagnostic_path::same_function_p): New pure virtual func. - * logical-location.h (logical_location::get_name_for_path_output): - New pure virtual func. - * simple-diagnostic-path.cc - (simple_diagnostic_path::same_function_p): New. - (simple_diagnostic_event::simple_diagnostic_event): Initialize - m_logical_loc. - * simple-diagnostic-path.h: Include "tree-logical-location.h". - (simple_diagnostic_event::get_fndecl): Convert from a vfunc - implementation to an accessor. - (simple_diagnostic_event::get_logical_location): Use - m_logical_loc. - (simple_diagnostic_event::m_logical_loc): New field. - (simple_diagnostic_path::same_function_p): New decl. - * tree-diagnostic-path.cc: Move pragma disabling -Wformat-diag to - cover the whole file. - (can_consolidate_events): Add params "path", "ev1_idx", and - "ev2_idx". Rewrite to use diagnostic_path::same_function_p rather - than tree. - (per_thread_summary::per_thread_summary): Add "path" param - (per_thread_summary::m_path): New field. - (event_range::event_range): Update for conversion of m_fndecl to - m_logical_loc. - (event_range::maybe_add_event): Rename param "idx" to - "new_ev_idx". Update call to can_consolidate_events to pass in - "m_path", "m_start_idx", and "new_ev_idx". - (event_range::m_fndecl): Replace with... - (event_range::m_logical_loc): ...this. - (path_summary::get_or_create_events_for_thread_id): Pass "path" to - per_thread_summary ctor. - (per_thread_summary::interprocedural_p): Rewrite to use - diagnostic_path::same_function_p rather than tree. - (print_fndecl): Delete. - (thread_event_printer::print_swimlane_for_event_range): Update for - conversion from tree to logical_location. - (default_tree_diagnostic_path_printer): Likewise. - (default_tree_make_json_for_path): Likewise. - * tree-logical-location.cc: Include "intl.h". - (compiler_logical_location::get_name_for_tree_for_path_output): - New. - (tree_logical_location::get_name_for_path_output): New. - (current_fndecl_logical_location::get_name_for_path_output): New. - * tree-logical-location.h - (compiler_logical_location::get_name_for_tree_for_path_output): - New decl. - (tree_logical_location::get_name_for_path_output): New decl. - (current_fndecl_logical_location::get_name_for_path_output): New - decl. - -2024-06-18 David Malcolm - - * Makefile.in (OBJS): Add simple-diagnostic-path.o. - * diagnostic-path.h (class simple_diagnostic_event): Move to - simple-diagnostic-path.h. - (class simple_diagnostic_thread): Likewise. - (class simple_diagnostic_path): Likewise. - * diagnostic.cc (simple_diagnostic_path::simple_diagnostic_path): - Move to simple-diagnostic-path.cc. - (simple_diagnostic_path::num_events): Likewise. - (simple_diagnostic_path::get_event): Likewise. - (simple_diagnostic_path::num_threads): Likewise. - (simple_diagnostic_path::get_thread): Likewise. - (simple_diagnostic_path::add_thread): Likewise. - (simple_diagnostic_path::add_event): Likewise. - (simple_diagnostic_path::add_thread_event): Likewise. - (simple_diagnostic_path::connect_to_next_event): Likewise. - (simple_diagnostic_event::simple_diagnostic_event): Likewise. - (simple_diagnostic_event::~simple_diagnostic_event): Likewise. - * selftest-run-tests.cc (selftest::run_tests): Call - selftest::simple_diagnostic_path_cc_tests. - * selftest.h (selftest::simple_diagnostic_path_cc_tests): New - decl. - * simple-diagnostic-path.cc: New file, from the above material. - * simple-diagnostic-path.h: New file, from the above material - from diagnostic-path.h. - * tree-diagnostic-path.cc: Include "simple-diagnostic-path.h". - -2024-06-18 Pan Li - - * match.pd: Add form 7 and 8 for the unsigned .SAT_ADD match. - -2024-06-18 Pan Li - - * match.pd: Add form 11 match pattern for .SAT_SUB. - -2024-06-18 Richard Biener - - PR tree-optimization/115537 - * tree-vect-loop.cc (vectorizable_reduction): Also reject - SLP condition reductions of EXTRACT_LAST kind when multiple - statement copies are involved. - -2024-06-18 Jeff Law - - * config/riscv/bitmanip.md (bset splitters): New patterns for - generating bset when bit position is limited. - -2024-06-18 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_addti_scratch_regs): Use - force_highpart_subreg instead of gen_highpart and simplify_gen_subreg. - (aarch64_subvti_scratch_regs): Likewise. - -2024-06-18 Richard Sandiford - - * explow.h (force_highpart_subreg): Declare. - * explow.cc (force_highpart_subreg): New function. - * builtins.cc (expand_builtin_issignaling): Use it. - * expmed.cc (emit_store_flag_1): Likewise. - -2024-06-18 Richard Sandiford - - * builtins.cc (expand_builtin_issignaling): Use force_lowpart_subreg - instead of simplify_gen_subreg and lowpart_subreg. - * expr.cc (convert_mode_scalar, expand_expr_real_2): Likewise. - * optabs.cc (expand_doubleword_mod): Likewise. - -2024-06-18 Richard Sandiford - - PR target/115464 - * config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin) - (aarch64_expand_rwsr_builtin): Use force_lowpart_subreg instead of - simplify_gen_subreg and lowpart_subreg. - * config/aarch64/aarch64-sve-builtins-base.cc - (svset_neonq_impl::expand): Likewise. - * config/aarch64/aarch64-sve-builtins-sme.cc - (add_load_store_slice_operand): Likewise. - * config/aarch64/aarch64.cc (aarch64_sve_reinterpret): Likewise. - (aarch64_addti_scratch_regs, aarch64_subvti_scratch_regs): Likewise. - -2024-06-18 Richard Sandiford - - * explow.h (force_lowpart_subreg): Declare. - * explow.cc (force_lowpart_subreg): New function. - * optabs.cc (lowpart_subreg_maybe_copy): Delete. - (expand_absneg_bit): Use force_lowpart_subreg instead of - lowpart_subreg_maybe_copy. - (expand_copysign_bit): Likewise. - -2024-06-18 Richard Sandiford - - * expmed.cc (store_bit_field_using_insv): Use force_subreg - instead of simplify_gen_subreg. - (store_bit_field_1): Likewise. - (extract_bit_field_as_subreg): Likewise. - (extract_integral_bit_field): Likewise. - (emit_store_flag_1): Likewise. - * expr.cc (convert_move): Likewise. - (convert_modes): Likewise. - (emit_group_load_1): Likewise. - (emit_group_store): Likewise. - (expand_assignment): Likewise. - -2024-06-18 Richard Sandiford - - * config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin): - Use force_subreg instead of simplify_gen_subreg. - * config/aarch64/aarch64-simd.md (ctz2): Likewise. - * config/aarch64/aarch64-sve-builtins-base.cc - (svget_impl::expand): Likewise. - (svget_neonq_impl::expand): Likewise. - * config/aarch64/aarch64-sve-builtins-functions.h - (multireg_permute::expand): Likewise. - -2024-06-18 Richard Sandiford - - * explow.cc (force_subreg): Emit no instructions on failure. - -2024-06-18 Jakub Jelinek - - PR target/115324 - * config/rs6000/rs6000-gen-builtins.cc (write_decls): Change - declaration of rs6000_init_generated_builtins from no arguments - to 4 pointer arguments. - (write_init_bif_table): Change rs6000_builtin_info_fntype to - builtin_info_fntype and rs6000_builtin_decls to builtin_decls. - (write_init_ovld_table): Change rs6000_instance_info_fntype to - instance_info_fntype, rs6000_builtin_decls to builtin_decls and - rs6000_overload_info to overload_info. - (write_init_file): Add __noipa__ attribute to - rs6000_init_generated_builtins for GCC 8.1+ and change the function - from no arguments to 4 pointer arguments. Change rs6000_builtin_decls - to builtin_decls. - * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Adjust - rs6000_init_generated_builtins caller. - -2024-06-18 Richard Biener - - PR tree-optimization/115493 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use - the first scalar result. - -2024-06-18 Richard Biener - - PR tree-optimization/111793 - * tree-ssa-alias.h (ref_can_have_store_data_races): Declare. - * tree-ssa-alias.cc (ref_can_have_store_data_races): New - function. - * tree-if-conv.cc (ifcvt_memrefs_wont_trap): Use - ref_can_have_store_data_races to allow more unconditional - stores. - * tree-ssa-loop-im.cc (execute_sm): Likewise. - * tree-ssa-phiopt.cc (cond_store_replacement): Likewise. - -2024-06-18 Hu, Lin1 - - * config/i386/avxintrin.h: Move cmp[p|s][s|d] to [e|x]mmintrin.h, - and move macros to xmmintrin.h - * config/i386/emmintrin.h: Add cmp[p|s]s intrins. - * config/i386/i386-builtin.def: Modify __builtin_ia32_cmp[p|s][s|d]. - * config/i386/i386-expand.cc - (ix86_expand_args_builtin): Raise error when imm is in range of - [8, 32] without avx. - * config/i386/predicates.md (cmpps_imm_operand): New predicate. - * config/i386/sse.md (avx_cmp3): Modefy define_insn. - (avx_vmcmp3): Ditto. - * config/i386/xmmintrin.h (_CMP_EQ_OQ): New macro for sse/sse2. - (_CMP_LT_OS): Ditto - (_CMP_LE_OS): Ditto - (_CMP_UNORD_Q): Ditto - (_CMP_NEQ_UQ): Ditto - (_CMP_NLT_US): Ditto - (_CMP_NLE_US): Ditto - (_CMP_ORD_Q): Ditto - (_mm_cmp_ps): Move intrin from avxintrin.h to xmmintrin.h - (_mm_cmp_ss): Ditto. - -2024-06-17 Jeff Law - - * config/riscv/bitmanip.md (bsetclr_zero_extract): New pattern. - -2024-06-17 Jakub Jelinek - - PR driver/115440 - * opts-common.cc (add_misspelling_candidates): If opt1 is non-NULL, - add a space and opt1 to the alternative suggestion text. - -2024-06-17 Patrick O'Neill - - * common/config/riscv/riscv-common.cc - (riscv_subset_list::to_string): Skip zaamo/zalrsc when not - supported by the assembler. - * config.in: Regenerate. - * configure: Regenerate. - * configure.ac: Add zaamo/zalrsc assmeber check. - -2024-06-17 Gerald Pfeifer - - * doc/install.texi (Configuration): Mark up __cxa_atexit as @code. - -2024-06-17 Peter Bergner - - PR target/115389 - * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Compute - rop_hash_save_offset for non-Altivec compiles. - -2024-06-17 Jeff Law - - * config/riscv/bitmanip.md (bsetdi_2): New pattern. - -2024-06-17 Richard Biener - - PR tree-optimization/115508 - * tree-vect-slp.cc (vect_schedule_slp_node): Guard check on - representative. - -2024-06-17 Richard Biener - - Revert: - 2024-05-06 Richard Biener - - PR tree-optimization/100923 - * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize - base SSA_NAME. - (vn_reference_lookup_3): Adjust vn_context_bb around calls - to ao_ref_init_from_vn_reference. - (vn_reference_lookup_pieces): Revert original PR100923 fix. - (vn_reference_lookup): Likewise. - -2024-06-17 Aldy Hernandez - - * data-streamer-in.cc (streamer_read_value_range): Rename - Value_Range to value_range. - * data-streamer.h (streamer_read_value_range): Same. - * gimple-pretty-print.cc (dump_ssaname_info): Same. - * gimple-range-cache.cc (ssa_block_ranges::dump): Same. - (ssa_lazy_cache::merge): Same. - (block_range_cache::dump): Same. - (ssa_cache::merge_range): Same. - (ssa_cache::dump): Same. - (ranger_cache::edge_range): Same. - (ranger_cache::propagate_cache): Same. - (ranger_cache::fill_block_cache): Same. - (ranger_cache::resolve_dom): Same. - (ranger_cache::range_from_dom): Same. - (ranger_cache::register_inferred_value): Same. - * gimple-range-fold.cc (op1_range): Same. - (op2_range): Same. - (fold_relations): Same. - (fold_using_range::range_of_range_op): Same. - (fold_using_range::range_of_phi): Same. - (fold_using_range::range_of_call): Same. - (fold_using_range::condexpr_adjust): Same. - (fold_using_range::range_of_cond_expr): Same. - (fur_source::register_outgoing_edges): Same. - * gimple-range-fold.h (gimple_range_type): Same. - (gimple_range_ssa_p): Same. - * gimple-range-gori.cc (gori_compute::compute_operand_range): Same. - (gori_compute::logical_combine): Same. - (gori_compute::refine_using_relation): Same. - (gori_compute::compute_operand1_range): Same. - (gori_compute::compute_operand2_range): Same. - (gori_compute::compute_operand1_and_operand2_range): Same. - (gori_calc_operands): Same. - (gori_name_helper): Same. - * gimple-range-infer.cc (gimple_infer_range::check_assume_func): Same. - (gimple_infer_range::gimple_infer_range): Same. - (infer_range_manager::maybe_adjust_range): Same. - (infer_range_manager::add_range): Same. - * gimple-range-infer.h: Same. - * gimple-range-op.cc - (gimple_range_op_handler::gimple_range_op_handler): Same. - (gimple_range_op_handler::calc_op1): Same. - (gimple_range_op_handler::calc_op2): Same. - (gimple_range_op_handler::maybe_builtin_call): Same. - * gimple-range-path.cc (path_range_query::internal_range_of_expr): Same. - (path_range_query::ssa_range_in_phi): Same. - (path_range_query::compute_ranges_in_phis): Same. - (path_range_query::compute_ranges_in_block): Same. - (path_range_query::add_to_exit_dependencies): Same. - * gimple-range-trace.cc (debug_seed_ranger): Same. - * gimple-range.cc (gimple_ranger::range_of_expr): Same. - (gimple_ranger::range_on_entry): Same. - (gimple_ranger::range_on_edge): Same. - (gimple_ranger::range_of_stmt): Same. - (gimple_ranger::prefill_stmt_dependencies): Same. - (gimple_ranger::register_inferred_ranges): Same. - (gimple_ranger::register_transitive_inferred_ranges): Same. - (gimple_ranger::export_global_ranges): Same. - (gimple_ranger::dump_bb): Same. - (assume_query::calculate_op): Same. - (assume_query::calculate_phi): Same. - (assume_query::dump): Same. - (dom_ranger::range_of_stmt): Same. - * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Same. - (ipa_vr_operation_and_type_effects): Same. - (ipa_value_range_from_jfunc): Same. - (propagate_bits_across_jump_function): Same. - (propagate_vr_across_jump_function): Same. - (ipcp_store_vr_results): Same. - * ipa-cp.h: Same. - * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same. - (evaluate_properties_for_edge): Same. - * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same. - (ipa_vr::get_vrange): Same. - (ipa_vr::streamer_read): Same. - (ipa_vr::streamer_write): Same. - (ipa_vr::dump): Same. - (ipa_set_jfunc_vr): Same. - (ipa_compute_jump_functions_for_edge): Same. - (ipcp_get_parm_bits): Same. - (ipcp_update_vr): Same. - (ipa_record_return_value_range): Same. - (ipa_return_value_range): Same. - * ipa-prop.h (ipa_return_value_range): Same. - (ipa_record_return_value_range): Same. - * range-op.h (range_cast): Same. - * tree-ssa-dom.cc - (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same. - (cprop_operand): Same. - * tree-ssa-loop-ch.cc (loop_static_stmt_p): Same. - * tree-ssa-loop-niter.cc (record_nonwrapping_iv): Same. - * tree-ssa-loop-split.cc (split_at_bb_p): Same. - * tree-ssa-phiopt.cc (value_replacement): Same. - * tree-ssa-strlen.cc (get_range): Same. - * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same. - (hybrid_jt_simplifier::compute_exit_dependencies): Same. - * tree-ssanames.cc (set_range_info): Same. - (duplicate_ssa_name_range_info): Same. - * tree-vrp.cc (remove_unreachable::handle_early): Same. - (remove_unreachable::remove_and_update_globals): Same. - (execute_ranger_vrp): Same. - * value-query.cc (range_query::value_of_expr): Same. - (range_query::value_on_edge): Same. - (range_query::value_of_stmt): Same. - (range_query::value_on_entry): Same. - (range_query::value_on_exit): Same. - (range_query::get_tree_range): Same. - * value-range-storage.cc (vrange_storage::set_vrange): Same. - * value-range.cc (Value_Range::dump): Same. - (value_range::dump): Same. - (debug): Same. - * value-range.h (enum value_range_discriminator): Same. - (class vrange): Same. - (class Value_Range): Same. - (class value_range): Same. - (Value_Range::Value_Range): Same. - (value_range::value_range): Same. - (Value_Range::~Value_Range): Same. - (value_range::~value_range): Same. - (Value_Range::set_type): Same. - (value_range::set_type): Same. - (Value_Range::init): Same. - (value_range::init): Same. - (Value_Range::operator=): Same. - (value_range::operator=): Same. - (Value_Range::operator==): Same. - (value_range::operator==): Same. - (Value_Range::operator!=): Same. - (value_range::operator!=): Same. - (Value_Range::supports_type_p): Same. - (value_range::supports_type_p): Same. - * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Same. - (simplify_using_ranges::legacy_fold_cond): Same. - -2024-06-17 Hu, Lin1 - - PR target/115161 - * config/i386/i386-builtin.def: Change CODE_FOR_* for cvtt*'s builtins. - * config/i386/sse.md: - (unspec_avx512fp16_fix - _trunc2): - Use UNSPEC instead of FIX/UNSIGNED_FIX. - (unspec_avx512fp16_fix_trunc2): - Ditto. - (unspec_avx512fp16_fix_truncv2di2): Ditto. - (unspec_avx512fp16_fix_trunc2): - Ditto. - (unspec_sse_cvttps2pi): Ditto. - (unspec_sse_cvttss2si): Ditto. - (unspec_fix_truncv16sfv16si2): - Ditto. - (unspec_fix_truncv8sfv8si2): Ditto. - (unspec_fix_truncv4sfv4si2): Ditto. - (unspec_sse2_cvttpd2pi): Ditto. - (unspec_fixuns_truncv2dfv2si2): Ditto. - (unspec_avx512f_vcvttss2usi): - Ditto. - (unspec_avx512f_vcvttsd2usi): - Ditto. - (unspec_sse2_cvttsd2si): Ditto. - (unspec_fix_truncv8dfv8si2): - Ditto. - (*unspec_fixuns_truncv2dfv2si2): Ditto. - (unspec_fixuns_truncv2dfv2si2_mask): Ditto. - (unspec_fix_truncv4dfv4si2): Ditto. - (unspec_fixuns_truncv4dfv4si2): Ditto. - (unspec_fix - _trunc2): - Ditto. - (unspec_fix - _trunc2): - Ditto. - (unspec_avx512dq_fix_truncv2sfv2di2): - Ditto. - (unspec_fixuns_trunc2): - Ditto. - (unspec_sse2_cvttpd2dq): Ditto. - -2024-06-17 Levy Hsu - - * config/i386/i386-expand.cc - (ix86_vectorize_vec_perm_const): Convert BF to HI using subreg. - * config/i386/predicates.md - (vcvtne2ps2bf_parallel): New define_insn_and_split. - * config/i386/sse.md - (vpermt2_sepcial_bf16_shuffle_): New predicates matches odd increasing perm. - -2024-06-17 Stefan Schulze Frielinghaus - - * config/s390/vector.md (*vmrhf_half): New. - (extendv2sfv2df2): New. - -2024-06-17 Stefan Schulze Frielinghaus - - PR target/115261 - * config/s390/s390.md (any_extend,extend_insn,zero_extend): - New code attributes and code iterator. - * config/s390/vector.md (V_EXTEND): New mode iterator. - (2): New insn. - -2024-06-16 Andrew Pinski - - PR target/100211 - * config/aarch64/aarch64.h (machine_function): Fix the size - of reg_is_wrapped_separately. - -2024-06-16 Jeff Law - - * config/riscv/bitmanip.md ((1 << N) | C): New splitter for IOR/XOR - of a single bit an a DImode object. - -2024-06-16 Jeff Law - - * config/sh/sh.md (neg_zero_extract_4b): New pattern. - -2024-06-16 Peter Damianov - - * pretty-print.cc (mingw_ansi_fputs): Don't translate escape sequences if - the console has ENABLE_VIRTUAL_TERMINAL_PROCESSING. - -2024-06-16 Peter Damianov - - * diagnostic-color.cc (auto_enable_urls): Don't hardcode to return - false on mingw hosts. - (auto_enable_urls): Return true if console - supports ansi escape sequences. - -2024-06-16 Peter Damianov - - * diagnostic-color.cc (should_colorize): Enable processing of VT100 - escape sequences on windows consoles - -2024-06-15 Christoph Müllner - - * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): - Fix allocation size of buffer. - (riscv_process_one_target_attr): Likewise. - (riscv_process_target_attr): Likewise. - -2024-06-15 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific): Remove pointer to old versions - of binutils. - -2024-06-14 Andrew MacLeod - - * gimple-range-gori.cc (gori_calc_operands): Do not continue nor - add the range when VARYING is produced for an operand. - -2024-06-14 Andrew MacLeod - - * gimple-range-cache.cc (ssa_lazy_cache::merge): New. - * gimple-range-cache.h (ssa_lazy_cache::merge): New prototype. - -2024-06-14 Andrew MacLeod - - * gimple-range-fold.cc (fold_using_range::range_of_call): Ensure - LHS is an SSA_NAME before invoking gimple_range_global. - -2024-06-14 Pan Li - - * match.pd: Add more match for unsigned sat_sub. - * tree-ssa-math-opts.cc (match_unsigned_saturation_sub): Add new - func impl to match phi node for .SAT_SUB. - (math_opts_dom_walker::after_dom_children): Try match .SAT_SUB - for the phi node, MULT_EXPR, BIT_XOR_EXPR and BIT_AND_EXPR. - -2024-06-14 Jan Beulich - - * configure.ac: Drop ${objdir}/ from NM and AR. Move setting of - ld_ver out of conditional. - * configure: Re-generate. - -2024-06-14 Richard Biener - - * tree-vect-loop.cc (vectorizable_reduction): Allow - single-def-use cycles with SLP. - (vect_transform_reduction): Handle SLP single def-use cycles. - (vect_transform_cycle_phi): Likewise. - -2024-06-14 Gerald Pfeifer - - * doc/invoke.texi (x86 Options): Consolidate duplicate MOVBE - listings for haswell, broadwell, skylake, skylake-avx512, - cannonlake, icelake-client, icelake-server, cascadelake, - cooperlake, tigerlake, sapphirerapids, rocketlake, graniterapids, - and graniterapids-d options to -march. - -2024-06-14 Pan Li - - PR target/115456 - * config/riscv/vector-iterators.md: Leverage V_ZVFH instead of V - which contains the VF_ZVFHMIN for alignment. - -2024-06-14 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific): Remove stale reference to Interix. - -2024-06-14 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Do not - re-use poly-int remain but re-compute with non-poly values. - Verify the shortened load is good enough to be covered with - a single scalar gap iteration before accepting it. - -2024-06-14 liuhongt - - * config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for - pternlog_operand under AVX512, also adjust VEC_DUPLICATE - according since vec_dup:mem can't be that cheap. - -2024-06-14 liuhongt - - * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Remove - latest Intel processors. - Co-authored by: Lingling Kong - -2024-06-14 Roger Sayle - - * config/i386/i386-expand.cc (ix86_expand_ternlog): Try performing - logic operation in a different vector mode if that enables use of - a 32-bit or 64-bit broadcast addressing mode. - -2024-06-14 Andrew Pinski - - PR middle-end/113212 - * expr.h (const_seqpops): New typedef. - (expand_expr_real_2): Constify the first argument. - * optabs.cc (expand_widen_pattern_expr): Likewise. - * optabs.h (expand_widen_pattern_expr): Likewise. - * expr.cc (expand_expr_real_2): Likewise - (do_store_flag): Likewise. Remove incorrect store to ops->code. - -2024-06-13 Patrick O'Neill - - * config/riscv/sync-rvwmo.md: Add support for subword fenced - loads/stores. - * config/riscv/sync-ztso.md: Ditto. - * config/riscv/sync.md: Ditto. - -2024-06-13 Gerald Pfeifer - - * doc/extend.texi (AArch64 Function Attributes): Add - (AVR Variable Attributes): Ditto. - (Common Type Attributes): Ditto. - -2024-06-13 Hongyu Wang - - PR target/115370 - PR target/115463 - * target.def (have_ccmp): New target hook. - * targhooks.cc (default_have_ccmp): New function. - * targhooks.h (default_have_ccmp): New prototype. - * doc/tm.texi.in: Add TARGET_HAVE_CCMP. - * doc/tm.texi: Regenerate. - * cfgexpand.cc (expand_gimple_cond): Call targetm.have_ccmp - instead of checking if targetm.gen_ccmp_first exists. - * expr.cc (expand_expr_real_gassign): Likewise. - * config/i386/i386.cc (ix86_have_ccmp): New target hook to - check if APX_CCMP enabled. - (TARGET_HAVE_CCMP): Define. - -2024-06-13 Richard Sandiford - - PR target/115464 - * simplify-rtx.cc (simplify_context::simplify_subreg): Don't try - to fold two subregs together if their relationship isn't known - at compile time. - * explow.h (force_subreg): Declare. - * explow.cc (force_subreg): New function. - * config/aarch64/aarch64-sve-builtins-base.cc - (svset_neonq_impl::expand): Use it instead of simplify_gen_subreg. - -2024-06-13 Pan Li - - PR target/115456 - * config/riscv/autovec.md: Take ZVFH mode iterator instead of - the ZVFHMIN for the alignment. - * config/riscv/vector-iterators.md: Add 2 new iterator - V_VLS_ZVFH and VLS_ZVFH. - -2024-06-13 Hongyu Wang - - * config/i386/i386.md (@ccmp): Add new alternative - ,C and adjust output templates. Also adjust UNSPEC mode - to CCmode. - -2024-06-13 Gerald Pfeifer - - PR other/69374 - * doc/install.texi (Prerequisites): Simplify note on the C++ - compiler required. Drop requirements for versions of GCC prior - to 3.4. Fix grammar. - -2024-06-13 Richard Biener - - * tree-vect-stmts.cc (get_group_load_store_type): Consistently - use VMAT_STRIDED_SLP for strided SLP accesses and not - VMAT_ELEMENTWISE. - (vectorizable_store): Adjust VMAT_STRIDED_SLP handling to - allow not only half-size but also smaller accesses. - (vectorizable_load): Likewise. - -2024-06-13 Richard Biener - - PR tree-optimization/115385 - * tree-vect-stmts.cc (get_group_load_store_type): Peeling - of a single scalar iteration is sufficient if we can narrow - the access to the next power of two of the bits in the last - access. - (vectorizable_load): Ensure that the last access is narrowed. - -2024-06-13 Richard Biener - - PR tree-optimization/114107 - PR tree-optimization/110445 - * tree-vect-stmts.cc (get_group_load_store_type): Refactor - contiguous access case. Make sure peeling for gap constraints - are always tested and consistently relax when we know we can - avoid touching excess elements during code generation. But - rewrite the check poly-int aware. - -2024-06-13 Andi Kleen - - * doc/extend.texi: Use std::string_view in asm constexpr - example. - -2024-06-13 liuhongt - - PR target/115452 - * config/i386/i386-features.cc (scalar_chain::convert_op): Use - reg_or_subregno instead of REGNO to avoid ICE. - -2024-06-13 YunQiang Su - - * config/mips/mips-cpus.def: Use PROCESSOR_24KF1_1 for mips32; - Use PROCESSOR_5KF for mips64/mips64r2/mips64r3/mips64r5. - -2024-06-13 YunQiang Su - - * config/mips/mips-modes.def: New CC_MODE CCE. - * config/mips/mips-protos.h(mips_output_compare): New function. - * config/mips/mips.cc(mips_allocate_fcc): Set CCEmode count=1. - (mips_emit_compare): Use CCEmode for LTGT/LT/LE for pre-R6. - (mips_output_compare): New function. Convert lt/le to slt/sle - for R6; convert ueq to ngl for CCEmode. - (mips_hard_regno_mode_ok_uncached): Mention CCEmode. - * config/mips/mips.h: Mention CCEmode for LOAD_EXTEND_OP. - * config/mips/mips.md(FPCC): Add CCE. - (define_mode_iterator MOVECC): Mention CCE. - (define_mode_attr reg): Add CCE with "z". - (define_mode_attr fpcmp): Add CCE with "c". - (define_code_attr fcond): ltgt should use sne instead of ne. - (s__using_): call mips_output_compare. - -2024-06-13 Lingling Kong - - * config/i386/i386-opts.h (enum apx_features): Add apx_zu. - * config/i386/i386.h (TARGET_APX_ZU): Define. - * config/i386/i386.md (*imulhizu): New define_insn. - (*setcc__zu): Ditto. - * config/i386/i386.opt: Add enum value for zu. - -2024-06-12 David Malcolm - - PR bootstrap/115465 - * config/aarch64/aarch64-early-ra.cc (early_ra::process_block): - Update for fields of pretty_printer becoming private in - r15-1209-gc5e3be456888aa. - -2024-06-12 Andrew Pinski - - PR target/115176 - * config/aarch64/aarch64-simd.md (aarch64_rbit): Use - bitreverse instead of unspec. - * config/aarch64/aarch64-sve-builtins-base.cc (svrbit): Convert over to using - rtx_code_function instead of unspec_based_function. - * config/aarch64/aarch64-sve.md: Update comment where RBIT is included. - * config/aarch64/aarch64.cc (aarch64_rtx_costs): Handle BITREVERSE like BSWAP. - Remove UNSPEC_RBIT support. - * config/aarch64/aarch64.md (unspec): Remove UNSPEC_RBIT. - (aarch64_rbit): Use bitreverse instead of unspec. - * config/aarch64/iterators.md (SVE_INT_UNARY): Add bitreverse. - (optab): Likewise. - (sve_int_op): Likewise. - (SVE_INT_UNARY): Remove UNSPEC_RBIT. - (optab): Likewise. - (sve_int_op): Likewise. - (min_elem_bits): Likewise. - -2024-06-12 Andrew Pinski - - PR tree-optimization/115449 - * gimple-match-head.cc (gimple_maybe_truncate): New declaration. - (gimple_bitwise_equal_p): Match truncations that differ only - in types with the same precision. - (gimple_bitwise_inverted_equal_p): For matching after bit_not_with_nop - call gimple_bitwise_equal_p. - * match.pd (maybe_truncate): New match pattern. - -2024-06-12 Victor Do Nascimento - - PR tree-optimization/114061 - * tree-data-ref.cc (get_references_in_stmt): set - `clobbers_memory' to false for __builtin_prefetch. - * tree-vect-loop.cc (vect_transform_loop): Drop all - __builtin_prefetch calls from loops. - -2024-06-12 David Malcolm - - * dumpfile.cc (dump_pretty_printer::emit_items): Update for - changes to chunk_info. - * pretty-print.cc (chunk_info::append_formatted_chunk): New, based - on code in cp/error.cc's append_formatted_chunk. - (chunk_info::pop_from_output_buffer): New, based on code in - pp_output_formatted_text and dump_pretty_printer::emit_items. - (on_begin_quote): Convert to... - (chunk_info::on_begin_quote): ...this. - (on_end_quote): Convert to... - (chunk_info::on_end_quote): ...this. - (pretty_printer::format): Update for chunk_info becoming a class - and its fields gaining "m_" prefixes. Update for on_begin_quote - and on_end_quote moving to chunk_info. - (quoting_info::handle_phase_3): Update for changes to chunk_info. - (pp_output_formatted_text): Likewise. Move cleanup code to - chunk_info::pop_from_output_buffer. - * pretty-print.h (class output_buffer): New forward decl. - (class urlifier): New forward decl. - (struct chunk_info): Convert to... - (class chunk_info): ...this. Add friend class pretty_printer. - (chunk_info::get_args): New accessor. - (chunk_info::get_quoting_info): New accessor. - (chunk_info::append_formatted_chunk): New decl. - (chunk_info::pop_from_output_buffer): New decl. - (chunk_info::on_begin_quote): New decl. - (chunk_info::on_end_quote): New decl. - (chunk_info::prev): Rename to... - (chunk_info::m_prev): ...this. - (chunk_info::args): Rename to... - (chunk_info::m_args): ...this. - (output_buffer::cur_chunk_array): Drop "struct" from decl. - -2024-06-12 David Malcolm - - * diagnostic.cc (diagnostic_context::urls_init): Update for fields - of pretty_printer becoming private. - (diagnostic_context::print_any_cwe): Likewise. - (diagnostic_context::print_any_rules): Likewise. - (diagnostic_context::print_option_information): Likewise. - * diagnostic.h (diagnostic_format_decoder): Likewise. - (diagnostic_prefixing_rule): Likewise, fixing typo. - * digraph.cc (test_dump_to_dot): Likewise. - * digraph.h (digraph::dump_dot_to_file): Likewise. - * dumpfile.cc - (dump_pretty_printer::emit_any_pending_textual_chunks): Likewise. - * gimple-pretty-print.cc (print_gimple_stmt): Likewise. - (print_gimple_expr): Likewise. - (print_gimple_seq): Likewise. - (dump_ssaname_info_to_file): Likewise. - (gimple_dump_bb): Likewise. - * graph.cc (print_graph_cfg): Likewise. - (start_graph_dump): Likewise. - * langhooks.cc (lhd_print_error_function): Likewise. - * lto-wrapper.cc (print_lto_docs_link): Likewise. - * pretty-print.cc (pp_set_real_maximum_length): Convert to... - (pretty_printer::set_real_maximum_length): ...this. - (pp_clear_state): Convert to... - (pretty_printer::clear_state): ...this. - (pp_wrap_text): Update for pp_remaining_character_count_for_line - becoming a member function. - (urlify_quoted_string): Update for fields of pretty_printer becoming - private. - (pp_format): Convert to... - (pretty_printer::format): ...this. Reduce the scope of local - variables "old_line_length" and "old_wrapping_mode" and make - const. Reduce the scope of locals "args", "new_chunk_array", - "curarg", "any_unnumbered", and "any_numbered". - (pp_output_formatted_text): Update for fields of pretty_printer - becoming private. - (pp_flush): Likewise. - (pp_really_flush): Likewise. - (pp_set_line_maximum_length): Likewise. - (pp_set_prefix): Convert to... - (pretty_printer::set_prefix): ...this. - (pp_take_prefix): Update for fields of pretty_printer gaining - "m_" prefixes. - (pp_destroy_prefix): Likewise. - (pp_emit_prefix): Convert to... - (pretty_printer::emit_prefix): ...this. - (pretty_printer::pretty_printer): Update both ctors for fields - gaining "m_" prefixes. - (pretty_printer::~pretty_printer): Likewise for dtor. - (pp_append_text): Update for pp_emit_prefix becoming - pretty_printer::emit_prefix. - (pp_remaining_character_count_for_line): Convert to... - (pretty_printer::remaining_character_count_for_line): ...this. - (pp_character): Update for above change. - (pp_maybe_space): Convert to... - (pretty_printer::maybe_space): ...this. - (pp_begin_url): Convert to... - (pretty_printer::begin_url): ...this. - (get_end_url_string): Update for fields of pretty_printer - becoming private. - (pp_end_url): Convert to... - (pretty_printer::end_url): ...this. - (selftest::test_pretty_printer::test_pretty_printer): Update for - fields of pretty_printer becoming private. - (selftest::test_urls): Likewise. - (selftest::test_null_urls): Likewise. - (selftest::test_urlification): Likewise. - * pretty-print.h (pp_line_cutoff): Convert from macro to inline - function. - (pp_prefixing_rule): Likewise. - (pp_wrapping_mode): Likewise. - (pp_format_decoder): Likewise. - (pp_needs_newline): Likewise. - (pp_indentation): Likewise. - (pp_translate_identifiers): Likewise. - (pp_show_color): Likewise. - (pp_buffer): Likewise. - (pp_get_prefix): Add forward decl to allow friend decl. - (pp_take_prefix): Likewise. - (pp_destroy_prefix): Likewise. - (class pretty_printer): Fix typo in leading comment. Add - "friend" decls for the various new accessor functions that were - formerly macros and for pp_get_prefix, pp_take_prefix, and - pp_destroy_prefix. Make all fields private. - (pretty_printer::set_output_stream): New. - (pretty_printer::set_prefix): New decl. - (pretty_printer::emit_prefix): New decl. - (pretty_printer::format): New decl. - (pretty_printer::maybe_space): New decl. - (pretty_printer::supports_urls_p): New. - (pretty_printer::get_url_format): New. - (pretty_printer::set_url_format): New. - (pretty_printer::begin_url): New decl. - (pretty_printer::end_url): New decl. - (pretty_printer::set_verbatim_wrapping): New. - (pretty_printer::set_padding): New. - (pretty_printer::get_padding): New. - (pretty_printer::clear_state): New decl. - (pretty_printer::set_real_maximum_length): New decl. - (pretty_printer::remaining_character_count_for_line): New decl. - (pretty_printer::buffer): Rename to... - (pretty_printer::m_buffer): ...this. - (pretty_printer::prefix): Rename to... - (pretty_printer::m_prefix): ...this; - (pretty_printer::padding): Rename to... - (pretty_printer::m_padding): ...this; - (pretty_printer::maximum_length): Rename to... - (pretty_printer::m_maximum_length): ...this; - (pretty_printer::indent_skip): Rename to... - (pretty_printer::m_indent_skip): ...this; - (pretty_printer::wrapping): Rename to... - (pretty_printer::m_wrapping): ...this; - (pretty_printer::format_decoder): Rename to... - (pretty_printer::m_format_decoder): ...this; - (pretty_printer::emitted_prefix): Rename to... - (pretty_printer::m_emitted_prefix): ...this; - (pretty_printer::need_newline): Rename to... - (pretty_printer::m_need_newline): ...this; - (pretty_printer::translate_identifiers): Rename to... - (pretty_printer::m_translate_identifiers): ...this; - (pretty_printer::show_color): Rename to... - (pretty_printer::m_show_color): ...this; - (pretty_printer::url_format): Rename to... - (pretty_printer::m_url_format): ...this; - (pp_get_prefix): Reformat. - (pp_format_postprocessor): New inline function. - (pp_take_prefix): Move decl to before class pretty_printer. - (pp_destroy_prefix): Likewise. - (pp_set_prefix): Convert to inline function. - (pp_emit_prefix): Convert to inline function. - (pp_format): Convert to inline function. - (pp_maybe_space): Convert to inline function. - (pp_begin_url): Convert to inline function. - (pp_end_url): Convert to inline function. - (pp_set_verbatim_wrapping): Convert from macro to inline - function, renaming... - (pp_set_verbatim_wrapping_): ...this. - * print-rtl.cc (dump_value_slim): Update for fields of - pretty_printer becoming private. - (dump_insn_slim): Likewise. - (dump_rtl_slim): Likewise. - * print-tree.cc (print_node): Likewise. - * sched-rgn.cc (dump_rgn_dependencies_dot): Likewise. - * text-art/canvas.cc (canvas::print_to_pp): Likewise. - (canvas::debug): Likewise. - (selftest::test_canvas_urls): Likewise. - * text-art/dump.h (dump_to_file): Likewise. - * text-art/selftests.cc (selftest::assert_canvas_streq): Likewise. - * text-art/style.cc (style::print_changes): Likewise. - * text-art/styled-string.cc (styled_string::from_fmt_va): - Likewise. - * tree-diagnostic-path.cc (control_flow_tests): Update for - pp_show_color becoming an inline function. - * tree-loop-distribution.cc (dot_rdg_1): Update for fields of - pretty_printer becoming private. - * tree-pretty-print.cc (maybe_init_pretty_print): Likewise. - * value-range.cc (vrange::dump): Likewise. - (irange_bitmask::dump): Likewise. - -2024-06-12 David Malcolm - - * gimple-pretty-print.cc: Rename pretty_printer "buffer" to "pp" - throughout. - * print-tree.cc (print_node): Likewise. - * tree-loop-distribution.cc (dot_rdg_1): Likewise. - * tree-pretty-print.h (dump_location): Likewise. - * value-range.cc (vrange::dump): Likewise. - (irange_bitmask::dump): Likewise. - -2024-06-12 Xi Ruoyao - - * config/loongarch/predicates.md (high_bitmask_operand): New - predicate. - * config/loongarch/constraints.md (Yy): New constriant. - * config/loongarch/loongarch.md (and3_align): New - define_insn_and_split. - -2024-06-12 Xi Ruoyao - - * config/loongarch/loongarch.cc - (loongarch_expand_conditional_move): Compare mode size with - UNITS_PER_WORD instead of word_mode. - -2024-06-12 Torbjörn SVENSSON - Yvan ROUX - - PR target/115253 - * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear): - Sign extend for Thumb1. - (thumb1_expand_prologue): Add zero/sign extend. - -2024-06-12 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) <*-*-cygwin>: Update web link. - -2024-06-12 Pan Li - - * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): - Leverage gsi_after_labels instead of gsi_start_bb to skip the - leading labels of bb. - -2024-06-12 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) <*-*-linux-gnu>: Do not list - glibc 2.1 and binutils 2.12 as minimum dependencies. - -2024-06-12 Alexandre Oliva - - PR tree-optimization/113681 - * tree-profile.cc (pass_ipa_tree_profile::gate): Skip if - seen_errors. - -2024-06-12 liuhongt - - PR target/115384 - * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): - Only do the simplification of (AND (ASHIFTRT A imm) mask) - to (LSHIFTRT A imm) when the component of const_vector is - CONST_INT_P. - -2024-06-11 Joseph Myers - - * doc/cpp.texi (__STDC_VERSION__): Document C2Y handling. - * doc/invoke.texi (-Wc23-c2y-compat, -std=c2y, -std=gnu2y): - Document options. - (-std=gnu23): Update documentation. - * doc/standards.texi (C Language): Document C2Y. Update C23 - description. - * config/rl78/rl78.cc (rl78_option_override): Handle "GNU C2Y" - language name. - * dwarf2out.cc (highest_c_language, gen_compile_unit_die): - Likewise. - -2024-06-11 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) : Remove - redundant introduction of x86-64. - -2024-06-11 Robin Dapp - - PR tree-optimization/115382 - * tree-vect-loop.cc (vectorize_fold_left_reduction): Use - prepare_vec_mask. - * tree-vect-stmts.cc (check_load_store_for_partial_vectors): - Remove static of prepare_vec_mask. - * tree-vectorizer.h (prepare_vec_mask): Export. - -2024-06-11 Patrick O'Neill - - * config/riscv/sync.md (atomic_): New expand pattern. - (amo_atomic_): Rename amo pattern. - (atomic_fetch_): New lrsc sequence pattern. - (lrsc_atomic_): New expand pattern. - (amo_atomic_fetch_): Rename amo pattern. - (lrsc_atomic_fetch_): New lrsc sequence pattern. - (atomic_exchange): New expand pattern. - (amo_atomic_exchange): Rename amo pattern. - (lrsc_atomic_exchange): New lrsc sequence pattern. - -2024-06-11 Patrick O'Neill - - * doc/sourcebuild.texi: Add docs for atomic extension testsuite infra. - -2024-06-11 Edwin Lu - Patrick O'Neill - - * common/config/riscv/riscv-common.cc: Add Zaamo and Zalrsc. - * config/riscv/arch-canonicalize: Make A imply Zaamo and Zalrsc. - * config/riscv/riscv.opt: Add Zaamo and Zalrsc - * config/riscv/sync.md: Convert TARGET_ATOMIC to TARGET_ZAAMO and - TARGET_ZALRSC. - -2024-06-11 Uros Bizjak - - PR target/112600 - * config/i386/i386.md (usadd3): Emit insn sequence - involving conditional move for TARGET_CMOVE targets. - (ussub3): Ditto. - -2024-06-11 Pengxuan Zheng - - * config/aarch64/aarch64-builtins.cc (VAR1): Remap float_truncate_lo_ - builtin codes to standard optab ones. - * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): - Rename to... - (trunc2): ... This. - -2024-06-11 Andi Kleen - - * doc/extend.texi: Document constexpr asm. - -2024-06-11 Andrew MacLeod - - * gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Issue a - message if SCEV is not invoked due to a mismatch. - -2024-06-11 Roger Sayle - - PR target/115397 - * config/i386/i386-expand.cc (ix86_expand_ternlog): Move call to - ix86_broadcast_from_constant before call to validize_mem, but after - call to force_const_mem. - -2024-06-11 Pan Li - - * config/riscv/autovec.md (ussub3): Add new pattern impl - for the unsigned vector modes. - * config/riscv/riscv-protos.h (expand_vec_ussub): Add new func - decl to expand .SAT_SUB for vector mode. - * config/riscv/riscv-v.cc (emit_vec_saddu): Add new func impl - to expand .SAT_SUB for vector mode. - (emit_vec_binary_alu): Add new helper func to emit binary alu. - (expand_vec_ussub): Leverage above helper func. - -2024-06-10 Gerald Pfeifer - - * doc/gm2.texi (Documentation): Fix typos, grammar, and a link. - -2024-06-10 Andrew MacLeod - - * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker): - Always use current range_query. - (pass_data_array_bounds): New. - (pass_array_bounds): New. - (make_pass_array_bounds): New. - * gimple-array-bounds.h (array_bounds_checker): Adjust prototype. - * passes.def (pass_array_bounds): New. Add after VRP1. - * timevar.def (TV_TREE_ARRAY_BOUNDS): New timevar. - * tree-pass.h (make_pass_array_bounds): Add prototype. - * tree-vrp.cc (execute_ranger_vrp): Remove warning param and do - not invoke array bounds warning pass. - (pass_vrp::pass_vrp): Adjust params. - (pass_vrp::close): Adjust parameters. - (pass_vrp::warn_array_bounds_p): Remove. - (make_pass_vrp): Remove warning param. - (make_pass_early_vrp): Remove warning param. - (make_pass_fast_vrp): Remove warning param. - -2024-06-10 Raphael Zinsly - - * config/riscv/bitmanip.md (*bextdisi): New pattern. - -2024-06-10 Pan Li - - PR target/115387 - * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Take - the gsi of start_bb instead of last_bb. - -2024-06-10 Raphael Zinsly - - * config/riscv/bitmanip.md (*bextdisi): New pattern. - -2024-06-10 Richard Biener - - PR tree-optimization/115388 - * tree-ssa-dse.cc (dse_classify_store): Handle irreducible - regions. - (pass_dse::execute): Make sure to mark backedges. - -2024-06-10 Richard Biener - - PR tree-optimization/115395 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): - Handle STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT also for SLP - reductions of group_size one. - -2024-06-10 Andreas Krebbel - - * config/s390/s390.cc (expand_perm_as_replicate): Handle memory - operands. - * config/s390/vx-builtins.md (vec_splats): Turn into parameterized expander. - (@vec_splats): New expander. - -2024-06-10 Richard Biener - - PR tree-optimization/115383 - * tree-vect-stmts.cc (vectorizable_condition): Handle - generating a chain of .FOLD_EXTRACT_LAST. - -2024-06-09 Andreas Tobler - - * config/freebsd-spec.h: Change fbsd-lib-spec for FreeBSD > 13, - do not link against profiled system libraries if -pg is invoked. - Add a define to note about this change. - * config/aarch64/aarch64-freebsd.h: Use the note to inform if - -pg is invoked on FreeBSD > 13. - * config/arm/freebsd.h: Likewise. - * config/i386/freebsd.h: Likewise. - * config/i386/freebsd64.h: Likewise. - * config/riscv/freebsd.h: Likewise. - * config/rs6000/freebsd64.h: Likewise. - * config/rs6000/sysv4.h: Likeise. - -2024-06-09 Jeff Law - - * config/riscv/riscv.cc (riscv_move_integer): Initialize "x". - -2024-06-09 Uros Bizjak - - PR target/112600 - * config/i386/i386.md (ussub3): New expander. - (sub_3): Ditto. - -2024-06-09 Gerald Pfeifer - - * doc/install.texi (avr): Remove link to www.amelek.gda.pl/avr/. - -2024-06-09 Roger Sayle - - * expmed.cc (expand_shift_1): Use add_optab instead of ior_optab - to generate PLUS instead or IOR when unioning disjoint bitfields. - * optabs.cc (expand_subword_shift): Likewise. - (expand_binop): Likewise for double-word rotate. - -2024-06-08 Peter Bergner - - * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Update comment. - -2024-06-08 Uros Bizjak - - PR target/112600 - * config/i386/i386.md (usadd3): New expander. - (x86_movcc_0_m1_neg): Use SWI mode iterator. - -2024-06-08 Pan Li - - * config/riscv/riscv-protos.h (riscv_expand_ussub): Add new func - decl for ussub expanding. - * config/riscv/riscv.cc (riscv_expand_ussub): Ditto but for impl. - * config/riscv/riscv.md (ussub3): Add new pattern ussub - for scalar modes. - -2024-06-07 David Malcolm - - * doc/invoke.texi: Add -Wanalyzer-undefined-behavior-ptrdiff. - -2024-06-07 Jason Merrill - - * doc/invoke.texi (C++ Modules): Mention -include. - -2024-06-07 Roger Sayle - - PR target/115351 - * config/i386/i386.cc (ix86_rtx_costs): Provide estimates for - the *concatditi3 and *insvti_highpart patterns, about two insns. - -2024-06-07 Roger Sayle - Hongtao Liu - - * config/i386/i386-expand.cc (ix86_expand_args_builtin): Call - fixup_modeless_constant before testing predicates. Only call - copy_to_mode_reg on memory operands (after the first one). - (ix86_gen_bcst_mem): Helper function to convert a CONST_VECTOR - into a VEC_DUPLICATE if possible. - (ix86_ternlog_idx): Convert an RTX expression into a ternlog - index between 0 and 255, recording the operands in ARGS, if - possible or return -1 if this is not possible/valid. - (ix86_ternlog_leaf_p): Helper function to identify "leaves" - of a ternlog expression, e.g. REG_P, MEM_P, CONST_VECTOR, etc. - (ix86_ternlog_operand_p): Test whether a expression is suitable - for and prefered as an UNSPEC_TERNLOG. - (ix86_expand_ternlog_binop): Helper function to construct the - binary operation corresponding to a sufficiently simple ternlog. - (ix86_expand_ternlog_andnot): Helper function to construct a - ANDN operation corresponding to a sufficiently simple ternlog. - (ix86_expand_ternlog): Expand a 3-operand ternary logic - expression, constructing either an UNSPEC_TERNLOG or simpler - rtx expression. Called from builtin expanders and pre-reload - splitters. - * config/i386/i386-protos.h (ix86_ternlog_idx): Prototype here. - (ix86_ternlog_operand_p): Likewise. - (ix86_expand_ternlog): Likewise. - * config/i386/predicates.md (ternlog_operand): New predicate - that calls xi86_ternlog_operand_p. - * config/i386/sse.md (_vpternlog_0): New - define_insn_and_split that recognizes a SET_SRC of ternlog_operand - and expands it via ix86_expand_ternlog pre-reload. - (_vternlog_mask): Convert from define_insn to - define_expand. Use ix86_expand_ternlog if the mask operand is - ~0 (or 255 or -1). - (*_vternlog_mask): define_insn renamed from above. - -2024-06-07 Michal Jires - - * common.opt: Add cache partitioning. - * flag-types.h (enum lto_partition_model): Likewise. - -2024-06-07 Richard Biener - - * tree-vect-loop.cc (vectorize_fold_left_reduction): Fix - mask vector operand indexing. - -2024-06-07 Jakub Jelinek - - PR middle-end/115352 - * gimple-lower-bitint.cc (lower_addsub_overflow): Don't disable - single_comparison if cmp_code is GE_EXPR. - -2024-06-07 Alexandre Oliva - - * target.def (call_offset_return_label): New hook. - * doc/tm.texi.in (TARGET_CALL_OFFSET_RETURN_LABEL): Add - placeholder. - * doc/tm.texi: Rebuild. - * dwarf2out.cc (struct call_arg_loc_node): Record call_insn - instead of call_arg_loc_note. - (add_AT_lbl_id): Add optional offset argument. - (gen_call_site_die): Compute and pass on a return pc offset. - (gen_subprogram_die): Move call_arg_loc_note computation... - (dwarf2out_var_location): ... from here. Set call_insn. - -2024-06-06 Pan Li - - * doc/match-and-simplify.texi: Add doc for the matching flag '^'. - * genmatch.cc (cmp_operand): Add match_phi comparation. - (dt_node::gen_kids_1): Add cond_expr bool flag for phi match. - (dt_operand::gen_phi_on_cond): Add new func to gen phi matching - on cond_expr. - (parser::parse_expr): Add handling for the expr flag '^'. - * match.pd: Add more form for unsigned .SAT_ADD. - * tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Add - new func impl to build call for phi gimple. - (match_unsigned_saturation_add): Add new func impl to match the - .SAT_ADD for phi gimple. - (math_opts_dom_walker::after_dom_children): Add phi matching - try for all gimple phi stmt. - -2024-06-06 Pengxuan Zheng - - PR target/113880 - PR target/113869 - * config/aarch64/aarch64-builtins.cc (VAR1): Remap float_extend_lo_ - builtin codes to standard optab ones. - * config/aarch64/aarch64-simd.md (aarch64_float_extend_lo_): Rename - to... - (extend2): ... This. - -2024-06-06 Andrew Pinski - - PR plugins/115288 - * Makefile.in (CPPLIB_H): Add label-text.h. - -2024-06-06 Richard Ball - - * config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros): - Add missing __ARM_NEON_SVE_BRIDGE. - -2024-06-06 Richard Ball - - PR target/115353 - * config/arm/arm.h (enum arm_auto_incmodes): - Correct CASE_VECTOR_SHORTEN_MODE query. - -2024-06-06 Tamar Christina - - * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp, - *cmp_cc, *cmp_ptest, - @aarch64_pred_cmp_wide, - *aarch64_pred_cmp_wide_cc, - *aarch64_pred_cmp_wide_ptest): Fix Upl tie alternative. - * config/aarch64/aarch64-sve2.md (@aarch64_pred_): Fix - Upl tie alternative. - -2024-06-06 Thomas Schwinge - - * config/nvptx/nvptx.md (nvptx_uniform_warp_check): Make fit for - non-full-warp execution, via 'vote.all.pred'. - -2024-06-06 Pan Li - - * match.pd: Add new form for vector mode recog. - * tree-vect-patterns.cc (gimple_unsigned_integer_sat_sub): Add - new match func decl; - (vect_recog_build_binary_gimple_call): Extract helper func to - build gcall with given internal_fn. - (vect_recog_sat_sub_pattern): Add new func impl to recog .SAT_SUB. - -2024-06-06 Michal Jires - - * lto-streamer.cc (lto_get_section_name): Remove suffixes after WPA. - -2024-06-06 Michal Jires - - * lto-opts.cc (lto_write_options): Skip OPT_fltrans_output_list_. - -2024-06-06 Robin Dapp - - * config/riscv/riscv.opt.urls: Regenerate. - -2024-06-06 Hongyu Wang - - * config/i386/i386-expand.cc (ix86_gen_ccmp_first): - Add fp compare and check the allowed fp compare type. - (ix86_gen_ccmp_next): Adjust compare_code input to ccmp for - fp compare. - -2024-06-06 Hongyu Wang - - * ccmp.cc (expand_ccmp_expr_1): Check ret and ret2 of - expand_ccmp_next, returns the valid one first instead of - comparing cost. - -2024-06-06 Hongyu Wang - - * config/i386/i386-expand.cc (ix86_gen_ccmp_first): New function - that test if the first compare can be generated. - (ix86_gen_ccmp_next): New function to emit a simgle compare and ccmp - sequence. - * config/i386/i386-opts.h (enum apx_features): Add apx_ccmp. - * config/i386/i386-protos.h (ix86_gen_ccmp_first): New proto - declare. - (ix86_gen_ccmp_next): Likewise. - (ix86_get_flags_cc): Likewise. - * config/i386/i386.cc (ix86_flags_cc): New enum. - (ix86_ccmp_dfv_mapping): New string array to map conditional - code to dfv. - (ix86_print_operand): Handle special dfv flag for CCMP. - (ix86_get_flags_cc): New function to return x86 CC enum. - (TARGET_GEN_CCMP_FIRST): Define. - (TARGET_GEN_CCMP_NEXT): Likewise. - * config/i386/i386.h (TARGET_APX_CCMP): Define. - * config/i386/i386.md (@ccmp): New define_insn to support - ccmp. - (UNSPEC_APX_DFV): New unspec for ccmp dfv. - (ALL_CC): New mode iterator. - (cstorecc4): Change to ... - (cstore4) ... this, use ALL_CC to loop through all - available CCmodes. - * config/i386/i386.opt (apx_ccmp): Add enum value for ccmp. - -2024-06-06 Richard Biener - - * tree-vect-loop.cc (vectorizable_reduction): Allow - single-lane SLP in-order reductions. - (vectorize_fold_left_reduction): Handle SLP reduction with - conditional reduction op. - -2024-06-06 Richard Biener - - * tree-vect-loop.cc (vect_analyze_scalar_cycles_1): Queue - double reductions in LOOP_VINFO_REDUCTIONS. - (vect_create_epilog_for_reduction): Remove asserts disabling - SLP for double reductions. - (vectorizable_reduction): Analyze SLP double reductions - only once and start off the correct places. - * tree-vect-slp.cc (vect_get_and_check_slp_defs): Allow - vect_double_reduction_def. - (vect_build_slp_tree_2): Fix condition for the ignored - reduction initial values. - * tree-vect-stmts.cc (vect_analyze_stmt): Allow - vect_double_reduction_def. - -2024-06-06 Richard Biener - - * tree-vect-loop.cc (vect_create_epilog_for_reduction): - Adjust for single-lane COND_REDUCTION SLP vectorization. - (vectorizable_reduction): Likewise. - (vect_transform_cycle_phi): Likewise. - -2024-06-06 Richard Biener - - * tree-vect-stmts.cc (vectorizable_condition): Allow - single-lane SLP, but not when we need to swap then and - else clause. - -2024-06-06 YunQiang Su - - * config/mips/mips.cc(mips_insn_cost): Add missing COSTS_N_INSNS - to count. - -2024-06-06 liuhongt - - PR target/114428 - * config/i386/i386.cc (ix86_rtx_costs): Adjust cost for - CONST_VECTOR_DUPLICATE_P in constant_pool. - * config/i386/i386-expand.cc (ix86_broadcast_from_constant): - Remove static. - * config/i386/i386-protos.h (ix86_broadcast_from_constant): - Declare. - -2024-06-06 liuhongt - - PR target/114428 - * simplify-rtx.cc - (simplify_context::simplify_binary_operation_1): - Simplify (AND (ASHIFTRT A imm) mask) to (LSHIFTRT A imm) for - specific mask. - -2024-06-05 Robin Dapp - - * config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED): - Move from here... - * config/riscv/riscv.h (TARGET_VECTOR_MISALIGN_SUPPORTED): - ...to here and map to riscv_vector_unaligned_access_p. - * config/riscv/riscv.opt: Add -mvector-strict-align. - * config/riscv/riscv.cc (struct riscv_tune_param): Add - vector_unaligned_access. - (riscv_override_options_internal): Set - riscv_vector_unaligned_access_p. - * doc/invoke.texi: Document -mvector-strict-align. - -2024-06-05 Tamar Christina - - * config/aarch64/tuning_models/neoversen2.h (neoversen2_tunings): Add - AARCH64_EXTRA_TUNE_AVOID_PRED_RMW. - * config/aarch64/tuning_models/neoversev1.h (neoversev1_tunings): Add - AARCH64_EXTRA_TUNE_AVOID_PRED_RMW. - * config/aarch64/tuning_models/neoversev2.h (neoversev2_tunings): Add - AARCH64_EXTRA_TUNE_AVOID_PRED_RMW. - -2024-06-05 Tamar Christina - - * config/aarch64/aarch64-sve.md (and3, - @aarch64_pred__z, *3_cc, - *3_ptest, aarch64_pred__z, - *3_cc, *3_ptest, - aarch64_pred__z, *3_cc, - *3_ptest, @aarch64_pred_cmp, - *cmp_cc, *cmp_ptest, - @aarch64_pred_cmp_wide, - *aarch64_pred_cmp_wide_cc, - *aarch64_pred_cmp_wide_ptest, @aarch64_brk, - *aarch64_brk_cc, *aarch64_brk_ptest, - @aarch64_brk, *aarch64_brk_cc, - *aarch64_brk_ptest, aarch64_rdffr_z, *aarch64_rdffr_z_ptest, - *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc): Add - new early clobber - alternative. - * config/aarch64/aarch64-sve2.md - (@aarch64_pred_): Likewise. - -2024-06-05 Tamar Christina - - * config/aarch64/aarch64-tuning-flags.def - (AVOID_PRED_RMW): New. - * config/aarch64/aarch64.h (TARGET_SVE_PRED_CLOBBER): New. - * config/aarch64/aarch64.md (pred_clobber): New. - (arch_enabled): Use it. - -2024-06-05 Tamar Christina - - * config/aarch64/aarch64-sve.md (and3, - @aarch64_pred__z, *3_cc, - *3_ptest, aarch64_pred__z, - *3_cc, *3_ptest, - aarch64_pred__z, *3_cc, - *3_ptest, *cmp_ptest, - @aarch64_pred_cmp_wide, - *aarch64_pred_cmp_wide_cc, - *aarch64_pred_cmp_wide_ptest, *aarch64_brk_cc, - *aarch64_brk_ptest, @aarch64_brk, - *aarch64_brk_cc, *aarch64_brk_ptest, aarch64_rdffr_z, - *aarch64_rdffr_z_ptest, *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, - *aarch64_rdffr_cc): Convert to compact syntax. - * config/aarch64/aarch64-sve2.md - (@aarch64_pred_): Likewise. - -2024-06-05 Jakub Jelinek - Frederik Harwath - Sandra Loosemore - - * tree.def (OMP_TILE, OMP_UNROLL): New tree codes. - * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_PARTIAL, - OMP_CLAUSE_FULL and OMP_CLAUSE_SIZES. - * tree.h (OMP_LOOPXFORM_CHECK): Define. - (OMP_LOOPXFORM_LOWERED): Define. - (OMP_CLAUSE_PARTIAL_EXPR): Define. - (OMP_CLAUSE_SIZES_LIST): Define. - * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add entries - for OMP_CLAUSE_{PARTIAL,FULL,SIZES}. - * tree-pretty-print.cc (dump_omp_clause): Handle - OMP_CLAUSE_{PARTIAL,FULL,SIZES}. - (dump_generic_node): Handle OMP_TILE and OMP_UNROLL. Skip printing - loops with NULL OMP_FOR_INIT (node) vector element. - * gimplify.cc (is_gimple_stmt): Handle OMP_TILE and OMP_UNROLL. - (gimplify_omp_taskloop_expr): For SAVE_EXPR use gimplify_save_expr. - (gimplify_omp_loop_xform): New function. - (gimplify_omp_for): Call omp_maybe_apply_loop_xforms and if that - reshuffles what the passed pointer points to, retry or return GS_OK. - Handle OMP_TILE and OMP_UNROLL. - (gimplify_omp_loop): Call omp_maybe_apply_loop_xforms and if that - reshuffles what the passed pointer points to, return GS_OK. - (gimplify_expr): Handle OMP_TILE and OMP_UNROLL. - * omp-general.h (omp_loop_number_of_iterations, - omp_maybe_apply_loop_xforms): Declare. - * omp-general.cc (omp_adjust_for_condition): For LE_EXPR and GE_EXPR - with pointers, don't add/subtract one, but the size of what the - pointer points to. - (omp_loop_number_of_iterations, omp_apply_tile, - find_nested_loop_xform, omp_maybe_apply_loop_xforms): New functions. - -2024-06-05 Kewen Lin - - * config/darwin.cc (darwin_patch_builtins): Use TYPE_PRECISION of - long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. - -2024-06-05 Pan Li - - PR target/51492 - PR target/112600 - * internal-fn.def (SAT_SUB): Add new IFN define for SAT_SUB. - * match.pd: Add new match for SAT_SUB. - * optabs.def (OPTAB_NL): Remove fixed-point for ussub/ssub. - * tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_sub): Add - new decl for generated in match.pd. - (build_saturation_binary_arith_call): Add new helper function - to build the gimple call to binary SAT alu. - (match_saturation_arith): Rename from. - (match_unsigned_saturation_add): Rename to. - (match_unsigned_saturation_sub): Add new func to match the - unsigned sat sub. - (math_opts_dom_walker::after_dom_children): Add SAT_SUB matching - try when COND_EXPR. - -2024-06-05 Gerald Pfeifer - - PR other/69374 - * doc/install.texi (Prerequisites): Drop reference to GNU awk - version 3.1.5. Remove fluff. - -2024-06-05 liuhongt - - PR rtl-optimization/100927 - PR rtl-optimization/115161 - PR rtl-optimization/115115 - * simplify-rtx.cc (simplify_const_unary_operation): Prevent - simplication of FIX/UNSIGNED_FIX for NAN/INF/out-of-range - constant when flag_trapping_math. - * fold-const.cc (fold_convert_const_int_from_real): Don't fold - for overflow value when_trapping_math. - -2024-06-05 Xiao Zeng - - * config/riscv/iterators.md: Add mode_iterator between - floating-point modes and BFmode. - * config/riscv/riscv.cc (riscv_output_move): Handle BFmode move - for zfbfmin. - * config/riscv/riscv.md (truncbf2): New pattern for BFmode. - (extendbfsf2): Dotto. - (*movhf_hardfloat): Add BFmode. - (*mov_hardfloat): Dotto. - -2024-06-04 Jakub Jelinek - - PR tree-optimization/115337 - * gimple-range-op.cc (cfn_clz::fold_range): For - m_gimple_call_internal_p handle as a special case also second argument - of -1 next to prec. - -2024-06-04 Jakub Jelinek - - PR tree-optimization/115337 - * fold-const.cc (tree_call_nonnegative_warnv_p): Handle - CASE_CFN_CTZ like CASE_CFN_CLZ. - -2024-06-04 Jakub Jelinek - - * fold-const.cc (tree_call_nonnegative_warnv_p): Formatting fixes. - (tree_invalid_nonnegative_warnv_p): Likewise. - * gimple-fold.cc (gimple_call_nonnegative_warnv_p): Likewise. - -2024-06-04 Jakub Jelinek - - PR tree-optimization/115337 - * fold-const.cc (tree_call_nonnegative_warnv_p) : - If arg1 is non-NULL, RECURSE on it, otherwise return true. - -2024-06-04 Jakub Jelinek - - PR middle-end/108789 - * builtins.cc (fold_builtin_arith_overflow): For ovf_only, - don't call save_expr and don't build REALPART_EXPR, otherwise - set TREE_SIDE_EFFECTS on call before calling save_expr. - (fold_builtin_addc_subc): Set TREE_SIDE_EFFECTS on call before - calling save_expr. - -2024-06-04 Jakub Jelinek - - * doc/invoke.texi (lujiazui): Clarify that while the CPUs do support - AVX and F16C, -march=lujiazui actually doesn't enable those. - -2024-06-04 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_tree_2): Only multi-lane - discoveries are reduction chains and need special backedge - treatment. - (vect_analyze_slp): Fall back to single-lane SLP discovery - for reductions. Make sure to try single-lane SLP reduction - for all reductions as fallback. - (vectorizable_load): Avoid outer loop SLP vectorization with - multi-copy vector stmts in the inner loop. - (vectorizable_store): Likewise. - * tree-vect-loop.cc (vect_create_epilog_for_reduction): Allow - direct opcode and shift reduction also for SLP reductions - with a single lane. - * tree-vect-stmts.cc (get_group_load_store_type): For SLP also - check for the PR65518 single-element interleaving case as done in - vect_grouped_load_supported. - -2024-06-04 Richard Biener - - * tree-vect-slp.cc (vect_schedule_slp_node): For mask/len - loops make sure to not advance the insertion iterator - beyond a GIMPLE_COND. - -2024-06-03 Jakub Jelinek - - PR target/115324 - * config/rs6000/rs6000-gen-builtins.cc (write_decls): Remove - GTY markup from struct bifdata and struct ovlddata and remove their - fntype members. Change next member in struct ovlddata and - first_instance member of struct ovldrecord to have int type rather - than struct ovlddata *. Remove GTY markup from rs6000_builtin_info - and rs6000_instance_info arrays, declare new - rs6000_builtin_info_fntype and rs6000_instance_info_fntype arrays, - which have GTY markup. - (write_bif_static_init): Adjust for the above changes. - (write_ovld_static_init): Likewise. - (write_init_bif_table): Likewise. - (write_init_ovld_table): Likewise. - * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Likewise. - * config/rs6000/rs6000-c.cc (find_instance): Likewise. Make static. - (altivec_resolve_overloaded_builtin): Adjust for the above changes. - -2024-06-03 David Malcolm - - * diagnostic-format-sarif.cc: Include "ordered-hash-map.h" and - "sbitmap.h". - (enum class diagnostic_artifact_role): New. - (class sarif_artifact): New. - (sarif_builder::maybe_make_artifact_content_object): Make public. - (sarif_builder::m_filenames): Replace with... - (sarif_builder::m_filename_to_artifact_map): ...this. - (sarif_artifact::add_role): New. - (sarif_artifact::populate_contents): New. - (get_artifact_role_string): New. - (sarif_artifact::populate_roles): New. - (sarif_result::on_nested_diagnostic): Pass role to - make_location_object. - (sarif_ice_notification::sarif_ice_notification): Likewise. - (sarif_builder::sarif_builder): Add "main_input_filename_" param. - Mark it as the artifact that the tool was instructed to scan. - (sarif_builder::make_result_object): Pass role to - make_locations_arr. - (sarif_builder::make_locations_arr): Add "role" param and pass it - to make_location_object. - (sarif_builder::make_location_object): Add "role" param and pass - it to maybe_make_physical_location_object. - (sarif_builder::maybe_make_physical_location_object): Add "role" - param and pass it to call to get_or_create_artifact, rather than - adding to now-removed "m_filenames". Flag the artifact for its - contents to be embedded. - (sarif_builder::make_thread_flow_location_object): Pass role to - make_location_object. - (sarif_builder::make_run_object): Update for change from - m_filename to m_filename_to_artifact_map. Call populate_contents - and populate_roles on each artifact_obj. - (sarif_builder::make_artifact_object): Convert to... - (sarif_builder::get_or_create_artifact): ...this, moving addition - of contents to make_run_object, and conditionalizing setting of - sourceLanguage on "role". - (sarif_output_format::sarif_output_format): Add - "main_input_filename_" param and pass to m_builder's ctor. - (sarif_stream_output_format::sarif_stream_output_format): - Likewise. - (sarif_file_output_format::sarif_file_output_format): Likewise. - (diagnostic_output_format_init_sarif_stderr): Add - "main_input_filename_" param and pass to ctor. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - * diagnostic.cc (diagnostic_output_format_init): Add - "main_input_filename_" param and pass to the - diagnostic_output_format_init_sarif_* calls. - * diagnostic.h (diagnostic_output_format_init): Add - main_input_filename_" param to decl. - (diagnostic_output_format_init_sarif_stderr): Likewise. - (diagnostic_output_format_init_sarif_file): Likewise. - (diagnostic_output_format_init_sarif_stream): Likewise. - * gcc.cc (driver_handle_option): Pass main input filename to - diagnostic_output_format_init. - * opts.cc (common_handle_option): Likewise. - -2024-06-03 Eric Botcazou - - * dwarf2out.cc (loc_list_from_tree_1) ; Add const. - : Use a signed comparison for small unsigned types. - Implement wrap-around arithmetics for small integer types. - -2024-06-03 Uros Bizjak - - PR target/115321 - * config/i386/i386.md (bswapsi2): Force operand 1 - to a register also for !TARGET_BSWAP. - -2024-06-03 Aldy Hernandez - - * builtins.cc (expand_builtin_strnlen): Replace value_range use - with int_range_max or irange when appropriate. - (determine_block_size): Same. - * fold-const.cc (minmax_from_comparison): Same. - * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same. - (array_bounds_checker::check_array_ref): Same. - * gimple-fold.cc (size_must_be_zero_p): Same. - * gimple-predicate-analysis.cc (find_var_cmp_const): Same. - * gimple-ssa-sprintf.cc (get_int_range): Same. - (format_integer): Same. - (try_substitute_return_value): Same. - (handle_printf_call): Same. - * gimple-ssa-warn-restrict.cc - (builtin_memref::extend_offset_range): Same. - * graphite-sese-to-poly.cc (add_param_constraints): Same. - * internal-fn.cc (get_min_precision): Same. - * match.pd: Same. - * pointer-query.cc (get_size_range): Same. - * range-op.cc (get_shift_range): Same. - (operator_trunc_mod::op1_range): Same. - (operator_trunc_mod::op2_range): Same. - * range.cc (range_negatives): Same. - * range.h (range_positives): Same. - (range_negatives): Same. - * tree-affine.cc (expr_to_aff_combination): Same. - * tree-data-ref.cc (compute_distributive_range): Same. - (nop_conversion_for_offset_p): Same. - (split_constant_offset): Same. - (split_constant_offset_1): Same. - (dr_step_indicator): Same. - * tree-dfa.cc (get_ref_base_and_extent): Same. - * tree-scalar-evolution.cc (iv_can_overflow_p): Same. - * tree-ssa-math-opts.cc (optimize_spaceship): Same. - * tree-ssa-pre.cc (insert_into_preds_of_block): Same. - * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same. - * tree-ssa-strlen.cc (compare_nonzero_chars): Same. - (dump_strlen_info): Same. - (get_range_strlen_dynamic): Same. - (set_strlen_range): Same. - (maybe_diag_stxncpy_trunc): Same. - (strlen_pass::get_len_or_size): Same. - (strlen_pass::handle_builtin_string_cmp): Same. - (strlen_pass::count_nonzero_bytes_addr): Same. - (strlen_pass::handle_integral_assign): Same. - * tree-switch-conversion.cc (bit_test_cluster::emit): Same. - * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Same. - (vect_do_peeling): Same. - * tree-vect-patterns.cc (vect_get_range_info): Same. - (vect_recog_divmod_pattern): Same. - * tree.cc (get_range_pos_neg): Same. - * value-range.cc (debug): Remove value_range variants. - * value-range.h (value_range): Remove typedef. - * vr-values.cc - (simplify_using_ranges::op_with_boolean_value_range_p): Replace - value_range use with int_range_max or irange when appropriate. - (check_for_binary_op_overflow): Same. - (simplify_using_ranges::legacy_fold_cond_overflow): Same. - (find_case_label_ranges): Same. - (simplify_using_ranges::simplify_abs_using_ranges): Same. - (test_for_singularity): Same. - (simplify_using_ranges::simplify_compare_using_ranges_1): Same. - (simplify_using_ranges::simplify_casted_compare): Same. - (simplify_using_ranges::simplify_switch_using_ranges): Same. - (simplify_conversion_using_ranges): Same. - (simplify_using_ranges::two_valued_val_range_p): Same. - -2024-06-03 Tobias Burnus - - * doc/install.texi (gcn): Fix date of recommended newlib version. - -2024-06-03 Marc Poulhiès - - * config/aarch64/aarch64-ldp-fusion.cc (struct aarch64_pair_fusion): - Use new type name. - -2024-06-03 Marc Poulhiès - - * pair-fusion.h (enum class writeback): Rename to... - (enum class writeback_type): ...this. - (struct pair_fusion): Adjust type name after renaming. - * pair-fusion.cc (pair_fusion_bb_info::track_access): Likewise. - (pair_fusion_bb_info::fuse_pair): Likewise. - (pair_fusion::process_block): Likewise. - -2024-06-03 Richard Biener - - * tree-vect-loop.cc (vect_analyze_loop_1): Avoid extra space - before 'failed'. - -2024-06-03 Richard Biener - - * tree-vect-loop.cc (get_initial_defs_for_reduction): - Always convert neutral_op. - -2024-06-03 liuhongt - - PR target/115299 - * config/i386/i386.cc (ix86_noce_conversion_profitable_p): Add - some preference for floating point ifcvt when SSE4.1 is not - available. - -2024-06-03 Haochen Jiang - - * common/config/i386/i386-common.cc: Change Granite Rapids - series CPU type to P_PROC_AVX10_1_512. - * common/config/i386/i386-cpuinfo.h (enum feature_priority): - Revise comment part. Add P_AVX10_1_256, P_AVX10_1_512, - P_PROC_AVX10_1_512. - * common/config/i386/i386-isas.h: Link to avx10.1-256, avx10.1-512. - -2024-06-03 Lingling Kong - - * config/i386/i386.md (clz2_lzcnt_nf): New define_insn. - (*clz2_lzcnt_falsedep_nf): Ditto. - (__nf): Ditto. - (*__falsedep_nf): Ditto. - (_hi): Ditto. - (popcount2_nf): Ditto. - (*popcount2_falsedep_nf): Ditto. - (popcounthi2): Ditto. - -2024-06-03 Lingling Kong - - * config/i386/i386.md (*mul3_1): New define_insn. - (*mulqi3_1): Ditto. - (*divmod4_noext_nf): Ditto. - (divmodhiqi3): Ditto. - -2024-06-03 Lingling Kong - - * config/i386/i386.md (x86_64_shld): New define_insn. - (x86_64_shld): Ditto. - (x86_64_shld_ndd): Ditto. - (x86_64_shld_1): Ditto. - (x86_64_shld_ndd_1): Ditto. - (*x86_64_shld_shrd_1_nozext_nf): Ditto. - (x86_shld): Ditto. - (x86_shld_ndd): Ditto. - (x86_shld_1): Ditto. - (x86_shld_ndd_1): Ditto. - (*x86_shld_shrd_1_nozext_nf): Ditto. - (3_doubleword_lowpart_nf): Ditto. - (x86_64_shrd): Ditto. - (x86_64_shrd_ndd): Ditto. - (x86_64_shrd_1): Ditto. - (x86_64_shrd_ndd_1): Ditto. - (*x86_64_shrd_shld_1_nozext_nf): Ditto. - (x86_shrd): Ditto. - (x86_shrd_ndd): Ditto. - (x86_shrd_1): Ditto. - (x86_shrd_ndd_1): Ditto. - (*x86_shrd_shld_1_nozext_nf): Ditto. - -2024-06-03 Lingling Kong - - * config/i386/i386.md (ashr3_cvt): New - define_insn. - (*3_1): Ditto. - -2024-06-03 Lingling Kong - - * config/i386/i386.md (*ashr3_1): New - define_insn. - (*lshr3_1): Ditto. - (*lshrqi3_1): Ditto. - (*lshrhi3_1): Ditto. - -2024-06-03 Lingling Kong - - * config/i386/i386.md (*ashl3_1): New - define_insn. - (*ashlhi3_1): Ditto. - (*ashlqi3_1): Ditto. - * config/i386/sse.md: New define_split. - -2024-06-03 Lingling Kong - - * config/i386/i386.md (nf_nonf_attr): New subst_attr. - (nf_nonf_x64_attr): Ditto. - (*sub_1): New define_insn. - (*anddi_1): Ditto. - (*and_1): Ditto. - (*andqi_1): Ditto. - (*_1): Ditto. - (*qi_1): Ditto. - (*neg_1): Ditto. - * config/i386/sse.md: New define_split. - -2024-06-03 Lingling Kong - Hongyu Wong - - * config/i386/i386-opts.h (enum apx_features): Add nf - enumeration. - * config/i386/i386.h (TARGET_APX_NF): New. - * config/i386/i386.md (nf_name): New subst_att. - (nf_prefix): Ditto. - (nf_condition): Ditto. - (nf_mem_constraint): Ditto. - (nf_applied): Ditto. - (nf_subst): Add new define_subst. - (*add_1): New define_insn. - (*addhi_1): Ditto. - (*addqi_1): Diito. - * config/i386/i386.opt: Add apx_nf enumeration. - -2024-06-03 Hu, Lin1 - - PR target/113609 - * config/i386/sse.md - (*kortest_cmp_setcc): New define_insn_and_split. - (*kortest_cmp_jcc): Ditto. - -2024-06-01 Georg-Johann Lay - - PR tree-optimization/115307 - * config/avr/avr.md (SFDF): New mode iterator. - (isinf2) [sf, df]: New expanders. - -2024-06-01 Jeff Law - - * config/riscv/riscv.cc (riscv_integer_op): Add new field. - (riscv_build_integer_1): Initialize the new field. - (riscv_built_integer): Recognize more cases where Zbkb's - pack instruction is profitable. - (riscv_move_integer): Loop over all the codes. If requested, - save the current constant into a temporary. Generate pack - for more cases using the saved constant. - -2024-06-01 Feng Xue - - * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Remove parameter - loop_vinfo. Get input vectype from stmt_info instead of reduction PHI. - (vect_model_reduction_cost): Remove loop_vinfo argument of call to - vect_is_emulated_mixed_dot_prod. - (vect_transform_reduction): Likewise. - (vectorizable_reduction): Likewise, and bind input vectype to - lane-reducing operation. - -2024-06-01 Feng Xue - - * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): New - function. - (vectorizable_reduction): Move partial vectorization checking code to - vect_reduction_update_partial_vector_usage. - -2024-06-01 Feng Xue - - * tree-vectorizer.h (lane_reducing_op_p): New function. - * tree-vect-slp.cc (vect_analyze_slp): Use new function - lane_reducing_op_p to check statement code. - * tree-vect-loop.cc (vect_transform_reduction): Likewise. - (vectorizable_reduction): Likewise, and change name of a local - variable that holds the result flag. - -2024-05-31 Takayuki 'January June' Suwa - - * config/xtensa/xtensa-protos.h (xtensa_expand_call): - Add the third argument as boolean. - (xtensa_expand_epilogue): Remove the first argument. - * config/xtensa/xtensa.cc (xtensa_expand_call): - Add the third argument "sibcall_p", and modify in order to prepend - "(use A0_REG)" to CALL_INSN_FUNCTION_USAGE if the argument is true. - (xtensa_expand_epilogue): Remove the first argument "sibcall_p" and - its conditional clause. - * config/xtensa/xtensa.md (call, call_value, sibcall, sibcall_value): - Append a boolean value to the argument of xtensa_expand_call() - indicating whether it is sibling call or not. - (epilogue): Remove the boolean argument from xtensa_expand_epilogue(), - and then append emitting "(return)". - (sibcall_epilogue): Remove the boolean argument from - xtensa_expand_epilogue(). - -2024-05-31 Takayuki 'January June' Suwa - - * config/xtensa/predicates.md - (subreg_HQI_lowpart_operator, xtensa_sminmax_operator): - New operator predicates. - * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p): - Remove. - * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p): Ditto. - * config/xtensa/xtensa.md - (*addsubx, *extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx): - Revise the output statements by conditional ternary operator rather - than switch-case clause in order to avoid using gcc_unreachable(). - (xtensa_clamps): Reduce to a single pattern definition using the - predicate added above. - (Some split patterns to assist *masktrue_const_bitcmpl): Ditto. - -2024-05-31 Robin Dapp - - * config/riscv/riscv-v.cc (expand_const_vector): Document. - (shuffle_extract_and_slide1up_patterns): Remove. - -2024-05-31 Robin Dapp - - * config/riscv/autovec.md (ctz2): New expander. - (clz2): Ditto. - * config/riscv/generic-vector-ooo.md: Add bitmanip ops to insn - reservation. - * config/riscv/vector-crypto.md: Add VLS modes to insns. - * config/riscv/vector.md: Add bitmanip ops to mode_idx and other - attributes. - -2024-05-31 Robin Dapp - - * config/riscv/autovec-opt.md (*vandn_): New pattern. - * config/riscv/vector.md: Add vandn to mode_idx. - -2024-05-31 Robin Dapp - - * config/riscv/riscv-v.cc (expand_gather_scatter): Use vwsll if - applicable. - * config/riscv/vector-crypto.md: Remove mode from vwsll shift - count operator. - * config/riscv/vector.md: Add vwsll to mode iterator. - -2024-05-31 Robin Dapp - - * config/riscv/autovec-opt.md (*vwsll_zext1_): New - pattern. - (*vwsll_zext2_): Ditto. - (*vwsll_zext1_scalar_): Ditto. - (*vwsll_zext1_trunc_): Ditto. - (*vwsll_zext2_trunc_): Ditto. - (*vwsll_zext1_trunc_scalar_): Ditto. - * config/riscv/vector-crypto.md: Make pattern similar to other - narrowing/widening patterns. - -2024-05-31 Robin Dapp - - * config/riscv/vector.md: Split vwadd.wx/vwsub.wx pattern and - add extended_scalar patterns. - -2024-05-31 Robin Dapp - - PR target/115068 - * config/riscv/vector.md: Split vfw.wf pattern. - -2024-05-31 Qing Zhao - - * tree-object-size.cc (access_with_size_object_size): Use the type - of the 6th argument for the type of the element. - * internal-fn.cc (expand_ACCESS_WITH_SIZE): Update the comment with - the 6th argument. - -2024-05-31 Qing Zhao - - * tree-object-size.cc (access_with_size_object_size): New function. - (call_object_size): Call the new function. - -2024-05-31 Qing Zhao - - * internal-fn.cc (expand_ACCESS_WITH_SIZE): New function. - * internal-fn.def (ACCESS_WITH_SIZE): New internal function. - * tree.cc (is_access_with_size_p): New function. - (get_ref_from_access_with_size): New function. - * tree.h (is_access_with_size_p): New prototype. - (get_ref_from_access_with_size): New prototype. - -2024-05-31 Qing Zhao - - * doc/extend.texi: Document attribute counted_by. - -2024-05-31 Uros Bizjak - - PR target/115297 - * config/alpha/alpha.md (si3): Wrap DImode - operands 3 and 4 with truncate:SI RTX. - (*divmodsi_internal_er): Ditto for operands 1 and 2. - (*divmodsi_internal_er_1): Ditto. - (*divmodsi_internal): Ditto. - * config/alpha/constraints.md ("b"): Correct register - number in the description. - -2024-05-31 Thomas Schwinge - - * config/nvptx/nvptx.h: Configure global constructor, destructor - support. - -2024-05-31 Richard Biener - - PR tree-optimization/115278 - * tree-if-conv.cc (ifcvt_local_dce): Do not DSE volatile stores. - -2024-05-31 Rainer Orth - - * config.gcc: Move ${target_min} from obsolete to unsupported - message. - -2024-05-31 Andrew Pinski - - PR target/115022 - * doc/invoke.texi (fstrub=disable): Fix opindex. - (minline-memops-threshold): Fix opindex. - (mcmodel=): Add opindex and fix them. - * common.opt.urls: Regenerate. - * config/aarch64/aarch64.opt.urls: Regenerate. - * config/bpf/bpf.opt.urls: Regenerate. - * config/i386/i386.opt.urls: Regenerate. - * config/loongarch/loongarch.opt.urls: Regenerate. - * config/nds32/nds32-elf.opt.urls: Regenerate. - * config/nds32/nds32-linux.opt.urls: Regenerate. - * config/or1k/or1k.opt.urls: Regenerate. - * config/riscv/riscv.opt.urls: Regenerate. - * config/rs6000/aix64.opt.urls: Regenerate. - * config/rs6000/linux64.opt.urls: Regenerate. - * config/sparc/sparc.opt.urls: Regenerate. - -2024-05-31 Takayuki 'January June' Suwa - - * config/xtensa/xtensa-protos.h - (xtensa_use_return_instruction_p): Remove. - * config/xtensa/xtensa.cc - (machine_function): Remove "epilogue_done" field. - (xtensa_expand_epilogue): Remove "cfun->machine->epilogue_done" usage. - (xtensa_use_return_instruction_p): Remove. - * config/xtensa/xtensa.md ("return"): - Replace calling "xtensa_use_return_instruction_p()" with inline code. - -2024-05-31 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.cc (xtensa_valid_move, constantpool_address_p, - xtensa_tls_symbol_p, gen_int_relational, xtensa_emit_move_sequence, - xtensa_copy_incoming_a7, xtensa_expand_block_move, - xtensa_expand_nonlocal_goto, xtensa_emit_call, - xtensa_legitimate_address_p, xtensa_legitimize_address, - xtensa_tls_referenced_p, print_operand, print_operand_address, - xtensa_output_literal): - Replace RTX code comparisons with their predicate macros such as - REG_P(). - * config/xtensa/xtensa.h (CONSTANT_ADDRESS_P, - LEGITIMATE_PIC_OPERAND_P): Ditto. - * config/xtensa/xtensa.md (reload_literal, indirect_jump): - Ditto. - -2024-05-31 Martin Uecker - - PR tree-optimization/115157 - PR tree-optimization/115177 - * godump.cc (go_output_typedef): Use TYPE_MAIN_VARIANT instead - of TYPE_CANONICAL. - -2024-05-31 liuhongt - - * config/i386/emmintrin.h (__double_u): Rename from double_u. - (_mm_load_sd): Replace double_u with __double_u. - (_mm_store_sd): Ditto. - (_mm_loadh_pd): Ditto. - (_mm_loadl_pd): Ditto. - * config/i386/xmmintrin.h (__float_u): Rename from float_u. - (_mm_load_ss): Ditto. - (_mm_store_ss): Ditto. - -2024-05-30 Uros Bizjak - - PR target/115102 - * config/i386/i386.md (bswaphi2): Also enable for !TARGET_MOVBE. - (*bswaphi2): New insn pattern. - (bswaphisi2_lowpart): Rename from bswaphi_lowpart. Rewrite - insn RTX to match the expected form of the combine pass. - Remove rol{w} alternative and corresponding attributes. - (bswsaphisi2_lowpart peephole2): New peephole2 pattern to - conditionally convert bswaphisi2_lowpart to rotlhi3_1_slp. - (bswapsi2): Update expander for rename. - (rotlhi3_1_slp splitter): Conditionally split to bswaphi2. - -2024-05-30 Richard Sandiford - - PR rtl-optimization/115281 - * ira-conflicts.cc (go_through_subreg): Use the natural size of - the inner mode rather than the outer mode. - -2024-05-30 Ajit Kumar Agarwal - - * pair-fusion.h: Generic header code for load store pair fusion - that can be shared across different architectures. - * pair-fusion.cc: Generic source code implementation for - load store pair fusion that can be shared across different architectures. - * Makefile.in: Add new object file pair-fusion.o. - * config/aarch64/aarch64-ldp-fusion.cc: Delete generic code and move it - to pair-fusion.cc in the middle-end. - * config/aarch64/t-aarch64: Add header file dependency on pair-fusion.h. - Remove unnecessary header file dependency. - -2024-05-30 Rainer Orth - - PR c++/115031 - * config/sparc/sol2.h (GGC_QUIRE_SIZE): Define as 510. - -2024-05-30 David Malcolm - - * Makefile.in (OBJS-libcommon): Add text-art/tree-widget.o. - * doc/analyzer.texi: Rewrite discussion of dumping state to - cover the text_art::tree_widget-based dumps, with a more - interesting example. - * text-art/dump-widget-info.h: New file. - * text-art/dump.h: New file. - * text-art/selftests.cc (selftest::text_art_tests): Call - text_art_tree_widget_cc_tests. - * text-art/selftests.h (selftest::text_art_tree_widget_cc_tests): - New decl. - * text-art/theme.cc (ascii_theme::get_cppchar): Handle the various - cell_kind::TREE_*. - (unicode_theme::get_cppchar): Likewise. - * text-art/theme.h (enum class theme::cell_kind): Add - TREE_CHILD_NON_FINAL, TREE_CHILD_FINAL, TREE_X_CONNECTOR, and - TREE_Y_CONNECTOR. - * text-art/tree-widget.cc: New file. - * text-art/tree-widget.h: New file. - -2024-05-30 liuhongt - - * config/i386/sse.md (vcond_mask_): New expander. - -2024-05-30 liuhongt - - PR tree-optimization/112325 - * tree-ssa-loop-ivcanon.cc (estimated_unrolled_size): Move the - 2 / 3 loop body size reduction to .. - (try_unroll_loop_completely): .. here, add it for the check of - body size shrink, and the check of comparison against - param_max_completely_peeled_insns when - (!cunrolli ||loop->inner). - (canonicalize_loop_induction_variables): Add new parameter - cunrolli and pass down. - (tree_unroll_loops_completely_1): Ditto. - (canonicalize_induction_variables): Pass cunrolli as false to - canonicalize_loop_induction_variables. - (tree_unroll_loops_completely): Set cunrolli to true at - beginning and set it to false after CHANGED is true. - -2024-05-30 Alexandre Oliva - - * doc/sourcebuild.texi (dg-additional-sources): Document - newly-added support for target selectors, and implicit discard - on non-linking tests that name the compiler output explicitly. - -2024-05-30 Jiawei - - * tree-ssa-pre.cc (create_component_ref_by_pieces_1): New conditions. - -2024-05-30 Hans-Peter Nilsson - - Revert: - 2024-05-28 Hans-Peter Nilsson - - * resource.cc: Include cfgrtl.h. Use BLOCK_FOR_INSN (insn)->index - instead of calling find_basic_block (insn). Assert for not -1. - (find_basic_block): Remove function. - (init_resource_info): Call compute_bb_for_insn. - (free_resource_info): Call free_bb_for_insn. - -2024-05-30 Hans-Peter Nilsson - - Revert: - 2024-05-28 Hans-Peter Nilsson - - * resource.cc (mark_target_live_regs): Remove redundant check for b - being -1, after gcc_assert. - -2024-05-30 Hans-Peter Nilsson - - Revert: - 2024-05-28 Hans-Peter Nilsson - - * resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't - check for non-null target_hash_table and bb_ticks. - (mark_target_live_regs): Ditto. Replace check for non-NULL result from - BLOCK_FOR_INSN with a call to gcc_assert. Fold code conditioned on - tinfo != NULL. - -2024-05-29 YunQiang Su - - * config/mips/mips.cc(mips16_gp_pseudo_reg): Mark - MIPS16_PIC_TEMP and MIPS_PROLOGUE_TEMP clobbered. - (mips_emit_call_insn): Mark MIPS16_PIC_TEMP and - MIPS_PROLOGUE_TEMP clobbered if MIPS16 and CALL_CLOBBERED_GP. - -2024-05-29 Andrew Pinski - - PR tree-optimization/115224 - * generic-match-head.cc (bitwise_inverted_equal_p): Add `a ^ CST` - case. - * gimple-match-head.cc (gimple_bit_xor_cst): New declaration. - (gimple_bitwise_inverted_equal_p): Add `a ^ CST` case. - * match.pd (bit_xor_cst): New match. - (maybe_bit_not): Add bit_xor_cst case. - -2024-05-29 Andrew Pinski - - * match.pd (bit_not_with_nop): Unconditionalize. - (maybe_cmp): Likewise. - (maybe_bit_not): New match pattern. - (`~X & X`): Use maybe_bit_not and add `:c` back. - (`~x ^ x`/`~x | x`): Likewise. - -2024-05-29 Richard Sandiford - - PR target/115258 - * config/aarch64/aarch64-simd.md (aarch64_combinev16qi): Allow - the split before reload. - * config/aarch64/aarch64.cc (aarch64_split_combinev16qi): Generalize - into a form that handles pseudo registers. - -2024-05-29 Feng Xue - - * tree-vect-loop.c : Removed. - -2024-05-29 Feng Xue - - * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Move - initialization of bbs to explicit construction code. Adjust the - definition of nbbs. - (update_epilogue_loop_vinfo): Update nbbs for epilog vinfo. - * tree-vect-patterns.cc (vect_determine_precisions): Make - loop_vec_info and bb_vec_info share same code. - (vect_pattern_recog): Remove duplicated vect_pattern_recog_1 loop. - * tree-vect-slp.cc (vect_get_and_check_slp_defs): Access to bbs[0] - via base vec_info class. - (_bb_vec_info::_bb_vec_info): Initialize bbs and nbbs using data - fields of input auto_vec<> bbs. - (vect_slp_region): Use access to nbbs to replace original - bbs.length(). - (vect_schedule_slp_node): Access to bbs[0] via base vec_info class. - * tree-vectorizer.cc (vec_info::vec_info): Add initialization of - bbs and nbbs. - (vec_info::insert_seq_on_entry): Access to bbs[0] via base vec_info - class. - * tree-vectorizer.h (vec_info): Add new fields bbs and nbbs. - (LOOP_VINFO_NBBS): New macro. - (BB_VINFO_BBS): Rename BB_VINFO_BB to BB_VINFO_BBS. - (BB_VINFO_NBBS): New macro. - (_loop_vec_info): Remove field bbs. - (_bb_vec_info): Rename field bbs. - * tree-vect-loop.c: New file. - -2024-05-29 Jeff Law - - * config/riscv/crypto.md (riscv_xpack___2): Remove '*' - allow it to be used via the gen_* interface. - * config/riscv/riscv.cc (riscv_build_integer): Identify when Zbkb - can be used to profitably synthesize repeating constants. - (riscv_move_integer): Codegen changes to generate those Zbkb sequences. - -2024-05-29 Jason Merrill - - * doc/invoke.texi: Update module extension docs. - -2024-05-29 Tobias Burnus - - * config/gcn/gcn-hsa.h (gcn_local_sym_hash): Fix typo. - -2024-05-29 Richard Biener - - PR tree-optimization/115252 - * tree-vect-stmts.cc (get_group_load_store_type): Enhance - detecting the number of cases where we can avoid accessing a gap - during code generation. - (vectorizable_load): Remove old half-vector peeling for gap - avoidance which is now redundant. Add gap-aligned case where - it's OK to access the gap. Add assert that we have peeling for - gaps enabled when we access a gap. - -2024-05-29 Richard Biener - - PR tree-optimization/114435 - * tree-predcom.cc (tree_predictive_commoning): Queue - the next scalar cleanup sub-pipeline to be run when we - did something. - -2024-05-29 Hongyu Wang - - PR target/113719 - * config/i386/i386-options.cc (ix86_override_options_after_change): - Remove call to ix86_default_align and - ix86_recompute_optlev_based_flags. - (ix86_option_override_internal): Call ix86_default_align and - ix86_recompute_optlev_based_flags. - -2024-05-29 liuhongt - - * config/i386/i386.cc (ix86_avoid_jump_mispredicts): Change - gen_pad to gen_max_skip_align. - (ix86_align_loops): New function. - (ix86_reorg): Call ix86_align_loops. - * config/i386/i386.md (pad): Rename to .. - (max_skip_align): .. this, and accept 2 operands for align and - skip. - -2024-05-29 Haochen Jiang - - * config/i386/x86-tune-costs.h (generic_cost): Change from - 16:11:8 to 16. - -2024-05-29 Andrew MacLeod - - * gimple-range-gori.cc (gori_on_edge): Always use static ranges - from the specified range_query. - * gimple-range-gori.h (gori_on_edge): Change prototype. - * gimple-range.cc (dom_ranger::maybe_push_edge): Change arguments - to call. - -2024-05-29 Kewen Lin - - PR target/114846 - * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): As - EPILOGUE_TYPE_EH_RETURN would be passed as epilogue_type directly - now, adjust the relevant handlings on it. - * config/rs6000/rs6000.md (eh_return expander): Append by calling - gen_eh_return_internal and emit_barrier. - (eh_return_internal): New define_insn_and_split, call function - rs6000_emit_epilogue with epilogue type EPILOGUE_TYPE_EH_RETURN. - -2024-05-28 liuhongt - - PR target/67325 - * config/i386/i386.cc (ix86_rtx_costs): Reduce cost of MEM (A - + imm) to "cost of MEM (A)" + 1. - -2024-05-28 Andrew MacLeod - - * gimple-range.cc (dom_ranger::dom_ranger): Do not initialize m_out. - (dom_ranger::maybe_push_edge): Use gori () rather than m_out. - * gimple-range.h (dom_ranger::m_out): Remove. - * tree-vrp.cc (remove_unreachable::remove_unreachable): Use a - range-query ranther than a gimple_ranger. - (remove_unreachable::remove): New. - (remove_unreachable::m_ranger): Change to a range_query. - (remove_unreachable::handle_early): If there is no dependency - information, do nothing. - (remove_unreachable::remove_and_update_globals): Do not update - globals if there is no dependecy info to use. - -2024-05-28 Hans-Peter Nilsson - - * resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't - check for non-null target_hash_table and bb_ticks. - (mark_target_live_regs): Ditto. Replace check for non-NULL result from - BLOCK_FOR_INSN with a call to gcc_assert. Fold code conditioned on - tinfo != NULL. - -2024-05-28 Hans-Peter Nilsson - - * resource.cc (mark_target_live_regs): Remove redundant check for b - being -1, after gcc_assert. - -2024-05-28 Hans-Peter Nilsson - - * resource.cc: Include cfgrtl.h. Use BLOCK_FOR_INSN (insn)->index - instead of calling find_basic_block (insn). Assert for not -1. - (find_basic_block): Remove function. - (init_resource_info): Call compute_bb_for_insn. - (free_resource_info): Call free_bb_for_insn. - -2024-05-28 Hans-Peter Nilsson - - PR rtl-optimization/115182 - * resource.cc (mark_target_live_regs): Don't look for - unconditional branches after the target to improve on the - register liveness. - (find_dead_or_set_registers): Remove unused function. - -2024-05-28 Uros Bizjak - - * config/i386/sync.md (atomic_loaddi_fpu): Use movd/pextrd - to move DImode value from XMM to GPR for TARGET_SSE4_1. - (atomic_storedi_fpu): Use movd/pinsrd to move DImode value - from GPR to XMM for TARGET_SSE4_1. - -2024-05-28 David Malcolm - - * diagnostic-color.cc: Define INCLUDE_VECTOR. - Include "label-text.h" and "selftest.h". - (struct color_cap): Replace with... - (struct color_default): ...this, adding "m_" prefixes to fields - and dropping "name_len" and "free_val" field. - (color_dict): Convert to... - (gcc_color_defaults): ...this, making const, dropping the trailing - strlen and "false" from each entry. - (class diagnostic_color_dict): New. - (g_color_dict): New. - (colorize_start): Reimplement in terms of g_color_dict. - (diagnostic_color_dict::get_entry_by_name): New, based on - colorize_start. - (diagnostic_color_dict::get_start_by_name): Likewise. - (diagnostic_color_dict::diagnostic_color_dict): New. - (parse_gcc_colors): Reimplement, moving body... - (diagnostic_color_dict::parse_envvar_value): ...here. - (colorize_init): Lazily create g_color_dict. - (selftest::test_empty_color_dict): New. - (selftest::test_default_color_dict): New. - (selftest::test_color_dict_envvar_parsing): New. - (selftest::diagnostic_color_cc_tests): New. - * selftest-run-tests.cc (selftest::run_tests): Call - selftest::diagnostic_color_cc_tests. - * selftest.h (selftest::diagnostic_color_cc_tests): New decl. - -2024-05-28 David Malcolm - - * function-tests.cc: Include "selftest-tree.h". - * selftest-tree.h: New file. - * selftest.h (make_fndecl): Move to selftest-tree.h. - -2024-05-28 David Malcolm - - * config/v850/v850.opt.urls: Regenerate, with fix. - * config/vax/vax.opt.urls: Likewise. - * regenerate-opt-urls.py (TARGET_SPECIFIC_PAGES): Fix transposed - values for "vax" and "v850". - -2024-05-28 Andrew MacLeod - - PR tree-optimization/115221 - * gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Do - not invoke SCEV is range_query's do not match. - -2024-05-28 Andrew MacLeod - - * tree-ssa-strlen.cc (strlen_pass::strlen_pass): Add function - pointer and initialize ptr_qry with current range_query. - (strlen_pass::m_ranger): Remove. - (printf_strlen_execute): Enable and disable ranger. - -2024-05-28 David Malcolm - - PR analyzer/115203 - * diagnostic-path.h - (simple_diagnostic_path::disable_event_localization): New. - (simple_diagnostic_path::m_localize_events): New field. - * diagnostic.cc - (simple_diagnostic_path::simple_diagnostic_path): Initialize - m_localize_events. - (simple_diagnostic_path::add_event): Only localize fmt if - m_localize_events is true. - * tree-diagnostic-path.cc - (test_diagnostic_path::test_diagnostic_path): Call - disable_event_localization. - -2024-05-28 David Malcolm - - PR bootstrap/115167 - * Makefile.in (C_COMMON_OBJS): Add c-family/c-type-mismatch.o. - * gcc-rich-location.cc - (maybe_range_label_for_tree_type_mismatch::get_text): Move to - c-family/c-type-mismatch.cc. - (binary_op_rich_location::binary_op_rich_location): Likewise. - (binary_op_rich_location::use_operator_loc_p): Likewise. - * gcc-rich-location.h (class range_label_for_type_mismatch): - Likewise. - (class maybe_range_label_for_tree_type_mismatch): Likewise. - (class op_location_t): Likewise for forward decl. - (class binary_op_rich_location): Likewise. - -2024-05-28 Lyut Nersisyan - - * config/riscv/crypto.md: Add new combiner patterns to generate - pack, packh, packw instrutions. - * config/riscv/iterators.md (HX): New iterator for half X mode. - * config/riscv/riscv.md (_shift_reverse): Tighten - cases to avoid. Do not lose bits for XOR/IOR. - -2024-05-28 Feng Xue - - PR tree-optimization/115060 - * tree-vect-patterns.cc (vect_get_internal_def): Return statement for - vectorization. - (vect_widened_op_tree): Call vect_get_internal_def instead of look_def - to get statement information. - (vect_recog_widen_abd_pattern): No need to call vect_stmt_to_vectorize. - -2024-05-28 Richard Biener - - PR tree-optimization/115236 - * tree-ssa-structalias.cc (build_pred_graph): Properly - handle *ANYTHING = X. - (build_succ_graph): Likewise. Do not elide direct nodes - from receiving from STOREDANYTHING. - -2024-05-28 Richard Biener - - * tree-ssa-structalias.cc (find_func_aliases): Use - get_constraint_for_address_of to build escape constraints - for asm inputs and outputs. - -2024-05-28 Richard Biener - - PR tree-optimization/115254 - * tree-vect-slp.cc (vect_build_slp_tree): Only account - multi-lane SLP to limit. - -2024-05-28 Richard Biener - - * tree-vect-loop.cc (get_initial_defs_for_reduction): Convert - neutral op to the vector component type. - -2024-05-28 liuhongt - - * config/i386/sse.md - (___mask): Align - operands' predicate with corresponding expander. - (__): - Ditto. - -2024-05-28 Xi Ruoyao - - PR target/115169 - * config/loongarch/loongarch.cc - (loongarch_expand_conditional_move): Guard REGNO with REG_P. - -2024-05-27 Andrew Pinski - - PR tree-optimization/115238 - * generic-match-head.cc (bitwise_inverted_equal_p): Use - uniform_integer_cst_p instead of checking INTEGER_CST. - * gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Likewise. - -2024-05-27 Gaius Mulley - - * doc/gm2.texi: Replace all occurrences of xref - {foo, , , gm2} with xref {foo}. - -2024-05-27 Richard Biener - - * tree-ssa-structalias.cc (scc_visit): Mark the node we - collapse to as being in a component. - -2024-05-27 Richard Biener - - PR tree-optimization/115220 - PR tree-optimization/115226 - * tree-ssa-sink.cc (statement_sink_location): When ignoring - paths to kills when sinking stores make sure the final - sink location is still post-dominated by the original one. - Otherwise we'd need to insert a PHI node to merge virtual operands. - -2024-05-27 TheShermanTanker - - * config/mingw/mingw32.h: Add new define for POSIX - threads. - -2024-05-27 Richard Biener - - PR tree-optimization/115232 - * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle - failure to demangle gracefully. - -2024-05-27 Gerald Pfeifer - - * doc/gm2.texi (What is GNU Modula-2): Move gcc.gnu.org links to - https. - (Other languages): Ditto. And fix casing of GCC. - -2024-05-27 Liao Shihua - - * config/riscv/riscv.cc (riscv_rtx_costs): Add TARGET_ZMMUL. - -2024-05-27 Maciej W. Rozycki - - * doc/invoke.texi (Option Summary): Add `-md', `-md-float', and - `-mg-float' options. Reorder, matching VAX Options. - (VAX Options): Reword the description of `-mg' option. Add - `-md', `-md-float', and `-mg-float' options. - -2024-05-27 Abe Skolnik - - PR target/79646 - * config/vax/vax.opt (md, md-float, mg, mg-float): Correct - descriptions. - -2024-05-27 Lyut Nersisyan - - * config/riscv/riscv.md (_shift_reverse): New pattern. - -2024-05-27 Levy Hsu - H.J. Lu - - PR target/115146 - * config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): Replace arithmatic shift - gen_ashrv4hi3 with logic shift gen_lshrv4hi3. - Replace gen_vlshrv8hi3 with gen_lshrv8hi3 and gen_vashlv8hi3 with gen_ashlv8hi3. - -2024-05-27 Pan Li - - * genmatch.cc (dt_node::gen_kids_1): Fix indenet mis-aligned. - -2024-05-26 Jeff Law - - * config/riscv/riscv.cc (riscv_build_integer_one): Verify there - are no bits left to set in the constant when generating bseti. - (riscv_built_integer): Synthesize ~value and if it's cheap use it - with a trailing xori with -1. - -2024-05-26 Gerald Pfeifer - - * doc/extend.texi (Attribute Syntax): Use @samp{=} instead of @code{=}. - (Extended Asm): Ditto. - -2024-05-26 Jeff Law - - * config/riscv/riscv.cc (riscv_build_integer_1): Try generating - a nearby simpler constant, then using a final addi to set low - bits properly. - -2024-05-26 Andrew MacLeod - - PR tree-optimization/115208 - * value-query.cc (range_query::create_gori): Confirm gori_map is NULL. - (range_query::destroy_gori): Free gori_map if one was allocated. - -2024-05-25 Jeff Law - - * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Handle - more logical simplifications. - -2024-05-24 Jeff Law - - * config/riscv/predicates.md (arith_operand_or_mode_mask): Renamed to.. - (arith_or_mode_mask_or_zbs_operand): New predicate. - * config/riscv/riscv.md (and3): Update predicate for operand 2. - * config/riscv/riscv.cc (riscv_build_integer_1): Use bclri to clear - bits, particularly bits 31..63 when profitable to do so. - -2024-05-24 Richard Sandiford - - PR tree-optimization/115192 - * tree-data-ref.cc (create_intersect_range_checks): Take the - alignment of the access sizes into account. - -2024-05-24 Gaius Mulley - - * doc/gm2.texi: Replace all occurrences of xref {, , , gm2} - with xref {, , , m2}. - -2024-05-24 Manolis Tsamis - - * match.pd: Allow no-op view_convert between permutes. - -2024-05-24 Richard Biener - - PR tree-optimization/115144 - * tree-ssa-sink.cc (do_not_sink): New function, split out - from ... - (select_best_block): Here. First pick valid block to - sink to. From that search for the best valid block, - avoiding sinking across conditions to exceptional code. - (sink_code_in_bb): When updating vuses of stores in - paths we do not sink a store to make sure we didn't - pick a dominating sink location. - -2024-05-24 Andrew Pinski - - * tree-ssa-phiprop.cc (phiprop_insert_phi): Add - dce_ssa_names argument. Add the phi's result to it. - (propagate_with_phi): Add dce_ssa_names argument. - Update call to phiprop_insert_phi. - (pass_phiprop::execute): Update call to propagate_with_phi. - Call simple_dce_from_worklist if there was a change. - -2024-05-24 Richard Biener - - * tree-vect-slp.cc (vect_build_slp_instance): Do not split - store dataref groups on loop SLP discovery failure but create - a single SLP instance for the stores but branch to SLP sub-trees - and merge with a series of VEC_PERM nodes. - -2024-05-23 Andrew MacLeod - - * gimple-range-edge.h (range_query::condexpr_adjust): Delete. - * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use - gori_ssa routine. - (fold_using_range::range_of_address): Likewise. - (fold_using_range::range_of_phi): Likewise. - (fold_using_range::condexpr_adjust): Relocated from gori_compute. - (fold_using_range::range_of_cond_expr): Use local condexpr_adjust. - (fur_source::register_outgoing_edges): Use gori_ssa routine. - * gimple-range-fold.h (gori_ssa): Rename from gori_bb. - (fold_using_range::condexpr_adjust): Add prototype. - * gimple-range-gori.cc (gori_compute::condexpr_adjust): Relocate. - * gimple-range-gori.h (gori_compute::condexpr_adjust): Delete. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::ranger_cache): Use gori_ssa. - (ranger_cache::dump): Likewise. - (ranger_cache::get_global_range): Likewise. - (ranger_cache::set_global_range): Likewise. - (ranger_cache::register_inferred_value): Likewise. - * gimple-range-edge.h (gimple_outgoing_range::map): Remove. - * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use - gori_ssa. - (fold_using_range::range_of_address): Likewise. - (fold_using_range::range_of_phi): Likewise. - (fur_source::register_outgoing_edges): Likewise. - * gimple-range-fold.h (fur_source::query): Make const. - (gori_ssa): New. - * gimple-range-gori.cc (gori_map::dump): Use 'this' pointer. - (gori_compute::gori_compute): Construct with a gori_map. - * gimple-range-gori.h (gori_compute:gori_compute): Change - prototype. - (gori_compute::map): Delete. - (gori_compute::m_map): Change to a reference. - (FOR_EACH_GORI_IMPORT_NAME): Change parameter gori to gorimap. - (FOR_EACH_GORI_EXPORT_NAME): Likewise. - * gimple-range-path.cc (path_range_query::compute_ranges_in_block): - Use gori_ssa method. - (path_range_query::compute_exit_dependencies): Likewise. - * gimple-range.cc (gimple_ranger::range_of_stmt): Likewise. - (gimple_ranger::register_transitive_inferred_ranges): Likewise. - * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): - Likewise. - * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise. - * tree-vrp.cc (remove_unreachable::handle_early): Likewise. - (remove_unreachable::remove_and_update_globals): Likewise. - * value-query.cc (range_query::create_gori): Create gori map. - (range_query::share_query): Copy gori map member. - (range_query::range_query): Initiialize gori_map member. - * value-query.h (range_query::gori_ssa): New. - (range_query::m_map): New. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::ranger_cache): Create - GORi via the range_query instead of a local member. - (ranger_cache::dump_bb): Use gori via from the range_query parent. - (ranger_cache::get_global_range): Likewise. - (ranger_cache::set_global_range): Likewise. - (ranger_cache::edge_range): Likewise. - (anger_cache::block_range): Likewise. - (ranger_cache::fill_block_cache): Likewise. - (ranger_cache::range_from_dom): Likewise. - (ranger_cache::register_inferred_value): Likewise. - * gimple-range-cache.h (ranger_cache::m_gori): Delete. - * gimple-range-fold.cc (fur_source::fur_source): Set m_depend_p. - (fur_depend::fur_depend): Remove gori parameter. - * gimple-range-fold.h (fur_source::gori): Adjust. - (fur_source::m_gori): Delete. - (fur_source::m_depend): New. - (fur_depend::fur_depend): Adjust prototype. - * gimple-range-path.cc (path_range_query::path_range_query): Share - ranger oracles. - (path_range_query::range_defined_in_block): Use oracle directly. - (path_range_query::compute_ranges_in_block): Use new gori() method. - (path_range_query::adjust_for_non_null_uses): Use oracle directly. - (path_range_query::compute_exit_dependencies): Likewise. - (jt_fur_source::jt_fur_source): No gori in the parameters. - (path_range_query::range_of_stmt): Likewise. - (path_range_query::compute_outgoing_relations): Likewise. - * gimple-range.cc (gimple_ranger::fold_range_internal): Likewise. - (gimple_ranger::range_of_stmt): Access gori via gori () method. - (assume_query::range_of_expr): Create a gori object. - (assume_query::~assume_query): Destroy a gori object. - (assume_query::calculate_op): Remove old gori() accessor. - * gimple-range.h (gimple_ranger::gori): Delete. - (assume_query::~assume_query): New. - (assume_query::m_gori): Delete. - * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): use - gori () method. - * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise. - * value-query.cc (default_gori): New. - (range_query::create_gori): New. - (range_query::destroy_gori): New. - (range_query::share_oracles): Set m_gori. - (range_query::range_query): Set m_gori to default. - (range_query::~range_query): call destroy gori. - * value-query.h (range_query): Adjust prototypes - (range_query::m_gori): New. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust - m_gori constructor. - (ranger_cache::edge_range): Use renamed edge_range_p name. - (ranger_cache::range_from_dom): Likewise. - * gimple-range-edge.h (gimple_outgoing_range::condexpr_adjust): New. - (gimple_outgoing_range::has_edge_range_p): New. - (gimple_outgoing_range::dump): New. - (gimple_outgoing_range::compute_operand_range): New. - (gimple_outgoing_range::map): New. - * gimple-range-fold.cc (fur_source::register_outgoing_edges ): Use - renamed edge_range_p routine - * gimple-range-gori.cc (gori_compute::gori_compute): Adjust - constructor. - (gori_compute::~gori_compute): New. - (gori_compute::edge_range_p): Rename from outgoing_edge_range_p - and use inherited routine instead of member method. - * gimple-range-gori.h (class gori_compute): Inherit from - gimple_outgoing_range, adjust protoypes. - (gori_compute::outgpoing): Delete. - * gimple-range-path.cc (path_range_query::compute_ranges_in_block): Use - renamed edge_range_p routine. - * tree-ssa-loop-unswitch.cc (evaluate_control_stmt_using_entry_checks): - Likewise. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::ranger_cache): Access - gori_map via member call. - (ranger_cache::dump_bb): Likewise. - (ranger_cache::get_global_range): Likewise. - (ranger_cache::set_global_range): Likewise. - (ranger_cache::register_inferred_value): Likewise. - * gimple-range-fold.cc (fold_using_range::range_of_range_op): Likewise. - (fold_using_range::range_of_address): Likewise. - (fold_using_range::range_of_phi): Likewise. - * gimple-range-gori.cc (gori_compute::compute_operand_range_switch): - likewise. - (gori_compute::compute_operand_range): Likewise. - (gori_compute::compute_logical_operands): Likewise. - (gori_compute::refine_using_relation): Likewise. - (gori_compute::compute_operand1_and_operand2_range): Likewise. - (gori_compute::may_recompute_p): Likewise. - (gori_compute::has_edge_range_p): Likewise. - (gori_compute::outgoing_edge_range_p): Likewise. - (gori_compute::condexpr_adjust): Likewise. - * gimple-range-gori.h (class gori_compute): Do not inherit from - gori_map. - (gori_compute::m_map): New. - * gimple-range-path.cc (gimple-range-path.cc): Use gori_map member. - (path_range_query::compute_exit_dependencies): Likewise. - * gimple-range.cc (gimple_ranger::range_of_stmt): Likewise. - (gimple_ranger::register_transitive_inferred_ranges): Likewise. - * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): Likewise. - * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise. - * tree-vrp.cc (remove_unreachable::handle_early): Likewise. - (remove_unreachable::remove_and_update_globals): Likewise. - -2024-05-23 Andrew MacLeod - - * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range): - Do not allocate a range allocator at construction time. - (gimple_outgoing_range::~gimple_outgoing_range): Delete allocator - if one was allocated. - (gimple_outgoing_range::set_switch_limit): New. - (gimple_outgoing_range::switch_edge_range): Create an allocator if one - does not exist. - (gimple_outgoing_range::edge_range_p): Check for zero edges. - * gimple-range-edge.h (class gimple_outgoing_range): Adjust prototypes. - -2024-05-23 Andrew MacLeod - - PR tree-optimization/113879 - * gimple-range-fold.cc (op1_range): New. - (op2_range): New. - * gimple-range-fold.h (op1_range): New prototypes. - (op2_range): New prototypes. - * gimple-range-infer.cc (gimple_infer_range::add_range): Do not - add an inferred range if it is VARYING. - (gimple_infer_range::gimple_infer_range): Add inferred ranges - for any range-op statements if requested. - * gimple-range-infer.h (gimple_infer_range): Add parameter. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::ranger_cache): Create an infer - oracle instead of a local member. - (ranger_cache::~ranger_cache): Destroy the oracle. - (ranger_cache::edge_range): Use oracle. - (ranger_cache::fill_block_cache): Likewise. - (ranger_cache::range_from_dom): Likewise. - (ranger_cache::apply_inferred_ranges): Likewise. - * gimple-range-cache.h (ranger_cache::m_exit): Delete. - * gimple-range-infer.cc (infer_oracle): New static object; - (class infer_oracle): New. - (non_null_wrapper::non_null_wrapper): New. - (non_null_wrapper::add_nonzero): New. - (non_null_wrapper::add_range): New. - (non_null_loadstore): Use nonnull_wrapper. - (gimple_infer_range::gimple_infer_range): New alternate constructor. - (exit_range::stmt): New. - (infer_range_manager::has_range_p): Combine seperate methods. - (infer_range_manager::maybe_adjust_range): Adjust has_range_p call. - (infer_range_manager::add_ranges): New. - (infer_range_manager::add_range): Take stmt rather than BB. - (infer_range_manager::add_nonzero): Adjust from BB to stmt. - * gimple-range-infer.h (class gimple_infer_range): Adjust methods. - (infer_range_oracle): New. - (class infer_range_manager): Inherit from infer_range_oracle. - Adjust methods. - * gimple-range-path.cc (path_range_query::range_defined_in_block): Use - oracle. - (path_range_query::adjust_for_non_null_uses): Likewise. - * gimple-range.cc (gimple_ranger::range_on_edge): Likewise - (gimple_ranger::register_transitive_inferred_ranges): Likewise. - * value-query.cc (default_infer_oracle): New. - (range_query::create_infer_oracle): New. - (range_query::destroy_infer_oracle): New. - (range_query::share_query): Copy infer pointer. - (range_query::range_query): Initialize infer pointer. - (range_query::~range_query): destroy infer object. - * value-query.h (range_query::infer_oracle): New. - (range_query::create_infer_oracle): New prototype. - (range_query::destroy_infer_oracle): New prototype. - (range_query::m_infer): New. - -2024-05-23 Andrew MacLeod - - * gimple-range.cc (gimple_ranger::gimple_ranger): Share the - components from ranger_cache. - (gimple_ranger::~gimple_ranger): Don't clear pointer. - * value-query.cc (range_query::share_query): New. - (range_query::range_query): Clear shared component flag. - (range_query::~range_query): Don't free shared component copies. - * value-query.h (share_query): New prototype. - (m_shared_copy_p): New member. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::dump_bb): Use m_relation. - (ranger_cache::fill_block_cache): Likewise - * gimple-range-fold.cc (fur_stmt::get_phi_operand): Use new names. - (fur_depend::register_relation): Likewise. - (fold_using_range::range_of_phi): Likewise. - * gimple-range-path.cc (path_range_query::path_range_query): Likewise. - (path_range_query::~path_range_query): Likewise. - (ath_range_query::compute_ranges): Likewise. - (jt_fur_source::register_relation): Likewise. - (jt_fur_source::query_relation): Likewise. - (path_range_query::maybe_register_phi_relation): Likewise. - * gimple-range-path.h (get_path_oracle): Likewise. - * gimple-range.cc (gimple_ranger::gimple_ranger): Likewise. - (gimple_ranger::~gimple_ranger): Likewise. - * value-query.cc (range_query::create_relation_oracle): Likewise. - (range_query::destroy_relation_oracle): Likewise. - (range_query::share_oracles): Likewise. - (range_query::range_query): Likewise. - * value-query.h (value_query::relation): Rename from oracle. - (m_relation): Rename from m_oracle. - * value-relation.cc (relation_oracle::query): Rename from - query_relation. - (equiv_oracle::query): Likewise. - (equiv_oracle::record): Rename from register_relation. - (relation_oracle::record): Likewise. - (dom_oracle::record): Likewise. - (dom_oracle::query): Rename from query_relation. - (path_oracle::record): Rename from register_relation. - (path_oracle::query): Rename from query_relation. - * value-relation.h (*::record): Rename from register_relation. - (*::query): Rename from query_relation. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::dump_bb): Remove check for - NULL oracle pointer. - (ranger_cache::fill_block_cache): Likewise. - * gimple-range-fold.cc (fur_stmt::get_phi_operand): Likewise. - (fur_depend::fur_depend): Likewise. - (fur_depend::register_relation): Likewise, use qury_relation. - (fold_using_range::range_of_phi): Likewise. - (fold_using_range::relation_fold_and_or): Likewise. - * gimple-range-fold.h (fur_source::m_oracle): Delete. Oracle - can be accessed dirctly via m_query now. - * gimple-range-path.cc (path_range_query::path_range_query): - Adjust for oracle reference pointer. - (path_range_query::compute_ranges): Likewise. - (jt_fur_source::jt_fur_source): Adjust for no m_oracle member. - (jt_fur_source::register_relation): Do not check for NULL - pointer. - (jt_fur_source::query_relation): Likewise. - * gimple-range.cc (gimple_ranger::gimple_ranger): Adjust for - reference pointer. - * value-query.cc (default_relation_oracle): New. - (range_query::create_relation_oracle): Relocate from header. - Ensure not being added to global query. - (range_query::destroy_relation_oracle): Relocate from header. - (range_query::range_query): Initailize to default oracle. - (ange_query::~range_query): Call destroy_relation_oracle. - * value-query.h (class range_query): Adjust prototypes. - (range_query::create_relation_oracle): Move to source file. - (range_query::destroy_relation_oracle): Move to source file. - * value-relation.cc (relation_oracle::validate_relation): Delete. - (relation_oracle::register_stmt): Rename to register_relation. - (relation_oracle::register_edge): Likewise. - * value-relation.h (register_stmt): Rename to register_relation and - provide default function in base class. - (register_edge): Likewise. - (relation_oracle::validate_relation): Delete. - (relation_oracle::query_relation): Provide default in base class. - (relation_oracle::dump): Likewise. - (relation_oracle::equiv_set): Likewise. - (default_relation_oracle): New extenal reference. - (partial_equiv_set, add_partial_equiv): Move to protected. - -2024-05-23 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::ranger_cache): Call - create_relation_oracle. - (ranger_cache::~ranger_cache): Call destroy_relation_oracle. - * gimple-range-fold.cc (fur_stmt::get_phi_operand): Check for - relation oracle bnefore calling query_relation. - (fold_using_range::range_of_phi): Likewise. - * gimple-range-path.cc (path_range_query::~path_range_query): Set - relation oracle pointer to NULL when done. - * gimple-range.cc (gimple_ranger::~gimple_ranger): Likewise. - * value-query.cc (range_query::~range_query): Ensure any - relation oracle is destroyed. - (range_query::query_relation): relocate to relation_oracle object. - * value-query.h (class range_query): Adjust method proototypes. - (range_query::create_relation_oracle): New. - (range_query::destroy_relation_oracle): New. - * value-relation.cc (relation_oracle::query_relation): Relocate - from range query class. - * value-relation.h (Call relation_oracle): New prototypes. - -2024-05-23 Pan Li - - * generic-match-head.cc (types_match): Add overloaded types_match - for 3 types. - * gimple-match-head.cc (types_match): Ditto. - * match.pd: Leverage overloaded types_match. - -2024-05-23 Richard Biener - - PR tree-optimization/115197 - * tree-loop-distribution.cc (copy_loop_before): Constant PHI - args remain the same. - -2024-05-23 Richard Biener - - PR tree-optimization/115199 - * tree-ssa-structalias.cc (process_constraint): Also - record &ANYTHING = X as *ANYTING = X in the end. - -2024-05-23 Richard Biener - - PR tree-optimization/115138 - * tree-ssa-alias.cc (ptrs_compare_unequal): Make sure - pt.vars_contains_nonlocal differs since we do not represent - FUNCTION_DECLs or LABEL_DECLs in vars explicitly. - -2024-05-23 Stefan Schulze Frielinghaus - - PR target/109549 - * config/s390/s390.cc (TARGET_NOCE_CONVERSION_PROFITABLE_P): - Define. - (s390_noce_conversion_profitable_p): Implement. - -2024-05-23 Aldy Hernandez - - PR tree-optimization/115191 - * tree-ssa-phiopt.cc (value_replacement): Use Value_Range instead - of int_range_max. - -2024-05-23 Andrew Pinski - Joel Jones - Wei Zhao - - * config/aarch64/aarch64-cores.def (oryon-1): New entry. - * config/aarch64/aarch64-tune.md: Regenerate. - * doc/invoke.texi (AArch64 Options): Document oryon-1. - -2024-05-22 Pengxuan Zheng - - PR target/102171 - * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_HIGH_BUILTINS): - New macro to create definitions for all vget_high intrinsics. - (VGET_HIGH_BUILTIN): Likewise. - (enum aarch64_builtins): Add vget_high function codes. - (AARCH64_SIMD_VGET_LOW_BUILTINS): Delete duplicate macro. - (aarch64_general_fold_builtin): Fold vget_high calls. - * config/aarch64/aarch64-simd-builtins.def: Delete vget_high builtins. - * config/aarch64/aarch64-simd.md (aarch64_get_high): Delete. - (aarch64_vget_hi_halfv8bf): Likewise. - * config/aarch64/arm_neon.h (__attribute__): Delete. - (vget_high_f16): Likewise. - (vget_high_f32): Likewise. - (vget_high_f64): Likewise. - (vget_high_p8): Likewise. - (vget_high_p16): Likewise. - (vget_high_p64): Likewise. - (vget_high_s8): Likewise. - (vget_high_s16): Likewise. - (vget_high_s32): Likewise. - (vget_high_s64): Likewise. - (vget_high_u8): Likewise. - (vget_high_u16): Likewise. - (vget_high_u32): Likewise. - (vget_high_u64): Likewise. - (vget_high_bf16): Likewise. - -2024-05-22 Eric Botcazou - - PR rtl-optimization/115038 - * fold-mem-offsets.cc (fold_offsets): Return 0 if the defining - instruction of the register is frame related. - -2024-05-22 Roger Sayle - - * config/i386/i386.cc (ix86_rtx_costs) : - A CONST_INT that isn't x86_64_immediate_operand requires an extra - (expensive) movabsq insn to load, so return COSTS_N_INSNS (1) + 1. - -2024-05-22 Roger Sayle - - * except.cc (output_function_exception_table): Move call to - get_personality_function after targetm_common.except_unwind_info - check, to avoid ICE on targets that don't support exceptions. - -2024-05-22 Richard Biener - - * tree-vect-slp.cc (change_vec_perm_layout): Ignore an - input partition of -1. - -2024-05-22 Richard Biener - - * tree-vect-slp.cc (vect_schedule_slp_node): Avoid looking - at SLP_REPRESENTATIVE for VEC_PERM nodes. - -2024-05-22 Richard Biener - - * tree-vect-stmts.cc (vect_check_store_rhs): Look at *rhs - only when it's a vec_constant_def. - (vect_is_simple_use): When we have no representative for - an internal node, fill in *op with error_mark_node. - -2024-05-22 Richard Biener - - * doc/invoke.texi (C++ Modules): Fix typo. - -2024-05-22 Jakub Jelinek - - PR tree-optimization/115152 - * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes_addr): If - !si->full_string_p, clear *nulterm and set maxlen to nbytes. - -2024-05-22 Jakub Jelinek - - PR sanitizer/115172 - * ubsan.cc (instrument_bool_enum_load): If rhs is not in generic - address space, use qualified version of utype with the right - address space. Formatting fix. - -2024-05-22 Haochen Jiang - - PR target/115069 - * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): - Do not enable the optimization when AVX512BW is not enabled. - -2024-05-21 Vineet Gupta - - * config/riscv/riscv.cc (riscv_expand_epilogue): Handle offset - being sum of two S12. - -2024-05-21 Vineet Gupta - - PR target/105733 - * config/riscv/riscv.h: New macros for with aligned offsets. - * config/riscv/riscv.cc (riscv_split_sum_of_two_s12): New - function to split a sum of two s12 values into constituents. - (riscv_expand_prologue): Handle offset being sum of two S12. - (riscv_expand_epilogue): Ditto. - * config/riscv/riscv-protos.h (riscv_split_sum_of_two_s12): New. - -2024-05-21 Andrew Pinski - - PR tree-optimization/115154 - * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)): Disable - for 1bit signed types. - -2024-05-21 Richard Biener - - PR tree-optimization/115137 - * tree-ssa-structalias.cc (pt_solution_includes_const_pool): NONLOCAL - also includes constant pool entries. - -2024-05-21 Richard Sandiford - - * hard-reg-set.h (target_hard_regs::x_eh_return_data_regs): New field. - (eh_return_data_regs): New macro. - * reginfo.cc (init_reg_sets_1): Initialize x_eh_return_data_regs. - * df-scan.cc (df_get_exit_block_use_set): Use it. - * ira-lives.cc (process_out_of_region_eh_regs): Likewise. - -2024-05-21 Richard Biener - - PR tree-optimization/115149 - * tree-ssa-live.cc (virtual_operand_live::get_live_in): - Explicitly track the first processed edge. - -2024-05-21 liuhongt - - PR target/114427 - * config/i386/i386-expand.cc (expand_vec_perm_even_odd_pack): - Use pblendw instead of pand to clear upper bits. - -2024-05-21 Kewen Lin - - * config/rs6000/rs6000.md (@ieee_128bit_vsx_neg2): Remove - the use of operands[3]. - (@ieee_128bit_vsx_neg2): Likewise. - (*ieee_128bit_vsx_nabs2): Likewise. - -2024-05-21 Kewen Lin - - * config/rs6000/rs6000.md (mode attribute rreg): Remove useless - entries with modes TF, TD, V4SF and V2DF. - -2024-05-21 Kewen Lin - - * config/rs6000/vector.md (define_expand vector_load_): Remove. - (vector_store_): Likewise. - -2024-05-21 Kewen Lin - - * config/rs6000/rs6000-call.cc (rs6000_darwin64_record_arg_recurse): - Clean up TFmode and TDmode check with FLOAT128_2REG_P. - -2024-05-21 Kewen Lin - - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove - useless check on TARGET_P8_VECTOR && !TARGET_ALTIVEC and add an - assertion on !TARGET_VSX if !TARGET_ALTIVEC. - -2024-05-21 Kewen Lin - - PR target/114402 - * config/rs6000/rs6000.cc (rs6000_generate_compare): Make IEEE128 - handling without vsx go with libcall. - -2024-05-20 Andrew Pinski - - PR tree-optimization/115143 - * tree-ssa-phiopt.cc (minmax_replacement): Check for empty - phi nodes for middle bbs for the case where middle bb is not empty. - -2024-05-20 Pengxuan Zheng - - PR target/102171 - * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_LOW_BUILTINS): - New macro to create definitions for all vget_low intrinsics. - (VGET_LOW_BUILTIN): Likewise. - (enum aarch64_builtins): Add vget_low function codes. - (aarch64_general_fold_builtin): Fold vget_low calls. - * config/aarch64/aarch64-simd-builtins.def: Delete vget_low builtins. - * config/aarch64/aarch64-simd.md (aarch64_get_low): Delete. - (aarch64_vget_lo_halfv8bf): Likewise. - * config/aarch64/arm_neon.h (__attribute__): Delete. - (vget_low_f16): Likewise. - (vget_low_f32): Likewise. - (vget_low_f64): Likewise. - (vget_low_p8): Likewise. - (vget_low_p16): Likewise. - (vget_low_p64): Likewise. - (vget_low_s8): Likewise. - (vget_low_s16): Likewise. - (vget_low_s32): Likewise. - (vget_low_s64): Likewise. - (vget_low_u8): Likewise. - (vget_low_u16): Likewise. - (vget_low_u32): Likewise. - (vget_low_u64): Likewise. - (vget_low_bf16): Likewise. - -2024-05-20 Wilco Dijkstra - - * config/aarch64/aarch64.cc (aarch64_rtx_costs): Improve CTZ costing. - -2024-05-20 Wilco Dijkstra - - * config/aarch64/aarch64.md (movsi_aarch64): Use '\;' to force - newline in 2-instruction pattern. - (movdi_aarch64): Likewise. - -2024-05-20 Ajit Kumar Agarwal - - * config/aarch64/aarch64-ldp-fusion.cc: Rename generic parts of code - to avoid "ldp" and "stp". - -2024-05-20 Mark Wielaard - - * config/riscv/riscv.opt.urls: Regenerate. - * config/i386/i386.opt.urls: Likewise. - -2024-05-20 Ajit Kumar Agarwal - - * config/aarch64/aarch64-ldp-fusion.cc: Factor out a - target-independent interface and move it to the head of the file - -2024-05-20 YunQiang Su - - * config/mips/mips.cc(mips_option_override): - Drop mips_lra_flag variable; - (mips_lra_p): Removed. - (TARGET_LRA_P): Remove definition here to use the default one. - * config/mips/mips.md(*mul_acc_si, *mul_acc_si_r3900, *mul_sub_si): - Drop mips_lra_flag variable. - * config/mips/mips.opt(-mlra): Removed. - * config/mips/mips.opt.urls(mlra): Removed. - -2024-05-20 Haochen Jiang - - * common/config/i386/cpuinfo.h - (get_intel_cpu): Remove Xeon Phi cpus. - (get_available_features): Remove Xeon Phi ISAs. - * common/config/i386/i386-common.cc - (OPTION_MASK_ISA_AVX512PF_SET): Removed. - (OPTION_MASK_ISA_AVX512ER_SET): Ditto. - (OPTION_MASK_ISA2_AVX5124FMAPS_SET): Ditto. - (OPTION_MASK_ISA2_AVX5124VNNIW_SET): Ditto. - (OPTION_MASK_ISA_PREFETCHWT1_SET): Ditto. - (OPTION_MASK_ISA_AVX512F_UNSET): Remove AVX512PF and AVX512ER. - (OPTION_MASK_ISA_AVX512PF_UNSET): Removed. - (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto. - (OPTION_MASK_ISA2_AVX5124FMAPS_UNSET): Ditto. - (OPTION_MASK_ISA2_AVX5124VNNIW_UNSET): Ditto. - (OPTION_MASK_ISA_PREFETCHWT1_UNSET): Ditto. - (OPTION_MASK_ISA2_AVX512F_UNSET): Remove AVX5124FMAPS and - AVX5125VNNIW. - (ix86_handle_option): Remove Xeon Phi options. - (processor_names): Remove Xeon Phi cpus. - (processor_alias_table): Ditto. - * common/config/i386/i386-cpuinfo.h - (enum processor_types): Ditto. - (enum processor_features): Remove Xeon Phi ISAs. - * common/config/i386/i386-isas.h: Ditto. - * config.gcc: Remove Xeon Phi cpus and ISAs. - * config/i386/avx5124fmapsintrin.h: Remove intrin support. - * config/i386/avx5124vnniwintrin.h: Ditto. - * config/i386/avx512erintrin.h: Ditto. - * config/i386/avx512pfintrin.h: Ditto. - * config/i386/cpuid.h (bit_AVX512PF): Removed. - (bit_AVX512ER): Ditto. - (bit_PREFETCHWT1): Ditto. - (bit_AVX5124VNNIW): Ditto. - (bit_AVX5124FMAPS): Ditto. - * config/i386/driver-i386.cc - (host_detect_local_cpu): Remove Xeon Phi. - * config/i386/i386-builtin-types.def: Remove unused types. - * config/i386/i386-builtin.def (BDESC): Remove builtins. - * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins): Ditto. - * config/i386/i386-c.cc (ix86_target_macros_internal): Remove Xeon - Phi cpus and ISAs. - * config/i386/i386-expand.cc (ix86_expand_builtin): Remove Xeon Phi - related handlers. - (ix86_emit_swdivsf): Ditto. - (ix86_emit_swsqrtsf): Ditto. - * config/i386/i386-isa.def: Remove Xeon Phi ISAs. - * config/i386/i386-options.cc (m_KNL): Removed. - (m_KNM): Ditto. - (isa2_opts): Remove Xeon Phi ISAs. - (isa_opts): Ditto. - (processor_cost_table): Remove Xeon Phi cpus. - (ix86_valid_target_attribute_inner_p): Remove Xeon Phi ISAs. - (ix86_option_override_internal): Remove Xeon Phi related handlers. - * config/i386/i386-rust.cc (ix86_rust_target_cpu_info): Remove Xeon - Phi ISAs. - * config/i386/i386.cc (ix86_hard_regno_mode_ok): Remove Xeon Phi - related handler. - * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): Removed. - (enum processor_type): Remove Xeon Phi cpus. - * config/i386/i386.md (prefetch): Remove PREFETCHWT1. - (*prefetch_3dnow): Ditto. - (*prefetch_prefetchwt1): Removed. - * config/i386/i386.opt: Remove Xeon Phi ISAs. - * config/i386/immintrin.h: Ditto. - * config/i386/sse.md (VF1_AVX512ER_128_256): Removed. - (rsqrt2): Change iterator from VF1_AVX512ER_128_256 to - VF1_128_256. - (GATHER_SCATTER_SF_MEM_MODE): Removed. - (avx512pf_gatherpfsf): Ditto. - (*avx512pf_gatherpfsf_mask): Ditto. - (avx512pf_gatherpfdf): Ditto. - (*avx512pf_gatherpfdf_mask): Ditto. - (avx512pf_scatterpfsf): Ditto. - (*avx512pf_scatterpfsf_mask): Ditto. - (avx512pf_scatterpfdf): Ditto. - (*avx512pf_scatterpfdf_mask): Ditto. - (exp22): Ditto. - (avx512er_exp2): Ditto. - (avx512er_rcp28): - Ditto. - (avx512er_vmrcp28): Ditto. - (avx512er_rsqrt28): - Ditto. - (avx512er_vmrsqrt28): Ditto. - (IMOD4): Ditto. - (imod4_narrow): Ditto. - (mov): Ditto. - (*mov_internal): Ditto. - (avx5124fmaddps_4fmaddps): Ditto. - (avx5124fmaddps_4fmaddps_mask): Ditto. - (avx5124fmaddps_4fmaddps_maskz): Ditto. - (avx5124fmaddps_4fmaddss): Ditto. - (avx5124fmaddps_4fmaddss_mask): Ditto. - (avx5124fmaddps_4fmaddss_maskz): Ditto. - (avx5124fmaddps_4fnmaddps): Ditto. - (avx5124fmaddps_4fnmaddps_mask): Ditto. - (avx5124fmaddps_4fnmaddps_maskz): Ditto. - (avx5124fmaddps_4fnmaddss): Ditto. - (avx5124fmaddps_4fnmaddss_mask): Ditto. - (avx5124fmaddps_4fnmaddss_maskz): Ditto. - (avx5124vnniw_vp4dpwssd): Ditto. - (avx5124vnniw_vp4dpwssd_mask): Ditto. - (avx5124vnniw_vp4dpwssd_maskz): Ditto. - (avx5124vnniw_vp4dpwssds): Ditto. - (avx5124vnniw_vp4dpwssds_mask): Ditto. - (avx5124vnniw_vp4dpwssds_maskz): Ditto. - * config/i386/x86-tune-sched.cc (ix86_issue_rate): Remove Xeon Phi cpus. - (ix86_adjust_cost): Ditto. - * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Ditto. - (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto. - (X86_TUNE_MOVX): Ditto. - (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto. - (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto. - (X86_TUNE_FOUR_JUMP_LIMIT): Ditto. - (X86_TUNE_USE_INCDEC): Ditto. - (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto. - (X86_TUNE_OPT_AGU): Ditto. - (X86_TUNE_AVOID_LEA_FOR_ADDR): Ditto. - (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Ditto. - (X86_TUNE_USE_SAHF): Ditto. - (X86_TUNE_USE_CLTD): Ditto. - (X86_TUNE_USE_BT): Ditto. - (X86_TUNE_ONE_IF_CONV_INSN): Ditto. - (X86_TUNE_EXPAND_ABS): Ditto. - (X86_TUNE_USE_SIMODE_FIOP): Ditto. - (X86_TUNE_EXT_80387_CONSTANTS): Ditto. - (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto. - (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto. - (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Ditto. - (X86_TUNE_SLOW_PSHUFB): Ditto. - (X86_TUNE_EMIT_VZEROUPPER): Removed. - * config/i386/xmmintrin.h (enum _mm_hint): Remove _MM_HINT_ET1. - * doc/extend.texi: Remove Xeon Phi. - * doc/invoke.texi: Ditto. - -2024-05-20 Pan Li - - * dse.cc (get_stored_val): Make sure read_mode/write_mode - is valid subreg before gen_lowpart. - -2024-05-19 Jeff Law - - PR target/115142 - * config/riscv/riscv.cc (mem_shadd_or_shadd_rtx_p): Make sure - shifted argument is a register. - -2024-05-19 Eric Botcazou - - * optabs-query.cc (can_mult_highpart_p): Test for the existence of - a wider mode instead of requiring it. - -2024-05-19 Roger Sayle - - * config/nvptx/nvptx.md (popcount2): Split into... - (popcountsi2): define_insn handling SImode popcount. - (popcountdi2): define_insn handling DImode popcount, with an - explicit truncate:SI to produce an SImode result. - -2024-05-18 Palmer Dabbelt - - * config/riscv/riscv.opt: Add -mno-fence-tso. - * config/riscv/sync-rvwmo.md (mem_thread_fence_rvwmo): Respect - -mno-fence-tso. - * doc/invoke.texi (RISC-V): Document -mno-fence-tso. - -2024-05-18 Jeff Law - - * config/riscv/riscv.md: Add new patterns to allow selection - between (x << C1) + C2 vs (x + C2') << C1 depending on the - cost C2 vs C2'. - -2024-05-18 Xiao Zeng - - * config/riscv/riscv.cc (riscv_legitimize_move): Optimize movbf - with Nan-boxing value. - * config/riscv/riscv.md (*movhf_softfloat_boxing): Expand movbf - with Nan-boxing value. - (*mov_softfloat_boxing): Ditto. - with Nan-boxing value. - (*movbf_softfloat_boxing): Delete abandon pattern. - -2024-05-18 Xiao Zeng - - * config/riscv/riscv-builtins.cc (riscv_init_builtin_types): - Modify _Bfloat16 to __bf16. - * config/riscv/riscv.cc (riscv_mangle_type): Ditto. - -2024-05-18 Pan Li - - PR target/51492 - PR target/112600 - * config/riscv/autovec.md (usadd3): New pattern expand for - the unsigned SAT_ADD in vector mode. - * config/riscv/riscv-protos.h (riscv_expand_usadd): New func decl - to expand usadd3 pattern. - (expand_vec_usadd): Ditto but for vector. - * config/riscv/riscv-v.cc (emit_vec_saddu): New func impl to emit - the vsadd insn. - (expand_vec_usadd): New func impl to expand usadd3 for vector. - * config/riscv/riscv.cc (riscv_expand_usadd): New func impl to - expand usadd3 for scalar. - * config/riscv/riscv.md (usadd3): New pattern expand for - the unsigned SAT_ADD in scalar mode. - * config/riscv/vector.md: Allow VLS mode for vsaddu. - -2024-05-17 David Malcolm - - * common.opt.urls: Regenerate to add - fdiagnostics-show-event-links. - -2024-05-17 Robin Dapp - - * config/riscv/riscv-protos.h (struct common_vector_cost): Add - segment_permute cost. - * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): - Handle segment loads/stores. - * config/riscv/riscv.cc: Initialize segment_permute_[2-8] to 1. - -2024-05-17 Robin Dapp - - PR middle-end/113474 - * internal-fn.cc (expand_vec_cond_mask_optab_fn): Remove - force_regs. - -2024-05-17 Tom Tromey - - * dwarf2out.cc (gen_namespace_die): Use DW_TAG_module for Ada. - -2024-05-17 David Malcolm - - * common.opt (fdiagnostics-show-event-links): New option. - * diagnostic-label-effects.h: New file. - * diagnostic-path.h (diagnostic_event::connect_to_next_event_p): - New pure virtual function. - (simple_diagnostic_event::connect_to_next_event_p): Implement it. - (simple_diagnostic_event::connect_to_next_event): New. - (simple_diagnostic_event::m_connected_to_next_event): New field. - (simple_diagnostic_path::connect_to_next_event): New decl. - * diagnostic-show-locus.cc: Include "text-art/theme.h" and - "diagnostic-label-effects.h". - (colorizer::set_cfg_edge): New. - (layout::m_fallback_theme): New field. - (layout::m_theme): New field. - (layout::m_effect_info): New field. - (layout::m_link_lhs_state): New enum and field. - (layout::m_link_rhs_column): New field. - (layout_range::has_in_edge): New. - (layout_range::has_out_edge): New. - (layout::layout): Add "effect_info" optional param. Initialize - m_theme, m_link_lhs_state, and m_link_rhs_column. - (layout::maybe_add_location_range): Remove stray "FIXME" from - leading comment. - (layout::print_source_line): Replace space after margin with a - call to print_leftmost_column. - (layout::print_leftmost_column): New. - (layout::start_annotation_line): Make non-const. Gain - responsibility for printing the leftmost column after the margin. - (layout::print_annotation_line): Drop pp_space, as this is now - added by start_annotation_line. - (line_label::line_label): Add "has_in_edge" and "has_out_edge" - params and initialize... - (line_label::m_has_in_edge): New field. - (line_label::m_has_out_edge): New field. - (layout::print_any_labels): Pass edge information to line_label - ctor. Keep track of in-edges and out-edges, adding visualizations - of these links between labels. - (layout::print_leading_fixits): Drop pp_character, as this is now - added by start_annotation_line. - (layout::print_trailing_fixits): Fix off-by-one errors in column - calculation. - (layout::move_to_column): Add comment about debugging. - (layout::show_ruler): Make non-const. Drop pp_space calls, as - this is now added by start_annotation_line. - (layout::print_line): Call print_any_right_to_left_edge_lines. - (layout::print_any_right_to_left_edge_lines): New. - (layout::update_any_effects): New. - (gcc_rich_location::add_location_if_nearby): Initialize - loc_range.m_label. - (diagnostic_context::maybe_show_locus): Add "effects" param and - pass it to diagnostic_context::show_locus. - (diagnostic_context::show_locus): Add "effects" param, passing it - to layout's ctor. Call update_any_effects on the layout after - printing the lines. - (selftest::test_layout_x_offset_display_utf8): Update expected - result for eliminated trailing newline. - (selftest::test_layout_x_offset_display_utf8): Likewise. - (selftest::test_layout_x_offset_display_tab): Likewise. - * diagnostic.cc (diagnostic_context::initialize): Initialize - m_source_printing.show_event_links_p. - (simple_diagnostic_path::connect_to_next_event): New. - (simple_diagnostic_event::simple_diagnostic_event): Initialize - m_connected_to_next_event. - * diagnostic.h (class diagnostic_source_effect_info): New forward - decl. - (diagnostic_source_printing_options::show_event_links_p): New - field. - (diagnostic_context::maybe_show_locus): Add optional "effect_info" - param. - (diagnostic_context::show_locus): Add "effect_info" param. - (diagnostic_show_locus): Add optional "effect_info" param. - * doc/invoke.texi: Add -fno-diagnostics-show-event-links. - * lto-wrapper.cc (merge_and_complain): Add - OPT_fdiagnostics_show_event_links to switch. - (append_compiler_options): Likewise. - (append_diag_options): Likewise. - * opts-common.cc (decode_cmdline_options_to_array): Add - "-fno-diagnostics-show-event-links" to -fdiagnostics-plain-output. - * opts.cc (common_handle_option): Add case for - OPT_fdiagnostics_show_event_links. - * text-art/theme.cc (ascii_theme::get_cppchar): Handle - cell_kind::CFG_*. - (unicode_theme::get_cppchar): Likewise. - * text-art/theme.h (theme::cell_kind): Add CFG_*. - * toplev.cc (general_init): Initialize - global_dc->m_source_printing.show_event_links_p. - * tree-diagnostic-path.cc: Define INCLUDE_ALGORITHM, - INCLUDE_MEMORY, and INCLUDE_STRING. Include - "diagnostic-label-effects.h". - (path_label::path_label): Initialize m_effects. - (path_label::get_effects): New. - (class path_label::path_label_effects): New. - (path_label::m_effects): New field. - (class per_thread_summary): Add "friend struct event_range;". - (per_thread_summary::per_thread_summary): Initialize m_last_event. - (per_thread_summary::m_last_event): New field. - (struct event_range::per_source_line_info): New. - (event_range::event_range): Make "t" non-const. Add - "show_event_links" param and use it to initialize - m_show_event_links. Add info for initial event. - (event_range::get_per_source_line_info): New. - (event_range::maybe_add_event): Verify compatibility of the new - label and existing labels with respect to the link-printing code. - Update per-source-line info when an event is added. - (event_range::print): Add"effect_info" param and pass to - diagnostic_show_locus. - (event_range::m_per_thread_summary): Make non-const. - (event_range::m_source_line_info_map): New field. - (event_range::m_show_event_links): New field. - (path_summary::path_summary): Add "show_event_links" optional - param, passing it to event_range ctor calls. Update - pts.m_last_event. - (thread_event_printer::print_swimlane_for_event_range): Add - "effect_info" param and pass it to range->print. - (print_path_summary_as_text): Keep track of the column for any - out-edges at the end of printing each event_range and use as - the leading in-edge for the next event_range. - (default_tree_diagnostic_path_printer): Pass in show_event_links_p - to path_summary ctor. - (selftest::path_events_have_column_data_p): New. - (class selftest::control_flow_test): New. - (selftest::test_control_flow_1): New. - (selftest::test_control_flow_2): New. - (selftest::test_control_flow_3): New. - (selftest::assert_cfg_edge_path_streq): New. - (ASSERT_CFG_EDGE_PATH_STREQ): New macro. - (selftest::test_control_flow_4): New. - (selftest::test_control_flow_5): New. - (selftest::test_control_flow_6): New. - (selftest::control_flow_tests): New. - (selftest::tree_diagnostic_path_cc_tests): Disable colorization on - global_dc's printer. Convert event_pp to a std::unique_ptr. Call - control_flow_tests via for_each_line_table_case. - (gen_command_line_string): Likewise. - -2024-05-17 Uros Bizjak - - PR middle-end/112600 - * config/i386/mmx.md (3): New expander. - * config/i386/sse.md - (_3): - Rename expander to 3. - (3): Update for rename. - * config/i386/i386-builtin.def: Update for rename. - -2024-05-17 Aldy Hernandez - - PR middle-end/115131 - * value-range.cc (prange::intersect): Set VARYING if intersection - of bitmasks made the range span the entire domain. - (range_tests_misc): New test. - -2024-05-17 Alexander Monakov - - PR c++/114480 - * tree-into-ssa.cc (prune_unused_phi_nodes): Add dfs_out entries - to the 'defs' array in the reverse order. - -2024-05-17 Aldy Hernandez - - PR middle-end/115128 - * ipa-cp.cc (ipa_value_range_from_jfunc): Check for undefined_p - before looking at type. - (propagate_vr_across_jump_function): Same. - -2024-05-17 Richard Biener - - PR middle-end/115110 - * tree-ssa-alias.cc (view_converted_memref_p): Fix. - -2024-05-17 Eric Botcazou - - * expmed.h (expmed_mult_highpart_optab): Declare. - * expmed.cc (expmed_mult_highpart_optab): Remove static keyword. - Do not assume that OP1 is a constant integer. Fix pasto. - (expmed_mult_highpart): Pass OP1 narrowed to MODE in all the calls - to expmed_mult_highpart_optab. - * optabs-query.cc (can_mult_highpart_p): Use 2 for integer widening - and shift subsequent values accordingly. - * optabs.cc (expand_mult_highpart): Call expmed_mult_highpart_optab - when can_mult_highpart_p returns 2 and adjust to above change. - -2024-05-17 Richard Biener - - * tree-ssa-alias.h (pt_solution_includes_const_pool): Declare. - * tree-ssa-alias.cc (ptrs_compare_unequal): Use - pt_solution_includes_const_pool. - * tree-ssa-structalias.cc (pt_solution_includes_const_pool): New. - -2024-05-17 Alexandre Oliva - - * common.opt (freg-struct-return): Make it explicitly - fpcc-struct-return's NegativeAlias. Copy Optimization... - (freg-struct-return): ... here. - -2024-05-17 Pan Li - - * config/riscv/.riscv.cc.swo: Removed. - * config/riscv/j: Removed. - -2024-05-16 Pan Li - - * config/riscv/autovec-opt.md(*vcond_mask_len_popcount_): - New pattern of vcond_mask_len_popcount for vector bool mode. - * config/riscv/autovec.md (vcond_mask_len_): New pattern of - vcond_mask_len for vector bool mode. - (cbranch4): New pattern for vector bool mode. - * config/riscv/vector-iterators.md: Add new unspec UNSPEC_SELECT_MASK. - * config/riscv/vector.md (@pred_popcount): Add VLS mode - to popcount pattern. - (@pred_popcount): Ditto. - -2024-05-16 Jan Hubicka - - PR ipa/113787 - * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p): Do not - look into TARGET_MEM_REFS with constant opreand 0. - -2024-05-16 Richard Biener - - PR tree-optimization/13962 - PR tree-optimization/96564 - * tree-ssa-alias.h (pt_solution::const_pool): New flag. - * tree-ssa-alias.cc (ptrs_compare_unequal): Handle pointer-pointer - compares. - (dump_points_to_solution): Dump the const_pool flag, fix guard - of flag dumping. - * gimple-pretty-print.cc (pp_points_to_solution): Likewise. - * tree-ssa-structalias.cc (find_what_var_points_to): Set - the const_pool flag for STRING. - (pt_solution_ior_into): Handle the const_pool flag. - (ipa_escaped_pt): Initialize it. - -2024-05-16 Richard Biener - - * tree-ssa-structalias.cc (get_constraint_for_1): For - volatile referenced or decls use ANYTHING. - -2024-05-16 Pan Li - - * tree-vect-loop.cc (vect_gen_loop_len_mask): New func to gen - the loop len mask. - * tree-vect-stmts.cc (vectorizable_early_exit): Invoke the - vect_gen_loop_len_mask for 1 or more stmt(s). - * tree-vectorizer.h (vect_gen_loop_len_mask): New func decl - for vect_gen_loop_len_mask. - -2024-05-16 Pan Li - - PR target/51492 - PR target/112600 - * tree-vect-patterns.cc (gimple_unsigned_integer_sat_add): New - func decl generated by match.pd match. - (vect_recog_sat_add_pattern): New func impl to recog the pattern - for unsigned SAT_ADD. - -2024-05-16 Pan Li - - PR target/51492 - PR target/112600 - * internal-fn.cc (commutative_binary_fn_p): Add type IFN_SAT_ADD - to the return true switch case(s). - * internal-fn.def (SAT_ADD): Add new signed optab SAT_ADD. - * match.pd: Add unsigned SAT_ADD match(es). - * optabs.def (OPTAB_NL): Remove fixed-point limitation for - us/ssadd. - * tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_add): New - extern func decl generated in match.pd match. - (match_saturation_arith): New func impl to match the saturation arith. - (math_opts_dom_walker::after_dom_children): Try match saturation - arith when IOR expr. - -2024-05-16 Aldy Hernandez - - Revert: - 2024-05-10 Aldy Hernandez - - Revert: - 2024-05-08 Aldy Hernandez - - * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap): - Change irange to prange. - * gimple-range-fold.cc (fold_using_range::fold_stmt): Same. - (fold_using_range::range_of_address): Same. - * gimple-range-fold.h (range_of_address): Same. - * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same. - * gimple-range-op.cc (class cfn_strlen): Same. - * gimple-range-path.cc - (path_range_query::adjust_for_non_null_uses): Same. - * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same. - * tree-ssa-structalias.cc (find_what_p_points_to): Same. - * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove - hybrid entries in table. - * range-op.cc (range_op_table::range_op_table): Add pointer - entries for bitwise and/or and min/max. - * value-range.cc (irange::verify_range): Add assert. - * value-range.h (irange::varying_compatible_p): Remove check for - error_mark_node. - (irange::supports_p): Remove pointer support. - * ipa-cp.h (ipa_supports_p): Add prange support. - -2024-05-16 Aldy Hernandez - - PR tree-optimization/114985 - * gimple-range-op.cc: Remove pointers_handled_p. - * ipa-cp.cc (ipa_value_range_from_jfunc): Skip range folding if - operands don't match. - (propagate_vr_across_jump_function): Same. - * range-op-mixed.h: Remove pointers_handled_p and tweak - operand_check_p. - * range-op-ptr.cc (range_operator::pointers_handled_p): Remove. - (pointer_plus_operator::pointers_handled_p): Remove. - (class operator_pointer_diff): Remove pointers_handled_p. - (operator_pointer_diff::pointers_handled_p): Remove. - (operator_identity::pointers_handled_p): Remove. - (operator_cst::pointers_handled_p): Remove. - (operator_cast::pointers_handled_p): Remove. - (operator_min::pointers_handled_p): Remove. - (operator_max::pointers_handled_p): Remove. - (operator_addr_expr::pointers_handled_p): Remove. - (operator_bitwise_and::pointers_handled_p): Remove. - (operator_bitwise_or::pointers_handled_p): Remove. - (operator_equal::pointers_handled_p): Remove. - (operator_not_equal::pointers_handled_p): Remove. - (operator_lt::pointers_handled_p): Remove. - (operator_le::pointers_handled_p): Remove. - (operator_gt::pointers_handled_p): Remove. - (operator_ge::pointers_handled_p): Remove. - * range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): Remove. - (range_op_handler::lhs_op1_relation): Remove pointers_handled_p checks. - (range_op_handler::lhs_op2_relation): Same. - (range_op_handler::op1_op2_relation): Same. - * range-op.h: Remove RO_* declarations. - -2024-05-16 Aldy Hernandez - - PR tree-optimization/114985 - * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Use - boolean type when folding conditionals. - -2024-05-16 Richard Biener - - PR tree-optimization/79958 - PR tree-optimization/109087 - PR tree-optimization/100314 - PR tree-optimization/114774 - * tree-ssa-dse.cc (dse_classify_store): New forwarder. - (dse_classify_store): Add arguments cnt and visited, recurse - to track multiple paths when we end up with multiple defs. - -2024-05-16 David Malcolm - - * text-art/theme.cc (ascii_theme::get_cppchar): Add - cell_kind::INTERPROCEDURAL_*. - (unicode_theme::get_cppchar): Likewise. - * text-art/theme.h (theme::cell_kind): Likewise. - * tree-diagnostic-path.cc: - (thread_event_printer::print_swimlane_for_event_range): Use the - above to get characters for indicating interprocedural stack - depth activity, falling back to ascii. - (selftest::test_interprocedural_path_1): Test with both ascii - and unicode themes. - (selftest::test_interprocedural_path_2): Likewise. - (selftest::test_recursion): Likewise. - -2024-05-16 David Malcolm - - * tree-diagnostic-path.cc: Include "text-art/theme.h". - (path_label::get_text): If the event has - diagnostic_event::VERB_danger, and the theme enables emojis, then - add a warning emoji between the event number and the event text. - -2024-05-16 David Malcolm - - * tree-diagnostic-path.cc (per_thread_summary::interprocedural_p): - New. - (thread_event_printer::print_swimlane_for_event_range): Don't - indent and print the stack depth line if this thread's events are - purely intraprocedural. - (selftest::test_intraprocedural_path): Update expected output. - -2024-05-16 David Malcolm - - * diagnostic-path.h: Update leading comment to reflect - intraprocedural cases. Fix typo in comment. - * doc/invoke.texi: Update intraprocedural example. - -2024-05-16 David Malcolm - - * diagnostic-show-locus.cc: Define INCLUDE_VECTOR and include - "text-art/types.h". - (line_label::line_label): Drop "policy" argument. Use - styled_string::calc_canvas_width when computing m_display_width, - as this skips SGR codes. - (layout::print_any_labels): Update for line_label ctor change. - (selftest::test_one_liner_labels_utf8): Update expected text to - reflect that the labels can fit on one line if we don't get - confused by SGR colorization codes. - -2024-05-16 Xiao Zeng - - * common/config/riscv/riscv-common.cc: - (riscv_implied_info): Add zvfbfwma item. - (riscv_ext_version_table): Ditto. - (riscv_ext_flag_table): Ditto. - * config/riscv/riscv.opt: - (MASK_ZVFBFWMA): New macro. - (TARGET_ZVFBFWMA): Ditto. - -2024-05-16 liuhongt - - PR target/114514 - * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): - Set d.one_operand_p to true when TARGET_SSSE3. - -2024-05-16 liuhongt - - PR target/114514 - * config/i386/i386-expand.cc - (ix86_expand_vec_shift_qihi_constant): Optimize ashift >> 7 to - vpcmpgtb. - (ix86_expand_vecop_qihi_partial): Ditto. - -2024-05-15 Jeff Law - - * config/riscv/riscv-string.cc: Add missing hunk from last change. - -2024-05-15 Christoph Müllner - - * config/riscv/riscv-string.cc (emit_strcmp_scalar_load_and_compare): - Use adjust_address() to calculate MEM-PLUS pattern. - -2024-05-15 Christoph Müllner - - * config/riscv/riscv-protos.h (riscv_expand_block_compare): New - prototype. - * config/riscv/riscv-string.cc (GEN_EMIT_HELPER2): New helper - for zero_extendhi. - (do_load_from_addr): Add support for HI and SI/64 modes. - (do_load): Add helper for zero-extended loads. - (emit_memcmp_scalar_load_and_compare): New helper to emit memcmp. - (emit_memcmp_scalar_result_calculation): Likewise. - (riscv_expand_block_compare_scalar): Likewise. - (riscv_expand_block_compare): New RISC-V expander for memory compare. - * config/riscv/riscv.md (cmpmemsi): New cmpmem expansion. - -2024-05-15 Marek Polacek - - DR 1693 - PR c++/113760 - DR 569 - * doc/invoke.texi: Update -Wextra-semi documentation. - -2024-05-15 Jakub Jelinek - - PR rtl-optimization/114902 - PR rtl-optimization/115092 - * combine.cc (simplify_compare_const): Don't optimize - GE op0 SIGNED_MIN or LT op0 SIGNED_MIN into NE op0 const0_rtx or - EQ op0 const0_rtx. - -2024-05-15 Richard Biener - - PR tree-optimization/114589 - * tree-ssa-sink.cc (select_best_block): Remove profile-based - heuristics. Instead reject sink locations that sink - to post-dominators. Move empty latch check here from - statement_sink_location. Also consider early_bb for the - loop depth check. - (statement_sink_location): Remove superfluous check. Remove - empty latch check. - (pass_sink_code::execute): Compute/release post-dominators. - -2024-05-15 Richard Biener - - PR middle-end/111422 - * cfgexpand.cc (add_scope_conflicts_2): Handle PHIs - by recursing to their arguments. - -2024-05-15 Wilco Dijkstra - - * config/aarch64/aarch64-simd.md (aarch64_combine_internal): - Use UZP1 instead of INS. - (aarch64_combine_internal_be): Likewise. - -2024-05-15 Jan Hubicka - - * alias.cc (reference_alias_ptr_type_1): Use view_converted_memref_p. - * alias.h (view_converted_memref_p): Declare. - * tree-ssa-alias.cc (view_converted_memref_p): Export. - (ao_compare::compare_ao_refs): Use same_type_for_tbaa. - -2024-05-15 Christoph Müllner - - * config/riscv/riscv-string.cc (riscv_block_move_straight): - Hand over up to 2xXLEN bytes to move_by_pieces(). - -2024-05-15 Christoph Müllner - - * config/riscv/riscv-string.cc (riscv_block_move_straight): Add - parameter align. - (riscv_adjust_block_mem): Replace parameter length by align. - (riscv_block_move_loop): Add parameter align. - (riscv_expand_block_move_scalar): Set alignment properly if the - target has fast unaligned access. - -2024-05-15 Aldy Hernandez - - PR tree-optimization/114995 - * range-op-ptr.cc (range_operator::pointers_handled_p): Default to true. - -2024-05-15 Andrew Pinski - - PR tree-optimization/114301 - * tree-cfg.cc (gimple_can_duplicate_bb_p): Check returns_twice - only on the last call statement rather than all. - -2024-05-15 Jeff Law - - * config/riscv/riscv-string.cc - (riscv_expand_block_clear_zicboz_zic64b): Handle rv32 correctly. - -2024-05-15 Levy Hsu - - PR target/107563 - * config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): New - subroutine. - (ix86_expand_vec_perm_const_1): Call expand_vec_perm_psrlw_psllw_por. - -2024-05-15 Jeff Law - - * config/riscv/riscv.md: Add pattern for sign extended shift-add - sequence with a masked input. - -2024-05-14 Dimitar Dimitrov - - PR rtl-optimization/115013 - * config/pru/pru.cc (pru_class_likely_spilled_p): Implement - to mark classes containing one SImode register as likely - spilled. - (TARGET_CLASS_LIKELY_SPILLED_P): Define. - -2024-05-14 Vineet Gupta - - * config/riscv/riscv.h: New macros to check for sum of two S12 - range. - * config/riscv/constraints.md: New constraint. - * config/riscv/predicates.md: New Predicate. - * config/riscv/riscv.md: New splitter. - * config/riscv/riscv.cc (riscv_reg_frame_related): New helper. - * config/riscv/riscv-protos.h: New helper prototype. - -2024-05-14 Richard Biener - - PR tree-optimization/99954 - * tree-data-ref.cc (dr_may_alias_p): For bases that are - not completely analyzed fall back to TBAA and points-to. - * tree-loop-distribution.cc - (loop_distribution::classify_builtin_ldst): When there - is no dependence again classify as memcpy. - * tree-ssa-alias.cc (ptr_deref_may_alias_decl_p): Verify - the pointer is an SSA name. - -2024-05-14 Christoph Müllner - - * config/riscv/riscv-protos.h (riscv_expand_block_clear): New prototype. - * config/riscv/riscv-string.cc (riscv_expand_block_clear_zicboz_zic64b): - New function to expand a block-clear with cbo.zero. - (riscv_expand_block_clear): New RISC-V block-clear expansion function. - * config/riscv/riscv.md (setmem): New setmem expansion. - -2024-05-14 Christoph Müllner - - * expr.cc (clear_by_pieces): Remove static from clear_by_pieces. - * expr.h (clear_by_pieces): Add prototype for clear_by_pieces. - -2024-05-14 Tom de Vries - - PR debug/115066 - * dwarf2out.cc (output_macinfo_op): Fix DW_MACRO_define_strx/strp - choice for v4 .debug_macro.dwo. Add asserts to check that choice. - -2024-05-14 Jan Hubicka - - PR ipa/113291 - * ipa-inline.cc (enum can_inline_edge_by_limits_flags): New enum. - (can_inline_edge_by_limits_p): Take flags instead of multiple bools; add flag - for forcing inlinie limits. - (can_early_inline_edge_p): Update. - (want_inline_self_recursive_call_p): Update; use FORCE_LIMITS mode. - (check_callers): Update. - (update_caller_keys): Update. - (update_callee_keys): Update. - (recursive_inlining): Update. - (add_new_edges_to_heap): Update. - (speculation_useful_p): Update. - (inline_small_functions): Clear DECL_DISREGARD_INLINE_LIMITS on self recursion. - (flatten_function): Update. - (inline_to_all_callers_1): Update. - -2024-05-14 Haochen Gui - - * config/rs6000/rs6000.cc (TARGET_OVERLAP_OP_BY_PIECES_P): Define. - -2024-05-14 Jeff Law - - Revert: - 2024-05-13 Sergei Lewis - - * config/riscv/riscv.md (movmem): Use riscv_vector::expand_block_move, - if and only if we know the entire operation can be performed using one vector - load followed by one vector store - -2024-05-14 Pan Li - - * config/riscv/riscv-vector-builtins.cc - (validate_instance_type_required_extensions): Remove the - operator from the trailing and put it to new line. - -2024-05-13 Jeff Law - - * config/riscv/bitmanip.md: Add new splitter for AND with - a constant that masks off bits 32..63 and needs synthesis. - -2024-05-13 Sergei Lewis - - * config/riscv/riscv.md (movmem): Use riscv_vector::expand_block_move, - if and only if we know the entire operation can be performed using one vector - load followed by one vector store - -2024-05-13 Vladimir N. Makarov - - PR rtl-optimization/115013 - * lra-constraints.cc (process_alt_operands): Update all_used_nregs - only for winreg. Ignore reg starvation for small reg classes. - -2024-05-13 Pan Li - - PR target/114988 - * config/riscv/riscv-vector-builtins.cc - (validate_instance_type_required_extensions): New func impl to - validate the intrinisc func type ops. - (expand_builtin): Validate instance type before expand. - -2024-05-13 Jeff Law - - * config/riscv/bitmanip.md (bextseqzdisi): New patterns. - * config/riscv/.riscv.cc.swo: New file. - * config/riscv/j: New file. - -2024-05-13 Richard Biener - - PR tree-optimization/60276 - * tree-vect-stmts.cc (vectorizable_load): Do not exempt - pure_slp grouped loads from the STMT_VINFO_MIN_NEG_DIST - restriction. - -2024-05-13 Richard Biener - - * tree-vect-slp.cc (vect_analyze_slp_instance): Remove - slp_inst_kind_reduc_group handling. - (vect_analyze_slp): Add the meat here. - -2024-05-13 Jakub Jelinek - - PR middle-end/113982 - * tree-ssa-math-opts.cc (arith_overflow_check_p): Also return 1 - for RSHIFT_EXPR by precision of maxval if shift result is only - used in a cast or comparison against zero. - (match_arith_overflow): Handle the RSHIFT_EXPR use case. - -2024-05-13 YunQiang Su - - Revert: - 2024-05-09 YunQiang Su - - * config/mips/constraints.md: Add new constraint 'w'. - -2024-05-12 Roger Sayle - Kyrill Tkachov - - * config/arm/arm.md (*arm_zeroextractsi2_8_8, *arm_signextractsi2_8_8, - *arm_zeroextractsi2_8_16, *arm_signextractsi2_8_16, - *arm_zeroextractsi2_16_8, *arm_signextractsi2_16_8): New. - -2024-05-12 Jeff Law - - * config/riscv/riscv.cc (riscv_build_integer_1): Use slli.uw more. - -2024-05-12 Jeff Law - - * config/riscv/riscv.cc (riscv_build_integer_1): Fix thinko in testing - when lui can be used to set several bits in bseti path. - -2024-05-12 Mark Wielaard - - * config/mingw/cygming.opt.urls: Regenerate. - * config/mingw/mingw.opt.urls: Likewise. - -2024-05-11 Mark Harmstone - - * dwarf2codeview.cc (DEBUG_S_SYMBOLS): Define. - (S_COMPILE3, CV_CFL_80386, CV_CFL_X64): Likewise. - (CV_CFL_C, CV_CFL_CXX): Likewise. - (SYMBOL_START_LABEL, SYMBOL_END_LABEL): Likewise. - (start_processor, language_constant): New functions. - (write_compile3_symbol, write_codeview_symbols): Likewise. - (codeview_debug_finish): Call write_codeview_symbols. - -2024-05-11 Mark Harmstone - - * dwarf2codeview.cc (DEBUG_S_LINES, LINE_LABEL): Define. - (END_FUNC_LABEL): Likewise. - (struct codeview_line, codeview_line_block): New structures. - (codeview_function): Likewise. - (line_label_num, func_label_num, funcs, last_func): New variables. - (last_filename, last_file_id): Likewise. - (codeview_source_line, write_line_numbers): New functions. - (codeview_switch_text_section, codeview_end_epilogue): Likewise. - (codeview_debug_finish): Call write_line_numbers. - * dwarf2codeview.h (codeview_source_line): Prototype. - (codeview_switch_text_secction, codeview_end_epilogue): Likewise. - * dwarf2out.cc (dwarf2_end_epilogue): Add codeview support. - (dwarf2out_switch_text_section): Likewise. - (dwarf2out_source_line): Likewise. - * opts.cc (finish_options): Handle codeview debugging symbols. - -2024-05-11 Mark Harmstone - - * dwarf2codeview.cc (DEBUG_S_STRINGTABLE): Define. - (DEBUG_S_FILECHKSMS, CHKSUM_TYPE_MD5, HASH_SIZE): Likewise. - (codeview_string, codeview_source_file): New structures. - (struct string_hasher): New class for codeview_string hashing. - (files, last_file, num_files, string_offset): New variables. - (strings_hstab, strings, last_string): Likewise. - (add_string, codevie_start_source_file): New functions. - (write_strings_tabe, write_soruce_files): Likewise. - (codeview_debug_finish): Call new functions. - * dwarf2codeview.h (codeview_start_source_file): Prototype. - * dwarf2out.cc (dwarf2out_start_source_file): Handle codeview. - -2024-05-11 Mark Harmstone - - * Makefile.in (OBJS): Add dwarf2codeview.o. - (GTFILES): Add dwarf2codeview.cc - * config/i386/cygming.h (CODEVIEW_DEBUGGING_INFO): Define. - * dwarf2codeview.cc: New file. - * dwarf2codeview.h: New file. - * dwarf2out.cc: Include dwarf2codeview.h. - (dwarf2out_finish): Call codeview_debug_finish as needed. - * flag-types.h (DINFO_TYPE_CODEVIEW): Add enum member. - (CODEVIEW_DEBUG): Define. - * flags.h (codeview_debuginfo_p): Proottype. - * opts.cc (debug_type_names): Add codeview. - (debug_type_masks): Add CODEVIEW_DEBUG. - (df_set_names): Add codeview. - (codeview_debuginfo_p): New function. - (dwarf_based_debuginfo_p): Add CODEVIEW clause. - (set_debug_level): Handle CODEVIEW_DEBUG. - * toplev.cc (process_options): Handle codeview. - -2024-05-11 dzhao.ampere - - PR tree-optimization/114760 - * tree-ssa-loop-niter.cc (is_lshift_by_1): New function - to check if STMT is equivalent to x << 1. - (is_rshift_by_1): New function to check if STMT is - equivalent to x >> 1. - (number_of_iterations_cltz): Enhance the identification - of logical shift by one. - (number_of_iterations_cltz_complement): Enhance the - identification of logical shift by one. - -2024-05-11 Aldy Hernandez - - * range-op-ptr.cc (range_operator::fold_range): Return false. - -2024-05-11 Aldy Hernandez - - * range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): New - (range_op_handler::fold_range): Use it. - (range_op_handler::op1_range): Same. - (range_op_handler::op2_range): Same. - (range_op_handler::lhs_op1_relation): Same. - (range_op_handler::lhs_op2_relation): Same. - (range_op_handler::op1_op2_relation): Same. - -2024-05-10 Jeff Law - - * config/riscv/riscv.cc (riscv_build_integer_1): Recognize cases where - we can use shNadd to improve constant synthesis. - (riscv_move_integer): Handle code generation for shNadd. - -2024-05-10 Roger Sayle - Hongtao Liu - - * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): - Don't attempt ix86_expand_vec_shift_qihi_constant on SSE4.1. - -2024-05-10 Dimitar Dimitrov - - * config/pru/predicates.md (pru_mulsrc0_operand): Use register - class instead of register number for the check. - (pru_mulsrc1_operand): Ditto. - -2024-05-10 Vladimir N. Makarov - - PR target/114942 - * lra-constraints.cc (struct input_reload): Add new member early_clobber_p. - (get_reload_reg): Add new arg early_clobber_p, don't reuse input - reload with true early_clobber_p member value, use the arg for new - element of curr_insn_input_reloads. - (match_reload): Assign false to early_clobber_p member. - (process_addr_reg, simplify_operand_subreg, curr_insn_transform): - Adjust get_reload_reg calls. - -2024-05-10 Aldy Hernandez - - PR tree-optimization/115026 - * value-range.cc (prange::update_bitmask): Use operand bitmask. - -2024-05-10 Richard Biener - - PR tree-optimization/114998 - * tree-loop-distribution.cc (free_rdg): Take loop argument. - Reset UIDs of stmts still in the IL rather than all stmts - referenced from the RDG. - (loop_distribution::build_rdg): Pass loop to free_rdg. - (loop_distribution::distribute_loop): Likewise. - (loop_distribution::transform_reduction_loop): Likewise. - -2024-05-10 Richard Biener - - * tree-vect-patterns.cc (vect_pattern_recog_1): Do not - remove reductions involving patterns. - * tree-vect-loop.cc (vectorizable_reduction): Reject SLP - reduction groups with multiple lane-reducing reductions. - * tree-vect-slp.cc (vect_analyze_slp_instance): When discovering - SLP reduction groups avoid including lane-reducing ones. - -2024-05-10 Jose E. Marchesi - - * config/bpf/bpf.cc (bpf_print_operand_address): Include - surrounding parenthesis around mem operands in pseudoc asm - dialect. - * config/bpf/bpf.md (*mov): Adapt accordingly. - (zero_extendhidi2): Likewise. - (zero_extendqidi2): Likewise. - (*extendsidi2): Likewise. - (*extendsidi2): Likewise. - (extendhidi2): Likewise. - (extendqidi2): Likewise. - (extendhisi2): Likewise. - * config/bpf/atomic.md (atomic_add): Likewise. - (atomic_and): Likewise. - (atomic_or): Likewise. - (atomic_xor): Likewise. - (atomic_fetch_add): Likewise. - (atomic_fetch_and): Likewise. - (atomic_fetch_or): Likewise. - (atomic_fetch_xor): Likewise. - -2024-05-10 Jakub Jelinek - - PR target/114968 - * target.def (use_atexit_for_cxa_atexit): Remove spurious space - from comment. - (adjust_cdtor_callabi_fntype): New cxx target hook. - * targhooks.h (default_cxx_adjust_cdtor_callabi_fntype): Declare. - * targhooks.cc (default_cxx_adjust_cdtor_callabi_fntype): New - function. - * doc/tm.texi.in (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Add. - * doc/tm.texi: Regenerate. - * config/i386/i386.cc (ix86_cxx_adjust_cdtor_callabi_fntype): New - function. - (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Redefine. - -2024-05-10 Aldy Hernandez - - PR tree-optimization/115009 - * value-range-storage.cc (prange_storage::alloc): Do not assume - all pointers are the same size. - (prange_storage::prange_storage): Same. - (prange_storage::fits_p): Same. - -2024-05-10 Kito Cheng - - * config/riscv/riscv-vsetvl.cc: Fix typos in comments. - (get_all_predecessors): Ditto. - (pre_vsetvl::m_unknow_info): Rename to... - (pre_vsetvl::m_unknown_info): this. - (pre_vsetvl::compute_vsetvl_def_data): Rename m_unknow_info to - m_unknown_info. - (pre_vsetvl::cleaup): Rename to... - (pre_vsetvl::cleanup): this. - (pre_vsetvl::compute_vsetvl_def_data): Fix typos. - (pass_vsetvl::lazy_vsetvl): Update function name and fix typos. - * config/riscv/riscv.cc: Fix typos in comments. - (struct machine_function): Fix typo in comments. - (riscv_valid_lo_sum_p): Ditto. - (riscv_force_address): Ditto. - (riscv_immediate_operand_p): Ditto. - (riscv_in_small_data_p): Ditto. - (riscv_first_stack_step): Ditto. - (riscv_expand_prologue): Ditto. - (riscv_convert_vector_chunks): Ditto. - (riscv_override_options_internal): Ditto. - (get_common_costs): Ditto. - -2024-05-10 Xi Ruoyao - - PR driver/114980 - * opts-common.cc (prune_options): Move -fdiagnostics-urls= - early like -fdiagnostics-color=. - -2024-05-10 Jeff Law - - * config/riscv/bitmanip.md: Add splitter for shadd feeding another - add instruction. - -2024-05-10 Aldy Hernandez - - Revert: - 2024-05-08 Aldy Hernandez - - * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap): - Change irange to prange. - * gimple-range-fold.cc (fold_using_range::fold_stmt): Same. - (fold_using_range::range_of_address): Same. - * gimple-range-fold.h (range_of_address): Same. - * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same. - * gimple-range-op.cc (class cfn_strlen): Same. - * gimple-range-path.cc - (path_range_query::adjust_for_non_null_uses): Same. - * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same. - * tree-ssa-structalias.cc (find_what_p_points_to): Same. - * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove - hybrid entries in table. - * range-op.cc (range_op_table::range_op_table): Add pointer - entries for bitwise and/or and min/max. - * value-range.cc (irange::verify_range): Add assert. - * value-range.h (irange::varying_compatible_p): Remove check for - error_mark_node. - (irange::supports_p): Remove pointer support. - * ipa-cp.h (ipa_supports_p): Add prange support. - -2024-05-09 Roger Sayle - - * simplify-rtx.cc (simplify_const_binary_operation): Constant - fold binary operations where the LHS is CONST_VECTOR and the - RHS is CONST_INT (or CONST_DOUBLE) such as vector shifts. - -2024-05-09 Martin Jambor - - * tree-sra.cc (sra_modify_assign): Remove the original statement - also when dealing with a store to a fully covered aggregate from a - non-candidate. - -2024-05-09 YunQiang Su - - * config/mips/constraints.md: Add new constraint 'w'. - -2024-05-09 Hu, Lin1 - - PR target/84508 - * config/i386/emmintrin.h - (_mm_load_sd): Remove alignment requirement. - (_mm_store_sd): Ditto. - (_mm_loadh_pd): Ditto. - (_mm_loadl_pd): Ditto. - (_mm_storel_pd): Add alignment requirement. - * config/i386/xmmintrin.h - (_mm_loadh_pi): Remove alignment requirement. - (_mm_loadl_pi): Ditto. - (_mm_load_ss): Ditto. - (_mm_store_ss): Ditto. - -2024-05-09 Aldy Hernandez - - PR tree-optimization/114912 - * value-range.h (class Value_Range): Use a union. - -2024-05-09 Aldy Hernandez - - * range-op.cc (range_op_handler::discriminator_fail): Reword error - message. - -2024-05-09 konglin1 - - * config/i386/i386.cc (ix86_hardreg_mov_ok): Relax - hard reg mov restriction when lra in progress. - -2024-05-08 Xiao Zeng - - * config/riscv/riscv.cc (riscv_legitimize_move): Expand movbf - with Nan-boxing value. - * config/riscv/riscv.md (*movbf_softfloat_boxing): New pattern. - -2024-05-08 Jeff Law - - * config/riscv/riscv.cc (riscv_build_integer_1): Fix incorrect - if-then-else nesting of Zbs code. - -2024-05-08 Vladimir N. Makarov - - PR target/114810 - * lra-constraints.cc (process_alt_operands): Calculate union reg - class for the alternative, peak matched regs and required reload - regs. Recognize alternatives with lack of available registers and - make them costly. Add debug print about this case. - -2024-05-08 Andrew Pinski - - PR tree-optimization/112392 - * match.pd (`x CMP nonnegative ? x : ABS`): New pattern; - where CMP is ==, > and >=. - (`x CMP nonnegative@y ? y : ABS`): New pattern. - -2024-05-08 Ajit Kumar Agarwal - - PR tree-optimization/81953 - * tree-ssa-sink.cc (statement_sink_location):Sink statements at - the begining of the basic block after labels. - -2024-05-08 Christoph Müllner - - * config/riscv/iterators.md (ashiftrt): New code attribute - 'extract_shift' and adding extractions to optab. - * config/riscv/riscv.md (*lshr3_zero_extend_4): Rename to... - (*3):...this and add support for - sign-extensions. - -2024-05-08 Christoph Müllner - - PR target/111501 - * config/riscv/riscv.md (*lshr3_zero_extend_4): New - pattern for zero-extraction. - -2024-05-08 Christoph Müllner - - * config/riscv/iterators.md (sraiw): New code iterator 'any_extract'. - New code attribute 'extract_sidi_shift'. - * config/riscv/riscv.md (*lshrsi3_zero_extend_2): Rename to... - (*lshrsi3_extend_2):...this and add support for sign-extensions. - -2024-05-08 Richard Biener - - * tree-vect-loop.cc (get_initial_defs_for_reduction): Convert - initial value to the vector component type. - -2024-05-08 Richard Biener - - * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): - Properly guard DR_GROUP_SIZE access with STMT_VINFO_GROUPED_ACCESS. - -2024-05-08 Alex Coplan - - PR target/114936 - * config/aarch64/aarch64-ldp-fusion.cc (combine_reg_notes): - Ensure insn iN has its REG_FRAME_RELATED_EXPR (if any) stored in - FR_EXPR[N-1], thus matching the correspondence expected by the - copy_rtx calls. - -2024-05-08 Stefan Schulze Frielinghaus - - * tree-ssa-loop-prefetch.cc (determine_unroll_factor): Honour - -fno-unroll-loops. - -2024-05-08 Georg-Johann Lay - - PR target/114975 - * config/avr/avr.md: Add combine pattern for - 8-bit parity detection. - -2024-05-08 Georg-Johann Lay - - PR target/114975 - * config/avr/avr.md: Add combine pattern for - 8-bit popcount detection. - -2024-05-08 Richard Biener - - * tree-into-ssa.cc (insert_updated_phi_nodes_for): Skip - pruning when the nearest common dominator is the successor - of ENTRY_BLOCK. Do not copy IDF but prune it directly. - -2024-05-08 Jakub Jelinek - - PR tree-optimization/114965 - * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Don't try to - optimize away exp - lowi subtraction from shift count unless entry - test is emitted or unless r.upper_bound () is smaller than prec. - -2024-05-08 Eric Botcazou - - * expmed.h (choose_multiplier): Tweak description and remove last - parameter. - * expmed.cc (choose_multiplier): Likewise. Add assertion for the - third parameter and adds details to various comments. - (invert_mod2n): Tweak description and add assertion for the first - parameter. - (expand_divmod): Adjust calls to choose_multiplier. - * tree-vect-generic.cc (expand_vector_divmod): Likewise. - * tree-vect-patterns.cc (vect_recog_divmod_pattern): Likewise. - -2024-05-08 konglin1 - - PR target/109549 - * config/i386/i386.cc (ix86_rtx_costs): The XEXP (x, 0) for cmov - is an operator do not need to compute cost. - -2024-05-08 Aldy Hernandez - - * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap): - Change irange to prange. - * gimple-range-fold.cc (fold_using_range::fold_stmt): Same. - (fold_using_range::range_of_address): Same. - * gimple-range-fold.h (range_of_address): Same. - * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same. - * gimple-range-op.cc (class cfn_strlen): Same. - * gimple-range-path.cc - (path_range_query::adjust_for_non_null_uses): Same. - * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same. - * tree-ssa-structalias.cc (find_what_p_points_to): Same. - * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove - hybrid entries in table. - * range-op.cc (range_op_table::range_op_table): Add pointer - entries for bitwise and/or and min/max. - * value-range.cc (irange::verify_range): Add assert. - * value-range.h (irange::varying_compatible_p): Remove check for - error_mark_node. - (irange::supports_p): Remove pointer support. - * ipa-cp.h (ipa_supports_p): Add prange support. - -2024-05-07 Andrew Pinski - - PR tree-optimization/19661 - * tree-ssa-dce.cc (is_cxa_atexit): New function. - (is_removable_cxa_atexit_call): New function. - (mark_stmt_if_obviously_necessary): Don't mark removable - cxa_at_exit calls. - (mark_all_reaching_defs_necessary_1): Likewise. - (propagate_necessity): Likewise. - -2024-05-07 Andrew Pinski - - PR tree-optimization/114894 - * match.pd (`a != 0 ? a / b : 0`): New pattern. - (`a != 0 ? a * b : 0`): New pattern. - (`a != 0 ? a & b : 0`): New pattern. - -2024-05-07 Jeff Law - - * config/riscv/riscv.cc (generic_ooo_tune_info): Turn on - overlap_op_by_pieces. - -2024-05-07 Christoph Müllner - - * config/riscv/riscv.cc (struct riscv_tune_param): Add new - "overlap_op_by_pieces" field. - (rocket_tune_info, sifive_7_tune_info): Set it. - (sifive_p400_tune_info, sifive_p600_tune_info): Likewise. - (thead_c906_tune_info, xiangshan_nanhu_tune_info): Likewise. - (generic_ooo_tune_info, optimize_size_tune_info): Likewise. - (riscv_overlap_op_by_pieces): New function. - (TARGET_OVERLAP_OP_BY_PIECES_P): define. - -2024-05-07 Jakub Jelinek - - PR middle-end/114907 - * expr.cc (convert_mode_scalar): Use trunc_optab rather than - sext_optab for HF->BF conversions. - * optabs-libfuncs.cc (gen_trunc_conv_libfunc): Likewise. - -2024-05-07 Jakub Jelinek - - PR sanitizer/114956 - * tree-inline.cc: Include asan.h. - (copy_bb): Remove also .ASAN_MARK calls if id->dst_fn has asan/hwasan - sanitization disabled. - -2024-05-07 Jeff Law - - * config/riscv/riscv-string.cc (riscv_expand_strcmp): Do not inline - strncmp with zero size. - (emit_strcmp_scalar_compare_subword): Adjust rotation for rv32 vs rv64. - * config/riscv/riscv.opt (var_inline_strcmp): Enable by default. - (vriscv_inline_strncmp, riscv_inline_strlen): Likewise. - -2024-05-07 Zac Walker - - * config.gcc: Build and add objects for Cygwin and MinGW. Add Cygwin - and MinGW options to the target. - -2024-05-07 Zac Walker - - * config/i386/mingw-w64.opt.urls: Rename options' name and - regenerate option URLs. - * config/lynx.opt.urls: Likewise. - * config/mingw/cygming.opt.urls: Likewise. - * config/mingw/mingw.opt.urls: Likewise. - * doc/invoke.texi: Likewise. - -2024-05-07 Zac Walker - - * config/aarch64/aarch64.h (struct seh_frame_state): Declare SEH - structure in machine_function. - (GTY): Add SEH field. - -2024-05-07 Zac Walker - - * config.gcc: Add Cygwin and MinGW difinitions. - * config/aarch64/aarch64-protos.h - (mingw_pe_maybe_record_exported_symbol): Declare functions - which are used in Cygwin and MinGW environment. - (mingw_pe_section_type_flags): Likewise. - (mingw_pe_unique_section): Likewise. - (mingw_pe_encode_section_info): Likewise. - * config/aarch64/cygming.h: New file. - -2024-05-07 Zac Walker - - * config.gcc: Define TARGET_AARCH64_MS_ABI. - * config/mingw/mingw-stdint.h (INTPTR_TYPE): Use - TARGET_AARCH64_MS_ABI to adjust MinGW headers for - AArch64 MS ABI. - (UINTPTR_TYPE): Likewise. - (defined): Likewise. - * config/mingw/mingw32.h (DEFAULT_ABI): Likewise. - (defined): Likewise. - * config/mingw/winnt.cc (defined): Use TARGET_ARM64_MS_ABI to - exclude ix86_get_callcvt. - (i386_pe_maybe_mangle_decl_assembler_name): Likewise. - (i386_pe_mangle_decl_assembler_name): Likewise. - -2024-05-07 Zac Walker - - * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): - Rename functions in mingw folder which will be reused for - aarch64. - (TARGET_ASM_UNIQUE_SECTION): Likewise. - (TARGET_ASM_NAMED_SECTION): Likewise. - (TARGET_SECTION_TYPE_FLAGS): Likewise. - (ASM_DECLARE_COLD_FUNCTION_NAME): Likewise. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. - * config/i386/i386-protos.h (i386_pe_unique_section): - Rename into ... - (mingw_pe_unique_section): ... this. - (i386_pe_declare_function_type): Rename into ... - (mingw_pe_declare_function_type): ... this. - (i386_pe_encode_section_info): Rename into ... - (mingw_pe_encode_section_info): ... this. - (i386_pe_maybe_record_exported_symbol): Rename into ... - (mingw_pe_maybe_record_exported_symbol): ... this. - (i386_pe_section_type_flags): Rename into ... - (mingw_pe_section_type_flags): ... this. - (i386_pe_asm_named_section): Rename into ... - (mingw_pe_asm_named_section): ... this. - * config/mingw/winnt.cc (i386_pe_encode_section_info): - Rename into ... - (mingw_pe_encode_section_info): ... this. - (i386_pe_unique_section): Rename into ... - (mingw_pe_unique_section): ... this. - (i386_pe_section_type_flags): Rename into ... - (mingw_pe_section_type_flags): ... this. - (i386_pe_asm_named_section): Rename into ... - (mingw_pe_asm_named_section): ... this. - (i386_pe_asm_output_aligned_decl_common): Likewise. - (i386_pe_declare_function_type): Rename into ... - (mingw_pe_declare_function_type): ... this. - (i386_pe_maybe_record_exported_symbol): Rename into ... - (mingw_pe_maybe_record_exported_symbol): ... this. - (i386_pe_start_function): Likewise. - * varasm.cc (switch_to_comdat_section): Likewise. - -2024-05-07 Zac Walker - - * config.gcc: Adjust targets after moving MinGW related files - from i386 to mingw folder. - * config/i386/cygming.opt: Move to... - * config/mingw/cygming.opt: ...here. - * config/i386/cygming.opt.urls: Move to... - * config/mingw/cygming.opt.urls: ...here. - * config/i386/cygwin-d.cc: Move to... - * config/mingw/cygwin-d.cc: ...here. - * config/i386/mingw-stdint.h: Move to... - * config/mingw/mingw-stdint.h: ...here. - * config/i386/mingw.opt: Move to... - * config/mingw/mingw.opt: ...here. - * config/i386/mingw.opt.urls: Move to... - * config/mingw/mingw.opt.urls: ...here. - * config/i386/mingw32.h: Move to... - * config/mingw/mingw32.h: ...here. - * config/i386/msformat-c.cc: Move to... - * config/mingw/msformat-c.cc: ...here. - * config/i386/t-cygming: Move to... - * config/mingw/t-cygming: ...here and updated. - * config/i386/winnt-cxx.cc: Move to... - * config/mingw/winnt-cxx.cc: ...here. - * config/i386/winnt-d.cc: Move to... - * config/mingw/winnt-d.cc: ...here. - * config/i386/winnt-stubs.cc: Move to... - * config/mingw/winnt-stubs.cc: ...here. - * config/i386/winnt.cc: Move to... - * config/mingw/winnt.cc: ...here. - -2024-05-07 Zac Walker - - * config.gcc: Add COFF format support definitions. - * config/aarch64/aarch64-coff.h: New file. - -2024-05-07 Zac Walker - - * config.gcc: Define TARGET_AARCH64_MS_ABI when - AArch64 MS ABI is used. - * config/aarch64/aarch64.h (FIXED_X18): Adjust - FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS and - STATIC_CHAIN_REGNUM for AArch64 MS ABI. - (CALL_USED_X18): Likewise. - (FIXED_REGISTERS): Likewise. - * config/aarch64/aarch64-abi-ms.h: New file. - -2024-05-07 Zac Walker - - * config.gcc: Add aarch64-w64-mingw32 target. - -2024-05-07 Alex Coplan - - PR target/114674 - * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair): - Use replace_equiv_address_nv on a change of base instead of - adjust_address_nv on the other access. - -2024-05-07 Richard Biener - - * tree-into-ssa.cc (insert_updated_phi_nodes_for): Fix block - index check. - -2024-05-07 Richard Biener - - * tree-ssa-live.cc (init_var_map): Pre-allocate vec_bbs vector - to the correct size and use quick_push. - -2024-05-07 Richard Biener - - PR middle-end/27800 - * gimplify.cc (gimplify_modify_expr_rhs): For a COND_EXPR - avoid a temporary from gimplify_cond_expr when the LHS is - a register by pushing the assignment into the COND_EXPR arms. - -2024-05-07 Richard Biener - - * gimplify.cc (gimplify_hasher::equal): Remove redundant - checking. - -2024-05-07 Stefan Schulze Frielinghaus - - PR tree-optimization/110490 - * tree-scalar-evolution.cc (expression_expensive_p): Also - consider mode widening for popcount, clz, and ctz. - -2024-05-07 Richard Biener - - * cfgexpand.cc (stack_var::representative): Use 'unsigned' - for stack var indexes instead of 'size_t'. - (stack_var::next): Likewise. - (EOC): Likewise. - (stack_vars_alloc): Likewise. - (stack_vars_num): Likewise. - (decl_to_stack_part): Likewise. - (stack_vars_sorted): Likewise. - (add_stack_var): Likewise. - (add_stack_var_conflict): Likewise. - (stack_var_conflict_p): Likewise. - (visit_op): Likewise. - (visit_conflict): Likewise. - (add_scope_conflicts_1): Likewise. - (stack_var_cmp): Likewise. - (part_hashmap): Likewise. - (update_alias_info_with_stack_vars): Likewise. - (union_stack_vars): Likewise. - (partition_stack_vars): Likewise. - (dump_stack_var_partition): Likewise. - (expand_stack_vars): Likewise. - (account_stack_vars): Likewise. - (stack_protect_decl_phase_1): Likewise. - (stack_protect_decl_phase_2): Likewise. - (asan_decl_phase_3): Likewise. - (init_vars_expansion): Likewise. - (estimated_stack_frame_size): Likewise. - -2024-05-07 Richard Biener - - PR middle-end/114931 - * tree.cc (type_hash_canon_hash): Hash TYPE_STRUCTURAL_EQUALITY_P. - (type_cache_hasher::equal): Compare TYPE_STRUCTURAL_EQUALITY_P. - (build_array_type_1): Set TYPE_STRUCTURAL_EQUALITY_P before - probing with type_hash_canon. - (build_function_type): Likewise. - (build_method_type_directly): Likewise. - (build_offset_type): Likewise. - (build_complex_type): Likewise. - * attribs.cc (build_type_attribute_qual_variant): Likewise. - -2024-05-07 Aldy Hernandez - - * ipa-cp.cc (ipa_vr_operation_and_type_effects): Use ipa_supports_p. - (ipa_value_range_from_jfunc): Change Value_Range type. - (propagate_vr_across_jump_function): Same. - * ipa-cp.h (ipa_supports_p): New. - * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Change Value_Range type. - * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Use ipa_supports_p. - (ipcp_get_parm_bits): Same. - -2024-05-07 Rainer Orth - - * config.gcc: Move *-*-solaris2.11.[0-3]* to unsupported list. - <*-*-solaris2*> (default_use_cxa_atexit): Set unconditionally. - * configure.ac (AX_LIB_SOCKET_NSL): Don't call. - (NETLIBS): Remove. - (gcc_cv_ld_aligned_shf_merge): Remove. - (hidden_linkonce) : Remove. - (gcc_cv_target_dl_iterate_phdr) <*-*-solaris2*>: Always set to yes. - * Makefile.in (NETLIBS): Remove. - * configure, config.in, aclocal.m4: Regenerate. - * config/sol2.h: Don't check HAVE_SOLARIS_CRTS. - (STARTFILE_SPEC): Remove !HAVE_SOLARIS_CRTS case. - [USE_GLD] (LINK_EH_SPEC): Remove TARGET_DL_ITERATE_PHDR guard. - * config/i386/i386.cc (USE_HIDDEN_LINKONCE): Remove guard. - * varasm.cc (mergeable_string_section): Remove - HAVE_LD_ALIGNED_SHF_MERGE handling. - (mergeable_constant_section): Likewise. - * doc/install.texi (Specific,i?86-*-solaris2*): Reference Solaris - 11.4 only. - (Specific, *-*-solaris2*): Document Solaris 11.3 removal. Remove - 11.3 references and caveats. Update for 11.4. - -2024-05-07 Richard Biener - - Revert: - 2024-04-10 Richard Biener - - Revert: - 2024-03-27 Segher Boessenkool - - PR rtl-optimization/101523 - * combine.cc (try_combine): Don't do a 2-insn combination if - it does not in fact change I2. - -2024-05-07 Andrew Pinski - - PR middle-end/97263 - * doc/invoke.texi(fmath-errno): Document it is turned on - with -Ofast. - (funsafe-math-optimizations): Likewise. - (ffinite-math-only): Likewise. - (fno-trapping-math): Likewise and use less strong language. - -2024-05-07 liuhongt - - * config/i386/sse.md (usdot_prodv*qi): Extend to VI1_AVX512 - with vpmaddwd when avxvnni/avx512vnni is not available. - -2024-05-07 liuhongt - - PR target/113079 - * config/i386/mmx.md (usdot_prodv8qi): New expander. - (sdot_prodv8qi): Ditto. - (udot_prodv8qi): Ditto. - (usdot_prodv4hi): Ditto. - (udot_prodv4hi): Ditto. - (sdot_prodv4hi): Ditto. - -2024-05-07 liuhongt - - PR target/113090 - * config/i386/i386-expand.cc - (expand_vec_perm_punpckldq_pshuf): New function. - (ix86_expand_vec_perm_const_1): Try - expand_vec_perm_punpckldq_pshuf for sequence of 2 - instructions. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru-passes.cc (class pass_pru_minrt_check): New - pass. - (pass_pru_minrt_check::execute): New method. - (make_pru_minrt_check): New function. - * config/pru/pru-passes.def (INSERT_PASS_AFTER): Register the - minrt check pass. - * config/pru/pru-protos.h (make_pru_minrt_check): Add - declaration. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru-passes.cc (class pass_tiabi_check): Rename to - add "pru_" prefix. - (class pass_pru_tiabi_check): Ditto. - (pass_tiabi_check::execute): Ditto. - (pass_pru_tiabi_check::execute): Ditto. - (make_pru_tiabi_check): Ditto. - (pru_register_abicheck_pass): Remove. - * config/pru/pru-protos.h (pru_register_abicheck_pass): Remove. - (make_pru_tiabi_check): Add declaration. - * config/pru/pru.cc (pru_option_override): Remove explicit pass - registration. - * config/pru/t-pru: Register PRU passes definition file. - * config/pru/pru-passes.def: New file. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru.md (lshrdi3): Use HOST_WIDE_INT_1U macro. - (ashldi3): Ditto. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru-passes.cc: Drop ATTRIBUTE_UNUSED and remove - argument's name. - * config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Ditto. - * config/pru/pru.cc (pru_function_profiler): Ditto. - (pru_can_eliminate): Ditto. - (pru_rtx_costs): Ditto. - (pru_insert_attributes): Ditto. - (pru_function_value): Ditto. - (pru_libcall_value): Ditto. - (pru_return_in_memory): Ditto. - (pru_builtin_decl): Ditto. - (pru_expand_builtin): Ditto. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru.cc (prologue_saved_reg_p): Skip saving - if function will not return. - -2024-05-07 Dimitar Dimitrov - - * config/pru/alu-zext.md (_noz0): New subst attribute. - (_impl): Allow zero-extending the destination. - (): Remove unified pattern - (ashl_impl): New distinct pattern. - (lshr_impl): Ditto. - (alu3_zext_op0_subst): New subst iterator to zero-extend the - destination register. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru.md (extzv): Make it an expand pattern, - handle efficiently zero-positioned bit-fields. - (insv): New expand pattern. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru.md: New pattern alternative for zero-filling - 64-bit registers. - -2024-05-07 Dimitar Dimitrov - - * config/pru/pru.cc (pru_address_cost): Implement address cost - calculation. - (TARGET_ADDRESS_COST): Define for PRU. - -2024-05-07 Richard Biener - - PR tree-optimization/114921 - * tree-vect-stmts.cc (vectorizable_assignment): Use - tree_nop_conversion_p to identify converts we can vectorize - with a simple assignment. - -2024-05-07 Roger Sayle - Hongtao Liu - - PR target/106060 - * config/i386/i386-expand.cc (enum ix86_vec_bcast_alg): New. - (struct ix86_vec_bcast_map_simode_t): New type for table below. - (ix86_vec_bcast_map_simode): Table of SImode constants that may - be efficiently synthesized by a ix86_vec_bcast_alg method. - (ix86_vec_bcast_map_simode_cmp): New comparator for bsearch. - (ix86_vector_duplicate_simode_const): Efficiently synthesize - V4SImode and V8SImode constants that duplicate special constants. - (ix86_vector_duplicate_value): Attempt to synthesize "special" - vector constants using ix86_vector_duplicate_simode_const. - * config/i386/i386.cc (ix86_rtx_costs) : ABS of a - vector integer mode costs with a single SSE instruction. - -2024-05-06 Xiao Zeng - - * common/config/riscv/riscv-common.cc (riscv_implied_info): zfbfmin - implies zfhmin. - (riscv_ext_version_table, riscv_ext_flag_table): Add zfbfmin. - * config/riscv/riscv.opt (ZFBFMIN): Add optoion. - -2024-05-06 Xiao Zeng - Jin Ma - - * config/riscv/iterators.md: New mode iterator HFBF. - * config/riscv/riscv-builtins.cc (riscv_init_builtin_types): - Initialize data type _Bfloat16. - * config/riscv/riscv-modes.def (FLOAT_MODE): New. - (ADJUST_FLOAT_FORMAT): New. - * config/riscv/riscv.cc (riscv_mangle_type): Support for BFmode. - (riscv_scalar_mode_supported_p): Ditto. - (riscv_libgcc_floating_mode_supported_p): Ditto. - (riscv_init_libfuncs): Set the conversion method for BFmode and - HFmode. - (riscv_block_arith_comp_libfuncs_for_mode): Set the arithmetic - and comparison libfuncs for the mode. - * config/riscv/riscv.md (mode" ): Add BF. - (movhf): Support for BFmode. - (mov): Ditto. - (*movhf_softfloat): Ditto. - (*mov_softfloat): Ditto. - -2024-05-06 Palmer Dabbelt - - * doc/invoke.texi (RISC-V): Add -mcmodel=large. - -2024-05-06 Jeff Law - - * config/riscv/riscv.cc (riscv_integer_op): Add field tracking if we - want to use a "uw" instruction variant. - (riscv_build_integer_1): Initialize the new field in various places. - Use lui+slli.uw for some constants. - (riscv_move_integer): Handle slli.uw. - -2024-05-06 Qing Zhao - - PR c/53548 - * stor-layout.cc (place_union_field): Use zero sizes for flexible array - member fields. - -2024-05-06 Qing Zhao - - PR c/53548 - * doc/extend.texi: Add documentation for Flexible Array Members in - Unions and Flexible Array Members alone in Structures. - -2024-05-06 Georg-Johann Lay - - PR ipa/92606 - * config/avr/avr.cc (avr_option_override): Set - flag_ipa_icf_variables = 0. - -2024-05-06 Sandra Loosemore - - * tree-nested.cc (convert_tramp_reference_stmt): Use the correct - accessor for GIMPLE_OMP_TARGET clauses. - -2024-05-06 Richard Biener - - PR tree-optimization/100923 - * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize - base SSA_NAME. - (vn_reference_lookup_3): Adjust vn_context_bb around calls - to ao_ref_init_from_vn_reference. - (vn_reference_lookup_pieces): Revert original PR100923 fix. - (vn_reference_lookup): Likewise. - -2024-05-06 Richard Biener - - * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Add - TARGET_MEM_REF support. Handle more bases. - -2024-05-06 YunQiang Su - - PR target/113179 - * expmed.cc(store_bit_field_using_insv): TRUNCATE value1 if - needed. - -2024-05-05 Andrew Pinski - - * gimple-loop-versioning.cc (loop_versioning): Remove m_nloops field. - (loop_versioning::loop_versioning): Remove initialization of - m_nloops field and move it to be a local variable. - (loop_versioning::analyze_blocks): Fix formating. - -2024-05-04 Aldy Hernandez - - * gimple-range-op.cc (class cfn_pass_through_arg1): Add overloads - for prange operations. - (cfn_strlen): Same. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_ge::fold_range): New. - (operator_ge::op1_range): New. - (operator_ge::op2_range): New. - (operator_ge::op1_op2_relation): New. - (operator_ge::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_gt::fold_range): New. - (operator_gt::op1_range): New. - (operator_gt::op2_range): New. - (operator_gt::op1_op2_relation): New. - (operator_gt::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_le::fold_range): New. - (operator_le::op1_range): New. - (operator_le::op2_range): New. - (operator_le::op1_op2_relation): New. - (operator_le::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (max_limit): New. - (min_limit): New. - (build_lt): New. - (build_le): New. - (build_gt): New. - (build_ge): New. - (operator_lt::fold_range): New. - (operator_lt::op1_range): New. - (operator_lt::op2_range): New. - (operator_lt::op1_op2_relation): New. - (operator_lt::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_equal::fold_range): New. - (operator_equal::op1_range): New. - (operator_equal::op2_range): New. - (operator_equal::op1_op2_relation): New. - (operator_equal::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_not_equal::fold_range): New. - (operator_not_equal::op1_range): New. - (operator_not_equal::op2_range): New. - (operator_not_equal::op1_op2_relation): New. - (operator_not_equal::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_bitwise_or::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_bitwise_and::fold_range): New. - (operator_bitwise_and::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-ptr.cc - (operator_pointer_diff::op1_op2_relation_effect): New. - (operator_pointer_diff::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-ptr.cc (class pointer_plus_operator): Add overloaded declarations - for pointer variants. - (pointer_plus_operator::fold_range): New. - (pointer_plus_operator::op2_range): New. - (pointer_plus_operator::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_addr_expr::op1_range): New. - (operator_addr_expr::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_min::fold_range): New. - (operator_min::pointers_handled_p): New. - (operator_max::fold_range): New. - (operator_max::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_cast::fold_range): New. - (operator_cast::op1_range): New. - (operator_cast::lhs_op1_relation): New. - (operator_cast::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for pointer variants. - * range-op-ptr.cc (operator_cst::fold_range): New. - (operator_cst::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add overloaded declarations for fold_range, op1_range, - lhs_op1_relation, pointers_handled_p. - * range-op-ptr.cc (operator_identity::fold_range): New. - (operator_identity::lhs_op1_relation): New. - (operator_identity::op1_range): New. - (operator_identity::pointers_handled_p): New. - -2024-05-04 Aldy Hernandez - - * range-op-mixed.h: Add using declarator for all classes. - * range-op-ptr.cc (range_operator::pointers_handled_p): New. - (range_operator::fold_range): New. - (range_operator::op1_op2_relation_effect): New. - (range_operator::op1_range): New. - (range_operator::op2_range): New. - (range_operator::op1_op2_relation): New. - (range_operator::lhs_op1_relation): New. - (range_operator::update_bitmask): New. - (class pointer_plus_operator): New. - (class operator_pointer_diff): New. - (class hybrid_min_operator): New. - (class hybrid_max_operator): New. - * range-op.cc: Add RO_PPP, RO_PPI, RO_IPP, RO_IPI, RO_PIP, RO_PII. - (range_op_handler::discriminator_fail): New. - (has_pointer_operand_p): New. - (range_op_handler::fold_range): Add pointer support. - (range_op_handler::op1_range): Same. - (range_op_handler::op2_range): Same. - (range_op_handler::lhs_op1_relation): Same. - (range_op_handler::lhs_op2_relation): Same. - (range_op_handler::op1_op2_relation): Same. - (class operator_div): Add using. - (class operator_lshift): Add using. - (class operator_rshift):Add using. - (class operator_trunc_mod):Add using. - (class operator_absu):Add using. - * range-op.h (enum range_op_dispatch_type): New. - Add extern definitions for RO_*. - -2024-05-04 Aldy Hernandez - - * value-range.cc (get_legacy_range): New version for prange. - -2024-05-04 Aldy Hernandez - - * value-range.cc (add_vrange): Add prange support. - -2024-05-04 Aldy Hernandez - - * value-range-storage.cc (vrange_allocator::clone_varying): Add - prange support. - (vrange_allocator::clone_undefined): Same. - (vrange_storage::alloc): Same. - (vrange_storage::set_vrange): Same. - (vrange_storage::get_vrange): Same. - (vrange_storage::fits_p): Same. - (vrange_storage::equal_p): Same. - (prange_storage::alloc): New. - (prange_storage::prange_storage): New. - (prange_storage::set_prange): New. - (prange_storage::get_prange): New. - (prange_storage::equal_p): New. - (prange_storage::fits_p): New. - * value-range-storage.h (class prange_storage): Add prange support. - -2024-05-04 Aldy Hernandez - - * data-streamer-in.cc (streamer_read_value_range): Add prange support. - * data-streamer-out.cc (streamer_write_vrange): Same. - -2024-05-04 Aldy Hernandez - - * value-range-pretty-print.cc (vrange_printer::visit): New. - * value-range-pretty-print.h: Declare prange visit() method. - * value-range.cc (vrange::operator=): Add prange support. - (vrange::operator==): Same. - (prange::accept): New. - (prange::set_nonnegative): New. - (prange::set): New. - (prange::contains_p): New. - (prange::singleton_p): New. - (prange::lbound): New. - (prange::ubound): New. - (prange::union_): New. - (prange::intersect): New. - (prange::operator=): New. - (prange::operator==): New. - (prange::invert): New. - (prange::verify_range): New. - (prange::update_bitmask): New. - (range_tests_misc): Use prange. - * value-range.h (enum value_range_discriminator): Add VR_PRANGE. - (class prange): New. - (Value_Range::init): Add prange support. - (Value_Range::operator=): Same. - (Value_Range::supports_type_p): Same. - (prange::prange): New. - (prange::supports_p): New. - (prange::supports_type_p): New. - (prange::set_undefined): New. - (prange::set_varying): New. - (prange::set_nonzero): New. - (prange::set_zero): New. - (prange::contains_p): New. - (prange::zero_p): New. - (prange::nonzero_p): New. - (prange::type): New. - (prange::lower_bound): New. - (prange::upper_bound): New. - (prange::varying_compatible_p): New. - (prange::get_bitmask): New. - (prange::fits_p): New. - -2024-05-04 Aldy Hernandez - - * value-range.h (class prange): New. - -2024-05-03 Andrew Pinski - - PR middle-end/23872 - * tree-pretty-print.cc (dump_generic_node ): Fix - calls to dump_generic_node and also remove unreachable code that is testing - `flags & TDF_SLIM`. - -2024-05-03 Vineet Gupta - - * config/riscv/riscv.cc: Comment updates. - * config/riscv/riscv.h: Ditto. - -2024-05-03 Vineet Gupta - - * doc/rtl.texi: Add entry for GET_MODE_INNER. - -2024-05-03 Richard Biener - - * bitmap.cc (bitmap_alloc): When using the global bitmap obstack - assert that is initialized. - -2024-05-03 Richard Biener - - PR middle-end/114931 - * tree.cc (build_array_type_1): Return early when type_hash_canon - returned an older existing type. - (build_function_type): Likewise. - (build_method_type_directly): Likewise. - (build_offset_type): Likewise. - -2024-05-03 Alex Coplan - - PR rtl-optimization/114924 - * cfgrtl.cc (duplicate_insn_chain): When updating MEM_EXPRs, - don't strip (e.g.) ARRAY_REFs from the final MEM_EXPR. - -2024-05-03 Jakub Jelinek - - PR middle-end/113596 - * tree-inline.cc (expand_call_inline): Emit __builtin_stack_save - and __builtin_stack_restore calls around inlined functions which - call alloca. - -2024-05-03 Richard Biener - - PR tree-optimization/114921 - * tree-vect-stmts.cc (vectorizable_assignment): Require - same vector component modes for input and output for - CONVERT_EXPR_CODE_P. - -2024-05-02 Jeff Law - - * config/riscv/riscv.md (2): Adjust - condition to match what can be properly implemented. Fix various - formatting issues. - (lsi2_sext): Fix formatting - -2024-05-02 Jeff Law - - * config/riscv/predicates.md (arith_or_zbs_operand): New predicate. - * config/riscv/riscv.cc (riscv_build_integer_one): Use bseti to set - single bits when profitable. - * config/riscv/riscv.md (*3): Renamed with '*' prefix. - (3): New expander for IOR/XOR. - -2024-05-02 Richard Biener - - * tree-vect-slp.cc (vect_print_slp_tree): Mark live lanes. - (dot_slp_tree): New overload for multiple entries. - -2024-05-02 Gaius Mulley - - PR modula2/113836 - * doc/gm2.texi (Compiler options): Add -fm2-debug-trace=, - -fm2-dump, -fm2-dump-decl=, -fm2-dump-gimple=, -fm2-dump-quad= - and -fm2-dump-filter=. - -2024-05-02 Marc Poulhiès - - * value-range.h: fix static_assert to use 2 arguments. - -2024-05-02 Peter Damianov - - PR lto/110710 - * lto-wrapper.cc (run_gcc): Instead of truncating a processed - ltrans input from the Makefile use the new -truncate option - to accomplish the same. - -2024-05-02 Peter Damianov - - PR lto/110710 - * common.opt (truncate): New internal option. - * gcc.cc (totruncate_file): New global. - (driver_handle_option): Handle -truncate . - (driver::final_actions): Truncate the file indicated. - -2024-05-02 Richard Biener - - * graphds.cc (dump_graph): Dump in graphviz format. - -2024-05-02 Richard Biener - - * tree-ssa-live.h (tree_live_info_d::global): Remove. - (partition_is_global): Likewise. - (make_live_on_entry): Do not set bit in global. - * tree-ssa-live.cc (new_tree_live_info): Do not allocate - global bitmap. - (delete_tree_live_info): Do not release it. - (set_var_live_on_entry): Do not set bits in it. - -2024-05-02 Richard Biener - - PR middle-end/114579 - * cfgexpand.cc (add_scope_conflicts_1): Record all-to-all - conflicts only when there's a CFG merge but for all CFG merges. - -2024-05-01 Gerald Pfeifer - - PR target/69374 - PR target/112959 - * doc/install.texi (Specific) <*-*-freebsd*>: The Ada and D - run-time libraries are broken on i386 which also can affect - 64-bit builds. Go is broken. - -2024-05-01 Jeff Law - - * config/riscv/bitmanip.md (splitter to use w-form division): Remove - explicit subregs. - (zero extended bitfield extraction): Similarly. - * config/riscv/thead.md (*th_memidx_operand): Similarly. - -2024-05-01 Jeff Law - - * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Break out - tests for easier debugging in store pair fusion case. Fix offset - check in same. - -2024-05-01 Gerald Pfeifer - - PR target/69374 - PR target/112959 - * doc/install.texi (Specific) <*-*-freebsd*>: No longer refer - to GCC or binutils in base. Recommend bootstrap using binutils. - -2024-05-01 Gerald Pfeifer - - PR target/69374 - * doc/install.texi (Specific) : Remove details - on libunwind for GCC 3.4 and earlier. - -2024-05-01 Aldy Hernandez - - * ipa-fnsummary.cc (evaluate_properties_for_edge): Initialize Value_Range's. - * value-range.h (class Value_Range): Add a buffer and remove - m_irange and m_frange. - (Value_Range::Value_Range): Call init. - (Value_Range::set_type): Same. - (Value_Range::init): Use in place new to initialize buffer. - (Value_Range::operator=): Tidy. - -2024-05-01 Aldy Hernandez - - * value-range.cc (unsupported_range::union_): Cast vrange to - unsupported_range. - (unsupported_range::intersect): Same. - (unsupported_range::operator=): Make argument an unsupported_range. - * value-range.h: New constructor. - -2024-04-30 Andrew MacLeod - - * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Don't - assert that here are less than 3 operands. - (gimple_range_op_handler::maybe_builtin_call): Simply return if - there is no type for the function call. - -2024-04-30 Andrew MacLeod - - * gimple-range.cc (gimple_ranger::range_on_entry): Adjust for new - API and support non-SSA expressions. - (gimple_ranger::range_on_exit): Ditto. - * gimple-range.h (range_on_entry, range_on_exit): Adjust API. - * value-query.cc (range_query::range_on_entry): New. - (range_query::range_on_exit): New. - (range_query::value_on_entry): New. - (range_query::value_on_exit): New. - (range_query::invoke_range_of_expr): New. - (range_query::get_tree_range): Allow stmt, on_entry or on_exit - range queries. - SSA_NAMES should invoke range_of_expr if possible. - * value-query.h (class range_query): Adjust prototypes. - -2024-04-30 Andrew MacLeod - - * gimple-range.cc (gimple_ranger::range_of_expr): Call range_of_stmt - when there is no context stmt. - -2024-04-30 Andrew MacLeod - - * gimple-range-cache.cc (ranger_cache::get_global_range): Do not - pre-evaluate PHI nodes from the cache. - (ranger_cache::fill_block_cache): Make re-entrant. - -2024-04-30 Andrew MacLeod - - * value-query.cc (get_range_global): Rename to gimple_range_global. - (gimple_range_global): Remove wrapper function. - (global_range_query::range_of_expr): Call gimple_range_global. - -2024-04-30 Andrew Pinski - - * tree-cfg.cc (verify_gimple_assign): Remove quote - mark to shut up the warning. - -2024-04-30 Andrew Pinski - - * tree-ssa-phiopt.cc (value_replacement): Reject undef variables - so they don't become unconditional used. - -2024-04-30 Andrew Pinski - - * tree-ssa-phiopt.cc (value_replacement): Move check for - NE/EQ earlier. - -2024-04-30 Andrew Pinski - - * tree-ssa-phiopt.cc (single_non_singleton_phi_for_edges): - Remove the special case of gimple_seq_singleton_p. - -2024-04-30 Andrew Pinski - - PR middle-end/112976 - * cfgexpand.cc (expand_gimple_stmt_1): Remove - support for expanding nontemporal "moves" with - ssa names on the LHS. - -2024-04-30 Andrew Pinski - - PR middle-end/112976 - * tree-cfg.cc (verify_gimple_assign): Verify that - nontmporal moves are stores. - * gimple.h (struct gimple): Note that only - nontemporal stores are supported. - -2024-04-30 Jivan Hakobyan - - * config/riscv/iterators.md (fix_ops, fix_uns): New iterators. - (RINT, rint_pattern, rint_rm): Remove unused iterators. - * config/riscv/riscv-protos.h (get_fp_rounding_coefficient): Prototype. - * config/riscv/riscv-v.cc (get_fp_rounding_coefficient): Externalize. - external linkage. - * config/riscv/riscv.md (UNSPEC_LROUND): Remove. - (fix_trunc2): Replace with ... - (_truncsi2): New expander & associated insn. - (_truncsi2_ext): New insn. - (_truncdi2): Likewise. - (l2): Replace with ... - (lrintsi2): New expander and associated insn. - (lrintsi2_ext, lrintdi2): New insns. - (2): Replace with.... - (lsi2): New expander and associated insn. - (lsi2_sext): New insn. - (ldi2): Likewise. - (2): New expander. - -2024-04-30 Aldy Hernandez - - * gimple-ssa-warn-access.cc (check_nul_terminated_array): Change - int_range<2> to int_range_max. - (memmodel_to_uhwi): Same. - * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same. - (determine_value_range): Same. - (infer_loop_bounds_from_signedness): Same. - (scev_var_range_cant_overflow): Same. - -2024-04-30 Richard Biener - - PR middle-end/13421 - * optabs-tree.cc (optab_for_tree_code): Do not consider - {add,sub}v or {us,ss}{add,sub} optabs for POINTER_DIFF_EXPR - or POINTER_PLUS_EXPR. - -2024-04-30 Jakub Jelinek - - PR tree-optimization/114876 - * gimple-ssa-sprintf.cc (format_character): For min == 0 && max == 0, - set max, likely and unlikely members to 1 rather than 0. Remove - useless res.knownrange = true;. Formatting fixes. - -2024-04-30 Jakub Jelinek - Hongtao Liu - - PR tree-optimization/114883 - * tree-vect-loop.cc (vect_transform_reduction): Allow IFN_COND_MIN and - IFN_COND_MAX in the assert. - -2024-04-30 Jakub Jelinek - - * doc/cpp.texi (__STDC_VERSION__): Document 202311L value - for -std=c23/-std=gnu23. - -2024-04-30 Richard Biener - - PR middle-end/114734 - * internal-fn.cc (expand_call_mem_ref): Use - get_gimple_for_ssa_name to get at the def stmt of the address - argument to honor SSA coalescing constraints. - -2024-04-29 demin.han - - PR target/114506 - * config/riscv/riscv-vector-costs.cc (non_contiguous_memory_access_p): Rename - (need_additional_vector_vars_p): Rename and refine condition - -2024-04-29 Pan Li - - PR target/114885 - * config/riscv/riscv.cc (riscv_legitimize_subreg_const_poly_move): New - func impl to take care of (const_int_poly:TI 8). - (riscv_legitimize_move): Handle subreg is const_int_poly, - -2024-04-29 Christoph Müllner - - * common/config/riscv/riscv-common.cc: Move ziccamoa, ziccif, - zicclsm, and ziccrse into riscv_zi_subext. - * config/riscv/riscv.opt: Define MASK_ZIC64B for - riscv_ziccmo_subext. - -2024-04-29 Jie Mei - - * config/mips/i6400.md (i6400_fpu_minmax): New - define_insn_reservation. - * config/mips/mips.h (ISA_HAS_FMIN_FMAX): Define new macro. - * config/mips/mips.md (UNSPEC_FMIN): New unspec. - (UNSPEC_FMAX): Same as above. - (type): Add fminmax. - (smin3): Generates MIN.fmt instructions. - (smax3): Generates MAX.fmt instructions. - (fmin3): Generates MIN.fmt instructions. - (fmax3): Generates MAX.fmt instructions. - * config/mips/p6600.md (p6600_fpu_fabs): Include fminmax - type. - -2024-04-28 Aldy Hernandez - - * tree-ssa-ccp.cc (ccp_finalize): Normalize before calling - set_bitmask. - * value-range.cc (irange::intersect_bitmask): Calculate changed - irange_bitmask bits on our own. - (irange::union_bitmask): Same. - (irange_bitmask::verify_mask): Verify that bits are normalized. - * value-range.h (irange_bitmask::union_): Do not normalize. - Remove return value. - (irange_bitmask::intersect): Same. - -2024-04-28 Aldy Hernandez - - * range-op-ptr.cc (pointer_plus_operator::wi_fold): Use method - range setters instead of out of line functions. - (pointer_min_max_operator::wi_fold): Same. - (pointer_and_operator::wi_fold): Same. - (pointer_or_operator::wi_fold): Same. - * range-op.cc (operator_negate::fold_range): Same. - (operator_addr_expr::fold_range): Same. - (range_op_cast_tests): Same. - * range.cc (range_zero): Remove. - (range_nonzero): Remove. - * range.h (range_zero): Remove. - (range_nonzero): Remove. - * value-range.cc (range_tests_misc): Use method instead of out of - line function. - -2024-04-28 Aldy Hernandez - - * value-range-pretty-print.cc (print_int_bound): New. - (print_irange_bitmasks): New. - (vrange_printer::print_irange_bound): Remove. - (vrange_printer::print_irange_bitmasks): Remove. - * value-range-pretty-print.h: Remove print_irange_bitmasks and - print_irange_bound - -2024-04-28 Aldy Hernandez - - * value-range.h (range_includes_zero_p): Accept vrange. - -2024-04-28 Aldy Hernandez - - * tree-ssa-loop-split.cc (split_at_bb_p): Make int_range a Value_Range. - * tree-ssa-strlen.cc (get_range): Same. - * value-query.cc (range_query::get_tree_range): Handle both - integers and pointers. - * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Make - r0 and r1 Value_Range's. - -2024-04-28 Aldy Hernandez - - * value-range.cc (get_bitmask_from_range): Move out of irange class. - (irange::get_bitmask): Call function instead of internal method. - * value-range.h (class irange): Remove get_bitmask_from_range. - -2024-04-28 Aldy Hernandez - - * value-range.cc (get_legacy_range): Make static and add another - version of get_legacy_range that takes a vrange. - * value-range.h (class irange): Remove unnecessary friendship with - get_legacy_range. - (get_legacy_range): Accept a vrange. - -2024-04-28 Aldy Hernandez - - * value-range-storage.cc (irange_storage::set_irange): Move - verification code from here... - (vrange_storage::set_vrange): ...to here. - -2024-04-28 Aldy Hernandez - - * gimple-range-op.cc (cfn_clz::fold_range): Change - range_includes_zero_p argument to a reference. - (cfn_ctz::fold_range): Same. - * range-op.cc (operator_plus::lhs_op1_relation): Same. - * value-range.h (range_includes_zero_p): Same. - -2024-04-28 Aldy Hernandez - - * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Remove - type from range_true and range_false. - -2024-04-28 Aldy Hernandez - - * value-range-storage.h: Remove friends. - * value-range.cc (gt_ggc_mx): Remove. - (gt_pch_nx): Remove. - * value-range.h (class vrange): Remove GTY markers. - (class irange): Same. - (class int_range): Same. - (class frange): Same. - (gt_ggc_mx): Remove. - (gt_pch_nx): Remove. - -2024-04-28 Aldy Hernandez - - * ipa-cp.cc (propagate_bits_across_jump_function): Access bitmask - through base class. - (ipcp_store_vr_results): Same. - * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same. - (ipcp_get_parm_bits): Same. - (ipcp_update_vr): Same. - * range-op-mixed.h (update_known_bitmask): Change argument to vrange. - * range-op.cc (update_known_bitmask): Same. - * value-range.cc (vrange::update_bitmask): New. - (irange::set_nonzero_bits): Move to vrange class. - (irange::get_nonzero_bits): Same. - * value-range.h (class vrange): Add update_bitmask, get_bitmask, - get_nonzero_bits, and set_nonzero_bits. - (class irange): Make bitmask methods virtual overrides. - (class Value_Range): Add get_bitmask and update_bitmask. - -2024-04-28 Aldy Hernandez - - * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Convert - bound to wide_int. - * value-range.cc (Value_Range::lower_bound): Remove. - (Value_Range::upper_bound): Remove. - (unsupported_range::lbound): New. - (unsupported_range::ubound): New. - (frange::lbound): New. - (frange::ubound): New. - (irange::lbound): New. - (irange::ubound): New. - * value-range.h (class vrange): Add lbound() and ubound(). - (class irange): Same. - (class frange): Same. - (class unsupported_range): Same. - (class Value_Range): Rename lower_bound and upper_bound to lbound - and ubound respectively. - -2024-04-28 Aldy Hernandez - - * gimple-ssa-warn-access.cc (check_nul_terminated_array): Make Value_Range an int_range. - (memmodel_to_uhwi): Same - * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same. - (determine_value_range): Same. - (infer_loop_bounds_from_signedness): Same. - (scev_var_range_cant_overflow): Same. - -2024-04-28 Aldy Hernandez - - * value-range.h (vrange::~vrange): New. - (int_range::~int_range): Make final override. - -2024-04-28 Aldy Hernandez - - * value-range.cc (unsupported_range::accept): Move down. - (vrange::contains_p): Rename to... - (unsupported_range::contains_p): ...this. - (vrange::singleton_p): Rename to... - (unsupported_range::singleton_p): ...this. - (vrange::set): Rename to... - (unsupported_range::set): ...this. - (vrange::type): Rename to... - (unsupported_range::type): ...this. - (vrange::supports_type_p): Rename to... - (unsupported_range::supports_type_p): ...this. - (vrange::set_undefined): Rename to... - (unsupported_range::set_undefined): ...this. - (vrange::set_varying): Rename to... - (unsupported_range::set_varying): ...this. - (vrange::union_): Rename to... - (unsupported_range::union_): ...this. - (vrange::intersect): Rename to... - (unsupported_range::intersect): ...this. - (vrange::zero_p): Rename to... - (unsupported_range::zero_p): ...this. - (vrange::nonzero_p): Rename to... - (unsupported_range::nonzero_p): ...this. - (vrange::set_nonzero): Rename to... - (unsupported_range::set_nonzero): ...this. - (vrange::set_zero): Rename to... - (unsupported_range::set_zero): ...this. - (vrange::set_nonnegative): Rename to... - (unsupported_range::set_nonnegative): ...this. - (vrange::fits_p): Rename to... - (unsupported_range::fits_p): ...this. - (unsupported_range::operator=): New. - (frange::fits_p): New. - * value-range.h (class vrange): Make an abstract class. - (class unsupported_range): Declare override methods. - -2024-04-28 Gerald Pfeifer - - PR target/69374 - PR target/112959 - * doc/install.texi (Specific) <*-*-freebsd*>: Remove references to - FreeBSD 7 and older. - -2024-04-28 Gerald Pfeifer - - * doc/contrib.texi: Update David Binderman's entry. - -2024-04-28 liuhongt - - * config/i386/i386.md: (zero_extendsidi2): Adjust - alternative *k to ?k. - (zero_extenddi2): Ditto. - (*zero_extendsi2): Ditto. - (*zero_extendqihi2): Ditto. - -2024-04-28 Jiufu Guo - - PR target/95782 - * config/s390/s390-c.cc (s390_macro_to_expand): Avoid empty identifier. - -2024-04-28 Andrew Pinski - - PR target/113822 - * config/aarch64/aarch64.cc (aarch64_evpc_reencode): Use - vec_perm_indices::new_shrunk_vector instead of manually - going through the indices. - -2024-04-27 Xi Ruoyao - - PR target/114861 - * config/loongarch/loongarch.md (bstrins__for_mask): Add - constraints for operands. - (bstrins__for_ior_mask): Likewise. - -2024-04-27 Fangrui Song - - * config/riscv/elf.h (LINK_SPEC): Add -X. - * config/riscv/freebsd.h (LINK_SPEC): Add -X. - * config/riscv/linux.h (LINK_SPEC): Add -X. - -2024-04-26 Wilco Dijkstra - - * config/aarch64/aarch64.cc (MAX_SET_SIZE): New define. - (aarch64_progress_pointer): Remove function. - (aarch64_set_one_block_and_progress_pointer): Simplify and clean up. - (aarch64_expand_setmem): Clean up implementation, use byte offsets, - simplify size calculation. - -2024-04-26 Wilco Dijkstra - - * config/aarch64/aarch64.cc (aarch64_mode_valid_for_sched_fusion_p): - Remove check for AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS. - (aarch64_advsimd_ldp_stp_p): Likewise. - (aarch64_stp_sequence_cost): Likewise. - (aarch64_expand_cpymem): Likewise. - (aarch64_expand_setmem): Likewise. - * config/aarch64/aarch64-ldp-fusion.cc (ldp_operand_mode_ok_p): - Likewise. - * config/aarch64/aarch64-ldpstp.md: Likewise. - * config/aarch64/aarch64-tuning-flags.def: Remove NO_LDP_STP_QREGS. - * config/aarch64/tuning_models/emag.h: Likewise. - * config/aarch64/tuning_models/xgene1.h: Likewise. - -2024-04-26 Frederik Harwath - - * config.gcc: Add gfx90c. - * config/gcn/gcn-hsa.h (NO_SRAM_ECC): Likewise. - * config/gcn/gcn-opts.h (enum processor_type): Likewise. - (TARGET_GFX90c): New macro. - * config/gcn/gcn.cc (gcn_option_override): Handle gfx90c. - (gcn_omp_device_kind_arch_isa): Likewise. - (output_file_start): Likewise. - * config/gcn/gcn.h: Add gfx90c. - * config/gcn/gcn.opt: Likewise. - * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90c): New macro. - (get_arch): Handle gfx90c. - (main): Handle EF_AMDGPU_MACH_AMDGCN_GFX90c - * config/gcn/t-omp-device: Add gfx90c. - * doc/install.texi: Likewise. - * doc/invoke.texi: Likewise. - -2024-04-25 David Faust - - * config/bpf/bpf.h (PREFERRED_DEBUGGING_TYPE): Set to BTF_DEBUG. - -2024-04-25 David Faust - - * config/bpf/bpf.cc (bpf_option_override): Improve handling of CO-RE - options to avoid issues with -gtoggle. - -2024-04-25 Jakub Jelinek - - PR fortran/114825 - * tree-nested.cc (get_debug_decl): New function. - (get_nonlocal_debug_decl): Use it. - (get_local_debug_decl): Likewise. - -2024-04-25 Jose E. Marchesi - - * config/bpf/bpf.opt: Use ASM_PSEUDOC for the default value of - -masm. - * config/bpf/bpf.h (ASM_SPEC): Adapt accordingly. - * doc/invoke.texi (eBPF Options): Update. - -2024-04-25 Richard Ball - - PR target/114837 - * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear): - Add zero/sign extend. - (arm_expand_prologue): Add zero/sign extend. - -2024-04-25 Richard Biener - - PR tree-optimization/114792 - * tree-ssa-loop-ch.cc (ch_order_loops): New function. - (ch_base::copy_headers): Sort loops to unloop inner-to-outer. - -2024-04-25 Eric Botcazou - - PR target/114416 - * config/sparc/sparc.h (SUN_V9_ABI_COMPATIBILITY): New macro. - * config/sparc/sol2.h (SUN_V9_ABI_COMPATIBILITY): Redefine it. - * config/sparc/sparc.cc (fp_type_for_abi): New predicate. - (traverse_record_type): Use it to spot floating-point types. - (compute_fp_layout): Also deal with array types. - -2024-04-25 Pan Li - - * config/riscv/vector-crypto.md: Add early clobber to the - dest operand of vwsll. - -2024-04-25 Haochen Gui - - * config/rs6000/altivec.md (*bcdinvalid_): Replace bcdadd - with bcdsub. - (bcdinvalid_): Likewise. - -2024-04-24 Jakub Jelinek - - PR other/114738 - * opts.cc (get_option_url): Revert 2024-04-17 changes. - * gcc-urlifier.cc: Don't include diagnostic-core.h. - (gcc_urlifier::make_doc_url): Revert 2024-04-17 changes. - * configure.ac (documentation-root-url): On release branches - append gcc-MAJOR.MINOR.0/ to the default DOCUMENTATION_ROOT_URL. - * doc/install.texi (--with-documentation-root-url=): Document - the change of the default. - * configure: Regenerate. - -2024-04-24 Pan Li - - Revert: - 2023-11-29 Juzhe-Zhong - kito-cheng - kito-cheng - - PR target/112431 - * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): New register filters. - * config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Ditto. - (no,yes): Ditto. - * config/riscv/vector.md: Support highpart register overlap for vwcvt. - -2024-04-24 Jose E. Marchesi - - * config.gcc: Add bpf-c.o as a target object for C and C++. - * config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc. - * config/bpf/bpf-c.cc: New file. - (bpf_target_macros): Move from bpf.cc and define BPF CPU - feature macros. - * config/bpf/t-bpf: Add rules to build bpf-c.o. - -2024-04-24 Richard Biener - - PR tree-optimization/114787 - * tree-cfg.cc (remove_edge_and_dominated_blocks): When - removing a loop backedge clear niter info and when removing - the last backedge of a loop mark that loop for removal. - -2024-04-24 Richard Biener - - PR tree-optimization/114832 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Fix dominance check. - -2024-04-24 Haochen Jiang - - * config/i386/i386-options.cc (ix86_valid_target_attribute_tree): - Check whether AVX512F is explicitly enabled. - -2024-04-24 Pan Li - - Revert: - 2023-11-30 Juzhe-Zhong - - * config/riscv/vector.md: Support highpart overlap for vext.vf2 - -2024-04-23 Jakub Jelinek - - PR target/114810 - * config/i386/i386.md (*andn3_doubleword_bmi): Split the =&r,r,ro - alternative into =&r,r,r enabled only for x64 and =&r,r,o. - -2024-04-23 Jan Hubicka - - * doc/invoke.texi (-ftree-loop-distribute-patterns): Remove duplicated - sentence about optimization flags implying this. - -2024-04-23 Jakub Jelinek - - * config/darwin.opt (init): Spelling fix: initialiser -> initializer. - -2024-04-23 Jakub Jelinek - - * config/epiphany/epiphany.opt (may-round-for-trunc): Spelling fix: - floatig -> floating. - * config/riscv/riscv.opt (mcsr-check): Spelling fix: CRS -> CSR. - * params.opt (-param=ipa-cp-profile-count-base=): Spelling fix: - frequncy -> frequency. - -2024-04-23 Richard Biener - - PR tree-optimization/114799 - * tree-vect-slp.cc (vect_get_and_check_slp_defs): Properly - update ->any_pattern when swapping operands. - -2024-04-23 Andreas Krebbel - - PR target/114676 - * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Use a - MEM_REF with an addend of type ptr_type_node. - -2024-04-23 Yang Yujie - - * config.gcc: Add loongarch-evolution.o. - * config/loongarch/genopts/genstr.sh: Enable generation of - loongarch-evolution.[cc,h]. - * config/loongarch/t-loongarch: Likewise. - * config/loongarch/genopts/gen-evolution.awk: New file. - * config/loongarch/genopts/isa-evolution.in: Mark ISA version - of introduction for each ISA evolution feature. - * config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): - Define builtin macros for enabled ISA evolutions and the ISA - version. - * config/loongarch/loongarch-cpu.cc: Use loongarch-evolution.h. - * config/loongarch/loongarch.h: Likewise. - * config/loongarch/loongarch-cpucfg-map.h: Delete. - * config/loongarch/loongarch-evolution.cc: New file. - * config/loongarch/loongarch-evolution.h: New file. - * config/loongarch/loongarch-opts.h (ISA_HAS_FRECIPE): Define. - (ISA_HAS_DIV32): Likewise. - (ISA_HAS_LAM_BH): Likewise. - (ISA_HAS_LAMCAS): Likewise. - (ISA_HAS_LD_SEQ_SA): Likewise. - -2024-04-23 Yang Yujie - - * config.gcc: Make la64v1.0 the default ISA preset of the lp64d ABI. - * config/loongarch/genopts/loongarch-strings: Define la64v1.0, la64v1.1. - * config/loongarch/genopts/loongarch.opt.in: Likewise. - * config/loongarch/loongarch-c.cc (LARCH_CPP_SET_PROCESSOR): Likewise. - (loongarch_cpu_cpp_builtins): Likewise. - * config/loongarch/loongarch-cpu.cc (get_native_prid): Likewise. - (fill_native_cpu_config): Likewise. - * config/loongarch/loongarch-def.cc (array_tune): Likewise. - * config/loongarch/loongarch-def.h: Likewise. - * config/loongarch/loongarch-driver.cc (driver_set_m_parm): Likewise. - (driver_get_normalized_m_opts): Likewise. - * config/loongarch/loongarch-opts.cc (default_tune_for_arch): Likewise. - (TUNE_FOR_ARCH): Likewise. - (arch_str): Likewise. - (loongarch_target_option_override): Likewise. - * config/loongarch/loongarch-opts.h (TARGET_uARCH_LA464): Likewise. - (TARGET_uARCH_LA664): Likewise. - * config/loongarch/loongarch-str.h (STR_CPU_ABI_DEFAULT): Likewise. - (STR_ARCH_ABI_DEFAULT): Likewise. - (STR_TUNE_GENERIC): Likewise. - (STR_ARCH_LA64V1_0): Likewise. - (STR_ARCH_LA64V1_1): Likewise. - * config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width): Likewise. - (loongarch_asm_code_end): Likewise. - * config/loongarch/loongarch.opt: Likewise. - * doc/invoke.texi: Likewise. - -2024-04-22 Pan Li - - * config/riscv/vector-crypto.md: - -2024-04-22 Pan Li - - Revert: - 2023-11-30 Juzhe-Zhong - - * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Fix constraint. - * config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Rename vconstraint into group_overlap. - (no,yes): Ditto. - (none,W21,W42,W84,W43,W86,W87): Ditto. - * config/riscv/vector.md: Ditto. - -2024-04-22 Pan Li - - Revert: - 2023-12-04 Juzhe-Zhong - - * config/riscv/riscv.md: Rostify the constraints. - -2024-04-22 Haochen Jiang - - * common/config/i386/i386-common.cc (processor_alias_table): - Let Sierra Forest map to CPU_TYPE enum. - -2024-04-22 Andreas Krebbel - - * config/s390/s390.cc (s390_option_override_internal): Check zarch - flag before enabling -mvx. - -2024-04-22 Pan Li - - Revert: - 2023-11-30 Juzhe-Zhong - - PR target/112431 - * config/riscv/vector.md: Add widenning overlap. - -2024-04-22 Pan Li - - Revert: - 2023-12-01 Juzhe-Zhong - - PR target/112431 - * config/riscv/vector.md: Support highpart overlap for indexed load. - -2024-04-22 Pan Li - - Revert: - 2023-12-04 Juzhe-Zhong - - PR target/112431 - * config/riscv/vector.md: Add highest-number overlap support. - -2024-04-22 Pan Li - - Revert: - 2023-11-30 Juzhe-Zhong - - PR target/112431 - * config/riscv/vector.md: Add widening overlap of vf2/vf4. - -2024-04-21 Pan Li - - Revert: - 2023-12-01 Juzhe-Zhong - - PR target/112431 - * config/riscv/vector.md: Support highpart overlap for vx/vf. - -2024-04-20 Pan Li - - Revert: - 2023-12-04 Juzhe-Zhong - - PR target/112431 - * config/riscv/vector.md: Fix incorrect overlap in v0. - -2024-04-20 Pan Li - - Revert: - 2023-12-11 Juzhe-Zhong - - PR target/112431 - * config/riscv/vector.md: Support highest overlap for wv instructions. - -2024-04-20 Pan Li - - Revert: - 2023-12-18 Juzhe-Zhong - - PR target/112432 - * config/riscv/riscv.md (none,W21,W42,W84,W43,W86,W87): Add W0. - (none,W21,W42,W84,W43,W86,W87,W0): Ditto. - * config/riscv/vector.md: Ditto. - -2024-04-19 Jakub Jelinek - - PR target/114783 - * config/i386/sse.md (*avx2_eq3): Change last operand's - constraint from "jm" to "xjm". - -2024-04-19 Jakub Jelinek - - PR middle-end/114753 - * internal-fn.cc (expand_arith_overflow): Add one missing restore - of flag_trapv before return. - -2024-04-19 Tamar Christina - - PR tree-optimization/114769 - * tree-vect-patterns.cc: - (vect_recog_absolute_difference): Have only one success condition. - (vect_recog_abd_pattern): Handle further checks if - vect_recog_absolute_difference fails. - -2024-04-19 Cupertino Miranda - - * config/bpf/core-builtins.cc (get_index_for_enum_value): Create - function. - (pack_enum_value): Check for enumerator and error out. - (process_enum_value): Correct string allocation. - -2024-04-19 Cupertino Miranda - - * config/bpf/bpf-protos.h (bpf_add_core_reloc): Renamed function - to bpf_output_move. - * config/bpf/bpf.cc (bpf_legitimate_address_p): Allow - UNSPEC_CORE_RELOC to match an address. - (bpf_insn_cost): Make UNSPEC_CORE_RELOC immediate moves - expensive to prioritize loads and stores. - (TARGET_INSN_COST): Add hook. - (bpf_output_move): Wrapper to call bpf_output_core_reloc. - (bpf_print_operand): Add support to print immediate operands - specified with the UNSPEC_CORE_RELOC. - (bpf_print_operand_address): Likewise, but to support - UNSPEC_CORE_RELOC in addresses. - (bpf_init_builtins): Flag BPF_BUILTIN_CORE_RELOC as NOTHROW. - * config/bpf/bpf.md: Wrap patterns for MOV, LD and ST - instruction with bpf_output_move call. - (mov_reloc_core): Remove now spurious define_insn. - * config/bpf/constraints.md: Added "c" and "C" constraints to - match immediates represented with UNSPEC_CORE_RELOC. - * config/bpf/core-builtins.cc (bpf_add_core_reloc): Remove - (bpf_output_core_reloc): Add function to create the CO-RE - relocations based on new matching rules. - * config/bpf/core-builtins.h (bpf_output_core_reloc): Add - prototype. - * config/bpf/predicates.md (core_imm_operand) Add predicate. - (mov_src_operand): Add match for core_imm_operand. - -2024-04-19 Jakub Jelinek - - PR rtl-optimization/114768 - * rtlanal.cc (set_noop_p): Don't return true for MEM <- MEM - sets if src has side-effects or for stores into ZERO_EXTRACT - if ZERO_EXTRACT operand has side-effects. - -2024-04-19 Alexandre Oliva - - * config/t-vxworks (vxw-glimits.h): Don't mangle c23-required - __STDC_VERSION_LIMITS_H__ define. - -2024-04-18 Sandra Loosemore - - * config.gcc: Add nios2*-*-* to the list of obsoleted targets. - -2024-04-18 Alexandre Oliva - - * doc/sourcebuild.texi (strndup): Add effective target. - -2024-04-18 Tamar Christina - - PR target/114741 - * config/aarch64/aarch64.md (3): Remove ^ from alt 2. - (copysign3): Use SIMD version of IOR directly. - -2024-04-18 Jakub Jelinek - - PR middle-end/114753 - * internal-fn.cc (expand_mul_overflow): Save flag_trapv and - temporarily clear it for the duration of the function, then - restore previous value. - (expand_vector_ubsan_overflow): Likewise. - (expand_arith_overflow): Likewise. - -2024-04-17 Jakub Jelinek - - PR other/114738 - * opts.cc (get_option_url): On release branches append - gcc-MAJOR.MINOR.0/ after DOCUMENTATION_ROOT_URL. - * gcc-urlifier.cc (gcc_urlifier::make_doc_url): Likewise. - -2024-04-17 Richard Biener - - PR tree-optimization/114749 - * tree-vect-loop.cc (vect_analyze_loop_2): Reset - LOOP_VINFO_USING_PARTIAL_VECTORS_P when re-trying without SLP. - -2024-04-17 Georg-Johann Lay - - PR target/114752 - * config/avr/avr.cc (avr_print_operand) [CONST_DOUBLE_P]: Handle DFmode. - -2024-04-17 Jakub Jelinek - - PR sanitizer/114743 - * asan.cc (maybe_instrument_call): Don't instrument calls to - .ABNORMAL_DISPATCHER. - -2024-04-16 Andrew Pinski - - PR c/92880 - * doc/extend.texi (Using Vector Instructions): Add that - the base_types could be a typedef of them. - -2024-04-16 Richard Biener - - PR tree-optimization/114736 - * tree-vect-slp.cc (vect_optimize_slp_pass::is_cfg_latch_edge): - Do not consider VEC_PERM_EXPRs as PHI use. - -2024-04-16 Richard Biener - - PR tree-optimization/114733 - * tree-vect-loop.cc (vectorizable_nonlinear_induction): Reject - neg induction vectorization of single element vectors. - -2024-04-16 Jakub Jelinek - - * tree.cc (array_type_nelts): Ensure 2 spaces after . in comment - instead of just one. - (build_variant_type_copy): Likewise. - (tree_check_failed): Likewise. - (build_atomic_base): Likewise. - * ipa-free-lang-data.cc (fld_incomplete_type_of): Use an indefinite - article rather than a. - -2024-04-16 Fei Gao - - * config/riscv/riscv.cc (riscv_expand_conditional_move): - replace or with add when expanding zicond if possible. - -2024-04-16 Alexandre Oliva - - PR middle-end/112938 - * ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from - indirected parm. - (maybe_make_indirect): Restore volatility in dereferences. - -2024-04-16 Lulu Cheng - - * config/loongarch/loongarch.opt.urls: Regenerate. - * config/mn10300/mn10300.opt.urls: Likewise. - * config/msp430/msp430.opt.urls: Likewise. - * config/nds32/nds32-elf.opt.urls: Likewise. - * config/nds32/nds32-linux.opt.urls: Likewise. - * config/nds32/nds32.opt.urls: Likewise. - * config/pru/pru.opt.urls: Likewise. - * config/riscv/riscv.opt.urls: Likewise. - * config/rx/rx.opt.urls: Likewise. - * config/sh/sh.opt.urls: Likewise. - * config/sparc/sparc.opt.urls: Likewise. - * doc/invoke.texi: Add indexes for some compilation options. - -2024-04-15 Georg-Johann Lay - - * config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28, - avr16du32, avr32du14, avr32du20, avr32du28, avr32du32. - * doc/avr-mmcu.texi: Rebuild. - -2024-04-15 Robin Dapp - - PR target/114668 - * config/riscv/autovec.md: Add VLS. - -2024-04-15 Richard Biener - - PR gcov-profile/114715 - * gimplify.cc (gimplify_switch_expr): Set the location of the - GIMPLE switch. - -2024-04-15 H.J. Lu - - PR target/114696 - * config/i386/i386.md (isa): Add apx_ndd_64. - (enabled): Likewise. - (*add3_doubleword): Change rjO to r,ro,jO with 8-bit - signed integer constant and enable jO only for apx_ndd_64. - (*add3_doubleword_cc_overflow_1): Likewise. - (*and3_doubleword): Likewise. - (*3_doubleword): Likewise. - -2024-04-15 Tamar Christina - - PR tree-optimization/114403 - * tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when - peeling for gaps and early break. - -2024-04-15 Jakub Jelinek - - PR c++/114634 - * attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for - decls with NULL TREE_TYPE. - -2024-04-12 Andrew Carlotti - - * config/aarch64/aarch64-option-extensions.def: Add RCPC to - RCPC3 dependencies. - * config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for - RCPC3 bit - -2024-04-12 Andrew Carlotti - - * config/aarch64/aarch64-arches.def: Add CSSC to V8_9A - dependencies. - -2024-04-12 Will Schmidt - Peter Bergner - - PR target/101865 - * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use - TARGET_POWER8. - * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use - OPTION_MASK_POWER8. - * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8. - (ISA_2_7_MASKS_SERVER): Likewise. - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Update - comment. Use OPTION_MASK_POWER8 and TARGET_POWER8. - * config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8. - * config/rs6000/rs6000.md (define_attr "isa"): Add p8. - (define_attr "enabled"): Handle it. - (define_insn "prefetch"): Use TARGET_POWER8. - * config/rs6000/rs6000.opt (mpower8-internal): New. - -2024-04-12 Jason Merrill - Patrick Palka - - PR c++/113141 - * doc/invoke.texi: Document -Wcast-user-defined. - -2024-04-12 Tatsuyuki Ishi - - * config/riscv/riscv.opt.urls: Regenerated. - -2024-04-12 Andrew Pinski - - PR tree-optimization/114666 - * match.pd (`!a?b:c`): Reject signed types for the condition. - (`a?~t:t`): Likewise. - -2024-04-12 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require - all tiles to have the same suffix. - -2024-04-12 Pan Li - - * config/riscv/riscv.cc (riscv_vector_float_type_p): Take int - as the return value instead of unsigned. - (riscv_vector_element_bitsize): Ditto. - (riscv_vector_required_min_vlen): Ditto. - (riscv_validate_vector_type): Take int type for local variable(s). - -2024-04-12 Jakub Jelinek - - * tree-cfg.cc (gimple_verify_flow_info): Make the misplaced - returns_twice diagnostics translatable. - -2024-04-12 Jakub Jelinek - - PR sanitizer/114687 - * gimple-iterator.cc (gsi_safe_insert_before): Only use - edge_before_returns_twice_call if bb_has_abnormal_pred. - (gsi_safe_insert_seq_before): Likewise. - * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only - push to m_returns_twice_calls if bb_has_abnormal_pred. - -2024-04-12 Pan Li - - PR target/114639 - * config/riscv/riscv.cc (riscv_function_value_regno_p): Add - TARGET_VECTOR predicate for V_RETURN regno. - -2024-04-11 David Faust - - * btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and - fix potentially looking up wrong type for asm debug comment info. - Split into... - (btf_asm_datasec_type_ref): ... This. New. - (btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref. - (btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member) - (btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call. - -2024-04-11 David Faust - - * btfout.cc (btf_asm_sou_member): Always emit non-representable - bitfield members as having 'void' type. Refactor slightly. - -2024-04-11 Andrew Carlotti - - * config/aarch64/aarch64-option-extensions.def: - Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v" - and "ls64_accdata" FMV features. - -2024-04-11 Andrew Carlotti - - * config/aarch64/aarch64-option-extensions.def: - Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt", - "fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16", - "sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and - "wfxt" entries. - -2024-04-11 Andrew Carlotti - - * config/aarch64/aarch64-option-extensions.def: - Fix "rmd"->"rdm", and add FMV to "rdma". - * config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM. - -2024-04-11 Andrew Carlotti - - * config/aarch64/aarch64.cc (compare_feature_masks): - Use ARRAY_SIZE and >=0 for iteration bounds. - (aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE. - -2024-04-11 Andrew Carlotti - - * config/aarch64/aarch64-option-extensions.def: Reorder FMV entries. - -2024-04-11 Gaius Mulley - - * doc/standards.texi (Language Standards Supported by GCC): - Add Modula-2 language section. - -2024-04-11 Jakub Jelinek - - PR middle-end/110027 - * asan.cc (asan_emit_stack_protection): Assert offsets[0] is - zero if there is no stack protect guard, otherwise - -ASAN_RED_ZONE_SIZE. If alignb > ASAN_RED_ZONE_SIZE and there is - stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at - the top of the stack into account when computing base_align_bias. - Recompute use_after_return_class from asan_frame_size + base_align_bias - and set to -1 if that would overflow to 11. - -2024-04-11 Richard Biener - - PR tree-optimization/109596 - * tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate - debug stmts to nonexit->dest rather than exit->dest. - -2024-04-11 Richard Biener - - PR middle-end/114681 - * tree-inline.cc (copy_bb): Key on the remapped stmt - to identify gconds to have condition coverage data remapped. - -2024-04-11 Pan Li - - PR target/114639 - * config/riscv/riscv.cc (riscv_function_value_regno_p): New func - impl for hook TARGET_FUNCTION_VALUE_REGNO_P. - (riscv_get_raw_result_mode): New func imple for hook - TARGET_GET_RAW_RESULT_MODE. - (TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook. - (TARGET_GET_RAW_RESULT_MODE): Ditto. - * config/riscv/riscv.h (V_RETURN): New macro for vector return. - (GP_RETURN_FIRST): New macro for the first GPR in return. - (GP_RETURN_LAST): New macro for the last GPR in return. - (FP_RETURN_FIRST): Diito but for FPR. - (FP_RETURN_LAST): Ditto. - (FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by - TARGET_FUNCTION_VALUE_REGNO_P. - -2024-04-11 Indu Bhagat - - * btfout.cc (btf_asm_type): Do not skip emitting members of - unknown type. - -2024-04-11 Indu Bhagat - - PR debug/112878 - * dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before - call to ctf_add_slice. Use CTF_K_UNKNOWN type if fail. - -2024-04-10 Marek Polacek - - PR target/114606 - * config/i386/i386-options.cc (ix86_option_override_internal): Use - opts_set rather than checking == CF_NONE. - -2024-04-10 David Malcolm - - * doc/analyzer.texi: Various tweaks. - -2024-04-10 Richard Biener - - PR tree-optimization/114672 - * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only - allow mode-precision results. - -2024-04-10 Andre Vieira - - * config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO. - (aarch64_bitint_type_info): New function. - (aarch64_return_in_memory_1): Return large _BitInt's in memory. - (aarch64_function_arg_alignment): Adapt to correctly return the ABI - mandated alignment of _BitInt(N) where N > 128 as the alignment of - TImode. - (aarch64_composite_type_p): Return true for _BitInt(N), where N > 128. - -2024-04-10 Andre Vieira - - * config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function. - (aarch64_layout_arg): Don't emit diagnostics for types involving - _BitInt(N). - -2024-04-10 Jakub Jelinek - - PR c++/114462 - * tree-core.h (enum annot_expr_kind): Add - annot_expr_maybe_infinite_kind enumerator. - * gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind. - * tree-cfg.cc (replace_loop_annotate_in_block): Likewise. - (replace_loop_annotate): Likewise. Move loop->finite_p initialization - before the replace_loop_annotate_in_block calls. - * tree-pretty-print.cc (dump_generic_node): Handle - annot_expr_maybe_infinite_kind. - -2024-04-10 Richard Biener - - Revert: - 2024-03-27 Segher Boessenkool - - PR rtl-optimization/101523 - * combine.cc (try_combine): Don't do a 2-insn combination if - it does not in fact change I2. - -2024-04-10 Peter Bergner - - PR target/101865 - * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define. - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace - OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete redundant - OPTION_MASK_DIRECT_MOVE usage. Delete TARGET_DIRECT_MOVE dead code. - (rs6000_opt_masks): Neuter the "direct-move" option. - * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace - OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete useless - comment. - * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete - OPTION_MASK_DIRECT_MOVE. - (OTHER_VSX_VECTOR_MASKS): Likewise. - (POWERPC_MASKS): Likewise. - * config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var. - -2024-04-10 Hongyu Wang - - * config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for - memory constraint. - (sha1msg2): Likewise. - (sha1nexte): Likewise. - (sha1rnds4): Likewise. - (sha256msg1): Likewise. - (sha256msg2): Likewise. - (sha256rnds2): Likewise. - (aesu8): Use "jm" instead of "m" for memory - constraint. - (*aesu8): Likewise. - (*encodekey128u32): Use "jr" instead of "r" for register - constraints. - (*encodekey256u32): Likewise. - -2024-04-09 Juergen Christ - - * config/s390/s390.cc (expand_perm_as_replicate): Implement. - (vectorize_vec_perm_const_1): Call new function. - * config/s390/vx-builtins.md (vec_splat): Change to... - (@vec_splat): ...this. - -2024-04-09 David Faust - - PR debug/114608 - * btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when - generating BTF for BPF CO-RE target. - -2024-04-09 Richard Ball - - * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): - Add functions_nulls parameter to pragma_handlers. - * config/aarch64/aarch64-protos.h: Likewise. - * config/aarch64/aarch64-sve-builtins.h - (enum handle_pragma_index): Add enum to count - number of pragmas to be handled. - * config/aarch64/aarch64-sve-builtins.cc - (GTY): Add global variable for initial indexes - and change overload_names to an array. - (function_builder::function_builder): - Add pragma handler information. - (function_builder::add_function): - Add code for overwriting previous - registered_functions entries. - (add_unique_function): - Use an array to register overload_names - for both pragma handler modes. - (add_overloaded_function): Likewise. - (init_builtins): - Add functions_nulls parameter to pragma_handlers. - (handle_arm_sve_h): - Initialize pragma handler information. - (handle_arm_neon_sve_bridge_h): Likewise. - (handle_arm_sme_h): Likewise. - -2024-04-09 Richard Biener - - PR lto/114655 - * lto-wrapper.cc (merge_flto_options): Add force argument. - (merge_and_complain): Do not force here. - (run_gcc): But here to make the link-time -flto option override - any compile-time one. - -2024-04-09 Sebastian Huber - - * config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define. - -2024-04-09 Jørgen Kvalsvik - - PR gcov-profile/114601 - * tree-profile.cc (condition_uid): Guard fn->cond_uids access. - -2024-04-09 Jakub Jelinek - - PR target/114576 - * config/i386/i386.md (isa): Remove aes, add vaes_avx512vl. - (enabled): Remove aes isa check, add vaes_avx512vl. - * config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use - jm instead of m for second alternative and emit {evex} prefix - for it if !TARGET_AES. Use noavx,avx,vaes_avx512vl isa attribute. - (vaesdec_, vaesdeclast_, vaesenc_, - vaesenclast_): Add second alternative with x instead of v - and jm instead of m. - -2024-04-09 Gaius Mulley - - * doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad. - Remove -fdebug-trace-api. - Add -fm2-debug-trace=. - -2024-04-09 Yang Yujie - - PR target/113233 - * config/loongarch/loongarch.cc (loongarch_reg_init): - Reinitialize the loongarch_regno_mode_ok cache. - (loongarch_option_override): Same. - (loongarch_save_restore_target_globals): Restore target globals. - (loongarch_set_current_function): Restore the target contexts - for functions. - (TARGET_SET_CURRENT_FUNCTION): Define. - * config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable - switchable target context. - * config/loongarch/loongarch-builtins.cc (loongarch_init_builtins): - Initialize all builtin functions at startup. - (loongarch_expand_builtin): Turn assertion of builtin availability - into a test. - -2024-04-09 Jørgen Kvalsvik - - PR middle-end/114627 - * tree-profile.cc (instrument_decisions): Generate constant - at the start of loop. - -2024-04-09 Jørgen Kvalsvik - - PR middle-end/114599 - * tree-inline.cc (copy_bb): Copy cond_uids into callee. - (prepend_lexical_block): Remove outdated comment. - (add_local_variables): Remove bad cond_uids copy. - -2024-04-09 Jakub Jelinek - - * expr.cc (convert_mode_scalar): Fix duplicated words in comment; - into into -> it into. - * function.h (function::cond_uids): Fix duplicated words in comment; - same same -> same. - * config/riscv/riscv-vector-costs.cc - (costs::adjust_vect_cost_per_loop): Fix duplicated words in comment; - model model -> model. - * config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix - duplicated words in comment; for for -> for. - * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix - duplicated words in comment; more more -> more. - * config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix - duplicated words in comment; be be -> be. - * tree-profile.cc (masking_vectors): Fix duplicated words in comment; - has has -> has, the the -> the. - * value-range.cc (irange::set_range_from_bitmask): Fix duplicated - words in comment; the the -> the. - * gcov.cc (add_condition_counts): Fix duplicated words in comment; - to to -> to. - * vr-values.cc (get_scev_info): Fix duplicated words in comment; - the the -> to the. - * tree-vrp.cc (fully_replaceable): Fix duplicated words in comment; - by by -> by. - * mode-switching.cc (single_succ_confluence_n): Fix duplicated words - in comment; the the -> the. - * tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in - comment; can can -> we can. - * gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words - in comment; it it -> it is. - * tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment; - to to -> to. - * rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated - words in comment; if if -> if. - * doc/options.texi (InverseMask): Fix duplicated words; and and -> and. - Change take to takes. - * doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words; - be be -> be. - (-minline-memops-threshold): Likewise. - -2024-04-09 Jakub Jelinek - - PR middle-end/114628 - * gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts - before returns_twice calls as is, don't push them into arg_stmts - vector/move to edges. - -2024-04-09 Sergey Bugaev - - * config.gcc: Recognize aarch64*-*-gnu* targets. - * config/aarch64/aarch64-gnu.h: New file. - -2024-04-09 Sergey Bugaev - - * config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here... - * config/gnu.h: ...to here. - -2024-04-09 Richard Biener - - PR middle-end/114604 - * gimple-range.cc (enable_ranger): Initialize the global - bitmap obstack. - (disable_ranger): Release it. - -2024-04-09 Sebastian Huber - - * config.gcc (aarch64-*-rtems*): Add target makefile fragment - t-aarch64-rtems. - * config/aarch64/t-aarch64-rtems: New file. - -2024-04-09 H.J. Lu - - PR target/114587 - * config/i386/i386-c.cc (ix86_target_macros_internal): Define - __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32. - -2024-04-09 Kewen Lin - Andrew Pinski - - PR target/88309 - * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix - wrong align passed to function build_aligned_type. - * tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an - assertion to ensure align_unit should be positive. - * tree.cc (build_qualified_type): Update function comments. - -2024-04-08 Uros Bizjak - - PR rtl-optimization/112560 - * combine.cc (try_combine): Replace cc_use_loc with the entire - new RTX only in case cc_use_loc satisfies COMPARISON_P predicate. - Otherwise scan the entire cc_use_loc RTX for CC reg to be updated - with a new mode. - * config/i386/i386.md (@pushf2): Allow all CC modes for - operand 1. - -2024-04-08 Thomas Schwinge - - * config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor): - New. - * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it. - * doc/invoke.texi (Optimize Options): Document it. - -2024-04-08 Thomas Schwinge - - * doc/sourcebuild.texi (Effective-Target Keywords): Document - 'asm_goto_with_outputs'. Add comment to 'lra'. - -2024-04-08 Martin Jambor - - PR ipa/113359 - * ipa-icf-gimple.h (func_checker): New members - safe_for_total_scalarization_p, m_total_scalarization_limit_known_p - and m_total_scalarization_limit. - (func_checker::func_checker): Initialize new member variables. - * ipa-icf-gimple.cc: Include tree-sra.h. - (func_checker::func_checker): Initialize new member variables. - (func_checker::safe_for_total_scalarization_p): New function. - (func_checker::compare_operand): Use the new function. - * tree-sra.h (sra_get_max_scalarization_size): Declare. - (sra_total_scalarization_would_copy_same_data_p): Likewise. - * tree-sra.cc (prepare_iteration_over_array_elts): New function. - (class sra_padding_collecting): New. - (sra_padding_collecting::record_padding): Likewise. - (scalarizable_type_p): Rename to totally_scalarizable_type_p. Add - ability to record padding when requested. - (totally_scalarize_subtree): Split out gathering information necessary - to iterate over array elements to prepare_iteration_over_array_elts. - Fix errornous early exit. - (analyze_all_variable_accesses): Adjust the call to - totally_scalarizable_type_p. Move determining of total scalariation - size limit... - (sra_get_max_scalarization_size): ...here. - (check_ts_and_push_padding_to_vec): New function. - (sra_total_scalarization_would_copy_same_data_p): Likewise. - -2024-04-08 Martin Jambor - - PR ipa/113907 - * ipa-prop.h (class ipa_vr): Declare new overload of a member function - equal_p. - (ipa_jump_functions_equivalent_p): Declare. - * ipa-prop.cc (ipa_vr::equal_p): New function. - (ipa_agg_pass_through_jf_equivalent_p): Likewise. - (ipa_agg_jump_functions_equivalent_p): Likewise. - (ipa_jump_functions_equivalent_p): Likewise. - * ipa-cp.h (values_equal_for_ipcp_p): Declare. - * ipa-cp.cc (values_equal_for_ipcp_p): Make function public. - * ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h, - ipa-cp.h and ipa-prop.h. - (func_checker::compare_gimple_call): Comapre jump functions. - -2024-04-08 Richard Sandiford - - PR target/114607 - * config/aarch64/aarch64-sve-builtins-base.cc - (svusdot_impl::expand): Fix botched attempt to swap the operands - for svsudot. - -2024-04-08 Tatsuyuki Ishi - - * config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor. - * config.gcc: Add --with-tls configuration option to change the - default TLS flavor. - * config/riscv/riscv.h: Add TARGET_TLSDESC determined from - -mtls-dialect and with_tls defaults. - * config/riscv/riscv-opts.h: Define enum riscv_tls_type for the - two TLS flavors. - * config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type. - * config/riscv/riscv.md: Add instruction sequence for TLSDESC. - * config/riscv/riscv.cc (riscv_symbol_insns): Add instruction - sequence length data for TLSDESC. - (riscv_legitimize_tls_address): Add lowering of TLSDESC. - * doc/install.texi: Document --with-tls for RISC-V. - * doc/invoke.texi: Document -mtls-dialect for RISC-V. - -2024-04-08 Jakub Jelinek - - PR target/114605 - * config/s390/s390.cc (s390_const_int_pool_entry_p): Punt - if mem doesn't have MODE_INT mode, or pool constant doesn't - have MODE_INT mode, or if pool constant mode is smaller than - mem mode. If mem mode is different from pool constant mode, - try to simplify subreg. If that doesn't work, punt, if it - does, use the simplified constant instead of the constant pool - constant. - * config/s390/s390.md (movdi from const pool peephole): If - either low or high 32-bit part is zero, just emit move insn - instead of move + ior. - -2024-04-08 Richard Biener - - PR tree-optimization/114624 - * tree-scalar-evolution.cc (final_value_replacement_loop): - Get at the PHI arg location before releasing the PHI node. - -2024-04-08 Pan Li - - * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass - required_ext arg when invoke add function. - (build_th_loadstore): Ditto. - (struct vcreate_def): Ditto. - (struct read_vl_def): Ditto. - (struct vlenb_def): Ditto. - * config/riscv/riscv-vector-builtins.cc (function_builder::add_function): - Introduce new arg required_ext to fill in the register func. - (function_builder::add_unique_function): Ditto. - (function_builder::add_overloaded_function): Ditto. - (expand_builtin): Leverage required_extensions_specified to - check if the required extension is provided. - * config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New - func impl to convert the required_ext enum to the extension name. - (required_extensions_specified): New func impl to predicate if - the required extension is well feeded. - -2024-04-08 Iain Sandoe - - * config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage - specs. - -2024-04-08 demin.han - - * config/riscv/riscv-vector-costs.cc: Use length() - -2024-04-08 Pan Li - - * config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New - struct to hold all intrinisc related flags. - (riscv_pragma_intrinsic_flags_pollute): New func to pollute - the intrinsic flags and backup original flags. - (riscv_pragma_intrinsic_flags_restore): New func to restore - the flags from the backup intrinsic flags. - (riscv_pragma_intrinsic): Pollute the flags and register all - possible builtin types and functions, then restore and reinit. - * config/riscv/riscv-protos.h (reinit_builtins): New func - decl to reinit after flags pollution. - (riscv_option_override): New extern func decl. - * config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null): - New func to register builtin types if null. - (DEF_RVV_TYPE): Ditto. - (DEF_RVV_TUPLE_TYPE): Ditto. - (reinit_builtins): New func impl to reinit after flags pollution. - (expand_builtin): Return - target rtx after error_at. - * config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate - func to tell one tree type is integer or not. - (riscv_vector_float_type_p): New predicate func to tell one tree - type is float or not. - (riscv_vector_element_bitsize): New func to get the element bitsize - of a vector tree type. - (riscv_vector_required_min_vlen): New func to get the required min vlen - of a vector tree type. - (riscv_validate_vector_type): New func to validate the tree type - is valid on flags. - (riscv_return_value_is_vector_type_p): Leverage the func - riscv_validate_vector_type to do the tree type validation. - (riscv_arguments_is_vector_type_p): Ditto. - (riscv_override_options_internal): Ditto. - -2024-04-08 Lulu Cheng - - PR target/112919 - * config/loongarch/loongarch-def.cc (la664_align): Newly defined - function that sets alignment rules under the LA664 microarchitecture. - * config/loongarch/loongarch-opts.cc - (loongarch_target_option_override): If not optimizing for size, set - the default alignment to what the target wants. - * config/loongarch/loongarch-tune.h (struct loongarch_align): Add - new member variables jump and loop. - -2024-04-06 H.J. Lu - - PR target/114590 - * config/i386/i386.md (x86_64_shld): Use explicit shift count in - AT&T syntax. - (x86_64_shld_ndd): Likewise. - (x86_shld): Likewise. - (x86_shld_ndd): Likewise. - (x86_64_shrd): Likewise. - (x86_64_shrd_ndd): Likewise. - (x86_shrd): Likewise. - (x86_shrd_ndd): Likewise. - -2024-04-06 Jørgen Kvalsvik - - PR middle-end/114599 - * tree-inline.cc (add_local_variables): Copy cond_uids mappings. - -2024-04-05 David Malcolm - - PR analyzer/114588 - * diagnostic-color.cc (color_dict): Add "valid" and "invalid" as - color capability names. - * doc/invoke.texi: Document them in description of GCC_COLORS. - * text-art/style.cc: Include "diagnostic-color.h". - (text_art::get_style_from_color_cap_name): New. - * text-art/types.h (get_style_from_color_cap_name): New decl. - -2024-04-05 Alex Coplan - - * config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker): - Fix double space after const qualifier on valid (). - -2024-04-05 Martin Jambor - - PR ipa/113964 - * ipa-param-manipulation.cc (ipa_param_adjustments::modify_call): - Force values obtined through pass-through maps to the expected - split type. - -2024-04-05 Mark Wielaard - - * common.opt.urls: Regenerate. - -2024-04-05 Richard Sandiford - - PR target/114603 - * config/aarch64/aarch64-sve.md (@aarch64_pred_cnot): Replace - with... - (@aarch64_ptrue_cnot): ...this, requiring operand 1 to be - a ptrue. - (*cnot): Require operand 1 to be a ptrue. - * config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand): - Use aarch64_ptrue_cnot for _x operations that are predicated - with a ptrue. Represent other _x operations as fully-defined _m - operations. - -2024-04-05 Jakub Jelinek - - PR tree-optimization/114566 - * tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear - base_misaligned. - -2024-04-05 Richard Biener - - PR middle-end/114599 - PR gcov-profile/114115 - * symtab.cc (ifunc_ref_map): Do not use auto_bitmap. - (is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit - pair. - (symtab_node::check_ifunc_callee_symtab_nodes): Properly - allocate ifunc_ref_map here. - -2024-04-04 Martin Jambor - - PR ipa/111571 - * ipa-param-manipulation.cc - (ipa_param_body_adjustments::common_initialization): Avoid creating - duplicate replacement entries. - -2024-04-04 Vladimir N. Makarov - - PR rtl-optimization/114415 - * sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument. - (sched_analyze_1): Treat stack pointer modification as memory read. - (sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems. - * sched-int.h (deps_desc): Add comment to pending_read_mems. - -2024-04-04 Tobias Burnus - - * config/nvptx/mkoffload.cc (main): Call - gcc_init_libintl and diagnostic_color_init. - -2024-04-04 H.J. Lu - - PR target/114587 - * config/i386/i386-c.cc (ix86_target_macros_internal): Define - __APX_F__ when APX is enabled. - -2024-04-04 Jørgen Kvalsvik - - * builtins.cc (expand_builtin_fork_or_exec): Check - condition_coverage_flag. - * collect2.cc (main): Add -fno-condition-coverage to OBSTACK. - * common.opt: Add new options -fcondition-coverage and - -Wcoverage-too-many-conditions. - * doc/gcov.texi: Add --conditions documentation. - * doc/invoke.texi: Add -fcondition-coverage documentation. - * function.cc (free_after_compilation): Free cond_uids. - * function.h (struct function): Add cond_uids. - * gcc.cc: Link gcov on -fcondition-coverage. - * gcov-counter.def (GCOV_COUNTER_CONDS): New. - * gcov-dump.cc (tag_conditions): New. - * gcov-io.h (GCOV_TAG_CONDS): New. - (GCOV_TAG_CONDS_LENGTH): New. - (GCOV_TAG_CONDS_NUM): New. - * gcov.cc (class condition_info): New. - (condition_info::condition_info): New. - (condition_info::popcount): New. - (struct coverage_info): New. - (add_condition_counts): New. - (output_conditions): New. - (print_usage): Add -g, --conditions. - (process_args): Likewise. - (output_intermediate_json_line): Output conditions. - (read_graph_file): Read condition counters. - (read_count_file): Likewise. - (file_summary): Print conditions. - (accumulate_line_info): Accumulate conditions. - (output_line_details): Print conditions. - * gimplify.cc (next_cond_uid): New. - (reset_cond_uid): New. - (shortcut_cond_r): Set condition discriminator. - (tag_shortcut_cond): New. - (gimple_associate_condition_with_expr): New. - (shortcut_cond_expr): Set condition discriminator. - (gimplify_cond_expr): Likewise. - (gimplify_function_tree): Call reset_cond_uid. - * ipa-inline.cc (can_early_inline_edge_p): Check - condition_coverage_flag. - * ipa-split.cc (pass_split_functions::gate): Likewise. - * passes.cc (finish_optimization_passes): Likewise. - * profile.cc (struct condcov): New declaration. - (cov_length): Likewise. - (cov_blocks): Likewise. - (cov_masks): Likewise. - (cov_maps): Likewise. - (cov_free): Likewise. - (instrument_decisions): New. - (read_thunk_profile): Control output to file. - (branch_prob): Call find_conditions, instrument_decisions. - (init_branch_prob): Add total_num_conds. - (end_branch_prob): Likewise. - * tree-core.h (struct tree_exp): Add condition_uid. - * tree-profile.cc (struct conds_ctx): New. - (CONDITIONS_MAX_TERMS): New. - (EDGE_CONDITION): New. - (topological_cmp): New. - (index_of): New. - (single_p): New. - (single_edge): New. - (contract_edge_up): New. - (struct outcomes): New. - (conditional_succs): New. - (condition_index): New. - (condition_uid): New. - (masking_vectors): New. - (emit_assign): New. - (emit_bitwise_op): New. - (make_top_index_visit): New. - (make_top_index): New. - (paths_between): New. - (struct condcov): New. - (cov_length): New. - (cov_blocks): New. - (cov_masks): New. - (cov_maps): New. - (cov_free): New. - (find_conditions): New. - (struct counters): New. - (find_counters): New. - (resolve_counter): New. - (resolve_counters): New. - (instrument_decisions): New. - (tree_profiling): Check condition_coverage_flag. - (pass_ipa_tree_profile::gate): Likewise. - * tree.h (SET_EXPR_UID): New. - (EXPR_COND_UID): New. - -2024-04-04 Richard Sandiford - - PR target/114577 - * config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl): - Declare. - * config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl): - New function. - * config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise. - (svset_neonq_impl::expand): Optimise expansions whose first argument - is undefined. - -2024-04-04 Richard Biener - - PR tree-optimization/114485 - * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): - vect_step_op_neg isn't OK for partial vectors but only - for unknown niter. - -2024-04-04 Jakub Jelinek - - PR c++/114537 - * fold-const.cc (native_encode_initializer): Look through - NON_LVALUE_EXPR if val is INTEGER_CST. - -2024-04-04 Jakub Jelinek - - PR tree-optimization/114555 - * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For - m_bitfld_load and save_cast_conditional add any needed PHIs - and adjust t4 accordingly. - -2024-04-04 Richard Biener - - PR tree-optimization/114551 - * tree-ssa-loop-split.cc (split_loop): If the guard is - only conditionally evaluated rewrite computations with - possibly undefined overflow to unsigned arithmetic. - -2024-04-04 Eugene Rozenfeld - - PR gcov-profile/113765 - * auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true - -2024-04-03 Mark Wielaard - - * config/i386/i386.opt.urls: Regenerate. - -2024-04-03 H.J. Lu - - PR tree-optimization/114115 - * cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes. - (cgraph_node): Add called_by_ifunc_resolver. - * cgraphunit.cc (symbol_table::compile): Call - symtab_node::check_ifunc_callee_symtab_nodes. - * symtab.cc (check_ifunc_resolver): New. - (ifunc_ref_map): Likewise. - (is_caller_ifunc_resolver): Likewise. - (symtab_node::check_ifunc_callee_symtab_nodes): Likewise. - * tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect - call profiling for IFUNC resolvers and their callees. - -2024-04-03 Tobias Burnus - - * lto-wrapper.cc (compile_offload_image): Prefix 'offload_args' - suffix by the target name. - -2024-04-03 Tobias Burnus - - * doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation - and update wording for LLVM 18 release. - -2024-04-03 Tobias Burnus - - PR other/111966 - * config/gcn/mkoffload.cc (get_arch): New; moved -march= flag - handling from ... - (main): ... here; call it to handle --with-arch config option - and -march= commandline. - -2024-04-03 Jakub Jelinek - - PR middle-end/114552 - * expr.cc (emit_push_insn): Only use store_constructor for - immediate_const_ctor_p if int_expr_size matches size. - -2024-04-03 Richard Biener - - PR tree-optimization/114557 - PR tree-optimization/114480 - * tree-phinodes.cc (release_phi_node): Return PHIs from - allocation buckets not covered by free_phinodes to GC. - (remove_phi_node): Release the PHI LHS before freeing the - PHI node. - * tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs - before releasing it. - -2024-04-03 Jiahao Xu - - * config/loongarch/lasx.md: Remove unused code. - * config/loongarch/loongarch-protos.h - (loongarch_split_lsx_copy_d): Remove. - (loongarch_split_lsx_insert_d): Ditto. - (loongarch_split_lsx_fill_d): Ditto. - * config/loongarch/loongarch.cc - (loongarch_split_lsx_copy_d): Ditto. - (loongarch_split_lsx_insert_d): Ditto. - (loongarch_split_lsx_fill_d): Ditto. - * config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter. - (lsx_vpickve2gr_): Ditto. - (abs2): Remove expander. - (vabs2): Rename 2 abs2. - -2024-04-02 Christophe Lyon - - * config/aarch64/aarch64-option-extensions.def: Fix comment. - -2024-04-02 Tom Tromey - - * dwarf2out.cc (print_dw_val) : Don't - print newline when not recursing. - -2024-04-02 Iain Sandoe - - * config/darwin.cc (darwin_override_options): Update the - clang major version value in the dsymutil check. - -2024-04-02 Iain Sandoe - - * config/darwin.cc (darwin_override_options): Reduce the debug - level to 2 if dsymutil cannot handle .macinfo sections. - -2024-04-02 Yang Yujie - - * config/loongarch/t-loongarch: Add loongarch-def-arrays.h - to OPTION_H_EXTRA. - -2024-04-02 mengqinggang - Lulu Cheng - Xi Ruoyao - - * config.gcc: Add --with-tls option to change TLS flavor. - * config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to - configure TLS flavor. - * config/loongarch/loongarch-def.h (struct loongarch_target): Add - tls_dialect. - * config/loongarch/loongarch-driver.cc (la_driver_init): Add tls - flavor. - * config/loongarch/loongarch-opts.cc (loongarch_init_target): Add - tls_dialect. - (loongarch_config_target): Ditto. - (loongarch_update_gcc_opt_status): Ditto. - * config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto. - (TARGET_TLS_DESC): New define. - * config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS - DESC instructions sequence length. - (loongarch_legitimize_tls_address): New TLS DESC instruction sequence. - (loongarch_option_override_internal): Add la_opt_tls_dialect. - (loongarch_option_restore): Add la_target.tls_dialect. - * config/loongarch/loongarch.md (@got_load_tls_desc): Normal - code model for TLS DESC. - (got_load_tls_desc_off64): Extreme cmode model for TLS DESC. - * config/loongarch/loongarch.opt: Regenerate. - * config/loongarch/loongarch.opt.urls: Ditto. - * doc/invoke.texi: Add a description of the compilation option - '-mtls-dialect={trad,desc}'. - -2024-04-02 Lulu Cheng - - * config/loongarch/loongarch.opt.urls: Regenerate. - -2024-04-01 Yang Yujie - - * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as - aliases to -mrecip={all,none}, respectively. - * config/loongarch/loongarch.opt: Regenerate. - * config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to... - (ABI_FPU64_P): ...this. - (ABI_FPU_32): Rename to... - (ABI_FPU32_P): ...this. - (ABI_FPU_NONE): Rename to... - (ABI_NOFPU_P): ...this. - (ABI_LP64_P): Define. - * config/loongarch/loongarch.cc (loongarch_init_print_operand_punct): - Merged into loongarch_global_init. - (loongarch_cpu_option_override): Renamed to - loongarch_target_option_override. - (loongarch_option_override_internal): Move the work after - loongarch_config_target into loongarch_target_option_override. - (loongarch_global_init): Define. - (INIT_TARGET_FLAG): Move to loongarch-opts.cc. - (loongarch_option_override): Call loongarch_global_init - separately. - * config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme): - Split the parsing of -mrecip= from - loongarch_option_override_internal. - (loongarch_generate_mrecip_scheme): Define. Split from - loongarch_option_override_internal. - (loongarch_target_option_override): Define. Renamed from - loongarch_cpu_option_override. - (loongarch_init_misc_options): Define. Split from - loongarch_option_override_internal. - (INIT_TARGET_FLAG): Move from loongarch.cc. - * config/loongarch/loongarch-opts.h (loongarch_target_option_override): - New prototype. - (loongarch_parse_mrecip_scheme): New prototype. - (loongarch_init_misc_options): New prototype. - (TARGET_ABI_LP64): Simplify with ABI_LP64_P. - * config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify. - Do not reference specific CPU architecture (LA664). - (TARGET_RECIP_SQRT): Same. - (TARGET_RECIP_RSQRT): Same. - (TARGET_RECIP_VEC_DIV): Same. - (TARGET_RECIP_VEC_SQRT): Same. - (TARGET_RECIP_VEC_RSQRT): Same. - -2024-04-01 Lulu Cheng - - * doc/invoke.texi: Add descriptions for the compilation - options. - -2024-03-31 Jeff Law - - * config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret - and sfb_alu. - -2024-03-31 Pan Li - - * config/riscv/riscv-vector-builtins.cc (expand_builtin): Take - the term built-in over builtin. - -2024-03-31 Pan Li - - * common/config/riscv/riscv-common.cc (riscv_subset_list::parse): - Remove unused var decl. - -2024-03-30 Xi Ruoyao - - PR target/114175 - * config/mips/mips.cc (mips_setup_incoming_varargs): Only skip - mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P - functions if arg.type is NULL. - -2024-03-29 Andrew Pinski - - * lto-compress.cc (lto_end_uncompression): Use - fatal_error instead of internal_error when ZSTD - is not enabled. - -2024-03-28 Jeff Law - - * config/h8300/extensions.md (zero_extendqihi*): Add output - template for reg->reg case where the regs don't match. - -2024-03-28 Gaius Mulley <(no_default)> - - PR modula2/114517 - * doc/gm2.texi: Mention gm2 treats a # in the first column - as a preprocessor directive unless -fno-cpp is supplied. - -2024-03-28 Jakub Jelinek - - * predict.cc (estimate_bb_frequencies): Fix comment typo, - scalling -> scaling. - -2024-03-28 Jakub Jelinek - - PR tree-optimization/112303 - * profile-count.h (profile_count::operator+): Perform - addition in uint64_t variable and set m_val to MIN of that - val and max_count. - (profile_count::operator+=): Likewise. - (profile_count::operator-=): Formatting fix. - (profile_count::apply_probability): Use safe_scale_64bit - even in the int overload. - -2024-03-28 Jan Hubicka - - PR middle-end/113907 - * ipa-icf.cc (sem_function::init): Hash PHI operands - (sem_function::compare_phi_node): Add argument about preserving order - -2024-03-28 Richard Biener - - PR middle-end/114480 - * cfganal.cc (compute_idf): Use simpler bitmap iteration, - touch work_set only when phi_insertion_points changed. - -2024-03-28 Palmer Dabbelt - - * config/riscv/riscv.h (REGISTER_NAMES): Add vxsat. - -2024-03-27 Segher Boessenkool - - PR rtl-optimization/101523 - * combine.cc (try_combine): Don't do a 2-insn combination if - it does not in fact change I2. - -2024-03-27 Jakub Jelinek - - * doc/invoke.texi (Spec Files): Use @var{S} instead of S, - @var{X} instead of X etc. for other placeholders. - -2024-03-27 Richard Biener - - PR tree-optimization/114057 - * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark - BB reduction remain defs as scalar uses. - -2024-03-27 Victor Do Nascimento - - * config/aarch64/aarch64-option-extensions.def (rcpc3): - Fix FEATURE_STRING field to "lrcpc3". - -2024-03-27 Victor Do Nascimento - - * config/aarch64/aarch64-option-extensions.def: Add LSE128 - AARCH64_OPT_EXTENSION, adding it as a dependency for the D128 - feature. - * doc/invoke.texi (AArch64 Options): Document +lse128. - -2024-03-26 Richard Sandiford - - * config/aarch64/aarch64-feature-deps.h: Use constexpr for - out-of-line statics. - -2024-03-26 Cupertino Miranda - - PR target/114431 - * btfout.cc (get_name_for_datasec_entry): Add function. - (btf_asm_datasec_entry): Print label when possible. - -2024-03-26 Richard Ball - - PR target/114272 - * config/aarch64/aarch64-cores.def (AARCH64_CORE): - Change SCHEDULER_IDENT from cortexa55 to cortexa53 - for Cortex-A510 and Cortex-A520. - -2024-03-26 Jakub Jelinek - - PR middle-end/111151 - * fold-const.cc (extract_muldiv_1) : Punt for - MULT_EXPR altogether, or for MAX_EXPR if c is -1. - -2024-03-26 Jakub Jelinek - - PR sanitizer/111736 - * tsan.cc (instrument_expr): Punt on non-generic address space - accesses. - -2024-03-26 Richard Biener - - PR tree-optimization/114471 - * tree-vect-stmts.cc (vectorizable_operation): Verify operand - types are compatible with the result type. - -2024-03-26 Richard Biener - - PR tree-optimization/114464 - * tree-vect-loop.cc (vectorizable_recurr): Verify the latch - vector type is compatible with what we chose for the recurrence. - -2024-03-26 Jakub Jelinek - - * cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs): - Fix comment typo - multple -> multiple. - * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): - Likewise. - -2024-03-26 YunQiang Su - - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine - __mips_strict_alignment if STRICT_ALIGNMENT. - -2024-03-25 Richard Biener - - * config.gcc (amdgcn): Add gfx1036 entries. - * config/gcn/gcn-hsa.h (NO_XNACK): Likewise. - (gcn_local_sym_hash): Likewise. - * config/gcn/gcn-opts.h (enum processor_type): Likewise. - (TARGET_GFX1036): New macro. - * config/gcn/gcn.cc (gcn_option_override): Handle gfx1036. - (gcn_omp_device_kind_arch_isa): Likewise. - (output_file_start): Likewise. - * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__. - (TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__. - * config/gcn/gcn.opt: Add gfx1036. - * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New. - (main): Handle gfx1036. - * config/gcn/t-omp-device: Add gfx1036 isa. - * doc/install.texi (amdgcn): Add gfx1036. - * doc/invoke.texi (-march): Likewise. - -2024-03-25 Pan Li - - * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error - when V is disabled and init the RVV types and intrinic APIs. - * config/riscv/riscv-vector-builtins.cc (expand_builtin): Report - error if V ext is disabled. - * config/riscv/riscv.cc (riscv_return_value_is_vector_type_p): - Ditto. - (riscv_arguments_is_vector_type_p): Ditto. - (riscv_vector_cc_function_p): Ditto. - * config/riscv/riscv_vector.h: Remove error if V is disable. - -2024-03-23 John David Anglin - - * config/pa/pa.cc (pa_output_global_address): Handle - UNSPEC_DLTIND14R addresses. - * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for - UNSPEC_DLTIND14R address. - -2024-03-23 Jakub Jelinek - - PR tree-optimization/114433 - * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For - m_bitfld_load check save_first rather than m_first. - -2024-03-23 Jakub Jelinek - - PR tree-optimization/114425 - * gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle - _Complex large/huge _BitInt types like the large/huge _BitInt types. - -2024-03-23 Jakub Jelinek - - PR middle-end/111683 - * tree-predcom.cc (pcom_worker::suitable_component_p): If has_write - and comp_step is RS_NONZERO, return false if any reference in the - component doesn't have DR_STEP a multiple of access size. - -2024-03-23 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.md: Add new split pattern described above. - -2024-03-22 Georg-Johann Lay - - * config/avr/avr.cc (avr_set_current_function): Adjust diagnostic - for deprecated SIGNAL and INTERRUPT usage without respective header. - -2024-03-22 Andrew Stubbs - - * config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA. - (atomic_load): Adjust RDNA cache settings. - (atomic_store): Likewise. - (atomic_exchange): Likewise. - -2024-03-22 Andrew Stubbs - - * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on - RDNA devices. - -2024-03-22 Andrew Stubbs - - * config.gcc (amdgcn): Add gfx1103 entries. - * config/gcn/gcn-hsa.h (NO_XNACK): Likewise. - (gcn_local_sym_hash): Likewise. - * config/gcn/gcn-opts.h (enum processor_type): Likewise. - (TARGET_GFX1103): New macro. - * config/gcn/gcn.cc (gcn_option_override): Handle gfx1103. - (gcn_omp_device_kind_arch_isa): Likewise. - (output_file_start): Likewise. - (gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100. - * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__. - * config/gcn/gcn.opt: Add gfx1103. - * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New. - (main): Handle gfx1103. - * config/gcn/t-omp-device: Add gfx1103 isa. - * doc/install.texi (amdgcn): Add gfx1103. - * doc/invoke.texi (-march): Likewise. - -2024-03-22 Andrew Stubbs - - * dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector - bitmasks. - (do_compare_and_jump): Remove now-redundant similar code. - * internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector - bitmasks. - (add_mask_and_len_args): Likewise. - -2024-03-22 Pan Li - - * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define - macro __riscv_v_fixed_vlen when zvl. - * config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute): - New static func to take care of the RVV types decorated by - the attributes. - -2024-03-22 Andrew Pinski - - PR c/109619 - * builtins.cc (fold_builtin_1): Use error_operand_p - instead of checking against ERROR_MARK. - (fold_builtin_2): Likewise. - (fold_builtin_3): Likewise. - -2024-03-22 Jakub Jelinek - - PR sanitizer/111736 - * ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid - SANITIZE_NULL instrumentation for non-generic address spaces - for which targetm.addr_space.zero_address_valid (as) is true. - -2024-03-22 Jakub Jelinek - - PR tree-optimization/114405 - * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): - Set rprec to limb_prec rather than 0 if tprec is divisible by - limb_prec. In the last bf_cur handling, set rprec to (tprec + bo_bit) - % limb_prec rather than tprec % limb_prec and use just rprec instead - of rprec + bo_bit. For build_bit_field_ref offset, divide - (tprec + bo_bit) by limb_prec rather than just tprec. - -2024-03-22 Christoph Müllner - - PR target/114194 - * config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC. - Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR. - -2024-03-22 Jeff Law - - * config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack - tie for scalable and final stack adjustment if needed. - Co-authored-by: Raphael Zinsly - -2024-03-22 Pan Li - - PR target/114352 - * common/config/riscv/riscv-common.cc (struct riscv_func_target_info): - New struct for func decl and target name. - (struct riscv_func_target_hasher): New hasher for hash table mapping - from the fn_decl to fn_target_name. - (riscv_func_decl_hash): New func to compute the hash for fn_decl. - (riscv_func_target_hasher::hash): New func to impl hash interface. - (riscv_func_target_hasher::equal): New func to impl equal interface. - (riscv_cmdline_subset_list): New static var for cmdline subset list. - (riscv_func_target_table_lazy_init): New func to lazy init the func - target hash table. - (riscv_func_target_get): New func to get target name from hash table. - (riscv_func_target_put): New func to put target name into hash table. - (riscv_func_target_remove_and_destory): New func to remove target - info from the hash table and destory it. - (riscv_parse_arch_string): Set the static var cmdline_subset_list. - * config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static - var for cmdline subset list. - (riscv_func_target_get): New func decl. - (riscv_func_target_put): Ditto. - (riscv_func_target_remove_and_destory): Ditto. - * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): - Take cmdline_subset_list instead of current_subset_list when clone. - (riscv_process_target_attr): Record the func target info to hash table. - (riscv_option_valid_attribute_p): Add new arg tree fndel. - * config/riscv/riscv.cc (riscv_declare_function_name): Consume the - func target info and print the arch message. - -2024-03-22 Pan Li - - PR target/114352 - * common/config/riscv/riscv-common.cc (riscv_subset_list::parse): - Replace implied, combine and check to func finalize. - (riscv_subset_list::finalize): New func impl to take care of - implied, combine ext and related checks. - * config/riscv/riscv-subset.h: Add func decl for finalize. - * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): - Finalize the ext before return succeed. - * config/riscv/riscv.cc (riscv_set_current_function): Reinit the - machine mode before when set cur function. - -2024-03-21 Andrew Stubbs - - * config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction. - -2024-03-21 Andrew Stubbs - - * config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode. - -2024-03-21 Andrew Stubbs - - * config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each - device_malloc call. - -2024-03-21 liuhongt - - PR tree-optimization/114396 - * tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype - and true to wi::from_mpz. - -2024-03-21 Richard Biener - - PR tree-optimization/111736 - * asan.cc (instrument_derefs): Do not instrument accesses - to non-generic address-spaces. - -2024-03-21 Richard Biener - - PR tree-optimization/113727 - * tree-sra.cc (analyze_access_subtree): Do not allow - replacements in subtrees when grp_partial_lhs. - -2024-03-21 liuhongt - - PR middle-end/114347 - * doc/invoke.texi: Document -fexcess-precision=16. - -2024-03-20 Cupertino Miranda - - * config/bpf/core-builtins.cc (bpf_core_get_index): Check if - field contains a DECL_NAME. - -2024-03-20 Cupertino Miranda - - * config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code. - Add assert to validate the string is set. - * config/bpf/core-builtins.cc (cr_final): Make string struct - field as const. - (process_enum_value): Correct for field type change. - (process_type): Set access string to "0". - -2024-03-20 Cupertino Miranda - - * config/bpf/core-builtins.cc (core_field_info): Add - support for POINTER_PLUS_EXPR in the root of the field expression. - (bpf_core_get_index): Likewise. - (pack_field_expr): Make the BTF type to point to the structure - related node, instead of its pointer type. - (make_core_safe_access_index): Correct to new code. - -2024-03-20 Xi Ruoyao - - PR target/114407 - * config/loongarch/loongarch-opts.cc (loongarch_config_target): - Fix typo in diagnostic message, enabing -> enabling. - -2024-03-20 Jakub Jelinek - - PR target/114175 - * config/visium/visium.cc (visium_setup_incoming_varargs): Only skip - TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-20 Jakub Jelinek - - PR target/114175 - * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip - nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-20 Jakub Jelinek - - PR target/114175 - * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip - function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-20 Jakub Jelinek - - PR target/114175 - * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip - function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-20 Jakub Jelinek - - PR target/114175 - * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip - function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-20 Jakub Jelinek - - PR target/114175 - * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only - skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-20 Jakub Jelinek - - PR target/114175 - * config/csky/csky.cc (csky_setup_incoming_varargs): Only skip - csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-20 Yury Khrustalev - - * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. - -2024-03-20 Jakub Jelinek - - PR tree-optimization/114365 - * gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding - a PHI node, set iv2 to its result afterwards. - -2024-03-20 Jakub Jelinek - - * tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo: - probabbility -> probability. - (ch_base::copy_headers): Fix comment typo: itrations -> iterations. - -2024-03-20 Jakub Jelinek - - PR bootstrap/114369 - * system.h (vec_step): Define to vec_step_ when compiling - with clang on PowerPC. - -2024-03-20 demin.han - - PR target/112651 - * config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename - (enum rvv_max_lmul_enum): Ditto - (TARGET_MAX_LMUL): Ditto - * config/riscv/riscv-v.cc (preferred_simd_mode): Ditto - * config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto - (costs::better_main_loop_than_p): Ditto - * config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul - -2024-03-20 Richard Biener - - PR middle-end/113396 - * tree-dfa.cc (get_ref_base_and_extent): Use index range - bounds only if they fit within the address-range constraints - of offset_int. - -2024-03-20 Chenghui Pan - - * config/loongarch/loongarch.cc - (loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and - UNITS_PER_FPREG macros. - (loongarch_hard_regno_nregs): Ditto. - (loongarch_class_max_nregs): Ditto. - (loongarch_get_separate_components): Ditto. - (loongarch_process_components): Ditto. - * config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto. - (UNITS_PER_HWFPVALUE): Ditto. - (UNITS_PER_FPVALUE): Ditto. - -2024-03-20 Chenghui Pan - - * config/loongarch/lasx.md (vec_cmp): Remove checking - of loongarch_expand_vec_cmp()'s return value. - (vec_cmpu): Ditto. - * config/loongarch/lsx.md (vec_cmp): Ditto. - (vec_cmpu): Ditto. - * config/loongarch/loongarch-protos.h - (loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return - type from bool to void. - * config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto. - -2024-03-20 Chenghui Pan - - * config/loongarch/loongarch-protos.h - (loongarch_cfun_has_cprestore_slot_p): Delete. - (loongarch_adjust_insn_length): Delete. - (current_section_name): Delete. - (loongarch_split_symbol_type): Delete. - * config/loongarch/loongarch.cc - (loongarch_case_values_threshold): Delete. - (loongarch_spill_class): Delete. - (TARGET_OPTAB_SUPPORTED_P): Delete. - (TARGET_CASE_VALUES_THRESHOLD): Delete. - (TARGET_SPILL_CLASS): Delete. - -2024-03-20 Lewis Hyatt - - PR c++/111918 - * diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag. - * diagnostic.cc (diagnostic_option_classifier::classify_diagnostic): - Make use of DK_ANY to indicate a diagnostic was initially enabled. - (diagnostic_context::diagnostic_enabled): Do not change the type of - a diagnostic if the saved classification is type DK_ANY. - -2024-03-19 Martin Jambor - - PR ipa/108802 - PR ipa/114254 - * ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking - at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from - a pointer parameter. - (ipa_analyze_indirect_call_uses): Also recognize loads from a pointer - parameter, also recognize the case when pfn pointer is loaded in its - own BB. - -2024-03-19 Vladimir N. Makarov - - PR target/99829 - * lra-constraints.cc (lra_constraints): Prevent removing insn - with reverse equivalence to memory if the memory was reloaded. - -2024-03-19 David Malcolm - - PR middle-end/114348 - * diagnostic-format-json.cc - (json_stderr_output_format::machine_readable_stderr_p): New. - (json_file_output_format::machine_readable_stderr_p): New. - * diagnostic-format-sarif.cc - (sarif_stream_output_format::machine_readable_stderr_p): New. - (sarif_file_output_format::machine_readable_stderr_p): New. - * diagnostic.cc (diagnostic_context::action_after_output): Move - "fnotice" to before "finish" call, so that we still have the - diagnostic_context. - (fnotice): Bail out if the user requested one of the - machine-readable diagnostic output formats on stderr. - * diagnostic.h - (diagnostic_output_format::machine_readable_stderr_p): New pure - virtual function. - (diagnostic_text_output_format::machine_readable_stderr_p): New. - (diagnostic_context::get_output_format): New accessor. - -2024-03-19 Edwin Lu - - PR target/114175 - * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip - riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL - -2024-03-19 Jonathan Wakely - - * doc/install.texi (Prerequisites): Document use of autogen for - libstdc++. - -2024-03-19 Richard Biener - - PR tree-optimization/114151 - PR tree-optimization/114269 - PR tree-optimization/114322 - PR tree-optimization/114074 - * tree-chrec.cc (chrec_fold_multiply): Restrict the use of - unsigned arithmetic when actual overflow on constant operands - is observed. - -2024-03-19 Jakub Jelinek - - PR target/114175 - * config/arc/arc.cc (arc_setup_incoming_varargs): Only skip - arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-19 Xi Ruoyao - - PR target/114175 - * config/loongarch/loongarch.cc - (loongarch_setup_incoming_varargs): Only skip - loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P - functions if arg.type is NULL. - -2024-03-19 Christophe Lyon - - PR target/114323 - * config/arm/arm-mve-builtins.cc - (function_instance::reads_global_state_p): Take CP_READ_MEMORY - into account. - -2024-03-19 Jakub Jelinek - - PR target/114175 - * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip - function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-19 Jakub Jelinek - - PR target/114175 - * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip - rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-19 Richard Biener - - PR tree-optimization/114375 - * tree-vect-slp.cc (vect_build_slp_tree_2): Compute the - load permutation for masked loads but reject it when any - such is necessary. - * tree-vect-stmts.cc (vectorizable_load): Reject masked - VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not - supported. - -2024-03-19 Mary Bennett - - * common/config/riscv/riscv-common.cc: Create XCVbi extension - support. - * config/riscv/riscv.opt: Likewise. - * config/riscv/corev.md: Implement cv_branch pattern - for cv.beqimm and cv.bneimm. - * config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V - branch instruction pattern. - * config/riscv/constraints.md: Implement constraints - cv_bi_s5 - signed 5-bit immediate. - * config/riscv/predicates.md: Implement predicate - const_int5s_operand - signed 5 bit immediate. - * doc/sourcebuild.texi: Add XCVbi documentation. - -2024-03-19 Chen Jiawei - - * config/riscv/riscv-cores.def (RISCV_TUNE): New def. - (RISCV_CORE): Ditto. - * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New - option. - * config/riscv/riscv.cc: New def. - * config/riscv/riscv.md: New include. - * config/riscv/xiangshan.md: New file. - -2024-03-18 David Malcolm - - PR analyzer/110902 - PR analyzer/110928 - PR analyzer/111305 - PR analyzer/111441 - * selftest.h (ASSERT_NE_AT): New macro. - -2024-03-18 Uros Bizjak - - PR target/111822 - * config/i386/i386-features.cc (smode_convert_cst): New function - to handle SImode, DImode and TImode immediates, generalized from - timode_convert_cst. - (timode_convert_cst): Remove. - (scalar_chain::convert_op): Unify from - general_scalar_chain::convert_op and timode_scalar_chain::convert_op. - (general_scalar_chain::convert_op): Remove. - (timode_scalar_chain::convert_op): Remove. - (timode_scalar_chain::convert_insn): Update the call to - renamed timode_convert_cst. - * config/i386/i386-features.h (class scalar_chain): - Redeclare convert_op as protected class member. - (class general_calar_chain): Remove convert_op. - (class timode_scalar_chain): Ditto. - -2024-03-18 Jan Hubicka - - * config/i386/zn4zn5.md: Add file missed in the previous commit. - -2024-03-18 Jan Hubicka - Karthiban Anbazhagan - - * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5. - * common/config/i386/i386-common.cc (processor_names): Add znver5. - (processor_alias_table): Likewise. - * common/config/i386/i386-cpuinfo.h (processor_types): Add new zen - family. - (processor_subtypes): Add znver5. - * config.gcc (x86_64-*-* |...): Likewise. - * config/i386/driver-i386.cc (host_detect_local_cpu): Let - march=native detect znver5 cpu's. - * config/i386/i386-c.cc (ix86_target_macros_internal): Add - znver5. - * config/i386/i386-options.cc (m_ZNVER5): New definition - (processor_cost_table): Add znver5. - * config/i386/i386.cc (ix86_reassociation_width): Likewise. - * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5 - (PTA_ZNVER5): New definition. - * config/i386/i386.md (define_attr "cpu"): Add znver5. - (Scheduling descriptions) Add znver5.md. - * config/i386/x86-tune-costs.h (znver5_cost): New definition. - * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5. - (ix86_adjust_cost): Likewise. - * config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5. - (avx512_store_by_pieces): Add m_ZNVER5. - * doc/extend.texi: Add znver5. - * doc/invoke.texi: Likewise. - * config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler. - -2024-03-18 Georg-Johann Lay - - * config/avr/constraints.md (CX2, CX3, CX4): New constraints. - * config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto. - * config/avr/avr.cc (avr_xor_noclobber_dconst): New function. - * config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative. - (xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative. - (xorsi3, *xorsi3): Add "d,0,CX4,X" alternative. - -2024-03-18 liuhongt - - PR target/114334 - * config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF. - (MODEF248): New mode iterator. - (ssevecmodesuffix): Hanlde BF and HF. - * config/i386/sse.md (andnot3): Extend to HF/BF. - (3): Ditto. - -2024-03-18 John David Anglin - - PR rtl-optimization/112415 - * config/pa/pa.cc (pa_emit_move_sequence): Revise condition - for symbolic memory operands. - (pa_legitimate_address_p): Revise LO_SUM condition. - * config/pa/pa.h (INT14_OK_STRICT): Revise define. Move - comment about GNU linker to predicates.md. - * config/pa/predicates.md (floating_point_store_memory_operand): - Revise condition for symbolic memory operands. Update - comment. - -2024-03-17 John David Anglin - - * config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP. - -2024-03-16 Jakub Jelinek - - PR target/114175 - * config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip - ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions - if arg.type is NULL. - -2024-03-16 Jakub Jelinek - - PR tree-optimization/114329 - * gimple-lower-bitint.cc (struct bitint_large_huge): Declare - build_bit_field_ref method. - (bitint_large_huge::build_bit_field_ref): New method. - (bitint_large_huge::lower_mergeable_stmt): Use it. - -2024-03-15 YunQiang Su - - * config/riscv/riscv.opt.urls: Regenerated. - * config/rs6000/sysv4.opt.urls: Likewise. - * config/xtensa/xtensa.opt.urls: Likewise. - -2024-03-15 Jakub Jelinek - - * lower-subreg.cc (resolve_simple_move): Fix comment typo, - betwee -> between. - * edit-context.cc (class line_event): Fix comment typo, - betweeen -> between. - -2024-03-15 Jakub Jelinek - - PR target/114339 - * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) : Fix - a pasto, compare code against LE rather than GE. - -2024-03-15 Joe Ramsay - - * match.pd: Fix truncation pattern for -fno-signed-zeroes - -2024-03-15 Jakub Jelinek - - PR middle-end/114332 - * expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results. - -2024-03-15 Jakub Jelinek - - PR tree-optimization/113466 - * gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls - member. - (bitint_large_huge::bitint_large_huge): Initialize it. - (bitint_large_huge::~bitint_large_huge): Release it. - (bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts - before which at least one statement has been inserted. - (gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE - calls to a different block and add corresponding PHIs. - -2024-03-15 YunQiang Su - - * config/mips/mips.opt: Support -mstrict-align, and use - TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access - as alias. - * config/mips/mips.h: Use TARGET_STRICT_ALIGN. - * config/mips/mips.opt.urls: Regenerate. - * doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6. - -2024-03-15 Tejas Belagod - - PR middle-end/114108 - * tree-vect-patterns.cc (vect_recog_abd_pattern): Call - vect_convert_output with the correct vecitype. - -2024-03-15 Chenghui Pan - - * config/loongarch/lasx.md (lasx_xvpermi_q_): - Remove masking of operand 3. - -2024-03-14 Jason Merrill - - * tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_* - comments. - -2024-03-14 John David Anglin - - PR target/114288 - * config/pa/pa.cc (pa_legitimate_address_p): Don't allow - 14-bit displacements before reload for modes that may use - a floating-point load or store. - -2024-03-14 David Faust - - * config/bpf/bpf.h (INT8_TYPE): Change to signed char. - -2024-03-14 Max Filippov - - * config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i - patterns ahead of the l32i.n and s32i.n. - -2024-03-14 Jakub Jelinek - - * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo. - -2024-03-14 Jakub Jelinek - - PR middle-end/113907 - * ipa-icf.cc (sem_item_optimizer::merge_classes): Reset - SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged - functions. - -2024-03-14 Xi Ruoyao - - * config/loongarch/loongarch.md (any_ge): Remove. - (sge_): Remove. - -2024-03-14 Jakub Jelinek - - PR target/114310 - * config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For - TImode force newval into a register. - -2024-03-14 Chung-Lin Tang - - * tree.h (OMP_CLAUSE_MAP_READONLY): New macro. - (OMP_CLAUSE__CACHE__READONLY): New macro. - * tree-core.h (struct GTY(()) tree_base): Adjust comments for new - uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and - OMP_CLAUSE__CACHE__READONLY. - * tree-pretty-print.cc (dump_omp_clause): Add support for printing - OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY. - -2024-03-14 Andreas Krebbel - - * config/s390/s390.cc (s390_encode_section_info): Adjust the check - for misaligned symbols. - * config/s390/s390.opt: Improve documentation. - -2024-03-14 Jakub Jelinek - - * gimple-iterator.cc (edge_before_returns_twice_call): Copy all - flags and probability from ad_edge to e edge. If CDI_DOMINATORS - are computed, recompute immediate dominator of other_edge->src - and other_edge->dest. - (gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter - for the returns_twice call case to the gsi_for_stmt (stmt) to deal - with update it for bb splitting. - -2024-03-14 liuhongt - - * config/i386/i386-features.cc - (general_scalar_chain::convert_op): Handle REG_EH_REGION note. - (convert_scalars_to_vector): Ditto. - * config/i386/i386-features.h (class scalar_chain): New - memeber control_flow_insns. - -2024-03-13 Jakub Jelinek - - PR middle-end/114319 - * gimple-ssa-store-merging.cc - (imm_store_chain_info::try_coalesce_bswap): For 32-bit targets - allow matching __builtin_bswap64 if there is bswapsi2 optab. - -2024-03-13 Stefan Schulze Frielinghaus - - * config/s390/s390.cc (s390_secondary_reload): Guard - SYMBOL_FLAG_NOTALIGN2_P. - -2024-03-13 Stefan Schulze Frielinghaus - - * config/s390/s390-builtin-types.def: Update to reflect latest - changes. - * config/s390/s390-builtins.def: Streamline vector builtins with - LLVM. - -2024-03-13 Stefan Schulze Frielinghaus - - * config/s390/s390-builtins.def (vec_permi): Deprecate. - (vec_ctd): Deprecate. - (vec_ctd_s64): Deprecate. - (vec_ctd_u64): Deprecate. - (vec_ctsl): Deprecate. - (vec_ctul): Deprecate. - (vec_ld2f): Deprecate. - (vec_st2f): Deprecate. - (vec_insert): Deprecate overloads with bool vectors. - -2024-03-13 Jakub Jelinek - - PR middle-end/114313 - * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use - TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type. - (bitint_large_huge::handle_load): Pass NULL_TREE rather than - rhs_type to limb_access for the bitfield load cases. - (bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than - lhs_type to limb_access if nlhs is non-NULL. - -2024-03-13 Jakub Jelinek - - PR sanitizer/112709 - * asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode, - build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use - gsi_safe_insert_before instead of gsi_insert_before. - -2024-03-13 Jakub Jelinek - - PR sanitizer/112709 - * gimple-iterator.h (gsi_safe_insert_before, - gsi_safe_insert_seq_before): Declare. - * gimple-iterator.cc: Include gimplify.h. - (edge_before_returns_twice_call, adjust_before_returns_twice_call, - gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions. - * ubsan.cc (instrument_mem_ref, instrument_pointer_overflow, - instrument_nonnull_arg, instrument_nonnull_return): Use - gsi_safe_insert_before instead of gsi_insert_before. - (maybe_instrument_pointer_overflow): Use force_gimple_operand, - gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before - instead of force_gimple_operand_gsi. - (instrument_object_size): Likewise. Use gsi_safe_insert_before - instead of gsi_insert_before. - -2024-03-12 Richard Biener - - PR tree-optimization/114121 - * tree-chrec.cc (chrec_fold_plus_1): Guard recursion with - converted operand properly. - (chrec_fold_multiply): Likewise. Handle missed recursion. - -2024-03-12 Jakub Jelinek - - PR sanitizer/112709 - * asan.cc (has_stmt_been_instrumented_p): Don't instrument call - stores on the caller side unless it is a call to a builtin or - internal function or function doesn't return by hidden reference. - (maybe_instrument_call): Likewise. - (instrument_derefs): Instrument stores to RESULT_DECL if - returning by hidden reference. - -2024-03-12 Jakub Jelinek - - PR tree-optimization/114293 - * tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If - max is smaller than min, set max to ~(size_t)0. - -2024-03-12 Pan Li - - * config/riscv/riscv-c.cc (riscv_ext_version_value): Fix - code style greater than 80 chars. - (riscv_cpu_cpp_builtins): Fix useless empty line, indent - with 3 space(s) and argument unalignment. - -2024-03-12 Richard Biener - - PR tree-optimization/114297 - * tree-vect-loop.cc (vectorizable_live_operation): Pass in the - live stmts SLP node to vect_create_epilog_for_reduction. - -2024-03-12 Andrew Pinski - - PR driver/114314 - * common.opt (fmultiflags): Add RejectNegative. - -2024-03-11 Szabolcs Nagy - - * config/aarch64/aarch64.md: Rename aarch_ to aarch64_. - * config/aarch64/aarch64.opt: Likewise. - * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise. - * config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise. - (aarch64_expand_epilogue): Likewise. - (aarch64_post_cfi_startproc): Likewise. - (aarch64_handle_no_branch_protection): Copy and rename. - (aarch64_handle_standard_branch_protection): Likewise. - (aarch64_handle_pac_ret_protection): Likewise. - (aarch64_handle_pac_ret_leaf): Likewise. - (aarch64_handle_pac_ret_b_key): Likewise. - (aarch64_handle_bti_protection): Likewise. - (aarch64_override_options): Update branch protection validation. - (aarch64_handle_attr_branch_protection): Likewise. - * config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection): - Pass branch protection type description as argument. - (struct aarch_branch_protect_type): Move from aarch-common.h. - * config/arm/aarch-common.cc (aarch_handle_no_branch_protection): - Remove. - (aarch_handle_standard_branch_protection): Remove. - (aarch_handle_pac_ret_protection): Remove. - (aarch_handle_pac_ret_leaf): Remove. - (aarch_handle_pac_ret_b_key): Remove. - (aarch_handle_bti_protection): Remove. - (aarch_validate_mbranch_protection): Pass branch protection type - description as argument. - * config/arm/aarch-common.h (enum aarch_key_type): Remove. - (struct aarch_branch_protect_type): Remove. - * config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key. - * config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename. - (arm_handle_standard_branch_protection): Likewise. - (arm_handle_pac_ret_protection): Likewise. - (arm_handle_pac_ret_leaf): Likewise. - (arm_handle_bti_protection): Likewise. - (arm_configure_build_target): Update branch protection validation. - * config/arm/arm.opt: Remove aarch_ra_sign_key. - -2024-03-11 Richard Biener - - PR middle-end/114299 - * gimplify.cc (internal_get_tmp_var): When gimplification - of VAL failed, return a decl. - -2024-03-11 Jakub Jelinek - - PR tree-optimization/114278 - * tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no - longer addressable, set DECL_NOT_GIMPLE_REG_P on them. - -2024-03-11 Eric Botcazou - - PR debug/113519 - PR debug/113777 - * dwarf2out.cc (gen_enumeration_type_die): In the reverse case, - generate the DIE with the same parent as in the regular case. - -2024-03-11 Andrew Pinski - - PR middle-end/95351 - * fold-const.cc (merge_truthop_with_opposite_arm): Use - the type of the operands of the comparison and not the type - of the comparison. - -2024-03-10 jlaw - - PR tree-optimization/110199 - * tree-ssa-scopedtables.cc - (avail_exprs_stack::simplify_binary_operation): Generalize handling - of MIN_EXPR/MAX_EXPR to allow additional simplifications. Canonicalize - comparison operands for other cases. - -2024-03-10 Pan Li - - * tree-vect-stmts.cc (vectorizable_store): Enable the assert - during transform process. - (vectorizable_load): Ditto. - -2024-03-10 jlaw - - PR target/102250 - * doc/install.texi: Document need for python when building - RISC-V compilers. - -2024-03-10 jlaw - - PR target/111362 - * mode-switching.cc (optimize_mode_switching): Only process - NONDEBUG insns. - -2024-03-09 Georg-Johann Lay - - * config/avr/avr.md: Fix typos in comment, indentation glitches - and some other nits. - -2024-03-09 Jakub Jelinek - - PR target/114284 - * fwprop.cc (try_fwprop_subst_pattern): Don't propagate - src containing MEMs unless prop.likely_profitable_p (). - -2024-03-09 Xi Ruoyao - - * config/loongarch/loongarch.cc (loongarch_print_operand_reloc): - Support 'Q' for R_LARCH_RELAX for TLS IE. - (loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS - IE. - * config/loongarch/loongarch.md (ld_from_got): Likewise. - -2024-03-09 Georg-Johann Lay - - * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for - usum_widenqihi and add_zero_extend1. - [MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend, - sub+sign_extend. - * config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2): - Compute exact insn lengths. - (*usum_widenqihi3): Allow input operands to commute. - -2024-03-09 Jakub Jelinek - - * config/i386/i386.opt.urls: Regenerate. - -2024-03-09 Lulu Cheng - - * config/loongarch/sync.md (atomic_cas_value_strong): - In loongarch64, a sign extension operation is added when - operands[2] is a register operand and the mode is SImode. - -2024-03-08 Martin Jambor - - PR ipa/113757 - * tree-inline.cc (redirect_all_calls): Remove code adding SSAs to - id->killed_new_ssa_names. - -2024-03-08 Vladimir N. Makarov - - PR target/113790 - * lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos - for non-reload pseudo too. - -2024-03-08 David Faust - - * config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do - not attempt inline expansion if size is above threshold. - * config/bpf/bpf.opt (-minline-memops-threshold): New option. - * doc/invoke.texi (eBPF Options) <-minline-memops-threshold>: - Document. - -2024-03-08 Richard Biener - - PR tree-optimization/114269 - PR tree-optimization/114074 - * tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions - in the third CASE_CONVERT case as well. - (chrec_fold_multiply): Handle sign-conversions from unsigned - by performing the operation in the unsigned type. - -2024-03-08 Georg-Johann Lay - - * config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern. - * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost. - -2024-03-08 Jakub Jelinek - - * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert, - asm_noperands < 0 means it is not asm goto too. - -2024-03-08 Jakub Jelinek - - PR target/38534 - * config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New - option. - * config/i386/i386-options.cc (ix86_set_func_type): Don't use - TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless - ix86_noreturn_no_callee_saved_registers is enabled. - * doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document. - -2024-03-08 Jakub Jelinek - - PR debug/113918 - * dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols - on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf. - -2024-03-08 demin.han - - PR target/114264 - * config/riscv/riscv-vector-costs.cc: Fix ICE - -2024-03-08 Haochen Gui - - * fwprop.cc (forward_propagate_into): Return false for volatile set - source rtx. - -2024-03-07 Wilco Dijkstra - - PR target/113618 - * config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove. - (aarch64_expand_cpymem): Emit single load/store only. - (aarch64_set_one_block): Emit single stores only. - -2024-03-07 Robin Dapp - - PR middle-end/114196 - * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge - vectorization guards. - -2024-03-07 Jonathan Wakely - - * doc/cppopts.texi: Remove incorrect claim about -dD not - outputting predefined macros. - -2024-03-07 Jeevitha Palanisamy - - PR target/113950 - * config/rs6000/vsx.md (vsx_splat_): Correct assignment to operand1 - and simplify else if with else. - -2024-03-07 Francois-Xavier Coudert - - * system.h: Include safe-ctype.h after C++ standard headers. - -2024-03-07 Jakub Jelinek - - PR rtl-optimization/110079 - * bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust - asm goto. - -2024-03-07 Jakub Jelinek - - PR middle-end/105533 - * expmed.cc (choose_mult_variant): Only try the val - 1 variant - if val is not HOST_WIDE_INT_MIN or if mode has exactly - HOST_BITS_PER_WIDE_INT precision. Avoid triggering UB while computing - val - 1. - -2024-03-07 Jakub Jelinek - - PR middle-end/105533 - * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) : - Multiple op->off by BITS_PER_UNIT instead of shifting it left by - LOG2_BITS_PER_UNIT. - -2024-03-07 Yang Yujie - - * config.gcc: Add a case for loongarch*-*-linux-musl*. - * config/loongarch/linux.h: Disable the multilib-compatible - treatment for *musl* targets. - * config/loongarch/musl.h: New file. - -2024-03-07 Jakub Jelinek - - PR tree-optimization/114009 - * genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures - argument even for GENERIC, not just for GIMPLE. - * match.pd (a * !a -> 0): New simplifications. - -2024-03-07 demin.han - - * config/riscv/riscv-protos.h (expand_vec_cmp): Change proto - * config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments - (expand_vec_cmp_float): Adapt arguments - -2024-03-06 Uros Bizjak - - PR target/114232 - * config/i386/mmx.md (negv2qi2): Enable for optimize_size instead - of optimize_function_for_size_p. Explictily enable for TARGET_SSE2. - (negv2qi SSE reg splitter): Enable for TARGET_SSE2 only. - (v2qi3): Enable for optimize_size instead - of optimize_function_for_size_p. Explictily enable for TARGET_SSE2. - (v2qi SSE reg splitter): Enable for TARGET_SSE2 only. - (v2qi3): Enable for optimize_size instead - of optimize_function_for_size_p. - -2024-03-06 Robin Dapp - - PR target/114200 - PR target/114202 - * config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v. - -2024-03-06 Robin Dapp - - * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move... - (costs::adjust_stmt_cost): ... to here and add vec_load/vec_store - offset handling. - (costs::add_stmt_cost): Also adjust cost for statements without - stmt_info. - * config/riscv/riscv-vector-costs.h: Define zero constant. - -2024-03-06 Wilco Dijkstra - - PR target/113915 - * config/arm/arm.md (NOCOND): Improve comment. - (arm_rev*) Add predicable. - * config/arm/arm.cc (arm_final_prescan_insn): Add check for - PREDICABLE_YES. - -2024-03-06 Jeff Law - - PR target/113001 - PR target/112871 - * config/riscv/riscv.cc (expand_conditional_move): Do not swap - operands when the comparison operand is the same as the false - arm for a NE test. - -2024-03-06 Uros Bizjak - - * config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]: - Eliminate common code and use generic code instead. - -2024-03-06 Georg-Johann Lay - - * config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust - rtx cost. - -2024-03-06 Richard Biener - - PR tree-optimization/114239 - * tree-vect-loop.cc (vect_get_vect_def): Remove. - (vect_create_epilog_for_reduction): The passed in stmt_info - should now be the live stmt that produces the scalar reduction - result. Revert PR114192 fix. Base reduction info off - info_for_reduction. Remove special handling of - early-break/peeled, restore original vector def gathering. - Make sure to pick the correct exit PHIs. - (vectorizable_live_operation): Pass in the proper stmt_info - for early break exits. - -2024-03-06 Richard Sandiford - - * config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add - out-of-class definitions of static constants. - -2024-03-06 Richard Biener - - PR tree-optimization/114249 - * tree-vect-slp.cc (vect_build_slp_instance): Move making - a BB reduction lane number even ... - (vect_slp_check_for_roots): ... here to avoid leaking - pattern defs. - -2024-03-06 Richard Biener - - PR tree-optimization/114246 - * tree-ssa-dse.cc (increment_start_addr): Strip useless - type conversions from the adjusted address. - -2024-03-06 Jakub Jelinek - - PR rtl-optimization/114190 - * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper): - Call df_remove_problem for df_note before calling df_analyze. - -2024-03-05 Cupertino Miranda - Indu Bhagat - - PR debug/114186 - * dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array () - in the correct order of the dimensions. - (gen_ctf_subrange_type): Refactor out handling of - DW_TAG_subrange_type DIE to here. - -2024-03-05 Richard Sandiford - - PR sanitizer/97696 - * asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int. - -2024-03-05 Richard Sandiford - - * config/aarch64/aarch64.md (stride_type): Remove luti_consecutive - and luti_strided. - * config/aarch64/aarch64-sme.md - (@aarch64_sme_lut): Remove stride_type attribute. - (@aarch64_sme_lut_strided2): Delete. - (@aarch64_sme_lut_strided4): Likewise. - * config/aarch64/aarch64-early-ra.cc (is_stride_candidate) - (early_ra::maybe_convert_to_strided_access): Remove support for - strided LUTI2 and LUTI4. - -2024-03-05 Richard Earnshaw - - PR target/113510 - * config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use - low_register_operand. - -2024-03-05 Georg-Johann Lay - - * config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND - in HI, PSI, SI that swap operation order from "X = CST, X o= Y" - to "X = Y, X o= CST". - -2024-03-05 Xi Ruoyao - - * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add - s9 as an alias of r22. - -2024-03-05 Roger Sayle - - * config/avr/avr-protos.h (avr_out_insv): New proto. - * config/avr/avr.cc (avr_out_insv): New function. - (avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case. - (avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs. - * config/avr/avr.md (define_attr "adjust_len") Add insv. - (andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3): - Add constraint alternative where the 3rd operand is a power - of 2, and the source register may differ from the destination. - (*insv.any_shift._split): Call avr_out_insv to output - instructions. Set attr "length" to "insv". - * config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints. - -2024-03-05 Richard Biener - - PR tree-optimization/114231 - * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when - processing a BB SLP root. - -2024-03-05 Jakub Jelinek - - PR rtl-optimization/114211 - * lower-subreg.cc (resolve_simple_move): For double-word - rotates by BITS_PER_WORD if there is overlap between source - and destination use a temporary. - -2024-03-05 Jakub Jelinek - - PR middle-end/114157 - * gimple-lower-bitint.cc: Include stor-layout.h. - (mergeable_op): Return true for BIT_FIELD_REF. - (struct bitint_large_huge): Declare handle_bit_field_ref method. - (bitint_large_huge::handle_bit_field_ref): New method. - (bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF. - -2024-03-05 Jakub Jelinek - - PR target/114116 - * config/i386/i386.h (enum call_saved_registers_type): Add - TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator. - * config/i386/i386-options.cc (ix86_set_func_type): Remove - has_no_callee_saved_registers variable, add no_callee_saved_registers - instead, initialize it depending on whether it is - no_callee_saved_registers function or not. Don't set it if - no_caller_saved_registers attribute is present. Adjust users. - * config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle - TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like - TYPE_NO_CALLEE_SAVED_REGISTERS. - (ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP. - -2024-03-05 Pan Li - - * config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused - mode_size related code. - -2024-03-05 Patrick Palka - - * doc/invoke.texi (-Wno-global-module): Document. - -2024-03-04 David Faust - - * config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype. - * config/bpf/bpf.cc (bpf_expand_setmem): New. - * config/bpf/bpf.md (setmemdi): New define_expand. - -2024-03-04 Jakub Jelinek - - PR rtl-optimization/113010 - * combine.cc (simplify_comparison): Guard the - WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG - and initialize inner_mode. - -2024-03-04 Andre Vieira - - * config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U, - VMLALDAVAXQ_U cases. - (VMLALDAVXQ): Remove iterator. - (VMLALDAVXQ_P): Likewise. - (VMLALDAVAXQ): Likewise. - * config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of - mode iterator attribute with V4BI mode. - * config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U, - VMLALDAVAXQ_U): Remove unused unspecs. - -2024-03-04 Andre Vieira - - * config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute. - * config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator - attribute. - * config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u, - vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u, - vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u, - vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s, - vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s, - vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u, - vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u, - vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s, - vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s, - vmlsldavaxq_s): Added mve_safe_imp_xlane_pred. - -2024-03-04 Stam Markianos-Wright - - * config/arm/arm.md (mve_unpredicated_insn): New attribute. - * config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define. - (MVE_VPT_UNPREDICATED_INSN_P): Likewise. - (MVE_VPT_PREDICABLE_INSN_P): Likewise. - * config/arm/vec-common.md (mve_vshlq_): Add attribute. - * config/arm/mve.md (arm_vcx1q_p_v16qi): Add attribute. - (arm_vcx1qv16qi): Likewise. - (arm_vcx1qav16qi): Likewise. - (arm_vcx1qv16qi): Likewise. - (arm_vcx2q_p_v16qi): Likewise. - (arm_vcx2qv16qi): Likewise. - (arm_vcx2qav16qi): Likewise. - (arm_vcx2qv16qi): Likewise. - (arm_vcx3q_p_v16qi): Likewise. - (arm_vcx3qv16qi): Likewise. - (arm_vcx3qav16qi): Likewise. - (arm_vcx3qv16qi): Likewise. - (@mve_q_): Likewise. - (@mve_q_int_): Likewise. - (@mve_q_v4si): Likewise. - (@mve_q_n_): Likewise. - (@mve_q_r_): Likewise. - (@mve_q_f): Likewise. - (@mve_q_m_): Likewise. - (@mve_q_m_n_): Likewise. - (@mve_q_m_r_): Likewise. - (@mve_q_m_f): Likewise. - (@mve_q_int_m_): Likewise. - (@mve_q_p_v4si): Likewise. - (@mve_q_p_): Likewise. - (@mve_q_): Likewise. - (@mve_q_f): Likewise. - (@mve_q_m_): Likewise. - (@mve_q_m_f): Likewise. - (mve_vq_f): Likewise. - (mve_q): Likewise. - (mve_q_f): Likewise. - (mve_vadciq_v4si): Likewise. - (mve_vadciq_m_v4si): Likewise. - (mve_vadcq_v4si): Likewise. - (mve_vadcq_m_v4si): Likewise. - (mve_vandq_): Likewise. - (mve_vandq_f): Likewise. - (mve_vandq_m_): Likewise. - (mve_vandq_m_f): Likewise. - (mve_vandq_s): Likewise. - (mve_vandq_u): Likewise. - (mve_vbicq_): Likewise. - (mve_vbicq_f): Likewise. - (mve_vbicq_m_): Likewise. - (mve_vbicq_m_f): Likewise. - (mve_vbicq_m_n_): Likewise. - (mve_vbicq_n_): Likewise. - (mve_vbicq_s): Likewise. - (mve_vbicq_u): Likewise. - (@mve_vclzq_s): Likewise. - (mve_vclzq_u): Likewise. - (@mve_vcmp_q_): Likewise. - (@mve_vcmp_q_n_): Likewise. - (@mve_vcmp_q_f): Likewise. - (@mve_vcmp_q_n_f): Likewise. - (@mve_vcmp_q_m_f): Likewise. - (@mve_vcmp_q_m_n_): Likewise. - (@mve_vcmp_q_m_): Likewise. - (@mve_vcmp_q_m_n_f): Likewise. - (mve_vctpq): Likewise. - (mve_vctpq_m): Likewise. - (mve_vcvtaq_): Likewise. - (mve_vcvtaq_m_): Likewise. - (mve_vcvtbq_f16_f32v8hf): Likewise. - (mve_vcvtbq_f32_f16v4sf): Likewise. - (mve_vcvtbq_m_f16_f32v8hf): Likewise. - (mve_vcvtbq_m_f32_f16v4sf): Likewise. - (mve_vcvtmq_): Likewise. - (mve_vcvtmq_m_): Likewise. - (mve_vcvtnq_): Likewise. - (mve_vcvtnq_m_): Likewise. - (mve_vcvtpq_): Likewise. - (mve_vcvtpq_m_): Likewise. - (mve_vcvtq_from_f_): Likewise. - (mve_vcvtq_m_from_f_): Likewise. - (mve_vcvtq_m_n_from_f_): Likewise. - (mve_vcvtq_m_n_to_f_): Likewise. - (mve_vcvtq_m_to_f_): Likewise. - (mve_vcvtq_n_from_f_): Likewise. - (mve_vcvtq_n_to_f_): Likewise. - (mve_vcvtq_to_f_): Likewise. - (mve_vcvttq_f16_f32v8hf): Likewise. - (mve_vcvttq_f32_f16v4sf): Likewise. - (mve_vcvttq_m_f16_f32v8hf): Likewise. - (mve_vcvttq_m_f32_f16v4sf): Likewise. - (mve_vdwdupq_m_wb_u_insn): Likewise. - (mve_vdwdupq_wb_u_insn): Likewise. - (mve_veorq_s>): Likewise. - (mve_veorq_u>): Likewise. - (mve_veorq_f): Likewise. - (mve_vidupq_m_wb_u_insn): Likewise. - (mve_vidupq_u_insn): Likewise. - (mve_viwdupq_m_wb_u_insn): Likewise. - (mve_viwdupq_wb_u_insn): Likewise. - (mve_vldrbq_): Likewise. - (mve_vldrbq_gather_offset_): Likewise. - (mve_vldrbq_gather_offset_z_): Likewise. - (mve_vldrbq_z_): Likewise. - (mve_vldrdq_gather_base_v2di): Likewise. - (mve_vldrdq_gather_base_wb_v2di_insn): Likewise. - (mve_vldrdq_gather_base_wb_z_v2di_insn): Likewise. - (mve_vldrdq_gather_base_z_v2di): Likewise. - (mve_vldrdq_gather_offset_v2di): Likewise. - (mve_vldrdq_gather_offset_z_v2di): Likewise. - (mve_vldrdq_gather_shifted_offset_v2di): Likewise. - (mve_vldrdq_gather_shifted_offset_z_v2di): Likewise. - (mve_vldrhq_): Likewise. - (mve_vldrhq_fv8hf): Likewise. - (mve_vldrhq_gather_offset_): Likewise. - (mve_vldrhq_gather_offset_fv8hf): Likewise. - (mve_vldrhq_gather_offset_z_): Likewise. - (mve_vldrhq_gather_offset_z_fv8hf): Likewise. - (mve_vldrhq_gather_shifted_offset_): Likewise. - (mve_vldrhq_gather_shifted_offset_fv8hf): Likewise. - (mve_vldrhq_gather_shifted_offset_z_): Likewise. - (mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise. - (mve_vldrhq_z_): Likewise. - (mve_vldrhq_z_fv8hf): Likewise. - (mve_vldrwq_v4si): Likewise. - (mve_vldrwq_fv4sf): Likewise. - (mve_vldrwq_gather_base_v4si): Likewise. - (mve_vldrwq_gather_base_fv4sf): Likewise. - (mve_vldrwq_gather_base_wb_v4si_insn): Likewise. - (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise. - (mve_vldrwq_gather_base_wb_z_v4si_insn): Likewise. - (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise. - (mve_vldrwq_gather_base_z_v4si): Likewise. - (mve_vldrwq_gather_base_z_fv4sf): Likewise. - (mve_vldrwq_gather_offset_v4si): Likewise. - (mve_vldrwq_gather_offset_fv4sf): Likewise. - (mve_vldrwq_gather_offset_z_v4si): Likewise. - (mve_vldrwq_gather_offset_z_fv4sf): Likewise. - (mve_vldrwq_gather_shifted_offset_v4si): Likewise. - (mve_vldrwq_gather_shifted_offset_fv4sf): Likewise. - (mve_vldrwq_gather_shifted_offset_z_v4si): Likewise. - (mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise. - (mve_vldrwq_z_v4si): Likewise. - (mve_vldrwq_z_fv4sf): Likewise. - (mve_vmvnq_s): Likewise. - (mve_vmvnq_u): Likewise. - (mve_vornq_): Likewise. - (mve_vornq_f): Likewise. - (mve_vornq_m_): Likewise. - (mve_vornq_m_f): Likewise. - (mve_vornq_s): Likewise. - (mve_vornq_u): Likewise. - (mve_vorrq_): Likewise. - (mve_vorrq_f): Likewise. - (mve_vorrq_m_): Likewise. - (mve_vorrq_m_f): Likewise. - (mve_vorrq_m_n_): Likewise. - (mve_vorrq_n_): Likewise. - (mve_vorrq_s): Likewise. - (mve_vorrq_s): Likewise. - (mve_vsbciq_v4si): Likewise. - (mve_vsbciq_m_v4si): Likewise. - (mve_vsbcq_v4si): Likewise. - (mve_vsbcq_m_v4si): Likewise. - (mve_vshlcq_): Likewise. - (mve_vshlcq_m_): Likewise. - (mve_vshrq_m_n_): Likewise. - (mve_vshrq_n_): Likewise. - (mve_vstrbq_): Likewise. - (mve_vstrbq_p_): Likewise. - (mve_vstrbq_scatter_offset__insn): Likewise. - (mve_vstrbq_scatter_offset_p__insn): Likewise. - (mve_vstrdq_scatter_base_v2di): Likewise. - (mve_vstrdq_scatter_base_p_v2di): Likewise. - (mve_vstrdq_scatter_base_wb_v2di): Likewise. - (mve_vstrdq_scatter_base_wb_p_v2di): Likewise. - (mve_vstrdq_scatter_offset_v2di_insn): Likewise. - (mve_vstrdq_scatter_offset_p_v2di_insn): Likewise. - (mve_vstrdq_scatter_shifted_offset_v2di_insn): Likewise. - (mve_vstrdq_scatter_shifted_offset_p_v2di_insn): Likewise. - (mve_vstrhq_): Likewise. - (mve_vstrhq_fv8hf): Likewise. - (mve_vstrhq_p_): Likewise. - (mve_vstrhq_p_fv8hf): Likewise. - (mve_vstrhq_scatter_offset__insn): Likewise. - (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise. - (mve_vstrhq_scatter_offset_p__insn): Likewise. - (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise. - (mve_vstrhq_scatter_shifted_offset__insn): Likewise. - (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise. - (mve_vstrhq_scatter_shifted_offset_p__insn): Likewise. - (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise. - (mve_vstrwq_v4si): Likewise. - (mve_vstrwq_fv4sf): Likewise. - (mve_vstrwq_p_v4si): Likewise. - (mve_vstrwq_p_fv4sf): Likewise. - (mve_vstrwq_scatter_base_v4si): Likewise. - (mve_vstrwq_scatter_base_fv4sf): Likewise. - (mve_vstrwq_scatter_base_p_v4si): Likewise. - (mve_vstrwq_scatter_base_p_fv4sf): Likewise. - (mve_vstrwq_scatter_base_wb_v4si): Likewise. - (mve_vstrwq_scatter_base_wb_fv4sf): Likewise. - (mve_vstrwq_scatter_base_wb_p_v4si): Likewise. - (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise. - (mve_vstrwq_scatter_offset_v4si_insn): Likewise. - (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise. - (mve_vstrwq_scatter_offset_p_v4si_insn): Likewise. - (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise. - (mve_vstrwq_scatter_shifted_offset_v4si_insn): Likewise. - (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise. - (mve_vstrwq_scatter_shifted_offset_p_v4si_insn): Likewise. - (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise. - -2024-03-04 Marek Polacek - - * doc/extend.texi: Update [[gnu::no_dangling]]. - -2024-03-04 Andrew Stubbs - - * dojump.cc (do_compare_and_jump): Use full-width integers for shifts. - * expr.cc (store_constructor): Likewise. - (do_store_flag): Likewise. - -2024-03-04 Mark Wielaard - - * common.opt.urls: Regenerate. - * config/avr/avr.opt.urls: Likewise. - * config/i386/i386.opt.urls: Likewise. - * config/pru/pru.opt.urls: Likewise. - * config/riscv/riscv.opt.urls: Likewise. - * config/rs6000/rs6000.opt.urls: Likewise. - -2024-03-04 Richard Biener - - PR tree-optimization/114197 - * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if - there are volatile bitfield accesses. - (pass_if_conversion::execute): Throw away result if the - if-converted and original loops are not nested as expected. - -2024-03-04 Richard Biener - - PR tree-optimization/114164 - * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if - the code generated for mask argument setup is not supported. - -2024-03-04 Richard Biener - - PR tree-optimization/114203 - * tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ - adjustment before making the result defined at zero. - -2024-03-04 Richard Biener - - PR tree-optimization/114192 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the - appropriate def for the live out stmt in case of an alternate - exit. - -2024-03-04 Jakub Jelinek - - PR middle-end/114209 - * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call - unshare_expr when creating a MEM_REF from MEM_REF. - (bitint_large_huge::lower_stmt): Call unshare_expr. - -2024-03-04 Jakub Jelinek - - PR target/114184 - * config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1 - is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or - register. - -2024-03-04 Roger Sayle - - PR target/114187 - * simplify-rtx.cc (simplify_context::simplify_subreg): Call - lowpart_subreg to perform type conversion, to avoid confusion - over the offset to use in the call to simplify_reg_subreg. - -2024-03-03 Greg McGary - - PR rtl-optimization/113010 - * combine.cc (simplify_comparison): Simplify a SUBREG on - WORD_REGISTER_OPERATIONS targets only if it is a zero-extending - MEM load. - -2024-03-03 Georg-Johann Lay - - * config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED. - Use bool in place of int for boolean logic (if possible). - Move declarations to definitions (if possible). - * config/avr/avr.md: Use C++ comments. Fix some indentation glitches. - * config/avr/avr-dimode.md: Same. - * config/avr/constraints.md: Same. - * config/avr/predicates.md: Same. - -2024-03-03 Uros Bizjak - - PR target/113720 - * config/alpha/alpha.md (umuldi3_highpart): Remove expander. - (*umuldi3_highpart_reg): Rename to umuldi3_highpart and - simplify insn RTX using UMUL_HIGHPART rtx_code. - (*umuldi3_highpart_const): Remove. - -2024-03-03 Georg-Johann Lay - - PR target/114100 - * config/avr/avr-protos.h (_reg_unused_after): Remove proto. - * config/avr/avr.cc (_reg_unused_after): Make static. And - add 3rd argument to skip the current insn. - (reg_unused_after): Adjust call of reg_unused_after. - (avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output - unneeded frame pointer adjustments. - -2024-03-03 Georg-Johann Lay - - PR target/92729 - * config/avr/avr.md (define_attr "cc"): Remove. - * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument - from prototype. - * config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and - its uses. Add insn argument. - (avr_out_plus_symbol): Remove pcc argument and its uses. - (avr_out_plus): Remove pcc argument and its uses. - Adjust calls of avr_out_plus_symbol and avr_out_plus_1. - (avr_out_round): Adjust call of avr_out_plus. - -2024-03-03 Georg-Johann Lay - - * config/avr/avr.cc (avr_init_cumulative_args): Fix a typo - from r14-9273. - -2024-03-03 Oleg Endo - - PR target/101737 - * config/sh/sh.cc (sh_is_nott_insn): Handle case where the input - is not an insn, but e.g. a code label. - -2024-03-02 Georg-Johann Lay - - * config/avr/avr.md (REG_0, ... REG_36): New define_constants. - * config/avr/avr.cc: Use them instead of magic numbers when it - means a register number. - -2024-03-02 Georg-Johann Lay - - * config/avr/avr.cc: Adjust some comments. - -2024-03-02 Georg-Johann Lay - - PR target/114100 - * config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust - the low part of the frame pointer with 8-bit stack pointer. - -2024-03-01 Patrick Palka - - PR c++/104919 - PR c++/106009 - * tree-inline.cc (remap_decl): Handle copy_decl returning the - original decl. - (remap_decls): Handle remap_decl returning the original decl. - (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and - CONST_DECL. - -2024-03-01 Jeff Law - - * config/riscv/riscv.md (zero_extendqi2_internal): Fix - type attribute. - (extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise. - (movdi_32bit, movdi_64bit, movsi_internal): Likewise. - (movhi_internal, movqi_internal): Likewise. - (movsf_softfloat, movsf_hardfloat): Likewise. - (movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise. - (movdf_softfloat): Likewise. - -2024-03-01 Marek Polacek - - PR c++/110358 - PR c++/109642 - * doc/extend.texi: Document gnu::no_dangling. - * doc/invoke.texi: Mention that gnu::no_dangling disables - -Wdangling-reference. - -2024-03-01 Georg-Johann Lay - - * config/avr/avr.opt: Overhaul help screen. - -2024-03-01 Jakub Jelinek - Tobias Burnus - - PR c++/110347 - * gimplify.cc (omp_notice_variable): Fix 'shared' arg to - lang_hooks.decls.omp_disregard_value_expr for - (first)private in target regions. - -2024-03-01 Jakub Jelinek - - PR middle-end/114136 - * calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set - n_named_args initially before INIT_CUMULATIVE_ARGS to - structure_value_addr_parm rather than 0, after it don't modify - it if strict_argument_naming and clear only if - !pretend_outgoing_varargs_named. - -2024-03-01 Jakub Jelinek - - PR debug/114015 - * dwarf2out.cc (should_move_die_to_comdat): Return false for - aggregates without DW_AT_byte_size attribute or with non-constant - DW_AT_byte_size. - -2024-03-01 Georg-Johann Lay - - * doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document - valid values for level. - -2024-03-01 Richard Biener - - PR middle-end/114070 - * match.pd ((c ? a : b) op d --> c ? (a op d) : (b op d)): - Allow the folding if before lowering and the current IL - isn't supported with vcond_mask. - -2024-03-01 xuli - - * config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc - attribute to riscv_attribute_table. - (riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function. - (riscv_fntype_abi): Add riscv_vector_cc attribute check. - * doc/extend.texi: Add riscv_vector_cc attribute description. - -2024-03-01 Pan Li - - PR target/112817 - * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace - RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL. - * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove. - (enum rvv_vector_bits_enum): New enum for different RVV vector bits. - * config/riscv/riscv-selftests.cc (riscv_run_selftests): Update - comments for option replacement. - * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of - riscv_autovec_preference to rvv_vector_bits. - (vls_mode_valid_p): Ditto. - (estimated_poly_value): Ditto. - * config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to - vector chunks and honor new option mrvv-vector-bits. - (riscv_override_options_internal): Update comments and rename the - vector chunks. - * config/riscv/riscv.opt: Add option mrvv-vector-bits and remove - internal option param=riscv-autovec-preference. - -2024-03-01 Jakub Jelinek - - * function.cc (assign_parms): Only call assign_parms_setup_varargs - early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty. - -2024-03-01 Jakub Jelinek - - PR middle-end/114156 - * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow - rhs1 of a VCE to have no underlying variable if it is a load and - handle that case. - -2024-02-29 David Malcolm - - PR analyzer/114159 - * function.cc (function_name): Make param const. - * function.h (function_name): Likewise. - -2024-02-29 Georg-Johann Lay - - PR target/114100 - * doc/invoke.texi (AVR Options) <-mfuse-add>: Document. - * config/avr/avr.opt (-mfuse-add=): New target option. - * common/config/avr/avr-common.cc (avr_option_optimization_table) - [OPT_LEVELS_1_PLUS]: Set -mfuse-add=1. - [OPT_LEVELS_2_PLUS]: Set -mfuse-add=2. - * config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass. - * config/avr/avr-protos.h (avr_split_tiny_move) - (make_avr_pass_fuse_add): New protos. - * config/avr/avr.md [AVR_TINY]: New post-reload splitter uses - avr_split_tiny_move to split indirect memory accesses. - (gen_move_clobbercc): New define_expand helper. - * config/avr/avr.cc (avr_pass_data_fuse_add): New pass data. - (avr_pass_fuse_add): New class from rtl_opt_pass. - (make_avr_pass_fuse_add, avr_split_tiny_move): New functions. - (reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions. - (avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets - of PLUS addressing for AVR_TINY. - (avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X. - (avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y. - (avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS. - -2024-02-29 Georg-Johann Lay - - PR target/114132 - * config/avr/avr.h (CUMULATIVE_ARGS) : New field. - * config/avr/avr.cc (avr_init_cumulative_args): Initialize it. - (avr_function_arg): Set it. - (avr_frame_pointer_required_p): Use it instead of .nregs. - -2024-02-29 Andrew Pinski - - PR target/108174 - * config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make - static and mark with GTY. - -2024-02-29 Xi Ruoyao - - * config/loongarch/loongarch.md - (loongarch__w__w_extended): New define_insn. - -2024-02-29 Xi Ruoyao - - * config/loongarch/loongarch.md (CRC): New define_int_iterator. - (crc): New define_int_attr. - (loongarch_crc_w__w, loongarch_crcc_w__w): Unify - into ... - (loongarch__w__w): ... here. - -2024-02-29 Kito Cheng - - PR target/114130 - * config/riscv/sync.md (atomic_compare_and_swap): Sign - extend the expected value if needed. - -2024-02-28 Cupertino Miranda - - * config.gcc (target_gtfiles): Change coreout to btfext-out. - (extra_objs): Change coreout to btfext-out. - * config/bpf/coreout.cc: Rename to btfext-out.cc. - * config/bpf/btfext-out.cc: Add. - * config/bpf/coreout.h: Rename to btfext-out.h. - * config/bpf/btfext-out.h: Add. - * config/bpf/core-builtins.cc: Change include. - * config/bpf/core-builtins.h: Change include. - * config/bpf/t-bpf: Accomodate renamed files. - -2024-02-28 Cupertino Miranda - - PR target/113453 - * config/bpf/bpf.cc (bpf_function_prologue): Define target - hook. - * config/bpf/coreout.cc (brf_ext_info_section) - (btf_ext_info): Move from coreout.h - (btf_ext_funcinfo, btf_ext_lineinfo): Add struct. - (bpf_core_reloc): Rename to btf_ext_core_reloc. - (btf_ext): Add static variable. - (btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN) - (bpf_create_or_find_funcinfo, bpt_create_core_reloc) - (btf_ext_add_string, btf_funcinfo_type_callback) - (btf_add_func_info_for, btf_validate_funcinfo) - (btf_ext_info_len, output_btfext_func_info): Add function. - (output_btfext_header, bpf_core_reloc_add) - (output_btfext_core_relocs, btf_ext_init, btf_ext_output): - Change to support new structs. - * config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo): - Move and change in coreout.cc. - (btf_add_func_info_for, btf_ext_add_string): Add prototypes. - -2024-02-28 Cupertino Miranda - - * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext - enabled by default for BPF. - (bpf_file_end): Call BTF deallocation. - (bpf_asm_init_sections): Correct condition. - * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF - deallocation. - (ctf_debuf_finish): Correct condition for calling - ctf_debug_finalize. - -2024-02-28 Cupertino Miranda - - * btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT. - (traverse_btf_func_types): Define function. - * ctfc.h (funcs_traverse_callback): Typedef for function - prototype. - (traverse_btf_func_types): Add prototype. - -2024-02-28 Cupertino Miranda - - * btfout.cc (btf_collect_dataset): Corrects BTF type id. - -2024-02-28 Richard Biener - - PR tree-optimization/113831 - PR tree-optimization/108355 - * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert - PR113831 fix. - -2024-02-28 Richard Biener - - PR tree-optimization/114121 - * tree-ssa-sccvn.h (vn_reference_s::offset, - vn_reference_s::max_size): New fields. - (vn_reference_insert_pieces): Adjust prototype. - * tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size. - * tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and - size, allow using "don't know" state. - (vn_walk_cb_data::finish): Pass along offset/max_size. - (vn_reference_lookup_or_insert_for_pieces): Take offset and - max_size as argument and use it. - (vn_reference_lookup_3): Properly adjust offset and max_size - according to the adjusted ao_ref. - (vn_reference_lookup_pieces): Initialize offset and max_size. - (vn_reference_lookup): Likewise. - (vn_reference_lookup_call): Likewise. - (vn_reference_insert): Likewise. - (visit_reference_op_call): Likewise. - (vn_reference_insert_pieces): Take offset and max_size - as argument and use it. - -2024-02-28 Juergen Christ - - PR tree-optimization/114075 - * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating - point vectors - -2024-02-28 Jakub Jelinek - - PR tree-optimization/114041 - * graphite-sese-to-poly.cc (add_conditions_to_domain): Check for - INTEGRAL_TYPE_P check rather than INTEGER_TYPE. - -2024-02-28 Jakub Jelinek - - PR tree-optimization/113988 - * stor-layout.h (bitwise_mode_for_size): Declare. - * stor-layout.cc (bitwise_mode_for_size): New function. - * gimple-fold.cc (gimple_fold_builtin_memory_op): Use it. - Use bitwise_type_for_mode instead of build_nonstandard_integer_type. - Use BITS_PER_UNIT instead of 8. - -2024-02-27 Uros Bizjak - - PR target/113871 - * config/i386/mmx.md (V248FI): Add V2BF mode. - (V24FI_32): Ditto. - -2024-02-27 Eric Botcazou - - * tree-ssa-dse.cc (compute_trims): Fix description. Return early - if either ref->offset is not byte aligned or ref->size is not known - to be equal to ref->max_size. - (maybe_trim_complex_store): Fix description. - (maybe_trim_constructor_store): Likewise. - (maybe_trim_partially_dead_store): Likewise. - -2024-02-27 Richard Earnshaw - - * config/arm/mmintrin.h: Warn if this header is included without - defining __ENABLE_DEPRECATED_IWMMXT. - -2024-02-27 Richard Biener - - PR tree-optimization/114074 - * tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL. - * tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs. - Handle poly vs. non-poly multiplication correctly with respect - to undefined behavior on overflow. - -2024-02-27 Jakub Jelinek - - PR rtl-optimization/114044 - * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use - DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN. - * internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS, - expand_PARITY): Declare. - * internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ, - expand_CTZ, expand_FFS, expand_PARITY): New functions. - (expand_POPCOUNT): Use expand_bitquery. - -2024-02-27 Richard Biener - - PR tree-optimization/114081 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Perform manual dominator update for prologue peeling. - (vect_do_peeling): Properly update dominators after adding the - prologue-around guard. - -2024-02-26 Georg-Johann Lay - - * config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args) - (mstrict-X): Tag as "Optimization". - -2024-02-26 Georg-Johann Lay - - * config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in - an "if avr_adiw_reg_p()" block that's dead for AVR_TINY. - -2024-02-26 Jakub Jelinek - H.J. Lu - - PR rtl-optimization/113617 - * varasm.cc (default_elf_select_rtx_section): For - references to private symbols in comdat sections - use .data.relro.local.pool., .data.relro.pool. - or .rodata. comdat sections. - -2024-02-26 Richard Biener - - PR tree-optimization/114099 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Create and fill in a needed virtual LC PHI for the alternate - exits. Remove code dealing with that missing. - -2024-02-26 Richard Biener - - PR tree-optimization/114068 - * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge): - New function. - (slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI - on the main exit if needed. Remove band-aid for the case - it was missing. - -2024-02-26 H.J. Lu - - PR target/114097 - * config/i386/i386-options.cc (ix86_set_func_type): Check - interrupt instead of noreturn attribute. - -2024-02-26 Jakub Jelinek - - * config/i386/i386.cc (ix86_bitint_type_info): Add support for - !TARGET_64BIT. - -2024-02-26 Jakub Jelinek - - PR tree-optimization/114090 - * match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x): - Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED - types. - ((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise. - -2024-02-26 Jakub Jelinek - - PR middle-end/114084 - * fold-const.cc (fold_binary_loc): Avoid the final associate_trees - if all subtrees of var0 come from one of the op0 or op1 operands - and all subtrees of con0 come from the other one. Don't clear - variables which are never used afterwards. - -2024-02-26 Richard Biener - - PR middle-end/114070 - * genmatch.cc (parser::parse_c_expr): Do not record operand - lists but only mark operators used. - * match.pd ((c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e)): - Properly guard the case of tcc_comparison changing the VEC_COND - value operand type. - -2024-02-26 Jakub Jelinek - - PR target/114094 - * config/i386/i386.cc (x86_function_profiler): Add missing new-line - to printed instruction. - -2024-02-26 H.J. Lu - - PR target/114098 - * config/i386/amxtileintrin.h (_tile_loadconfig): Use - __builtin_ia32_ldtilecfg. - (_tile_storeconfig): Use __builtin_ia32_sttilecfg. - * config/i386/i386-builtin.def (BDESC): Add - __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg. - * config/i386/i386-expand.cc (ix86_expand_builtin): Handle - IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG. - * config/i386/i386.md (ldtilecfg): New pattern. - (sttilecfg): Likewise. - -2024-02-24 Richard Sandiford - - PR tree-optimization/113205 - * tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject - the proposed layout if it does not allow a source partition with - layout 2 to keep that layout. - -2024-02-24 Jakub Jelinek - - * builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro. - * combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro. - * double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros. - * genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro. - (mk_attr_alt): Use HOST_WIDE_INT_0 macro. - * genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1 - macros. - * ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro. - * loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro. - * pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and - HOST_WIDE_INT_UC macros. - * rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro. - * tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro. - * tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro. - * tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U - macros. - * wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro. - * config/i386/constraints.md (define_constraint "L"): Use - HOST_WIDE_INT_C macro. - * config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C - macro. - (movl + movb peephole2): Likewise. - * config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise. - (const_32bit_mask): Likewise. - -2024-02-24 Jakub Jelinek - - PR middle-end/114073 - * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle - VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer - types like vector or complex types. - (gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral - types. Fix up VIEW_CONVERT_EXPR handling. Allow merging - VIEW_CONVERT_EXPR from non-integral/pointer types with a store. - -2024-02-23 Robin Dapp - - PR target/114028 - * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p): - Return false if inner mode is already Pmode. - (rvv_builder::is_all_same_sequence): New function. - (expand_vec_init): Emit broadcast if sequence is all same. - -2024-02-23 Richard Sandiford - - PR target/113613 - * config/aarch64/aarch64-early-ra.cc - (early_ra::m_current_region): New member variable. - (early_ra::m_fpr_recency): Likewise. - (early_ra::start_new_region): Bump m_current_region. - (early_ra::allocate_colors): Prefer less recently used registers - in the event of a tie. Add a comment to explain why we prefer(ed) - higher-numbered registers. - (early_ra::find_oldest_color): Prefer less recently used registers - here too. - (early_ra::finalize_allocation): Update recency information for - allocated registers. - (early_ra::process_blocks): Initialize m_current_region and - m_fpr_recency. - -2024-02-23 Richard Sandiford - - PR target/113295 - * config/aarch64/aarch64-early-ra.cc - (early_ra::test_strictness): New enum. - (early_ra::is_chain_candidate): Add a strictness parameter to - control whether only correctness matters, or whether both correctness - and heuristics should be used. Handle multiple levels of equivalence. - (early_ra::find_related_start): Update call accordingly. - (early_ra::strided_polarity_pref): Likewise. - (early_ra::form_chains): Likewise. - (early_ra::try_to_chain_allocnos): Use is_chain_candidate in - correctness mode rather than trying to inline the test. - -2024-02-23 Richard Sandiford - - PR target/113295 - * config/aarch64/aarch64-early-ra.cc - (early_ra::find_related_start): Account for definitions by shared - registers when testing for a single register definition. - (early_ra::accumulate_defs): New function. - (early_ra::record_copy): If A shares B's register, fold A's - definition information into B's. Fold A's use information into B's. - -2024-02-23 H.J. Lu - - * configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1 - if R_X86_64_CODE_6_GOTTPOFF is supported. - * config.in: Regenerated. - * configure: Likewise. - * config/i386/predicates.md (apx_ndd_add_memory_operand): Allow - UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported. - -2024-02-23 Richard Earnshaw - - PR target/108120 - * config/arm/neon.md (div3): Rename from div3. - Gate with ARM_HAVE_NEON__ARITH. - -2024-02-23 Jakub Jelinek - - PR rtl-optimization/114054 - * expr.cc (expand_expr_real_2) : Use - temp variable instead of target parameter for result. - -2024-02-23 Jakub Jelinek - - PR tree-optimization/114040 - * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow): - Use EQ_EXPR rather than LT_EXPR for g2 condition and change its - probability from likely to unlikely. When handling the true true - store, first cast to limb_access_type and then to l's type. - -2024-02-23 Richard Biener - - PR target/90785 - * config.gcc: Add ia64*-*-* to the list of obsoleted targets. - -2024-02-23 Palmer Dabbelt - - PR other/109668 - * config/riscv/arch-canonicalize: Move to python3 - * config/riscv/multilib-generator: Likewise - -2024-02-23 Palmer Dabbelt - - * doc/invoke.texi: Document -mcpu. - -2024-02-23 Lulu Cheng - - * configure: Regenerate. - * configure.ac: Add parameter "--fatal-warnings" to assemble - when checking whether the assemble support conditional branch - relaxation. - -2024-02-22 Jakub Jelinek - - PR c/114007 - * doc/extend.texi: (__extension__): Remove comments about scope - tokens vs. two colons. - -2024-02-22 Andrew Pinski - - PR tree-optimization/109804 - * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle - DEMANGLE_COMPONENT_UNNAMED_TYPE. - -2024-02-22 Richard Biener - - PR tree-optimization/114048 - * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF - can also produce -1 off. - -2024-02-22 Richard Biener - - PR tree-optimization/114027 - * tree-vect-loop.cc (vecctorizable_reduction): Use optimized - condition reduction classification only for single-element - chains. - -2024-02-22 Jakub Jelinek - - PR ipa/111960 - * profile-count.h (profile_count::dump): Remove overload with - char * first argument. - * profile-count.cc (profile_count::dump): Change overload with char * - first argument which uses sprintf into the overfload with FILE * - first argument and use fprintf instead. Remove overload which wrapped - it. - -2024-02-22 Jakub Jelinek - - PR tree-optimization/113993 - * tree-call-cdce.cc (get_no_error_domain): Handle - BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}. Handle - BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for - REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384 - the as the F128 suffixed cases, otherwise as non-suffixed ones. - Handle BUILT_IN_{EXP,POW}10L for - REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384 - as (-inf, 4932). - -2024-02-22 Jakub Jelinek - - PR tree-optimization/114038 - * gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix - loop exit condition if end is divisible by limb_prec. - -2024-02-22 YunQiang Su - - * doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix - problem of mabi=, mno-flush-func, mexplicit-relocs; - add missing leading - of mbranch-cost option. - * config/mips/mips.opt.urls: Regenerate. - -2024-02-22 Kewen Lin - - PR target/109987 - * config/rs6000/constraints.md (we): Update internal doc without - referring to option -mpower9-vector. - * config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector - special handlings. - * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS, - OTHER_P8_VECTOR_MASKS): Merge to ... - (OTHER_VSX_VECTOR_MASKS): ... here. - * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove - some error message handlings and explicit option mask adjustments on - explicit option power{8,9}-vector conflicting with other options. - (rs6000_print_isa_options): Update comments. - (rs6000_disable_incompatible_switches): Remove power{8,9}-vector - related array items and handlings. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector - special handlings. - * config/rs6000/rs6000.opt: Make option power{8,9}-vector as - WarnRemoved. - * doc/extend.texi: Remove documentation referring to option - -mpower8-vector. - * doc/invoke.texi: Remove documentation for option - -mpower{8,9}-vector and adjust some documentation referring to them. - * doc/md.texi: Update documentation for constraint we. - * doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok. - -2024-02-22 Pan Li - - PR target/114017 - * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade - the version to 0.12. - -2024-02-21 Edwin Lu - - * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert - -2024-02-21 Edwin Lu - Robin Dapp - - * config/riscv/generic-ooo.md (generic_ooo): Move reservation - (generic_ooo_vec_load): Ditto - (generic_ooo_vec_store): Ditto - (generic_ooo_vec_loadstore_seg): Ditto - (generic_ooo_vec_alu): Ditto - (generic_ooo_vec_fcmp): Ditto - (generic_ooo_vec_imul): Ditto - (generic_ooo_vec_fadd): Ditto - (generic_ooo_vec_fmul): Ditto - (generic_ooo_crypto): Ditto - (generic_ooo_perm): Ditto - (generic_ooo_vec_reduction): Ditto - (generic_ooo_vec_ordered_reduction): Ditto - (generic_ooo_vec_idiv): Ditto - (generic_ooo_vec_float_divsqrt): Ditto - (generic_ooo_vec_mask): Ditto - (generic_ooo_vec_vesetvl): Ditto - (generic_ooo_vec_setrm): Ditto - (generic_ooo_vec_readlen): Ditto - * config/riscv/riscv.md: Include generic-vector-ooo - * config/riscv/generic-vector-ooo.md: New file. To here - -2024-02-21 Edwin Lu - - * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation - (generic_ooo_branch): Ditto - * config/riscv/generic.md (generic_sfb_alu): Ditto - (generic_fmul_half): Ditto - * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types - * config/riscv/sifive-7.md (sifive_7_hfma): Add reservation - (sifive_7_popcount): Ditto - * config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto - * config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto - * config/riscv/vector.md: Change rdfrm to fmove - * config/riscv/zc.md: Change pushpop to load/store - -2024-02-21 Jonathan Wakely - - * doc/invoke.texi (Warning Options): Fix typos. - -2024-02-21 David Faust - - * config/bpf/bpf-protos.h (bpf_expand_cpymem): New. - * config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New. - * config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands. - -2024-02-21 Martin Jambor - - PR ipa/113476 - * ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust - initializers in the contructor. - (ipa_node_params::~ipa_node_params): Release lattices as a vector. - * ipa-cp.h: New file. - * ipa-cp.cc: Include sreal.h and ipa-cp.h. - (ipcp_value_source): Move to ipa-cp.h. - (ipcp_value_base): Likewise. - (ipcp_value): Likewise. - (ipcp_lattice): Likewise. - (ipcp_agg_lattice): Likewise. - (ipcp_bits_lattice): Likewise. - (ipcp_vr_lattice): Likewise. - (ipcp_param_lattices): Likewise. - (ipa_get_parm_lattices): Remove assert latticess is non-NULL. - (ipa_value_from_jfunc): Adjust a check for empty lattices. - (ipa_context_from_jfunc): Likewise. - (ipa_agg_value_from_jfunc): Likewise. - (merge_agg_lats_step): Do not memset new aggregate lattices to zero. - (ipcp_propagate_stage): Allocate lattices in a vector as opposed to - just in contiguous memory. - (ipcp_store_vr_results): Adjust a check for empty lattices. - * auto-profile.cc: Include sreal.h and ipa-cp.h. - * cgraph.cc: Likewise. - * cgraphclones.cc: Likewise. - * cgraphunit.cc: Likewise. - * config/aarch64/aarch64.cc: Likewise. - * config/i386/i386-builtins.cc: Likewise. - * config/i386/i386-expand.cc: Likewise. - * config/i386/i386-features.cc: Likewise. - * config/i386/i386-options.cc: Likewise. - * config/i386/i386.cc: Likewise. - * config/rs6000/rs6000.cc: Likewise. - * config/s390/s390.cc: Likewise. - * gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the - files to be included in gtype-desc.cc. - * gimple-range-fold.cc: Include sreal.h and ipa-cp.h. - * ipa-devirt.cc: Likewise. - * ipa-fnsummary.cc: Likewise. - * ipa-icf.cc: Likewise. - * ipa-inline-analysis.cc: Likewise. - * ipa-inline-transform.cc: Likewise. - * ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher. - * ipa-modref.cc: Include sreal.h and ipa-cp.h. - * ipa-param-manipulation.cc: Likewise. - * ipa-predicate.cc: Likewise. - * ipa-profile.cc: Likewise. - * ipa-prop.cc: Likewise. - (ipa_node_params_t::duplicate): Assert new lattices remain empty - instead of setting them to NULL. - * ipa-pure-const.cc: Include sreal.h and ipa-cp.h. - * ipa-split.cc: Likewise. - * ipa-sra.cc: Likewise. - * ipa-strub.cc: Likewise. - * ipa-utils.cc: Likewise. - * ipa.cc: Likewise. - * toplev.cc: Likewise. - * tree-ssa-ccp.cc: Likewise. - * tree-ssa-sccvn.cc: Likewise. - * tree-vrp.cc: Likewise. - -2024-02-21 Tamar Christina - - * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from - Armv8.7-a. - -2024-02-21 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): - Use aarch64_gen_compare_zero_and_branch rather than emitting - a CBZ directly. - -2024-02-21 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p): - Remove duplicated call. - -2024-02-21 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall): - Check that each individual piece of state is shared in the same - way, rather than using an aggregate check for PSTATE.ZA. - -2024-02-21 Richard Sandiford - - * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): - In the code that commits a lazy save, only zero ZA if the function - has ZA state. Similarly zero ZT0 if the function has ZT0 state. - -2024-02-21 Richard Sandiford - - * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove, - directly inserting the associated sequence - * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): - ...here instead. - -2024-02-21 Richard Sandiford - - PR target/113995 - * config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't - fold the SVE allocation into the initial allocation if the - initial allocation includes a VG save. - -2024-02-21 Richard Sandiford - - PR target/113220 - * cfgrtl.cc (commit_one_edge_insertion): Handle sequences that - contain jumps even if called after initial RTL expansion. - * mode-switching.cc: Include cfgbuild.h. - (optimize_mode_switching): Allow the sequence returned by the - emit hook to contain internal jumps. Record which blocks - contain such jumps and split the blocks at the end. - * config/aarch64/aarch64.cc (aarch64_mode_emit): Check for - non-debug insns when scanning the sequence. - -2024-02-21 Tobias Burnus - - * config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch. - * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise. - -2024-02-21 Dimitar Dimitrov - - * doc/invoke.texi (-mmcu): Add information about MCU specs. - -2024-02-21 Dimitar Dimitrov - - * doc/invoke.texi (-minrt): Clarify that main - must take no arguments. - -2024-02-20 Georg-Johann Lay - - * config/avr/builtins.def: Use function prototypes of given size - and signedness. - * config/avr/avr.cc (avr_init_builtins): Adjust types required - by builtins.def. - * doc/extend.texi (AVR Built-in Functions): Adjust accordingly. - -2024-02-20 Georg-Johann Lay - - * doc/extend.texi (AVR Built-in Functions): Use @defbuiltin - instead of @table. - -2024-02-20 Will Hawkins - - * config/bpf/bpf.opt: Add help information for -mcpu. - -2024-02-20 Richard Sandiford - - PR target/113805 - * config/aarch64/aarch64-passes.def (pass_late_track_speculation): - New pass. - * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation): - Declare. - * config/aarch64/aarch64.md (is_call): New attribute. - (*and3nr_compare0): Rename to... - (@aarch64_and3nr_compare0): ...this. - * config/aarch64/aarch64-sme.md (aarch64_get_sme_state) - (aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes. - * config/aarch64/aarch64-speculation.cc: Update file comment to - describe the new late pass. - (aarch64_do_track_speculation): Handle is_call insns like other calls. - (pass_track_speculation): Add an is_late member variable. - (pass_track_speculation::gate): Run the late pass for streaming- - compatible functions and the early pass for other functions. - (make_pass_track_speculation): Update accordingly. - (make_pass_late_track_speculation): New function. - * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New - function. - (aarch64_guard_switch_pstate_sm): Use it. - -2024-02-19 Iain Sandoe - - * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins): - Register these builtins with a pointer to uint64_t rather than unsigned - DI mode. - -2024-02-19 Thomas Schwinge - - PR target/113615 - * config/gcn/gcn-valu.md (define_expand "reduc__scal_"): - Conditionalize on '!TARGET_RDNA2_PLUS'. - * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn) - (gcn_expand_reduc_scalar): - 'gcc_checking_assert (!TARGET_RDNA2_PLUS);'. - -2024-02-19 Thomas Schwinge - - * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost - '__gfx90a__' target CPU definition. Add some safeguards for the future. - -2024-02-19 Richard Biener - - PR rtl-optimization/54052 - * rtl-ssa/blocks.cc (function_info::place_phis): Filter - local defs by LR_OUT. - -2024-02-19 Jakub Jelinek - - PR tree-optimization/113967 - * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require - in condition that @rpos is multiple of vector element size. - -2024-02-19 Juzhe-Zhong - - PR target/113696 - * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): - Suppress vsetvl fusion. - -2024-02-18 H.J. Lu - - PR target/113912 - * config/i386/i386.cc (ix86_can_use_push2pop2): New. - (ix86_pro_and_epilogue_can_use_push2pop2): Use it. - (ix86_emit_save_regs): Don't generate push2 if - ix86_can_use_push2pop2 return false. - (ix86_expand_epilogue): Don't generate pop2 if - ix86_can_use_push2pop2 return false. - -2024-02-18 Georg-Johann Lay - - * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel". - Note on complete device support. - -2024-02-18 Georg-Johann Lay - - * doc/extend.texi (AVR Function Attributes): Fuse description - of "signal" and "interrupt" attribute. Link pseudo instruction. - -2024-02-18 Lulu Cheng - - * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant - symbol type conversions. - (__cacop_d): Likewise. - (__cpucfg): Likewise. - (__asrtle_d): Likewise. - (__asrtgt_d): Likewise. - (__lddir_d): Likewise. - (__ldpte_d): Likewise. - (__crc_w_b_w): Likewise. - (__crc_w_h_w): Likewise. - (__crc_w_w_w): Likewise. - (__crc_w_d_w): Likewise. - (__crcc_w_b_w): Likewise. - (__crcc_w_h_w): Likewise. - (__crcc_w_w_w): Likewise. - (__crcc_w_d_w): Likewise. - (__csrrd_w): Likewise. - (__csrwr_w): Likewise. - (__csrxchg_w): Likewise. - (__csrrd_d): Likewise. - (__csrwr_d): Likewise. - (__csrxchg_d): Likewise. - (__iocsrrd_b): Likewise. - (__iocsrrd_h): Likewise. - (__iocsrrd_w): Likewise. - (__iocsrrd_d): Likewise. - (__iocsrwr_b): Likewise. - (__iocsrwr_h): Likewise. - (__iocsrwr_w): Likewise. - (__iocsrwr_d): Likewise. - (__frecipe_s): Likewise. - (__frecipe_d): Likewise. - (__frsqrte_s): Likewise. - (__frsqrte_d): Likewise. - -2024-02-18 Lulu Cheng - - * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the - function return value type to unsigned short. - -2024-02-16 Edwin Lu - - * doc/sourcebuild.texi: add scan-assembler-bound - -2024-02-16 Jason Merrill - - * gdbhooks.py: Fix regex syntax. - -2024-02-16 Richard Biener - - PR tree-optimization/113895 - * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable - consistency checking when there are out-of-bound array - accesses. Allow -1 off when from an array reference with - constant index. - -2024-02-16 Kito Cheng - - PR target/106543 - * config/riscv/riscv.md (*sge_): Fix asm - pattern. - -2024-02-16 Rainer Orth - - * doc/sourcebuild.texi (Effective-Target Keywords, Other - attribugs): Document linker_plugin. - (Require Support): Document dg-require-linker-plugin. - -2024-02-16 Kito Cheng - - PR target/109349 - * common/config/riscv/riscv-common.cc (riscv_arch_help): New. - * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New. - (RISCV_MINOR_VERSION_BASE): Ditto. - (RISCV_REVISION_VERSION_BASE): Ditto. - * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum - rather than magic number. - * config/riscv/riscv.h (riscv_arch_help): New. - (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help. - (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and - --print-supported-extensions. - * config/riscv/riscv.opt (march=help): New. - (print-supported-extensions): New. - (-print-supported-extensions): New. - * doc/invoke.texi (RISC-V Options): Document -march=help. - -2024-02-16 Tejas Belagod - - PR target/113780 - * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls - for indirect calls with 4 or more arguments in pac-enabled functions. - -2024-02-15 David Faust - - * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to - use ldxb instead of ldxh. - -2024-02-15 Jakub Jelinek - - PR middle-end/113921 - * cfgrtl.h (prepend_insn_to_edge): New declaration. - * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function - comment. - (prepend_insn_to_edge): New function. - * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of - insert_insn_on_edge. - -2024-02-15 Richard Biener - - PR tree-optimization/111156 - * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look - at the pattern stmt if any. - -2024-02-15 Georg-Johann Lay - - PR target/113927 - * config/avr/avr.h (AVR_HAVE_ADIW): New macro. - * config/avr/avr-protos.h (avr_adiw_reg_p): New proto. - * config/avr/avr.cc (avr_adiw_reg_p): New function. - (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS. - Replace test_hard_reg_class (ADDW_REGS, ...) with calls to - * config/avr/avr.md: Same. - (attr "isa") : Remove. - : Add. - (define_insn, define_insn_and_split): When an alternative has - constraint "w", then set attribute "isa" to "adiw". - * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]: - Built-in define __AVR_HAVE_ADIW__. - * doc/invoke.texi (AVR Options): Document it. - -2024-02-15 Andrew Stubbs - - * config/gcn/gcn-valu.md - (vec_extract): Add conditions for RDNA. - * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation - details are supported on RDNA devices. - -2024-02-15 Andrew Pinski - - PR middle-end/113508 - * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m}, - usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3, - smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3): - Add sentence about what the mode m is. - -2024-02-15 Andrew Pinski - - * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs, - smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the - var. - -2024-02-15 Richard Biener - - * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug - stmts. - -2024-02-15 Jakub Jelinek - - PR tree-optimization/113567 - * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge - _BitInt multiplication, division or modulo with - SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2 - force the affected inputs into a new SSA_NAME. - -2024-02-14 Uros Bizjak - - PR target/113871 - * config/i386/mmx.md (V248FI): New mode iterator. - (V24FI_32): DItto. - (vec_shl_): New expander. - (vec_shl_): Ditto. - (vec_shr_): Ditto. - (vec_shr_): Ditto. - * config/i386/sse.md (vec_shl_): Simplify expander. - (vec_shr_): Ditto. - -2024-02-14 Jan Hubicka - - PR tree-optimization/111054 - * tree-ssa-loop-split.cc (split_loop): Check for profile being present. - -2024-02-14 Tamar Christina - - * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations. - -2024-02-14 Richard Biener - - PR tree-optimization/113910 - * bitmap.cc (bitmap_hash): Mix the full element "hash" to - the hashval_t hash. - -2024-02-14 Jakub Jelinek - - * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined. - (pp_integer_with_precision): For unsigned ptrdiff_t printing - with u, o or x print ptrdiff_t argument converted to - unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1. - -2024-02-14 Richard Biener - - PR middle-end/113576 - * expr.cc (do_store_flag): For vector bool compares of vectors - with padding zero that. - * dojump.cc (do_compare_and_jump): Likewise. - -2024-02-14 Gerald Pfeifer - - * doc/install.texi (Prerequisites): Update gettext link. - -2024-02-13 H.J. Lu - - PR target/113876 - * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2): - Return false if the incoming stack isn't 16-byte aligned. - -2024-02-13 Tobias Burnus - - PR middle-end/113904 - * omp-general.cc (struct omp_ts_info): Update for splitting of - OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR. - * omp-selectors.h (enum omp_tp_type): Replace - OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR. - -2024-02-13 Monk Chiang - - PR target/113742 - * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix - recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI. - -2024-02-13 Richard Biener - - PR tree-optimization/113895 - * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track - offset to discover constant array indices in bits, handle - COMPONENT_REF to bitfields. - -2024-02-13 Richard Biener - - PR tree-optimization/113831 - * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix - typo in comment. - -2024-02-13 Richard Biener - - PR tree-optimization/113902 - * tree-vect-loop.cc (move_early_exit_stmts): Track - last_seen_vuse for VUSE updating. - -2024-02-13 Tamar Christina - - PR tree-optimization/113734 - * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of - an early break loop as partial. - -2024-02-13 Richard Biener - - PR tree-optimization/113898 - * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add - missing accumulated off adjustment. - -2024-02-13 Jakub Jelinek - - * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions, - instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare - it against UINT_MAX and ULONG_MAX. - -2024-02-13 David Malcolm - - * diagnostic-core.h (emit_diagnostic_valist): Rename overload - to... - (emit_diagnostic_valist_meta): ...this. - * diagnostic.cc (emit_diagnostic_valist): Likewise, to... - (emit_diagnostic_valist_meta): ...this. - -2024-02-12 Jakub Jelinek - - PR tree-optimization/113849 - * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use - fast path for widening casts where !m_upwards_2limb and lhs_type - has precision which is a multiple of limb_prec. - -2024-02-12 Jakub Jelinek - - PR c++/113674 - * attribs.cc (extract_attribute_substring): Remove. - (lookup_scoped_attribute_spec): Don't call it. - -2024-02-12 Jakub Jelinek - - * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED - and cast to fmt_size_t instead of %lu and cast to unsigned long. - -2024-02-12 Christophe Lyon - - * Makefile.in: Add no-info dependency. - * configure.ac: Set BUILD_INFO=no-info if makeinfo is not - available. - * configure: Regenerate. - -2024-02-12 Iain Sandoe - - PR target/113855 - * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be - available to all sub-targets. - * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete. - * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete. - -2024-02-12 Richard Biener - - PR tree-optimization/113831 - PR tree-optimization/108355 - * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When - we see variable array indices and get_ref_base_and_extent - can resolve those to constants fix up the ops to constants - as well. - (ao_ref_init_from_vn_reference): Use 'off' member for - ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it. - (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF. - -2024-02-12 Pan Li - - * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): - Replace args to arguments for misspelled term. - -2024-02-12 Georg-Johann Lay - - PR target/112944 - * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]: - <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init - when not linked with -mrodata-in-ram. - -2024-02-12 Richard Biener - - PR tree-optimization/113863 - * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): - Record crossed virtual PHIs. - * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed - virtual PHIs. - -2024-02-10 Marek Polacek - - DR 2237 - PR c++/107126 - PR c++/97202 - * doc/invoke.texi: Document -Wtemplate-id-cdtor. - -2024-02-10 Jakub Jelinek - - * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix - computation of idx for i == 4 of bitint_prec_huge. - -2024-02-10 Jakub Jelinek - - PR middle-end/110754 - * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE - decls create PARM_DECL with pointer to original type, set - TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE, - DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared. - (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls - wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF. - (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR - of the var as argument. - -2024-02-10 Jakub Jelinek - - * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for - size_t and precision 4 for ptrdiff_t. Formatting fix. - (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers. - Formatting fixes. - (test_pp_format): Test t and z modifiers. - * gcc.cc (read_specs): Use %td instead of %ld and casts to long. - -2024-02-10 Jakub Jelinek - - * ipa-icf.cc (sem_item_optimizer::process_cong_reduction, - sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED - and casts to fmt_size_t instead of "%lu" and casts to unsigned long. - * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC - and casts to fmt_size_t instead of "%ld" and casts to long. - (print_value_expr_statistics, print_type_hash_statistics): Likewise. - * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED - instead of "%lu" and casts to unsigned long. - * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to - unsigned long. - * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC - and casts to fmt_size_t instead of "%ld" and casts to long. - * cfgexpand.cc (dump_stack_var_partition): Use - HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu" - and casts to unsigned long. - * gengtype.cc (adjust_field_rtx_def): Likewise. - * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC - and casts to fmt_size_t instead of "%ld" and casts to long. - * postreload-gcse.cc (dump_hash_table): Likewise. - * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED - and casts to fmt_size_t instead of "%lu" and casts to unsigned long. - (ggc_internal_alloc, ggc_free): Likewise. - * genpreds.cc (write_lookup_constraint_1): Likewise. - (write_insn_constraint_len): Likewise. - * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC - and casts to fmt_size_t instead of "%ld" and casts to long. - * varasm.cc (output_constant_pool_contents): Use - HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long. - * var-tracking.cc (dump_var): Likewise. - -2024-02-09 Jakub Jelinek - - PR tree-optimization/113783 - * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look - through VIEW_CONVERT_EXPR for final cast checks. Handle - VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE - INTEGER_TYPEs. - (gimple_lower_bitint): Don't merge mergeable operations or other - casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs. - * expr.cc (expand_expr_real_1): Don't use convert_modes if either - mode is BLKmode. - -2024-02-09 Jakub Jelinek - - * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC, - HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX, - HOST_SIZE_T_PRINT_HEX_PURE): Define. - * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting - fixes. - -2024-02-09 Jakub Jelinek - - PR middle-end/113415 - * cfgexpand.cc (expand_asm_stmt): For asm goto, use - duplicate_insn_chain to duplicate after_rtl_seq sequence instead - of hand written loop with emit_insn of copy_insn and emit original - after_rtl_seq on the last edge. - -2024-02-09 Jakub Jelinek - - PR tree-optimization/113818 - * gimple-lower-bitint.cc (add_eh_edge): New function. - (bitint_large_huge::handle_load, - bitint_large_huge::lower_mergeable_stmt, - bitint_large_huge::lower_muldiv_stmt): Use it. - -2024-02-09 Jakub Jelinek - - PR tree-optimization/113774 - * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't - emit any comparison if m_first and low + 1 is equal to - m_upwards_2limb, simplify condition for that. If not - single_comparison, not m_first and we can prove that the idx <= low - comparison will be always true, emit instead of idx <= low - comparison low <= low such that cfg cleanup will optimize it at - the end of the pass. - -2024-02-08 Aldy Hernandez - - PR tree-optimization/113735 - * value-relation.cc (equiv_oracle::add_equiv_to_block): Call - limit_check(). - -2024-02-08 Georg-Johann Lay - - * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New. - (main, print_mcu, diagnose_mrodata_in_ram): Pass it down. - -2024-02-08 H.J. Lu - - PR target/113711 - PR target/113733 - * config/i386/constraints.md: List all constraints with j prefix. - (j>): Change auto-dec to auto-inc in documentation. - (je): Changed to a memory constraint with APX NDD TLS operand - check. - (jM): New memory constraint for APX NDD instructions. - (jO): Likewise. - * config/i386/i386-protos.h (x86_poff_operand_p): Removed. - * config/i386/i386.cc (x86_poff_operand_p): Likewise. - * config/i386/i386.md (*add3_doubleword): Use rjO. - (*add_1[SWI48]): Use je and jM. - (addsi_1_zext): Use jM. - (*addv4_doubleword_1[DWI]): Likewise. - (*sub_1[SWI]): Use jM. - (@add3_cc_overflow_1[SWI]): Likewise. - (*add3_doubleword_cc_overflow_1): Use rjO. - (*and3_doubleword): Likewise. - (*anddi_1): Use jM. - (*andsi_1_zext): Likewise. - (*and_1[SWI24]): Likewise. - (*3_doubleword[any_or]): Use rjO - (*code_1[any_or SWI248]): Use jM. - (*si_1_zext[zero_extend + any_or]): Likewise. - * config/i386/predicates.md (apx_ndd_memory_operand): New. - (apx_ndd_add_memory_operand): Likewise. - -2024-02-08 Georg-Johann Lay - - PR target/113824 - * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4. - * doc/avr-mmcu.texi: Rebuild. - -2024-02-08 Tamar Christina - - PR tree-optimization/113808 - * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the - value cross iterations. - -2024-02-08 Georg-Johann Lay - - * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always - defines __AVR_PM_BASE_ADDRESS__ if the core has it. - -2024-02-08 Richard Biener - - * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): - Revert last change to dr_may_alias_p. - -2024-02-08 Georg-Johann Lay - - * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to - cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram. - Remove spec asm_misc. - * config/avr/specs.h: Same. - -2024-02-08 Pan Li - - PR target/113766 - * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make - sure the c.arg_num is >= 2 before checking. - (struct build_frm_base): Ditto. - (struct narrow_alu_def): Ditto. - -2024-02-07 Richard Biener - - PR tree-optimization/113796 - * tree-if-conv.cc (combine_blocks): Wipe range-info before - replacing PHIs and inserting predicates. - -2024-02-07 Roger Sayle - Uros Bizjak - - PR target/113690 - * config/i386/i386-features.cc (timode_convert_cst): New helper - function to convert a TImode CONST_SCALAR_INT_P to a V1TImode - CONST_VECTOR. - (timode_scalar_chain::convert_op): Use timode_convert_cst. - (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes. - Use timode_convert_cst. - -2024-02-07 Victor Do Nascimento - - * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. - * config/aarch64/aarch64.h (AARCH64_FL_AIE): New. - (AARCH64_FL_DEBUGv8p9): Likewise. - (AARCH64_FL_FGT2): Likewise.Likewise. - (AARCH64_FL_ITE): Likewise. - (AARCH64_FL_PFAR): Likewise. - (AARCH64_FL_PMUv3_ICNTR): Likewise. - (AARCH64_FL_PMUv3_SS): Likewise. - (AARCH64_FL_PMUv3p9): Likewise. - (AARCH64_FL_RASv2): Likewise. - (AARCH64_FL_S1PIE): Likewise. - (AARCH64_FL_S1POE): Likewise. - (AARCH64_FL_S2PIE): Likewise. - (AARCH64_FL_S2POE): Likewise. - (AARCH64_FL_SCTLR2): Likewise. - (AARCH64_FL_SEBEP): Likewise. - (AARCH64_FL_SPE_FDS): Likewise. - (AARCH64_FL_TCR2): Likewise. - -2024-02-07 Richard Biener - - * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): - Only check whether reads are in-bound in places that are not safe. - Fix dependence check. Add missing newline. Clarify comments. - -2024-02-07 Tamar Christina - - PR tree-optimization/113750 - * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check - for single predecessor when doing early break vect. - * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but - after labels. - -2024-02-07 Tamar Christina - - PR tree-optimization/113731 - * gimple-iterator.cc (gsi_move_before): Take new parameter for update - method. - * gimple-iterator.h (gsi_move_before): Default new param to - GSI_SAME_STMT. - * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with - GSI_NEW_STMT. - -2024-02-07 Jakub Jelinek - - PR tree-optimization/113756 - * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS, - use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from - of lh_bits value and mask. - -2024-02-07 Jakub Jelinek - - PR tree-optimization/113753 - * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with - UNSIGNED rather than SIGNED. If high or needs_overflow and prec is - not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec - so that they start with r[half_blocks_needed] lowest bit. Fix up - computation of top mask for SIGNED. - -2024-02-07 Pan Li - - PR target/113766 - * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust - the signature of func. - * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto. - * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make - overloaded func with empty args error. - -2024-02-06 H.J. Lu - - PR target/113689 - * config/i386/i386.cc (x86_64_select_profile_regnum): Return - R10_REG after sorry. - -2024-02-06 Andrew Carlotti - - * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name): - Move before new caller, and add ".default" suffix. - (get_suffixed_assembler_name): New. - (make_resolver_func): Use get_suffixed_assembler_name. - (aarch64_generate_version_dispatcher_body): Redo name mangling. - -2024-02-06 Jakub Jelinek - - PR target/113763 - * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles - element from std::pair to an unnamed struct. - Adjust uses of tile range variable. - -2024-02-06 Juzhe-Zhong - - * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation. - (pre_vsetvl::remove_vsetvl_pre_insns): Ditto. - -2024-02-06 Jakub Jelinek - - PR sanitizer/110676 - * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address - reset maxlen to sizetype maximum. - -2024-02-06 Jakub Jelinek - - PR tree-optimization/113736 - * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use - var's address space for MEM_REF or VIEW_CONVERT_EXPRs. - -2024-02-06 Jakub Jelinek - - PR tree-optimization/113759 - * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision - or from_unsignedN differs from properties of typeN, update typeN - to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not - uselessly convertible to typeN, convert it using fold_convert or - build_and_insert_cast depending on if rhsN is INTEGER_CST or not. - (convert_plusminus_to_widen): Likewise. - -2024-02-06 Tejas Belagod - - PR target/112577 - * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit - vector structure modes correctly. - -2024-02-05 Christoph Müllner - - * config/riscv/thead.cc (th_print_operand_address): Fix compiler - warning. - -2024-02-05 H.J. Lu - - PR target/113689 - * config/i386/i386.cc (x86_64_select_profile_regnum): New. - (x86_function_profiler): Call x86_64_select_profile_regnum to - get a scratch register for large model profiling. - -2024-02-05 Richard Ball - - * config/arm/arm.cc (arm_output_mi_thunk): Emit - insn for bti_c when bti is enabled. - -2024-02-05 Xi Ruoyao - - * config/mips/mips-msa.md (neg2): Add missing mode for - neg. - -2024-02-05 Xi Ruoyao - - * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr. - (neg2): Change the mode iterator from MSA to IMSA because - in FP arithmetic we cannot use (0 - x) for -x. - (neg2): New define_insn to implement FP vector negation, - using a bnegi instruction to negate the sign bit. - -2024-02-05 Richard Biener - - PR tree-optimization/113707 - * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After - checking the avail set treat out-of-region defines as - available. - -2024-02-05 Richard Biener - - * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use - the default mode when building a pointer. - -2024-02-05 Jakub Jelinek - - PR tree-optimization/113737 - * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH - has just a single label, remove it and make single successor edge - EDGE_FALLTHRU. - -2024-02-05 Jakub Jelinek - - PR target/113059 - * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper): - Remove REG_DEAD/REG_UNUSED notes at the end of the pass before - df_analyze call. - -2024-02-05 Richard Biener - - PR target/113255 - * config/i386/i386-expand.cc - (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves): - Use a new pseudo for the skipped number of bytes. - -2024-02-05 Monk Chiang - - * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670. - * doc/invoke.texi (RISC-V Options): Add sifive-p450, - sifive-p670. - -2024-02-05 Monk Chiang - - * config/riscv/riscv.md: Include sifive-p400.md. - * config/riscv/sifive-p400.md: New file. - * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter. - * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): - Add sifive_p400. - * config/riscv/riscv.cc (sifive_p400_tune_info): New. - * config/riscv/riscv.h (TARGET_SFB_ALU): Update. - * doc/invoke.texi (RISC-V Options): Add sifive-p400-series - -2024-02-04 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.md (*eqne_zero_masked_bits): - Add missing ":SI" to the match_operator. - -2024-02-04 Takayuki 'January June' Suwa - - * config/xtensa/xtensa.md (SHI): New mode iterator. - (2 split patterns related to constsynth): - Change to also accept HImode operands. - -2024-02-04 Jeff Law - - * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG - similarly. - -2024-02-04 Xi Ruoyao - - * config/loongarch/lsx.md (neg2): Remove the - incorrect expand. - * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr. - (elmsgnbit): Likewise. - (neg2): New define_insn. - * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they - are now instantiated in simd.md. - -2024-02-04 Xi Ruoyao - - * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not - use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is - MAX_MACHINE_MODE. - -2024-02-04 Li Wei - - * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust. - (loongarch_expand_vselect_vconcat): Ditto. - (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement - all 128-bit constant permutation situations. - (loongarch_expand_lsx_shuffle): Adjust and rename function name. - (loongarch_is_imm_set_shuffle): Renamed function name. - (loongarch_expand_vec_perm_even_odd): Function forward declaration. - (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit - extract-even and extract-odd permutations. - (loongarch_is_odd_extraction): Delete. - (loongarch_is_even_extraction): Ditto. - (loongarch_expand_vec_perm_const): Adjust. - -2024-02-03 Jakub Jelinek - - PR middle-end/113722 - * wide-int.cc (wi::bswap_large): Rename third argument from - len to xlen and adjust use in safe_uhwi. Add len variable, set - it to BLOCKS_NEEDED (precision) and use it for clearing of val - and as canonize argument. Clear val using memset instead of - a loop. - -2024-02-03 Jakub Jelinek - - * ggc-common.cc (gt_pch_save): Allow addr to be equal to - mmi.preferred_base + mmi.size - sizeof (void *). - -2024-02-03 Xi Ruoyao - - * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare. - * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove - the ODR-violating locale declaration. - -2024-02-02 Tamar Christina - - PR tree-optimization/113588 - PR tree-optimization/113467 - * tree-vect-data-refs.cc - (vect_analyze_data_ref_dependence): Choose correct dest and fix checks. - (vect_analyze_early_break_dependences): Update comments. - -2024-02-02 John David Anglin - - PR target/59778 - * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR - and PA_BUILTIN_SET_FPSR builtins. - * (pa_builtins_icode): Declare. - * (def_builtin, pa_fpu_init_builtins): New. - * (pa_init_builtins): Initialize FPU builtins. - * (pa_builtin_decl, pa_expand_builtin_1): New. - * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and - PA_BUILTIN_SET_FPSR builtins. - * (pa_atomic_assign_expand_fenv): New. - * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New - UNSPECV constants. - (get_fpsr, put_fpsr): New expanders. - (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New - insn patterns. - -2024-02-02 Juzhe-Zhong - - PR target/113697 - * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move. - -2024-02-02 Jonathan Wakely - - * doc/extend.texi (Common Type Attributes): Fix typo in - description of hardbool. - -2024-02-02 Jakub Jelinek - - PR tree-optimization/113692 - * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts - from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as - final_cast_p. - -2024-02-02 Jakub Jelinek - - PR middle-end/113699 - * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle - uninitialized large/huge _BitInt SSA_NAME inputs. - -2024-02-02 Jakub Jelinek - - PR middle-end/113705 - * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from - around wi::to_wide in order to compare value in prec precision. - -2024-02-02 Lehua Ding - - Revert: - 2024-02-02 Juzhe-Zhong - - * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation. - -2024-02-02 Juzhe-Zhong - - * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation. - -2024-02-02 Pan Li - - * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments. - (riscv_pass_by_reference): Ditto. - (riscv_fntype_abi): Ditto. - -2024-02-02 Juzhe-Zhong - - * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function. - (pre_vsetvl::cleaup): Remove vsetvl_pre. - (pre_vsetvl::remove_vsetvl_pre_insns): New function. - -2024-02-02 Jiahao Xu - - * config/loongarch/larchintrin.h - (__frecipe_s): Update function return type. - (__frecipe_d): Ditto. - (__frsqrte_s): Ditto. - (__frsqrte_d): Ditto. - -2024-02-02 Li Wei - - * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New. - (loongarch_vector_costs::add_stmt_cost): Adjust. - -2024-02-02 Xi Ruoyao - - * config/loongarch/loongarch.md (unspec): Add - UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2. - (la_pcrel64_two_parts): New define_insn. - * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a - typo in the comment. - (loongarch_call_tls_get_addr): If -mcmodel=extreme - -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for - addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL - note to allow CSE addressing __tls_get_addr. - (loongarch_legitimize_tls_address): If -mcmodel=extreme - -mexplicit-relocs={always,auto}, address TLS IE symbols with - la_pcrel64_two_parts. - (loongarch_split_symbol): If -mcmodel=extreme - -mexplicit-relocs={always,auto}, address symbols with - la_pcrel64_two_parts. - (loongarch_output_mi_thunk): Clean up unreachable code. If - -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI - thunks with la_pcrel64_two_parts. - -2024-02-02 Lulu Cheng - - * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr): - Add support for call36. - -2024-02-02 Lulu Cheng - - * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p): - When the code model of the symbol is extreme and -mexplicit-relocs=auto, - the macro instruction loading symbol address is not applicable. - (loongarch_call_tls_get_addr): Adjust code. - (loongarch_legitimize_tls_address): Likewise. - -2024-02-02 Lulu Cheng - - * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p): - Add function declaration. - * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p): - For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend" - is not allowed - (loongarch_load_tls): Added macro support in extreme mode. - (loongarch_call_tls_get_addr): Likewise. - (loongarch_legitimize_tls_address): Likewise. - (loongarch_force_address): Likewise. - (loongarch_legitimize_move): Likewise. - (loongarch_output_mi_thunk): Likewise. - (loongarch_option_override_internal): Remove the code that detects - explicit relocs status. - (loongarch_handle_model_attribute): Likewise. - * config/loongarch/loongarch.md (movdi_symbolic_off64): New template. - * config/loongarch/predicates.md (symbolic_off64_operand): New predicate. - (symbolic_off64_or_reg_operand): Likewise. - -2024-02-02 Lulu Cheng - - * config/loongarch/loongarch.cc (loongarch_load_tls): - Load all types of tls symbols through one function. - (loongarch_got_load_tls_gd): Delete. - (loongarch_got_load_tls_ld): Delete. - (loongarch_got_load_tls_ie): Delete. - (loongarch_got_load_tls_le): Delete. - (loongarch_call_tls_get_addr): Modify the called function name. - (loongarch_legitimize_tls_address): Likewise. - * config/loongarch/loongarch.md (@got_load_tls_gd): Delete. - (@load_tls): New template. - (@got_load_tls_ld): Delete. - (@got_load_tls_le): Delete. - (@got_load_tls_ie): Delete. - -2024-02-02 Lulu Cheng - - * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function. - (loongarch_legitimize_address): Add logical transformation code. - -2024-02-01 Marek Polacek - - * doc/invoke.texi: Update -Wdangling-reference documentation. - -2024-02-01 Uros Bizjak - - PR target/113701 - * config/i386/i386.md (*cmp_doubleword): - Do not force SUBREG pieces to pseudos. - -2024-02-01 John David Anglin - - * config/pa/pa.md (atomic_storedi_1): Fix bug in - alternative 1. - -2024-02-01 Georg-Johann Lay - - * config/avr/avr.cc: Tabify. - -2024-02-01 Richard Ball - - PR tree-optimization/111268 - * tree-vect-slp.cc (vectorizable_slp_permutation_1): - Add variable-length check for vector input arguments - to a function. - -2024-02-01 Thomas Schwinge - - * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't - hard-code number of SGPR/VGPR/AVGPR registers. - * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of - SGPR/VGPR/AVGPR registers. - -2024-02-01 Monk Chiang - - * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type - attribute, and include sifive-p600.md. - * config/riscv/generic-ooo.md: Update type attribute. - * config/riscv/generic.md: Update type attribute. - * config/riscv/sifive-7.md: Update type attribute. - * config/riscv/sifive-p600.md: New file. - * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter. - * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): - Add sifive_p600. - * config/riscv/riscv.cc (sifive_p600_tune_info): New. - * config/riscv/riscv.h (TARGET_SFB_ALU): Update. - * doc/invoke.texi (RISC-V Options): Add sifive-p600-series - -2024-02-01 Monk Chiang - - * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs, - Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items. - * config/riscv/riscv.opt: New macro for 7 new unprivileged - extensions. - * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs, - Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions. - -2024-02-01 Rainer Orth - - * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless - -static-libasan. Add missing whitespace. - -2024-02-01 Thomas Schwinge - - * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG) - (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG): - Don't 'define_constants'. - -2024-02-01 Thomas Schwinge - - * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove. - -2024-02-01 Thomas Schwinge - - * config/gcn/gcn.md (sync_compare_and_swap_lds_insn) - [TARGET_RDNA3]: Adjust. - -2024-02-01 Richard Biener - - PR tree-optimization/113693 - * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail - data when available. - -2024-02-01 Jakub Jelinek - Jason Merrill - - PR c++/113531 - * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls - on variables which were promoted to TREE_STATIC. - -2024-02-01 Roger Sayle - Richard Biener - - PR target/113560 - * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range - information via tree_non_zero_bits to check if this operand - is suitably extended for a widening (or highpart) multiplication. - (convert_mult_to_widen): Insert explicit casts if the RHS or LHS - isn't already of the claimed type. - -2024-02-01 Edwin Lu - - Revert: - 2024-02-01 Edwin Lu - - * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation - (generic_ooo_branch): ditto - * config/riscv/generic.md (generic_sfb_alu): ditto - (generic_fmul_half): ditto - * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types - * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation - (sifive_7_popcount): ditto - * config/riscv/vector.md: change rdfrm to fmove - * config/riscv/zc.md: change pushpop to load/store - -2024-02-01 Edwin Lu - - Revert: - 2024-02-01 Edwin Lu - Robin Dapp - - * config/riscv/generic-ooo.md (generic_ooo): Move reservation - (generic_ooo_vec_load): ditto - (generic_ooo_vec_store): ditto - (generic_ooo_vec_loadstore_seg): ditto - (generic_ooo_vec_alu): ditto - (generic_ooo_vec_fcmp): ditto - (generic_ooo_vec_imul): ditto - (generic_ooo_vec_fadd): ditto - (generic_ooo_vec_fmul): ditto - (generic_ooo_crypto): ditto - (generic_ooo_perm): ditto - (generic_ooo_vec_reduction): ditto - (generic_ooo_vec_ordered_reduction): ditto - (generic_ooo_vec_idiv): ditto - (generic_ooo_vec_float_divsqrt): ditto - (generic_ooo_vec_mask): ditto - (generic_ooo_vec_vesetvl): ditto - (generic_ooo_vec_setrm): ditto - (generic_ooo_vec_readlen): ditto - * config/riscv/riscv.md: include generic-vector-ooo - * config/riscv/generic-vector-ooo.md: New file. to here - -2024-02-01 Edwin Lu - - Revert: - 2024-02-01 Edwin Lu - - * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert - -2024-02-01 Edwin Lu - - * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert - -2024-02-01 Edwin Lu - Robin Dapp - - * config/riscv/generic-ooo.md (generic_ooo): Move reservation - (generic_ooo_vec_load): ditto - (generic_ooo_vec_store): ditto - (generic_ooo_vec_loadstore_seg): ditto - (generic_ooo_vec_alu): ditto - (generic_ooo_vec_fcmp): ditto - (generic_ooo_vec_imul): ditto - (generic_ooo_vec_fadd): ditto - (generic_ooo_vec_fmul): ditto - (generic_ooo_crypto): ditto - (generic_ooo_perm): ditto - (generic_ooo_vec_reduction): ditto - (generic_ooo_vec_ordered_reduction): ditto - (generic_ooo_vec_idiv): ditto - (generic_ooo_vec_float_divsqrt): ditto - (generic_ooo_vec_mask): ditto - (generic_ooo_vec_vesetvl): ditto - (generic_ooo_vec_setrm): ditto - (generic_ooo_vec_readlen): ditto - * config/riscv/riscv.md: include generic-vector-ooo - * config/riscv/generic-vector-ooo.md: New file. to here - -2024-02-01 Edwin Lu - - * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation - (generic_ooo_branch): ditto - * config/riscv/generic.md (generic_sfb_alu): ditto - (generic_fmul_half): ditto - * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types - * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation - (sifive_7_popcount): ditto - * config/riscv/vector.md: change rdfrm to fmove - * config/riscv/zc.md: change pushpop to load/store - -2024-02-01 Andrew Pinski - - PR target/113657 - * config/aarch64/aarch64-simd.md (split for movv8di): - For strict aligned mode, use DImode instead of TImode. - -2024-01-31 Robin Dapp - - PR middle-end/113607 - * match.pd: Make sure else values match when folding a - vec_cond into a conditional operation. - -2024-01-31 Marek Polacek - - * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14. - -2024-01-31 Tamar Christina - Matthew Malcomson - - PR sanitizer/112644 - * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and - memcmp. - * builtins.cc (expand_builtin): Include HWASAN when checking for - builtin inlining. - -2024-01-31 Richard Biener - - PR middle-end/110176 - * match.pd (zext (bool) <= (int) 4294967295u): Make sure - to match INTEGER_CST only without outstanding conversion. - -2024-01-31 Alex Coplan - - PR target/111677 - * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use - V16QImode for the full 16-byte FPR saves in the vector PCS case. - -2024-01-31 Richard Biener - - PR tree-optimization/111444 - * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use - vn_reference_lookup_2 when optimistically skipping may-defs. - -2024-01-31 Richard Biener - - PR tree-optimization/113630 - * tree-ssa-pre.cc (compute_avail): Avoid registering a - reference with a representation with not matching base - access size. - -2024-01-31 Jakub Jelinek - - PR rtl-optimization/113656 - * simplify-rtx.cc (simplify_context::simplify_unary_operation_1) - : Fix up last argument to simplify_gen_unary. - -2024-01-31 Jakub Jelinek - - PR debug/113637 - * dwarf2out.cc (loc_list_from_tree_1): Assume integral types - with BLKmode are larger than DWARF2_ADDR_SIZE. - -2024-01-31 Jakub Jelinek - - PR tree-optimization/113639 - * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): - For VIEW_CONVERT_EXPR set rhs1 to its operand. - -2024-01-31 Richard Biener - - PR tree-optimization/113670 - * tree-vect-data-refs.cc (vect_check_gather_scatter): - Make sure we can take the address of the reference base. - -2024-01-31 Georg-Johann Lay - - * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787, - ATA5835, ATtiny64AUTO, ATA5700M322. - * doc/avr-mmcu.texi: Rebuild. - -2024-01-31 Alexandre Oliva - - PR debug/113394 - * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust - caller. - -2024-01-31 Alexandre Oliva - - PR middle-end/112917 - PR middle-end/113100 - * builtins.cc (expand_builtin_stack_address): Use - STACK_ADDRESS_OFFSET. - * doc/extend.texi (__builtin_stack_address): Adjust. - * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define. - * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document. - * doc/tm.texi: Rebuilt. - -2024-01-31 Juzhe-Zhong - - PR target/113495 - * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove. - (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue. - (pre_vsetvl::compute_transparent): New function. - (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue. - -2024-01-30 Fangrui Song - - PR target/105576 - * config/i386/constraints.md: Define constraint "Ws". - * doc/md.texi: Document it. - -2024-01-30 Marek Polacek - - PR c++/110358 - PR c++/109640 - * doc/invoke.texi: Update -Wdangling-reference description. - -2024-01-30 Takayuki 'January June' Suwa - - * config/xtensa/constraints.md (R, T, U): - Change define_constraint to define_memory_constraint. - * config/xtensa/predicates.md (move_operand): Don't check that a - constant pool operand size is a multiple of UNITS_PER_WORD. - * config/xtensa/xtensa.cc - (xtensa_lra_p, TARGET_LRA_P): Remove. - (xtensa_emit_move_sequence): Remove "if (reload_in_progress)" - clause as it can no longer be true. - (fixup_subreg_mem): Drop function. - (xtensa_output_integer_literal_parts): Consider 16-bit wide - constants. - (xtensa_legitimate_constant_p): Add short-circuit path for - integer load instructions. Don't check that mode size is - at least UNITS_PER_WORD. - * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p() - rather reload_in_progress and reload_completed. - (doloop_end): Drop operand 2. - (movhi_internal): Add alternative loading constant from a - literal pool. - (define_split for DI register_operand): Don't limit to - !TARGET_AUTO_LITPOOLS. - * config/xtensa/xtensa.opt (mlra): Change to no effect. - -2024-01-30 Pan Li - - * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to - calculate the gpr count required by vls mode. - (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode. - (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr - for vls mode. - (riscv_get_arg_info): Add vls mode handling. - (riscv_pass_by_reference): Return false if arg info has no zero gpr count. - -2024-01-30 Richard Biener - - PR tree-optimization/113659 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Handle main exit without virtual use. - -2024-01-30 Christoph Müllner - - * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum. - -2024-01-30 Iain Sandoe - - PR libgcc/113403 - * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New. - (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec. - * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New. - * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New. - * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New. - * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New. - -2024-01-30 Richard Sandiford - - PR target/113623 - * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns): - Mark all registers that occur in addresses as needing a GPR. - -2024-01-30 Richard Sandiford - - PR target/113636 - * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take - the containing insn as an extra parameter. Reset debug instructions - if they reference a register that is no longer used by real insns. - (early_ra::apply_allocation): Update calls accordingly. - -2024-01-30 Jakub Jelinek - - PR tree-optimization/113603 - * tree-ssa-strlen.cc (strlen_pass::handle_store): After - count_nonzero_bytes call refetch si using get_strinfo in case it - has been unshared in the meantime. - -2024-01-30 Jakub Jelinek - - PR middle-end/101195 - * except.cc (expand_builtin_eh_return_data_regno): If which doesn't - fit into unsigned HOST_WIDE_INT, return constm1_rtx. - -2024-01-30 Jin Ma - - * config/riscv/thead.cc (th_print_operand_address): Change %ld - to %lld. - -2024-01-29 Manos Anagnostakis - Manolis Tsamis - Philipp Tomsich - - * config/aarch64/aarch64-ldpstp.md: Remove unused mode. - * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp): - Likewise. - * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): - Call on framework moved later. - -2024-01-29 Jose E. Marchesi - - * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return - instruction in naked function epilogues. - -2024-01-29 YunQiang Su - - PR target/113655 - * configure.ac: Fix typo gcc_cv_as_mips_explicit should be - gcc_cv_as_mips_explicit_relocs. - * configure: Regnerated. - -2024-01-29 Matthieu Longo - - PR target/108933 - * config/arm/arm.md (arm_rev16si2): Convert to define_insn. - Correct generated RTL. - (arm_rev16si2_alt1): Correctly handle conditional execution. - (arm_rev16si2_alt2): Likewise. - -2024-01-29 Richard Biener - - PR middle-end/113622 - * expr.cc (expand_assignment): Spill hard registers if - we index them with a variable offset. - -2024-01-29 Richard Biener - - PR middle-end/113622 - * gimple-isel.cc (gimple_expand_vec_set_extract_expr): - Also allow DECL_HARD_REGISTER variables. - -2024-01-29 Alex Coplan - - PR target/113616 - * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add): - Use iterate_safely when iterating over debug uses. - (fixup_debug_uses): Likewise. - (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate - over nondebug insns instead of manually maintaining the next insn. - * iterator-utils.h (class safe_iterator): New. - (iterate_safely): New. - -2024-01-29 H.J. Lu - - PR target/38534 - * config/i386/i386-options.cc (ix86_set_func_type): Save - callee-saved registers in noreturn functions for -O0/-Og. - -2024-01-29 Tobias Burnus - - PR target/113615 - * config/gcn/gcn-valu.md (fold_left_plus_): Only - define for !TARGET_RDNA2_PLUS. - -2024-01-29 Richard Sandiford - - PR target/113281 - * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove - workaround for right shifts. - (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR. - (vect_determine_precisions_from_range): Be more selective about - which codes can be narrowed based on their input and output ranges. - For shifts, require at least one more bit of precision than the - maximum shift amount. - -2024-01-29 Tobias Burnus - - * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a. - -2024-01-29 Tobias Burnus - - * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+, - but keep requiring only newlib 4.3+ and, if gfx1100 is disabled, - LLVM 13.0.1+. - -2024-01-29 Tobias Burnus - - PR other/111966 - * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New. - (SET_SRAM_ECC_UNSUPPORTED): Renamed to ... - (SET_SRAM_ECC_UNSET): ... this. - (copy_early_debug_info): Remove gfx900 special case, now handled as - part of the generic handling. - (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h. - -2024-01-29 Jakub Jelinek - - PR tree-optimization/110603 - * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect - setting of pdata->maxlen to vr.upper_bound (which is unconditionally - overwritten anyway). Avoid creating invalid range with minlen - larger than maxlen. Formatting fix. - -2024-01-29 Richard Biener - - PR debug/103047 - * tree-inline.cc (initialize_inlined_parameters): Reverse - the decl chain of inlined parameters. - -2024-01-28 Iain Sandoe - - * config/darwin.cc (darwin_build_constant_cfstring): Prevent over- - alignment of CFString constants by setting DECL_USER_ALIGN. - -2024-01-28 Iain Sandoe - Jakub Jelinek - - PR libgcc/113402 - * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED - and BUILT_IN_GCC_NESTED_PTR_DELETED. - * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED, - BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and - rename the library fallbacks to __gcc_nested_func_ptr_created and - __gcc_nested_func_ptr_deleted. - * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created - and __gcc_nested_func_ptr_deleted. - * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for - BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED. - * tree.cc (build_common_builtin_nodes): Build the - BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local - builtins only for non-explicit. - -2024-01-28 YunQiang Su - - * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option. - -2024-01-27 H.J. Lu - - PR target/38534 - * config/i386/i386-options.cc (ix86_set_func_type): Don't - save and restore callee saved registers for a noreturn function - with nothrow or compiled with -fno-exceptions. - -2024-01-27 H.J. Lu - - PR target/103503 - PR target/113312 - * config/i386/i386-expand.cc (ix86_expand_call): Replace - no_caller_saved_registers check with call_saved_registers check. - Clobber all registers that are not used by the callee with - no_callee_saved_registers attribute. - * config/i386/i386-options.cc (ix86_set_func_type): Set - call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for - noreturn function. Disallow no_callee_saved_registers with - interrupt or no_caller_saved_registers attributes together. - (ix86_set_current_function): Replace no_caller_saved_registers - check with call_saved_registers check. - (ix86_handle_no_caller_saved_registers_attribute): Renamed to ... - (ix86_handle_call_saved_registers_attribute): This. - (ix86_gnu_attributes): Add - ix86_handle_call_saved_registers_attribute. - * config/i386/i386.cc (ix86_conditional_register_usage): Replace - no_caller_saved_registers check with call_saved_registers check. - (ix86_function_ok_for_sibcall): Don't allow callee with - no_callee_saved_registers attribute when the calling function - has callee-saved registers. - (ix86_comp_type_attributes): Also check - no_callee_saved_registers. - (ix86_epilogue_uses): Replace no_caller_saved_registers check - with call_saved_registers check. - (ix86_hard_regno_scratch_ok): Likewise. - (ix86_save_reg): Replace no_caller_saved_registers check with - call_saved_registers check. Don't save any registers for - TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with - TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with - no_callee_saved_registers attribute is called. - (find_drap_reg): Replace no_caller_saved_registers check with - call_saved_registers check. - * config/i386/i386.h (call_saved_registers_type): New enum. - (machine_function): Replace no_caller_saved_registers with - call_saved_registers. - * doc/extend.texi: Document no_callee_saved_registers attribute. - -2024-01-27 Jakub Jelinek - - PR tree-optimization/113614 - * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge - widening casts from signed to unsigned types with TRUNC_DIV_EXPR, - TRUNC_MOD_EXPR or FLOAT_EXPR uses. - -2024-01-27 Jakub Jelinek - - PR tree-optimization/113568 - * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): - For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1 - in the widening extension checks. - -2024-01-27 Jakub Jelinek - - * gimple-lower-bitint.cc (gimple_lower_bitint): For - TDF_DETAILS dump mapping of SSA_NAMEs to decls. - -2024-01-26 Hans-Peter Nilsson - - * cgraphunit.cc (process_function_and_variable_attributes): Tweak - the warning for an attribute-always_inline without inline declaration. - -2024-01-26 Robin Dapp - - PR other/113575 - * genopinit.cc (main): Split init_all_optabs into functions - of 1000 patterns each. - -2024-01-26 Tobias Burnus - - * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to - TM_MULTILIB_CONFIG. - * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100. - * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to - -march/-mtune. - -2024-01-26 Andrew Stubbs - - * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3. - * config/gcn/gcn-valu.md (all_convert): New iterator. - (2): New - define_expand, and rename the old one to ... - (*_sdwa): ... this. - (extend2): Likewise, to ... - (extend_sdwa): .. this. - (*_shift): New. - * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly. - (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100. - * config/gcn/gcn.md (mulhisi3): Disable on RDNA3. - (mulqihi3_scalar): Likewise. - -2024-01-26 Richard Biener - - PR tree-optimization/113602 - * tree-data-ref.cc (dr_analyze_innermost): Fail when - the base object isn't addressable. - -2024-01-26 Tobias Burnus - - * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the - "--amdhsa-code-object-version=" argument. - (ASM_SPEC): Use it; replace previous version of it. - -2024-01-26 Juzhe-Zhong - - * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes. - (pre_vsetvl::emit_vsetvl): Ditto. - -2024-01-26 Jiahao Xu - - * config/loongarch/lasx.md (vec_extract_0): - New define_insn_and_split patten. - -2024-01-26 Jiahao Xu - - * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. - -2024-01-26 Li Wei - - * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust. - -2024-01-26 Juzhe-Zhong - - PR target/113469 - * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug. - -2024-01-26 Andrew Pinski - - PR target/100212 - * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid - undefined shift after the call to exact_log2. - -2024-01-25 Andrew Pinski - - PR target/100204 - * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT` - before taking the negative of it. - -2024-01-25 Vladimir N. Makarov - - PR target/113526 - * lra-constraints.cc (curr_insn_transform): Change class even for - spilled pseudo successfully matched with with NO_REGS. - -2024-01-25 Georg-Johann Lay - - PR target/113601 - * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start. - -2024-01-25 Szabolcs Nagy - - PR target/112987 - * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New. - (aarch64_expand_epilogue): Use the new function. - (aarch64_split_compare_and_swap): Likewise. - (aarch64_split_atomic_op): Likewise. - -2024-01-25 Robin Dapp - - PR middle-end/112971 - * fold-const.cc (simplify_const_binop): New function for binop - simplification of two constant vectors when element-wise - handling is not necessary. - (const_binop): Call new function. - -2024-01-25 Mary Bennett - - * common/config/riscv/riscv-common.cc: Add XCVbitmanip. - * config/riscv/constraints.md: Likewise. - * config/riscv/corev.def: Likewise. - * config/riscv/corev.md: Likewise. - * config/riscv/predicates.md: Likewise. - * config/riscv/riscv-builtins.cc (AVAIL): Likewise. - * config/riscv/riscv-ftypes.def: Likewise. - * config/riscv/riscv.opt: Likewise. - * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'. - * doc/extend.texi: Add XCVbitmanip builtin documentation. - * doc/sourcebuild.texi: Likewise. - -2024-01-25 Tobias Burnus - - * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument. - -2024-01-25 Yanzhang Wang - - PR target/113538 - * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag. - (riscv_fntype_abi): Ditto. - * config/riscv/riscv.opt: Ditto. - -2024-01-25 Jakub Jelinek - - PR middle-end/113574 - * convert.cc (convert_to_integer_1) : Compare shift - count against TYPE_PRECISION rather than TYPE_SIZE. - -2024-01-25 Richard Sandiford - - PR target/113572 - * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same): - Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT - -2024-01-25 Richard Sandiford - - PR target/113550 - * config/aarch64/aarch64-simd.md: In the movv8di splitter, check - whether each split instruction is a load that clobbers the source - address. Emit that instruction last if so. - -2024-01-25 Richard Sandiford - - PR target/113485 - * config/aarch64/aarch64-simd.md (aarch64_zip1_low): New - pattern. - (2): Use it instead of generating a - paradoxical subreg for the input. - -2024-01-25 Juzhe-Zhong - - * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function. - (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all - predecessors dump information. - -2024-01-25 Juzhe-Zhong - - * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove - redundant full available computation. - (pre_vsetvl::pre_global_vsetvl_info): Ditto. - -2024-01-25 Jakub Jelinek - - * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns. - * doc/rtl.texi (CONST_VECTOR): Likewise. - -2024-01-25 Juzhe-Zhong - - * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option. - * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto. - (pass_vsetvl::execute): Ditto. - * config/riscv/riscv.opt: Ditto. - -2024-01-25 Jiahao Xu - - * config/loongarch/lasx.md (@vec_concatz): Remove this define_insn pattern. - * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat. - -2024-01-25 Richard Biener - - PR tree-optimization/113576 - * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow - exits with may_be_zero niters when its the last one. - -2024-01-25 Lulu Cheng - - * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p): - For symbols of type tls, non-zero Offset is not generated. - -2024-01-25 Haochen Gui - - * config/rs6000/rs6000-string.cc (expand_block_compare): Enable - P9 with m32 and mpowerpc64. - -2024-01-25 liuhongt - - * config/i386/i386-options.cc (ix86_option_override_internal): - Enable -mlam=u57 by default when compiled with - -fsanitize=hwaddress. - -2024-01-25 Palmer Dabbelt - - * common/config/riscv/riscv-common.cc (riscv_implied_info): - Remove {"ztso", "a"}. - -2024-01-24 Martin Jambor - - PR ipa/108007 - PR ipa/112616 - * cgraph.h (cgraph_edge): Add a parameter to - redirect_call_stmt_to_callee. - * ipa-param-manipulation.h (ipa_param_adjustments): Add a - parameter to modify_call. - (ipa_release_ssas_in_hash): Declare. - * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New - parameter killed_ssas, pass it to padjs->modify_call. - * ipa-param-manipulation.cc (purge_all_uses): New function. - (ipa_param_adjustments::modify_call): New parameter killed_ssas. - Instead of substituting uses, invoke purge_all_uses. If - hash of killed SSAs has not been provided, create a temporary one - and release SSAs that have been added to it. - (compare_ssa_versions): New function. - (ipa_release_ssas_in_hash): Likewise. - * tree-inline.cc (redirect_all_calls): Create - id->killed_new_ssa_names earlier, pass it to edge redirection, - adjust a comment. - (copy_body): Release SSAs in id->killed_new_ssa_names. - -2024-01-24 Andrew Pinski - - PR target/113486 - * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For - TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno. - -2024-01-24 Monk Chiang - - PR target/113095 - * config/riscv/sfb.md: New splitters to rewrite single bit - sign extension as the condition to SFB instructions. - -2024-01-24 Jan Hubicka - - PR middle-end/88345 - * common.opt: (flimit-function-alignment): Reorder alphabeticaly - (fmin-function-alignment): New parameter. - * doc/invoke.texi: (-fmin-function-alignment): Document. - (-falign-functions,-falign-loops,-falign-labels): Mention that - aglinments are ignored in cold code. - * varasm.cc (assemble_start_function): Handle min-function-alignment. - -2024-01-24 Tamar Christina - - PR target/109636 - * config/aarch64/aarch64-simd.md (div3, - mulv2di3): Remove. - * config/aarch64/iterators.md (VQDIV): Remove. - (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI, - SVE_I_SIMD_DI): New. - (VPRED, sve_lane_con): Add V4SI and V2DI. - * config/aarch64/aarch64-sve.md (3, - @aarch64_pred_): Support Advanced SIMD types. - (mul3): New, split from 3. - (@aarch64_pred_, *post_ra_3): New. - * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_, - *aarch64_mul_unpredicated_): Change SVE_FULL_HSDI to - SVE_FULL_HSDI_SIMD_DI. - -2024-01-24 Tamar Christina - - PR tree-optimization/113552 - * config/aarch64/aarch64.cc - (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1. - -2024-01-24 Martin Jambor - - PR ipa/113490 - * ipa-cp.cc (ipcp_lattice::add_value): Bail out if value - count is equal or greater than the limit. Use the limit from the - callee. - -2024-01-24 YunQiang Su - - * configure.ac: Detect the explicit relocs support for - mips, and define C macro MIPS_EXPLICIT_RELOCS. - * config.in: Regenerated. - * configure: Regenerated. - * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs. - * config/mips/mips-opts.h: Define enum mips_explicit_relocs. - * config/mips/mips.cc(mips_set_compression_mode): Sorry if - !TARGET_EXPLICIT_RELOCS instead of just set it. - * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and - TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs. - * config/mips/mips.opt: Introduce -mexplicit-relocs= option - and define -m(no-)explicit-relocs as aliases. - -2024-01-24 Alex Coplan - - * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default - to 1. - (-mlate-ldp-fusion): Likewise. - -2024-01-24 Tamar Christina - - * tree-vect-loop.cc (vect_get_vect_def, - vect_create_epilog_for_reduction): Rename main_exit_p to - last_val_reduc_p. - -2024-01-24 Tamar Christina - - PR tree-optimization/113364 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all - early exits then we must reduce from the first offset for all of them. - -2024-01-24 Juzhe-Zhong - - PR target/113495 - * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove. - (get_regno): Ditto. - (get_bb_index): Ditto. - (pre_vsetvl::compute_avl_def_data): Ditto. - (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage. - (pre_vsetvl::pre_global_vsetvl_info): Ditto. - -2024-01-23 Andrew Pinski - Richard Sandiford - - PR target/100942 - * ccmp.cc (ccmp_candidate_p): Add outer argument. - Allow if the outer is true and the lhs is used more - than once. - (expand_ccmp_expr): Update call to ccmp_candidate_p. - * expr.h (expand_expr_real_gassign): Declare. - * expr.cc (expand_expr_real_gassign): New function, split out from... - (expand_expr_real_1): ...here. - * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign. - -2024-01-23 Alex Coplan - - PR target/113089 - * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New. - (fixup_debug_use): New. - (fixup_debug_uses_trailing_add): New. - (fixup_debug_uses): New. Use it ... - (ldp_bb_info::fuse_pair): ... here. - (try_promote_writeback): Call fixup_debug_uses_trailing_add to - fix up debug uses of the base register that are affected by - folding in the trailing add insn. - -2024-01-23 Alex Coplan - - PR target/113089 - * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair): - Update trailing nondebug uses of the base register in the case - of cancelling writeback. - -2024-01-23 Alex Coplan - - PR target/113089 - * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New. - (debug_insn_use_iterator): New. - (set_info::first_debug_insn_use): New. - (set_info::debug_insn_uses): New. - * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New. - (set_info::first_debug_insn_use): New. - (set_info::debug_insn_uses): New. - -2024-01-23 Alex Coplan - - PR target/113356 - * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair): - Don't record hazards against the opposite insn in the pair. - -2024-01-23 Alex Coplan - - PR target/113070 - * config/aarch64/aarch64-ldp-fusion.cc - (struct stp_change_builder): New. - (decide_stp_strategy): Reanme to ... - (try_repurpose_store): ... this. - (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to - construct stp changes. Fix up uses when inserting new stp insns. - -2024-01-23 Alex Coplan - - PR target/113070 - * rtl-ssa.h: Include hash-set.h. - * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add - new_sets parameter and use it to keep track of new user-created sets. - (function_info::apply_changes_to_insn): Also call add_def on new sets. - (function_info::change_insns): Add hash_set to keep track of new - user-created defs. Plumb it through. - * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and - apply_changes_to_insn. - -2024-01-23 Alex Coplan - - PR target/113070 - * rtl-ssa/accesses.cc (function_info::create_use): New. - * rtl-ssa/changes.cc (function_info::finalize_new_accesses): - Ensure new uses end up referring to permanent defs. - * rtl-ssa/functions.h (function_info::create_use): Declare. - -2024-01-23 Alex Coplan - - PR target/113070 - * rtl-ssa/changes.cc (function_info::change_insns): Split out the call - to finalize_new_accesses from the backwards placement loop, run it - forwards in a separate loop. - -2024-01-23 Richard Biener - - PR tree-optimization/113552 - * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use - floor_log2 instead of exact_log2 on the number of calls. - -2024-01-23 Jeff Law - Jakub Jelinek - - * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to - decl. - -2024-01-23 Richard Biener - - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Separate single and multi-exit case when creating PHIs between - the main and epilogue. - -2024-01-23 Richard Sandiford - - PR target/112989 - * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip - MODE_single variants of functions that don't take tuple arguments. - -2024-01-23 Alex Coplan - - PR target/113114 - * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback): - Don't assert recog success, just punt if the writeback pair - isn't recognized. - -2024-01-23 Jakub Jelinek - - * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add - ATTRIBUTE_UNUSED to decl. - -2024-01-23 Richard Biener - - PR debug/107058 - * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully - handle unexpected but bogus DIE contexts when not checking - enabled. - -2024-01-23 Jakub Jelinek - - PR tree-optimization/113462 - * fold-const.cc (native_interpret_int): Don't punt if total_bytes - is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT. - (fold_view_convert_expr): Use XALLOCAVEC buffers for types with - sizes between 129 and 8192 bytes. - -2024-01-23 Xi Ruoyao - - * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p): - If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false - for SYMBOL_TLS_LDM and SYMBOL_TLS_GD. - (loongarch_call_tls_get_addr): Do not split symbols of - SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is - EXPLICIT_RELOCS_AUTO. - -2024-01-23 Richard Biener - - * alias.cc (known_base_value_p): Remove. - (find_base_value): Remove PLUS/MINUS handling - when both operands are not CONST_INT_P. - -2024-01-23 Richard Biener - - PR rtl-optimization/113255 - * alias.cc (find_base_term): Remove PLUS/MINUS handling - when both operands are not CONST_INT_P. - -2024-01-23 Richard Biener - - PR debug/112718 - * dwarf2out.cc (dwarf2out_finish): Reset all type units - for the fat part of an LTO compile. - -2024-01-23 chenxiaolong - - * doc/sourcebuild.texi: Add attributes for keywords. - -2024-01-23 Sandra Loosemore - - PR c++/90463 - * doc/invoke.texi (Warning Options): Correct lists of options - enabled by -Wall and -Wextra by checking against common.opt - and c-family/c.opt. - -2024-01-22 Andrew Pinski - - PR target/113030 - * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias - instead of cpu_optaliases. - (check_arch): Use arch_opt_alias instead of arch_optaliases. - -2024-01-22 Juzhe-Zhong - - * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function. - * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto. - * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x. - -2024-01-22 Juzhe-Zhong - - PR target/109092 - * config/riscv/riscv.md: Use reg instead of subreg. - -2024-01-22 Tobias Burnus - - PR other/111966 - * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900 - to match the compiler default. - (simple_object_copy_lto_debug_sections): Never unlink the outfile - on error as the caller does so. - (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error. - (main): Likewise. Fix 'mkoffload.dbg.o' cleanup. - -2024-01-22 Richard Biener - - PR tree-optimization/113373 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Create LC PHIs in the exit blocks where necessary. - * tree-vect-loop.cc (vectorizable_live_operation): Do not try - to handle missing LC PHIs. - (find_connected_edge): Remove. - (vect_create_epilog_for_reduction): Cleanup use of auto_vec. - -2024-01-22 Juzhe-Zhong - - * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes. - -2024-01-22 xuli - - PR target/113420 - * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove. - (registered_function::overloaded_hash):refactor. - (resolve_overloaded_builtin):avoid internal ICE. - -2024-01-21 Mikael Pettersson - - PR target/82420 - PR target/111279 - * calls.cc (emit_library_call_value_1): Pass valid TYPE - to emit_push_insn. - * expr.cc (emit_push_insn): Likewise. - -2024-01-21 Jeff Law - - * config/riscv/riscv.cc (riscv_init_cumulative_args): Install - correcction version of last change. - -2024-01-21 Jeff Law - - * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and - fix bugs in signature. - -2024-01-21 Roger Sayle - Richard Biener - - PR rtl-optimization/111267 - * fwprop.cc (fwprop_propagation::profitabe_p): Rename - profitable_p method to likely_profitable_p. - (try_fwprop_subst_node): Update call to likely_profitable_p. - Only bail-out early when !prop.likely_profitable_p for instructions - that are not single sets. When comparing costs, bail-out if the - cost is unchanged and !prop.likely_profitable_p. - -2024-01-21 Sandra Loosemore - - PR c++/90464 - * doc/invoke.texi (Warning Options): Document that -Wunused-parameter - isn't enabled by -Wunused unless -Wextra is provided, and that - -Wunused does enable -Wunused-const-variable=1 for C. Clarify that - -Wunused doesn't enable -Wunused-* options documented as behaving - otherwise, and list them explicitly. - -2024-01-21 Sandra Loosemore - - PR c/109708 - * doc/invoke.texi (Warning Options): Fix broken example and - clean up/reorganize the others. Also describe what the short-form - options mean. - -2024-01-20 Sandra Loosemore - - PR c/102998 - * doc/invoke.texi (Option Summary): Add -Warray-parameter. - (Warning Options): Correct/edit discussion of -Warray-parameter - to make the first example less confusing, and fill in missing info. - -2024-01-20 Jakub Jelinek - - PR tree-optimization/113462 - * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): - Handle rhs1 INTEGER_CST like SSA_NAME. - -2024-01-20 Jakub Jelinek - - PR tree-optimization/113491 - * tree-switch-conversion.cc (switch_conversion::build_constructors): - If elt.index has precision higher than sizetype, fold_convert it to - sizetype. - (switch_conversion::array_value_type): Return type if type is - BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode. - (switch_conversion::build_arrays): Use unsigned_type_for rather than - lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision - above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision - higher than sizetype, use sizetype as tidx type and fold_convert the - subtraction to sizetype. - -2024-01-20 Juzhe-Zhong - - * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning. - (riscv_vector_mode_supported_any_target_p): Ditto. - -2024-01-19 Mikael Pettersson - - PR target/110934 - * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function. - (TARGET_ZERO_CALL_USED_REGS): Define. - -2024-01-19 Mikael Pettersson - - PR target/108640 - * config/m68k/m68k.cc (output_andsi3): Use QImode for - address adjusted for 1-byte RMW access. - (output_iorsi3): Likewise. - (output_xorsi3): Likewise. - -2024-01-19 Kito Cheng - - * doc/invoke.texi (RISC-V Options): Add list of supported - extensions. - -2024-01-19 Juzhe-Zhong - - PR target/113495 - * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM]. - (RVV_VUNDEF): Ditto. - * config/riscv/riscv-vsetvl.cc: Add timevar. - -2024-01-19 Richard Biener - - PR debug/113488 - * lto-streamer-in.cc (lto_read_tree_1): When there isn't - an early DIE but there should be, do not pretend there is. - -2024-01-19 Richard Biener - - PR tree-optimization/113494 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Handle endless loop on exit. Handle re-allocated PHI. - -2024-01-19 Jakub Jelinek - - PR tree-optimization/113464 - * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to - optimize loads into GIMPLE_ASM stmts. - -2024-01-19 Jakub Jelinek - - PR tree-optimization/113463 - * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range): - Only look through NOP_EXPRs if rhs1 doesn't have wider type than - lhs. - -2024-01-19 Jakub Jelinek - - PR tree-optimization/113459 - * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use - TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE - of SCALAR_INT_TYPE_MODE if type has BLKmode. - (vn_reference_lookup_3): Likewise. Formatting fix. - -2024-01-19 Jakub Jelinek - Richard Biener - - * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode - VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory. - * expr.cc (expand_expr_real_1) : Do nothing - but adjust_address also for BLKmode mode and MEM op0. - -2024-01-19 Palmer Dabbelt - - * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr - extensions. - -2024-01-19 Kito Cheng - - * doc/invoke.texi (RISC-V Options): Document the syntax of -march. - -2024-01-19 Kito Cheng - - * common/config/riscv/riscv-common.cc - (riscv_subset_list::parse_std_ext): Remove. - (riscv_subset_list::parse_multiletter_ext): Remove. - * config/riscv/riscv-subset.h - (riscv_subset_list::parse_std_ext): Remove. - (riscv_subset_list::parse_multiletter_ext): Remove. - -2024-01-19 Kito Cheng - - * common/config/riscv/riscv-common.cc - (riscv_subset_list::parse_single_std_ext): New parameter. - (riscv_subset_list::parse_single_multiletter_ext): Ditto. - (riscv_subset_list::parse_single_ext): Ditto. - (riscv_subset_list::parse): Relax the order for the input of ISA - string. - * config/riscv/riscv-subset.h - (riscv_subset_list::parse_single_std_ext): New parameter. - (riscv_subset_list::parse_single_multiletter_ext): Ditto. - (riscv_subset_list::parse_single_ext): Ditto. - -2024-01-19 Kito Cheng - - * common/config/riscv/riscv-common.cc - (riscv_subset_list::parse_base_ext): New. - (riscv_subset_list::parse): Extract part of logic into - riscv_subset_list::parse_base_ext. - * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext): - New. - -2024-01-19 Kito Cheng - - * config/riscv/riscv.cc (riscv_override_options_internal): Tweak - sorry message. - -2024-01-19 Kuan-Lin Chen - - * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to - UNSPEC_CLMUL_VC. - -2024-01-19 Sandra Loosemore - - PR c/110029 - * doc/extend.texi (Common Variable Attributes): Explain what - happens when multiple variables with cleanups are in the same scope. - -2024-01-18 Sandra Loosemore - - PR ipa/108470 - * doc/extend.texi (Common Function Attributes): Document that - noinline also disables some interprocedural optimizations and - improve flow to the part about using inline asm instead to - disable calls from being optimized away completely. Remove the - sentence that says noipa is mainly for internal compiler testing. - -2024-01-18 John David Anglin - - PR tree-optimization/69807 - * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT. - -2024-01-18 Brian Inglis - - PR target/108521 - * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin - from x86 Windows Options. - -2024-01-18 Sandra Loosemore - - PR c/107942 - * doc/extend.texi (C Extensions): Add new section to menu. - (Function Attributes): Move dangling index entries to.... - (Const and Volatile Functions): New section. - -2024-01-18 David Malcolm - - PR middle-end/112684 - * toplev.cc (toplev::main): Don't ICE in - -fdiagnostics-generate-patch when exiting after options, - since no edit context will have been created. - -2024-01-18 Richard Biener - - * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate - operands vector. - -2024-01-18 Iain Sandoe - - * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp - when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'. - -2024-01-18 Jun Sha (Joshua) - Jin Ma - Xianmiao Qu - Christoph Müllner - - * config/riscv/thead.cc - (th_asm_output_opcode): Rewrite some instructions. - -2024-01-18 Jun Sha (Joshua) - Jin Ma - Xianmiao Qu - Christoph Müllner - - * config/riscv/riscv.md (none,thv,rvv): New attribute. - (no,yes): Add an attribute to disable alternative - for xtheadvector or RVV1.0. - * config/riscv/vector.md: - Disable alternatives that destination register overlaps - source register group for xtheadvector. - -2024-01-18 Jun Sha (Joshua) - Jin Ma - Xianmiao Qu - Christoph Müllner - - * config/riscv/riscv-vector-builtins-bases.cc - (class th_loadstore_width): Define new builtin bases. - (class th_extract): Define new builtin bases. - (BASE): Define new builtin bases. - * config/riscv/riscv-vector-builtins-bases.h: - Define new builtin class. - * config/riscv/riscv-vector-builtins-shapes.cc - (struct th_loadstore_width_def): Define new builtin shapes. - (struct th_indexed_loadstore_width_def): - Define new builtin shapes. - (struct th_extract_def): Define new builtin shapes. - (SHAPE): Define new builtin shapes. - * config/riscv/riscv-vector-builtins-shapes.h: - Define new builtin shapes. - * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION): - Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics. - * config/riscv/riscv-vector-builtins.h - (enum required_ext): Add new XTheadVector member. - (struct function_group_info): Likewise. - * config/riscv/t-riscv: - Add thead-vector-builtins-functions.def - * config/riscv/thead-vector.md - (@pred_mov_width): Add new patterns. - (*pred_mov_width): Likewise. - (@pred_store_width): Likewise. - (@pred_strided_load_width): Likewise. - (@pred_strided_store_width): Likewise. - (@pred_indexed_load_width): Likewise. - (@pred_th_extract): Likewise. - (*pred_th_extract): Likewise. - * config/riscv/thead-vector-builtins-functions.def: New file. - -2024-01-18 Jun Sha (Joshua) - Jin Ma - Xianmiao Qu - Christoph Müllner - - * config.gcc: Add files for XTheadVector intrinsics. - * config/riscv/autovec.md: Guard XTheadVector. - * config/riscv/predicates.md: Disable immediate vl - for XTheadVector. - * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): - Add pragma for XTheadVector. - * config/riscv/riscv-string.cc (riscv_expand_block_move): - Guard XTheadVector. - * config/riscv/riscv-v.cc (vls_mode_valid_p): - Avoid autovec. - * config/riscv/riscv-vector-builtins-bases.cc: - Do not normalize vsetvl instructions for XTheadVector. - * config/riscv/riscv-vector-builtins-shapes.cc (check_type): - New check type function. - (build_one): Adjust for XTheadVector. - * config/riscv/riscv-vector-switch.def (ENTRY): - Disable fractional mode for the XTheadVector extension. - (TUPLE_ENTRY): Likewise. - * config/riscv/riscv.cc (riscv_v_adjust_bytesize): - Guard XTheadVector. - (riscv_preferred_simd_mode): Likewsie. - (riscv_autovectorize_vector_modes): Likewise. - (riscv_vector_mode_supported_any_target_p): Likewise. - (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise. - * config/riscv/thead.cc (th_asm_output_opcode): - Rewrite vsetvl instructions. - * config/riscv/vector.md: - Include thead-vector.md and change fractional LMUL - into 1 for vbool. - * config/riscv/riscv_th_vector.h: New file. - * config/riscv/thead-vector.md: New file. - -2024-01-18 Jun Sha (Joshua) - Jin Ma - Xianmiao Qu - Christoph Müllner - - * config/riscv/riscv-protos.h (riscv_asm_output_opcode): - Add new function to add assembler insn code prefix/suffix. - (th_asm_output_opcode): - Add Thead function to add assembler insn code prefix/suffix. - * config/riscv/riscv.cc (riscv_asm_output_opcode): - Implement function to add assembler insn code prefix/suffix. - * config/riscv/riscv.h (ASM_OUTPUT_OPCODE): - Add new function to add assembler insn code prefix/suffix. - * config/riscv/thead.cc (th_asm_output_opcode): - Implement Thead function to add assembler insn code - prefix/suffix. - -2024-01-18 Jun Sha (Joshua) - Jin Ma - Xianmiao Qu - Christoph Müllner - - * common/config/riscv/riscv-common.cc - (riscv_subset_list::parse): Add new vendor extension. - * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): - Add test marco. - * config/riscv/riscv.opt: Add new mask. - -2024-01-18 Iain Sandoe - - * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec - to be conditional on macosx-version-min. - -2024-01-18 Iain Sandoe - - * config/darwin.cc (darwin_objc1_section): Use the correct - meta-data version for constant strings. - (machopic_select_section): Assert if we fail to handle CFString - sections as Obejctive-C meta-data or drectly. - -2024-01-18 Iain Sandoe - - * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX, - OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME, - OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax - versions when the object format is Mach-O. - -2024-01-18 Iain Sandoe - - PR target/105522 - * config/darwin.cc (machopic_select_section): Handle C and C++ - CFStrings. - (darwin_rename_builtins): Move this out of the CFString code. - (darwin_libc_has_function): Likewise. - (darwin_build_constant_cfstring): Create an anonymous var to - hold each CFString. - * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant - CFstrings. - -2024-01-18 Maxim Kuvyrkov - - PR bootstrap/113445 - * haifa-sched.cc (dep_list_size): Make global. - * sched-deps.cc (find_inc): Use instead of sd_lists_size(). - * sched-int.h (dep_list_size): Declare. - -2024-01-18 Martin Jambor - - PR tree-optimization/110422 - * tree-sra.cc (scan_function): Disqualify bases of operands of asm - gotos. - -2024-01-18 Richard Biener - - PR tree-optimization/113475 - * gimple-range-phi.h (phi_analyzer::m_phi_groups): New. - * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize. - (phi_analyzer::~phi_analyzer): Deallocate and free collected - phi_grous. - (phi_analyzer::process_phi): Record allocated phi_groups. - -2024-01-18 Richard Biener - - * tree-vect-stmts.cc (vectorizable_store): Do not allocate - storage for gvec_oprnds elements. - -2024-01-18 Richard Biener - - * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment, - prefer all later exits we can handle. - (vect_analyze_loop_form): Free the allocated loop body. - Adjust comments. - -2024-01-18 Georg-Johann Lay - - * config/avr/avr-log.cc: Tabify. - -2024-01-18 Juzhe-Zhong - - * config/riscv/autovec.md: Support vi variant. - -2024-01-18 Georg-Johann Lay - - * config/avr/avr-devices.cc: Tabify. - -2024-01-18 Georg-Johann Lay - - * config/avr/avr-c.cc: Tabify. - -2024-01-18 Georg-Johann Lay - - * config/avr/driver-avr.cc: Tabify. - -2024-01-18 Georg-Johann Lay - - * config/avr/gen-avr-mmcu-texi.cc: Tabify. - -2024-01-18 Georg-Johann Lay - - * config/avr/gen-avr-mmcu-specs.cc: Tabify. - -2024-01-18 Jakub Jelinek - - * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check, - minline-strcmp, minline-strncmp, minline-strlen, - -param=riscv-vector-abi): Remove Bool keywords. - -2024-01-18 Jakub Jelinek - - PR target/113122 - * config/i386/i386.cc (x86_function_profiler): Add -masm=intel - support. Add missing space after , in emitted assembly in some - cases. Formatting fixes. - -2024-01-18 Xi Ruoyao - - * config/loongarch/loongarch.md (movsi_internal): Remove - constraint z. - -2024-01-18 Georg-Johann Lay - - * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo - in the diagnostic, and capitalize the device name. - (print_mcu): Generate specs such that: - <*check_rodata_in_ram>: New. - <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram. - <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram. - <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove. - -2024-01-18 Jakub Jelinek - - PR other/113399 - * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add - Common and Optimization. - -2024-01-18 Richard Biener - - PR tree-optimization/113431 - * tree-vect-data-refs.cc (vect_preserves_scalar_order_p): - When there is an invariant load we might not preserve - scalar order. - -2024-01-18 Richard Biener - - PR tree-optimization/113374 - * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New. - * tree-vect-loop.cc (move_early_exit_stmts): Update - virtual LC PHIs. - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Refactor. Preserve virtual LC PHIs on all exits. - -2024-01-18 Lulu Cheng - - * config/loongarch/loongarch.cc (loongarch_split_symbol): - Assign the '/u' attribute to the mem. - -2024-01-18 Sandra Loosemore - - PR middle-end/110847 - * doc/invoke.texi (Option Summary): Document negative forms of - -Wtsan and -Wxor-used-as-pow. - (Warning Options): Likewise. - -2024-01-18 Juzhe-Zhong - - PR target/113429 - * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug. - -2024-01-18 Sandra Loosemore - - * doc/extend.texi (Common Function Attributes): Re-alphabetize - the table. - (Common Variable Attributes): Likewise. - (Common Type Attributes): Likewise. - -2024-01-17 Sandra Loosemore - - PR middle-end/111659 - * doc/extend.texi (Common Variable Attributes): Fix long lines - in documentation of strict_flex_array + other minor copy-editing. - Add a cross-reference to -Wstrict-flex-arrays. - * doc/invoke.texi (Option Summary): Fix whitespace in tables - before -fstrict-flex-arrays and -Wstrict-flex-arrays. - (C Dialect Options): Combine the docs for the two - -fstrict-flex-arrays forms into a single entry. Note this option - is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays. - (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only. - Minor copy-editing. Add cross references to the strict_flex_array - attribute and -fstrict-flex-arrays option. Add note that this - option depends on -ftree-vrp. - -2024-01-17 Andrew Pinski - - PR target/113221 - * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg, - only allow REG operands instead of allowing all. - -2024-01-17 Vineet Gupta - - * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info): - Remove redundant checks in else condition for readablity. - (earliest_fuse_vsetvl_info) Print iteration count in debug - prints. - (earliest_fuse_vsetvl_info) Fix misleading vsetvl info - dump details in certain cases. - -2024-01-17 Vineet Gupta - - * config/riscv/riscv.opt: New -param=vsetvl-strategy. - * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum. - * config/riscv/riscv-vsetvl.cc - (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy. - (pass_vsetvl::execute): Use vsetvl_strategy. - -2024-01-17 Jan Hubicka - - * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove - accidental hack reseting offset. - -2024-01-17 Jan Hubicka - - * config/i386/i386-options.cc (ix86_option_override_internal): Fix - handling of X86_TUNE_AVOID_512FMA_CHAINS. - -2024-01-17 Jan Hubicka - Jakub Jelinek - - PR tree-optimization/110852 - * predict.cc (expr_expected_value_1): Fix profile merging of PHI and - binary operations - (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and - PRED_COMBINED_VALUE_PREDICTIONS_PHI - * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor. - (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor. - -2024-01-17 Jakub Jelinek - - PR tree-optimization/113421 - * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function - comment. - (bitint_dom_walker::before_dom_children): Add g temporary to simplify - formatting. Start at vop rather than cvop even if stmt is a store - and needs_operand_addr. - -2024-01-17 Jakub Jelinek - - PR middle-end/113410 - * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes): - If access_nelts is integral with larger precision than sizetype, - fold_convert it to sizetype. - -2024-01-17 Jakub Jelinek - - PR tree-optimization/113408 - * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For - VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1 - to handle_cast. - -2024-01-17 Jakub Jelinek - - PR middle-end/113406 - * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p - regardless of whether is_gimple_reg_type (restype) or not. - -2024-01-17 Jakub Jelinek - - * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo, - funcions -> functions, and use were instead of was. - * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function - and guaranteee -> guarantee. - * attribs.h (struct attr_access): Fix comment typo funcion -> function. - -2024-01-17 Jakub Jelinek - - PR middle-end/113409 - * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like - INTEGER_TYPE. - (omp_extract_for_data): Use build_bitint_type rather than - build_nonstandard_integer_type if either iter_type or loop->v type - is BITINT_TYPE. - * omp-expand.cc (expand_omp_for_generic, - expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle - BITINT_TYPE like INTEGER_TYPE. - -2024-01-17 Richard Biener - - PR tree-optimization/113371 - * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): - Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED. - * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do - not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED. - -2024-01-17 Maxim Kuvyrkov - - PR rtl-optimization/96388 - PR rtl-optimization/111554 - * sched-deps.cc (find_inc): Avoid exponential behavior. - -2024-01-17 Sandra Loosemore - - PR c/111693 - * doc/invoke.texi (Option Summary): Move -Wuseless-cast - from C++ Language Options to Warning Options. Add entry for - -Wuse-after-free. - (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast - from here.... - (Warning Options): ...to here. Minor copy-editing to fix typo - and grammar. - -2024-01-17 YunQiang Su - - * config/mips/mips.cc (mips_compute_frame_info): If another - register is used as global_pointer, mark $GP live false. - -2024-01-17 Sandra Loosemore - - PR target/112973 - * doc/extend.texi (BPF Built-in Functions): Wrap long lines and - give the section a light copy-editing pass. - -2024-01-16 Wilco Dijkstra - - * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU. - * config/aarch64/aarch64-tune.md: Regenerated. - * doc/invoke.texi (-mcpu): Add cobalt-100 core. - -2024-01-16 Wilco Dijkstra - - PR target/112573 - * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate - badly formed CONST expressions. - -2024-01-16 Daniel Cederman - - * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty - -2024-01-16 Daniel Cederman - - * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic - * config/sparc/sync.md (membar_storeload): Turn into named insn - and add GR712RC errata workaround. - (membar_v8): Add GR712RC errata workaround. - -2024-01-16 Andreas Larsson - - * config/sparc/sync.md (*membar_storeload_leon3): Remove - (*membar_storeload): Enable for LEON - -2024-01-16 Jakub Jelinek - - PR tree-optimization/113372 - PR middle-end/90348 - PR middle-end/110115 - PR middle-end/111422 - * cfgexpand.cc (add_scope_conflicts_2): New function. - (add_scope_conflicts_1): Use it. - -2024-01-16 Georg-Johann Lay - - * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32) - (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add. - * doc/avr-mmcu.texi: Regenerate. - -2024-01-16 Feng Xue - - PR tree-optimization/113091 - * tree-vect-slp.cc (vect_slp_has_scalar_use): New function. - (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check - scalar use with new function. - (vect_bb_slp_mark_live_stmts): New function as entry to existing - overriden functions with same name. - (vect_slp_analyze_operations): Call new entry function to mark - live statements. - -2024-01-16 Juzhe-Zhong - - PR target/113404 - * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry - for RVV in big-endian mode. - -2024-01-16 Yanzhang Wang - - * config/riscv/riscv.cc (riscv_arg_has_vector): Delete. - (riscv_pass_in_vector_p): Delete. - (riscv_init_cumulative_args): Delete the checking. - (riscv_get_arg_info): Delete the checking. - (riscv_function_value): Delete the checking. - * config/riscv/riscv.h: Delete the member for checking. - -2024-01-15 Georg-Johann Lay - - * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation. - -2024-01-15 Liao Shihua - - * config.gcc: Include riscv_bitmanip.h. - * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern. - * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern. - * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins. - (RISCV_BUILTIN_NO_PREFIX): New helper macro. - * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins. - * config/riscv/riscv-ftypes.def (2): New ftypes. - * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins. - (RISCV_BUILTIN_NO_PREFIX): Likewise. - * config/riscv/riscv_bitmanip.h: New file. - -2024-01-15 Liao Shihua - - * config.gcc: Include riscv_crypto.h. - * config/riscv/riscv_crypto.h: New file. - -2024-01-15 Vladimir N. Makarov - - PR middle-end/113354 - * lra-constraints.cc (curr_insn_transform): Spill pseudo only used - in the insn if the corresponding operand does not require hard - register anymore. - -2024-01-15 Georg-Johann Lay - - PR target/107201 - * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib. - * config/avr/driver-avr.cc (avr_no_devlib): New function. - (avr_devicespecs_file): Use it to remove -nodevicelib from the - options for cores only. - * config/avr/avr-arch.h (avr_get_parch): New prototype. - * config/avr/avr-devices.cc (avr_get_parch): New function. - -2024-01-15 Juzhe-Zhong - - PR target/113247 - * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove. - * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto. - * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost. - -2024-01-15 Juzhe-Zhong - - PR target/113281 - * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function. - (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF. - * config/riscv/riscv-vector-costs.h: New function. - -2024-01-15 Richard Biener - - PR tree-optimization/113385 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - First redirect, then split the exit edge. - -2024-01-15 Juzhe-Zhong - - * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo): - Remove m_num_vector_iterations. - * config/riscv/riscv-vector-costs.h: Ditto. - -2024-01-15 Andrew Pinski - - PR target/113156 - * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag. - (-mbranch-cost): Set "Optimization" flag. - -2024-01-15 Jakub Jelinek - - PR tree-optimization/113370 - * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only - set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise - set it to just prec % limb_prec. - -2024-01-15 Juzhe-Zhong - - PR target/113393 - * config/riscv/vector.md: Fix ternary attributes. - -2024-01-14 Georg-Johann Lay - - PR target/112944 - * configure.ac [target=avr]: Check availability of emulations - avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars - HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP. - * configure: Regenerate. - * config.in: Regenerate. - * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram, - __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__. - * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options. - * config/avr/avr-arch.h (enum avr_device_specific_features): - Add AVR_ISA_FLMAP. - * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag - AVR_ISA_FLMAP. - * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars. - (avr_set_core_architecture): Set avr_arch_index. - (have_avrxmega2_flmap, have_avrxmega4_flmap) - (have_avrxmega3_rodata_in_flash): Set new static const bool according - to configure results. - (avr_rodata_in_flash_p): New function using them. - (avr_asm_init_sections): Let readonly_data_section->unnamed.callback - track avr_need_copy_data_p only if not avr_rodata_in_flash_p(). - (avr_asm_named_section): Track avr_has_rodata_p. - (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p - and not avr_rodata_in_flash_p (). - * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram). - (LINK_SPEC): Add %(link_rodata_in_ram). - (LINK_ARCH_SPEC): Remove. - * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash) - (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static - const bool according to configure results. - (diagnose_mrodata_in_ram): New function. - (print_mcu): Generate specs with the following changes: - <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't - need to extend avr/specs.h each time we add a new bell or whistle. - <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose - -m[no-]rodata-in-ram. - <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1. - <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies. - <*cpp>: Add %(cpp_rodata_in_ram). - <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as - requested. - <*self_spec>: Add -mflmap or % - - * config/mips/mips.md (ior3_mips16_asmacro): Use SImode, - not the GPR iterator. Adjust pattern name and mode attribute - accordingly. - -2024-01-13 Jakub Jelinek - - PR tree-optimization/113361 - * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): - Fix up determination of the type for > limb_prec constants. - -2024-01-12 Georg-Johann Lay - - * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats): - Add web-link to the avr-gcc wiki. - -2024-01-12 Georg-Johann Lay - - * doc/extend.texi (AVR Variable Attributes) [address]: Remove - documentation for a version without argument, which is not supported. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New. - (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New. - (vld1_f16_x4, vld1_f32_x4): New. - (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New. - (vld1_bf16_x4): New. - (vld1q_types_x4): Updated to use vld1q_x4 - from arm_neon_builtins.def - * config/arm/arm_neon_builtins.def - (vld1_x4): Updated entries. - (vld1q_x4): New entries, but comes from the old vld1_x4 - * config/arm/neon.md - (neon_vld1q_x4): Updated from neon_vld1_x4. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New. - (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New. - (vld1_f16_x3, vld1_f32_x3): New. - (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New. - (vld1_bf16_x3): New. - (vld1q_types_x3): Updated to use vld1q_x3 from - arm_neon_builtins.def - * config/arm/arm_neon_builtins.def - (vld1_x3): Updated entries. - (vld1q_x3): New entries, but comes from the old vld1_x2 - * config/arm/neon.md - (neon_vld1q_x3): Updated from neon_vld1_x3. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New. - (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New. - (vld1_f16_x2, vld1_f32_x2): New. - (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New. - (vld1_bf16_x2): New. - (vld1q_types_x2): Updated to use vld1q_x2 from - arm_neon_builtins.def - * config/arm/arm_neon_builtins.def - (vld1_x2): Updated entries. - (vld1q_x2): New entries, but comes from the old vld1_x2 - * config/arm/neon.md - (neon_vld1_x2): Updated from - neon_vld1_x2. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New. - (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New. - (vst1q_f16_x4, vst1q_f32_x4): New. - (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New. - (vst1q_bf16_x4): New. - * config/arm/arm_neon_builtins.def (vst1q_x4): New entries. - * config/arm/neon.md - (neon_vst1q_x4): New. - (neon_vst1x4qa, neon_vst1x4qb): New. - * config/arm/unspecs.md - (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New. - (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New. - (vst1q_f16_x3, vst1q_f32_x3): New. - (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New. - (vst1q_bf16_x3): New. - * config/arm/arm_neon_builtins.def (vst1q_x3): New entries. - * config/arm/neon.md - (neon_vst1q_x3): New. - (neon_vld1x3qa, neon_vst1x3qb): New. - * config/arm/unspecs.md - (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New. - (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New. - (vst1q_f16_x2, vst1q_f32_x2): New. - (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New. - (vst1q_bf16_x2): New. - * config/arm/arm_neon_builtins.def (vst1<_x2): New entries. - * config/arm/neon.md - (neon_vst1_x2): Updated from - neon_vst1_x2. - * config/arm/iterators.md - (VMEMX2): New mode iterator. - (VMEMX2_q): New mode attribute. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New. - (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New. - (vst1_f16_x4, vst1_f32_x4): New. - (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New. - (vst1_bf16_x4): New. - * config/arm/arm_neon_builtins.def (vst1_x4): New entries. - * config/arm/neon.md (vst1_x4): New. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New. - (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New. - (vst1_f16_x3, vst1_f32_x3): New. - (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New. - (vst1_bf16_x3): New. - * config/arm/arm_neon_builtins.def (vst1_x3): New entries. - * config/arm/neon.md (vst1_x3): New. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New. - (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New. - (vst1_f16_x2, vst1_f32_x2): New. - (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New. - (vst1_bf16_x2): New. - * config/arm/arm_neon_builtins.def (vst1_x2): New entries. - * config/arm/neon.md (vst1_x2): New. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New. - (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New. - (vld1q_f16_x4, vld1q_f32_x4): New. - (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New. - (vld1q_bf16_x4): New. - * config/arm/arm_neon_builtins.def (vld1_x4): New entries. - * config/arm/neon.md - (neon_vld1_x4): New. - (neon_vld1x4qa, neon_vld1x4qb): New - * config/arm/unspecs.md - (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New. - (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New. - (vld1q_f16_x3, vld1q_f32_x3): New. - (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New. - (vld1q_bf16_x3): New. - * config/arm/arm_neon_builtins.def (vld1_x3): New entries. - * config/arm/neon.md - (neon_vld1_x3): New. - (neon_vld1x3qa, neon_vld1x3qb): New. - * config/arm/unspecs.md - (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New. - -2024-01-12 Ezra Sitorus - - * config/arm/arm_neon.h - (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New. - (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New. - (vld1q_f16_x2, vld1q_f32_x2): New. - (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New. - (vld1q_bf16_x2): New. - * config/arm/arm_neon_builtins.def (vld1_x2): New entries. - * config/arm/neon.md (vld1_x2): New. - -2024-01-12 Tamar Christina - - PR tree-optimization/113287 - * doc/sourcebuild.texi (check_effective_target_bitint65535): New. - -2024-01-12 Tamar Christina - - * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit. - * tree-vect-loop.cc (vect_transform_loop): Likewise. - -2024-01-12 Tamar Christina - - PR tree-optimization/113178 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all - alternate exits. - -2024-01-12 Tamar Christina - - PR tree-optimization/113237 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use - existing LCSSA variable for exit when all exits are early break. - -2024-01-12 Tamar Christina - - PR tree-optimization/113137 - PR tree-optimization/113136 - PR tree-optimization/113172 - PR tree-optimization/113178 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Maintain PHIs on inverted loops. - (vect_do_peeling): Maintain virtual PHIs on inverted loops. - * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to - latch. - (vect_create_loop_vinfo): Record all conds instead of only alt ones. - -2024-01-12 Tamar Christina - - PR tree-optimization/113135 - * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework - dependency analysis. - -2024-01-12 Iain Sandoe - - * config/rs6000/host-darwin.cc (segv_handler): Use the revised - diagnostics class member name for abort of error. - -2024-01-12 Georg-Johann Lay - - * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from - format string to %s argument. - -2024-01-12 John David Anglin - Jakub Jelinek - - PR middle-end/113182 - * varasm.cc (process_pending_assemble_externals, - assemble_external_libcall): Use targetm.strip_name_encoding - before calling get_identifier. - -2024-01-12 Richard Sandiford - - PR target/113196 - * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn): - New member variable. - * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p): - Declare. - * config/aarch64/iterators.md (Vnarrowq2): New mode attribute. - * config/aarch64/aarch64-simd.md - (vec_unpacku_hi_, vec_unpacks_hi_): Recombine into... - (vec_unpack_hi_): ...this. Move the generation of - zip2 for zero-extends to... - (aarch64_simd_vec_unpack_hi_): ...a split of this - instruction. Fix big-endian handling. - (vec_unpacku_lo_, vec_unpacks_lo_): Recombine into... - (vec_unpack_lo_): ...this. Move the generation of - zip1 for zero-extends to... - (2): ...a split of this instruction. - Fix big-endian handling. - (*aarch64_zip1_uxtl): New pattern. - (aarch64_usubw_lo_zip, aarch64_uaddw_lo_zip): Delete - (aarch64_usubw_hi_zip, aarch64_uaddw_hi_zip): Likewise. - * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function. - (aarch64_gen_shareable_zero): Use it. - (aarch64_split_simd_shift_p): New function. - -2024-01-12 Richard Sandiford - - * emit-rtl.h (rtl_data::x_function_beg_note): New member variable. - (function_beg_insn): New macro. - * function.cc (expand_function_start): Initialize function_beg_insn. - -2024-01-12 Richard Sandiford - - PR target/112989 - * config/aarch64/aarch64-sve-builtins.h - (function_builder::m_overload_names): Replace with... - * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this - new global. - (add_overloaded_function): Update accordingly, using get_identifier - to get a GGC-friendly record of the name. - -2024-01-12 Richard Sandiford - - PR target/112989 - * config/aarch64/aarch64-sve-builtins.def: Don't include - aarch64-sve-builtins-sme.def. - (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to... - * config/aarch64/aarch64-sve-builtins-sme.def: ...here. - (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS - instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that - requires AARCH64_FL_SME2. - * config/aarch64/aarch64-sve-builtins-sve2.def: Make same - AARCH64_FL_SME adjustment here. - * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't - include SME intrinsics. - (sme_function_groups): New array. - (handle_arm_sve_h): Remove check for AARCH64_FL_SME. - (handle_arm_sme_h): Use sme_function_groups instead of function_groups. - -2024-01-12 Juzhe-Zhong - - PR target/113281 - * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct. - (struct cpu_vector_cost): Add regmove struct. - (get_vector_costs): Export as global. - * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost. - (costs::add_stmt_cost): Ditto. - * config/riscv/riscv.cc (get_common_costs): Export global function. - -2024-01-12 Jakub Jelinek - - PR tree-optimization/113334 - * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use - wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0 - to determine if number should be extended by all ones rather than zero - extended. - -2024-01-12 Jakub Jelinek - - PR tree-optimization/113330 - * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with - too large size. - -2024-01-12 Jakub Jelinek - - PR tree-optimization/113323 - * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix - check for lhs being large/huge _BitInt not in m_names. - -2024-01-12 Jakub Jelinek - - PR tree-optimization/113316 - * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle - uninitialized large/huge _BitInt arguments to calls. - -2024-01-12 Jakub Jelinek - - * gimple-lower-bitint.cc (mergeable_op): Instead of comparing - TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare - CEIL (TYPE_PRECISION (t), limb_prec). - (bitint_large_huge::handle_cast): Likewise. - -2024-01-12 Ilya Leoshkevich - - PR sanitizer/113284 - * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name): - Use assemble_function_label_final () for Power ELF V1 ABI. - * output.h (assemble_function_label_final): New function. - * varasm.cc (assemble_function_label_raw): Use - assemble_function_label_final (). - (assemble_function_label_final): New function. - -2024-01-12 Richard Biener - - PR middle-end/113344 - * match.pd ((double)float CMP (double)float -> float CMP float): - Perform result type check only for vectors. - * fold-const.cc (fold_binary_loc): Likewise. - -2024-01-12 Haochen Jiang - - * config/i386/sse.md (sdot_prod): Remove redundant SET. - (usdot_prod): Ditto. - (sdot_prod): Ditto. - (udot_prod): Ditto. - -2024-01-12 Haochen Jiang - - PR target/113288 - * config/i386/i386-c.cc (ix86_target_macros_internal): - Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__. - -2024-01-12 Richard Biener - - PR target/112280 - * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate): - Do not generate code when d.testing_p. - -2024-01-12 liuhongt - - PR target/113039 - * doc/invoke.texi (fcf-protection=): Update documents. - -2024-01-12 Pan Li - - * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the - comments of predicate func riscv_v_ext_mode_p. - -2024-01-12 Feng Wang - - * config/riscv/riscv-vector-builtins.def (vfloat16m8_t): - Modify ABI-name length of vfloat16m8_t - -2024-01-12 Li Wei - - * config/loongarch/loongarch.cc (loongarch_expand_conditional_move): - Adjust. - -2024-01-12 Li Wei - - * config/loongarch/loongarch.md (add3): Removed. - (*addsi3): New. - (addsi3): Ditto. - (adddi3): Ditto. - (*addsi3_extended): Removed. - (addsi3_extended): New. - -2024-01-11 Jin Ma - - * config/riscv/thead.md: Add limits for splits. - -2024-01-11 Andrew Pinski - - PR middle-end/113322 - * expr.cc (do_store_flag): Don't try single bit tests with - comparison on vector types. - -2024-01-11 Andrew Pinski - - PR tree-optimization/113301 - * match.pd (`1/x`): Delay signed case until late. - -2024-01-11 Georg-Johann Lay - - * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls - and -msp8 to... - (AVR Internal Options): ...this new @subsubsection. - -2024-01-11 Vladimir N. Makarov - - PR rtl-optimization/112918 - * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p. - (in_class_p): Restrict condition for narrowing class in case of - allow_all_reload_class_changes_p. - (process_alt_operands): Try to match operand without and with - narrowing reg class. Discourage narrowing the class. Finish insn - matching only if there is no class narrowing. - (curr_insn_transform): Pass true to in_class_p for reg operand win. - -2024-01-11 Richard Biener - - PR tree-optimization/112505 - * tree-vect-loop.cc (vectorizable_induction): Reject - bit-precision induction. - -2024-01-11 Richard Biener - - PR tree-optimization/113126 - * match.pd ((double)float CMP (double)float -> float CMP float): - Make sure the boolean type is the same. - * fold-const.cc (fold_binary_loc): Likewise. - -2024-01-11 Richard Biener - - PR tree-optimization/112636 - * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call - estimate_numbers_of_iterations before querying - get_max_loop_iterations_int. - (pass_ch::execute): Initialize SCEV and loops appropriately. - -2024-01-11 Georg-Johann Lay - - * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for - Reduced Tiny. - * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core. - * doc/extend.texi (AVR Variable Attributes): Improve documentation - of io, io_low and address attributes. - * doc/invoke.texi (AVR Options): Add some anchors for external refs. - * doc/avr-mmcu.texi: Rebuild. - -2024-01-11 Yang Yujie - - PR target/113233 - * config/loongarch/genopts/loongarch.opt.in: Mark options with - the "Save" property. - * config/loongarch/loongarch.opt: Same. - * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state - according to la_target. - * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE, - RESTORE} for the la_target structure; Rename option conditions - to have the same "la_" prefix. - * config/loongarch/loongarch.h: Same. - -2024-01-11 Pan Li - - * loop-unroll.cc (insert_var_expansion_initialization): Leverage - MODE_HAS_SIGNED_ZEROS for expansion variable initialization. - -2024-01-11 Alex Coplan - - PR target/113077 - * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add - fr_expr param to extract REG_FRAME_RELATED_EXPR notes. - (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and - synthesize these if needed. Update caller ... - (ldp_bb_info::fuse_pair): ... here. - (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback - and either insn is frame-related. - (find_trailing_add): Punt on frame-related insns. - * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use - REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET. - -2024-01-11 YunQiang Su - - * config/mips/mips.cc (mips_start_function_definition): - Add ATTRIBUTE_UNUSED. - -2024-01-11 Richard Biener - - PR middle-end/112740 - * expr.cc (store_constructor): Check the integer vector - mask has a single bit per element before using sign-extension - to expand an uniform vector. - -2024-01-11 Juzhe-Zhong - - * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA - preempt VLS on unknown NITERS loop. - -2024-01-11 Haochen Jiang - - * doc/invoke.texi: Add -mevex512. - -2024-01-11 Lulu Cheng - - * config/loongarch/loongarch.md (one_cmpl2): Replace GPR with X. - (*nor3): Likewise. - (nor3): Likewise. - (*negsi2_extended): New template. - (*si3_internal): Likewise. - (*one_cmplsi2_internal): Likewise. - (*norsi3_internal): Likewise. - (*nsi_internal): Likewise. - (bytepick_w__extend): Modify this template according to the - modified bit operation to make the optimization work. - -2024-01-11 liuhongt - - PR target/104401 - * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match. - -2024-01-10 Juzhe-Zhong - - * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model. - (get_vector_costs): Ditto. - (riscv_builtin_vectorization_cost): Ditto. - -2024-01-10 Juzhe-Zhong - - * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak. - -2024-01-10 Antoni Boucher - - PR jit/111396 - * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call - ipa_free_size_summary. - * ipa-icf.cc (ipa_icf_cc_finalize): New function. - * ipa-profile.cc (ipa_profile_cc_finalize): New function. - * ipa-prop.cc (ipa_prop_cc_finalize): New function. - * ipa-prop.h (ipa_prop_cc_finalize): New function. - * ipa-sra.cc (ipa_sra_cc_finalize): New function. - * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize, - ipa_sra_cc_finalize): New functions. - * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize, - ipa_prop_cc_finalize, ipa_profile_cc_finalize and - ipa_sra_cc_finalize - Include ipa-utils.h. - -2024-01-10 Jin Ma - - * config/riscv/riscv-protos.h (th_int_get_mask): New prototype. - (th_int_get_save_adjustment): Likewise. - (th_int_adjust_cfi_prologue): Likewise. - * config/riscv/riscv.cc (BITSET_P): Moved away from here. - (TH_INT_INTERRUPT): New macro. - (riscv_expand_prologue): Add the processing of XTheadInt. - (riscv_expand_epilogue): Likewise. - * config/riscv/riscv.h (BITSET_P): Moved to here. - * config/riscv/riscv.md: New unspec. - * config/riscv/thead.cc (th_int_get_mask): New function. - (th_int_get_save_adjustment): Likewise. - (th_int_adjust_cfi_prologue): Likewise. - * config/riscv/thead.md (th_int_push): New pattern. - (th_int_pop): new pattern. - -2024-01-10 Tamar Christina - - PR tree-optimization/112468 - * doc/sourcebuild.texi: Document ifn_copysign. - * match.pd: Only apply transformation if target supports the IFN. - -2024-01-10 Andrew Pinski - - PR tree-optimization/112581 - * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call - mark_ssa_maybe_undefs. - * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized - variables can not be reassociated. - (init_range_entry): Check for uninitialized variables too. - (init_reassoc): Call mark_ssa_maybe_undefs. - -2024-01-10 Maciej W. Rozycki - - * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): - Also handle sign extension. - -2024-01-10 Alex Coplan - - * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default - to 0. - (-mlate-ldp-fusion): Likewise. - -2024-01-10 Tamar Christina - - PR tree-optimization/113287 - * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge - instead of using BRANCH_EDGE to determine true edge. - -2024-01-10 Richard Biener - - PR tree-optimization/113078 - * tree-vect-loop.cc (check_reduction_path): Canonicalize - .COND_SUB to .COND_ADD. - -2024-01-10 David Malcolm - - * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option): - Handle prefix mappings before calling find_opt. - (selftest::gcc_urlifier_cc_tests): Add example of urlifying a - "-fno-"-prefixed command-line option. - * opts-common.cc (get_option_prefix_remapping): New. - * opts.h (get_option_prefix_remapping): New decl. - -2024-01-10 David Malcolm - - * diagnostic.cc (diagnostic_context::report_diagnostic): Pass - m_urlifier to pp_output_formatted_text. - * pretty-print.cc: Add #define of INCLUDE_VECTOR. - (obstack_append_string): New overload, taking a length. - (urlify_quoted_string): Pass in an obstack ptr, rather than using - that of the pp's buffer. Generalize to handle trailing text in - the buffer beyond the run of quoted text. - (class quoting_info): New. - (on_begin_quote): New. - (on_end_quote): New. - (pp_format): Refactor phase 1 and phase 2 quoting support, moving - it to calls to on_begin_quote and on_end_quote. - (struct auto_obstack): New. - (quoting_info::handle_phase_3): New. - (pp_output_formatted_text): Add urlifier param. Use it if there - is deferred urlification. Delete m_quotes. - (selftest::pp_printf_with_urlifier): Pass urlifier to - pp_output_formatted_text. - (selftest::test_urlification): Update results for the existing - case of quoted text stradding chunks; add more such test cases. - * pretty-print.h (class quoting_info): New forward decl. - (chunk_info::m_quotes): New field. - (pp_output_formatted_text): Add optional urlifier param. - -2024-01-10 David Malcolm - - * pretty-print.cc (selftest::test_pp_format): Add selftest - coverage for numbered args. - -2024-01-10 Tamar Christina - - PR tree-optimization/113144 - PR tree-optimization/113145 - * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): - Update all BB that the original exits dominated. - -2024-01-10 Eric Botcazou - - * dwarf2out.cc (modified_type_die): Extend the support of reverse - storage order to enumeration types if -gstrict-dwarf is not passed. - (gen_enumeration_type_die): Add REVERSE parameter and generate the - DIE immediately after the existing one if it is true. - (gen_tagged_type_die): Add REVERSE parameter and pass it in the - call to gen_enumeration_type_die. - (gen_type_die_with_usage): Add REVERSE parameter and pass it in the - first recursive call as well as the call to gen_tagged_type_die. - (gen_type_die): Add REVERSE parameter and pass it in the call to - gen_type_die_with_usage. - -2024-01-10 Jakub Jelinek - - PR tree-optimization/113120 - * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE - with root->size TYPE_PRECISION don't build anything new. - Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type - rather than build_nonstandard_integer_type. - -2024-01-10 Hongyu Wang - - * config/i386/i386.opt: Adjust document. - * doc/invoke.texi: Add description for - -mapx-inline-asm-use-gpr32. - -2024-01-10 Juzhe-Zhong - - * config/riscv/autovec.md (avg3_floor): Remove. - (avg3_floor): New pattern. - (avg3_ceil): Remove. - (avg3_ceil): New pattern. - (uavg3_floor): Ditto. - (uavg3_ceil): Ditto. - * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition. - (enum insn_type): Ditto. - * config/riscv/riscv-v.cc: Ditto. - * config/riscv/vector-iterators.md (ashiftrt): Remove. - (ASHIFTRT): Ditto. - * config/riscv/vector.md: Add VLS modes. - -2024-01-10 Kewen Lin - - PR target/111480 - * config/rs6000/vsx.md (VCZLSBB): New int iterator. - (vczlsbb_char): New int attribute. - (vclzlsbb_, vctzlsbb_): Merge to ... - (vczlsbb_): ... this. - (*vctzlsbb_zext_): Rename to ... - (*vczlsbb_zext_): ... this, and extend it to - cover vclzlsbb. - -2024-01-10 Kewen Lin - - PR target/112606 - * config/rs6000/rs6000.md (copysign3 IEEE128): Change predicate - of the last argument from altivec_register_operand to any_operand. If - operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign - otherwise if it doesn't satisfy altivec_register_operand, force it to - REG using copy_to_mode_reg. - -2024-01-10 Kewen Lin - - PR middle-end/113100 - * builtins.cc (expand_builtin_stack_address): Guard stack point - adjustment with SPARC_STACK_BOUNDARY_HACK. - -2024-01-10 Yang Yujie - - * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc - argument string definitions. - * config/loongarch/loongarch-str.h: Same. - * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs - as aliases to -mexplicit-relocs={always,none} - * config/loongarch/loongarch.opt: Regenerate. - * config/loongarch/loongarch.cc: Same. - -2024-01-10 Yang Yujie - - * config/loongarch/loongarch-def.h: Define constants with - enums instead of Macros. - -2024-01-10 Yang Yujie - - * config/loongarch/genopts/loongarch-strings: Rename. - * config/loongarch/genopts/loongarch.opt.in: Same. - * config/loongarch/loongarch-cpu.cc: Same. - * config/loongarch/loongarch-def.cc: Same. - * config/loongarch/loongarch-def.h: Same. - * config/loongarch/loongarch-opts.cc: Same. - * config/loongarch/loongarch-opts.h: Same. - * config/loongarch/loongarch-str.h: Same. - * config/loongarch/loongarch.opt: Same. - -2024-01-10 Yang Yujie - - * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution - variable with the common la_ prefix. - * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution - flags as saved using TargetVariable. - * config/loongarch/loongarch.opt: Same. - * config/loongarch/loongarch-def.h: Define evolution_set to - mark changes to the -march default. - * config/loongarch/loongarch-driver.cc: Same. - * config/loongarch/loongarch-opts.cc: Same. - * config/loongarch/loongarch-opts.h: Define and use ISA evolution - conditions around the la_target structure. - * config/loongarch/loongarch.cc: Same. - * config/loongarch/loongarch.md: Same. - * config/loongarch/loongarch-builtins.cc: Same. - * config/loongarch/loongarch-c.cc: Same. - * config/loongarch/lasx.md: Same. - * config/loongarch/lsx.md: Same. - * config/loongarch/sync.md: Same. - -2024-01-09 Jeff Law - - * config/epiphany/constraints.md (Car): Allow -1024..1023, no more, - no less. - -2024-01-09 Richard Sandiford - - * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute. - -2024-01-09 Tamar Christina - - * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused - restart_loop. - (vectorizable_live_operation): Likewise. - -2024-01-09 Tamar Christina - - PR tree-optimization/113199 - * tree-vect-loop.cc (vectorizable_live_operation_1): Use - BIT_FIELD_REF. - -2024-01-09 Jakub Jelinek - - PR target/113270 - * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles. - * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern - GTY(()) declaration before the definition, drop GTY(()) drom the - definition. - -2024-01-09 Richard Biener - - PR tree-optimization/113026 - * tree-vect-loop-manip.cc (vect_do_peeling): Remove - redundant and wrong niter bound setting. Move niter - bound adjustment down. - -2024-01-09 Tamar Christina - - PR middle-end/113163 - * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): - Reject non-linear inductions that aren't supported. - -2024-01-09 Roger Sayle - - * config/arc/arc.cc (arc_shift_alg): New enumerated type for - left shift implementation strategies. - (arc_shift_info): Type for each entry of the shift strategy table. - (arc_shift_context_idx): Return a integer value for each code - generation context, used as an index - (arc_ashl_alg): Table indexed by context and shifted bit count. - (arc_split_ashl): Use the arc_ashl_alg table to select SImode - left shift implementation. - (arc_rtx_costs) : Use the arc_ashl_alg table to - provide accurate costs, when optimizing for speed or size. - -2024-01-09 Juzhe-Zhong - - * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check. - -2024-01-09 Julian Brown - - * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been - processed out before gimplification. - * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION. - * tree.def (OMP_ARRAY_SECTION): New tree code. - -2024-01-09 Jakub Jelinek - - PR tree-optimization/113210 - * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST - value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into - INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST - minus 1. - -2024-01-09 Eric Botcazou - - PR rtl-optimization/113140 - * reorg.cc (fill_slots_from_thread): If we are to branch after the - last instruction of the function, create an end label. - -2024-01-09 Roger Sayle - Hongtao Liu - - PR target/112992 - * config/i386/i386-expand.cc - (ix86_convert_const_wide_int_to_broadcast): Allow call to - ix86_expand_vector_init_duplicate to fail, and return NULL_RTX. - (ix86_broadcast_from_constant): Revert recent change; Return a - suitable MEMREF independently of mode/target combinations. - (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate - to decide whether expansion is possible/preferrable. Only try - forcing DImode constants to memory (and trying again) if calling - ix86_expand_vector_init_duplicate fails with an DImode immediate - constant. - (ix86_expand_vector_init_duplicate) : Try using - V4SImode for suitable immediate constants. - : Try using V8SImode for suitable constants. - : Fail for CONST_INT_P, i.e. use constant pool. - : Likewise. - : For CONST_INT_P try using V4SImode via widen. - : For CONT_INT_P try using V8HImode via widen. - _p_v16qi): Add attribute. + (arm_vcx1qv16qi): Likewise. + (arm_vcx1qav16qi): Likewise. + (arm_vcx1qv16qi): Likewise. + (arm_vcx2q_p_v16qi): Likewise. + (arm_vcx2qv16qi): Likewise. + (arm_vcx2qav16qi): Likewise. + (arm_vcx2qv16qi): Likewise. + (arm_vcx3q_p_v16qi): Likewise. + (arm_vcx3qv16qi): Likewise. + (arm_vcx3qav16qi): Likewise. + (arm_vcx3qv16qi): Likewise. + (@mve_q_): Likewise. + (@mve_q_int_): Likewise. + (@mve_q_v4si): Likewise. + (@mve_q_n_): Likewise. + (@mve_q_r_): Likewise. + (@mve_q_f): Likewise. + (@mve_q_m_): Likewise. + (@mve_q_m_n_): Likewise. + (@mve_q_m_r_): Likewise. + (@mve_q_m_f): Likewise. + (@mve_q_int_m_): Likewise. + (@mve_q_p_v4si): Likewise. + (@mve_q_p_): Likewise. + (@mve_q_): Likewise. + (@mve_q_f): Likewise. + (@mve_q_m_): Likewise. + (@mve_q_m_f): Likewise. + (mve_vq_f): Likewise. + (mve_q): Likewise. + (mve_q_f): Likewise. + (mve_vadciq_v4si): Likewise. + (mve_vadciq_m_v4si): Likewise. + (mve_vadcq_v4si): Likewise. + (mve_vadcq_m_v4si): Likewise. + (mve_vandq_): Likewise. + (mve_vandq_f): Likewise. + (mve_vandq_m_): Likewise. + (mve_vandq_m_f): Likewise. + (mve_vandq_s): Likewise. + (mve_vandq_u): Likewise. + (mve_vbicq_): Likewise. + (mve_vbicq_f): Likewise. + (mve_vbicq_m_): Likewise. + (mve_vbicq_m_f): Likewise. + (mve_vbicq_m_n_): Likewise. + (mve_vbicq_n_): Likewise. + (mve_vbicq_s): Likewise. + (mve_vbicq_u): Likewise. + (@mve_vclzq_s): Likewise. + (mve_vclzq_u): Likewise. + (@mve_vcmp_q_): Likewise. + (@mve_vcmp_q_n_): Likewise. + (@mve_vcmp_q_f): Likewise. + (@mve_vcmp_q_n_f): Likewise. + (@mve_vcmp_q_m_f): Likewise. + (@mve_vcmp_q_m_n_): Likewise. + (@mve_vcmp_q_m_): Likewise. + (@mve_vcmp_q_m_n_f): Likewise. + (mve_vctpq): Likewise. + (mve_vctpq_m): Likewise. + (mve_vcvtaq_): Likewise. + (mve_vcvtaq_m_): Likewise. + (mve_vcvtbq_f16_f32v8hf): Likewise. + (mve_vcvtbq_f32_f16v4sf): Likewise. + (mve_vcvtbq_m_f16_f32v8hf): Likewise. + (mve_vcvtbq_m_f32_f16v4sf): Likewise. + (mve_vcvtmq_): Likewise. + (mve_vcvtmq_m_): Likewise. + (mve_vcvtnq_): Likewise. + (mve_vcvtnq_m_): Likewise. + (mve_vcvtpq_): Likewise. + (mve_vcvtpq_m_): Likewise. + (mve_vcvtq_from_f_): Likewise. + (mve_vcvtq_m_from_f_): Likewise. + (mve_vcvtq_m_n_from_f_): Likewise. + (mve_vcvtq_m_n_to_f_): Likewise. + (mve_vcvtq_m_to_f_): Likewise. + (mve_vcvtq_n_from_f_): Likewise. + (mve_vcvtq_n_to_f_): Likewise. + (mve_vcvtq_to_f_): Likewise. + (mve_vcvttq_f16_f32v8hf): Likewise. + (mve_vcvttq_f32_f16v4sf): Likewise. + (mve_vcvttq_m_f16_f32v8hf): Likewise. + (mve_vcvttq_m_f32_f16v4sf): Likewise. + (mve_vdwdupq_m_wb_u_insn): Likewise. + (mve_vdwdupq_wb_u_insn): Likewise. + (mve_veorq_s>): Likewise. + (mve_veorq_u>): Likewise. + (mve_veorq_f): Likewise. + (mve_vidupq_m_wb_u_insn): Likewise. + (mve_vidupq_u_insn): Likewise. + (mve_viwdupq_m_wb_u_insn): Likewise. + (mve_viwdupq_wb_u_insn): Likewise. + (mve_vldrbq_): Likewise. + (mve_vldrbq_gather_offset_): Likewise. + (mve_vldrbq_gather_offset_z_): Likewise. + (mve_vldrbq_z_): Likewise. + (mve_vldrdq_gather_base_v2di): Likewise. + (mve_vldrdq_gather_base_wb_v2di_insn): Likewise. + (mve_vldrdq_gather_base_wb_z_v2di_insn): Likewise. + (mve_vldrdq_gather_base_z_v2di): Likewise. + (mve_vldrdq_gather_offset_v2di): Likewise. + (mve_vldrdq_gather_offset_z_v2di): Likewise. + (mve_vldrdq_gather_shifted_offset_v2di): Likewise. + (mve_vldrdq_gather_shifted_offset_z_v2di): Likewise. + (mve_vldrhq_): Likewise. + (mve_vldrhq_fv8hf): Likewise. + (mve_vldrhq_gather_offset_): Likewise. + (mve_vldrhq_gather_offset_fv8hf): Likewise. + (mve_vldrhq_gather_offset_z_): Likewise. + (mve_vldrhq_gather_offset_z_fv8hf): Likewise. + (mve_vldrhq_gather_shifted_offset_): Likewise. + (mve_vldrhq_gather_shifted_offset_fv8hf): Likewise. + (mve_vldrhq_gather_shifted_offset_z_): Likewise. + (mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise. + (mve_vldrhq_z_): Likewise. + (mve_vldrhq_z_fv8hf): Likewise. + (mve_vldrwq_v4si): Likewise. + (mve_vldrwq_fv4sf): Likewise. + (mve_vldrwq_gather_base_v4si): Likewise. + (mve_vldrwq_gather_base_fv4sf): Likewise. + (mve_vldrwq_gather_base_wb_v4si_insn): Likewise. + (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise. + (mve_vldrwq_gather_base_wb_z_v4si_insn): Likewise. + (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise. + (mve_vldrwq_gather_base_z_v4si): Likewise. + (mve_vldrwq_gather_base_z_fv4sf): Likewise. + (mve_vldrwq_gather_offset_v4si): Likewise. + (mve_vldrwq_gather_offset_fv4sf): Likewise. + (mve_vldrwq_gather_offset_z_v4si): Likewise. + (mve_vldrwq_gather_offset_z_fv4sf): Likewise. + (mve_vldrwq_gather_shifted_offset_v4si): Likewise. + (mve_vldrwq_gather_shifted_offset_fv4sf): Likewise. + (mve_vldrwq_gather_shifted_offset_z_v4si): Likewise. + (mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise. + (mve_vldrwq_z_v4si): Likewise. + (mve_vldrwq_z_fv4sf): Likewise. + (mve_vmvnq_s): Likewise. + (mve_vmvnq_u): Likewise. + (mve_vornq_): Likewise. + (mve_vornq_f): Likewise. + (mve_vornq_m_): Likewise. + (mve_vornq_m_f): Likewise. + (mve_vornq_s): Likewise. + (mve_vornq_u): Likewise. + (mve_vorrq_): Likewise. + (mve_vorrq_f): Likewise. + (mve_vorrq_m_): Likewise. + (mve_vorrq_m_f): Likewise. + (mve_vorrq_m_n_): Likewise. + (mve_vorrq_n_): Likewise. + (mve_vorrq_s): Likewise. + (mve_vorrq_s): Likewise. + (mve_vsbciq_v4si): Likewise. + (mve_vsbciq_m_v4si): Likewise. + (mve_vsbcq_v4si): Likewise. + (mve_vsbcq_m_v4si): Likewise. + (mve_vshlcq_): Likewise. + (mve_vshlcq_m_): Likewise. + (mve_vshrq_m_n_): Likewise. + (mve_vshrq_n_): Likewise. + (mve_vstrbq_): Likewise. + (mve_vstrbq_p_): Likewise. + (mve_vstrbq_scatter_offset__insn): Likewise. + (mve_vstrbq_scatter_offset_p__insn): Likewise. + (mve_vstrdq_scatter_base_v2di): Likewise. + (mve_vstrdq_scatter_base_p_v2di): Likewise. + (mve_vstrdq_scatter_base_wb_v2di): Likewise. + (mve_vstrdq_scatter_base_wb_p_v2di): Likewise. + (mve_vstrdq_scatter_offset_v2di_insn): Likewise. + (mve_vstrdq_scatter_offset_p_v2di_insn): Likewise. + (mve_vstrdq_scatter_shifted_offset_v2di_insn): Likewise. + (mve_vstrdq_scatter_shifted_offset_p_v2di_insn): Likewise. + (mve_vstrhq_): Likewise. + (mve_vstrhq_fv8hf): Likewise. + (mve_vstrhq_p_): Likewise. + (mve_vstrhq_p_fv8hf): Likewise. + (mve_vstrhq_scatter_offset__insn): Likewise. + (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise. + (mve_vstrhq_scatter_offset_p__insn): Likewise. + (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise. + (mve_vstrhq_scatter_shifted_offset__insn): Likewise. + (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise. + (mve_vstrhq_scatter_shifted_offset_p__insn): Likewise. + (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise. + (mve_vstrwq_v4si): Likewise. + (mve_vstrwq_fv4sf): Likewise. + (mve_vstrwq_p_v4si): Likewise. + (mve_vstrwq_p_fv4sf): Likewise. + (mve_vstrwq_scatter_base_v4si): Likewise. + (mve_vstrwq_scatter_base_fv4sf): Likewise. + (mve_vstrwq_scatter_base_p_v4si): Likewise. + (mve_vstrwq_scatter_base_p_fv4sf): Likewise. + (mve_vstrwq_scatter_base_wb_v4si): Likewise. + (mve_vstrwq_scatter_base_wb_fv4sf): Likewise. + (mve_vstrwq_scatter_base_wb_p_v4si): Likewise. + (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise. + (mve_vstrwq_scatter_offset_v4si_insn): Likewise. + (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise. + (mve_vstrwq_scatter_offset_p_v4si_insn): Likewise. + (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise. + (mve_vstrwq_scatter_shifted_offset_v4si_insn): Likewise. + (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise. + (mve_vstrwq_scatter_shifted_offset_p_v4si_insn): Likewise. + (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise. + +2024-03-04 Marek Polacek + + * doc/extend.texi: Update [[gnu::no_dangling]]. + +2024-03-04 Andrew Stubbs + + * dojump.cc (do_compare_and_jump): Use full-width integers for shifts. + * expr.cc (store_constructor): Likewise. + (do_store_flag): Likewise. + +2024-03-04 Mark Wielaard + + * common.opt.urls: Regenerate. + * config/avr/avr.opt.urls: Likewise. + * config/i386/i386.opt.urls: Likewise. + * config/pru/pru.opt.urls: Likewise. + * config/riscv/riscv.opt.urls: Likewise. + * config/rs6000/rs6000.opt.urls: Likewise. + +2024-03-04 Richard Biener + + PR tree-optimization/114197 + * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if + there are volatile bitfield accesses. + (pass_if_conversion::execute): Throw away result if the + if-converted and original loops are not nested as expected. + +2024-03-04 Richard Biener + + PR tree-optimization/114164 + * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if + the code generated for mask argument setup is not supported. + +2024-03-04 Richard Biener + + PR tree-optimization/114203 + * tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ + adjustment before making the result defined at zero. + +2024-03-04 Richard Biener + + PR tree-optimization/114192 + * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the + appropriate def for the live out stmt in case of an alternate + exit. + +2024-03-04 Jakub Jelinek + + PR middle-end/114209 + * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call + unshare_expr when creating a MEM_REF from MEM_REF. + (bitint_large_huge::lower_stmt): Call unshare_expr. + +2024-03-04 Jakub Jelinek + + PR target/114184 + * config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1 + is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or + register. + +2024-03-04 Roger Sayle + + PR target/114187 + * simplify-rtx.cc (simplify_context::simplify_subreg): Call + lowpart_subreg to perform type conversion, to avoid confusion + over the offset to use in the call to simplify_reg_subreg. + +2024-03-03 Greg McGary + + PR rtl-optimization/113010 + * combine.cc (simplify_comparison): Simplify a SUBREG on + WORD_REGISTER_OPERATIONS targets only if it is a zero-extending + MEM load. + +2024-03-03 Georg-Johann Lay + + * config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED. + Use bool in place of int for boolean logic (if possible). + Move declarations to definitions (if possible). + * config/avr/avr.md: Use C++ comments. Fix some indentation glitches. + * config/avr/avr-dimode.md: Same. + * config/avr/constraints.md: Same. + * config/avr/predicates.md: Same. + +2024-03-03 Uros Bizjak + + PR target/113720 + * config/alpha/alpha.md (umuldi3_highpart): Remove expander. + (*umuldi3_highpart_reg): Rename to umuldi3_highpart and + simplify insn RTX using UMUL_HIGHPART rtx_code. + (*umuldi3_highpart_const): Remove. + +2024-03-03 Georg-Johann Lay + + PR target/114100 + * config/avr/avr-protos.h (_reg_unused_after): Remove proto. + * config/avr/avr.cc (_reg_unused_after): Make static. And + add 3rd argument to skip the current insn. + (reg_unused_after): Adjust call of reg_unused_after. + (avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output + unneeded frame pointer adjustments. + +2024-03-03 Georg-Johann Lay + + PR target/92729 + * config/avr/avr.md (define_attr "cc"): Remove. + * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument + from prototype. + * config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and + its uses. Add insn argument. + (avr_out_plus_symbol): Remove pcc argument and its uses. + (avr_out_plus): Remove pcc argument and its uses. + Adjust calls of avr_out_plus_symbol and avr_out_plus_1. + (avr_out_round): Adjust call of avr_out_plus. + +2024-03-03 Georg-Johann Lay + + * config/avr/avr.cc (avr_init_cumulative_args): Fix a typo + from r14-9273. + +2024-03-03 Oleg Endo + + PR target/101737 + * config/sh/sh.cc (sh_is_nott_insn): Handle case where the input + is not an insn, but e.g. a code label. + +2024-03-02 Georg-Johann Lay + + * config/avr/avr.md (REG_0, ... REG_36): New define_constants. + * config/avr/avr.cc: Use them instead of magic numbers when it + means a register number. + +2024-03-02 Georg-Johann Lay + + * config/avr/avr.cc: Adjust some comments. + +2024-03-02 Georg-Johann Lay + + PR target/114100 + * config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust + the low part of the frame pointer with 8-bit stack pointer. + +2024-03-01 Patrick Palka + + PR c++/104919 + PR c++/106009 + * tree-inline.cc (remap_decl): Handle copy_decl returning the + original decl. + (remap_decls): Handle remap_decl returning the original decl. + (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and + CONST_DECL. + +2024-03-01 Jeff Law + + * config/riscv/riscv.md (zero_extendqi2_internal): Fix + type attribute. + (extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise. + (movdi_32bit, movdi_64bit, movsi_internal): Likewise. + (movhi_internal, movqi_internal): Likewise. + (movsf_softfloat, movsf_hardfloat): Likewise. + (movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise. + (movdf_softfloat): Likewise. + +2024-03-01 Marek Polacek + + PR c++/110358 + PR c++/109642 + * doc/extend.texi: Document gnu::no_dangling. + * doc/invoke.texi: Mention that gnu::no_dangling disables + -Wdangling-reference. + +2024-03-01 Georg-Johann Lay + + * config/avr/avr.opt: Overhaul help screen. + +2024-03-01 Jakub Jelinek + Tobias Burnus + + PR c++/110347 + * gimplify.cc (omp_notice_variable): Fix 'shared' arg to + lang_hooks.decls.omp_disregard_value_expr for + (first)private in target regions. + +2024-03-01 Jakub Jelinek + + PR middle-end/114136 + * calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set + n_named_args initially before INIT_CUMULATIVE_ARGS to + structure_value_addr_parm rather than 0, after it don't modify + it if strict_argument_naming and clear only if + !pretend_outgoing_varargs_named. + +2024-03-01 Jakub Jelinek + + PR debug/114015 + * dwarf2out.cc (should_move_die_to_comdat): Return false for + aggregates without DW_AT_byte_size attribute or with non-constant + DW_AT_byte_size. + +2024-03-01 Georg-Johann Lay + + * doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document + valid values for level. + +2024-03-01 Richard Biener + + PR middle-end/114070 + * match.pd ((c ? a : b) op d --> c ? (a op d) : (b op d)): + Allow the folding if before lowering and the current IL + isn't supported with vcond_mask. + +2024-03-01 xuli + + * config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc + attribute to riscv_attribute_table. + (riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function. + (riscv_fntype_abi): Add riscv_vector_cc attribute check. + * doc/extend.texi: Add riscv_vector_cc attribute description. + +2024-03-01 Pan Li + + PR target/112817 + * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace + RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL. + * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove. + (enum rvv_vector_bits_enum): New enum for different RVV vector bits. + * config/riscv/riscv-selftests.cc (riscv_run_selftests): Update + comments for option replacement. + * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of + riscv_autovec_preference to rvv_vector_bits. + (vls_mode_valid_p): Ditto. + (estimated_poly_value): Ditto. + * config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to + vector chunks and honor new option mrvv-vector-bits. + (riscv_override_options_internal): Update comments and rename the + vector chunks. + * config/riscv/riscv.opt: Add option mrvv-vector-bits and remove + internal option param=riscv-autovec-preference. + +2024-03-01 Jakub Jelinek + + * function.cc (assign_parms): Only call assign_parms_setup_varargs + early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty. + +2024-03-01 Jakub Jelinek + + PR middle-end/114156 + * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow + rhs1 of a VCE to have no underlying variable if it is a load and + handle that case. + +2024-02-29 David Malcolm + + PR analyzer/114159 + * function.cc (function_name): Make param const. + * function.h (function_name): Likewise. + +2024-02-29 Georg-Johann Lay + + PR target/114100 + * doc/invoke.texi (AVR Options) <-mfuse-add>: Document. + * config/avr/avr.opt (-mfuse-add=): New target option. + * common/config/avr/avr-common.cc (avr_option_optimization_table) + [OPT_LEVELS_1_PLUS]: Set -mfuse-add=1. + [OPT_LEVELS_2_PLUS]: Set -mfuse-add=2. + * config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass. + * config/avr/avr-protos.h (avr_split_tiny_move) + (make_avr_pass_fuse_add): New protos. + * config/avr/avr.md [AVR_TINY]: New post-reload splitter uses + avr_split_tiny_move to split indirect memory accesses. + (gen_move_clobbercc): New define_expand helper. + * config/avr/avr.cc (avr_pass_data_fuse_add): New pass data. + (avr_pass_fuse_add): New class from rtl_opt_pass. + (make_avr_pass_fuse_add, avr_split_tiny_move): New functions. + (reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions. + (avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets + of PLUS addressing for AVR_TINY. + (avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X. + (avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y. + (avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS. + +2024-02-29 Georg-Johann Lay + + PR target/114132 + * config/avr/avr.h (CUMULATIVE_ARGS) : New field. + * config/avr/avr.cc (avr_init_cumulative_args): Initialize it. + (avr_function_arg): Set it. + (avr_frame_pointer_required_p): Use it instead of .nregs. + +2024-02-29 Andrew Pinski + + PR target/108174 + * config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make + static and mark with GTY. + +2024-02-29 Xi Ruoyao + + * config/loongarch/loongarch.md + (loongarch__w__w_extended): New define_insn. + +2024-02-29 Xi Ruoyao + + * config/loongarch/loongarch.md (CRC): New define_int_iterator. + (crc): New define_int_attr. + (loongarch_crc_w__w, loongarch_crcc_w__w): Unify + into ... + (loongarch__w__w): ... here. + +2024-02-29 Kito Cheng + + PR target/114130 + * config/riscv/sync.md (atomic_compare_and_swap): Sign + extend the expected value if needed. + +2024-02-28 Cupertino Miranda + + * config.gcc (target_gtfiles): Change coreout to btfext-out. + (extra_objs): Change coreout to btfext-out. + * config/bpf/coreout.cc: Rename to btfext-out.cc. + * config/bpf/btfext-out.cc: Add. + * config/bpf/coreout.h: Rename to btfext-out.h. + * config/bpf/btfext-out.h: Add. + * config/bpf/core-builtins.cc: Change include. + * config/bpf/core-builtins.h: Change include. + * config/bpf/t-bpf: Accomodate renamed files. + +2024-02-28 Cupertino Miranda + + PR target/113453 + * config/bpf/bpf.cc (bpf_function_prologue): Define target + hook. + * config/bpf/coreout.cc (brf_ext_info_section) + (btf_ext_info): Move from coreout.h + (btf_ext_funcinfo, btf_ext_lineinfo): Add struct. + (bpf_core_reloc): Rename to btf_ext_core_reloc. + (btf_ext): Add static variable. + (btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN) + (bpf_create_or_find_funcinfo, bpt_create_core_reloc) + (btf_ext_add_string, btf_funcinfo_type_callback) + (btf_add_func_info_for, btf_validate_funcinfo) + (btf_ext_info_len, output_btfext_func_info): Add function. + (output_btfext_header, bpf_core_reloc_add) + (output_btfext_core_relocs, btf_ext_init, btf_ext_output): + Change to support new structs. + * config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo): + Move and change in coreout.cc. + (btf_add_func_info_for, btf_ext_add_string): Add prototypes. + +2024-02-28 Cupertino Miranda + + * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext + enabled by default for BPF. + (bpf_file_end): Call BTF deallocation. + (bpf_asm_init_sections): Correct condition. + * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF + deallocation. + (ctf_debuf_finish): Correct condition for calling + ctf_debug_finalize. + +2024-02-28 Cupertino Miranda + + * btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT. + (traverse_btf_func_types): Define function. + * ctfc.h (funcs_traverse_callback): Typedef for function + prototype. + (traverse_btf_func_types): Add prototype. + +2024-02-28 Cupertino Miranda + + * btfout.cc (btf_collect_dataset): Corrects BTF type id. + +2024-02-28 Richard Biener + + PR tree-optimization/113831 + PR tree-optimization/108355 + * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert + PR113831 fix. + +2024-02-28 Richard Biener + + PR tree-optimization/114121 + * tree-ssa-sccvn.h (vn_reference_s::offset, + vn_reference_s::max_size): New fields. + (vn_reference_insert_pieces): Adjust prototype. + * tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size. + * tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and + size, allow using "don't know" state. + (vn_walk_cb_data::finish): Pass along offset/max_size. + (vn_reference_lookup_or_insert_for_pieces): Take offset and + max_size as argument and use it. + (vn_reference_lookup_3): Properly adjust offset and max_size + according to the adjusted ao_ref. + (vn_reference_lookup_pieces): Initialize offset and max_size. + (vn_reference_lookup): Likewise. + (vn_reference_lookup_call): Likewise. + (vn_reference_insert): Likewise. + (visit_reference_op_call): Likewise. + (vn_reference_insert_pieces): Take offset and max_size + as argument and use it. + +2024-02-28 Juergen Christ + + PR tree-optimization/114075 + * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating + point vectors + +2024-02-28 Jakub Jelinek + + PR tree-optimization/114041 + * graphite-sese-to-poly.cc (add_conditions_to_domain): Check for + INTEGRAL_TYPE_P check rather than INTEGER_TYPE. + +2024-02-28 Jakub Jelinek + + PR tree-optimization/113988 + * stor-layout.h (bitwise_mode_for_size): Declare. + * stor-layout.cc (bitwise_mode_for_size): New function. + * gimple-fold.cc (gimple_fold_builtin_memory_op): Use it. + Use bitwise_type_for_mode instead of build_nonstandard_integer_type. + Use BITS_PER_UNIT instead of 8. + +2024-02-27 Uros Bizjak + + PR target/113871 + * config/i386/mmx.md (V248FI): Add V2BF mode. + (V24FI_32): Ditto. + +2024-02-27 Eric Botcazou + + * tree-ssa-dse.cc (compute_trims): Fix description. Return early + if either ref->offset is not byte aligned or ref->size is not known + to be equal to ref->max_size. + (maybe_trim_complex_store): Fix description. + (maybe_trim_constructor_store): Likewise. + (maybe_trim_partially_dead_store): Likewise. + +2024-02-27 Richard Earnshaw + + * config/arm/mmintrin.h: Warn if this header is included without + defining __ENABLE_DEPRECATED_IWMMXT. + +2024-02-27 Richard Biener + + PR tree-optimization/114074 + * tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL. + * tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs. + Handle poly vs. non-poly multiplication correctly with respect + to undefined behavior on overflow. + +2024-02-27 Jakub Jelinek + + PR rtl-optimization/114044 + * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use + DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN. + * internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS, + expand_PARITY): Declare. + * internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ, + expand_CTZ, expand_FFS, expand_PARITY): New functions. + (expand_POPCOUNT): Use expand_bitquery. + +2024-02-27 Richard Biener + + PR tree-optimization/114081 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Perform manual dominator update for prologue peeling. + (vect_do_peeling): Properly update dominators after adding the + prologue-around guard. + +2024-02-26 Georg-Johann Lay + + * config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args) + (mstrict-X): Tag as "Optimization". + +2024-02-26 Georg-Johann Lay + + * config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in + an "if avr_adiw_reg_p()" block that's dead for AVR_TINY. + +2024-02-26 Jakub Jelinek + H.J. Lu + + PR rtl-optimization/113617 + * varasm.cc (default_elf_select_rtx_section): For + references to private symbols in comdat sections + use .data.relro.local.pool., .data.relro.pool. + or .rodata. comdat sections. + +2024-02-26 Richard Biener + + PR tree-optimization/114099 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Create and fill in a needed virtual LC PHI for the alternate + exits. Remove code dealing with that missing. + +2024-02-26 Richard Biener + + PR tree-optimization/114068 + * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge): + New function. + (slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI + on the main exit if needed. Remove band-aid for the case + it was missing. + +2024-02-26 H.J. Lu + + PR target/114097 + * config/i386/i386-options.cc (ix86_set_func_type): Check + interrupt instead of noreturn attribute. + +2024-02-26 Jakub Jelinek + + * config/i386/i386.cc (ix86_bitint_type_info): Add support for + !TARGET_64BIT. + +2024-02-26 Jakub Jelinek + + PR tree-optimization/114090 + * match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x): + Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED + types. + ((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise. + +2024-02-26 Jakub Jelinek + + PR middle-end/114084 + * fold-const.cc (fold_binary_loc): Avoid the final associate_trees + if all subtrees of var0 come from one of the op0 or op1 operands + and all subtrees of con0 come from the other one. Don't clear + variables which are never used afterwards. + +2024-02-26 Richard Biener + + PR middle-end/114070 + * genmatch.cc (parser::parse_c_expr): Do not record operand + lists but only mark operators used. + * match.pd ((c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e)): + Properly guard the case of tcc_comparison changing the VEC_COND + value operand type. + +2024-02-26 Jakub Jelinek + + PR target/114094 + * config/i386/i386.cc (x86_function_profiler): Add missing new-line + to printed instruction. + +2024-02-26 H.J. Lu + + PR target/114098 + * config/i386/amxtileintrin.h (_tile_loadconfig): Use + __builtin_ia32_ldtilecfg. + (_tile_storeconfig): Use __builtin_ia32_sttilecfg. + * config/i386/i386-builtin.def (BDESC): Add + __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg. + * config/i386/i386-expand.cc (ix86_expand_builtin): Handle + IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG. + * config/i386/i386.md (ldtilecfg): New pattern. + (sttilecfg): Likewise. + +2024-02-24 Richard Sandiford + + PR tree-optimization/113205 + * tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject + the proposed layout if it does not allow a source partition with + layout 2 to keep that layout. + +2024-02-24 Jakub Jelinek + + * builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro. + * combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro. + * double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros. + * genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro. + (mk_attr_alt): Use HOST_WIDE_INT_0 macro. + * genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1 + macros. + * ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro. + * loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro. + * pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and + HOST_WIDE_INT_UC macros. + * rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro. + * tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro. + * tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro. + * tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U + macros. + * wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro. + * config/i386/constraints.md (define_constraint "L"): Use + HOST_WIDE_INT_C macro. + * config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C + macro. + (movl + movb peephole2): Likewise. + * config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise. + (const_32bit_mask): Likewise. + +2024-02-24 Jakub Jelinek + + PR middle-end/114073 + * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle + VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer + types like vector or complex types. + (gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral + types. Fix up VIEW_CONVERT_EXPR handling. Allow merging + VIEW_CONVERT_EXPR from non-integral/pointer types with a store. + +2024-02-23 Robin Dapp + + PR target/114028 + * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p): + Return false if inner mode is already Pmode. + (rvv_builder::is_all_same_sequence): New function. + (expand_vec_init): Emit broadcast if sequence is all same. + +2024-02-23 Richard Sandiford + + PR target/113613 + * config/aarch64/aarch64-early-ra.cc + (early_ra::m_current_region): New member variable. + (early_ra::m_fpr_recency): Likewise. + (early_ra::start_new_region): Bump m_current_region. + (early_ra::allocate_colors): Prefer less recently used registers + in the event of a tie. Add a comment to explain why we prefer(ed) + higher-numbered registers. + (early_ra::find_oldest_color): Prefer less recently used registers + here too. + (early_ra::finalize_allocation): Update recency information for + allocated registers. + (early_ra::process_blocks): Initialize m_current_region and + m_fpr_recency. + +2024-02-23 Richard Sandiford + + PR target/113295 + * config/aarch64/aarch64-early-ra.cc + (early_ra::test_strictness): New enum. + (early_ra::is_chain_candidate): Add a strictness parameter to + control whether only correctness matters, or whether both correctness + and heuristics should be used. Handle multiple levels of equivalence. + (early_ra::find_related_start): Update call accordingly. + (early_ra::strided_polarity_pref): Likewise. + (early_ra::form_chains): Likewise. + (early_ra::try_to_chain_allocnos): Use is_chain_candidate in + correctness mode rather than trying to inline the test. + +2024-02-23 Richard Sandiford + + PR target/113295 + * config/aarch64/aarch64-early-ra.cc + (early_ra::find_related_start): Account for definitions by shared + registers when testing for a single register definition. + (early_ra::accumulate_defs): New function. + (early_ra::record_copy): If A shares B's register, fold A's + definition information into B's. Fold A's use information into B's. + +2024-02-23 H.J. Lu + + * configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1 + if R_X86_64_CODE_6_GOTTPOFF is supported. + * config.in: Regenerated. + * configure: Likewise. + * config/i386/predicates.md (apx_ndd_add_memory_operand): Allow + UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported. + +2024-02-23 Richard Earnshaw + + PR target/108120 + * config/arm/neon.md (div3): Rename from div3. + Gate with ARM_HAVE_NEON__ARITH. + +2024-02-23 Jakub Jelinek + + PR rtl-optimization/114054 + * expr.cc (expand_expr_real_2) : Use + temp variable instead of target parameter for result. + +2024-02-23 Jakub Jelinek + + PR tree-optimization/114040 + * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow): + Use EQ_EXPR rather than LT_EXPR for g2 condition and change its + probability from likely to unlikely. When handling the true true + store, first cast to limb_access_type and then to l's type. + +2024-02-23 Richard Biener + + PR target/90785 + * config.gcc: Add ia64*-*-* to the list of obsoleted targets. + +2024-02-23 Palmer Dabbelt + + PR other/109668 + * config/riscv/arch-canonicalize: Move to python3 + * config/riscv/multilib-generator: Likewise + +2024-02-23 Palmer Dabbelt + + * doc/invoke.texi: Document -mcpu. + +2024-02-23 Lulu Cheng + + * configure: Regenerate. + * configure.ac: Add parameter "--fatal-warnings" to assemble + when checking whether the assemble support conditional branch + relaxation. + +2024-02-22 Jakub Jelinek + + PR c/114007 + * doc/extend.texi: (__extension__): Remove comments about scope + tokens vs. two colons. + +2024-02-22 Andrew Pinski + + PR tree-optimization/109804 + * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle + DEMANGLE_COMPONENT_UNNAMED_TYPE. + +2024-02-22 Richard Biener + + PR tree-optimization/114048 + * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF + can also produce -1 off. + +2024-02-22 Richard Biener + + PR tree-optimization/114027 + * tree-vect-loop.cc (vecctorizable_reduction): Use optimized + condition reduction classification only for single-element + chains. + +2024-02-22 Jakub Jelinek + + PR ipa/111960 + * profile-count.h (profile_count::dump): Remove overload with + char * first argument. + * profile-count.cc (profile_count::dump): Change overload with char * + first argument which uses sprintf into the overfload with FILE * + first argument and use fprintf instead. Remove overload which wrapped + it. + +2024-02-22 Jakub Jelinek + + PR tree-optimization/113993 + * tree-call-cdce.cc (get_no_error_domain): Handle + BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}. Handle + BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for + REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384 + the as the F128 suffixed cases, otherwise as non-suffixed ones. + Handle BUILT_IN_{EXP,POW}10L for + REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384 + as (-inf, 4932). + +2024-02-22 Jakub Jelinek + + PR tree-optimization/114038 + * gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix + loop exit condition if end is divisible by limb_prec. + +2024-02-22 YunQiang Su + + * doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix + problem of mabi=, mno-flush-func, mexplicit-relocs; + add missing leading - of mbranch-cost option. + * config/mips/mips.opt.urls: Regenerate. + +2024-02-22 Kewen Lin + + PR target/109987 + * config/rs6000/constraints.md (we): Update internal doc without + referring to option -mpower9-vector. + * config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector + special handlings. + * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS, + OTHER_P8_VECTOR_MASKS): Merge to ... + (OTHER_VSX_VECTOR_MASKS): ... here. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove + some error message handlings and explicit option mask adjustments on + explicit option power{8,9}-vector conflicting with other options. + (rs6000_print_isa_options): Update comments. + (rs6000_disable_incompatible_switches): Remove power{8,9}-vector + related array items and handlings. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector + special handlings. + * config/rs6000/rs6000.opt: Make option power{8,9}-vector as + WarnRemoved. + * doc/extend.texi: Remove documentation referring to option + -mpower8-vector. + * doc/invoke.texi: Remove documentation for option + -mpower{8,9}-vector and adjust some documentation referring to them. + * doc/md.texi: Update documentation for constraint we. + * doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok. + +2024-02-22 Pan Li + + PR target/114017 + * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade + the version to 0.12. + +2024-02-21 Edwin Lu + + * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert + +2024-02-21 Edwin Lu + Robin Dapp + + * config/riscv/generic-ooo.md (generic_ooo): Move reservation + (generic_ooo_vec_load): Ditto + (generic_ooo_vec_store): Ditto + (generic_ooo_vec_loadstore_seg): Ditto + (generic_ooo_vec_alu): Ditto + (generic_ooo_vec_fcmp): Ditto + (generic_ooo_vec_imul): Ditto + (generic_ooo_vec_fadd): Ditto + (generic_ooo_vec_fmul): Ditto + (generic_ooo_crypto): Ditto + (generic_ooo_perm): Ditto + (generic_ooo_vec_reduction): Ditto + (generic_ooo_vec_ordered_reduction): Ditto + (generic_ooo_vec_idiv): Ditto + (generic_ooo_vec_float_divsqrt): Ditto + (generic_ooo_vec_mask): Ditto + (generic_ooo_vec_vesetvl): Ditto + (generic_ooo_vec_setrm): Ditto + (generic_ooo_vec_readlen): Ditto + * config/riscv/riscv.md: Include generic-vector-ooo + * config/riscv/generic-vector-ooo.md: New file. To here + +2024-02-21 Edwin Lu + + * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation + (generic_ooo_branch): Ditto + * config/riscv/generic.md (generic_sfb_alu): Ditto + (generic_fmul_half): Ditto + * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types + * config/riscv/sifive-7.md (sifive_7_hfma): Add reservation + (sifive_7_popcount): Ditto + * config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto + * config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto + * config/riscv/vector.md: Change rdfrm to fmove + * config/riscv/zc.md: Change pushpop to load/store + +2024-02-21 Jonathan Wakely + + * doc/invoke.texi (Warning Options): Fix typos. + +2024-02-21 David Faust + + * config/bpf/bpf-protos.h (bpf_expand_cpymem): New. + * config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New. + * config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands. + +2024-02-21 Martin Jambor + + PR ipa/113476 + * ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust + initializers in the contructor. + (ipa_node_params::~ipa_node_params): Release lattices as a vector. + * ipa-cp.h: New file. + * ipa-cp.cc: Include sreal.h and ipa-cp.h. + (ipcp_value_source): Move to ipa-cp.h. + (ipcp_value_base): Likewise. + (ipcp_value): Likewise. + (ipcp_lattice): Likewise. + (ipcp_agg_lattice): Likewise. + (ipcp_bits_lattice): Likewise. + (ipcp_vr_lattice): Likewise. + (ipcp_param_lattices): Likewise. + (ipa_get_parm_lattices): Remove assert latticess is non-NULL. + (ipa_value_from_jfunc): Adjust a check for empty lattices. + (ipa_context_from_jfunc): Likewise. + (ipa_agg_value_from_jfunc): Likewise. + (merge_agg_lats_step): Do not memset new aggregate lattices to zero. + (ipcp_propagate_stage): Allocate lattices in a vector as opposed to + just in contiguous memory. + (ipcp_store_vr_results): Adjust a check for empty lattices. + * auto-profile.cc: Include sreal.h and ipa-cp.h. + * cgraph.cc: Likewise. + * cgraphclones.cc: Likewise. + * cgraphunit.cc: Likewise. + * config/aarch64/aarch64.cc: Likewise. + * config/i386/i386-builtins.cc: Likewise. + * config/i386/i386-expand.cc: Likewise. + * config/i386/i386-features.cc: Likewise. + * config/i386/i386-options.cc: Likewise. + * config/i386/i386.cc: Likewise. + * config/rs6000/rs6000.cc: Likewise. + * config/s390/s390.cc: Likewise. + * gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the + files to be included in gtype-desc.cc. + * gimple-range-fold.cc: Include sreal.h and ipa-cp.h. + * ipa-devirt.cc: Likewise. + * ipa-fnsummary.cc: Likewise. + * ipa-icf.cc: Likewise. + * ipa-inline-analysis.cc: Likewise. + * ipa-inline-transform.cc: Likewise. + * ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher. + * ipa-modref.cc: Include sreal.h and ipa-cp.h. + * ipa-param-manipulation.cc: Likewise. + * ipa-predicate.cc: Likewise. + * ipa-profile.cc: Likewise. + * ipa-prop.cc: Likewise. + (ipa_node_params_t::duplicate): Assert new lattices remain empty + instead of setting them to NULL. + * ipa-pure-const.cc: Include sreal.h and ipa-cp.h. + * ipa-split.cc: Likewise. + * ipa-sra.cc: Likewise. + * ipa-strub.cc: Likewise. + * ipa-utils.cc: Likewise. + * ipa.cc: Likewise. + * toplev.cc: Likewise. + * tree-ssa-ccp.cc: Likewise. + * tree-ssa-sccvn.cc: Likewise. + * tree-vrp.cc: Likewise. + +2024-02-21 Tamar Christina + + * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from + Armv8.7-a. + +2024-02-21 Richard Sandiford + + * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): + Use aarch64_gen_compare_zero_and_branch rather than emitting + a CBZ directly. + +2024-02-21 Richard Sandiford + + * config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p): + Remove duplicated call. + +2024-02-21 Richard Sandiford + + * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall): + Check that each individual piece of state is shared in the same + way, rather than using an aggregate check for PSTATE.ZA. + +2024-02-21 Richard Sandiford + + * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): + In the code that commits a lazy save, only zero ZA if the function + has ZA state. Similarly zero ZT0 if the function has ZT0 state. + +2024-02-21 Richard Sandiford + + * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove, + directly inserting the associated sequence + * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): + ...here instead. + +2024-02-21 Richard Sandiford + + PR target/113995 + * config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't + fold the SVE allocation into the initial allocation if the + initial allocation includes a VG save. + +2024-02-21 Richard Sandiford + + PR target/113220 + * cfgrtl.cc (commit_one_edge_insertion): Handle sequences that + contain jumps even if called after initial RTL expansion. + * mode-switching.cc: Include cfgbuild.h. + (optimize_mode_switching): Allow the sequence returned by the + emit hook to contain internal jumps. Record which blocks + contain such jumps and split the blocks at the end. + * config/aarch64/aarch64.cc (aarch64_mode_emit): Check for + non-debug insns when scanning the sequence. + +2024-02-21 Tobias Burnus + + * config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch. + * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise. + +2024-02-21 Dimitar Dimitrov + + * doc/invoke.texi (-mmcu): Add information about MCU specs. + +2024-02-21 Dimitar Dimitrov + + * doc/invoke.texi (-minrt): Clarify that main + must take no arguments. + +2024-02-20 Georg-Johann Lay + + * config/avr/builtins.def: Use function prototypes of given size + and signedness. + * config/avr/avr.cc (avr_init_builtins): Adjust types required + by builtins.def. + * doc/extend.texi (AVR Built-in Functions): Adjust accordingly. + +2024-02-20 Georg-Johann Lay + + * doc/extend.texi (AVR Built-in Functions): Use @defbuiltin + instead of @table. + +2024-02-20 Will Hawkins + + * config/bpf/bpf.opt: Add help information for -mcpu. + +2024-02-20 Richard Sandiford + + PR target/113805 + * config/aarch64/aarch64-passes.def (pass_late_track_speculation): + New pass. + * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation): + Declare. + * config/aarch64/aarch64.md (is_call): New attribute. + (*and3nr_compare0): Rename to... + (@aarch64_and3nr_compare0): ...this. + * config/aarch64/aarch64-sme.md (aarch64_get_sme_state) + (aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes. + * config/aarch64/aarch64-speculation.cc: Update file comment to + describe the new late pass. + (aarch64_do_track_speculation): Handle is_call insns like other calls. + (pass_track_speculation): Add an is_late member variable. + (pass_track_speculation::gate): Run the late pass for streaming- + compatible functions and the early pass for other functions. + (make_pass_track_speculation): Update accordingly. + (make_pass_late_track_speculation): New function. + * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New + function. + (aarch64_guard_switch_pstate_sm): Use it. + +2024-02-19 Iain Sandoe + + * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins): + Register these builtins with a pointer to uint64_t rather than unsigned + DI mode. + +2024-02-19 Thomas Schwinge + + PR target/113615 + * config/gcn/gcn-valu.md (define_expand "reduc__scal_"): + Conditionalize on '!TARGET_RDNA2_PLUS'. + * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn) + (gcn_expand_reduc_scalar): + 'gcc_checking_assert (!TARGET_RDNA2_PLUS);'. + +2024-02-19 Thomas Schwinge + + * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost + '__gfx90a__' target CPU definition. Add some safeguards for the future. + +2024-02-19 Richard Biener + + PR rtl-optimization/54052 + * rtl-ssa/blocks.cc (function_info::place_phis): Filter + local defs by LR_OUT. + +2024-02-19 Jakub Jelinek + + PR tree-optimization/113967 + * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require + in condition that @rpos is multiple of vector element size. + +2024-02-19 Juzhe-Zhong + + PR target/113696 + * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): + Suppress vsetvl fusion. + +2024-02-18 H.J. Lu + + PR target/113912 + * config/i386/i386.cc (ix86_can_use_push2pop2): New. + (ix86_pro_and_epilogue_can_use_push2pop2): Use it. + (ix86_emit_save_regs): Don't generate push2 if + ix86_can_use_push2pop2 return false. + (ix86_expand_epilogue): Don't generate pop2 if + ix86_can_use_push2pop2 return false. + +2024-02-18 Georg-Johann Lay + + * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel". + Note on complete device support. + +2024-02-18 Georg-Johann Lay + + * doc/extend.texi (AVR Function Attributes): Fuse description + of "signal" and "interrupt" attribute. Link pseudo instruction. + +2024-02-18 Lulu Cheng + + * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant + symbol type conversions. + (__cacop_d): Likewise. + (__cpucfg): Likewise. + (__asrtle_d): Likewise. + (__asrtgt_d): Likewise. + (__lddir_d): Likewise. + (__ldpte_d): Likewise. + (__crc_w_b_w): Likewise. + (__crc_w_h_w): Likewise. + (__crc_w_w_w): Likewise. + (__crc_w_d_w): Likewise. + (__crcc_w_b_w): Likewise. + (__crcc_w_h_w): Likewise. + (__crcc_w_w_w): Likewise. + (__crcc_w_d_w): Likewise. + (__csrrd_w): Likewise. + (__csrwr_w): Likewise. + (__csrxchg_w): Likewise. + (__csrrd_d): Likewise. + (__csrwr_d): Likewise. + (__csrxchg_d): Likewise. + (__iocsrrd_b): Likewise. + (__iocsrrd_h): Likewise. + (__iocsrrd_w): Likewise. + (__iocsrrd_d): Likewise. + (__iocsrwr_b): Likewise. + (__iocsrwr_h): Likewise. + (__iocsrwr_w): Likewise. + (__iocsrwr_d): Likewise. + (__frecipe_s): Likewise. + (__frecipe_d): Likewise. + (__frsqrte_s): Likewise. + (__frsqrte_d): Likewise. + +2024-02-18 Lulu Cheng + + * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the + function return value type to unsigned short. + +2024-02-16 Edwin Lu + + * doc/sourcebuild.texi: add scan-assembler-bound + +2024-02-16 Jason Merrill + + * gdbhooks.py: Fix regex syntax. + +2024-02-16 Richard Biener + + PR tree-optimization/113895 + * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable + consistency checking when there are out-of-bound array + accesses. Allow -1 off when from an array reference with + constant index. + +2024-02-16 Kito Cheng + + PR target/106543 + * config/riscv/riscv.md (*sge_): Fix asm + pattern. + +2024-02-16 Rainer Orth + + * doc/sourcebuild.texi (Effective-Target Keywords, Other + attribugs): Document linker_plugin. + (Require Support): Document dg-require-linker-plugin. + +2024-02-16 Kito Cheng + + PR target/109349 + * common/config/riscv/riscv-common.cc (riscv_arch_help): New. + * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New. + (RISCV_MINOR_VERSION_BASE): Ditto. + (RISCV_REVISION_VERSION_BASE): Ditto. + * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum + rather than magic number. + * config/riscv/riscv.h (riscv_arch_help): New. + (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help. + (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and + --print-supported-extensions. + * config/riscv/riscv.opt (march=help): New. + (print-supported-extensions): New. + (-print-supported-extensions): New. + * doc/invoke.texi (RISC-V Options): Document -march=help. + +2024-02-16 Tejas Belagod + + PR target/113780 + * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls + for indirect calls with 4 or more arguments in pac-enabled functions. + +2024-02-15 David Faust + + * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to + use ldxb instead of ldxh. + +2024-02-15 Jakub Jelinek + + PR middle-end/113921 + * cfgrtl.h (prepend_insn_to_edge): New declaration. + * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function + comment. + (prepend_insn_to_edge): New function. + * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of + insert_insn_on_edge. + +2024-02-15 Richard Biener + + PR tree-optimization/111156 + * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look + at the pattern stmt if any. + +2024-02-15 Georg-Johann Lay + + PR target/113927 + * config/avr/avr.h (AVR_HAVE_ADIW): New macro. + * config/avr/avr-protos.h (avr_adiw_reg_p): New proto. + * config/avr/avr.cc (avr_adiw_reg_p): New function. + (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS. + Replace test_hard_reg_class (ADDW_REGS, ...) with calls to + * config/avr/avr.md: Same. + (attr "isa") : Remove. + : Add. + (define_insn, define_insn_and_split): When an alternative has + constraint "w", then set attribute "isa" to "adiw". + * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]: + Built-in define __AVR_HAVE_ADIW__. + * doc/invoke.texi (AVR Options): Document it. + +2024-02-15 Andrew Stubbs + + * config/gcn/gcn-valu.md + (vec_extract): Add conditions for RDNA. + * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation + details are supported on RDNA devices. + +2024-02-15 Andrew Pinski + + PR middle-end/113508 + * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m}, + usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3, + smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3): + Add sentence about what the mode m is. + +2024-02-15 Andrew Pinski + + * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs, + smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the + var. + +2024-02-15 Richard Biener + + * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug + stmts. + +2024-02-15 Jakub Jelinek + + PR tree-optimization/113567 + * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge + _BitInt multiplication, division or modulo with + SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2 + force the affected inputs into a new SSA_NAME. + +2024-02-14 Uros Bizjak + + PR target/113871 + * config/i386/mmx.md (V248FI): New mode iterator. + (V24FI_32): DItto. + (vec_shl_): New expander. + (vec_shl_): Ditto. + (vec_shr_): Ditto. + (vec_shr_): Ditto. + * config/i386/sse.md (vec_shl_): Simplify expander. + (vec_shr_): Ditto. + +2024-02-14 Jan Hubicka + + PR tree-optimization/111054 + * tree-ssa-loop-split.cc (split_loop): Check for profile being present. + +2024-02-14 Tamar Christina + + * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations. + +2024-02-14 Richard Biener + + PR tree-optimization/113910 + * bitmap.cc (bitmap_hash): Mix the full element "hash" to + the hashval_t hash. + +2024-02-14 Jakub Jelinek + + * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined. + (pp_integer_with_precision): For unsigned ptrdiff_t printing + with u, o or x print ptrdiff_t argument converted to + unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1. + +2024-02-14 Richard Biener + + PR middle-end/113576 + * expr.cc (do_store_flag): For vector bool compares of vectors + with padding zero that. + * dojump.cc (do_compare_and_jump): Likewise. + +2024-02-14 Gerald Pfeifer + + * doc/install.texi (Prerequisites): Update gettext link. + +2024-02-13 H.J. Lu + + PR target/113876 + * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2): + Return false if the incoming stack isn't 16-byte aligned. + +2024-02-13 Tobias Burnus + + PR middle-end/113904 + * omp-general.cc (struct omp_ts_info): Update for splitting of + OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR. + * omp-selectors.h (enum omp_tp_type): Replace + OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR. + +2024-02-13 Monk Chiang + + PR target/113742 + * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix + recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI. + +2024-02-13 Richard Biener + + PR tree-optimization/113895 + * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track + offset to discover constant array indices in bits, handle + COMPONENT_REF to bitfields. + +2024-02-13 Richard Biener + + PR tree-optimization/113831 + * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix + typo in comment. + +2024-02-13 Richard Biener + + PR tree-optimization/113902 + * tree-vect-loop.cc (move_early_exit_stmts): Track + last_seen_vuse for VUSE updating. + +2024-02-13 Tamar Christina + + PR tree-optimization/113734 + * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of + an early break loop as partial. + +2024-02-13 Richard Biener + + PR tree-optimization/113898 + * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add + missing accumulated off adjustment. + +2024-02-13 Jakub Jelinek + + * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions, + instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare + it against UINT_MAX and ULONG_MAX. + +2024-02-13 David Malcolm + + * diagnostic-core.h (emit_diagnostic_valist): Rename overload + to... + (emit_diagnostic_valist_meta): ...this. + * diagnostic.cc (emit_diagnostic_valist): Likewise, to... + (emit_diagnostic_valist_meta): ...this. + +2024-02-12 Jakub Jelinek + + PR tree-optimization/113849 + * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use + fast path for widening casts where !m_upwards_2limb and lhs_type + has precision which is a multiple of limb_prec. + +2024-02-12 Jakub Jelinek + + PR c++/113674 + * attribs.cc (extract_attribute_substring): Remove. + (lookup_scoped_attribute_spec): Don't call it. + +2024-02-12 Jakub Jelinek + + * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED + and cast to fmt_size_t instead of %lu and cast to unsigned long. + +2024-02-12 Christophe Lyon + + * Makefile.in: Add no-info dependency. + * configure.ac: Set BUILD_INFO=no-info if makeinfo is not + available. + * configure: Regenerate. + +2024-02-12 Iain Sandoe + + PR target/113855 + * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be + available to all sub-targets. + * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete. + * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete. + +2024-02-12 Richard Biener + + PR tree-optimization/113831 + PR tree-optimization/108355 + * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When + we see variable array indices and get_ref_base_and_extent + can resolve those to constants fix up the ops to constants + as well. + (ao_ref_init_from_vn_reference): Use 'off' member for + ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it. + (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF. + +2024-02-12 Pan Li + + * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): + Replace args to arguments for misspelled term. + +2024-02-12 Georg-Johann Lay + + PR target/112944 + * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]: + <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init + when not linked with -mrodata-in-ram. + +2024-02-12 Richard Biener + + PR tree-optimization/113863 + * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): + Record crossed virtual PHIs. + * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed + virtual PHIs. + +2024-02-10 Marek Polacek + + DR 2237 + PR c++/107126 + PR c++/97202 + * doc/invoke.texi: Document -Wtemplate-id-cdtor. + +2024-02-10 Jakub Jelinek + + * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix + computation of idx for i == 4 of bitint_prec_huge. + +2024-02-10 Jakub Jelinek + + PR middle-end/110754 + * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE + decls create PARM_DECL with pointer to original type, set + TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE, + DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared. + (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls + wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF. + (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR + of the var as argument. + +2024-02-10 Jakub Jelinek + + * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for + size_t and precision 4 for ptrdiff_t. Formatting fix. + (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers. + Formatting fixes. + (test_pp_format): Test t and z modifiers. + * gcc.cc (read_specs): Use %td instead of %ld and casts to long. + +2024-02-10 Jakub Jelinek + + * ipa-icf.cc (sem_item_optimizer::process_cong_reduction, + sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED + and casts to fmt_size_t instead of "%lu" and casts to unsigned long. + * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC + and casts to fmt_size_t instead of "%ld" and casts to long. + (print_value_expr_statistics, print_type_hash_statistics): Likewise. + * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED + instead of "%lu" and casts to unsigned long. + * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to + unsigned long. + * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC + and casts to fmt_size_t instead of "%ld" and casts to long. + * cfgexpand.cc (dump_stack_var_partition): Use + HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu" + and casts to unsigned long. + * gengtype.cc (adjust_field_rtx_def): Likewise. + * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC + and casts to fmt_size_t instead of "%ld" and casts to long. + * postreload-gcse.cc (dump_hash_table): Likewise. + * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED + and casts to fmt_size_t instead of "%lu" and casts to unsigned long. + (ggc_internal_alloc, ggc_free): Likewise. + * genpreds.cc (write_lookup_constraint_1): Likewise. + (write_insn_constraint_len): Likewise. + * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC + and casts to fmt_size_t instead of "%ld" and casts to long. + * varasm.cc (output_constant_pool_contents): Use + HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long. + * var-tracking.cc (dump_var): Likewise. + +2024-02-09 Jakub Jelinek + + PR tree-optimization/113783 + * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look + through VIEW_CONVERT_EXPR for final cast checks. Handle + VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE + INTEGER_TYPEs. + (gimple_lower_bitint): Don't merge mergeable operations or other + casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs. + * expr.cc (expand_expr_real_1): Don't use convert_modes if either + mode is BLKmode. + +2024-02-09 Jakub Jelinek + + * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC, + HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX, + HOST_SIZE_T_PRINT_HEX_PURE): Define. + * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting + fixes. + +2024-02-09 Jakub Jelinek + + PR middle-end/113415 + * cfgexpand.cc (expand_asm_stmt): For asm goto, use + duplicate_insn_chain to duplicate after_rtl_seq sequence instead + of hand written loop with emit_insn of copy_insn and emit original + after_rtl_seq on the last edge. + +2024-02-09 Jakub Jelinek + + PR tree-optimization/113818 + * gimple-lower-bitint.cc (add_eh_edge): New function. + (bitint_large_huge::handle_load, + bitint_large_huge::lower_mergeable_stmt, + bitint_large_huge::lower_muldiv_stmt): Use it. + +2024-02-09 Jakub Jelinek + + PR tree-optimization/113774 + * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't + emit any comparison if m_first and low + 1 is equal to + m_upwards_2limb, simplify condition for that. If not + single_comparison, not m_first and we can prove that the idx <= low + comparison will be always true, emit instead of idx <= low + comparison low <= low such that cfg cleanup will optimize it at + the end of the pass. + +2024-02-08 Aldy Hernandez + + PR tree-optimization/113735 + * value-relation.cc (equiv_oracle::add_equiv_to_block): Call + limit_check(). + +2024-02-08 Georg-Johann Lay + + * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New. + (main, print_mcu, diagnose_mrodata_in_ram): Pass it down. + +2024-02-08 H.J. Lu + + PR target/113711 + PR target/113733 + * config/i386/constraints.md: List all constraints with j prefix. + (j>): Change auto-dec to auto-inc in documentation. + (je): Changed to a memory constraint with APX NDD TLS operand + check. + (jM): New memory constraint for APX NDD instructions. + (jO): Likewise. + * config/i386/i386-protos.h (x86_poff_operand_p): Removed. + * config/i386/i386.cc (x86_poff_operand_p): Likewise. + * config/i386/i386.md (*add3_doubleword): Use rjO. + (*add_1[SWI48]): Use je and jM. + (addsi_1_zext): Use jM. + (*addv4_doubleword_1[DWI]): Likewise. + (*sub_1[SWI]): Use jM. + (@add3_cc_overflow_1[SWI]): Likewise. + (*add3_doubleword_cc_overflow_1): Use rjO. + (*and3_doubleword): Likewise. + (*anddi_1): Use jM. + (*andsi_1_zext): Likewise. + (*and_1[SWI24]): Likewise. + (*3_doubleword[any_or]): Use rjO + (*code_1[any_or SWI248]): Use jM. + (*si_1_zext[zero_extend + any_or]): Likewise. + * config/i386/predicates.md (apx_ndd_memory_operand): New. + (apx_ndd_add_memory_operand): Likewise. + +2024-02-08 Georg-Johann Lay + + PR target/113824 + * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4. + * doc/avr-mmcu.texi: Rebuild. + +2024-02-08 Tamar Christina + + PR tree-optimization/113808 + * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the + value cross iterations. + +2024-02-08 Georg-Johann Lay + + * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always + defines __AVR_PM_BASE_ADDRESS__ if the core has it. + +2024-02-08 Richard Biener + + * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): + Revert last change to dr_may_alias_p. + +2024-02-08 Georg-Johann Lay + + * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to + cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram. + Remove spec asm_misc. + * config/avr/specs.h: Same. + +2024-02-08 Pan Li + + PR target/113766 + * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make + sure the c.arg_num is >= 2 before checking. + (struct build_frm_base): Ditto. + (struct narrow_alu_def): Ditto. + +2024-02-07 Richard Biener + + PR tree-optimization/113796 + * tree-if-conv.cc (combine_blocks): Wipe range-info before + replacing PHIs and inserting predicates. + +2024-02-07 Roger Sayle + Uros Bizjak + + PR target/113690 + * config/i386/i386-features.cc (timode_convert_cst): New helper + function to convert a TImode CONST_SCALAR_INT_P to a V1TImode + CONST_VECTOR. + (timode_scalar_chain::convert_op): Use timode_convert_cst. + (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes. + Use timode_convert_cst. + +2024-02-07 Victor Do Nascimento + + * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. + * config/aarch64/aarch64.h (AARCH64_FL_AIE): New. + (AARCH64_FL_DEBUGv8p9): Likewise. + (AARCH64_FL_FGT2): Likewise.Likewise. + (AARCH64_FL_ITE): Likewise. + (AARCH64_FL_PFAR): Likewise. + (AARCH64_FL_PMUv3_ICNTR): Likewise. + (AARCH64_FL_PMUv3_SS): Likewise. + (AARCH64_FL_PMUv3p9): Likewise. + (AARCH64_FL_RASv2): Likewise. + (AARCH64_FL_S1PIE): Likewise. + (AARCH64_FL_S1POE): Likewise. + (AARCH64_FL_S2PIE): Likewise. + (AARCH64_FL_S2POE): Likewise. + (AARCH64_FL_SCTLR2): Likewise. + (AARCH64_FL_SEBEP): Likewise. + (AARCH64_FL_SPE_FDS): Likewise. + (AARCH64_FL_TCR2): Likewise. + +2024-02-07 Richard Biener + + * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): + Only check whether reads are in-bound in places that are not safe. + Fix dependence check. Add missing newline. Clarify comments. + +2024-02-07 Tamar Christina + + PR tree-optimization/113750 + * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check + for single predecessor when doing early break vect. + * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but + after labels. + +2024-02-07 Tamar Christina + + PR tree-optimization/113731 + * gimple-iterator.cc (gsi_move_before): Take new parameter for update + method. + * gimple-iterator.h (gsi_move_before): Default new param to + GSI_SAME_STMT. + * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with + GSI_NEW_STMT. + +2024-02-07 Jakub Jelinek + + PR tree-optimization/113756 + * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS, + use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from + of lh_bits value and mask. + +2024-02-07 Jakub Jelinek + + PR tree-optimization/113753 + * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with + UNSIGNED rather than SIGNED. If high or needs_overflow and prec is + not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec + so that they start with r[half_blocks_needed] lowest bit. Fix up + computation of top mask for SIGNED. + +2024-02-07 Pan Li + + PR target/113766 + * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust + the signature of func. + * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto. + * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make + overloaded func with empty args error. + +2024-02-06 H.J. Lu + + PR target/113689 + * config/i386/i386.cc (x86_64_select_profile_regnum): Return + R10_REG after sorry. + +2024-02-06 Andrew Carlotti + + * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name): + Move before new caller, and add ".default" suffix. + (get_suffixed_assembler_name): New. + (make_resolver_func): Use get_suffixed_assembler_name. + (aarch64_generate_version_dispatcher_body): Redo name mangling. + +2024-02-06 Jakub Jelinek + + PR target/113763 + * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles + element from std::pair to an unnamed struct. + Adjust uses of tile range variable. + +2024-02-06 Juzhe-Zhong + + * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation. + (pre_vsetvl::remove_vsetvl_pre_insns): Ditto. + +2024-02-06 Jakub Jelinek + + PR sanitizer/110676 + * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address + reset maxlen to sizetype maximum. + +2024-02-06 Jakub Jelinek + + PR tree-optimization/113736 + * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use + var's address space for MEM_REF or VIEW_CONVERT_EXPRs. + +2024-02-06 Jakub Jelinek + + PR tree-optimization/113759 + * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision + or from_unsignedN differs from properties of typeN, update typeN + to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not + uselessly convertible to typeN, convert it using fold_convert or + build_and_insert_cast depending on if rhsN is INTEGER_CST or not. + (convert_plusminus_to_widen): Likewise. + +2024-02-06 Tejas Belagod + + PR target/112577 + * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit + vector structure modes correctly. + +2024-02-05 Christoph Müllner + + * config/riscv/thead.cc (th_print_operand_address): Fix compiler + warning. + +2024-02-05 H.J. Lu + + PR target/113689 + * config/i386/i386.cc (x86_64_select_profile_regnum): New. + (x86_function_profiler): Call x86_64_select_profile_regnum to + get a scratch register for large model profiling. + +2024-02-05 Richard Ball + + * config/arm/arm.cc (arm_output_mi_thunk): Emit + insn for bti_c when bti is enabled. + +2024-02-05 Xi Ruoyao + + * config/mips/mips-msa.md (neg2): Add missing mode for + neg. + +2024-02-05 Xi Ruoyao + + * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr. + (neg2): Change the mode iterator from MSA to IMSA because + in FP arithmetic we cannot use (0 - x) for -x. + (neg2): New define_insn to implement FP vector negation, + using a bnegi instruction to negate the sign bit. + +2024-02-05 Richard Biener + + PR tree-optimization/113707 + * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After + checking the avail set treat out-of-region defines as + available. + +2024-02-05 Richard Biener + + * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use + the default mode when building a pointer. + +2024-02-05 Jakub Jelinek + + PR tree-optimization/113737 + * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH + has just a single label, remove it and make single successor edge + EDGE_FALLTHRU. + +2024-02-05 Jakub Jelinek + + PR target/113059 + * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper): + Remove REG_DEAD/REG_UNUSED notes at the end of the pass before + df_analyze call. + +2024-02-05 Richard Biener + + PR target/113255 + * config/i386/i386-expand.cc + (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves): + Use a new pseudo for the skipped number of bytes. + +2024-02-05 Monk Chiang + + * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670. + * doc/invoke.texi (RISC-V Options): Add sifive-p450, + sifive-p670. + +2024-02-05 Monk Chiang + + * config/riscv/riscv.md: Include sifive-p400.md. + * config/riscv/sifive-p400.md: New file. + * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter. + * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): + Add sifive_p400. + * config/riscv/riscv.cc (sifive_p400_tune_info): New. + * config/riscv/riscv.h (TARGET_SFB_ALU): Update. + * doc/invoke.texi (RISC-V Options): Add sifive-p400-series + +2024-02-04 Takayuki 'January June' Suwa + + * config/xtensa/xtensa.md (*eqne_zero_masked_bits): + Add missing ":SI" to the match_operator. + +2024-02-04 Takayuki 'January June' Suwa + + * config/xtensa/xtensa.md (SHI): New mode iterator. + (2 split patterns related to constsynth): + Change to also accept HImode operands. + +2024-02-04 Jeff Law + + * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG + similarly. + +2024-02-04 Xi Ruoyao + + * config/loongarch/lsx.md (neg2): Remove the + incorrect expand. + * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr. + (elmsgnbit): Likewise. + (neg2): New define_insn. + * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they + are now instantiated in simd.md. + +2024-02-04 Xi Ruoyao + + * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not + use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is + MAX_MACHINE_MODE. + +2024-02-04 Li Wei + + * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust. + (loongarch_expand_vselect_vconcat): Ditto. + (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement + all 128-bit constant permutation situations. + (loongarch_expand_lsx_shuffle): Adjust and rename function name. + (loongarch_is_imm_set_shuffle): Renamed function name. + (loongarch_expand_vec_perm_even_odd): Function forward declaration. + (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit + extract-even and extract-odd permutations. + (loongarch_is_odd_extraction): Delete. + (loongarch_is_even_extraction): Ditto. + (loongarch_expand_vec_perm_const): Adjust. + +2024-02-03 Jakub Jelinek + + PR middle-end/113722 + * wide-int.cc (wi::bswap_large): Rename third argument from + len to xlen and adjust use in safe_uhwi. Add len variable, set + it to BLOCKS_NEEDED (precision) and use it for clearing of val + and as canonize argument. Clear val using memset instead of + a loop. + +2024-02-03 Jakub Jelinek + + * ggc-common.cc (gt_pch_save): Allow addr to be equal to + mmi.preferred_base + mmi.size - sizeof (void *). + +2024-02-03 Xi Ruoyao + + * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare. + * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove + the ODR-violating locale declaration. + +2024-02-02 Tamar Christina + + PR tree-optimization/113588 + PR tree-optimization/113467 + * tree-vect-data-refs.cc + (vect_analyze_data_ref_dependence): Choose correct dest and fix checks. + (vect_analyze_early_break_dependences): Update comments. + +2024-02-02 John David Anglin + + PR target/59778 + * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR + and PA_BUILTIN_SET_FPSR builtins. + * (pa_builtins_icode): Declare. + * (def_builtin, pa_fpu_init_builtins): New. + * (pa_init_builtins): Initialize FPU builtins. + * (pa_builtin_decl, pa_expand_builtin_1): New. + * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and + PA_BUILTIN_SET_FPSR builtins. + * (pa_atomic_assign_expand_fenv): New. + * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New + UNSPECV constants. + (get_fpsr, put_fpsr): New expanders. + (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New + insn patterns. + +2024-02-02 Juzhe-Zhong + + PR target/113697 + * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move. + +2024-02-02 Jonathan Wakely + + * doc/extend.texi (Common Type Attributes): Fix typo in + description of hardbool. + +2024-02-02 Jakub Jelinek + + PR tree-optimization/113692 + * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts + from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as + final_cast_p. + +2024-02-02 Jakub Jelinek + + PR middle-end/113699 + * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle + uninitialized large/huge _BitInt SSA_NAME inputs. + +2024-02-02 Jakub Jelinek + + PR middle-end/113705 + * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from + around wi::to_wide in order to compare value in prec precision. + +2024-02-02 Lehua Ding + + Revert: + 2024-02-02 Juzhe-Zhong + + * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation. + +2024-02-02 Juzhe-Zhong + + * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation. + +2024-02-02 Pan Li + + * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments. + (riscv_pass_by_reference): Ditto. + (riscv_fntype_abi): Ditto. + +2024-02-02 Juzhe-Zhong + + * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function. + (pre_vsetvl::cleaup): Remove vsetvl_pre. + (pre_vsetvl::remove_vsetvl_pre_insns): New function. + +2024-02-02 Jiahao Xu + + * config/loongarch/larchintrin.h + (__frecipe_s): Update function return type. + (__frecipe_d): Ditto. + (__frsqrte_s): Ditto. + (__frsqrte_d): Ditto. + +2024-02-02 Li Wei + + * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New. + (loongarch_vector_costs::add_stmt_cost): Adjust. + +2024-02-02 Xi Ruoyao + + * config/loongarch/loongarch.md (unspec): Add + UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2. + (la_pcrel64_two_parts): New define_insn. + * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a + typo in the comment. + (loongarch_call_tls_get_addr): If -mcmodel=extreme + -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for + addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL + note to allow CSE addressing __tls_get_addr. + (loongarch_legitimize_tls_address): If -mcmodel=extreme + -mexplicit-relocs={always,auto}, address TLS IE symbols with + la_pcrel64_two_parts. + (loongarch_split_symbol): If -mcmodel=extreme + -mexplicit-relocs={always,auto}, address symbols with + la_pcrel64_two_parts. + (loongarch_output_mi_thunk): Clean up unreachable code. If + -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI + thunks with la_pcrel64_two_parts. + +2024-02-02 Lulu Cheng + + * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr): + Add support for call36. + +2024-02-02 Lulu Cheng + + * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p): + When the code model of the symbol is extreme and -mexplicit-relocs=auto, + the macro instruction loading symbol address is not applicable. + (loongarch_call_tls_get_addr): Adjust code. + (loongarch_legitimize_tls_address): Likewise. + +2024-02-02 Lulu Cheng + + * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p): + Add function declaration. + * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p): + For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend" + is not allowed + (loongarch_load_tls): Added macro support in extreme mode. + (loongarch_call_tls_get_addr): Likewise. + (loongarch_legitimize_tls_address): Likewise. + (loongarch_force_address): Likewise. + (loongarch_legitimize_move): Likewise. + (loongarch_output_mi_thunk): Likewise. + (loongarch_option_override_internal): Remove the code that detects + explicit relocs status. + (loongarch_handle_model_attribute): Likewise. + * config/loongarch/loongarch.md (movdi_symbolic_off64): New template. + * config/loongarch/predicates.md (symbolic_off64_operand): New predicate. + (symbolic_off64_or_reg_operand): Likewise. + +2024-02-02 Lulu Cheng + + * config/loongarch/loongarch.cc (loongarch_load_tls): + Load all types of tls symbols through one function. + (loongarch_got_load_tls_gd): Delete. + (loongarch_got_load_tls_ld): Delete. + (loongarch_got_load_tls_ie): Delete. + (loongarch_got_load_tls_le): Delete. + (loongarch_call_tls_get_addr): Modify the called function name. + (loongarch_legitimize_tls_address): Likewise. + * config/loongarch/loongarch.md (@got_load_tls_gd): Delete. + (@load_tls): New template. + (@got_load_tls_ld): Delete. + (@got_load_tls_le): Delete. + (@got_load_tls_ie): Delete. + +2024-02-02 Lulu Cheng + + * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function. + (loongarch_legitimize_address): Add logical transformation code. + +2024-02-01 Marek Polacek + + * doc/invoke.texi: Update -Wdangling-reference documentation. + +2024-02-01 Uros Bizjak + + PR target/113701 + * config/i386/i386.md (*cmp_doubleword): + Do not force SUBREG pieces to pseudos. + +2024-02-01 John David Anglin + + * config/pa/pa.md (atomic_storedi_1): Fix bug in + alternative 1. + +2024-02-01 Georg-Johann Lay + + * config/avr/avr.cc: Tabify. + +2024-02-01 Richard Ball + + PR tree-optimization/111268 + * tree-vect-slp.cc (vectorizable_slp_permutation_1): + Add variable-length check for vector input arguments + to a function. + +2024-02-01 Thomas Schwinge + + * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't + hard-code number of SGPR/VGPR/AVGPR registers. + * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of + SGPR/VGPR/AVGPR registers. + +2024-02-01 Monk Chiang + + * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type + attribute, and include sifive-p600.md. + * config/riscv/generic-ooo.md: Update type attribute. + * config/riscv/generic.md: Update type attribute. + * config/riscv/sifive-7.md: Update type attribute. + * config/riscv/sifive-p600.md: New file. + * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter. + * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): + Add sifive_p600. + * config/riscv/riscv.cc (sifive_p600_tune_info): New. + * config/riscv/riscv.h (TARGET_SFB_ALU): Update. + * doc/invoke.texi (RISC-V Options): Add sifive-p600-series + +2024-02-01 Monk Chiang + + * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs, + Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items. + * config/riscv/riscv.opt: New macro for 7 new unprivileged + extensions. + * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs, + Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions. + +2024-02-01 Rainer Orth + + * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless + -static-libasan. Add missing whitespace. + +2024-02-01 Thomas Schwinge + + * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG) + (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG): + Don't 'define_constants'. + +2024-02-01 Thomas Schwinge + + * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove. + +2024-02-01 Thomas Schwinge + + * config/gcn/gcn.md (sync_compare_and_swap_lds_insn) + [TARGET_RDNA3]: Adjust. + +2024-02-01 Richard Biener + + PR tree-optimization/113693 + * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail + data when available. + +2024-02-01 Jakub Jelinek + Jason Merrill + + PR c++/113531 + * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls + on variables which were promoted to TREE_STATIC. + +2024-02-01 Roger Sayle + Richard Biener + + PR target/113560 + * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range + information via tree_non_zero_bits to check if this operand + is suitably extended for a widening (or highpart) multiplication. + (convert_mult_to_widen): Insert explicit casts if the RHS or LHS + isn't already of the claimed type. + +2024-02-01 Edwin Lu + + Revert: + 2024-02-01 Edwin Lu + + * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation + (generic_ooo_branch): ditto + * config/riscv/generic.md (generic_sfb_alu): ditto + (generic_fmul_half): ditto + * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types + * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation + (sifive_7_popcount): ditto + * config/riscv/vector.md: change rdfrm to fmove + * config/riscv/zc.md: change pushpop to load/store + +2024-02-01 Edwin Lu + + Revert: + 2024-02-01 Edwin Lu + Robin Dapp + + * config/riscv/generic-ooo.md (generic_ooo): Move reservation + (generic_ooo_vec_load): ditto + (generic_ooo_vec_store): ditto + (generic_ooo_vec_loadstore_seg): ditto + (generic_ooo_vec_alu): ditto + (generic_ooo_vec_fcmp): ditto + (generic_ooo_vec_imul): ditto + (generic_ooo_vec_fadd): ditto + (generic_ooo_vec_fmul): ditto + (generic_ooo_crypto): ditto + (generic_ooo_perm): ditto + (generic_ooo_vec_reduction): ditto + (generic_ooo_vec_ordered_reduction): ditto + (generic_ooo_vec_idiv): ditto + (generic_ooo_vec_float_divsqrt): ditto + (generic_ooo_vec_mask): ditto + (generic_ooo_vec_vesetvl): ditto + (generic_ooo_vec_setrm): ditto + (generic_ooo_vec_readlen): ditto + * config/riscv/riscv.md: include generic-vector-ooo + * config/riscv/generic-vector-ooo.md: New file. to here + +2024-02-01 Edwin Lu + + Revert: + 2024-02-01 Edwin Lu + + * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert + +2024-02-01 Edwin Lu + + * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert + +2024-02-01 Edwin Lu + Robin Dapp + + * config/riscv/generic-ooo.md (generic_ooo): Move reservation + (generic_ooo_vec_load): ditto + (generic_ooo_vec_store): ditto + (generic_ooo_vec_loadstore_seg): ditto + (generic_ooo_vec_alu): ditto + (generic_ooo_vec_fcmp): ditto + (generic_ooo_vec_imul): ditto + (generic_ooo_vec_fadd): ditto + (generic_ooo_vec_fmul): ditto + (generic_ooo_crypto): ditto + (generic_ooo_perm): ditto + (generic_ooo_vec_reduction): ditto + (generic_ooo_vec_ordered_reduction): ditto + (generic_ooo_vec_idiv): ditto + (generic_ooo_vec_float_divsqrt): ditto + (generic_ooo_vec_mask): ditto + (generic_ooo_vec_vesetvl): ditto + (generic_ooo_vec_setrm): ditto + (generic_ooo_vec_readlen): ditto + * config/riscv/riscv.md: include generic-vector-ooo + * config/riscv/generic-vector-ooo.md: New file. to here + +2024-02-01 Edwin Lu + + * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation + (generic_ooo_branch): ditto + * config/riscv/generic.md (generic_sfb_alu): ditto + (generic_fmul_half): ditto + * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types + * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation + (sifive_7_popcount): ditto + * config/riscv/vector.md: change rdfrm to fmove + * config/riscv/zc.md: change pushpop to load/store + +2024-02-01 Andrew Pinski + + PR target/113657 + * config/aarch64/aarch64-simd.md (split for movv8di): + For strict aligned mode, use DImode instead of TImode. + +2024-01-31 Robin Dapp + + PR middle-end/113607 + * match.pd: Make sure else values match when folding a + vec_cond into a conditional operation. + +2024-01-31 Marek Polacek + + * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14. + +2024-01-31 Tamar Christina + Matthew Malcomson + + PR sanitizer/112644 + * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and + memcmp. + * builtins.cc (expand_builtin): Include HWASAN when checking for + builtin inlining. + +2024-01-31 Richard Biener + + PR middle-end/110176 + * match.pd (zext (bool) <= (int) 4294967295u): Make sure + to match INTEGER_CST only without outstanding conversion. + +2024-01-31 Alex Coplan + + PR target/111677 + * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use + V16QImode for the full 16-byte FPR saves in the vector PCS case. + +2024-01-31 Richard Biener + + PR tree-optimization/111444 + * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use + vn_reference_lookup_2 when optimistically skipping may-defs. + +2024-01-31 Richard Biener + + PR tree-optimization/113630 + * tree-ssa-pre.cc (compute_avail): Avoid registering a + reference with a representation with not matching base + access size. + +2024-01-31 Jakub Jelinek + + PR rtl-optimization/113656 + * simplify-rtx.cc (simplify_context::simplify_unary_operation_1) + : Fix up last argument to simplify_gen_unary. + +2024-01-31 Jakub Jelinek + + PR debug/113637 + * dwarf2out.cc (loc_list_from_tree_1): Assume integral types + with BLKmode are larger than DWARF2_ADDR_SIZE. + +2024-01-31 Jakub Jelinek + + PR tree-optimization/113639 + * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): + For VIEW_CONVERT_EXPR set rhs1 to its operand. + +2024-01-31 Richard Biener + + PR tree-optimization/113670 + * tree-vect-data-refs.cc (vect_check_gather_scatter): + Make sure we can take the address of the reference base. + +2024-01-31 Georg-Johann Lay + + * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787, + ATA5835, ATtiny64AUTO, ATA5700M322. + * doc/avr-mmcu.texi: Rebuild. + +2024-01-31 Alexandre Oliva + + PR debug/113394 + * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust + caller. + +2024-01-31 Alexandre Oliva + + PR middle-end/112917 + PR middle-end/113100 + * builtins.cc (expand_builtin_stack_address): Use + STACK_ADDRESS_OFFSET. + * doc/extend.texi (__builtin_stack_address): Adjust. + * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define. + * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document. + * doc/tm.texi: Rebuilt. + +2024-01-31 Juzhe-Zhong + + PR target/113495 + * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove. + (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue. + (pre_vsetvl::compute_transparent): New function. + (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue. + +2024-01-30 Fangrui Song + + PR target/105576 + * config/i386/constraints.md: Define constraint "Ws". + * doc/md.texi: Document it. + +2024-01-30 Marek Polacek + + PR c++/110358 + PR c++/109640 + * doc/invoke.texi: Update -Wdangling-reference description. + +2024-01-30 Takayuki 'January June' Suwa + + * config/xtensa/constraints.md (R, T, U): + Change define_constraint to define_memory_constraint. + * config/xtensa/predicates.md (move_operand): Don't check that a + constant pool operand size is a multiple of UNITS_PER_WORD. + * config/xtensa/xtensa.cc + (xtensa_lra_p, TARGET_LRA_P): Remove. + (xtensa_emit_move_sequence): Remove "if (reload_in_progress)" + clause as it can no longer be true. + (fixup_subreg_mem): Drop function. + (xtensa_output_integer_literal_parts): Consider 16-bit wide + constants. + (xtensa_legitimate_constant_p): Add short-circuit path for + integer load instructions. Don't check that mode size is + at least UNITS_PER_WORD. + * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p() + rather reload_in_progress and reload_completed. + (doloop_end): Drop operand 2. + (movhi_internal): Add alternative loading constant from a + literal pool. + (define_split for DI register_operand): Don't limit to + !TARGET_AUTO_LITPOOLS. + * config/xtensa/xtensa.opt (mlra): Change to no effect. + +2024-01-30 Pan Li + + * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to + calculate the gpr count required by vls mode. + (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode. + (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr + for vls mode. + (riscv_get_arg_info): Add vls mode handling. + (riscv_pass_by_reference): Return false if arg info has no zero gpr count. + +2024-01-30 Richard Biener + + PR tree-optimization/113659 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Handle main exit without virtual use. + +2024-01-30 Christoph Müllner + + * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum. + +2024-01-30 Iain Sandoe + + PR libgcc/113403 + * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New. + (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec. + * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New. + * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New. + * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New. + * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New. + +2024-01-30 Richard Sandiford + + PR target/113623 + * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns): + Mark all registers that occur in addresses as needing a GPR. + +2024-01-30 Richard Sandiford + + PR target/113636 + * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take + the containing insn as an extra parameter. Reset debug instructions + if they reference a register that is no longer used by real insns. + (early_ra::apply_allocation): Update calls accordingly. + +2024-01-30 Jakub Jelinek + + PR tree-optimization/113603 + * tree-ssa-strlen.cc (strlen_pass::handle_store): After + count_nonzero_bytes call refetch si using get_strinfo in case it + has been unshared in the meantime. + +2024-01-30 Jakub Jelinek + + PR middle-end/101195 + * except.cc (expand_builtin_eh_return_data_regno): If which doesn't + fit into unsigned HOST_WIDE_INT, return constm1_rtx. + +2024-01-30 Jin Ma + + * config/riscv/thead.cc (th_print_operand_address): Change %ld + to %lld. + +2024-01-29 Manos Anagnostakis + Manolis Tsamis + Philipp Tomsich + + * config/aarch64/aarch64-ldpstp.md: Remove unused mode. + * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp): + Likewise. + * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): + Call on framework moved later. + +2024-01-29 Jose E. Marchesi + + * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return + instruction in naked function epilogues. + +2024-01-29 YunQiang Su + + PR target/113655 + * configure.ac: Fix typo gcc_cv_as_mips_explicit should be + gcc_cv_as_mips_explicit_relocs. + * configure: Regnerated. + +2024-01-29 Matthieu Longo + + PR target/108933 + * config/arm/arm.md (arm_rev16si2): Convert to define_insn. + Correct generated RTL. + (arm_rev16si2_alt1): Correctly handle conditional execution. + (arm_rev16si2_alt2): Likewise. + +2024-01-29 Richard Biener + + PR middle-end/113622 + * expr.cc (expand_assignment): Spill hard registers if + we index them with a variable offset. + +2024-01-29 Richard Biener + + PR middle-end/113622 + * gimple-isel.cc (gimple_expand_vec_set_extract_expr): + Also allow DECL_HARD_REGISTER variables. + +2024-01-29 Alex Coplan + + PR target/113616 + * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add): + Use iterate_safely when iterating over debug uses. + (fixup_debug_uses): Likewise. + (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate + over nondebug insns instead of manually maintaining the next insn. + * iterator-utils.h (class safe_iterator): New. + (iterate_safely): New. + +2024-01-29 H.J. Lu + + PR target/38534 + * config/i386/i386-options.cc (ix86_set_func_type): Save + callee-saved registers in noreturn functions for -O0/-Og. + +2024-01-29 Tobias Burnus + + PR target/113615 + * config/gcn/gcn-valu.md (fold_left_plus_): Only + define for !TARGET_RDNA2_PLUS. + +2024-01-29 Richard Sandiford + + PR target/113281 + * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove + workaround for right shifts. + (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR. + (vect_determine_precisions_from_range): Be more selective about + which codes can be narrowed based on their input and output ranges. + For shifts, require at least one more bit of precision than the + maximum shift amount. + +2024-01-29 Tobias Burnus + + * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a. + +2024-01-29 Tobias Burnus + + * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+, + but keep requiring only newlib 4.3+ and, if gfx1100 is disabled, + LLVM 13.0.1+. + +2024-01-29 Tobias Burnus + + PR other/111966 + * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New. + (SET_SRAM_ECC_UNSUPPORTED): Renamed to ... + (SET_SRAM_ECC_UNSET): ... this. + (copy_early_debug_info): Remove gfx900 special case, now handled as + part of the generic handling. + (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h. + +2024-01-29 Jakub Jelinek + + PR tree-optimization/110603 + * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect + setting of pdata->maxlen to vr.upper_bound (which is unconditionally + overwritten anyway). Avoid creating invalid range with minlen + larger than maxlen. Formatting fix. + +2024-01-29 Richard Biener + + PR debug/103047 + * tree-inline.cc (initialize_inlined_parameters): Reverse + the decl chain of inlined parameters. + +2024-01-28 Iain Sandoe + + * config/darwin.cc (darwin_build_constant_cfstring): Prevent over- + alignment of CFString constants by setting DECL_USER_ALIGN. + +2024-01-28 Iain Sandoe + Jakub Jelinek + + PR libgcc/113402 + * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED + and BUILT_IN_GCC_NESTED_PTR_DELETED. + * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED, + BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and + rename the library fallbacks to __gcc_nested_func_ptr_created and + __gcc_nested_func_ptr_deleted. + * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created + and __gcc_nested_func_ptr_deleted. + * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for + BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED. + * tree.cc (build_common_builtin_nodes): Build the + BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local + builtins only for non-explicit. + +2024-01-28 YunQiang Su + + * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option. + +2024-01-27 H.J. Lu + + PR target/38534 + * config/i386/i386-options.cc (ix86_set_func_type): Don't + save and restore callee saved registers for a noreturn function + with nothrow or compiled with -fno-exceptions. + +2024-01-27 H.J. Lu + + PR target/103503 + PR target/113312 + * config/i386/i386-expand.cc (ix86_expand_call): Replace + no_caller_saved_registers check with call_saved_registers check. + Clobber all registers that are not used by the callee with + no_callee_saved_registers attribute. + * config/i386/i386-options.cc (ix86_set_func_type): Set + call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for + noreturn function. Disallow no_callee_saved_registers with + interrupt or no_caller_saved_registers attributes together. + (ix86_set_current_function): Replace no_caller_saved_registers + check with call_saved_registers check. + (ix86_handle_no_caller_saved_registers_attribute): Renamed to ... + (ix86_handle_call_saved_registers_attribute): This. + (ix86_gnu_attributes): Add + ix86_handle_call_saved_registers_attribute. + * config/i386/i386.cc (ix86_conditional_register_usage): Replace + no_caller_saved_registers check with call_saved_registers check. + (ix86_function_ok_for_sibcall): Don't allow callee with + no_callee_saved_registers attribute when the calling function + has callee-saved registers. + (ix86_comp_type_attributes): Also check + no_callee_saved_registers. + (ix86_epilogue_uses): Replace no_caller_saved_registers check + with call_saved_registers check. + (ix86_hard_regno_scratch_ok): Likewise. + (ix86_save_reg): Replace no_caller_saved_registers check with + call_saved_registers check. Don't save any registers for + TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with + TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with + no_callee_saved_registers attribute is called. + (find_drap_reg): Replace no_caller_saved_registers check with + call_saved_registers check. + * config/i386/i386.h (call_saved_registers_type): New enum. + (machine_function): Replace no_caller_saved_registers with + call_saved_registers. + * doc/extend.texi: Document no_callee_saved_registers attribute. + +2024-01-27 Jakub Jelinek + + PR tree-optimization/113614 + * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge + widening casts from signed to unsigned types with TRUNC_DIV_EXPR, + TRUNC_MOD_EXPR or FLOAT_EXPR uses. + +2024-01-27 Jakub Jelinek + + PR tree-optimization/113568 + * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): + For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1 + in the widening extension checks. + +2024-01-27 Jakub Jelinek + + * gimple-lower-bitint.cc (gimple_lower_bitint): For + TDF_DETAILS dump mapping of SSA_NAMEs to decls. + +2024-01-26 Hans-Peter Nilsson + + * cgraphunit.cc (process_function_and_variable_attributes): Tweak + the warning for an attribute-always_inline without inline declaration. + +2024-01-26 Robin Dapp + + PR other/113575 + * genopinit.cc (main): Split init_all_optabs into functions + of 1000 patterns each. + +2024-01-26 Tobias Burnus + + * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to + TM_MULTILIB_CONFIG. + * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100. + * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to + -march/-mtune. + +2024-01-26 Andrew Stubbs + + * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3. + * config/gcn/gcn-valu.md (all_convert): New iterator. + (2): New + define_expand, and rename the old one to ... + (*_sdwa): ... this. + (extend2): Likewise, to ... + (extend_sdwa): .. this. + (*_shift): New. + * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly. + (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100. + * config/gcn/gcn.md (mulhisi3): Disable on RDNA3. + (mulqihi3_scalar): Likewise. + +2024-01-26 Richard Biener + + PR tree-optimization/113602 + * tree-data-ref.cc (dr_analyze_innermost): Fail when + the base object isn't addressable. + +2024-01-26 Tobias Burnus + + * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the + "--amdhsa-code-object-version=" argument. + (ASM_SPEC): Use it; replace previous version of it. + +2024-01-26 Juzhe-Zhong + + * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes. + (pre_vsetvl::emit_vsetvl): Ditto. + +2024-01-26 Jiahao Xu + + * config/loongarch/lasx.md (vec_extract_0): + New define_insn_and_split patten. + +2024-01-26 Jiahao Xu + + * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. + +2024-01-26 Li Wei + + * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust. + +2024-01-26 Juzhe-Zhong + + PR target/113469 + * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug. + +2024-01-26 Andrew Pinski + + PR target/100212 + * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid + undefined shift after the call to exact_log2. + +2024-01-25 Andrew Pinski + + PR target/100204 + * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT` + before taking the negative of it. + +2024-01-25 Vladimir N. Makarov + + PR target/113526 + * lra-constraints.cc (curr_insn_transform): Change class even for + spilled pseudo successfully matched with with NO_REGS. + +2024-01-25 Georg-Johann Lay + + PR target/113601 + * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start. + +2024-01-25 Szabolcs Nagy + + PR target/112987 + * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New. + (aarch64_expand_epilogue): Use the new function. + (aarch64_split_compare_and_swap): Likewise. + (aarch64_split_atomic_op): Likewise. + +2024-01-25 Robin Dapp + + PR middle-end/112971 + * fold-const.cc (simplify_const_binop): New function for binop + simplification of two constant vectors when element-wise + handling is not necessary. + (const_binop): Call new function. + +2024-01-25 Mary Bennett + + * common/config/riscv/riscv-common.cc: Add XCVbitmanip. + * config/riscv/constraints.md: Likewise. + * config/riscv/corev.def: Likewise. + * config/riscv/corev.md: Likewise. + * config/riscv/predicates.md: Likewise. + * config/riscv/riscv-builtins.cc (AVAIL): Likewise. + * config/riscv/riscv-ftypes.def: Likewise. + * config/riscv/riscv.opt: Likewise. + * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'. + * doc/extend.texi: Add XCVbitmanip builtin documentation. + * doc/sourcebuild.texi: Likewise. + +2024-01-25 Tobias Burnus + + * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument. + +2024-01-25 Yanzhang Wang + + PR target/113538 + * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag. + (riscv_fntype_abi): Ditto. + * config/riscv/riscv.opt: Ditto. + +2024-01-25 Jakub Jelinek + + PR middle-end/113574 + * convert.cc (convert_to_integer_1) : Compare shift + count against TYPE_PRECISION rather than TYPE_SIZE. + +2024-01-25 Richard Sandiford + + PR target/113572 + * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same): + Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT + +2024-01-25 Richard Sandiford + + PR target/113550 + * config/aarch64/aarch64-simd.md: In the movv8di splitter, check + whether each split instruction is a load that clobbers the source + address. Emit that instruction last if so. + +2024-01-25 Richard Sandiford + + PR target/113485 + * config/aarch64/aarch64-simd.md (aarch64_zip1_low): New + pattern. + (2): Use it instead of generating a + paradoxical subreg for the input. + +2024-01-25 Juzhe-Zhong + + * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function. + (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all + predecessors dump information. + +2024-01-25 Juzhe-Zhong + + * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove + redundant full available computation. + (pre_vsetvl::pre_global_vsetvl_info): Ditto. + +2024-01-25 Jakub Jelinek + + * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns. + * doc/rtl.texi (CONST_VECTOR): Likewise. + +2024-01-25 Juzhe-Zhong + + * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option. + * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto. + (pass_vsetvl::execute): Ditto. + * config/riscv/riscv.opt: Ditto. + +2024-01-25 Jiahao Xu + + * config/loongarch/lasx.md (@vec_concatz): Remove this define_insn pattern. + * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat. + +2024-01-25 Richard Biener + + PR tree-optimization/113576 + * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow + exits with may_be_zero niters when its the last one. + +2024-01-25 Lulu Cheng + + * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p): + For symbols of type tls, non-zero Offset is not generated. + +2024-01-25 Haochen Gui + + * config/rs6000/rs6000-string.cc (expand_block_compare): Enable + P9 with m32 and mpowerpc64. + +2024-01-25 liuhongt + + * config/i386/i386-options.cc (ix86_option_override_internal): + Enable -mlam=u57 by default when compiled with + -fsanitize=hwaddress. + +2024-01-25 Palmer Dabbelt + + * common/config/riscv/riscv-common.cc (riscv_implied_info): + Remove {"ztso", "a"}. + +2024-01-24 Martin Jambor + + PR ipa/108007 + PR ipa/112616 + * cgraph.h (cgraph_edge): Add a parameter to + redirect_call_stmt_to_callee. + * ipa-param-manipulation.h (ipa_param_adjustments): Add a + parameter to modify_call. + (ipa_release_ssas_in_hash): Declare. + * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New + parameter killed_ssas, pass it to padjs->modify_call. + * ipa-param-manipulation.cc (purge_all_uses): New function. + (ipa_param_adjustments::modify_call): New parameter killed_ssas. + Instead of substituting uses, invoke purge_all_uses. If + hash of killed SSAs has not been provided, create a temporary one + and release SSAs that have been added to it. + (compare_ssa_versions): New function. + (ipa_release_ssas_in_hash): Likewise. + * tree-inline.cc (redirect_all_calls): Create + id->killed_new_ssa_names earlier, pass it to edge redirection, + adjust a comment. + (copy_body): Release SSAs in id->killed_new_ssa_names. + +2024-01-24 Andrew Pinski + + PR target/113486 + * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For + TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno. + +2024-01-24 Monk Chiang + + PR target/113095 + * config/riscv/sfb.md: New splitters to rewrite single bit + sign extension as the condition to SFB instructions. + +2024-01-24 Jan Hubicka + + PR middle-end/88345 + * common.opt: (flimit-function-alignment): Reorder alphabeticaly + (fmin-function-alignment): New parameter. + * doc/invoke.texi: (-fmin-function-alignment): Document. + (-falign-functions,-falign-loops,-falign-labels): Mention that + aglinments are ignored in cold code. + * varasm.cc (assemble_start_function): Handle min-function-alignment. + +2024-01-24 Tamar Christina + + PR target/109636 + * config/aarch64/aarch64-simd.md (div3, + mulv2di3): Remove. + * config/aarch64/iterators.md (VQDIV): Remove. + (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI, + SVE_I_SIMD_DI): New. + (VPRED, sve_lane_con): Add V4SI and V2DI. + * config/aarch64/aarch64-sve.md (3, + @aarch64_pred_): Support Advanced SIMD types. + (mul3): New, split from 3. + (@aarch64_pred_, *post_ra_3): New. + * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_, + *aarch64_mul_unpredicated_): Change SVE_FULL_HSDI to + SVE_FULL_HSDI_SIMD_DI. + +2024-01-24 Tamar Christina + + PR tree-optimization/113552 + * config/aarch64/aarch64.cc + (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1. + +2024-01-24 Martin Jambor + + PR ipa/113490 + * ipa-cp.cc (ipcp_lattice::add_value): Bail out if value + count is equal or greater than the limit. Use the limit from the + callee. + +2024-01-24 YunQiang Su + + * configure.ac: Detect the explicit relocs support for + mips, and define C macro MIPS_EXPLICIT_RELOCS. + * config.in: Regenerated. + * configure: Regenerated. + * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs. + * config/mips/mips-opts.h: Define enum mips_explicit_relocs. + * config/mips/mips.cc(mips_set_compression_mode): Sorry if + !TARGET_EXPLICIT_RELOCS instead of just set it. + * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and + TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs. + * config/mips/mips.opt: Introduce -mexplicit-relocs= option + and define -m(no-)explicit-relocs as aliases. + +2024-01-24 Alex Coplan + + * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default + to 1. + (-mlate-ldp-fusion): Likewise. + +2024-01-24 Tamar Christina + + * tree-vect-loop.cc (vect_get_vect_def, + vect_create_epilog_for_reduction): Rename main_exit_p to + last_val_reduc_p. + +2024-01-24 Tamar Christina + + PR tree-optimization/113364 + * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all + early exits then we must reduce from the first offset for all of them. + +2024-01-24 Juzhe-Zhong + + PR target/113495 + * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove. + (get_regno): Ditto. + (get_bb_index): Ditto. + (pre_vsetvl::compute_avl_def_data): Ditto. + (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage. + (pre_vsetvl::pre_global_vsetvl_info): Ditto. + +2024-01-23 Andrew Pinski + Richard Sandiford + + PR target/100942 + * ccmp.cc (ccmp_candidate_p): Add outer argument. + Allow if the outer is true and the lhs is used more + than once. + (expand_ccmp_expr): Update call to ccmp_candidate_p. + * expr.h (expand_expr_real_gassign): Declare. + * expr.cc (expand_expr_real_gassign): New function, split out from... + (expand_expr_real_1): ...here. + * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign. + +2024-01-23 Alex Coplan + + PR target/113089 + * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New. + (fixup_debug_use): New. + (fixup_debug_uses_trailing_add): New. + (fixup_debug_uses): New. Use it ... + (ldp_bb_info::fuse_pair): ... here. + (try_promote_writeback): Call fixup_debug_uses_trailing_add to + fix up debug uses of the base register that are affected by + folding in the trailing add insn. + +2024-01-23 Alex Coplan + + PR target/113089 + * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair): + Update trailing nondebug uses of the base register in the case + of cancelling writeback. + +2024-01-23 Alex Coplan + + PR target/113089 + * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New. + (debug_insn_use_iterator): New. + (set_info::first_debug_insn_use): New. + (set_info::debug_insn_uses): New. + * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New. + (set_info::first_debug_insn_use): New. + (set_info::debug_insn_uses): New. + +2024-01-23 Alex Coplan + + PR target/113356 + * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair): + Don't record hazards against the opposite insn in the pair. + +2024-01-23 Alex Coplan + + PR target/113070 + * config/aarch64/aarch64-ldp-fusion.cc + (struct stp_change_builder): New. + (decide_stp_strategy): Reanme to ... + (try_repurpose_store): ... this. + (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to + construct stp changes. Fix up uses when inserting new stp insns. + +2024-01-23 Alex Coplan + + PR target/113070 + * rtl-ssa.h: Include hash-set.h. + * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add + new_sets parameter and use it to keep track of new user-created sets. + (function_info::apply_changes_to_insn): Also call add_def on new sets. + (function_info::change_insns): Add hash_set to keep track of new + user-created defs. Plumb it through. + * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and + apply_changes_to_insn. + +2024-01-23 Alex Coplan + + PR target/113070 + * rtl-ssa/accesses.cc (function_info::create_use): New. + * rtl-ssa/changes.cc (function_info::finalize_new_accesses): + Ensure new uses end up referring to permanent defs. + * rtl-ssa/functions.h (function_info::create_use): Declare. + +2024-01-23 Alex Coplan + + PR target/113070 + * rtl-ssa/changes.cc (function_info::change_insns): Split out the call + to finalize_new_accesses from the backwards placement loop, run it + forwards in a separate loop. + +2024-01-23 Richard Biener + + PR tree-optimization/113552 + * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use + floor_log2 instead of exact_log2 on the number of calls. + +2024-01-23 Jeff Law + Jakub Jelinek + + * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to + decl. + +2024-01-23 Richard Biener + + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Separate single and multi-exit case when creating PHIs between + the main and epilogue. + +2024-01-23 Richard Sandiford + + PR target/112989 + * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip + MODE_single variants of functions that don't take tuple arguments. + +2024-01-23 Alex Coplan + + PR target/113114 + * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback): + Don't assert recog success, just punt if the writeback pair + isn't recognized. + +2024-01-23 Jakub Jelinek + + * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add + ATTRIBUTE_UNUSED to decl. + +2024-01-23 Richard Biener + + PR debug/107058 + * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully + handle unexpected but bogus DIE contexts when not checking + enabled. + +2024-01-23 Jakub Jelinek + + PR tree-optimization/113462 + * fold-const.cc (native_interpret_int): Don't punt if total_bytes + is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT. + (fold_view_convert_expr): Use XALLOCAVEC buffers for types with + sizes between 129 and 8192 bytes. + +2024-01-23 Xi Ruoyao + + * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p): + If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false + for SYMBOL_TLS_LDM and SYMBOL_TLS_GD. + (loongarch_call_tls_get_addr): Do not split symbols of + SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is + EXPLICIT_RELOCS_AUTO. + +2024-01-23 Richard Biener + + * alias.cc (known_base_value_p): Remove. + (find_base_value): Remove PLUS/MINUS handling + when both operands are not CONST_INT_P. + +2024-01-23 Richard Biener + + PR rtl-optimization/113255 + * alias.cc (find_base_term): Remove PLUS/MINUS handling + when both operands are not CONST_INT_P. + +2024-01-23 Richard Biener + + PR debug/112718 + * dwarf2out.cc (dwarf2out_finish): Reset all type units + for the fat part of an LTO compile. + +2024-01-23 chenxiaolong + + * doc/sourcebuild.texi: Add attributes for keywords. + +2024-01-23 Sandra Loosemore + + PR c++/90463 + * doc/invoke.texi (Warning Options): Correct lists of options + enabled by -Wall and -Wextra by checking against common.opt + and c-family/c.opt. + +2024-01-22 Andrew Pinski + + PR target/113030 + * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias + instead of cpu_optaliases. + (check_arch): Use arch_opt_alias instead of arch_optaliases. + +2024-01-22 Juzhe-Zhong + + * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function. + * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto. + * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x. + +2024-01-22 Juzhe-Zhong + + PR target/109092 + * config/riscv/riscv.md: Use reg instead of subreg. + +2024-01-22 Tobias Burnus + + PR other/111966 + * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900 + to match the compiler default. + (simple_object_copy_lto_debug_sections): Never unlink the outfile + on error as the caller does so. + (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error. + (main): Likewise. Fix 'mkoffload.dbg.o' cleanup. + +2024-01-22 Richard Biener + + PR tree-optimization/113373 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Create LC PHIs in the exit blocks where necessary. + * tree-vect-loop.cc (vectorizable_live_operation): Do not try + to handle missing LC PHIs. + (find_connected_edge): Remove. + (vect_create_epilog_for_reduction): Cleanup use of auto_vec. + +2024-01-22 Juzhe-Zhong + + * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes. + +2024-01-22 xuli + + PR target/113420 + * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove. + (registered_function::overloaded_hash):refactor. + (resolve_overloaded_builtin):avoid internal ICE. + +2024-01-21 Mikael Pettersson + + PR target/82420 + PR target/111279 + * calls.cc (emit_library_call_value_1): Pass valid TYPE + to emit_push_insn. + * expr.cc (emit_push_insn): Likewise. + +2024-01-21 Jeff Law + + * config/riscv/riscv.cc (riscv_init_cumulative_args): Install + correcction version of last change. + +2024-01-21 Jeff Law + + * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and + fix bugs in signature. + +2024-01-21 Roger Sayle + Richard Biener + + PR rtl-optimization/111267 + * fwprop.cc (fwprop_propagation::profitabe_p): Rename + profitable_p method to likely_profitable_p. + (try_fwprop_subst_node): Update call to likely_profitable_p. + Only bail-out early when !prop.likely_profitable_p for instructions + that are not single sets. When comparing costs, bail-out if the + cost is unchanged and !prop.likely_profitable_p. + +2024-01-21 Sandra Loosemore + + PR c++/90464 + * doc/invoke.texi (Warning Options): Document that -Wunused-parameter + isn't enabled by -Wunused unless -Wextra is provided, and that + -Wunused does enable -Wunused-const-variable=1 for C. Clarify that + -Wunused doesn't enable -Wunused-* options documented as behaving + otherwise, and list them explicitly. + +2024-01-21 Sandra Loosemore + + PR c/109708 + * doc/invoke.texi (Warning Options): Fix broken example and + clean up/reorganize the others. Also describe what the short-form + options mean. + +2024-01-20 Sandra Loosemore + + PR c/102998 + * doc/invoke.texi (Option Summary): Add -Warray-parameter. + (Warning Options): Correct/edit discussion of -Warray-parameter + to make the first example less confusing, and fill in missing info. + +2024-01-20 Jakub Jelinek + + PR tree-optimization/113462 + * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): + Handle rhs1 INTEGER_CST like SSA_NAME. + +2024-01-20 Jakub Jelinek + + PR tree-optimization/113491 + * tree-switch-conversion.cc (switch_conversion::build_constructors): + If elt.index has precision higher than sizetype, fold_convert it to + sizetype. + (switch_conversion::array_value_type): Return type if type is + BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode. + (switch_conversion::build_arrays): Use unsigned_type_for rather than + lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision + above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision + higher than sizetype, use sizetype as tidx type and fold_convert the + subtraction to sizetype. + +2024-01-20 Juzhe-Zhong + + * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning. + (riscv_vector_mode_supported_any_target_p): Ditto. + +2024-01-19 Mikael Pettersson + + PR target/110934 + * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function. + (TARGET_ZERO_CALL_USED_REGS): Define. + +2024-01-19 Mikael Pettersson + + PR target/108640 + * config/m68k/m68k.cc (output_andsi3): Use QImode for + address adjusted for 1-byte RMW access. + (output_iorsi3): Likewise. + (output_xorsi3): Likewise. + +2024-01-19 Kito Cheng + + * doc/invoke.texi (RISC-V Options): Add list of supported + extensions. + +2024-01-19 Juzhe-Zhong + + PR target/113495 + * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM]. + (RVV_VUNDEF): Ditto. + * config/riscv/riscv-vsetvl.cc: Add timevar. + +2024-01-19 Richard Biener + + PR debug/113488 + * lto-streamer-in.cc (lto_read_tree_1): When there isn't + an early DIE but there should be, do not pretend there is. + +2024-01-19 Richard Biener + + PR tree-optimization/113494 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Handle endless loop on exit. Handle re-allocated PHI. + +2024-01-19 Jakub Jelinek + + PR tree-optimization/113464 + * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to + optimize loads into GIMPLE_ASM stmts. + +2024-01-19 Jakub Jelinek + + PR tree-optimization/113463 + * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range): + Only look through NOP_EXPRs if rhs1 doesn't have wider type than + lhs. + +2024-01-19 Jakub Jelinek + + PR tree-optimization/113459 + * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use + TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE + of SCALAR_INT_TYPE_MODE if type has BLKmode. + (vn_reference_lookup_3): Likewise. Formatting fix. + +2024-01-19 Jakub Jelinek + Richard Biener + + * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode + VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory. + * expr.cc (expand_expr_real_1) : Do nothing + but adjust_address also for BLKmode mode and MEM op0. + +2024-01-19 Palmer Dabbelt + + * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr + extensions. + +2024-01-19 Kito Cheng + + * doc/invoke.texi (RISC-V Options): Document the syntax of -march. + +2024-01-19 Kito Cheng + + * common/config/riscv/riscv-common.cc + (riscv_subset_list::parse_std_ext): Remove. + (riscv_subset_list::parse_multiletter_ext): Remove. + * config/riscv/riscv-subset.h + (riscv_subset_list::parse_std_ext): Remove. + (riscv_subset_list::parse_multiletter_ext): Remove. + +2024-01-19 Kito Cheng + + * common/config/riscv/riscv-common.cc + (riscv_subset_list::parse_single_std_ext): New parameter. + (riscv_subset_list::parse_single_multiletter_ext): Ditto. + (riscv_subset_list::parse_single_ext): Ditto. + (riscv_subset_list::parse): Relax the order for the input of ISA + string. + * config/riscv/riscv-subset.h + (riscv_subset_list::parse_single_std_ext): New parameter. + (riscv_subset_list::parse_single_multiletter_ext): Ditto. + (riscv_subset_list::parse_single_ext): Ditto. + +2024-01-19 Kito Cheng + + * common/config/riscv/riscv-common.cc + (riscv_subset_list::parse_base_ext): New. + (riscv_subset_list::parse): Extract part of logic into + riscv_subset_list::parse_base_ext. + * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext): + New. + +2024-01-19 Kito Cheng + + * config/riscv/riscv.cc (riscv_override_options_internal): Tweak + sorry message. + +2024-01-19 Kuan-Lin Chen + + * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to + UNSPEC_CLMUL_VC. + +2024-01-19 Sandra Loosemore + + PR c/110029 + * doc/extend.texi (Common Variable Attributes): Explain what + happens when multiple variables with cleanups are in the same scope. + +2024-01-18 Sandra Loosemore + + PR ipa/108470 + * doc/extend.texi (Common Function Attributes): Document that + noinline also disables some interprocedural optimizations and + improve flow to the part about using inline asm instead to + disable calls from being optimized away completely. Remove the + sentence that says noipa is mainly for internal compiler testing. + +2024-01-18 John David Anglin + + PR tree-optimization/69807 + * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT. + +2024-01-18 Brian Inglis + + PR target/108521 + * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin + from x86 Windows Options. + +2024-01-18 Sandra Loosemore + + PR c/107942 + * doc/extend.texi (C Extensions): Add new section to menu. + (Function Attributes): Move dangling index entries to.... + (Const and Volatile Functions): New section. + +2024-01-18 David Malcolm + + PR middle-end/112684 + * toplev.cc (toplev::main): Don't ICE in + -fdiagnostics-generate-patch when exiting after options, + since no edit context will have been created. + +2024-01-18 Richard Biener + + * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate + operands vector. + +2024-01-18 Iain Sandoe + + * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp + when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'. + +2024-01-18 Jun Sha (Joshua) + Jin Ma + Xianmiao Qu + Christoph Müllner + + * config/riscv/thead.cc + (th_asm_output_opcode): Rewrite some instructions. + +2024-01-18 Jun Sha (Joshua) + Jin Ma + Xianmiao Qu + Christoph Müllner + + * config/riscv/riscv.md (none,thv,rvv): New attribute. + (no,yes): Add an attribute to disable alternative + for xtheadvector or RVV1.0. + * config/riscv/vector.md: + Disable alternatives that destination register overlaps + source register group for xtheadvector. + +2024-01-18 Jun Sha (Joshua) + Jin Ma + Xianmiao Qu + Christoph Müllner + + * config/riscv/riscv-vector-builtins-bases.cc + (class th_loadstore_width): Define new builtin bases. + (class th_extract): Define new builtin bases. + (BASE): Define new builtin bases. + * config/riscv/riscv-vector-builtins-bases.h: + Define new builtin class. + * config/riscv/riscv-vector-builtins-shapes.cc + (struct th_loadstore_width_def): Define new builtin shapes. + (struct th_indexed_loadstore_width_def): + Define new builtin shapes. + (struct th_extract_def): Define new builtin shapes. + (SHAPE): Define new builtin shapes. + * config/riscv/riscv-vector-builtins-shapes.h: + Define new builtin shapes. + * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION): + Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics. + * config/riscv/riscv-vector-builtins.h + (enum required_ext): Add new XTheadVector member. + (struct function_group_info): Likewise. + * config/riscv/t-riscv: + Add thead-vector-builtins-functions.def + * config/riscv/thead-vector.md + (@pred_mov_width): Add new patterns. + (*pred_mov_width): Likewise. + (@pred_store_width): Likewise. + (@pred_strided_load_width): Likewise. + (@pred_strided_store_width): Likewise. + (@pred_indexed_load_width): Likewise. + (@pred_th_extract): Likewise. + (*pred_th_extract): Likewise. + * config/riscv/thead-vector-builtins-functions.def: New file. + +2024-01-18 Jun Sha (Joshua) + Jin Ma + Xianmiao Qu + Christoph Müllner + + * config.gcc: Add files for XTheadVector intrinsics. + * config/riscv/autovec.md: Guard XTheadVector. + * config/riscv/predicates.md: Disable immediate vl + for XTheadVector. + * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): + Add pragma for XTheadVector. + * config/riscv/riscv-string.cc (riscv_expand_block_move): + Guard XTheadVector. + * config/riscv/riscv-v.cc (vls_mode_valid_p): + Avoid autovec. + * config/riscv/riscv-vector-builtins-bases.cc: + Do not normalize vsetvl instructions for XTheadVector. + * config/riscv/riscv-vector-builtins-shapes.cc (check_type): + New check type function. + (build_one): Adjust for XTheadVector. + * config/riscv/riscv-vector-switch.def (ENTRY): + Disable fractional mode for the XTheadVector extension. + (TUPLE_ENTRY): Likewise. + * config/riscv/riscv.cc (riscv_v_adjust_bytesize): + Guard XTheadVector. + (riscv_preferred_simd_mode): Likewsie. + (riscv_autovectorize_vector_modes): Likewise. + (riscv_vector_mode_supported_any_target_p): Likewise. + (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise. + * config/riscv/thead.cc (th_asm_output_opcode): + Rewrite vsetvl instructions. + * config/riscv/vector.md: + Include thead-vector.md and change fractional LMUL + into 1 for vbool. + * config/riscv/riscv_th_vector.h: New file. + * config/riscv/thead-vector.md: New file. + +2024-01-18 Jun Sha (Joshua) + Jin Ma + Xianmiao Qu + Christoph Müllner + + * config/riscv/riscv-protos.h (riscv_asm_output_opcode): + Add new function to add assembler insn code prefix/suffix. + (th_asm_output_opcode): + Add Thead function to add assembler insn code prefix/suffix. + * config/riscv/riscv.cc (riscv_asm_output_opcode): + Implement function to add assembler insn code prefix/suffix. + * config/riscv/riscv.h (ASM_OUTPUT_OPCODE): + Add new function to add assembler insn code prefix/suffix. + * config/riscv/thead.cc (th_asm_output_opcode): + Implement Thead function to add assembler insn code + prefix/suffix. + +2024-01-18 Jun Sha (Joshua) + Jin Ma + Xianmiao Qu + Christoph Müllner + + * common/config/riscv/riscv-common.cc + (riscv_subset_list::parse): Add new vendor extension. + * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): + Add test marco. + * config/riscv/riscv.opt: Add new mask. + +2024-01-18 Iain Sandoe + + * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec + to be conditional on macosx-version-min. + +2024-01-18 Iain Sandoe + + * config/darwin.cc (darwin_objc1_section): Use the correct + meta-data version for constant strings. + (machopic_select_section): Assert if we fail to handle CFString + sections as Obejctive-C meta-data or drectly. + +2024-01-18 Iain Sandoe + + * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX, + OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME, + OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax + versions when the object format is Mach-O. + +2024-01-18 Iain Sandoe + + PR target/105522 + * config/darwin.cc (machopic_select_section): Handle C and C++ + CFStrings. + (darwin_rename_builtins): Move this out of the CFString code. + (darwin_libc_has_function): Likewise. + (darwin_build_constant_cfstring): Create an anonymous var to + hold each CFString. + * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant + CFstrings. + +2024-01-18 Maxim Kuvyrkov + + PR bootstrap/113445 + * haifa-sched.cc (dep_list_size): Make global. + * sched-deps.cc (find_inc): Use instead of sd_lists_size(). + * sched-int.h (dep_list_size): Declare. + +2024-01-18 Martin Jambor + + PR tree-optimization/110422 + * tree-sra.cc (scan_function): Disqualify bases of operands of asm + gotos. + +2024-01-18 Richard Biener + + PR tree-optimization/113475 + * gimple-range-phi.h (phi_analyzer::m_phi_groups): New. + * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize. + (phi_analyzer::~phi_analyzer): Deallocate and free collected + phi_grous. + (phi_analyzer::process_phi): Record allocated phi_groups. + +2024-01-18 Richard Biener + + * tree-vect-stmts.cc (vectorizable_store): Do not allocate + storage for gvec_oprnds elements. + +2024-01-18 Richard Biener + + * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment, + prefer all later exits we can handle. + (vect_analyze_loop_form): Free the allocated loop body. + Adjust comments. + +2024-01-18 Georg-Johann Lay + + * config/avr/avr-log.cc: Tabify. + +2024-01-18 Juzhe-Zhong + + * config/riscv/autovec.md: Support vi variant. + +2024-01-18 Georg-Johann Lay + + * config/avr/avr-devices.cc: Tabify. + +2024-01-18 Georg-Johann Lay + + * config/avr/avr-c.cc: Tabify. + +2024-01-18 Georg-Johann Lay + + * config/avr/driver-avr.cc: Tabify. + +2024-01-18 Georg-Johann Lay + + * config/avr/gen-avr-mmcu-texi.cc: Tabify. + +2024-01-18 Georg-Johann Lay + + * config/avr/gen-avr-mmcu-specs.cc: Tabify. + +2024-01-18 Jakub Jelinek + + * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check, + minline-strcmp, minline-strncmp, minline-strlen, + -param=riscv-vector-abi): Remove Bool keywords. + +2024-01-18 Jakub Jelinek + + PR target/113122 + * config/i386/i386.cc (x86_function_profiler): Add -masm=intel + support. Add missing space after , in emitted assembly in some + cases. Formatting fixes. + +2024-01-18 Xi Ruoyao + + * config/loongarch/loongarch.md (movsi_internal): Remove + constraint z. + +2024-01-18 Georg-Johann Lay + + * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo + in the diagnostic, and capitalize the device name. + (print_mcu): Generate specs such that: + <*check_rodata_in_ram>: New. + <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram. + <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram. + <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove. + +2024-01-18 Jakub Jelinek + + PR other/113399 + * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add + Common and Optimization. + +2024-01-18 Richard Biener + + PR tree-optimization/113431 + * tree-vect-data-refs.cc (vect_preserves_scalar_order_p): + When there is an invariant load we might not preserve + scalar order. + +2024-01-18 Richard Biener + + PR tree-optimization/113374 + * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New. + * tree-vect-loop.cc (move_early_exit_stmts): Update + virtual LC PHIs. + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Refactor. Preserve virtual LC PHIs on all exits. + +2024-01-18 Lulu Cheng + + * config/loongarch/loongarch.cc (loongarch_split_symbol): + Assign the '/u' attribute to the mem. + +2024-01-18 Sandra Loosemore + + PR middle-end/110847 + * doc/invoke.texi (Option Summary): Document negative forms of + -Wtsan and -Wxor-used-as-pow. + (Warning Options): Likewise. + +2024-01-18 Juzhe-Zhong + + PR target/113429 + * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug. + +2024-01-18 Sandra Loosemore + + * doc/extend.texi (Common Function Attributes): Re-alphabetize + the table. + (Common Variable Attributes): Likewise. + (Common Type Attributes): Likewise. + +2024-01-17 Sandra Loosemore + + PR middle-end/111659 + * doc/extend.texi (Common Variable Attributes): Fix long lines + in documentation of strict_flex_array + other minor copy-editing. + Add a cross-reference to -Wstrict-flex-arrays. + * doc/invoke.texi (Option Summary): Fix whitespace in tables + before -fstrict-flex-arrays and -Wstrict-flex-arrays. + (C Dialect Options): Combine the docs for the two + -fstrict-flex-arrays forms into a single entry. Note this option + is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays. + (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only. + Minor copy-editing. Add cross references to the strict_flex_array + attribute and -fstrict-flex-arrays option. Add note that this + option depends on -ftree-vrp. + +2024-01-17 Andrew Pinski + + PR target/113221 + * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg, + only allow REG operands instead of allowing all. + +2024-01-17 Vineet Gupta + + * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info): + Remove redundant checks in else condition for readablity. + (earliest_fuse_vsetvl_info) Print iteration count in debug + prints. + (earliest_fuse_vsetvl_info) Fix misleading vsetvl info + dump details in certain cases. + +2024-01-17 Vineet Gupta + + * config/riscv/riscv.opt: New -param=vsetvl-strategy. + * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum. + * config/riscv/riscv-vsetvl.cc + (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy. + (pass_vsetvl::execute): Use vsetvl_strategy. + +2024-01-17 Jan Hubicka + + * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove + accidental hack reseting offset. + +2024-01-17 Jan Hubicka + + * config/i386/i386-options.cc (ix86_option_override_internal): Fix + handling of X86_TUNE_AVOID_512FMA_CHAINS. + +2024-01-17 Jan Hubicka + Jakub Jelinek + + PR tree-optimization/110852 + * predict.cc (expr_expected_value_1): Fix profile merging of PHI and + binary operations + (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and + PRED_COMBINED_VALUE_PREDICTIONS_PHI + * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor. + (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor. + +2024-01-17 Jakub Jelinek + + PR tree-optimization/113421 + * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function + comment. + (bitint_dom_walker::before_dom_children): Add g temporary to simplify + formatting. Start at vop rather than cvop even if stmt is a store + and needs_operand_addr. + +2024-01-17 Jakub Jelinek + + PR middle-end/113410 + * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes): + If access_nelts is integral with larger precision than sizetype, + fold_convert it to sizetype. + +2024-01-17 Jakub Jelinek + + PR tree-optimization/113408 + * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For + VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1 + to handle_cast. + +2024-01-17 Jakub Jelinek + + PR middle-end/113406 + * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p + regardless of whether is_gimple_reg_type (restype) or not. + +2024-01-17 Jakub Jelinek + + * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo, + funcions -> functions, and use were instead of was. + * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function + and guaranteee -> guarantee. + * attribs.h (struct attr_access): Fix comment typo funcion -> function. + +2024-01-17 Jakub Jelinek + + PR middle-end/113409 + * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like + INTEGER_TYPE. + (omp_extract_for_data): Use build_bitint_type rather than + build_nonstandard_integer_type if either iter_type or loop->v type + is BITINT_TYPE. + * omp-expand.cc (expand_omp_for_generic, + expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle + BITINT_TYPE like INTEGER_TYPE. + +2024-01-17 Richard Biener + + PR tree-optimization/113371 + * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): + Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED. + * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do + not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED. + +2024-01-17 Maxim Kuvyrkov + + PR rtl-optimization/96388 + PR rtl-optimization/111554 + * sched-deps.cc (find_inc): Avoid exponential behavior. + +2024-01-17 Sandra Loosemore + + PR c/111693 + * doc/invoke.texi (Option Summary): Move -Wuseless-cast + from C++ Language Options to Warning Options. Add entry for + -Wuse-after-free. + (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast + from here.... + (Warning Options): ...to here. Minor copy-editing to fix typo + and grammar. + +2024-01-17 YunQiang Su + + * config/mips/mips.cc (mips_compute_frame_info): If another + register is used as global_pointer, mark $GP live false. + +2024-01-17 Sandra Loosemore + + PR target/112973 + * doc/extend.texi (BPF Built-in Functions): Wrap long lines and + give the section a light copy-editing pass. + +2024-01-16 Wilco Dijkstra + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU. + * config/aarch64/aarch64-tune.md: Regenerated. + * doc/invoke.texi (-mcpu): Add cobalt-100 core. + +2024-01-16 Wilco Dijkstra + + PR target/112573 + * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate + badly formed CONST expressions. + +2024-01-16 Daniel Cederman + + * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty + +2024-01-16 Daniel Cederman + + * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic + * config/sparc/sync.md (membar_storeload): Turn into named insn + and add GR712RC errata workaround. + (membar_v8): Add GR712RC errata workaround. + +2024-01-16 Andreas Larsson + + * config/sparc/sync.md (*membar_storeload_leon3): Remove + (*membar_storeload): Enable for LEON + +2024-01-16 Jakub Jelinek + + PR tree-optimization/113372 + PR middle-end/90348 + PR middle-end/110115 + PR middle-end/111422 + * cfgexpand.cc (add_scope_conflicts_2): New function. + (add_scope_conflicts_1): Use it. + +2024-01-16 Georg-Johann Lay + + * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32) + (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add. + * doc/avr-mmcu.texi: Regenerate. + +2024-01-16 Feng Xue + + PR tree-optimization/113091 + * tree-vect-slp.cc (vect_slp_has_scalar_use): New function. + (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check + scalar use with new function. + (vect_bb_slp_mark_live_stmts): New function as entry to existing + overriden functions with same name. + (vect_slp_analyze_operations): Call new entry function to mark + live statements. + +2024-01-16 Juzhe-Zhong + + PR target/113404 + * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry + for RVV in big-endian mode. + +2024-01-16 Yanzhang Wang + + * config/riscv/riscv.cc (riscv_arg_has_vector): Delete. + (riscv_pass_in_vector_p): Delete. + (riscv_init_cumulative_args): Delete the checking. + (riscv_get_arg_info): Delete the checking. + (riscv_function_value): Delete the checking. + * config/riscv/riscv.h: Delete the member for checking. + +2024-01-15 Georg-Johann Lay + + * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation. + +2024-01-15 Liao Shihua + + * config.gcc: Include riscv_bitmanip.h. + * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern. + * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern. + * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins. + (RISCV_BUILTIN_NO_PREFIX): New helper macro. + * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins. + * config/riscv/riscv-ftypes.def (2): New ftypes. + * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins. + (RISCV_BUILTIN_NO_PREFIX): Likewise. + * config/riscv/riscv_bitmanip.h: New file. + +2024-01-15 Liao Shihua + + * config.gcc: Include riscv_crypto.h. + * config/riscv/riscv_crypto.h: New file. + +2024-01-15 Vladimir N. Makarov + + PR middle-end/113354 + * lra-constraints.cc (curr_insn_transform): Spill pseudo only used + in the insn if the corresponding operand does not require hard + register anymore. + +2024-01-15 Georg-Johann Lay + + PR target/107201 + * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib. + * config/avr/driver-avr.cc (avr_no_devlib): New function. + (avr_devicespecs_file): Use it to remove -nodevicelib from the + options for cores only. + * config/avr/avr-arch.h (avr_get_parch): New prototype. + * config/avr/avr-devices.cc (avr_get_parch): New function. + +2024-01-15 Juzhe-Zhong + + PR target/113247 + * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove. + * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto. + * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost. + +2024-01-15 Juzhe-Zhong + + PR target/113281 + * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function. + (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF. + * config/riscv/riscv-vector-costs.h: New function. + +2024-01-15 Richard Biener + + PR tree-optimization/113385 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + First redirect, then split the exit edge. + +2024-01-15 Juzhe-Zhong + + * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo): + Remove m_num_vector_iterations. + * config/riscv/riscv-vector-costs.h: Ditto. + +2024-01-15 Andrew Pinski + + PR target/113156 + * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag. + (-mbranch-cost): Set "Optimization" flag. + +2024-01-15 Jakub Jelinek + + PR tree-optimization/113370 + * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only + set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise + set it to just prec % limb_prec. + +2024-01-15 Juzhe-Zhong + + PR target/113393 + * config/riscv/vector.md: Fix ternary attributes. + +2024-01-14 Georg-Johann Lay + + PR target/112944 + * configure.ac [target=avr]: Check availability of emulations + avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars + HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP. + * configure: Regenerate. + * config.in: Regenerate. + * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram, + __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__. + * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options. + * config/avr/avr-arch.h (enum avr_device_specific_features): + Add AVR_ISA_FLMAP. + * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag + AVR_ISA_FLMAP. + * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars. + (avr_set_core_architecture): Set avr_arch_index. + (have_avrxmega2_flmap, have_avrxmega4_flmap) + (have_avrxmega3_rodata_in_flash): Set new static const bool according + to configure results. + (avr_rodata_in_flash_p): New function using them. + (avr_asm_init_sections): Let readonly_data_section->unnamed.callback + track avr_need_copy_data_p only if not avr_rodata_in_flash_p(). + (avr_asm_named_section): Track avr_has_rodata_p. + (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p + and not avr_rodata_in_flash_p (). + * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram). + (LINK_SPEC): Add %(link_rodata_in_ram). + (LINK_ARCH_SPEC): Remove. + * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash) + (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static + const bool according to configure results. + (diagnose_mrodata_in_ram): New function. + (print_mcu): Generate specs with the following changes: + <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't + need to extend avr/specs.h each time we add a new bell or whistle. + <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose + -m[no-]rodata-in-ram. + <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1. + <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies. + <*cpp>: Add %(cpp_rodata_in_ram). + <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as + requested. + <*self_spec>: Add -mflmap or % + + * config/mips/mips.md (ior3_mips16_asmacro): Use SImode, + not the GPR iterator. Adjust pattern name and mode attribute + accordingly. + +2024-01-13 Jakub Jelinek + + PR tree-optimization/113361 + * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): + Fix up determination of the type for > limb_prec constants. + +2024-01-12 Georg-Johann Lay + + * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats): + Add web-link to the avr-gcc wiki. + +2024-01-12 Georg-Johann Lay + + * doc/extend.texi (AVR Variable Attributes) [address]: Remove + documentation for a version without argument, which is not supported. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New. + (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New. + (vld1_f16_x4, vld1_f32_x4): New. + (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New. + (vld1_bf16_x4): New. + (vld1q_types_x4): Updated to use vld1q_x4 + from arm_neon_builtins.def + * config/arm/arm_neon_builtins.def + (vld1_x4): Updated entries. + (vld1q_x4): New entries, but comes from the old vld1_x4 + * config/arm/neon.md + (neon_vld1q_x4): Updated from neon_vld1_x4. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New. + (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New. + (vld1_f16_x3, vld1_f32_x3): New. + (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New. + (vld1_bf16_x3): New. + (vld1q_types_x3): Updated to use vld1q_x3 from + arm_neon_builtins.def + * config/arm/arm_neon_builtins.def + (vld1_x3): Updated entries. + (vld1q_x3): New entries, but comes from the old vld1_x2 + * config/arm/neon.md + (neon_vld1q_x3): Updated from neon_vld1_x3. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New. + (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New. + (vld1_f16_x2, vld1_f32_x2): New. + (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New. + (vld1_bf16_x2): New. + (vld1q_types_x2): Updated to use vld1q_x2 from + arm_neon_builtins.def + * config/arm/arm_neon_builtins.def + (vld1_x2): Updated entries. + (vld1q_x2): New entries, but comes from the old vld1_x2 + * config/arm/neon.md + (neon_vld1_x2): Updated from + neon_vld1_x2. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New. + (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New. + (vst1q_f16_x4, vst1q_f32_x4): New. + (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New. + (vst1q_bf16_x4): New. + * config/arm/arm_neon_builtins.def (vst1q_x4): New entries. + * config/arm/neon.md + (neon_vst1q_x4): New. + (neon_vst1x4qa, neon_vst1x4qb): New. + * config/arm/unspecs.md + (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New. + (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New. + (vst1q_f16_x3, vst1q_f32_x3): New. + (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New. + (vst1q_bf16_x3): New. + * config/arm/arm_neon_builtins.def (vst1q_x3): New entries. + * config/arm/neon.md + (neon_vst1q_x3): New. + (neon_vld1x3qa, neon_vst1x3qb): New. + * config/arm/unspecs.md + (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New. + (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New. + (vst1q_f16_x2, vst1q_f32_x2): New. + (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New. + (vst1q_bf16_x2): New. + * config/arm/arm_neon_builtins.def (vst1<_x2): New entries. + * config/arm/neon.md + (neon_vst1_x2): Updated from + neon_vst1_x2. + * config/arm/iterators.md + (VMEMX2): New mode iterator. + (VMEMX2_q): New mode attribute. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New. + (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New. + (vst1_f16_x4, vst1_f32_x4): New. + (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New. + (vst1_bf16_x4): New. + * config/arm/arm_neon_builtins.def (vst1_x4): New entries. + * config/arm/neon.md (vst1_x4): New. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New. + (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New. + (vst1_f16_x3, vst1_f32_x3): New. + (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New. + (vst1_bf16_x3): New. + * config/arm/arm_neon_builtins.def (vst1_x3): New entries. + * config/arm/neon.md (vst1_x3): New. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New. + (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New. + (vst1_f16_x2, vst1_f32_x2): New. + (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New. + (vst1_bf16_x2): New. + * config/arm/arm_neon_builtins.def (vst1_x2): New entries. + * config/arm/neon.md (vst1_x2): New. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New. + (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New. + (vld1q_f16_x4, vld1q_f32_x4): New. + (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New. + (vld1q_bf16_x4): New. + * config/arm/arm_neon_builtins.def (vld1_x4): New entries. + * config/arm/neon.md + (neon_vld1_x4): New. + (neon_vld1x4qa, neon_vld1x4qb): New + * config/arm/unspecs.md + (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New. + (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New. + (vld1q_f16_x3, vld1q_f32_x3): New. + (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New. + (vld1q_bf16_x3): New. + * config/arm/arm_neon_builtins.def (vld1_x3): New entries. + * config/arm/neon.md + (neon_vld1_x3): New. + (neon_vld1x3qa, neon_vld1x3qb): New. + * config/arm/unspecs.md + (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New. + +2024-01-12 Ezra Sitorus + + * config/arm/arm_neon.h + (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New. + (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New. + (vld1q_f16_x2, vld1q_f32_x2): New. + (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New. + (vld1q_bf16_x2): New. + * config/arm/arm_neon_builtins.def (vld1_x2): New entries. + * config/arm/neon.md (vld1_x2): New. + +2024-01-12 Tamar Christina + + PR tree-optimization/113287 + * doc/sourcebuild.texi (check_effective_target_bitint65535): New. + +2024-01-12 Tamar Christina + + * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit. + * tree-vect-loop.cc (vect_transform_loop): Likewise. + +2024-01-12 Tamar Christina + + PR tree-optimization/113178 + * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all + alternate exits. + +2024-01-12 Tamar Christina + + PR tree-optimization/113237 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use + existing LCSSA variable for exit when all exits are early break. + +2024-01-12 Tamar Christina + + PR tree-optimization/113137 + PR tree-optimization/113136 + PR tree-optimization/113172 + PR tree-optimization/113178 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Maintain PHIs on inverted loops. + (vect_do_peeling): Maintain virtual PHIs on inverted loops. + * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to + latch. + (vect_create_loop_vinfo): Record all conds instead of only alt ones. + +2024-01-12 Tamar Christina + + PR tree-optimization/113135 + * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework + dependency analysis. + +2024-01-12 Iain Sandoe + + * config/rs6000/host-darwin.cc (segv_handler): Use the revised + diagnostics class member name for abort of error. + +2024-01-12 Georg-Johann Lay + + * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from + format string to %s argument. + +2024-01-12 John David Anglin + Jakub Jelinek + + PR middle-end/113182 + * varasm.cc (process_pending_assemble_externals, + assemble_external_libcall): Use targetm.strip_name_encoding + before calling get_identifier. + +2024-01-12 Richard Sandiford + + PR target/113196 + * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn): + New member variable. + * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p): + Declare. + * config/aarch64/iterators.md (Vnarrowq2): New mode attribute. + * config/aarch64/aarch64-simd.md + (vec_unpacku_hi_, vec_unpacks_hi_): Recombine into... + (vec_unpack_hi_): ...this. Move the generation of + zip2 for zero-extends to... + (aarch64_simd_vec_unpack_hi_): ...a split of this + instruction. Fix big-endian handling. + (vec_unpacku_lo_, vec_unpacks_lo_): Recombine into... + (vec_unpack_lo_): ...this. Move the generation of + zip1 for zero-extends to... + (2): ...a split of this instruction. + Fix big-endian handling. + (*aarch64_zip1_uxtl): New pattern. + (aarch64_usubw_lo_zip, aarch64_uaddw_lo_zip): Delete + (aarch64_usubw_hi_zip, aarch64_uaddw_hi_zip): Likewise. + * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function. + (aarch64_gen_shareable_zero): Use it. + (aarch64_split_simd_shift_p): New function. + +2024-01-12 Richard Sandiford + + * emit-rtl.h (rtl_data::x_function_beg_note): New member variable. + (function_beg_insn): New macro. + * function.cc (expand_function_start): Initialize function_beg_insn. + +2024-01-12 Richard Sandiford + + PR target/112989 + * config/aarch64/aarch64-sve-builtins.h + (function_builder::m_overload_names): Replace with... + * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this + new global. + (add_overloaded_function): Update accordingly, using get_identifier + to get a GGC-friendly record of the name. + +2024-01-12 Richard Sandiford + + PR target/112989 + * config/aarch64/aarch64-sve-builtins.def: Don't include + aarch64-sve-builtins-sme.def. + (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to... + * config/aarch64/aarch64-sve-builtins-sme.def: ...here. + (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS + instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that + requires AARCH64_FL_SME2. + * config/aarch64/aarch64-sve-builtins-sve2.def: Make same + AARCH64_FL_SME adjustment here. + * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't + include SME intrinsics. + (sme_function_groups): New array. + (handle_arm_sve_h): Remove check for AARCH64_FL_SME. + (handle_arm_sme_h): Use sme_function_groups instead of function_groups. + +2024-01-12 Juzhe-Zhong + + PR target/113281 + * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct. + (struct cpu_vector_cost): Add regmove struct. + (get_vector_costs): Export as global. + * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost. + (costs::add_stmt_cost): Ditto. + * config/riscv/riscv.cc (get_common_costs): Export global function. + +2024-01-12 Jakub Jelinek + + PR tree-optimization/113334 + * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use + wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0 + to determine if number should be extended by all ones rather than zero + extended. + +2024-01-12 Jakub Jelinek + + PR tree-optimization/113330 + * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with + too large size. + +2024-01-12 Jakub Jelinek + + PR tree-optimization/113323 + * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix + check for lhs being large/huge _BitInt not in m_names. + +2024-01-12 Jakub Jelinek + + PR tree-optimization/113316 + * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle + uninitialized large/huge _BitInt arguments to calls. + +2024-01-12 Jakub Jelinek + + * gimple-lower-bitint.cc (mergeable_op): Instead of comparing + TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare + CEIL (TYPE_PRECISION (t), limb_prec). + (bitint_large_huge::handle_cast): Likewise. + +2024-01-12 Ilya Leoshkevich + + PR sanitizer/113284 + * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name): + Use assemble_function_label_final () for Power ELF V1 ABI. + * output.h (assemble_function_label_final): New function. + * varasm.cc (assemble_function_label_raw): Use + assemble_function_label_final (). + (assemble_function_label_final): New function. + +2024-01-12 Richard Biener + + PR middle-end/113344 + * match.pd ((double)float CMP (double)float -> float CMP float): + Perform result type check only for vectors. + * fold-const.cc (fold_binary_loc): Likewise. + +2024-01-12 Haochen Jiang + + * config/i386/sse.md (sdot_prod): Remove redundant SET. + (usdot_prod): Ditto. + (sdot_prod): Ditto. + (udot_prod): Ditto. + +2024-01-12 Haochen Jiang + + PR target/113288 + * config/i386/i386-c.cc (ix86_target_macros_internal): + Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__. + +2024-01-12 Richard Biener + + PR target/112280 + * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate): + Do not generate code when d.testing_p. + +2024-01-12 liuhongt + + PR target/113039 + * doc/invoke.texi (fcf-protection=): Update documents. + +2024-01-12 Pan Li + + * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the + comments of predicate func riscv_v_ext_mode_p. + +2024-01-12 Feng Wang + + * config/riscv/riscv-vector-builtins.def (vfloat16m8_t): + Modify ABI-name length of vfloat16m8_t + +2024-01-12 Li Wei + + * config/loongarch/loongarch.cc (loongarch_expand_conditional_move): + Adjust. + +2024-01-12 Li Wei + + * config/loongarch/loongarch.md (add3): Removed. + (*addsi3): New. + (addsi3): Ditto. + (adddi3): Ditto. + (*addsi3_extended): Removed. + (addsi3_extended): New. + +2024-01-11 Jin Ma + + * config/riscv/thead.md: Add limits for splits. + +2024-01-11 Andrew Pinski + + PR middle-end/113322 + * expr.cc (do_store_flag): Don't try single bit tests with + comparison on vector types. + +2024-01-11 Andrew Pinski + + PR tree-optimization/113301 + * match.pd (`1/x`): Delay signed case until late. + +2024-01-11 Georg-Johann Lay + + * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls + and -msp8 to... + (AVR Internal Options): ...this new @subsubsection. + +2024-01-11 Vladimir N. Makarov + + PR rtl-optimization/112918 + * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p. + (in_class_p): Restrict condition for narrowing class in case of + allow_all_reload_class_changes_p. + (process_alt_operands): Try to match operand without and with + narrowing reg class. Discourage narrowing the class. Finish insn + matching only if there is no class narrowing. + (curr_insn_transform): Pass true to in_class_p for reg operand win. + +2024-01-11 Richard Biener + + PR tree-optimization/112505 + * tree-vect-loop.cc (vectorizable_induction): Reject + bit-precision induction. + +2024-01-11 Richard Biener + + PR tree-optimization/113126 + * match.pd ((double)float CMP (double)float -> float CMP float): + Make sure the boolean type is the same. + * fold-const.cc (fold_binary_loc): Likewise. + +2024-01-11 Richard Biener + + PR tree-optimization/112636 + * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call + estimate_numbers_of_iterations before querying + get_max_loop_iterations_int. + (pass_ch::execute): Initialize SCEV and loops appropriately. + +2024-01-11 Georg-Johann Lay + + * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for + Reduced Tiny. + * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core. + * doc/extend.texi (AVR Variable Attributes): Improve documentation + of io, io_low and address attributes. + * doc/invoke.texi (AVR Options): Add some anchors for external refs. + * doc/avr-mmcu.texi: Rebuild. + +2024-01-11 Yang Yujie + + PR target/113233 + * config/loongarch/genopts/loongarch.opt.in: Mark options with + the "Save" property. + * config/loongarch/loongarch.opt: Same. + * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state + according to la_target. + * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE, + RESTORE} for the la_target structure; Rename option conditions + to have the same "la_" prefix. + * config/loongarch/loongarch.h: Same. + +2024-01-11 Pan Li + + * loop-unroll.cc (insert_var_expansion_initialization): Leverage + MODE_HAS_SIGNED_ZEROS for expansion variable initialization. + +2024-01-11 Alex Coplan + + PR target/113077 + * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add + fr_expr param to extract REG_FRAME_RELATED_EXPR notes. + (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and + synthesize these if needed. Update caller ... + (ldp_bb_info::fuse_pair): ... here. + (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback + and either insn is frame-related. + (find_trailing_add): Punt on frame-related insns. + * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use + REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET. + +2024-01-11 YunQiang Su + + * config/mips/mips.cc (mips_start_function_definition): + Add ATTRIBUTE_UNUSED. + +2024-01-11 Richard Biener + + PR middle-end/112740 + * expr.cc (store_constructor): Check the integer vector + mask has a single bit per element before using sign-extension + to expand an uniform vector. + +2024-01-11 Juzhe-Zhong + + * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA + preempt VLS on unknown NITERS loop. + +2024-01-11 Haochen Jiang + + * doc/invoke.texi: Add -mevex512. + +2024-01-11 Lulu Cheng + + * config/loongarch/loongarch.md (one_cmpl2): Replace GPR with X. + (*nor3): Likewise. + (nor3): Likewise. + (*negsi2_extended): New template. + (*si3_internal): Likewise. + (*one_cmplsi2_internal): Likewise. + (*norsi3_internal): Likewise. + (*nsi_internal): Likewise. + (bytepick_w__extend): Modify this template according to the + modified bit operation to make the optimization work. + +2024-01-11 liuhongt + + PR target/104401 + * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match. + +2024-01-10 Juzhe-Zhong + + * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model. + (get_vector_costs): Ditto. + (riscv_builtin_vectorization_cost): Ditto. + +2024-01-10 Juzhe-Zhong + + * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak. + +2024-01-10 Antoni Boucher + + PR jit/111396 + * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call + ipa_free_size_summary. + * ipa-icf.cc (ipa_icf_cc_finalize): New function. + * ipa-profile.cc (ipa_profile_cc_finalize): New function. + * ipa-prop.cc (ipa_prop_cc_finalize): New function. + * ipa-prop.h (ipa_prop_cc_finalize): New function. + * ipa-sra.cc (ipa_sra_cc_finalize): New function. + * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize, + ipa_sra_cc_finalize): New functions. + * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize, + ipa_prop_cc_finalize, ipa_profile_cc_finalize and + ipa_sra_cc_finalize + Include ipa-utils.h. + +2024-01-10 Jin Ma + + * config/riscv/riscv-protos.h (th_int_get_mask): New prototype. + (th_int_get_save_adjustment): Likewise. + (th_int_adjust_cfi_prologue): Likewise. + * config/riscv/riscv.cc (BITSET_P): Moved away from here. + (TH_INT_INTERRUPT): New macro. + (riscv_expand_prologue): Add the processing of XTheadInt. + (riscv_expand_epilogue): Likewise. + * config/riscv/riscv.h (BITSET_P): Moved to here. + * config/riscv/riscv.md: New unspec. + * config/riscv/thead.cc (th_int_get_mask): New function. + (th_int_get_save_adjustment): Likewise. + (th_int_adjust_cfi_prologue): Likewise. + * config/riscv/thead.md (th_int_push): New pattern. + (th_int_pop): new pattern. + +2024-01-10 Tamar Christina + + PR tree-optimization/112468 + * doc/sourcebuild.texi: Document ifn_copysign. + * match.pd: Only apply transformation if target supports the IFN. + +2024-01-10 Andrew Pinski + + PR tree-optimization/112581 + * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call + mark_ssa_maybe_undefs. + * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized + variables can not be reassociated. + (init_range_entry): Check for uninitialized variables too. + (init_reassoc): Call mark_ssa_maybe_undefs. + +2024-01-10 Maciej W. Rozycki + + * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): + Also handle sign extension. + +2024-01-10 Alex Coplan + + * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default + to 0. + (-mlate-ldp-fusion): Likewise. + +2024-01-10 Tamar Christina + + PR tree-optimization/113287 + * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge + instead of using BRANCH_EDGE to determine true edge. + +2024-01-10 Richard Biener + + PR tree-optimization/113078 + * tree-vect-loop.cc (check_reduction_path): Canonicalize + .COND_SUB to .COND_ADD. + +2024-01-10 David Malcolm + + * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option): + Handle prefix mappings before calling find_opt. + (selftest::gcc_urlifier_cc_tests): Add example of urlifying a + "-fno-"-prefixed command-line option. + * opts-common.cc (get_option_prefix_remapping): New. + * opts.h (get_option_prefix_remapping): New decl. + +2024-01-10 David Malcolm + + * diagnostic.cc (diagnostic_context::report_diagnostic): Pass + m_urlifier to pp_output_formatted_text. + * pretty-print.cc: Add #define of INCLUDE_VECTOR. + (obstack_append_string): New overload, taking a length. + (urlify_quoted_string): Pass in an obstack ptr, rather than using + that of the pp's buffer. Generalize to handle trailing text in + the buffer beyond the run of quoted text. + (class quoting_info): New. + (on_begin_quote): New. + (on_end_quote): New. + (pp_format): Refactor phase 1 and phase 2 quoting support, moving + it to calls to on_begin_quote and on_end_quote. + (struct auto_obstack): New. + (quoting_info::handle_phase_3): New. + (pp_output_formatted_text): Add urlifier param. Use it if there + is deferred urlification. Delete m_quotes. + (selftest::pp_printf_with_urlifier): Pass urlifier to + pp_output_formatted_text. + (selftest::test_urlification): Update results for the existing + case of quoted text stradding chunks; add more such test cases. + * pretty-print.h (class quoting_info): New forward decl. + (chunk_info::m_quotes): New field. + (pp_output_formatted_text): Add optional urlifier param. + +2024-01-10 David Malcolm + + * pretty-print.cc (selftest::test_pp_format): Add selftest + coverage for numbered args. + +2024-01-10 Tamar Christina + + PR tree-optimization/113144 + PR tree-optimization/113145 + * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): + Update all BB that the original exits dominated. + +2024-01-10 Eric Botcazou + + * dwarf2out.cc (modified_type_die): Extend the support of reverse + storage order to enumeration types if -gstrict-dwarf is not passed. + (gen_enumeration_type_die): Add REVERSE parameter and generate the + DIE immediately after the existing one if it is true. + (gen_tagged_type_die): Add REVERSE parameter and pass it in the + call to gen_enumeration_type_die. + (gen_type_die_with_usage): Add REVERSE parameter and pass it in the + first recursive call as well as the call to gen_tagged_type_die. + (gen_type_die): Add REVERSE parameter and pass it in the call to + gen_type_die_with_usage. + +2024-01-10 Jakub Jelinek + + PR tree-optimization/113120 + * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE + with root->size TYPE_PRECISION don't build anything new. + Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type + rather than build_nonstandard_integer_type. + +2024-01-10 Hongyu Wang + + * config/i386/i386.opt: Adjust document. + * doc/invoke.texi: Add description for + -mapx-inline-asm-use-gpr32. + +2024-01-10 Juzhe-Zhong + + * config/riscv/autovec.md (avg3_floor): Remove. + (avg3_floor): New pattern. + (avg3_ceil): Remove. + (avg3_ceil): New pattern. + (uavg3_floor): Ditto. + (uavg3_ceil): Ditto. + * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition. + (enum insn_type): Ditto. + * config/riscv/riscv-v.cc: Ditto. + * config/riscv/vector-iterators.md (ashiftrt): Remove. + (ASHIFTRT): Ditto. + * config/riscv/vector.md: Add VLS modes. + +2024-01-10 Kewen Lin + + PR target/111480 + * config/rs6000/vsx.md (VCZLSBB): New int iterator. + (vczlsbb_char): New int attribute. + (vclzlsbb_, vctzlsbb_): Merge to ... + (vczlsbb_): ... this. + (*vctzlsbb_zext_): Rename to ... + (*vczlsbb_zext_): ... this, and extend it to + cover vclzlsbb. + +2024-01-10 Kewen Lin + + PR target/112606 + * config/rs6000/rs6000.md (copysign3 IEEE128): Change predicate + of the last argument from altivec_register_operand to any_operand. If + operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign + otherwise if it doesn't satisfy altivec_register_operand, force it to + REG using copy_to_mode_reg. + +2024-01-10 Kewen Lin + + PR middle-end/113100 + * builtins.cc (expand_builtin_stack_address): Guard stack point + adjustment with SPARC_STACK_BOUNDARY_HACK. + +2024-01-10 Yang Yujie + + * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc + argument string definitions. + * config/loongarch/loongarch-str.h: Same. + * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs + as aliases to -mexplicit-relocs={always,none} + * config/loongarch/loongarch.opt: Regenerate. + * config/loongarch/loongarch.cc: Same. + +2024-01-10 Yang Yujie + + * config/loongarch/loongarch-def.h: Define constants with + enums instead of Macros. + +2024-01-10 Yang Yujie + + * config/loongarch/genopts/loongarch-strings: Rename. + * config/loongarch/genopts/loongarch.opt.in: Same. + * config/loongarch/loongarch-cpu.cc: Same. + * config/loongarch/loongarch-def.cc: Same. + * config/loongarch/loongarch-def.h: Same. + * config/loongarch/loongarch-opts.cc: Same. + * config/loongarch/loongarch-opts.h: Same. + * config/loongarch/loongarch-str.h: Same. + * config/loongarch/loongarch.opt: Same. + +2024-01-10 Yang Yujie + + * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution + variable with the common la_ prefix. + * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution + flags as saved using TargetVariable. + * config/loongarch/loongarch.opt: Same. + * config/loongarch/loongarch-def.h: Define evolution_set to + mark changes to the -march default. + * config/loongarch/loongarch-driver.cc: Same. + * config/loongarch/loongarch-opts.cc: Same. + * config/loongarch/loongarch-opts.h: Define and use ISA evolution + conditions around the la_target structure. + * config/loongarch/loongarch.cc: Same. + * config/loongarch/loongarch.md: Same. + * config/loongarch/loongarch-builtins.cc: Same. + * config/loongarch/loongarch-c.cc: Same. + * config/loongarch/lasx.md: Same. + * config/loongarch/lsx.md: Same. + * config/loongarch/sync.md: Same. + +2024-01-09 Jeff Law + + * config/epiphany/constraints.md (Car): Allow -1024..1023, no more, + no less. + +2024-01-09 Richard Sandiford + + * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute. + +2024-01-09 Tamar Christina + + * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused + restart_loop. + (vectorizable_live_operation): Likewise. + +2024-01-09 Tamar Christina + + PR tree-optimization/113199 + * tree-vect-loop.cc (vectorizable_live_operation_1): Use + BIT_FIELD_REF. + +2024-01-09 Jakub Jelinek + + PR target/113270 + * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles. + * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern + GTY(()) declaration before the definition, drop GTY(()) drom the + definition. + +2024-01-09 Richard Biener + + PR tree-optimization/113026 + * tree-vect-loop-manip.cc (vect_do_peeling): Remove + redundant and wrong niter bound setting. Move niter + bound adjustment down. + +2024-01-09 Tamar Christina + + PR middle-end/113163 + * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): + Reject non-linear inductions that aren't supported. + +2024-01-09 Roger Sayle + + * config/arc/arc.cc (arc_shift_alg): New enumerated type for + left shift implementation strategies. + (arc_shift_info): Type for each entry of the shift strategy table. + (arc_shift_context_idx): Return a integer value for each code + generation context, used as an index + (arc_ashl_alg): Table indexed by context and shifted bit count. + (arc_split_ashl): Use the arc_ashl_alg table to select SImode + left shift implementation. + (arc_rtx_costs) : Use the arc_ashl_alg table to + provide accurate costs, when optimizing for speed or size. + +2024-01-09 Juzhe-Zhong + + * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check. + +2024-01-09 Julian Brown + + * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been + processed out before gimplification. + * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION. + * tree.def (OMP_ARRAY_SECTION): New tree code. + +2024-01-09 Jakub Jelinek + + PR tree-optimization/113210 + * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST + value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into + INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST + minus 1. + +2024-01-09 Eric Botcazou + + PR rtl-optimization/113140 + * reorg.cc (fill_slots_from_thread): If we are to branch after the + last instruction of the function, create an end label. + +2024-01-09 Roger Sayle + Hongtao Liu + + PR target/112992 + * config/i386/i386-expand.cc + (ix86_convert_const_wide_int_to_broadcast): Allow call to + ix86_expand_vector_init_duplicate to fail, and return NULL_RTX. + (ix86_broadcast_from_constant): Revert recent change; Return a + suitable MEMREF independently of mode/target combinations. + (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate + to decide whether expansion is possible/preferrable. Only try + forcing DImode constants to memory (and trying again) if calling + ix86_expand_vector_init_duplicate fails with an DImode immediate + constant. + (ix86_expand_vector_init_duplicate) : Try using + V4SImode for suitable immediate constants. + : Try using V8SImode for suitable constants. + : Fail for CONST_INT_P, i.e. use constant pool. + : Likewise. + : For CONST_INT_P try using V4SImode via widen. + : For CONT_INT_P try using V8HImode via widen. +