diff options
author | Jakub Jelinek <jakub@redhat.com> | 2023-01-01 16:20:13 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2023-01-01 16:20:13 +0100 |
commit | d64f877906111645af0217d4d54993a7b2ecbd2e (patch) | |
tree | 166f7a493ae415bb43256ff7ee1492cda0cfc5f9 /gcc/ChangeLog-2022 | |
parent | d423e8dc59045d8f281dcb1a02559cb6f91456bf (diff) | |
download | gcc-d64f877906111645af0217d4d54993a7b2ecbd2e.zip gcc-d64f877906111645af0217d4d54993a7b2ecbd2e.tar.gz gcc-d64f877906111645af0217d4d54993a7b2ecbd2e.tar.bz2 |
Rotate ChangeLog files.
Rotate ChangeLog files for ChangeLogs with yearly cadence.
Diffstat (limited to 'gcc/ChangeLog-2022')
-rw-r--r-- | gcc/ChangeLog-2022 | 35086 |
1 files changed, 35086 insertions, 0 deletions
diff --git a/gcc/ChangeLog-2022 b/gcc/ChangeLog-2022 new file mode 100644 index 0000000..248b5de --- /dev/null +++ b/gcc/ChangeLog-2022 @@ -0,0 +1,35086 @@ +2022-12-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + Iain Sandoe <iain@sandoe.co.uk> + + PR modula2/107612 + * Makefile.in: Make the configured libintl includes avaiable in INCINTL. + (BUILD_CPPFLAGS): Use INCINTL. + +2022-12-30 Alexandre Oliva <oliva@adacore.com> + + * hash-table.h (check_complete_insertion, check_insert_slot): + New hash_table methods. + (m_inserting_slot): New hash_table field. + (begin, hash_table ctors, ~hash_table): Check previous insert. + (expand, empty_slow, clear_slot, find_with_hash): Likewise. + (remote_elt_with_hash, traverse_noresize): Likewise. + (gt_pch_nx): Likewise. + (find_slot_with_hash): Likewise. Record requested insert. + +2022-12-30 Stam Markianos-Wright <stam.markianos-wright@arm.com> + + PR target/107714 + * config/arm/arm-protos.h (mve_struct_mem_operand): New protoype. + * config/arm/arm.cc (mve_struct_mem_operand): New function. + * config/arm/constraints.md (Ug): New constraint. + * config/arm/mve.md (mve_vst4q<mode>): Change constraint. + (mve_vst2q<mode>): Likewise. + (mve_vld4q<mode>): Likewise. + (mve_vld2q<mode>): Likewise. + * config/arm/predicates.md (mve_struct_operand): New predicate. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * hash-map.h (put, get_or_insert): Check that added entry + doesn't look deleted either. + * hash-set.h (add): Likewise. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * tree-parloops.cc (take_address_of): Skip INSERT if !gsi. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * hash-map.h (put, get_or_insert): Check that entry does not + look empty after insertion. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * hash-set.h (add): Check that the inserted entry does not + look empty. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * trans-mem.cc (split_bb_make_tm_edge): Record new node in + tm_restart. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * postreload-gcse.cc (lookup_expr_in_table): Use NO_INSERT. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * tree-inline.cc (declare_return_variable): Don't remap NULL + default def of result. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * tree-ssa-loop-niter.cc (expand_simple_operands): Refrain + from caching NULL TREE_OPERANDs. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * tree-inline.cc (insert_decl_map): Skip mapping a NULL decl + as value to itself. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * varpool.cc (symbol_table::remove_unreferenced_decls): Do not + add NULL vnodes to referenced table. + +2022-12-29 Alexandre Oliva <oliva@adacore.com> + + * tree-ssa-scopedtables.cc + (avail_exprs_stack::lookup_avail_expr): Finish hash table + insertion before further lookups. + +2022-12-29 Max Filippov <jcmvbkbc@gmail.com> + + * config/xtensa/xtensa.cc (xtensa_return_in_memory): Use + GP_RETURN_* instead of magic constant. + +2022-12-29 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_expand_prologue): Fix to check + DF availability before use of DF_* macros. + +2022-12-28 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (*clzsi2_lzcnt_zext_2): define_insn_and_split + to match ZERO_EXTEND form of *clzsi2_lzcnt_zext. + (*clzsi2_lzcnt_zext_2_falsedep): Likewise, new define_insn to match + ZERO_EXTEND form of *clzsi2_lzcnt_zext_falsedep. + (*bmi2_bzhi_zero_extendsidi_5): Likewise, new define_insn to match + ZERO_EXTEND form of *bmi2_bzhi_zero_extendsidi. + (*popcountsi2_zext_2): Likewise, new define_insn_and_split to match + ZERO_EXTEND form of *popcountsi2_zext. + (*popcountsi2_zext_2_falsedep): Likewise, new define_insn to match + ZERO_EXTEND form of *popcountsi2_zext_falsedep. + (*popcounthi2_2): Likewise, new define_insn_and_split to match + ZERO_EXTEND form of *popcounthi2. + (define_peephole2): ZERO_EXTEND variant of HImode popcount&1 using + parity flag peephole2. + +2022-12-28 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-expand.cc (ix86_split_ashl): Call + ix86_expand_clear to generate an xor instruction. + +2022-12-28 Martin Liska <mliska@suse.cz> + + PR tree-optimization/108137 + * tree-ssa-strlen.cc (get_range_strlen_phi): Reject anything + different from INTEGER_CST. + +2022-12-28 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/riscv-vsetvl.h (vl_vtype_info::get_avl_info): + Return const reference rather than value. + +2022-12-27 Jeff Law <jlaw@ventanamicro.com> + + * config/riscv/riscv.md: Add missing modes to last patch.t + +2022-12-27 Raphael Moreira Zinsly <rzinsly@ventanamicro.com> + + PR target/95632 + PR target/106602 + * config/riscv/riscv.md: New pattern to simulate complex + const_int loads. + +2022-12-27 Christoph Müllner <christoph.muellner@vrull.eu> + + * config/riscv/riscv.cc (riscv_next_saved_reg): New function. + (riscv_is_eh_return_data_register): New function. + (riscv_for_each_saved_reg): Restructure loop. + +2022-12-27 Christoph Müllner <christoph.muellner@vrull.eu> + + * config/riscv/riscv.md: Sync comments with code. + +2022-12-27 jinma <jinma@linux.alibaba.com> + + * common/config/riscv/riscv-common.cc: + +2022-12-27 Jonathan Yong <10walls@gmail.com> + + * configure.ac: use grep -i for case insensitive test. + * configure: Regenerate. + +2022-12-27 Max Filippov <jcmvbkbc@gmail.com> + + * config/xtensa/xtensa.md (unspec): Extract UNSPEC_* constants + into this enum. + (unspecv): Extract UNSPECV_* constants into this enum. + +2022-12-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (set_frame_ptr): Fix to reflect + TARGET_DENSITY. + +2022-12-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.h (GP_RETURN, GP_RETURN_REG_COUNT): + Change to GP_RETURN_FIRST and GP_RETURN_LAST, respectively. + * config/xtensa/xtensa.cc (xtensa_function_value, + xtensa_libcall_value, xtensa_function_value_regno_p): Ditto. + +2022-12-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_expand_prologue): Modify to + exit the inspection loops as soon as the necessity of stack + pointer is found. + +2022-12-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/elf.h: Tabify, and trim trailing spaces. + * config/xtensa/linux.h: Likewise. + * config/xtensa/uclinux.h: Likewise. + * config/xtensa/xtensa-dynconfig.c: Likewise. + * config/xtensa/xtensa.cc: Likewise. + * config/xtensa/xtensa.h: Likewise. + * config/xtensa/xtensa.md: Likewise. + +2022-12-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vsetvl.cc + (pass_vsetvl::compute_global_backward_infos): Change to visit CFG. + (pass_vsetvl::prune_expressions): Ditto. + +2022-12-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vsetvl.cc (change_insn): Remove pp_print. + (avl_info::avl_info): Add copy function. + (vector_insn_info::dump): Remove pp_print. + * config/riscv/riscv-vsetvl.h: Add copy function. + +2022-12-27 Kewen Lin <linkw@linux.ibm.com> + + PR target/106680 + * common/config/rs6000/rs6000-common.cc (rs6000_handle_option): Remove + the adjustment for option powerpc64 in -m64 handling, and remove the + whole -m32 handling. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): When no + explicit powerpc64 option is provided, enable it for -m64. For 32 bit + and OS_MISSING_POWERPC64, disable powerpc64 if it's enabled but not + specified explicitly. + +2022-12-26 liuhongt <hongtao.liu@intel.com> + + PR target/55522 + PR target/36821 + * config/i386/gnu-user-common.h (GNU_USER_TARGET_MATHFILE_SPEC): + Link crtfastmath.o whenever -mdaz-ftz is specified. Don't link + crtfastmath.o when -share or -mno-daz-ftz is specified. + * config/i386/i386.opt (mdaz-ftz): New option. + * doc/invoke.texi (x86 options): Document mftz-daz. + +2022-12-25 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386-builtin.def (__builtin_ia32_movss): Update + CODE_FOR_sse_movss to CODE_FOR_sse_movss_v4sf. + (__builtin_ia32_movsd): Likewise, update CODE_FOR_sse2_movsd to + CODE_FOR_sse2_movsd_v2df. + * config/i386/i386-expand.cc (split_convert_uns_si_sse): Update + gen_sse_movss call to gen_sse_movss_v4sf, and gen_sse2_movsd call + to gen_sse2_movsd_v2df. + (expand_vec_perm_movs): Also allow V4SImode with TARGET_SSE and + V2DImode with TARGET_SSE2. + * config/i386/sse.md + (avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>): Update + gen_sse_movss call to gen_sse_movss_v4sf. + (avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>): Likewise. + (sse_movss_<mode>): Renamed from sse_movss using VI4F_128 mode + iterator to handle both V4SF and V4SI. + (sse2_movsd_<mode>): Likewise, renamed from sse2_movsd using + VI8F_128 mode iterator to handle both V2DF and V2DI. + +2022-12-23 Jakub Jelinek <jakub@redhat.com> + Aldy Hernandez <aldyh@redhat.com> + + * tree-ssa-phiopt.cc (value_replacement): Instead of resetting + phires range info, union it with carg. + +2022-12-23 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/108068 + * tree.h (real_maybe_zerop): Declare. + * tree.cc (real_maybe_zerop): Define. + * tree-ssa-dom.cc (record_edge_info): Use it instead of + real_zerop or TREE_CODE (op1) == SSA_NAME || real_zerop. Always set + can_infer_simple_equiv to false for decimal floating point types. + +2022-12-23 Roger Sayle <roger@nextmovesoftware.com> + + PR target/107548 + * config/i386/i386-features.cc (scalar_chain::add_insn): The + operands of a VEC_SELECT don't need to added to the scalar chain. + (general_scalar_chain::compute_convert_gain) <case VEC_SELECT>: + Provide gains for performing STV on a VEC_SELECT. + (general_scalar_chain::convert_insn): Convert VEC_SELECT to pshufd, + psrldq or no-op. + (general_scalar_to_vector_candidate_p): Handle VEC_SELECT of a + single element from a vector register to a scalar register. + +2022-12-23 H.J. Lu <hjl.tools@gmail.com> + Roger Sayle <roger@nextmovesoftware.com> + + PR target/106933 + PR target/106959 + * config/i386/i386-features.cc (single_def_chain_p): New predicate + function to check that a pseudo's use-def chain is in SSA form. + (timode_scalar_to_vector_candidate_p): Check that TImode regs that + are SET_DEST or SET_SRC of an insn match/are single_def_chain_p. + +2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/vector.md: Fix contraints. + +2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-protos.h (get_avl_type_rtx): New function. + * config/riscv/riscv-v.cc (get_avl_type_rtx): Ditto. + * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): New + class. + (BASE): Ditto. + * config/riscv/riscv-vector-builtins-bases.h: Ditto. + * config/riscv/riscv-vector-builtins-functions.def (vle): Ditto. + (vse): Ditto. + * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Ditto. + (struct loadstore_def): Ditto. + (SHAPE): Ditto. + * config/riscv/riscv-vector-builtins-shapes.h: Ditto. + * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_U_OPS): New + macro. + (DEF_RVV_F_OPS): Ditto. + (vuint8mf8_t): Add corresponding mask type. + (vuint8mf4_t): Ditto. + (vuint8mf2_t): Ditto. + (vuint8m1_t): Ditto. + (vuint8m2_t): Ditto. + (vuint8m4_t): Ditto. + (vuint8m8_t): Ditto. + (vuint16mf4_t): Ditto. + (vuint16mf2_t): Ditto. + (vuint16m1_t): Ditto. + (vuint16m2_t): Ditto. + (vuint16m4_t): Ditto. + (vuint16m8_t): Ditto. + (vuint32mf2_t): Ditto. + (vuint32m1_t): Ditto. + (vuint32m2_t): Ditto. + (vuint32m4_t): Ditto. + (vuint32m8_t): Ditto. + (vuint64m1_t): Ditto. + (vuint64m2_t): Ditto. + (vuint64m4_t): Ditto. + (vuint64m8_t): Ditto. + (vfloat32mf2_t): Ditto. + (vfloat32m1_t): Ditto. + (vfloat32m2_t): Ditto. + (vfloat32m4_t): Ditto. + (vfloat32m8_t): Ditto. + (vfloat64m1_t): Ditto. + (vfloat64m2_t): Ditto. + (vfloat64m4_t): Ditto. + (vfloat64m8_t): Ditto. + * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Adjust for new + macro. + (DEF_RVV_I_OPS): Ditto. + (DEF_RVV_U_OPS): New macro. + (DEF_RVV_F_OPS): New macro. + (use_real_mask_p): New function. + (use_real_merge_p): Ditto. + (get_tail_policy_for_pred): Ditto. + (get_mask_policy_for_pred): Ditto. + (function_builder::apply_predication): Ditto. + (function_builder::append_base_name): Ditto. + (function_builder::append_sew): Ditto. + (function_expander::add_vundef_operand): Ditto. + (function_expander::add_mem_operand): Ditto. + (function_expander::use_contiguous_load_insn): Ditto. + (function_expander::use_contiguous_store_insn): Ditto. + * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Adjust for + adding mask type. + (vbool64_t): Ditto. + (vbool32_t): Ditto. + (vbool16_t): Ditto. + (vbool8_t): Ditto. + (vbool4_t): Ditto. + (vbool2_t): Ditto. + (vbool1_t): Ditto. + (vint8mf8_t): Ditto. + (vint8mf4_t): Ditto. + (vint8mf2_t): Ditto. + (vint8m1_t): Ditto. + (vint8m2_t): Ditto. + (vint8m4_t): Ditto. + (vint8m8_t): Ditto. + (vint16mf4_t): Ditto. + (vint16mf2_t): Ditto. + (vint16m1_t): Ditto. + (vint16m2_t): Ditto. + (vint16m4_t): Ditto. + (vint16m8_t): Ditto. + (vint32mf2_t): Ditto. + (vint32m1_t): Ditto. + (vint32m2_t): Ditto. + (vint32m4_t): Ditto. + (vint32m8_t): Ditto. + (vint64m1_t): Ditto. + (vint64m2_t): Ditto. + (vint64m4_t): Ditto. + (vint64m8_t): Ditto. + (vfloat32mf2_t): Ditto. + (vfloat32m1_t): Ditto. + (vfloat32m2_t): Ditto. + (vfloat32m4_t): Ditto. + (vfloat32m8_t): Ditto. + (vfloat64m1_t): Ditto. + (vfloat64m4_t): Ditto. + * config/riscv/riscv-vector-builtins.h + (function_expander::add_output_operand): New function. + (function_expander::add_all_one_mask_operand): Ditto. + (function_expander::add_fixed_operand): Ditto. + (function_expander::vector_mode): Ditto. + (function_base::apply_vl_p): Ditto. + (function_base::can_be_overloaded_p): Ditto. + * config/riscv/riscv-vsetvl.cc (get_vl): Remove restrict of supporting + AVL is not VLMAX. + * config/riscv/t-riscv: Add include file. + +2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins-shapes.cc (struct vsetvl_def): Add + "__riscv_" prefix. + +2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins-bases.cc: Change it to no side effects. + * config/riscv/vector.md (@vsetvl<mode>_no_side_effects): New pattern. + +2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins-bases.cc: Remove side effects. + +2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vsetvl.cc (anticipatable_occurrence_p): Fix + incorrect annotations. + (available_occurrence_p): Ditto. + (backward_propagate_worthwhile_p): Ditto. + (can_backward_propagate_p): Ditto. + +2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vsetvl.cc (vlmax_avl_insn_p): Fix multi-line + conditional. + (vsetvl_insn_p): Ditto. + (same_bb_and_before_p): Ditto. + (same_bb_and_after_or_equal_p): Ditto. + +2022-12-22 Andrew Carlotti <andrew.carlotti@arm.com> + + * doc/md.texi: Move example code remark next to it's code block. + +2022-12-22 Andrew Carlotti <andrew.carlotti@arm.com> + + * doc/md.texi: Fix inconsistent example name. + +2022-12-22 Andrew Carlotti <andrew.carlotti@arm.com> + + * doc/md.texi: Fix incorrect pxref. + +2022-12-22 Richard Biener <rguenther@suse.de> + + PR bootstrap/106482 + * doc/install.texi (ISO C++11 Compiler): Document GCC version + known to work. + +2022-12-22 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/108166 + * tree-ssa-phiopt.cc (value_replacement): For the maybe_equal_p + case turned into equal_p reset SSA_NAME_RANGE_INFO of phi result. + +2022-12-22 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/108193 + * cse.cc (compute_const_anchors): Change n type to + unsigned HOST_WIDE_INT, adjust comparison against it to avoid + warnings. Formatting fix. + (insert_const_anchor): Use gen_int_mode instead of GEN_INT. + +2022-12-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107451 + * tree-vect-stmts.cc (vectorizable_load): Avoid loading + SLP group members from group numbers in excess of the + vectorization factor. + +2022-12-22 Jakub Jelinek <jakub@redhat.com> + + * config/aarch64/t-aarch64 (TM_H): Don't add aarch64-cores.def, + add aarch64-fusion-pairs.def, aarch64-tuning-flags.def and + aarch64-option-extensions.def. + (OPTIONS_H_EXTRA): Don't add aarch64-fusion-pairs.def nor + aarch64-tuning-flags.def. + +2022-12-22 Jan Hubicka <hubicka@ucw.cz> + + * config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Add + TARGET_AVX512_SPLIT_REGS + * config/i386/i386-options.cc (ix86_option_override_internal): + Honor x86_TONE_AVOID_256FMA_CHAINS. + * config/i386/i386.cc (ix86_vec_cost): Honor TARGET_AVX512_SPLIT_REGS. + (ix86_reassociation_width): Likewise. + * config/i386/i386.h (TARGET_AVX512_SPLIT_REGS): New tune. + * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable + for znver4. + (X86_TUNE_USE_GATHER_4PARTS): Likewise. + (X86_TUNE_AVOID_256FMA_CHAINS): Set for znver4. + (X86_TUNE_AVOID_512FMA_CHAINS): New utne; set for znver4. + (X86_TUNE_AVX256_OPTIMAL): Add znver4. + (X86_TUNE_AVX512_SPLIT_REGS): New tune. + (X86_TUNE_AVX256_MOVE_BY_PIECES): Add znver1-3. + (X86_TUNE_AVX256_STORE_BY_PIECES): Add znver1-3. + (X86_TUNE_AVX512_MOVE_BY_PIECES): Add znver4. + (X86_TUNE_AVX512_STORE_BY_PIECES): Add znver4. + +2022-12-22 Jan Hubicka <hubicka@ucw.cz> + + * config/i386/x86-tune-costs.h (znver4_cost): Upate costs of FP and SSE + moves, division multiplication, gathers, L2 cache size, and more + complex FP instrutions. + +2022-12-21 Andrew Pinski <apinski@marvell.com> + + PR tree-optimization/105532 + * match.pd (~(X >> Y) -> ~X >> Y): Check if it is an integral + type before calling tree_nonzero_bits. + (popcount(X) + popcount(Y)): Likewise. + (popcount(X&C1)): Likewise. + +2022-12-21 Chung-Lin Tang <cltang@codesourcery.com> + + * config/nvptx/nvptx.cc (nvptx_print_operand): Add 'p' case, adjust + comments. + (enum nvptx_builtins): Add NVPTX_BUILTIN_BAR_RED_AND, + NVPTX_BUILTIN_BAR_RED_OR, and NVPTX_BUILTIN_BAR_RED_POPC. + (nvptx_expand_bar_red): New function. + (nvptx_init_builtins): + Add DEFs of __builtin_nvptx_bar_red_[and/or/popc]. + (nvptx_expand_builtin): Use nvptx_expand_bar_red to expand + NVPTX_BUILTIN_BAR_RED_[AND/OR/POPC] cases. + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add + UNSPECV_BARRED_AND, UNSPECV_BARRED_OR, and UNSPECV_BARRED_POPC. + (BARRED): New int iterator. + (barred_op,barred_mode,barred_ptxtype): New int attrs. + (nvptx_barred_<barred_op>): New define_insn. + +2022-12-21 Richard Biener <rguenther@suse.de> + + PR middle-end/107994 + * gimplify.cc (gimplify_expr): Catch errorneous comparison + operand. + +2022-12-21 Jan Hubicka <hubicka@ucw.cz> + + * lto-opts.cc (lto_write_options): Also skip -fwhole-program. + +2022-12-21 Jan Hubicka <jh@suse.cz> + + * lto-cgraph.cc (lto_output_node): When doing WPA in incremental link + pass down resolution info. + +2022-12-21 Jan Hubicka <hubicka@ucw.cz> + + * doc/invoke.texi: Fix documentation of -fwhole-program with LTO + and document behaviour for incremental linking. + +2022-12-21 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Fix the + location for OPTION_MASK_P10_FUSION flag setting. + +2022-12-21 Kewen Lin <linkw@linux.ibm.com> + + * fold-const.cc (fold_convert_const_real_from_real): Treat floating + point conversion to a type with same mode as copy instead of normal + convertFormat. + +2022-12-21 Kewen Lin <linkw@linux.ibm.com> + + PR target/106736 + * config/rs6000/mma.md (define_expand movoo): Call function + rs6000_opaque_type_invalid_use_p to check and emit error message for + the invalid use of opaque type. + (define_expand movxo): Likewise. + * config/rs6000/rs6000-protos.h + (rs6000_opaque_type_invalid_use_p): New function declaration. + (currently_expanding_gimple_stmt): New extern declaration. + * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): New + function. + +2022-12-21 Jason Merrill <jason@redhat.com> + + * fold-const.cc (fold_convert_loc): Check return value of + protected_set_expr_location_unshare. + +2022-12-21 Jason Merrill <jason@redhat.com> + + PR c++/84471 + PR c++/107504 + * fold-const.cc (protected_set_expr_location_unshare): Not static. + * tree.h: Declare it. + * tree.cc (decl_value_expr_insert): Use it. + +2022-12-20 Patrick Palka <ppalka@redhat.com> + + PR c++/101886 + * tree.cc (walk_tree_1) <case TREE_VEC>: Walk the elements + in forward instead of reverse order. + <case VECTOR_CST>: Likewise. + +2022-12-20 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/108139 + * gimple-range-cache.cc (ranger_cache::fill_block_cache): Do not + use equivalences originating from PHIS. + +2022-12-20 Richard Biener <rguenther@suse.de> + + PR d/104749 + * doc/install.texi (GDC): Document GDC 9.4 or later is required + to build the D language frontend. + +2022-12-20 Jiufu Guo <guojiufu@linux.ibm.com> + + PR target/103743 + * config/rs6000/rs6000-protos.h (can_be_rotated_to_lowbits): New. + (can_be_rotated_to_positive_16bits): New. + (can_be_rotated_to_negative_15bits): New. + * config/rs6000/rs6000.cc (can_be_rotated_to_lowbits): New definition. + (can_be_rotated_to_positive_16bits): New definition. + (can_be_rotated_to_negative_15bits): New definition. + * config/rs6000/rs6000.md (*rotate_on_cmpdi): New define_insn_and_split. + (eqne): Move earlier. + +2022-12-19 Jason Merrill <jason@redhat.com> + + * sort.cc: Disable -Wconditionally-supported in + CHECKING_P code. + +2022-12-19 Jason Merrill <jason@redhat.com> + + PR c++/64867 + * configure.ac (strict_warn): Add -Wconditionally-supported. + * configure: Regenerate. + +2022-12-19 Richard Biener <rguenther@suse.de> + + PR tree-optimization/108164 + * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): + Perform vect_step_op_add update in the appropriate type. + +2022-12-19 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/arm-c.cc (__ARM_FEATURE_CLZ): Fix definition of + preprocessor macro when target has CLZ in another ISA. + +2022-12-19 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/vector.md: Remove vste. + +2022-12-19 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config.gcc: Add riscv-vsetvl.o. + * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Add VSETVL PASS + location. + * config/riscv/riscv-protos.h (make_pass_vsetvl): New function. + (enum avl_type): New enum. + (get_ta): New function. + (get_ma): Ditto. + (get_avl_type): Ditto. + (calculate_ratio): Ditto. + (enum tail_policy): New enum. + (enum mask_policy): Ditto. + * config/riscv/riscv-v.cc (calculate_ratio): New function. + (emit_pred_op): change the VLMAX mov codgen. + (get_ta): New function. + (get_ma): Ditto. + (enum tail_policy): Change enum. + (get_prefer_tail_policy): New function. + (enum mask_policy): Change enum. + (get_prefer_mask_policy): New function. + * config/riscv/t-riscv: Add riscv-vsetvl.o + * config/riscv/vector.md: Adjust attribute and pattern for VSETVL + PASS. + (@vlmax_avl<mode>): Ditto. + (@vsetvl<mode>_no_side_effects): Delete. + (vsetvl_vtype_change_only): New MD pattern. + (@vsetvl_discard_result<mode>): Ditto. + * config/riscv/riscv-vsetvl.cc: New file. + * config/riscv/riscv-vsetvl.h: New file. + +2022-12-19 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-switch.def (ENTRY): Correct attributes. + +2022-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + PR target/108140 + * config/aarch64/aarch64-builtins.cc + (aarch64_expand_builtin_data_intrinsic): Handle NULL target. + +2022-12-19 Jakub Jelinek <jakub@redhat.com> + + * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): Add libhwasan_preinit.o + to link spec if not -shared. + +2022-12-19 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-v.cc (emit_vlmax_vsetvl): Pass through VLMUL enum + instead of machine mode. + * config/riscv/riscv-vector-builtins-bases.cc: Ditto. + * config/riscv/riscv.cc (riscv_print_operand): Print LMUL by enum vlmul + instead of machine mode. + +2022-12-19 Jiufu Guo <guojiufu@linux.ibm.com> + + PR target/106708 + * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Add using + "li; x?oris" to build constant. + +2022-12-19 liuhongt <hongtao.liu@intel.com> + + PR target/55522 + * config/i386/gnu-user-common.h (GNU_USER_TARGET_MATHFILE_SPEC): + Don't add crtfastmath.o for -shared. + * doc/invoke.texi (-shared): Add related documentation. + +2022-12-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * config.gcc: Determine Solaris minor version. + Obsolete *-*-solaris2.11.[0-3]*. + * doc/install.texi (Specific, *-*-solaris2*): Document it. + +2022-12-17 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000-logue.cc (rs6000_output_function_epilogue): + Handle GNU Rust for the tbtab lang field. + +2022-12-16 John David Anglin <danglin@gcc.gnu.org> + + * config/pa/pa.cc (pa_option_override): Disable -fstack-protector. + +2022-12-16 Vladimir N. Makarov <vmakarov@redhat.com> + + Revert: + 2022-12-15 Vladimir N. Makarov <vmakarov@redhat.com> + + * ira-costs.cc: Include print-rtl.h. + (record_reg_classes, scan_one_insn): Add code to print debug info. + * ira.cc (ira_init_register_move_cost): Check that at least one hard + reg of the mode are in the class contents to calculate the + register move costs. + +2022-12-16 Qing Zhao <qing.zhao@oracle.com> + + * doc/invoke.texi: Document -Wstrict-flex-arrays option. + * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Add two more + arguments. + (array_bounds_checker::check_array_ref): Issue warnings for + -Wstrict-flex-arrays. + * opts.cc (finish_options): Issue warning for unsupported combination + of -Wstrict_flex_arrays and -fstrict-flex-array. + * tree-vrp.cc (execute_ranger_vrp): Enable the pass when + warn_strict_flex_array is true. + +2022-12-16 Palmer Dabbelt <palmer@rivosinc.com> + + * config/riscv/riscv.cc (riscv_option_override): Fix comment + wording. + +2022-12-16 Palmer Dabbelt <palmer@rivosinc.com> + + * doc/extend.texi (__builtin_riscv_pause): Imply + Xgnuzihintpausestate. + +2022-12-16 Richard Biener <rguenther@suse.de> + + PR middle-end/108086 + * tree-inline.cc (remap_ssa_name): Do not unshare the + result from the decl_map. + +2022-12-16 Richard Biener <rguenther@suse.de> + + PR middle-end/108086 + * tree-inline.cc (copy_bb): Remove handling of (foo *)&this->m + substitution which is done in remap_gimple_op_r via + re-gimplifying. + +2022-12-16 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/106751 + * loop-invariant.cc (move_invariant_reg): If preheader bb ends + with a JUMP_INSN, split the preheader edge and emit invariants + into the new preheader basic block. + +2022-12-16 Richard Biener <rguenther@suse.de> + + PR middle-end/108086 + * tree-inline.cc (remap_gimple_stmt): Add stmts to the + sequence without updating them. Simplify x == x detection. + +2022-12-16 Haochen Jiang <haochen.jiang@intel.com> + + * config/i386/cmpccxaddintrin.h + (__cmpccxadd_epi32): Rename to _cmpccxadd_epi32. + (__cmpccxadd_epi64): Rename to _cmpccxadd_epi64. + +2022-12-15 Vladimir N. Makarov <vmakarov@redhat.com> + + * ira-costs.cc: Include print-rtl.h. + (record_reg_classes, scan_one_insn): Add code to print debug info. + * ira.cc (ira_init_register_move_cost): Check that at least one hard + reg of the mode are in the class contents to calculate the + register move costs. + +2022-12-15 Siddhesh Poyarekar <siddhesh@gotplt.org> + + * doc/extend.texi (__builtin_dynamic_object_size): Document + builtin. + * doc/passes.texi + (Optimize calls to @code{__builtin_object_size}): Also mention + __builtin_dynamic_object_size. + +2022-12-15 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR middle-end/70090 + * doc/invoke.texi (-fsanitize=object-size): Use + __builtin_dynamic_object_size instead of + __builtin_object_size. + +2022-12-15 Richard Biener <rguenther@suse.de> + + PR middle-end/108086 + * tree-inline.cc (copy_edges_for_bb): Walk stmts backwards for + splitting the block to avoid quadratic behavior with setting + stmts BB on multliple splits. + +2022-12-15 Spacetown <michael.foerderer@gmx.de> + + PR gcov-profile/107537 + * gcov.cc (output_branch_count): Add annotation '(fallthrough)' + or '(throw)' also to uncovered branches. + +2022-12-15 Richard Biener <rguenther@suse.de> + + PR middle-end/108086 + * tree-inline.cc (copy_edges_for_bb): Do not update all + stmts again. + +2022-12-15 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/108095 + * tree-into-ssa.cc (maybe_register_def): Insert debug stmt + on all non-EH edges from asm goto if they have a single + predecessor rather than asserting there is at most one such edge. + Test whether there are no PHI nodes next to the single predecessor + test. + +2022-12-14 David Faust <david.faust@oracle.com> + + PR target/106773 + * btfout.cc (get_section_name): New function. + (btf_collect_datasec): Use it here. Process functions, marking them + 'extern' and generating DATASEC entries for them as appropriate. Move + creation of BTF_KIND_FUNC records to here... + (btf_dtd_emit_preprocess_cb): ... from here. + +2022-12-14 David Faust <david.faust@oracle.com> + + PR target/106773 + * btfout.cc (btf_collect_datasec): Correct size of void entries. + (btf_dvd_emit_preprocess_cb): Do not skip emitting variables which + refer to void types. + (btf_init_postprocess): Create 'const void' type record if needed and + adjust variables to refer to it as appropriate. + +2022-12-14 David Faust <david.faust@oracle.com> + + PR target/106773 + * btfout.cc (btf_collect_datasec): Mark extern variables as such. + (btf_dvd_emit_preprocess_cb): Skip non-defining extern variable decl + if there is a defining decl for the same variable. + (btf_asm_varent): Accomodate 'extern' linkage. + +2022-12-14 Martin Jambor <mjambor@suse.cz> + + * ipa-sra.cc (create_parameter_descriptors): Consider the first + parameter of a method safe to dereference. + +2022-12-14 Martin Jambor <mjambor@suse.cz> + + * ipa-sra.cc (loaded_decls): Adjust comment. + (scan_expr_access): Also detect assignments of address of local + variables to a variable. Bail out early on SSA_NAMEs and + constants as an optimization. + +2022-12-14 Gaius Mulley <gaiusmod2@gmail.com> + + * configure.ac (HAVE_PYTHON): Test for Python3 added. + * dwarf2out.cc (gen_compile_unit_die): Check language_string + and language to DW_LANG_Modula2. + * doc/install.texi: Add m2 as a language. + (--disable-libgm2): Documented. Add make check-m2 to testing selected + tests. + * doc/sourcebuild.texi (GM2): New prerequisite item. + (Python3 modules) New item. + (libgm2) Added. + (gcc/m2) Added. + * configure: Rebuilt. + * config.in: Rebuilt. + * doc/gm2.texi: New file. + +2022-12-14 Martin Jambor <mjambor@suse.cz> + + * doc/invoke.texi (ipa-sra-ptrwrap-growth-factor): Fix the + description. + * params.opt (ipa-sra-ptrwrap-growth-factor): Likewise. + +2022-12-14 Tamar Christina <tamar.christina@arm.com> + + PR target/107988 + * config/aarch64/aarch64.cc + (aarch64_vectorize_can_special_div_by_constant): Ensure input and output + RTL are registers. + +2022-12-14 Martin Liska <mliska@suse.cz> + + * doc/invoke.texi: Document ipa-sra-ptrwrap-growth-factor. + +2022-12-14 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107617 + * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): + Handle negative pd.rhs_off. + (vn_reference_lookup_3): Properly provide pd.rhs_off + for .LEN_STORE on big-endian targets. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + * ipa-param-manipulation.cc + (ipa_param_body_adjustments::modify_expression): Bail out early if + there are no replacements. + (ipa_param_body_adjustments::modify_assignment): Likewise. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + * ipa-sra.cc (isra_param_desc): New fields safe_size, + conditionally_dereferenceable and safe_size_set. + (struct gensum_param_desc): New field conditionally_dereferenceable. + (struct isra_param_flow): Updated comment of field unit_size. + (ipa_sra_function_summaries::duplicate): Copy the new fields. + (isra_call_summary::dump): Dump unit_size when representing safe_size. + (dump_gensum_param_descriptor): Dump new flag. + (dump_isra_param_descriptor): Dump new fields. + (isra_analyze_call): Fill unit_size when it represents known safe + size. + (check_gensum_access): Instead of disqualifying pointers which are not + always dereference, mark them as conditionally dereferencable if loads + are frequent enough. + (process_scan_results): Copy the conditionally_dereferenceable flag. + (isra_write_node_summary): Stream new fields, or assert they are not + initialized yet. + (isra_read_node_info): Stream new fields. + (update_safe_size): New function. + (propagate_param_hints_accross_call): Propagate safe_sizes. + (propagate_hints_to_all_callees): New function. + (adjust_parameter_descriptions): Check conditionally_dereferenceable + candidates, rework dumping. + (ipa_sra_analysis): Move most of hint propagation for one node to + propagate_hints_to_all_callees. Add another loop to stabilize within + SCCs and another one to verify. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + * ipa-sra.cc (isra_param_desc): New field not_specially_constructed. + (struct isra_param_flow): New field constructed_for_calls. + (isra_call_summary::dump): Dump the new flag. + (loaded_decls): New variable. + (dump_isra_param_descriptor): New parameter hints, dump + not_specially_constructed if it is true. + (dump_isra_param_descriptors): New parameter hints, pass it to + dump_isra_param_descriptor. + (ipa_sra_function_summaries::duplicate): Duplicate new flag. + (create_parameter_descriptors): Adjust comment. + (get_gensum_param_desc): Bail out when decl2desc is NULL. + (scan_expr_access): Add loaded local variables to loaded_decls. + (scan_function): Survive if final_bbs is NULL. + (isra_analyze_call): Compute constructed_for_calls flag. + (process_scan_results): Be optimistic about size limits. Do not dump + computed param hints when dumpint IPA-SRA structures. + (isra_write_edge_summary): Stream constructed_for_calls. + (isra_read_edge_summary): Likewise. + (ipa_sra_dump_all_summaries): New parameter hints, pass it to + dump_isra_param_descriptor. + (flip_all_hints_pessimistic): New function. + (flip_all_param_hints_pessimistic): Likewise. + (propagate_param_hints): Likewise. + (disable_unavailable_parameters): Renamed to + adjust_parameter_descriptions. Expand size limits for parameters + which are specially contstructed by all callers. Check limits again.p + (ipa_sra_analysis): Pass required hints to ipa_sra_dump_all_summaries. + Add hint propagation. + (ipa_sra_summarize_function): Initialize and destory loaded_decls, + rearrange so that scan_function is called even when there are no + candidates. + * params.opt (ipa-sra-ptrwrap-growth-factor): New parameter. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + * ipa-sra.cc (ipa_sra_analysis): Move top-down analysis before + bottom-up analysis. Replace FOR_EACH_VEC_ELT with C++11 iteration. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + PR ipa/103585 + * params.opt (ipa-sra-deref-prob-threshold): New parameter. + * doc/invoke.texi (ipa-sra-deref-prob-threshold): Document it. + * ipa-sra.cc (struct gensum_param_access): New field load_count. + (struct gensum_param_desc): New field safe_ref, adjusted comments. + (by_ref_count): Renamed to unsafe_by_ref_count, adjusted all uses. + (dump_gensum_access): Dump the new field. + (dump_gensum_param_descriptor): Likewise. + (create_parameter_descriptors): Set safe_ref field, move setting + by_ref forward. Only increment unsafe_by_ref_count for unsafe + by_ref parameters. + (allocate_access): Initialize new field. + (mark_param_dereference): Adjust indentation. Only add data to + bb_dereferences for unsafe by_ref parameters. + (scan_expr_access): For loads, accumulate BB counts. + (dereference_probable_p): New function. + (check_gensum_access): Fix leading comment, add parameter FUN. + Check cumulative counts of loads for safe by_ref accesses instead + of dereferences. + (process_scan_results): Do not propagate dereference distances for + safe by_ref parameters. Pass fun to check_gensum_access. Safe + by_ref params do not need the postdominance check. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + * ipa-cp.cc (clone_for_param_removal_p): New function. + (estimate_local_effects): Call it before considering cloning + just to remove unused parameters. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + PR ipa/103227 + * ipa-param-manipulation.h (class ipa_param_adjustments): Removed + member function get_updated_index_or_split. + (class ipa_param_body_adjustments): New overload of + register_replacement, new member function append_init_stmts, new + member m_split_agg_csts_inits. + * ipa-param-manipulation.cc: Include ipa-prop.h. + (ipa_param_adjustments::get_updated_index_or_split): Removed. + (ipa_param_body_adjustments::register_replacement): New overload, use + it from the older one. + (ipa_param_body_adjustments::common_initialization): Added the + capability to create replacements for conflicting IPA-CP discovered + constants. + (ipa_param_body_adjustments::ipa_param_body_adjustments): Construct + the new member. + (ipa_param_body_adjustments::append_init_stmts): New function. + * ipa-sra.cc: Include ipa-prop.h. + (push_param_adjustments_for_index): Require IPA-CP transformation + summary as a parameter, do not create replacements which are known to + have constant values. + (process_isra_node_results): Find and pass to the above function the + IPA-CP transformation summary. + * ipa-prop.cc (adjust_agg_replacement_values): Remove the + functionality replacing IPA-SRA created scalar parameters with + constants. Simplify, do not require parameter descriptors, do not + return anything. + (ipcp_transform_function): Simplify now that + adjust_agg_replacement_values does not change cfg. Move definition + and initialization of descriptors lower. + * tree-inline.cc (tree_function_versioning): Call append_init_stmts of + param_body_adjs, if there are any. + +2022-12-13 Martin Jambor <mjambor@suse.cz> + + * ipa-prop.cc (useful_ipcp_transformation_info_p): New function. + (write_ipcp_transformation_info): Added a parameter, simplified + given that is known not to be NULL. + (ipcp_write_transformation_summaries): Write out all useful + transformation summaries. + (read_ipcp_transformation_info): Simplify given that some info + will be read. + (read_replacements_section): Remove assert. + * lto-cgraph.cc (add_node_to): Also set encode_body for clones. + * lto-streamer-out.cc (lto_output): Do not output virtual clones. + +2022-12-13 Jakub Jelinek <jakub@redhat.com> + + PR target/108044 + * config/i386/i386.md (*concat<half><mode>3_5, *concat<mode><dwi>3_6, + *concat<mode><dwi>3_7): Split alternative with =ro output constraint + into =r,o,o and use Wd input constraint for the last alternative which + is enabled for TARGET_64BIT. Reject ix86_endbr_immediate_operand + in the input constant. + +2022-12-13 Tamar Christina <tamar.christina@arm.com> + + * config/aarch64/aarch64.md (tbranch_<code><mode>3): Use gen_int_mode. + +2022-12-13 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/108064 + * tree-vect-patterns.cc (vect_recog_rotate_pattern): Pass uvectype + as 4th argument to append_pattern_def_seq for statements with lhs + with utype type. + +2022-12-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105801 + * tree-ssa-ccp.cc (likely_value): .DEFERRED_INIT produces + UNDEFINED. + * doc/invoke.texi (ftrivial-auto-var-init): Explicitely + mention we treat variables without an initializer as + undefined also for optimization purposes. + +2022-12-13 Tom Tromey <tom@tromey.com> + Mark Wielaard <mark@klomp.org> + Marc Poulhiès <dkm@kataplop.net> + + * dwarf2out.cc (is_rust): New. + (base_type_die): Use DW_ATE_UTF for the Rust 'char' type. + (gen_compile_unit_die): Handle "GNU Rust". + +2022-12-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/108076 + * tree-if-conv.cc (if_convertible_loop_p_1): Reject blocks + with non-local or forced labels that we later remove + labels from. + +2022-12-13 Haochen Gui <guihaoc@gcc.gnu.org> + + * config/rs6000/rs6000.md (cbranchcc4): New expander. + +2022-12-13 Haochen Gui <guihaoc@gcc.gnu.org> + + * optabs.cc (prepare_cmp_insn): Return a NULL rtx other than + assertion failure when targets don't have cbranch optab or + predicate check fails. + +2022-12-12 Wilco Dijkstra <wilco.dijkstra@arm.com> + + * config/aarch64/aarch64.cc (aarch64_rtx_costs): Add correct costs + for 24-bit and 12-bit shifted immediate add/sub. + (TARGET_CONST_ANCHOR): Define. + * config/aarch64/predicates.md (aarch64_pluslong_immediate): + Fix range check. + +2022-12-12 Tamar Christina <tamar.christina@arm.com> + + * match.pd: Add new rule. + +2022-12-12 Tamar Christina <tamar.christina@arm.com> + + * config/aarch64/aarch64.cc (aarch64_can_change_mode_class): Restrict + conversions between partial struct types properly. + +2022-12-12 Tamar Christina <tamar.christina@arm.com> + + * config/aarch64/aarch64.md (*tb<optab><mode>1): Rename to... + (*tb<optab><ALLI:mode><GPI:mode>1): ... this. + (tbranch_<code><mode>4): New. + * config/aarch64/iterators.md(ZEROM, zerom): New. + +2022-12-12 Tamar Christina <tamar.christina@arm.com> + + * dojump.cc (do_jump): Pass along value. + (do_jump_by_parts_greater_rtx): Likewise. + (do_jump_by_parts_zero_rtx): Likewise. + (do_jump_by_parts_equality_rtx): Likewise. + (do_compare_rtx_and_jump): Likewise. + (do_compare_and_jump): Likewise. + * dojump.h (do_compare_rtx_and_jump): New. + * optabs.cc (emit_cmp_and_jump_insn_1): Refactor to take optab to check. + (validate_test_and_branch): New. + (emit_cmp_and_jump_insns): Optiobally take a value, and when value is + supplied then check if it's suitable for tbranch. + * optabs.def (tbranch_eq$a4, tbranch_ne$a4): New. + * doc/md.texi (tbranch_@var{op}@var{mode}4): Document it. + * optabs.h (emit_cmp_and_jump_insns): New. + * tree.h (tree_zero_one_valued_p): New. + +2022-12-12 Tamar Christina <tamar.christina@arm.com> + + * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New. + (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>, + aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>, + @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>, + reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>, + aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>, + vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF. + (aarch64_simd_dupv2hf): New. + * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): + Add E_V2HFmode. + * config/aarch64/iterators.md (VHSDF_P): New. + (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL, + Vel, q, vp): Add V2HF. + * config/arm/types.md (neon_fp_reduc_add_h): New. + +2022-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define + __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI when appropriate. + * config/aarch64/aarch64.h (TARGET_BTI): Define. + +2022-12-12 Richard Biener <rguenther@suse.de> + + * genmatch.cc (dt_simplify::gen): Revert last change. + * match.pd: Revert simplification of CONSTUCTOR leaf handling. + (&x cmp SSA_NAME): Handle ADDR_EXPR in SSA defs. + * fold-const.cc (split_address_to_core_and_offset): Handle + ADDR_EXPRs in SSA defs. + (address_compare): Likewise. + +2022-12-12 Richard Biener <rguenther@suse.de> + + PR tree-optimization/89317 + * tree-ssa-ccp.cc (ccp_fold): Handle GIMPLE_COND via + gimple_fold_stmt_to_constant_1. + * match.pd (&a != &a + c): Apply to pointer_plus with non-ADDR_EXPR + base as well. + +2022-12-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/89317 + * match.pd ((p + b) - &p->c -> b - offsetof(c)): New patterns. + +2022-12-11 Richard Biener <rguenther@suse.de> + + * genmatch.cc (dt_node::gen_kids): Handle ADDR_EXPR in both + the GENERIC and GIMPLE op position. + (dt_simplify::gen): Capture both GENERIC and GIMPLE op + position for ADDR_EXPR and CONSTRUCTOR. + * match.pd: Simplify CONSTRUCTOR leaf handling. + +2022-12-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106904 + * tree.h (strip_zero_offset_components): Declare. + * tree.cc (strip_zero_offset_components): Define. + * tree-vect-data-refs.cc (vect_create_addr_base_for_vector_ref): + Strip zero offset components before building the address. + +2022-12-10 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107997 + * tree-ssa-loop-ivopts.cc: Include cfganal.h. + (create_new_iv) <case IP_END>: If ip_end_pos bb is non-empty and ends + with a stmt which ends bb, instead of adding iv update after it split + the latch edge and insert iterator into the new latch bb. + +2022-12-09 Jiufu Guo <guojiufu@linux.ibm.com> + + * config/rs6000/rs6000.cc (rs6000_emit_set_const): Remove copy_rtx. + (rs6000_emit_set_long_const): Likewise. + +2022-12-09 Martin Liska <mliska@suse.cz> + + * config/i386/i386-builtins.cc (fold_builtin_cpu): Use same path + as for PR103661. + * doc/extend.texi: Fix "x86-64" use. + +2022-12-09 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/rtems.h (SUBTARGET_CC1_SPEC): Rename to... + (OS_CC1_SPEC): ...this. + * gcc.cc (SUBTARGET_CC1_SPEC): Rename to... + (OS_CC1_SPEC): ...this. + +2022-12-09 David Malcolm <dmalcolm@redhat.com> + + * Makefile.in (ANALYZER_OBJS): Update for renaming of + analyzer/region-model-impl-calls.cc to analyzer/kf.cc. + +2022-12-09 liuhongt <hongtao.liu@intel.com> + + * doc/invoke.texi (x86 options): Document + -mlam={none,u48,u57}. + * config/i386/i386-opts.h (enum lam_type): New enum. + * config/i386/i386.cc (ix86_memtag_can_tag_addresses): New. + (ix86_memtag_set_tag): Ditto. + (ix86_memtag_extract_tag): Ditto. + (ix86_memtag_add_tag): Ditto. + (ix86_memtag_tag_size): Ditto. + (ix86_memtag_untagged_pointer): Ditto. + (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New. + (TARGET_MEMTAG_ADD_TAG): Ditto. + (TARGET_MEMTAG_SET_TAG): Ditto. + (TARGET_MEMTAG_EXTRACT_TAG): Ditto. + (TARGET_MEMTAG_UNTAGGED_POINTER): Ditto. + (TARGET_MEMTAG_TAG_SIZE): Ditto. + (IX86_HWASAN_SHIFT): Ditto. + (IX86_HWASAN_TAG_SIZE): Ditto. + * config/i386/i386-expand.cc (ix86_expand_call): Untag code + pointer. + * config/i386/i386-options.cc (ix86_option_override_internal): + Error when enable -mlam=[u48|u57] for 32-bit code. + * config/i386/i386.opt: Add -mlam=[none|u48|u57]. + * config/i386/i386-protos.h (ix86_memtag_untagged_pointer): + Declare. + (ix86_memtag_can_tag_addresses): Ditto. + +2022-12-08 Marek Polacek <polacek@redhat.com> + + * doc/invoke.texi (-fsanitize=address): Suggest options to improve + stack traces. + +2022-12-08 Eugene Rozenfeld <erozen@microsoft.com> + + PR ipa/108000 + * ipa-cp.cc (ipcp_propagate_stage): Fix profile count comparison + +2022-12-08 David Faust <david.faust@oracle.com> + + * config/bpf/bpf.md (bswap<mode>2): New define_insn. + +2022-12-08 Sebastian Pop <spop@amazon.com> + + PR target/98776 + * config/aarch64/aarch64-protos.h (aarch64_output_patchable_area): + Declared. + * config/aarch64/aarch64.cc (aarch64_print_patchable_function_entry): + Emit an UNSPECV_PATCHABLE_AREA pseudo instruction. + (aarch64_output_patchable_area): New. + * config/aarch64/aarch64.md (UNSPECV_PATCHABLE_AREA): New. + (patchable_area): Define. + +2022-12-08 Jakub Jelinek <jakub@redhat.com> + + PR debug/106719 + * cfgbuild.cc (find_bb_boundaries): If there are NOTEs in between + debug_insn (seen after flow_transfer_insn) and insn, move NOTEs + before all the DEBUG_INSNs and split after NOTEs. If there are + other insns like jump table data, clear debug_insn. + +2022-12-08 Jakub Jelinek <jakub@redhat.com> + + PR target/107627 + * config/i386/i386.md (HALF, half): New mode attributes. + (*concat<half><mode>3_5, *concat<mode><dwi>3_6, + *concat<mode><dwi>3_7): New define_insn_and_split patterns. + +2022-12-08 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/107985 + * gimple-range-op.cc + (gimple_range_op_handler::gimple_range_op_handler): Check if type + of the operands is supported. + * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Do + not assert if here is no range-op handler. + +2022-12-08 Jiufu Guo <guojiufu@linux.ibm.com> + + * config/rs6000/predicates.md: Use sext_hwi. + * config/rs6000/rs6000.cc (num_insns_constant_gpr): Likewise. + (darwin_rs6000_legitimate_lo_sum_const_p): Likewise. + (mem_operand_gpr): Likewise. + (mem_operand_ds_form): Likewise. + (rs6000_legitimize_address): Likewise. + (rs6000_emit_set_const): Likewise. + (rs6000_emit_set_long_const): Likewise. + (print_operand): Likewise. + (constant_generates_xxspltiw): Remove unnecessary expressions. + * config/rs6000/rs6000.md: Use sext_hwi. + +2022-12-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107699 + * match.pd (&a !=/== &a.b + c -> (&a - &a.b) !=/== c): New + pattern variant. + +2022-12-08 Jakub Jelinek <jakub@redhat.com> + + * range-op-float.cc (frange_nextafter): For MODE_COMPOSITE_P from + denormal or zero, use real_nextafter on DFmode with conversions + around it. + (frange_arithmetic): For mode_composite, on top of rounding in the + right direction accept extra 1ulp error for PLUS/MINUS_EXPR, extra + 2ulps error for MULT_EXPR and extra 3ulps error for RDIV_EXPR. + +2022-12-08 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107967 + * range-op-float.cc (frange_arithmetic): Fix a thinko - if + inf is negative, use nextafter if !real_less (&result, &value) + rather than if real_less (&result, &value). If result is +-INF + while value is finite and -fno-rounding-math, don't do rounding + if !inexact or if result is significantly above max representable + value or below min representable value. + +2022-12-07 Max Filippov <jcmvbkbc@gmail.com> + + * config.gcc (xtensa*-*-*): Add xtensa-dynconfig.o to extra_objs. + * config/xtensa/t-xtensa (TM_H): Add xtensa-dynconfig.h. + (xtensa-dynconfig.o): New rule. + * config/xtensa/xtensa-dynconfig.c: New file. + * config/xtensa/xtensa-protos.h (xtensa_get_config_strings): New + declaration. + * config/xtensa/xtensa.h (xtensa-config.h): Replace #include + with xtensa-dynconfig.h + (XCHAL_HAVE_MUL32_HIGH, XCHAL_HAVE_RELEASE_SYNC) + (XCHAL_HAVE_S32C1I, XCHAL_HAVE_THREADPTR) + (XCHAL_HAVE_FP_POSTINC): Drop definitions. + (TARGET_DIV32): Replace with __XCHAL_HAVE_DIV32. + (TARGET_CPU_CPP_BUILTINS): Add new 'builtin' variable and loop + through string array returned by the xtensa_get_config_strings + function call. + +2022-12-07 Wilco Dijkstra <wilco.dijkstra@arm.com> + + PR target/108006 + * config/aarch64/aarch64.cc (aarch64_expand_sve_const_vector): + Fix call to aarch64_move_imm to use SI/DI. + +2022-12-07 Richard Biener <rguenther@suse.de> + + PR ipa/105676 + * ipa-pure-const.cc (ipa_make_function_pure): Skip also + for functions already being const. + +2022-12-07 Hongyu Wang <hongyu.wang@intel.com> + + * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Add + m_SAPPHIRERAPIDS, m_ALDERLAKE and m_CORE_ATOM. + +2022-12-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + PR target/107920 + * config/aarch64/aarch64-sve-builtins-base.cc: Use + gsi_replace_with_seq_vops to handle virtual operands, and gate + the transform on !flag_non_call_exceptions. + * gimple-fold.cc (gsi_replace_with_seq_vops): Make function non static. + * gimple-fold.h (gsi_replace_with_seq_vops): Declare. + +2022-12-07 liuhongt <hongtao.liu@intel.com> + + PR target/107970 + * config/i386/mmx.md (btruncv2sf2): Add TARGET_MMX_WITH_SSE to + the condition. + +2022-12-06 Wilco Dijkstra <wilco.dijkstra@arm.com> + + * config/aarch64/aarch64.cc (aarch64_bitmask_imm): Use unsigned type. + (aarch64_is_mov_xn_imm): New function. + (aarch64_move_imm): Refactor, assert mode is SImode or DImode. + (aarch64_internal_mov_immediate): Assert mode is SImode or DImode. + Simplify special cases. + (aarch64_uimm12_shift): Simplify code. + (aarch64_clamp_to_uimm12_shift): Likewise. + (aarch64_movw_imm): Rename to aarch64_is_movz. + (aarch64_float_const_rtx_p): Pass either SImode or DImode to + aarch64_internal_mov_immediate. + (aarch64_rtx_costs): Likewise. + * config/aarch64/aarch64.md (movdi_aarch64): Merge 'N' and 'M' + constraints into single 'O'. + (mov<mode>_aarch64): Likewise. + * config/aarch64/aarch64-protos.h (aarch64_move_imm): Use unsigned. + (aarch64_bitmask_imm): Likewise. + (aarch64_uimm12_shift): Likewise. + (aarch64_is_mov_xn_imm): New prototype. + * config/aarch64/constraints.md: Add 'O' for 32/64-bit immediates, + limit 'N' to 64-bit only moves. + +2022-12-06 Qing Zhao <qing.zhao@oracle.com> + + * attribs.cc (strict_flex_array_level_of): New function. + * attribs.h (strict_flex_array_level_of): Prototype for new function. + * doc/invoke.texi: Update -Warray-bounds by specifying the impact from + -fstrict-flex-arrays. Also update -Warray-bounds=2 by eliminating its + impact on treating trailing arrays as flexible array members. + * gimple-array-bounds.cc (get_up_bounds_for_array_ref): New function. + (check_out_of_bounds_and_warn): New function. + (array_bounds_checker::check_array_ref): Update with call to the above + new functions. + * tree.cc (array_ref_flexible_size_p): Add one new argument. + (component_ref_sam_type): New function. + (component_ref_size): Control with level of strict-flex-array. + * tree.h (array_ref_flexible_size_p): Update prototype. + (enum struct special_array_member): Add two new enum values. + (component_ref_sam_type): New prototype. + +2022-12-06 David Malcolm <dmalcolm@redhat.com> + + * doc/analyzer.texi: Drop out-of-date ideas for other checkers. + +2022-12-06 David Malcolm <dmalcolm@redhat.com> + + * Makefile.in (ANALYZER_OBJS): Add analyzer/call-details.o, + analyzer/kf-analyzer.o, and kf-lang-cp.o. + +2022-12-06 Marcel Vollweiler <marcel@codesourcery.com> + + * gimplify.cc (optimize_target_teams): Set initial num_teams_upper + to "-2" instead of "1" for non-existing num_teams clause in order to + disambiguate from the case of an existing num_teams clause with value 1. + +2022-12-06 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR target/107987 + * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>, + @mve_vcmp<mve_cmp_op>q_n_f<mode>): Apply vec_duplicate to scalar + operand. + +2022-12-06 Jakub Jelinek <jakub@redhat.com> + + PR target/107969 + * config/i386/i386.md (cbranchbf4, cstorebf4): Guard expanders + with the same condition as cbranchsf4 or cstoresf4 expanders. + +2022-12-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104475 + * pointer-query.h (access_ref::ref_nullptr_p): New flag. + * pointer-query.cc (access_ref::access_ref): Initialize + ref_nullptr_p. + (compute_objsize_r): Set ref_nullptr_p if we treat it that way. + (access_ref::inform_access): If ref was treated as nullptr + based, indicate that. + +2022-12-06 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107972 + * range-op-float.cc (frange_drop_infs): New function. + (float_binary_op_range_finish): Add DIV_OP2 argument. If DIV_OP2 is + false and lhs is finite or if DIV_OP2 is true and lhs is non-zero and + not NAN, r must be finite too. + (foperator_div::op2_range): Pass true to DIV_OP2 of + float_binary_op_range_finish. + +2022-12-06 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107975 + * range-op-float.cc (foperator_mult::op1_range, + foperator_div::op1_range, foperator_div::op2_range): Just + return float_binary_op_range_finish result if lhs is known + NAN, or the other operand is known NAN or UNDEFINED. + +2022-12-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Use dup + and zip1 for interleaving elements in vector initializer. + +2022-12-05 Richard Biener <rguenther@suse.de> + + PR middle-end/40635 + * tree-into-ssa.cc (rewrite_update_phi_arguments): Only + update the argument when the reaching definition is different + from the current argument. Keep an existing argument + location. + +2022-12-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106868 + * gimple-ssa-warn-access.cc (pass_waccess::gimple_call_return_arg_ref): + Inline into single user ... + (pass_waccess::check_dangling_uses): ... here and adjust the + call and the PHI case to require that ref.aref is the address + of the decl. + +2022-12-05 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/106805 + * match.pd (cmp @0 REAL_CST@1): Don't optimize x cmp NaN + or NaN cmp x to false/true for cmp >/>=/</<= if -ftrapping-math. + +2022-12-05 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107879 + * range-op-float.cc (foperator_mult::op1_range): If both + lhs and op2 ranges contain zero or both ranges contain + some infinity, set r range to zero_to_inf_range depending on + signbit_known_p. + (foperator_div::op2_range): Similarly for lhs and op1 ranges. + (foperator_div::op1_range): If lhs range contains zero and op2 + range contains some infinity or vice versa, set r range to + zero_to_inf_range depending on signbit_known_p. + (foperator_div::rv_fold): Fix up condition for returning known NAN. + +2022-12-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107833 + PR tree-optimization/107839 + * cfghooks.cc: Include tree.h. + * tree-ssa-loop-im.cc (movement_possibility): Wrap and + make stmts using any ssa_name_maybe_undef_p operand + to preserve execution. + (loop_invariant_motion_in_fun): Call mark_ssa_maybe_undefs + to init maybe-undefined status. + * tree-ssa-loop-ivopts.cc (ssa_name_maybe_undef_p, + ssa_name_set_maybe_undef, ssa_name_any_use_dominates_bb_p, + mark_ssa_maybe_undefs): Move ... + * tree-ssa.cc: ... here. + * tree-ssa.h (ssa_name_any_use_dominates_bb_p, + mark_ssa_maybe_undefs): Declare. + (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): Define. + +2022-12-05 Andrew Pinski <pinskia@gmail.com> + + PR tree-optimization/107956 + * tree-vect-patterns.cc (vect_recog_mask_conversion_pattern): + Check for NULL LHS on masked loads. + +2022-12-05 Kewen Lin <linkw@linux.ibm.com> + Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/107412 + * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Use + untruncated type for the length, and avoid to_constant and tree + arithmetic for subtraction. + +2022-12-02 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> + Jason Merrill <jason@redhat.com> + + * function.cc (init_function_start): Use DECL_RESULT location + for -Waggregate-return warning. + +2022-12-02 Andrew MacLeod <amacleod@redhat.com> + + * fold-const.cc (fold_unary_loc): Check TREE_TYPE of node. + (tree_invalid_nonnegative_warnv_p): Likewise. + +2022-12-02 Jason Merrill <jason@redhat.com> + + * gcc.cc (validate_switches): Reset suffix/starred on loop. + +2022-12-02 Vladimir N. Makarov <vmakarov@redhat.com> + + * lra-constraints.cc (curr_insn_transform): Check available hard + regs for pseudo and its subreg to decide what to reload. + +2022-12-02 liuhongt <hongtao.liu@intel.com> + + * config/i386/i386-expand.cc + (ix86_expand_fast_convert_bf_to_sf): Use extendbfsf2_1 for + nonimmediate operand. + +2022-12-02 Martin Liska <mliska@suse.cz> + + * configure: Regenerate. + +2022-12-02 Jakub Jelinek <jakub@redhat.com> + + PR target/106577 + * config/i386/i386-expand.cc (ix86_vector_duplicate_value): Save/restore + recog_data around recog_memoized calls. + +2022-12-02 Michael Collison <collison@rivosinc.com> + + * match.pd ((x & 0x1) == 0) ? y : z <op> y + -> (-(typeof(y))(x & 0x1) & z) <op> y. + +2022-12-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107946 + * params.opt (-param=max-unswitch-depth=): New. + * doc/invoke.texi (--param=max-unswitch-depth): Document. + * tree-ssa-loop-unswitch.cc (init_loop_unswitch_info): Honor + --param=max-unswitch-depth + +2022-12-02 Eric Gallager <egallager@gcc.gnu.org> + + PR bootstrap/59447 + * configure: Regenerate. + * configure.ac: Document --with-dwarf2 flag as also + applying to later DWARF standards. + * doc/install.texi: Likewise. + +2022-12-02 liuhongt <hongtao.liu@intel.com> + + PR target/107934 + * config/i386/i386.md (extendbfsf2_1): Change type from + sseishft to sseishft1. + +2022-12-01 Alex Coplan <alex.coplan@arm.com> + + * varasm.cc (assemble_variable): Fix type confusion bug when + checking for ".vtable_map_vars" section. + +2022-12-01 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-v.cc (emit_pred_op): Adapt for mask mode. + * config/riscv/vector.md: Remove Tail && make policy operand for mask mode mov. + +2022-12-01 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-protos.h (enum vlmul_type): New enum. + (get_vlmul): New function. + (get_ratio): Ditto. + * config/riscv/riscv-v.cc (struct mode_vtype_group): New struct. + (ENTRY): Adapt for attributes. + (enum vlmul_type): New enum. + (get_vlmul): New function. + (get_ratio): New function. + * config/riscv/riscv-vector-switch.def (ENTRY): Adapt for attributes. + * config/riscv/riscv.cc (ENTRY): Ditto. + * config/riscv/vector.md (false,true): Add attributes. + +2022-12-01 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/constraints.md (Wdm): New constraint. + * config/riscv/predicates.md (direct_broadcast_operand): New predicate. + * config/riscv/riscv-protos.h (RVV_VLMAX): New macro. + (emit_pred_op): Refine function. + * config/riscv/riscv-selftests.cc (run_const_vector_selftests): New function. + (run_broadcast_selftests): Ditto. + (BROADCAST_TEST): New tests. + (riscv_run_selftests): More tests. + * config/riscv/riscv-v.cc (emit_pred_move): Refine function. + (emit_vlmax_vsetvl): Ditto. + (emit_pred_op): Ditto. + (expand_const_vector): New function. + (legitimize_move): Add constant vector support. + * config/riscv/riscv.cc (riscv_print_operand): New asm print rule for const vector. + * config/riscv/riscv.h (X0_REGNUM): New macro. + * config/riscv/vector-iterators.md: New attribute. + * config/riscv/vector.md (vec_duplicate<mode>): New pattern. + (@pred_broadcast<mode>): New pattern. + +2022-12-01 Paul-Antoine Arras <pa@codesourcery.com> + + * config/gcn/gcn-opts.h (TARGET_FIJI): -march=fiji. + (TARGET_VEGA10): -march=gfx900. + (TARGET_VEGA20): -march=gfx906. + (TARGET_GFX908): -march=gfx908. + (TARGET_GFX90a): -march=gfx90a. + * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Define a builtin that + uniquely maps to '-march'. + +2022-12-01 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107937 + * gimple-predicate-analysis.h (predicate::is_true): New. + (predicate::is_false): Likewise. + (predicate::empty_val): Likewise. + (uninit_analysis::uninit_analysis): Properly initialize + def_preds. + * gimple-predicate-analysis.cc (simplify_1b): Indicate + whether the chain became empty. + (predicate::simplify): Release emptied chain before removing it. + (predicate::normalize): Replace temporary object with assertion. + (uninit_analysis::is_use_guarded): Deal with predicates + that simplify to true/false. + +2022-12-01 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107935 + * tree-ssa-sccvn.cc (visit_phi): Honor forced VARYING on + backedges. + +2022-12-01 Jakub Jelinek <jakub@redhat.com> + + PR target/107627 + * config/i386/i386.md (*concat<mode><dwi>3_1, *concat<mode><dwi>3_2): + For operands which are zero_extend arguments allow memory if + output operand is a register. + (*concat<mode><dwi>3_3, *concat<mode><dwi>3_4): Likewise. If + both input operands are memory, use early clobber on output operand. + * config/i386/i386-expand.cc (split_double_concat): Deal with corner + cases where one input is memory and the other is not and the address + of the memory input uses a register we'd overwrite before loading + the memory into a register. + +2022-12-01 Haochen Gui <guihaoc@gcc.gnu.org> + + * config/rs6000/rs6000-call.cc (swap_endian_selector_for_mode): + Corrects comments of this function and make them clear. + +2022-12-01 liuhongt <hongtao.liu@intel.com> + + PR target/107863 + * config/i386/i386-expand.cc (ix86_expand_vec_set_builtin): + Convert op1 to target mode whenever mode mismatch. + +2022-12-01 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106626 + * diagnostic-path.h + (diagnostic_path::get_first_event_in_a_function): New decl. + * diagnostic.cc (diagnostic_path::get_first_event_in_a_function): + New. + (diagnostic_path::interprocedural_p): Ignore leading events that + are outside of any function. + +2022-12-01 David Malcolm <dmalcolm@redhat.com> + + * Makefile.in (ANALYZER_OBJS): Add analyzer/bounds-checking.o. + +2022-12-01 Haochen Gui <guihaoc@gcc.gnu.org> + + PR target/100866 + * config/rs6000/rs6000-call.cc (swap_endian_selector_for_mode): + Generate permute index directly for little endian targets. + * config/rs6000/vsx.md (revb_<mode>): Call vprem directly with + corresponding permute indexes. + +2022-11-30 John David Anglin <danglin@gcc.gnu.org> + + * config/pa/pa.md (addvdi3): Force operand 2 to a register. + Remove "addi,tsv,*" instruction from unamed pattern. + (subvdi3): Force operand 1 to a register. + Remove "subi,tsv" instruction from from unamed pattern. + +2022-11-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64.md (aarch64_cpymemdi): Specify clobber of CC reg. + (*aarch64_cpymemdi): Likewise. + (aarch64_movmemdi): Likewise. + (aarch64_setmemdi): Likewise. + (*aarch64_setmemdi): Likewise. + +2022-11-30 Martin Liska <mliska@suse.cz> + + * tree-switch-conversion.cc (bit_test_cluster::emit): Remove + dead variable bt_range. + +2022-11-30 Iskander Shakirzyanov <iskander@ispras.ru> + Franz Sirl <Franz.Sirl-kernel@lauterbach.com> + + PR driver/107787 + * common.opt (Warray-bounds): Turn into alias of + -Warray-bounds=1. + * builtins.cc (c_strlen): Use OPT_Warray_bounds_ + instead of OPT_Warray_bounds. + * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Ditto. + * gimple-array-bounds.cc (array_bounds_checker::check_array_ref, + array_bounds_checker::check_mem_ref, + array_bounds_checker::check_addr_expr, + array_bounds_checker::check_array_bounds): Ditto. + * gimple-ssa-warn-restrict.cc (maybe_diag_access_bounds): Ditto. + +2022-11-30 Martin Liska <mliska@suse.cz> + + PR tree-optimization/101301 + PR tree-optimization/103680 + * tree-switch-conversion.cc (bit_test_cluster::emit): + Handle correctly remaining probability. + (switch_decision_tree::try_switch_expansion): Fix BB's count + where a cluster expansion happens. + (switch_decision_tree::emit_cmp_and_jump_insns): Fill up also + BB count. + (switch_decision_tree::do_jump_if_equal): Likewise. + (switch_decision_tree::emit_case_nodes): Handle special case + for BT expansion which can also fallback to a default BB. + * tree-switch-conversion.h (cluster::cluster): Add + m_default_prob probability. + +2022-11-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107919 + * gimple-predicate-analysis.cc (simplify_1): Rename to ... + (simplify_1a): .. this. + (simplify_1b): New. + (predicate::simplify): Call both simplify_1a and simplify_1b. + +2022-11-30 Richard Biener <rguenther@suse.de> + + * tree-ssa-uninit.cc (find_uninit_use): Dump the edge for a + PHI node. + +2022-11-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107919 + * gimple-predicate-analysis.cc (predicate::simplify_2): + Handle predicates of arbitrary length. + +2022-11-30 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107835 + * tree-chrec.cc (chrec_apply): Don't handle "{a, +, a} (x-1)" + as "a*x" if type is a pointer type. + +2022-11-30 Paul-Antoine Arras <pa@codesourcery.com> + + * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Add gfx803. + * config/gcn/t-omp-device: Add gfx803. + +2022-11-30 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/linux.h (STACK_CHECK_MOVING_SP): + Define this macro to 1. + * config/loongarch/loongarch.cc (STACK_CLASH_PROTECTION_GUARD_SIZE): + Size of guard page. + (loongarch_first_stack_step): Return the size of the first drop stack + according to whether stack checking is performed. + (loongarch_emit_probe_stack_range): Adjust the method of stack checking in prologue. + (loongarch_output_probe_stack_range): Delete useless code. + (loongarch_expand_prologue): Adjust the method of stack checking in prologue. + (loongarch_option_override_internal): Enforce that interval is the same + size as size so the mid-end does the right thing. + * config/loongarch/loongarch.h (STACK_CLASH_MAX_UNROLL_PAGES): + New macro decide whether to loop stack detection. + +2022-11-30 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/103546 + * doc/invoke.texi (Static Analyzer Options): Add isatty, ferror, + fileno, and getc to the list of functions known to the analyzer. + +2022-11-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107852 + * tree-ssa-sccvn.cc (visit_phi): Use equivalences recorded + as predicated values to elide more redundant PHIs. + +2022-11-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106995 + * tree-if-conv.cc (pass_if_conversion::execute): Also redirect the + versioning condition to the original loop if this very loop + vanished during CFG cleanup. + +2022-11-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107898 + * gimple-ssa-warn-alloca.cc (alloca_call_type): Check + the type of the alloca argument is compatible with size_t + before querying ranges. + +2022-11-29 Richard Biener <rguenther@suse.de> + + PR ipa/107897 + * multiple_target.cc (pass_target_clone::gate): Disable + after errors. + +2022-11-29 Martin Liska <mliska@suse.cz> + + * configure: Regenerate. + +2022-11-29 YunQiang Su <yunqiang.su@cipunited.com> + + * configure.ac: add description for + AC_DEFINE(ENABLE_MULTIARCH, 1) + +2022-11-28 Andrew Pinski <apinski@marvell.com> + + * match.pd ((A / (1 << B)) -> (A >> B).): + Fix comment. + +2022-11-28 Sinan <sinan.lin@linux.alibaba.com> + + * config/riscv/riscv.cc (riscv_build_integer): Improve some cases + of loading 64bit constants for rv32. + +2022-11-28 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.cc (riscv_emit_int_order_test): Use EQ 0 + rather that XOR 1 for LE and LEU operations. + +2022-11-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107896 + * tree-vect-stmts.cc (supportable_widening_operation): + Handle non-vector mode intermediate mode. + +2022-11-28 Frolov Daniil <frolov.da@phystech.edu> + + * gimple-ssa-sprintf.cc (fmtresult::type_max_digits): Handle + base == 2. + (tree_digits): Likewise. + (format_integer): Likewise. + (parse_directive): Add cases for %b and %B directives. + +2022-11-28 Fei Gao <gaofei@eswincomputing.com> + + * config/riscv/riscv.cc (riscv_first_stack_step): Fix computation + of MIN_FIRST_STEP to cover FP save area too. + +2022-11-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107493 + * tree-scalar-evolution.cc (scev_dfs::follow_ssa_edge_expr): + Only handle no-op and sign-changing conversions. + +2022-11-28 Tobias Burnus <tobias@codesourcery.com> + + * config/gcn/gcn.cc (gcn_expand_builtin_1): Work on s1 instead + of s[0:1] and use USE to prevent removal of setting that register. + * config/gcn/gcn.md (prologue_use_di): Remove. + +2022-11-28 Yuri Gribov <y.gribov@samsung.com> + + PR sanitizer/106558 + * sanopt.cc: Do not optimize out checks for non-SSA addresses. + +2022-11-28 Jakub Jelinek <jakub@redhat.com> + + PR target/106875 + * config/i386/i386.opt (x_ix86_abi): Remove TargetSave. + (ix86_abi): Replace it with TargetVariable. + * config/i386/i386-options.cc (ix86_function_specific_save, + ix86_function_specific_restore): Don't save and restore x_ix86_abi. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vrmlaldavhq_<supf>v4si, + mve_vrmlaldavhaq_<supf>v4si): Fix spacing vs tabs. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>) + (mve_vmlaldavaxq_s<mode>, mve_vmlaldavaxq_p_<supf><mode>): Fix + spacing vs tabs. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vsubq_n_f<mode>): Fix spacing. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si) + (mve_vaddq_n_<supf><mode>, mve_vaddvaq_<supf><mode>) + (mve_vaddlvaq_<supf>v4si, mve_vaddq_n_f<mode>) + (mve_vaddlvaq_p_<supf>v4si, mve_vaddq<mode>, mve_vaddq_f<mode>): + Fix spacing. + +2022-11-28 Stam Markianos-Wright <stam.markianos-wright@arm.com> + + * config/arm/arm_mve.h (__arm_vsubq_x FP): New overloads. + (__arm_vsubq_x Integer): New. + +2022-11-28 Stam Markianos-Wright <stam.markianos-wright@arm.com> + + PR target/107515 + * config/arm/arm_mve.h (__ARM_mve_typeid): Add float types. + +2022-11-28 Stam Markianos-Wright <stam.markianos-wright@arm.com> + + PR target/96795 + * config/arm/arm_mve.h (__arm_vaddq): Fix Overloading. + (__arm_vmulq): Likewise. + (__arm_vcmpeqq): Likewise. + (__arm_vcmpneq): Likewise. + (__arm_vmaxnmavq): Likewise. + (__arm_vmaxnmvq): Likewise. + (__arm_vminnmavq): Likewise. + (__arm_vsubq): Likewise. + (__arm_vminnmvq): Likewise. + (__arm_vrshlq): Likewise. + (__arm_vqsubq): Likewise. + (__arm_vqdmulltq): Likewise. + (__arm_vqdmullbq): Likewise. + (__arm_vqdmulhq): Likewise. + (__arm_vqaddq): Likewise. + (__arm_vhaddq): Likewise. + (__arm_vhsubq): Likewise. + (__arm_vqdmlashq): Likewise. + (__arm_vqrdmlahq): Likewise. + (__arm_vmlasq): Likewise. + (__arm_vqdmlahq): Likewise. + (__arm_vmaxnmavq_p): Likewise. + (__arm_vmaxnmvq_p): Likewise. + (__arm_vminnmavq_p): Likewise. + (__arm_vminnmvq_p): Likewise. + (__arm_vfmasq_m): Likewise. + (__arm_vsetq_lane): Likewise. + (__arm_vcmpneq_m): Likewise. + (__arm_vhaddq_x): Likewise. + (__arm_vhsubq_x): Likewise. + (__arm_vqrdmlashq_m): Likewise. + (__arm_vqdmlashq_m): Likewise. + (__arm_vmlaldavaxq_p): Likewise. + (__arm_vmlasq_m): Likewise. + (__arm_vqdmulhq_m): Likewise. + (__arm_vqdmulltq_m): Likewise. + (__arm_viwdupq_m): Likewise. + (__arm_viwdupq_u16): Likewise. + (__arm_viwdupq_u32): Likewise. + (__arm_viwdupq_u8): Likewise. + (__arm_vdwdupq_m): Likewise. + (__arm_vdwdupq_u16): Likewise. + (__arm_vdwdupq_u32): Likewise. + (__arm_vdwdupq_u8): Likewise. + (__arm_vaddlvaq): Likewise. + (__arm_vaddlvaq_p): Likewise. + (__arm_vaddvaq): Likewise. + (__arm_vaddvaq_p): Likewise. + (__arm_vcmphiq_m): Likewise. + (__arm_vmladavaq_p): Likewise. + (__arm_vmladavaxq): Likewise. + (__arm_vmlaldavaxq): Likewise. + (__arm_vrmlaldavhaq_p): Likewise. + +2022-11-28 Stam Markianos-Wright <stam.markianos-wright@arm.com> + + PR target/96795 + * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Change types. + (__arm_vaddq_m_n_s32): Likewise. + (__arm_vaddq_m_n_s16): Likewise. + (__arm_vaddq_m_n_u8): Likewise. + (__arm_vaddq_m_n_u32): Likewise. + (__arm_vaddq_m_n_u16): Likewise. + (__arm_vaddq_m): Fix Overloading. + (__ARM_mve_coerce3): New. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vabsq_f<mode>): Fix spacing. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Fix + spacing. + * config/arm/arm_mve.h (__arm_vcmpgtq_m, __arm_vcmpleq_m) + (__arm_vcmpltq_m, __arm_vcmpneq_m): Add missing defines. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vdupq_n_f<mode>) + (mve_vdupq_n_<supf><mode>, mve_vdupq_m_n_<supf><mode>) + (mve_vdupq_m_n_f<mode>): Fix spacing. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vdwdupq_m_wb_u<mode>_insn): Fix spacing. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/mve.md (mve_vddupq_u<mode>_insn): Fix 'vddup.u' + spacing. + (mve_vddupq_m_wb_u<mode>_insn): Likewise. + +2022-11-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Fix + 'vmsr' spacing and reg capitalization. + +2022-11-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107876 + * tree-ssa-loop-unswitch.cc (clean_up_after_unswitching): Wipe + dominator info if we removed an edge. + +2022-11-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107867 + * tree-ssa-forwprop.cc (pass_forwprop::execute): Handle + abnormal cleanup after substitution. + +2022-11-28 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch.cc (enum loongarch_load_imm_method): + Remove the member METHOD_INSV that is not currently used. + (struct loongarch_integer_op): Define a new member curr_value, + that records the value of the number stored in the destination + register immediately after the current instruction has run. + (loongarch_build_integer): Assign a value to the curr_value member variable. + (loongarch_move_integer): Adds information for the immediate load instruction. + * config/loongarch/loongarch.md (*movdi_32bit): Redefine as define_insn_and_split. + (*movdi_64bit): Likewise. + (*movsi_internal): Likewise. + (*movhi_internal): Likewise. + * config/loongarch/predicates.md: Return true as long as it is CONST_INT, ensure + that the immediate number is not optimized by decomposition during expand + optimization loop. + +2022-11-28 liuhongt <hongtao.liu@intel.com> + + PR target/107748 + * config/i386/avx512bf16intrin.h (_mm_cvtsbh_ss): Refined. + * config/i386/i386-builtin-types.def (FLOAT_FTYPE_BFLOAT16): + New function type. + * config/i386/i386-builtin.def (BDESC): New builtin. + * config/i386/i386-expand.cc (ix86_expand_args_builtin): + Handle the builtin. + * config/i386/i386.md (extendbfsf2): New expander. + (extendbfsf2_1): New define_insn. + (truncsfbf2): Ditto. + +2022-11-26 Andrew Pinski <apinski@marvell.com> + + PR tree-optimization/103356 + * match.pd: ((~a) == b -> a ^ b): New pattern. + +2022-11-25 Sandra Loosemore <sandra@codesourcery.com> + + * common.opt (fopenmp-target-simd-clone): New option. + (target_simd_clone_device): New enum to go with it. + * doc/invoke.texi (-fopenmp-target-simd-clone): Document. + * flag-types.h (enum omp_target_simd_clone_device_kind): New. + * omp-simd-clone.cc (auto_simd_fail): New function. + (auto_simd_check_stmt): New function. + (plausible_type_for_simd_clone): New function. + (ok_for_auto_simd_clone): New function. + (simd_clone_create): Add force_local argument, make the symbol + have internal linkage if it is true. + (expand_simd_clones): Also check for cloneable functions with + "omp declare target". Pass explicit_p argument to + simd_clone.compute_vecsize_and_simdlen target hook. + * opts.cc (default_options_table): Add -fopenmp-target-simd-clone. + * target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): + Add bool explicit_p argument. + * doc/tm.texi: Regenerated. + * config/aarch64/aarch64.cc + (aarch64_simd_clone_compute_vecsize_and_simdlen): Update. + * config/gcn/gcn.cc + (gcn_simd_clone_compute_vecsize_and_simdlen): Update. + * config/i386/i386.cc + (ix86_simd_clone_compute_vecsize_and_simdlen): Update. + +2022-11-25 Tamar Christina <tamar.christina@arm.com> + + PR target/107830 + * config/aarch64/aarch64.cc + (aarch64_vectorize_can_special_div_by_constant): Check validity during + codegen phase as well. + +2022-11-25 Eric Botcazou <ebotcazou@adacore.com> + + * range-op.cc (operator_bitwise_xor::op1_range): Fix thinko. + +2022-11-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107865 + * tree-cfg.cc (move_sese_region_to_fn): Free the number of + iterations of moved loops. + +2022-11-25 Kewen.Lin <linkw@gcc.gnu.org> + + PR target/99889 + * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): + Adjust to call function default_print_patchable_function_entry. + * targhooks.cc (default_print_patchable_function_entry_1): Remove and + move the flags preparation ... + (default_print_patchable_function_entry): ... here, adjust to use + current_function_funcdef_no for label no. + * targhooks.h (default_print_patchable_function_entry_1): Remove. + * varasm.cc (default_elf_asm_named_section): Adjust code for + __patchable_function_entries section support with LPFE label. + +2022-11-24 Wilco Dijkstra <wilco.dijkstra@arm.com> + + PR tree-optimization/107413 + * config/aarch64/aarch64.cc (struct tune_params): Add + fma_reassoc_width to all CPU tuning structures. + (aarch64_reassociation_width): Use fma_reassoc_width. + * config/aarch64/aarch64-protos.h (struct tune_params): Add + fma_reassoc_width. + +2022-11-24 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/107317 + * asan.cc: Include diagnostic-core.h. + (asan_emit_stack_protection): Return NULL early if seen_error (). + +2022-11-24 Aldy Hernandez <aldyh@redhat.com> + + * vr-values.cc (simplify_using_ranges::compare_names): Remove. + (vrp_evaluate_conditional_warnv_with_ops): Remove call to + compare_names. + (simplify_using_ranges::vrp_visit_cond_stmt): Remove use_equiv_p + argument to vrp_evaluate_conditional_warnv_with_ops. + * vr-values.h (class simplify_using_ranges): Remove + compare_names. + Remove use_equiv_p to vrp_evaluate_conditional_warnv_with_ops. + +2022-11-24 Aldy Hernandez <aldyh@redhat.com> + + * tree-vrp.cc (overflow_comparison_p_1): Remove follow_assert_exprs. + (overflow_comparison_p): Remove use_equiv_p. + * tree-vrp.h (overflow_comparison_p): Same. + * vr-values.cc (vrp_evaluate_conditional_warnv_with_ops): Remove + use_equiv_p argument to overflow_comparison_p. + +2022-11-24 Aldy Hernandez <aldyh@redhat.com> + + * doc/gimple.texi: Remove ASSERT_EXPR references. + * fold-const.cc (tree_expr_nonzero_warnv_p): Same. + (fold_binary_loc): Same. + (tree_expr_nonnegative_warnv_p): Same. + * gimple-array-bounds.cc (get_base_decl): Same. + * gimple-pretty-print.cc (dump_unary_rhs): Same. + * gimple.cc (get_gimple_rhs_num_ops): Same. + * pointer-query.cc (handle_ssa_name): Same. + * tree-cfg.cc (verify_gimple_assign_single): Same. + * tree-pretty-print.cc (dump_generic_node): Same. + * tree-scalar-evolution.cc (scev_dfs::follow_ssa_edge_expr):Same. + (interpret_rhs_expr): Same. + * tree-ssa-operands.cc (operands_scanner::get_expr_operands): Same. + * tree-ssa-propagate.cc + (substitute_and_fold_dom_walker::before_dom_children): Same. + * tree-ssa-threadedge.cc: Same. + * tree-vrp.cc (overflow_comparison_p): Same. + * tree.def (ASSERT_EXPR): Add note. + * tree.h (ASSERT_EXPR_VAR): Remove. + (ASSERT_EXPR_COND): Remove. + * vr-values.cc (simplify_using_ranges::vrp_visit_cond_stmt): + Remove comment. + +2022-11-24 Aldy Hernandez <aldyh@redhat.com> + + * Makefile.in: Remove value-range-equiv.o + * gimple-array-bounds.cc + (array_bounds_checker::array_bounds_checker): Remove comment. + * tree-vrp.cc (supported_types_p): Remove use of value_range_equiv. + * value-query.cc (class equiv_allocator): Same. + (range_query::allocate_value_range_equiv): Remove. + (range_query::free_value_range_equiv): Remove. + (range_query::get_value_range): Remove. + * value-query.h (class range_query): Remove get_value_range. + Remove allocate_value_range_equiv. + Remove free_value_range_equiv. + * vr-values.cc (compare_ranges): Replace value_range_equiv with + value_range. + (simplify_using_ranges::get_vr_for_comparison): Same. + (simplify_using_ranges::compare_names): Same. + * vr-values.h: Remove value_range_equiv references. + * value-range-equiv.cc: Removed. + * value-range-equiv.h: Removed. + +2022-11-24 Aldy Hernandez <aldyh@redhat.com> + + * doc/invoke.texi: Remove docs for max-vrp-switch-assertions, + vrp1-mode, and vrp2-mode. + * params.opt: Same. + * range-op.cc (masked_increment): Move from tree-vrp.cc. + * tree-vrp.cc (class live_names): Remove. + (live_names::init_bitmap_if_needed): Remove. + (live_names::block_has_live_names_p): Remove. + (live_names::clear_block): Remove. + (live_names::merge): Remove. + (live_names::set): Remove. + (live_names::clear): Remove. + (live_names::live_names): Remove. + (live_names::~live_names): Remove. + (live_names::live_on_block_p): Remove. + (live_names::live_on_edge_p): Remove. + (get_single_symbol): Make static. + (build_symbolic_expr): Remove. + (adjust_symbolic_bound): Remove. + (combine_bound): Remove. + (set_value_range_with_overflow): Remove. + (extract_range_from_pointer_plus_expr): Remove. + (extract_range_from_plus_minus_expr): Remove. + (drop_undefines_to_varying): Remove. + (range_fold_binary_symbolics_p): Remove. + (range_fold_unary_symbolics_p): Remove. + (range_fold_binary_expr): Remove. + (infer_value_range): Remove. + (dump_assert_info): Remove. + (dump_asserts_info): Remove. + (add_assert_info): Remove. + (extract_code_and_val_from_cond_with_ops): Remove. + (masked_increment): Move to range-op.cc. + (register_edge_assert_for_2): Remove. + (find_case_label_index): Remove. + (find_case_label_range): Remove. + (register_edge_assert_for_1): Remove. + (is_masked_range_test): Remove. + (register_edge_assert_for): Remove. + (stmt_interesting_for_vrp): Remove. + (struct case_info): Remove. + (struct assert_locus): Remove. + (class vrp_asserts): Remove. + (vrp_asserts::build_assert_expr_for): Remove. + (vrp_asserts::dump): Remove. + (vrp_asserts::register_new_assert_for): Remove. + (vrp_asserts::finish_register_edge_assert_for): Remove. + (vrp_asserts::find_conditional_asserts): Remove. + (vrp_asserts::compare_case_labels): Remove. + (vrp_asserts::find_switch_asserts): Remove. + (vrp_asserts::find_assert_locations_in_bb): Remove. + (vrp_asserts::find_assert_locations): Remove. + (vrp_asserts::process_assert_insertions_for): Remove. + (vrp_asserts::compare_assert_loc): Remove. + (vrp_asserts::process_assert_insertions): Remove. + (vrp_asserts::insert_range_assertions): Remove. + (vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Remove. + (vrp_asserts::remove_range_assertions): Remove. + (class vrp_prop): Remove. + (vrp_prop::initialize): Remove. + (enum ssa_prop_result): Remove. + (vrp_prop::visit_stmt): Remove. + (vrp_prop::visit_phi): Remove. + (vrp_prop::finalize): Remove. + (class vrp_folder): Remove. + (vrp_folder::fold_predicate_in): Remove. + (vrp_folder::fold_stmt): Remove. + (vrp_folder::simplify_casted_conds): Remove. + (execute_vrp): Remove. + * tree-vrp.h (struct assert_info): Remove. + (register_edge_assert_for): Remove. + (stmt_interesting_for_vrp): Remove. + (infer_value_range): Remove. + (get_single_symbol): Remove. + (masked_increment): Remove. + (execute_ranger_vrp): Remove. + * vr-values.cc (set_value_range_to_nonnegative): Remove. + (set_value_range_to_truthvalue): Remove. + (vr_values::get_lattice_entry): Remove. + (vr_values::get_value_range): Remove. + (vr_values::range_of_expr): Remove. + (vr_values::value_of_expr): Remove. + (vr_values::value_on_edge): Remove. + (vr_values::value_of_stmt): Remove. + (vr_values::set_def_to_varying): Remove. + (vr_values::set_defs_to_varying): Remove. + (vr_values::update_value_range): Remove. + (symbolic_range_based_on_p): Remove. + (gimple_assign_nonzero_p): Remove. + (gimple_stmt_nonzero_p): Remove. + (vr_values::vrp_stmt_computes_nonzero): Remove. + (vr_values::op_with_constant_singleton_value_range): Remove. + (vr_values::extract_range_for_var_from_comparison_expr): Remove. + (vr_values::extract_range_from_assert): Remove. + (vr_values::extract_range_from_ssa_name): Remove. + (vr_values::extract_range_from_binary_expr): Remove. + (vr_values::extract_range_from_unary_expr): Remove. + (vr_values::extract_range_from_cond_expr): Remove. + (vr_values::extract_range_from_comparison): Remove. + (vr_values::extract_range_from_ubsan_builtin): Remove. + (vr_values::extract_range_basic): Remove. + (vr_values::extract_range_from_assignment): Remove. + (vr_values::adjust_range_with_scev): Remove. + (vr_values::dump): Remove. + (vr_values::vr_values): Remove. + (vr_values::~vr_values): Remove. + (vrp_valueize): Remove. + (vrp_valueize_1): Remove. + (get_output_for_vrp): Remove. + (vr_values::vrp_visit_assignment_or_call): Remove. + (simplify_using_ranges::vrp_evaluate_conditional): Remove. + (vr_values::vrp_visit_switch_stmt): Remove. + (vr_values::extract_range_from_stmt): Remove. + (vr_values::extract_range_from_phi_node): Remove. + (simplify_using_ranges::fold_cond): Add FIXME note. + (vr_values::set_vr_value): Remove. + (vr_values::swap_vr_value): Remove. + * vr-values.h (class vr_values): Remove. + (get_output_for_vrp): Remove. + +2022-11-24 Hongyu Wang <hongyu.wang@intel.com> + + PR target/107692 + * common/config/i386/i386-common.cc (ix86_optimization_table): + Enable loop unroll O2, disable -fweb and -frename-registers + by default. + * config/i386/i386-options.cc + (ix86_override_options_after_change): + Disable small loop unroll when funroll-loops enabled, reset + cunroll_grow_size when it is not explicitly enabled. + (ix86_option_override_internal): Call + ix86_override_options_after_change instead of calling + ix86_recompute_optlev_based_flags and ix86_default_align + separately. + * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll + factor if -munroll-only-small-loops enabled. + * loop-init.cc (pass_rtl_unroll_loops::gate): Do not enable + loop unrolling for -O2-speed. + (pass_rtl_unroll_loops::execute): Rmove + targetm.loop_unroll_adjust check. + +2022-11-23 Ramana Radhakrishnan <ramana.gcc@gmail.com> + + * config/arm/types.md: Update comment. + (is_neon_type): Add neon_fcmla, neon_fcadd. + +2022-11-23 Jonathan Wakely <jwakely@redhat.com> + + * doc/invoke.texi (C++ Dialect Options): Recommend using + -Wdelete-non-virtual-dtor instead of -Wnon-virtual-dtor. + +2022-11-23 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/107722 + * diagnostic.cc (test_diagnostic_get_location_text): Test + special_fname_builtin () rather than "<built-in>" and expect + special_fname_builtin () concatenated with ":" for it. + +2022-11-23 Martin Liska <mliska@suse.cz> + + * Makefile.in: Set DO_LINK_MUTEX. + +2022-11-23 Lulu Cheng <chenglulu@loongson.cn> + xujiahao <xujiahao@loongson.cn> + + * config/loongarch/constraints.md (ZD): New constraint. + * config/loongarch/loongarch-def.c: Initial number of parallel prefetch. + * config/loongarch/loongarch-tune.h (struct loongarch_cache): + Define number of parallel prefetch. + * config/loongarch/loongarch.cc (loongarch_option_override_internal): + Set up parameters to be used in prefetching algorithm. + * config/loongarch/loongarch.md (prefetch): New template. + +2022-11-23 Marek Polacek <polacek@redhat.com> + + Revert: + 2022-11-23 Marek Polacek <polacek@redhat.com> + + * Makefile.in: Set LD_PICFLAG. Use it. Set enable_host_pie. + Remove NO_PIE_CFLAGS and NO_PIE_FLAG. Pass LD_PICFLAG to + ALL_LINKERFLAGS. Use the "pic" build of libiberty if --enable-host-pie. + * configure.ac (--enable-host-shared): Don't set PICFLAG here. + (--enable-host-pie): New check. Set PICFLAG and LD_PICFLAG after this + check. + * configure: Regenerate. + * doc/install.texi: Document --enable-host-pie. + +2022-11-23 Marek Polacek <polacek@redhat.com> + + Revert: + 2022-11-23 Marek Polacek <polacek@redhat.com> + + * configure.ac (--enable-host-bind-now): New check. Add + -Wl,-z,now to LD_PICFLAG if --enable-host-bind-now. + * configure: Regenerate. + * doc/install.texi: Document --enable-host-bind-now. + +2022-11-23 Marek Polacek <polacek@redhat.com> + + * configure.ac (--enable-host-bind-now): New check. Add + -Wl,-z,now to LD_PICFLAG if --enable-host-bind-now. + * configure: Regenerate. + * doc/install.texi: Document --enable-host-bind-now. + +2022-11-23 Marek Polacek <polacek@redhat.com> + + * Makefile.in: Set LD_PICFLAG. Use it. Set enable_host_pie. + Remove NO_PIE_CFLAGS and NO_PIE_FLAG. Pass LD_PICFLAG to + ALL_LINKERFLAGS. Use the "pic" build of libiberty if --enable-host-pie. + * configure.ac (--enable-host-shared): Don't set PICFLAG here. + (--enable-host-pie): New check. Set PICFLAG and LD_PICFLAG after this + check. + * configure: Regenerate. + * doc/install.texi: Document --enable-host-pie. + +2022-11-22 Jeff Law <jlaw@ventanamicro.com> + + * tree-ssa-dom.cc (record_edge_info): Fix thinko in last commit. + +2022-11-22 Jeff Law <jlaw@ventanamicro.com> + + * tree-ssa-dom.cc (record_edge_info): Fix comment typos. + +2022-11-22 Jeff Law <jeffreyalaw@gmail.com> + + * config/riscv/riscv.cc (riscv_get_separate_components): Do not + do shrink-wrapping for a frame with a variable size. + +2022-11-22 Siddhesh Poyarekar <siddhesh@gotplt.org> + + * tree-object-size.cc (todo): New variable. + (object_sizes_execute): Use it. + (strdup_object_size): New function. + (call_object_size): Use it. + +2022-11-22 Eric Botcazou <ebotcazou@adacore.com> + + * tree-loop-distribution.cc (loop_distribution::classify_builtin_ldst): + Bail out if source and destination do not have the same storage order. + +2022-11-22 Martin Jambor <mjambor@suse.cz> + + * ipa-sra.cc (ipa_sra_dump_all_summaries): Dump edge summaries even + for non-candidates. + +2022-11-22 Martin Jambor <mjambor@suse.cz> + + * ipa-cp.cc (push_agg_values_from_edge): Do not consider constants + in unused aggregate parameters. + +2022-11-22 Martin Jambor <mjambor@suse.cz> + + * ipa-param-manipulation.h (ipa_param_body_adjustments): Removed + member m_split_modifications_p. + * ipa-param-manipulation.cc + (ipa_param_body_adjustments::common_initialization): Do not set + m_split_modifications_p. + (ipa_param_body_adjustments::ipa_param_body_adjustments): Remove + initializations of m_split_modifications_p. + (ipa_param_body_adjustments::modify_call_stmt): Check that + m_replacements is empty instead of m_split_modifications_p. + +2022-11-22 Martin Jambor <mjambor@suse.cz> + + PR ipa/107661 + * ipa-cp.cc (push_agg_values_from_edge): New parameter + optimize_self_recursion, use it to decide whether to pass interim to + the helper function. + (find_aggregate_values_for_callers_subset): Pass true in the new + parameter of push_agg_values_from_edge. + (cgraph_edge_brings_all_agg_vals_for_node): Pass false in the new + parameter of push_agg_values_from_edge. + +2022-11-22 Tobias Burnus <tobias@codesourcery.com> + Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-builtins.def (FIRST_CALL_THIS_THREAD_P, + GET_STACK_LIMIT): Add new builtins. + * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand them. + * config/gcn/gcn.md (prologue_use): Add "register_operand" as + arg to match_operand. + (prologue_use_di): New; DI insn_and_split variant of the former. + +2022-11-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107803 + * tree-ssa-propagate.cc (substitute_and_fold_dom_walker): Add + need_ab_cleanup member. + (substitute_and_fold_dom_walker::before_dom_children): When + a stmt can no longer transfer control flow abnormally set + need_ab_cleanup. + (substitute_and_fold_engine::substitute_and_fold): Cleanup + abnormal control flow. + +2022-11-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107672 + * tree-vect-stmts.cc (supportable_widening_operation): Avoid + type_for_mode on vector modes. + +2022-11-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107766 + * tree-vect-slp-patterns.cc (complex_mul_pattern::matches): + Use *node to check for FP vector types. + +2022-11-22 liuhongt <hongtao.liu@intel.com> + + * config/i386/mmx.md (*mov<mode>_internal): Add + ix86_hard_reg_move_ok to condition. + +2022-11-22 liuhongt <hongtao.liu@intel.com> + + * config/i386/i386.cc (ix86_can_change_mode_class): Also guard + size of TO. + (ix86_hard_regno_mode_ok): Remove VALID_AVX512FP16_SCALAR_MODE + * config/i386/i386.h (VALID_AVX512FP16_SCALAR_MODE): Merged to + .. + (VALID_AVX512F_SCALAR_MODE): .. this, also add HImode. + (VALID_SSE_REG_MODE): Add DI/HImode. + +2022-11-21 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/rtems.h (SUBTARGET_CC1_SPEC): Undef and define. + +2022-11-21 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcc.cc (SUBTARGET_CC1_SPEC): Define if not defined. + (cc1_spec): Append SUBTARGET_CC1_SPEC. + +2022-11-21 Dimitar Dimitrov <dimitar@dinux.eu> + + * doc/sourcebuild.texi (sockets): Document new check. + +2022-11-21 Andrew Carlotti <andrew.carlotti@arm.com> + + * tree-ssa-loop.h (tree_niter_desc): Update comment. + +2022-11-21 Andrew Carlotti <andrew.carlotti@arm.com> + + * tree-ssa-loop-niter.cc + (number_of_iterations_exit_assumptions): Modify to call... + (number_of_iterations_bitcount): ...this new function. + (number_of_iterations_popcount): Now called by the above. + Refactor, and extract popcount expression builder to... + (build_popcount_expr): this new function. + +2022-11-21 Andrew Carlotti <andrew.carlotti@arm.com> + + * tree-ssa-loop-niter.cc (ssa_defined_by_minus_one_stmt_p): Move + (number_of_iterations_popcount): Move, and remove separate prototype. + +2022-11-21 Andrew Carlotti <andrew.carlotti@arm.com> + + * tree-ssa-loop-niter.cc (number_of_iterations_exit_assumptions): + Move at_stmt assignment. + +2022-11-21 Christophe Lyon <christophe.lyon@arm.com> + + * genmultilib: Fix options and dirnames/osdirnames sanity check. + +2022-11-21 Philipp Tomsich <philipp.tomsich@vrull.eu> + + PR target/107786 + * config/riscv/riscv.md + (*branch<ANYI:mode>_shiftedarith_equals_zero): Wrap ANYI + in a subreg, as our branch instructions only supports X. + +2022-11-21 Jakub Jelinek <jakub@redhat.com> + + PR target/107748 + * config/i386/avx512fp16intrin.h (_mm512_castph512_ph128, + _mm512_castph512_ph256, _mm512_castph128_ph512, + _mm512_castph256_ph512, _mm512_set1_pch): Uglify names of local + variables and union members. + * config/i386/avx512fp16vlintrin.h (_mm256_castph256_ph128, + _mm256_castph128_ph256, _mm256_set1_pch, _mm_set1_pch): Likewise. + * config/i386/smmintrin.h (_mm_extract_ps): Likewise. + +2022-11-21 Christophe Lyon <christophe.lyon@arm.com> + + * genmultilib: Add sanity check. + +2022-11-21 Eric Botcazou <ebotcazou@adacore.com> + + * config/arm/arm.cc (arm_attribute_table) <cmse_nonsecure_call>: + Change decl_required field to false. + (arm_handle_cmse_nonsecure_call): Deal with a TYPE node. + +2022-11-21 Andrew Pinski <apinski@marvell.com> + + * gimplify.cc (gimplify_modify_expr): If + either *from_p or *to_p were error_operand + return early. + +2022-11-21 liuhongt <hongtao.liu@intel.com> + + * config/i386/i386-builtins.cc (def_builtin): Handle "shared" + avx512bf16vl-avxneconvert builtins. + +2022-11-20 Jakub Jelinek <jakub@redhat.com> + + PR target/107183 + * reg-stack.cc (next_flags_user): Add DEBUG_SEEN argument. + If >= 0 and a DEBUG_INSN would be otherwise returned, set + DEBUG_SEEN to 1 and ignore it. + (swap_rtx_condition): Add DEBUG_SEEN argument. In >= 0 + mode only set DEBUG_SEEN to 1 if problematic DEBUG_ISNSs + were seen and revert all changes on success in that case. + Don't try to recog_memoized DEBUG_INSNs. + (compare_for_stack_reg): Adjust swap_rtx_condition caller. + If it returns true and debug_seen is 1, call swap_rtx_condition + again with debug_seen -1. + +2022-11-20 Jeff Law <jlaw@ventanamicro.com> + + PR other/104044 + * config/mn10300/mn10300.cc (mn10300_print_operand): Remove + extraneous semicolon. + * config/nvptx/nvptx.cc (nvptx_goacc_reduction_fini): Likewise. + +2022-11-19 Andrew Pinski <apinski@marvell.com> + + PR middle-end/14840 + * tree-core.h (tree_code_type): Constexprify + by including all-tree.def. + (tree_code_length): Likewise. + * tree.cc (tree_code_type): Remove. + (tree_code_length): Remove. + +2022-11-19 Thomas Schwinge <thomas@codesourcery.com> + + * config/nvptx/nvptx.h (STARTFILE_SPEC): Fix 'crt0.o' for + '-mmainkernel'. + +2022-11-19 Jonathan Wakely <jwakely@redhat.com> + LIU Hao <lh_mouse@126.com> + + * system.h [INCLUDE_MUTEX]: Include header for std::mutex. + +2022-11-19 Jakub Jelinek <jakub@redhat.com> + + PR target/107628 + * config/i386/i386-protos.h (ix86_expand_fast_convert_bf_to_sf): + Declare. + * config/i386/i386-expand.cc (ix86_expand_fast_convert_bf_to_sf): New + function. + * config/i386/i386.md (cbranchbf4, cstorebf4): Use it. + +2022-11-19 Jeff Chapman II <jchapman@lock3software.com> + Andrew Sutton <asutton@lock3software.com> + Andrew Marmaduke <amarmaduke@lock3software.com> + Michael Lopez <mlopez@lock3software.com> + Jason Merrill <jason@redhat.com> + + * doc/invoke.texi: Document contracts flags. + +2022-11-18 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md (*minmax): Additional pattern for + min/max against constants that are extension-invariant. + * config/riscv/iterators.md (minmax_optab): Add an iterator + that has only min and max rtl. + +2022-11-18 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md + (*branch<X:mode>_mask_twobits_equals_singlebit): + Handle "if ((a & T) == C)" using Zbs, when T has 2 bits set and C + has one of these tow bits set. + * config/riscv/predicates.md (const_twobits_not_arith_operand): + New predicate. + +2022-11-18 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md (*<or_optab>i<mode>_extrabit): + New pattern for binvi+binvi/xori and bseti+bseti/ori + (*andi<mode>_extrabit): New pattern for bclri+bclri/andi + * config/riscv/iterators.md (any_or): Match or and ior + * config/riscv/predicates.md (const_twobits_operand): + New predicate. + (uimm_extra_bit_operand): New predicate. + (uimm_extra_bit_or_twobits): New predicate. + (not_uimm_extra_bit_operand): New predicate. + (not_uimm_extra_bit_or_nottwobits): New predicate. + * config/riscv/riscv.h (UIMM_EXTRA_BIT_OPERAND): + Helper for the uimm_extra_bit_operand and + not_uimm_extra_bit_operand predicates. + +2022-11-18 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md: Handle corner-cases for combine + when chaining slli(.uw)? + addw + * config/riscv/riscv-protos.h (riscv_shamt_matches_mask_p): + Define prototype. + * config/riscv/riscv.cc (riscv_shamt_matches_mask_p): + Helper for evaluating the relationship between two operands. + +2022-11-18 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md: Add a define_split to optimize + slliw + addiw + divw into sh[123]add + divw. + +2022-11-18 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/predicates.md (shifted_const_arith_operand): New predicate. + (uimm_extra_bit_operand): New predicate. + * config/riscv/riscv.md (*branch<ANYI:mode>_shiftedarith_equals_zero): + New pattern. + (*branch<ANYI:mode>_shiftedmask_equals_zero): New pattern. + +2022-11-18 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md (*bsetidisi): New pattern. + +2022-11-18 Richard Purdie <richard.purdie@linuxfoundation.org> + + * doc/invoke.texi: Document prefix-maps don't affect directives. + +2022-11-18 Andrew Pinski <apinski@marvell.com> + + PR middle-end/107705 + * function.cc (aggregate_value_p): Return 0 if + the function type was an error operand. + +2022-11-18 Andrew Pinski <apinski@marvell.com> + + PR c/106764 + PR c/106765 + PR c/107307 + * gimplify.cc (gimplify_compound_lval): Return GS_ERROR + if gimplify_expr had return GS_ERROR. + (gimplify_call_expr): Likewise. + +2022-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): + Use <GPI:w> for destination format. + * config/aarch64/iterators.md (w_sz): Delete. + +2022-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64.h (TARGET_RCPC2): Define. + * config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_zext): + Adjust output template. + (*aarch64_atomic_load<ALLX:mode>_rcpc_sex): Guard on TARGET_RCPC2. + Adjust output template. + * config/aarch64/iterators.md (w_sz): New mode attr. + +2022-11-18 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107647 + * tree-vect-slp-patterns.cc (addsub_pattern::recognize): Only + allow FMA generation with -ffp-contract=fast for FP types. + (complex_mul_pattern::matches): Likewise. + +2022-11-18 Jinyang He <hejinyang@loongson.cn> + + PR target/107713 + * config/loongarch/sync.md + (atomic_cas_value_exchange_7_<mode>): New define_insn. + (atomic_exchange): Use atomic_cas_value_exchange_7_si instead of + atomic_cas_value_cmp_and_7_si. + +2022-11-17 Andrew Pinski <apinski@marvell.com> + + PR middle-end/107734 + * match.pd (perm + vector op pattern): Clear the sbitmap before + use. + +2022-11-17 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107732 + * range-op-float.cc (foperator_abs::op1_range): Early exit when + result is undefined. + +2022-11-17 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md (*bclri<mode>_nottwobits): New pattern. + (*bclridisi_nottwobits): New pattern, handling the sign-bit. + * config/riscv/predicates.md (const_nottwobits_operand): + New predicate. + +2022-11-17 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md: Add a splitter to generate + polarity-reversed masks from a set bit using bexti + addi. + +2022-11-17 mtsamis <manolis.tsamis@vrull.eu> + + * config/riscv/riscv.cc (struct machine_function): Add array to store + register wrapping information. + (riscv_for_each_saved_reg): Skip registers that are wrapped separetely. + (riscv_get_separate_components): New function. + (riscv_components_for_bb): Likewise. + (riscv_disqualify_components): Likewise. + (riscv_process_components): Likewise. + (riscv_emit_prologue_components): Likewise. + (riscv_emit_epilogue_components): Likewise. + (riscv_set_handled_components): Likewise. + (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define. + (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise. + (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise. + (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise. + (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise. + (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise. + +2022-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_zext): + Add mode size check to condition. + (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Likewise. + +2022-11-17 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/68097 + * gimple-fold.cc (gimple_stmt_nonnegative_warnv_p): Call + range_of_stmt for floats. + +2022-11-17 Lili Cui <lili.cui@intel.com> + + * config/i386/x86-tune.def + (X86_TUNE_AVX256_MOVE_BY_PIECES): Add alderlake. + (X86_TUNE_AVX256_STORE_BY_PIECES): Ditto. + +2022-11-17 Tamar Christina <tamar.christina@arm.com> + + PR tree-optimization/107717 + * match.pd: Ensure same SSA_NAME. + +2022-11-17 Tamar Christina <tamar.christina@arm.com> + + * match.pd: Replace GET_MODE_WIDER_MODE with + custom code. + +2022-11-17 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (range_operator_float::fold_range): Make check + for maybe_isnan more readable. + +2022-11-17 Kewen Lin <linkw@linux.ibm.com> + + * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Use + tree_fits_shwi_p rather than tree_fits_uhwi_p as bias is signed. + +2022-11-17 Jia-Wei Chen <jiawei@iscas.ac.cn> + + * config/riscv/riscv.cc (riscv_expand_epilogue): + Do not emit useless add sp, sp, 0 instrutions. + +2022-11-17 Jeff Law <jlaw@ventanamicro.com> + + * config/sh/sh_treg_combine.cc: Include tm-preds.h. + (t_reg_operand): Remove bogus prototype. + (negt_reg_operand): Likewise. + +2022-11-16 Marek Polacek <polacek@redhat.com> + + PR c++/106649 + * doc/invoke.texi: Document -Winvalid-constexpr. + +2022-11-16 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md: Add split covering + "(a & (1 << BIT_NO)) ? 0 : 1". + +2022-11-16 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md (*bext<mode>): Add an additional + pattern that allows the 3rd argument to zero_extract to be + an Xmode register operand. + +2022-11-16 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107686 + * tree-ssa-forwprop.cc (optimize_vector_load): Restrict + VEC_UNPACK support to integral typed bitfield refs. + +2022-11-16 Richard Biener <rguenther@suse.de> + + PR middle-end/107679 + * tree-into-ssa.cc (maybe_register_def): Use new temporary if + we require an uninitialized value for a parameter decl. + +2022-11-16 Alexander Monakov <amonakov@ispras.ru> + + PR target/107676 + * doc/invoke.texi (-mrelax-cmpxchg-loop): Reword description. + +2022-11-16 Alexander Monakov <amonakov@ispras.ru> + + PR target/87832 + * config/i386/znver.md: (znver1_fp_op_mul): Correct cycles in + the reservation. + (znver1_fp_op_mul_load): Ditto. + (znver1_mmx_mul): Ditto. + (znver1_mmx_load): Ditto. + (znver1_ssemul_ss_ps): Ditto. + (znver1_ssemul_ss_ps_load): Ditto. + (znver1_ssemul_avx256_ps): Ditto. + (znver1_ssemul_avx256_ps_load): Ditto. + (znver1_ssemul_sd_pd): Ditto. + (znver1_ssemul_sd_pd_load): Ditto. + (znver2_ssemul_sd_pd): Ditto. + (znver2_ssemul_sd_pd_load): Ditto. + (znver1_ssemul_avx256_pd): Ditto. + (znver1_ssemul_avx256_pd_load): Ditto. + (znver1_sseimul): Ditto. + (znver1_sseimul_avx256): Ditto. + (znver1_sseimul_load): Ditto. + (znver1_sseimul_avx256_load): Ditto. + (znver1_sseimul_di): Ditto. + (znver1_sseimul_load_di): Ditto. + +2022-11-16 Alexander Monakov <amonakov@ispras.ru> + + PR target/87832 + * config/i386/znver.md (znver1_fdiv): New automaton. + (znver1-fdiv): New unit. + (znver1_fp_op_div): Correct unit and cycles in the reservation. + (znver1_fp_op_div_load): Ditto. + (znver1_fp_op_idiv_load): Ditto. + (znver2_fp_op_idiv_load): Ditto. + (znver1_ssediv_ss_ps): Ditto. + (znver1_ssediv_ss_ps_load): Ditto. + (znver1_ssediv_sd_pd): Ditto. + (znver1_ssediv_sd_pd_load): Ditto. + (znver1_ssediv_avx256_ps): Ditto. + (znver1_ssediv_avx256_ps_load): Ditto. + (znver1_ssediv_avx256_pd): Ditto. + (znver1_ssediv_avx256_pd_load): Ditto. + +2022-11-16 Tobias Burnus <tobias@codesourcery.com> + Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-builtins.def (KERNARG_PTR): Add. + * config/gcn/gcn.cc (gcn_init_builtin_types): Change siptr_type_node, + sfptr_type_node and voidptr_type_node from FLAT to ADDR_SPACE_DEFAULT. + (gcn_expand_builtin_1): Handle GCN_BUILTIN_KERNARG_PTR. + (gcn_oacc_dim_size): Return in ADDR_SPACE_FLAT. + +2022-11-16 David Malcolm <dmalcolm@redhat.com> + + * Makefile.in (ANALYZER_OBJS): Add analyzer/checker-event.o. + +2022-11-16 Max Filippov <jcmvbkbc@gmail.com> + + PR target/107645 + * config/m68k/predicates.md (symbolic_operand): Return false + when UNSPEC is under the CONST node. + +2022-11-16 Christoph Müllner <christoph.muellner@vrull.eu> + + * doc/invoke.texi: Fix PRU/RISC-V option list formatting. + +2022-11-16 Tobias Burnus <tobias@codesourcery.com> + + * config/nvptx/mkoffload.cc (process): Recognize '$nohost$...' + besides tailing '$nohost' as being for reverse offload. + +2022-11-16 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107668 + * range-op-float.cc (float_binary_op_range_finish): Set VARYING + also when r is UNDEFINED. + +2022-11-16 Kewen Lin <linkw@linux.ibm.com> + + PR rtl-optimization/90259 + * function.cc (rest_of_handle_thread_prologue_and_epilogue): Add + parameter fun, and call function purge_all_dead_edges. + (pass_thread_prologue_and_epilogue::execute): Name unamed parameter + as fun, and use it for rest_of_handle_thread_prologue_and_epilogue. + +2022-11-15 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv-builtins.cc (struct riscv_builtin_description): + add the pause machine-dependent builtin with no result and no + arguments; mark it as always present (pause is a true hint + that encodes into a fence-insn, if not supported with the new + pause semantics). + * config/riscv/riscv-ftypes.def: Add type for void -> void. + * config/riscv/riscv.md (riscv_pause): Add risc_pause and + UNSPECV_PAUSE + * doc/extend.texi: Document __builtin_riscv_pause. + * optabs.cc (maybe_gen_insn): Allow nops == 0 (void -> void). + +2022-11-15 David Faust <david.faust@oracle.com> + + * config/bpf/bpf.cc (bpf_expand_builtin): Avoid use of uninitialized + variable in error case. + +2022-11-15 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106140 + * doc/invoke.texi (Static Analyzer Options): Add + -Wanalyzer-fd-phase-mismatch and -Wanalyzer-fd-type-mismatch. Add + "socket", "bind", "listen", "accept", and "connect" to the list of + functions known to the analyzer. + +2022-11-15 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106302 + * Makefile.in (ANALYZER_OBJS): Add analyzer/analyzer-language.o. + (GTFILES): Add analyzer/analyzer-language.cc. + * doc/analyzer.texi: Document __analyzer_dump_named_constant. + +2022-11-15 Lewis Hyatt <lhyatt@gmail.com> + + * json.h (class string): Add M_LEN member to store the length of + the data. Add constructor taking an explicit length. + * json.cc (string::string): Implement the new constructor. + (string::print): Support printing strings that are not + null-terminated. Escape embdedded null bytes on output. + (test_writing_strings): Test the new null-byte-related features of + json::string. + +2022-11-15 Lewis Hyatt <lhyatt@gmail.com> + + * diagnostic.cc (diagnostic_get_location_text): Use + special_fname_builtin () rather than a hardcoded string (which was + also incorrectly left untranslated previously.) + * input.cc (special_fname_builtin): New function. + (expand_location_1): Use special_fname_builtin () rather than a + hard-coded string. + (test_builtins): Likewise. + * input.h (special_fname_builtin): Declare. + +2022-11-15 Lewis Hyatt <lhyatt@gmail.com> + + * tree-diagnostic.cc (maybe_unwind_expanded_macro_loc): Handle ad-hoc + location in return value of linemap_resolve_location(). + +2022-11-15 Jonathan Wakely <jwakely@redhat.com> + + * doc/cpp.texi (Pragmas): Use @item and @itemx for region + pragmas. + +2022-11-15 Maciej W. Rozycki <macro@embecosm.com> + + * ira-color.cc (assign_hard_reg): Remove duplicate `memset' over + `full_costs'. + +2022-11-15 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/atomics.md + (*aarch64_atomic_load<ALLX:mode>_rcpc_zext): New pattern. + (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): New pattern. + +2022-11-15 Andre Vieira <andre.simoesdiasvieira@arm.com> + Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New Macro. + (TARGET_RCPC): New Macro. + * config/aarch64/atomics.md (atomic_load<mode>): Change into an expand. + (aarch64_atomic_load<mode>_rcpc): New define_insn for ldapr. + (aarch64_atomic_load<mode>): Rename of old define_insn for ldar. + * config/aarch64/iterators.md (UNSPEC_LDAP): New unspec enum value. + * doc/invoke.texi (rcpc): Ammend documentation to mention the effects + on code generation. + +2022-11-15 Hongyu Wang <hongyu.wang@intel.com> + + PR target/98167 + * match.pd: New perm + vector op patterns for int and fp vector. + +2022-11-15 Andrew Pinski <apinski@marvell.com> + + * doc/invoke.texi: Remove Score option section. + +2022-11-15 Andrew Pinski <apinski@marvell.com> + + * doc/extend.texi: Remove picoChip builtin section. + * doc/invoke.texi: Remove picoChip option section. + +2022-11-15 Andrew Pinski <apinski@marvell.com> + + * doc/extend.texi: Remove MeP documentation. + * doc/invoke.texi: Remove MeP Options documentation. + +2022-11-15 Andrew Pinski <apinski@marvell.com> + + * doc/invoke.texi: Fix opindex for mcall-aixdesc and mcall-openbsd. + +2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + Revert: + 2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv-cores.def (RISCV_TUNE): Add ventana-vt1. + (RISCV_CORE): Ditto. + * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Ditto. + * config/riscv/riscv.cc: Add tune_info for ventana-vt1. + * doc/invoke.texi: Document -mcpu= and -mtune with ventana-vt1. + +2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + Revert: + 2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv.cc (enum riscv_fusion_pairs): Add symbolic + constants to identify supported fusion patterns. + (struct riscv_tune_param): Add fusible_op field. + (riscv_macro_fusion_p): Implement. + (riscv_fusion_enabled_p): Implement. + (riscv_macro_fusion_pair_p): Implement and recognize fusible + idioms for Ventana VT1. + (TARGET_SCHED_MACRO_FUSION_P): Point to riscv_macro_fusion_p. + (TARGET_SCHED_MACRO_FUSION_PAIR_P): Point to + riscv_macro_fusion_pair_p. + +2022-11-14 Maciej W. Rozycki <macro@embecosm.com> + + * ira-build.cc (create_insn_allocnos): Fix documentation. + +2022-11-14 Tamar Christina <tamar.christina@arm.com> + + * match.pd: Remove returns. + +2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md (orcb<mode>2): Add orc.b as an + unspec. + * config/riscv/riscv.md: Add UNSPEC_ORC_B. + +2022-11-14 Tamar Christina <tamar.christina@arm.com> + + * target.def: Fix typo. + +2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv.cc (enum riscv_fusion_pairs): Add symbolic + constants to identify supported fusion patterns. + (struct riscv_tune_param): Add fusible_op field. + (riscv_macro_fusion_p): Implement. + (riscv_fusion_enabled_p): Implement. + (riscv_macro_fusion_pair_p): Implement and recognize fusible + idioms for Ventana VT1. + (TARGET_SCHED_MACRO_FUSION_P): Point to riscv_macro_fusion_p. + (TARGET_SCHED_MACRO_FUSION_PAIR_P): Point to + riscv_macro_fusion_pair_p. + +2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv-cores.def (RISCV_TUNE): Add ventana-vt1. + (RISCV_CORE): Ditto. + * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Ditto. + * config/riscv/riscv.cc: Add tune_info for ventana-vt1. + * doc/invoke.texi: Document -mcpu= and -mtune with ventana-vt1. + +2022-11-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64-option-extensions.def (cssc): Define. + * config/aarch64/aarch64.h (AARCH64_ISA_CSSC): Define. + (TARGET_CSSC): Likewise. + * config/aarch64/aarch64.md (*aarch64_abs<mode>2_cssc_ins): New define_insn. + (abs<mode>2): Adjust for the above. + (aarch64_umax<mode>3_insn): New define_insn. + (umax<mode>3): Adjust for the above. + (*aarch64_popcount<mode>2_cssc_insn): New define_insn. + (popcount<mode>2): Adjust for the above. + (<optab><mode>3): New define_insn. + * config/aarch64/constraints.md (Usm): Define. + (Uum): Likewise. + * doc/invoke.texi (AArch64 options): Document +cssc. + * config/aarch64/iterators.md (MAXMIN_NOUMAX): New code iterator. + * config/aarch64/predicates.md (aarch64_sminmax_immediate): Define. + (aarch64_sminmax_operand): Likewise. + (aarch64_uminmax_immediate): Likewise. + (aarch64_uminmax_operand): Likewise. + +2022-11-14 Tamar Christina <tamar.christina@arm.com> + + * config/aarch64/aarch64-sve2.md (@aarch64_bitmask_udiv<mode>3): New. + +2022-11-14 Tamar Christina <tamar.christina@arm.com> + + * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): New. + * config/aarch64/aarch64.cc (aarch64_vectorize_can_special_div_by_constant): New. + +2022-11-14 Tamar Christina <tamar.christina@arm.com> + + * expmed.h (expand_divmod): Pass tree operands down in addition to RTX. + * expmed.cc (expand_divmod): Likewise. + * explow.cc (round_push, align_dynamic_address): Likewise. + * expr.cc (force_operand, expand_expr_divmod): Likewise. + * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): + Likewise. + * target.h: Include tree-core. + * target.def (can_special_div_by_const): New. + * targhooks.cc (default_can_special_div_by_const): New. + * targhooks.h (default_can_special_div_by_const): New. + * tree-vect-generic.cc (expand_vector_operation): Use it. + * doc/tm.texi.in: Document it. + * doc/tm.texi: Regenerate. + * tree-vect-patterns.cc (vect_recog_divmod_pattern): Check for support. + * tree-vect-stmts.cc (vectorizable_operation): Likewise. + +2022-11-14 Tamar Christina <tamar.christina@arm.com> + + * generic-match-head.cc: Include langooks. + * gimple-match-head.cc: Likewise. + * match.pd: Add fneg/fadd rule. + +2022-11-14 Srinath Parvathaneni <srinath.parvathaneni@arm.com> + + * config/arm/arm-cpus.in (cortex-x1c): Define new CPU. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Likewise. + * doc/invoke.texi: Document Cortex-X1C CPU. + +2022-11-14 Srinath Parvathaneni <srinath.parvathaneni@arm.com> + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-X3 + CPU. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi: Document Cortex-X3 CPU. + +2022-11-14 Andrew Pinski <apinski@marvell.com> + + * doc/invoke.texi: Fix @opindex + for m80387 option. + +2022-11-14 Andrew Pinski <apinski@marvell.com> + + * doc/invoke.texi: Remove the front - from + some @opindex. + +2022-11-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere1a. + * config/aarch64/aarch64-cost-tables.h: Add ampere1a_extra_costs. + * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR): + Define a new fusion pair for A+B+1/A-B-1 (i.e., add/subtract two + registers and then +1/-1). + * config/aarch64/aarch64-tune.md: Regenerate. + * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement + idiom-matcher for the new fusion pair. + * doc/invoke.texi: Add ampere1a. + +2022-11-14 Richard Biener <rguenther@suse.de> + + * match.pd: Remove duplicates. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/contrib.texi: Port from Sphinx. + * doc/cpp.texi: Likewise. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/cpp/character-sets.rst: New file. + * doc/cpp/conditional-syntax.rst: New file. + * doc/cpp/conditional-uses.rst: New file. + * doc/cpp/conditionals.rst: New file. + * doc/cpp/conf.py: New file. + * doc/cpp/copyright.rst: New file. + * doc/cpp/deleted-code.rst: New file. + * doc/cpp/diagnostics.rst: New file. + * doc/cpp/environment-variables.rst: New file. + * doc/cpp/gnu-free-documentation-license.rst: New file. + * doc/cpp/header-files.rst: New file. + * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: New file. + * doc/cpp/header-files/computed-includes.rst: New file. + * doc/cpp/header-files/include-operation.rst: New file. + * doc/cpp/header-files/include-syntax.rst: New file. + * doc/cpp/header-files/once-only-headers.rst: New file. + * doc/cpp/header-files/search-path.rst: New file. + * doc/cpp/header-files/system-headers.rst: New file. + * doc/cpp/header-files/wrapper-headers.rst: New file. + * doc/cpp/implementation-defined-behavior.rst: New file. + * doc/cpp/implementation-details.rst: New file. + * doc/cpp/implementation-limits.rst: New file. + * doc/cpp/index.rst: New file. + * doc/cpp/indices-and-tables.rst: New file. + * doc/cpp/initial-processing.rst: New file. + * doc/cpp/invocation.rst: New file. + * doc/cpp/line-control.rst: New file. + * doc/cpp/macros.rst: New file. + * doc/cpp/macros/concatenation.rst: New file. + * doc/cpp/macros/directives-within-macro-arguments.rst: New file. + * doc/cpp/macros/function-like-macros.rst: New file. + * doc/cpp/macros/macro-arguments.rst: New file. + * doc/cpp/macros/macro-pitfalls.rst: New file. + * doc/cpp/macros/object-like-macros.rst: New file. + * doc/cpp/macros/predefined-macros.rst: New file. + * doc/cpp/macros/stringizing.rst: New file. + * doc/cpp/macros/undefining-and-redefining-macros.rst: New file. + * doc/cpp/macros/variadic-macros.rst: New file. + * doc/cpp/obsolete-features.rst: New file. + * doc/cpp/other-directives.rst: New file. + * doc/cpp/overview.rst: New file. + * doc/cpp/pragmas.rst: New file. + * doc/cpp/preprocessor-output.rst: New file. + * doc/cpp/the-preprocessing-language.rst: New file. + * doc/cpp/tokenization.rst: New file. + * doc/cpp/traditional-lexical-analysis.rst: New file. + * doc/cpp/traditional-macros.rst: New file. + * doc/cpp/traditional-miscellany.rst: New file. + * doc/cpp/traditional-mode.rst: New file. + * doc/cpp/traditional-warnings.rst: New file. + * doc/cppinternals/conf.py: New file. + * doc/cppinternals/copyright.rst: New file. + * doc/cppinternals/cppinternals.rst: New file. + * doc/cppinternals/cpplib.rst: New file. + * doc/cppinternals/files.rst: New file. + * doc/cppinternals/index.rst: New file. + * doc/cppinternals/indices-and-tables.rst: New file. + * doc/cppinternals/internal-representation-of-macros.rst: New file. + * doc/cppinternals/just-which-line-number-anyway.rst: New file. + * doc/cppinternals/lexing-a-line.rst: New file. + * doc/cppinternals/lexing-a-token.rst: New file. + * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: New file. + * doc/cppinternals/macro-expansion-overview.rst: New file. + * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: New file. + * doc/cppinternals/multiple-include-optimization.rst: New file. + * doc/cppinternals/overview.rst: New file. + * doc/cppinternals/representation-of-line-numbers.rst: New file. + * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: New file. + * doc/gcc/binary-compatibility.rst: New file. + * doc/gcc/c++-implementation-defined-behavior.rst: New file. + * doc/gcc/c-implementation-defined-behavior.rst: New file. + * doc/gcc/c-implementation-defined-behavior/architecture.rst: New file. + * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/characters.rst: New file. + * doc/gcc/c-implementation-defined-behavior/declarators.rst: New file. + * doc/gcc/c-implementation-defined-behavior/environment.rst: New file. + * doc/gcc/c-implementation-defined-behavior/floating-point.rst: New file. + * doc/gcc/c-implementation-defined-behavior/hints.rst: New file. + * doc/gcc/c-implementation-defined-behavior/identifiers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/integers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/library-functions.rst: New file. + * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: New file. + * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: New file. + * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/statements.rst: New file. + * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst: + New file. + * doc/gcc/c-implementation-defined-behavior/translation.rst: New file. + * doc/gcc/conditionally-supported-behavior.rst: New file. + * doc/gcc/conf.py: New file. + * doc/gcc/contributing-to-gcc-development.rst: New file. + * doc/gcc/contributors-to-gcc.rst: New file. + * doc/gcc/copyright.rst: New file. + * doc/gcc/exception-handling.rst: New file. + * doc/gcc/extensions-to-the-c++-language.rst: New file. + * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: New file. + * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: New file. + * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: New file. + * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: New file. + * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: New file. + * doc/gcc/extensions-to-the-c++-language/type-traits.rst: New file. + * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: New file. + * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: New file. + * doc/gcc/extensions-to-the-c-language-family.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst: + New file. + * doc/gcc/funding.rst: New file. + * doc/gcc/gcc-command-options.rst: New file. + * doc/gcc/gcc-command-options/c++-modules.rst: New file. + * doc/gcc/gcc-command-options/compiling-c++-programs.rst: New file. + * doc/gcc/gcc-command-options/description.rst: New file. + * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: New file. + * doc/gcc/gcc-command-options/gcc-developer-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst: + New file. + * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst: + New file. + * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst: + New file. + * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: New file. + * doc/gcc/gcc-command-options/option-summary.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst: + New file. + * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: New file. + * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: New file. + * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: New file. + * doc/gcc/gcc-command-options/options-for-directory-search.rst: New file. + * doc/gcc/gcc-command-options/options-for-linking.rst: New file. + * doc/gcc/gcc-command-options/options-that-control-optimization.rst: New file. + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: New file. + * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: + New file. + * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: New file. + * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: New file. + * doc/gcc/gcc-command-options/program-instrumentation-options.rst: New file. + * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst: + New file. + * doc/gcc/gcc-command-options/using-precompiled-headers.rst: New file. + * doc/gcc/gcc.rst: New file. + * doc/gcc/gcov-dump.rst: New file. + * doc/gcc/gcov-tool.rst: New file. + * doc/gcc/gcov.rst: New file. + * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: New file. + * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: New file. + * doc/gcc/gcov/introduction-to-gcov.rst: New file. + * doc/gcc/gcov/invoking-gcov.rst: New file. + * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: New file. + * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: New file. + * doc/gcc/general-public-license-3.rst: New file. + * doc/gcc/gnu-free-documentation-license.rst: New file. + * doc/gcc/gnu-objective-c-features.rst: New file. + * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: New file. + * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: New file. + * doc/gcc/gnu-objective-c-features/exceptions.rst: New file. + * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: New file. + * doc/gcc/gnu-objective-c-features/garbage-collection.rst: New file. + * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: New file. + * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: New file. + * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: New file. + * doc/gcc/gnu-objective-c-features/synchronization.rst: New file. + * doc/gcc/gnu-objective-c-features/type-encoding.rst: New file. + * doc/gcc/gnu.rst: New file. + * doc/gcc/have-you-found-a-bug.rst: New file. + * doc/gcc/how-and-where-to-report-bugs.rst: New file. + * doc/gcc/how-to-get-help-with-gcc.rst: New file. + * doc/gcc/index.rst: New file. + * doc/gcc/indices-and-tables.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst: + New file. + * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst: + New file. + * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst: + New file. + * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst: + New file. + * doc/gcc/language-standards-supported-by-gcc.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/c-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/d-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/go-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst: + New file. + * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: New file. + * doc/gcc/lto-dump.rst: New file. + * doc/gcc/programming-languages-supported-by-gcc.rst: New file. + * doc/gcc/reporting-bugs.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst: + New file. + * doc/gccint/analysis-and-representation-of-loops.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst: + New file. + * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: New file. + * doc/gccint/analyzer-internals.rst: New file. + * doc/gccint/collect2.rst: New file. + * doc/gccint/conf.py: New file. + * doc/gccint/contributing-to-gcc-development.rst: New file. + * doc/gccint/contributors-to-gcc.rst: New file. + * doc/gccint/control-flow-graph.rst: New file. + * doc/gccint/control-flow-graph/basic-blocks.rst: New file. + * doc/gccint/control-flow-graph/edges.rst: New file. + * doc/gccint/control-flow-graph/liveness-information.rst: New file. + * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: New file. + * doc/gccint/control-flow-graph/profile-information.rst: New file. + * doc/gccint/copyright.rst: New file. + * doc/gccint/debugging-the-analyzer.rst: New file. + * doc/gccint/funding.rst: New file. + * doc/gccint/gcc-and-portability.rst: New file. + * doc/gccint/general-public-license-3.rst: New file. + * doc/gccint/generic.rst: New file. + * doc/gccint/generic/attributes-in-trees.rst: New file. + * doc/gccint/generic/c-and-c++-trees.rst: New file. + * doc/gccint/generic/declarations.rst: New file. + * doc/gccint/generic/deficiencies.rst: New file. + * doc/gccint/generic/expressions.rst: New file. + * doc/gccint/generic/functions.rst: New file. + * doc/gccint/generic/language-dependent-trees.rst: New file. + * doc/gccint/generic/overview.rst: New file. + * doc/gccint/generic/statements.rst: New file. + * doc/gccint/generic/types.rst: New file. + * doc/gccint/gimple-api.rst: New file. + * doc/gccint/gimple.rst: New file. + * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: New file. + * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: New file. + * doc/gccint/gimple/exception-handling.rst: New file. + * doc/gccint/gimple/gimple-instruction-set.rst: New file. + * doc/gccint/gimple/gimple-sequences.rst: New file. + * doc/gccint/gimple/manipulating-gimple-statements.rst: New file. + * doc/gccint/gimple/operands.rst: New file. + * doc/gccint/gimple/sequence-iterators.rst: New file. + * doc/gccint/gimple/statement-and-operand-traversals.rst: New file. + * doc/gccint/gimple/temporaries.rst: New file. + * doc/gccint/gimple/tuple-representation.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: New file. + * doc/gccint/gnu-free-documentation-license.rst: New file. + * doc/gccint/guidelines-for-diagnostics.rst: New file. + * doc/gccint/guidelines-for-options.rst: New file. + * doc/gccint/host-common.rst: New file. + * doc/gccint/host-configuration.rst: New file. + * doc/gccint/host-filesystem.rst: New file. + * doc/gccint/host-makefile-fragments.rst: New file. + * doc/gccint/host-misc.rst: New file. + * doc/gccint/index.rst: New file. + * doc/gccint/indices-and-tables.rst: New file. + * doc/gccint/interfacing-to-gcc-output.rst: New file. + * doc/gccint/introduction.rst: New file. + * doc/gccint/language-front-ends-in-gcc.rst: New file. + * doc/gccint/link-time-optimization.rst: New file. + * doc/gccint/link-time-optimization/design-overview.rst: New file. + * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: New file. + * doc/gccint/link-time-optimization/lto-file-sections.rst: New file. + * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: New file. + * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst: + New file. + * doc/gccint/machine-descriptions.rst: New file. + * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: New file. + * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: New file. + * doc/gccint/machine-descriptions/conditional-execution.rst: New file. + * doc/gccint/machine-descriptions/constant-definitions.rst: New file. + * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: New file. + * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: New file. + * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: New file. + * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: New file. + * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: New file. + * doc/gccint/machine-descriptions/example-of-defineinsn.rst: New file. + * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: New file. + * doc/gccint/machine-descriptions/instruction-attributes.rst: New file. + * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: New file. + * doc/gccint/machine-descriptions/iterators.rst: New file. + * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: New file. + * doc/gccint/machine-descriptions/operand-constraints.rst: New file. + * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: New file. + * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst: + New file. + * doc/gccint/machine-descriptions/predicates.rst: New file. + * doc/gccint/machine-descriptions/rtl-template.rst: New file. + * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: New file. + * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: New file. + * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: New file. + * doc/gccint/makefile-fragments.rst: New file. + * doc/gccint/match-and-simplify.rst: New file. + * doc/gccint/memory-management-and-type-information.rst: New file. + * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst: + New file. + * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst: + New file. + * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst: + New file. + * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: New file. + * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst: + New file. + * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: New file. + * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst: + New file. + * doc/gccint/option-file-format.rst: New file. + * doc/gccint/option-properties.rst: New file. + * doc/gccint/option-specification-files.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst: + New file. + * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: New file. + * doc/gccint/plugins.rst: New file. + * doc/gccint/plugins/building-gcc-plugins.rst: New file. + * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: New file. + * doc/gccint/plugins/giving-information-about-a-plugin.rst: New file. + * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: New file. + * doc/gccint/plugins/interacting-with-the-pass-manager.rst: New file. + * doc/gccint/plugins/keeping-track-of-available-passes.rst: New file. + * doc/gccint/plugins/loading-plugins.rst: New file. + * doc/gccint/plugins/plugin-api.rst: New file. + * doc/gccint/plugins/recording-information-about-pass-execution.rst: New file. + * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: New file. + * doc/gccint/rtl-representation.rst: New file. + * doc/gccint/rtl-representation/access-to-operands.rst: New file. + * doc/gccint/rtl-representation/access-to-special-operands.rst: New file. + * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: New file. + * doc/gccint/rtl-representation/bit-fields.rst: New file. + * doc/gccint/rtl-representation/comparison-operations.rst: New file. + * doc/gccint/rtl-representation/constant-expression-types.rst: New file. + * doc/gccint/rtl-representation/conversions.rst: New file. + * doc/gccint/rtl-representation/declarations.rst: New file. + * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: New file. + * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: New file. + * doc/gccint/rtl-representation/insns.rst: New file. + * doc/gccint/rtl-representation/machine-modes.rst: New file. + * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: New file. + * doc/gccint/rtl-representation/reading-rtl.rst: New file. + * doc/gccint/rtl-representation/registers-and-memory.rst: New file. + * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: New file. + * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: New file. + * doc/gccint/rtl-representation/rtl-object-types.rst: New file. + * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: New file. + * doc/gccint/rtl-representation/side-effect-expressions.rst: New file. + * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: New file. + * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: New file. + * doc/gccint/rtl-representation/vector-operations.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: New file. + * doc/gccint/source-tree-structure-and-build-system.rst: New file. + * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/building-documentation.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst: + New file. + * doc/gccint/standard-header-file-directories.rst: New file. + * doc/gccint/static-analyzer.rst: New file. + * doc/gccint/target-macros.rst: New file. + * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: New file. + * doc/gccint/target-macros/addressing-modes.rst: New file. + * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: New file. + * doc/gccint/target-macros/anchored-addresses.rst: New file. + * doc/gccint/target-macros/c++-abi-parameters.rst: New file. + * doc/gccint/target-macros/condition-code-status.rst: New file. + * doc/gccint/target-macros/controlling-debugging-information-format.rst: New file. + * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: New file. + * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: New file. + * doc/gccint/target-macros/d-abi-parameters.rst: New file. + * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: New file. + * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst: + New file. + * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: New file. + * doc/gccint/target-macros/defining-the-output-assembler-language.rst: New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst: + New file. + * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: New file. + * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: New file. + * doc/gccint/target-macros/emulating-tls.rst: New file. + * doc/gccint/target-macros/implementing-the-varargs-macros.rst: New file. + * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: New file. + * doc/gccint/target-macros/layout-of-source-language-data-types.rst: New file. + * doc/gccint/target-macros/miscellaneous-parameters.rst: New file. + * doc/gccint/target-macros/mode-switching-instructions.rst: New file. + * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst: + New file. + * doc/gccint/target-macros/position-independent-code.rst: New file. + * doc/gccint/target-macros/register-classes.rst: New file. + * doc/gccint/target-macros/register-usage.rst: New file. + * doc/gccint/target-macros/run-time-target-specification.rst: New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst: + New file. + * doc/gccint/target-macros/storage-layout.rst: New file. + * doc/gccint/target-macros/support-for-nested-functions.rst: New file. + * doc/gccint/target-macros/the-global-targetm-variable.rst: New file. + * doc/gccint/target-makefile-fragments.rst: New file. + * doc/gccint/testsuites.rst: New test. + * doc/gccint/testsuites/ada-language-testsuites.rst: New test. + * doc/gccint/testsuites/c-language-testsuites.rst: New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst: + New test. + * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: New test. + * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: New test. + * doc/gccint/testsuites/support-for-testing-gcov.rst: New test. + * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: New test. + * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: New test. + * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: New test. + * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: New test. + * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: New test. + * doc/gccint/the-gcc-low-level-runtime-library.rst: New file. + * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst: + New file. + * doc/gccint/the-language.rst: New file. + * doc/gccint/user-experience-guidelines.rst: New file. + * doc/install/binaries.rst: New file. + * doc/install/building.rst: New file. + * doc/install/building/building-a-cross-compiler.rst: New file. + * doc/install/building/building-a-native-compiler.rst: New file. + * doc/install/building/building-in-parallel.rst: New file. + * doc/install/building/building-the-ada-compiler.rst: New file. + * doc/install/building/building-the-d-compiler.rst: New file. + * doc/install/building/building-with-profile-feedback.rst: New file. + * doc/install/conf.py: New file. + * doc/install/configuration.rst: New file. + * doc/install/copyright.rst: New file. + * doc/install/downloading-gcc.rst: New file. + * doc/install/final-installation.rst: New file. + * doc/install/gnu-free-documentation-license.rst: New file. + * doc/install/host-target-specific-installation-notes-for-gcc.rst: New file. + * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: New test. + * doc/install/how-to-interpret-test-results.rst: New file. + * doc/install/index.rst: New file. + * doc/install/indices-and-tables.rst: New file. + * doc/install/installing-gcc.rst: New file. + * doc/install/passing-options-and-running-multiple-testsuites.rst: New test. + * doc/install/prerequisites.rst: New file. + * doc/install/submitting-test-results.rst: New file. + * doc/install/testing.rst: New file. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: Revert. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * common/common-target.def: Port to RST. + * target.def: Port to RST. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: Use tm.rst.in file. + * doc/gccint/target-macros/addressing-modes.rst: Likewise. + * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: Likewise. + * doc/gccint/target-macros/anchored-addresses.rst: Likewise. + * doc/gccint/target-macros/c++-abi-parameters.rst: Likewise. + * doc/gccint/target-macros/condition-code-status.rst: Likewise. + * doc/gccint/target-macros/controlling-debugging-information-format.rst: Likewise. + * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: Likewise. + * doc/gccint/target-macros/d-abi-parameters.rst: Likewise. + * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst: + Likewise. + * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: Likewise. + * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: Likewise. + * doc/gccint/target-macros/emulating-tls.rst: Likewise. + * doc/gccint/target-macros/implementing-the-varargs-macros.rst: Likewise. + * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: Likewise. + * doc/gccint/target-macros/layout-of-source-language-data-types.rst: Likewise. + * doc/gccint/target-macros/miscellaneous-parameters.rst: Likewise. + * doc/gccint/target-macros/mode-switching-instructions.rst: Likewise. + * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst: + Likewise. + * doc/gccint/target-macros/register-classes.rst: Likewise. + * doc/gccint/target-macros/register-usage.rst: Likewise. + * doc/gccint/target-macros/run-time-target-specification.rst: Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst: + Likewise. + * doc/gccint/target-macros/storage-layout.rst: Likewise. + * doc/gccint/target-macros/support-for-nested-functions.rst: Likewise. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * Makefile.in: Support Sphinx based documentation. + * configure: Regenerate. + * configure.ac: Support Sphinx based documentation. + * genhooks.cc (struct s_hook): Emit tm.rst.in file. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/tm.rst.in: New file. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/analyzer.texi: Removed. + * doc/avr-mmcu.texi: Removed. + * doc/bugreport.texi: Removed. + * doc/cfg.texi: Removed. + * doc/collect2.texi: Removed. + * doc/compat.texi: Removed. + * doc/configfiles.texi: Removed. + * doc/configterms.texi: Removed. + * doc/contrib.texi: Removed. + * doc/contribute.texi: Removed. + * doc/cpp.texi: Removed. + * doc/cppdiropts.texi: Removed. + * doc/cppenv.texi: Removed. + * doc/cppinternals.texi: Removed. + * doc/cppopts.texi: Removed. + * doc/cppwarnopts.texi: Removed. + * doc/extend.texi: Removed. + * doc/fragments.texi: Removed. + * doc/frontends.texi: Removed. + * doc/gcc.texi: Removed. + * doc/gccint.texi: Removed. + * doc/gcov-dump.texi: Removed. + * doc/gcov-tool.texi: Removed. + * doc/gcov.texi: Removed. + * doc/generic.texi: Removed. + * doc/gimple.texi: Removed. + * doc/gnu.texi: Removed. + * doc/gty.texi: Removed. + * doc/headerdirs.texi: Removed. + * doc/hostconfig.texi: Removed. + * doc/implement-c.texi: Removed. + * doc/implement-cxx.texi: Removed. + * doc/include/fdl.texi: Removed. + * doc/include/funding.texi: Removed. + * doc/include/gcc-common.texi: Removed. + * doc/include/gpl_v3.texi: Removed. + * doc/install.texi: Removed. + * doc/interface.texi: Removed. + * doc/invoke.texi: Removed. + * doc/languages.texi: Removed. + * doc/libgcc.texi: Removed. + * doc/loop.texi: Removed. + * doc/lto-dump.texi: Removed. + * doc/lto.texi: Removed. + * doc/makefile.texi: Removed. + * doc/match-and-simplify.texi: Removed. + * doc/md.texi: Removed. + * doc/objc.texi: Removed. + * doc/optinfo.texi: Removed. + * doc/options.texi: Removed. + * doc/passes.texi: Removed. + * doc/plugins.texi: Removed. + * doc/poly-int.texi: Removed. + * doc/portability.texi: Removed. + * doc/rtl.texi: Removed. + * doc/service.texi: Removed. + * doc/sourcebuild.texi: Removed. + * doc/standards.texi: Removed. + * doc/tm.texi: Removed. + * doc/tree-ssa.texi: Removed. + * doc/trouble.texi: Removed. + * doc/ux.texi: Removed. + * doc/tm.texi.in: Removed. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * target.def: Use proper lexers for target macros. + * doc/gccint/target-macros/tm.rst.in: Re-generate. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Support --with-sphinx-build. + * configure.ac: + * configure: Regenerate. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: + Fix cross manual refs. + * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: + Likewise. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst: + Do not include tm.rst.in. + * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst: + Likewise. + * doc/gccint/target-macros/run-time-target-specification.rst: + Likewise. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst: + Port to RST. + * doc/gccint/target-macros/storage-layout.rst: Likewise. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: Sync with master. + * doc/gcc/gcc-command-options/option-summary.rst: Likewise. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Support installation if sphinx-build is missing. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Add vpath default for .rst files. + * config/avr/avr-devices.cc: For port RST. + * config/avr/avr-mcus.def: Update path. + * config/avr/gen-avr-mmcu-texi.cc: Moved to... + * config/avr/gen-avr-mmcu-rst.cc: ...here. + * config/avr/t-avr: Update to rst. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: Re-generate. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + + * opts.cc (get_option_html_page): Port to sphinx URLs. + (get_option_url): Likewise. + (test_get_option_html_page): Likewise. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/cpp/character-sets.rst: + Add trailing newline. + * doc/cpp/conditional-syntax.rst: + Add trailing newline. + * doc/cpp/conditional-uses.rst: + Add trailing newline. + * doc/cpp/conditionals.rst: + Add trailing newline. + * doc/cpp/copyright.rst: + Add trailing newline. + * doc/cpp/deleted-code.rst: + Add trailing newline. + * doc/cpp/diagnostics.rst: + Add trailing newline. + * doc/cpp/environment-variables.rst: + Add trailing newline. + * doc/cpp/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/cpp/header-files.rst: + Add trailing newline. + * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: + Add trailing newline. + * doc/cpp/header-files/computed-includes.rst: + Add trailing newline. + * doc/cpp/header-files/include-operation.rst: + Add trailing newline. + * doc/cpp/header-files/include-syntax.rst: + Add trailing newline. + * doc/cpp/header-files/once-only-headers.rst: + Add trailing newline. + * doc/cpp/header-files/search-path.rst: + Add trailing newline. + * doc/cpp/header-files/system-headers.rst: + Add trailing newline. + * doc/cpp/header-files/wrapper-headers.rst: + Add trailing newline. + * doc/cpp/implementation-defined-behavior.rst: + Add trailing newline. + * doc/cpp/implementation-details.rst: + Add trailing newline. + * doc/cpp/implementation-limits.rst: + Add trailing newline. + * doc/cpp/index.rst: + Add trailing newline. + * doc/cpp/indices-and-tables.rst: + Add trailing newline. + * doc/cpp/initial-processing.rst: + Add trailing newline. + * doc/cpp/invocation.rst: + Add trailing newline. + * doc/cpp/line-control.rst: + Add trailing newline. + * doc/cpp/macros.rst: + Add trailing newline. + * doc/cpp/macros/concatenation.rst: + Add trailing newline. + * doc/cpp/macros/directives-within-macro-arguments.rst: + Add trailing newline. + * doc/cpp/macros/function-like-macros.rst: + Add trailing newline. + * doc/cpp/macros/macro-arguments.rst: + Add trailing newline. + * doc/cpp/macros/macro-pitfalls.rst: + Add trailing newline. + * doc/cpp/macros/object-like-macros.rst: + Add trailing newline. + * doc/cpp/macros/predefined-macros.rst: + Add trailing newline. + * doc/cpp/macros/stringizing.rst: + Add trailing newline. + * doc/cpp/macros/undefining-and-redefining-macros.rst: + Add trailing newline. + * doc/cpp/macros/variadic-macros.rst: + Add trailing newline. + * doc/cpp/obsolete-features.rst: + Add trailing newline. + * doc/cpp/other-directives.rst: + Add trailing newline. + * doc/cpp/overview.rst: + Add trailing newline. + * doc/cpp/pragmas.rst: + Add trailing newline. + * doc/cpp/preprocessor-output.rst: + Add trailing newline. + * doc/cpp/the-preprocessing-language.rst: + Add trailing newline. + * doc/cpp/tokenization.rst: + Add trailing newline. + * doc/cpp/traditional-lexical-analysis.rst: + Add trailing newline. + * doc/cpp/traditional-macros.rst: + Add trailing newline. + * doc/cpp/traditional-miscellany.rst: + Add trailing newline. + * doc/cpp/traditional-mode.rst: + Add trailing newline. + * doc/cpp/traditional-warnings.rst: + Add trailing newline. + * doc/cppinternals/copyright.rst: + Add trailing newline. + * doc/cppinternals/cppinternals.rst: + Add trailing newline. + * doc/cppinternals/cpplib.rst: + Add trailing newline. + * doc/cppinternals/files.rst: + Add trailing newline. + * doc/cppinternals/index.rst: + Add trailing newline. + * doc/cppinternals/indices-and-tables.rst: + Add trailing newline. + * doc/cppinternals/internal-representation-of-macros.rst: + Add trailing newline. + * doc/cppinternals/just-which-line-number-anyway.rst: + Add trailing newline. + * doc/cppinternals/lexing-a-line.rst: + Add trailing newline. + * doc/cppinternals/lexing-a-token.rst: + Add trailing newline. + * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: + Add trailing newline. + * doc/cppinternals/macro-expansion-overview.rst: + Add trailing newline. + * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: + Add trailing newline. + * doc/cppinternals/multiple-include-optimization.rst: + Add trailing newline. + * doc/cppinternals/overview.rst: + Add trailing newline. + * doc/cppinternals/representation-of-line-numbers.rst: + Add trailing newline. + * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: + Add trailing newline. + * doc/gcc/binary-compatibility.rst: + Add trailing newline. + * doc/gcc/c++-implementation-defined-behavior.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/architecture.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/characters.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/declarators.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/environment.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/floating-point.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/hints.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/identifiers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/integers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/library-functions.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/statements.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/translation.rst: + Add trailing newline. + * doc/gcc/conditionally-supported-behavior.rst: + Add trailing newline. + * doc/gcc/contributing-to-gcc-development.rst: + Add trailing newline. + * doc/gcc/contributors-to-gcc.rst: + Add trailing newline. + * doc/gcc/copyright.rst: + Add trailing newline. + * doc/gcc/exception-handling.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/type-traits.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst: + Add trailing newline. + * doc/gcc/funding.rst: + Add trailing newline. + * doc/gcc/gcc-command-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/compiling-c++-programs.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/description.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/gcc-developer-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-directory-search.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-linking.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-that-control-optimization.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/program-instrumentation-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/using-precompiled-headers.rst: + Add trailing newline. + * doc/gcc/gcc.rst: + Add trailing newline. + * doc/gcc/gcov-dump.rst: + Add trailing newline. + * doc/gcc/gcov-tool.rst: + Add trailing newline. + * doc/gcc/gcov.rst: + Add trailing newline. + * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: + Add trailing newline. + * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: + Add trailing newline. + * doc/gcc/gcov/introduction-to-gcov.rst: + Add trailing newline. + * doc/gcc/gcov/invoking-gcov.rst: + Add trailing newline. + * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: + Add trailing newline. + * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: + Add trailing newline. + * doc/gcc/general-public-license-3.rst: + Add trailing newline. + * doc/gcc/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/exceptions.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/garbage-collection.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/synchronization.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/type-encoding.rst: + Add trailing newline. + * doc/gcc/gnu.rst: + Add trailing newline. + * doc/gcc/have-you-found-a-bug.rst: + Add trailing newline. + * doc/gcc/how-and-where-to-report-bugs.rst: + Add trailing newline. + * doc/gcc/how-to-get-help-with-gcc.rst: + Add trailing newline. + * doc/gcc/index.rst: + Add trailing newline. + * doc/gcc/indices-and-tables.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/c-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/d-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/go-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst: + Add trailing newline. + * doc/gcc/lto-dump.rst: + Add trailing newline. + * doc/gcc/programming-languages-supported-by-gcc.rst: + Add trailing newline. + * doc/gcc/reporting-bugs.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: + Add trailing newline. + * doc/gccint/analyzer-internals.rst: + Add trailing newline. + * doc/gccint/collect2.rst: + Add trailing newline. + * doc/gccint/contributing-to-gcc-development.rst: + Add trailing newline. + * doc/gccint/contributors-to-gcc.rst: + Add trailing newline. + * doc/gccint/control-flow-graph.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/basic-blocks.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/edges.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/liveness-information.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/profile-information.rst: + Add trailing newline. + * doc/gccint/copyright.rst: + Add trailing newline. + * doc/gccint/debugging-the-analyzer.rst: + Add trailing newline. + * doc/gccint/funding.rst: + Add trailing newline. + * doc/gccint/gcc-and-portability.rst: + Add trailing newline. + * doc/gccint/general-public-license-3.rst: + Add trailing newline. + * doc/gccint/generic.rst: + Add trailing newline. + * doc/gccint/generic/attributes-in-trees.rst: + Add trailing newline. + * doc/gccint/generic/c-and-c++-trees.rst: + Add trailing newline. + * doc/gccint/generic/declarations.rst: + Add trailing newline. + * doc/gccint/generic/deficiencies.rst: + Add trailing newline. + * doc/gccint/generic/expressions.rst: + Add trailing newline. + * doc/gccint/generic/functions.rst: + Add trailing newline. + * doc/gccint/generic/language-dependent-trees.rst: + Add trailing newline. + * doc/gccint/generic/overview.rst: + Add trailing newline. + * doc/gccint/generic/statements.rst: + Add trailing newline. + * doc/gccint/generic/types.rst: + Add trailing newline. + * doc/gccint/gimple-api.rst: + Add trailing newline. + * doc/gccint/gimple.rst: + Add trailing newline. + * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: + Add trailing newline. + * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: + Add trailing newline. + * doc/gccint/gimple/exception-handling.rst: + Add trailing newline. + * doc/gccint/gimple/gimple-instruction-set.rst: + Add trailing newline. + * doc/gccint/gimple/gimple-sequences.rst: + Add trailing newline. + * doc/gccint/gimple/manipulating-gimple-statements.rst: + Add trailing newline. + * doc/gccint/gimple/operands.rst: + Add trailing newline. + * doc/gccint/gimple/sequence-iterators.rst: + Add trailing newline. + * doc/gccint/gimple/statement-and-operand-traversals.rst: + Add trailing newline. + * doc/gccint/gimple/temporaries.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-representation.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: + Add trailing newline. + * doc/gccint/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/gccint/guidelines-for-diagnostics.rst: + Add trailing newline. + * doc/gccint/guidelines-for-options.rst: + Add trailing newline. + * doc/gccint/host-common.rst: + Add trailing newline. + * doc/gccint/host-configuration.rst: + Add trailing newline. + * doc/gccint/host-filesystem.rst: + Add trailing newline. + * doc/gccint/host-makefile-fragments.rst: + Add trailing newline. + * doc/gccint/host-misc.rst: + Add trailing newline. + * doc/gccint/index.rst: + Add trailing newline. + * doc/gccint/indices-and-tables.rst: + Add trailing newline. + * doc/gccint/interfacing-to-gcc-output.rst: + Add trailing newline. + * doc/gccint/introduction.rst: + Add trailing newline. + * doc/gccint/language-front-ends-in-gcc.rst: + Add trailing newline. + * doc/gccint/link-time-optimization.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/design-overview.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/lto-file-sections.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst: + Add trailing newline. + * doc/gccint/machine-descriptions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/conditional-execution.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/constant-definitions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/example-of-defineinsn.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/instruction-attributes.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/iterators.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/operand-constraints.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/predicates.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/rtl-template.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: + Add trailing newline. + * doc/gccint/makefile-fragments.rst: + Add trailing newline. + * doc/gccint/match-and-simplify.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst: + Add trailing newline. + * doc/gccint/option-file-format.rst: + Add trailing newline. + * doc/gccint/option-properties.rst: + Add trailing newline. + * doc/gccint/option-specification-files.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: + Add trailing newline. + * doc/gccint/plugins.rst: + Add trailing newline. + * doc/gccint/plugins/building-gcc-plugins.rst: + Add trailing newline. + * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: + Add trailing newline. + * doc/gccint/plugins/giving-information-about-a-plugin.rst: + Add trailing newline. + * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: + Add trailing newline. + * doc/gccint/plugins/interacting-with-the-pass-manager.rst: + Add trailing newline. + * doc/gccint/plugins/keeping-track-of-available-passes.rst: + Add trailing newline. + * doc/gccint/plugins/loading-plugins.rst: + Add trailing newline. + * doc/gccint/plugins/plugin-api.rst: + Add trailing newline. + * doc/gccint/plugins/recording-information-about-pass-execution.rst: + Add trailing newline. + * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: + Add trailing newline. + * doc/gccint/rtl-representation.rst: + Add trailing newline. + * doc/gccint/rtl-representation/access-to-operands.rst: + Add trailing newline. + * doc/gccint/rtl-representation/access-to-special-operands.rst: + Add trailing newline. + * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/bit-fields.rst: + Add trailing newline. + * doc/gccint/rtl-representation/comparison-operations.rst: + Add trailing newline. + * doc/gccint/rtl-representation/constant-expression-types.rst: + Add trailing newline. + * doc/gccint/rtl-representation/conversions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/declarations.rst: + Add trailing newline. + * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: + Add trailing newline. + * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: + Add trailing newline. + * doc/gccint/rtl-representation/insns.rst: + Add trailing newline. + * doc/gccint/rtl-representation/machine-modes.rst: + Add trailing newline. + * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: + Add trailing newline. + * doc/gccint/rtl-representation/reading-rtl.rst: + Add trailing newline. + * doc/gccint/rtl-representation/registers-and-memory.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-object-types.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: + Add trailing newline. + * doc/gccint/rtl-representation/side-effect-expressions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: + Add trailing newline. + * doc/gccint/rtl-representation/vector-operations.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst: + Add trailing newline. + * doc/gccint/standard-header-file-directories.rst: + Add trailing newline. + * doc/gccint/static-analyzer.rst: + Add trailing newline. + * doc/gccint/target-macros.rst: + Add trailing newline. + * doc/gccint/target-macros/controlling-debugging-information-format.rst: + Add trailing newline. + * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: + Add trailing newline. + * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst: + Add trailing newline. + * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: + Add trailing newline. + * doc/gccint/target-macros/layout-of-source-language-data-types.rst: + Add trailing newline. + * doc/gccint/target-macros/position-independent-code.rst: + Add trailing newline. + * doc/gccint/target-macros/register-usage.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: + Add trailing newline. + * doc/gccint/target-macros/support-for-nested-functions.rst: + Add trailing newline. + * doc/gccint/target-macros/the-global-targetm-variable.rst: + Add trailing newline. + * doc/gccint/target-makefile-fragments.rst: + Add trailing newline. + * doc/gccint/testsuites.rst: + Add trailing newline. + * doc/gccint/testsuites/ada-language-testsuites.rst: + Add trailing newline. + * doc/gccint/testsuites/c-language-testsuites.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst: + Add trailing newline. + * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-gcov.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst: + Add trailing newline. + * doc/gccint/the-language.rst: + Add trailing newline. + * doc/gccint/user-experience-guidelines.rst: + Add trailing newline. + * doc/install/binaries.rst: + Add trailing newline. + * doc/install/building.rst: + Add trailing newline. + * doc/install/building/building-a-cross-compiler.rst: + Add trailing newline. + * doc/install/building/building-a-native-compiler.rst: + Add trailing newline. + * doc/install/building/building-in-parallel.rst: + Add trailing newline. + * doc/install/building/building-the-ada-compiler.rst: + Add trailing newline. + * doc/install/building/building-the-d-compiler.rst: + Add trailing newline. + * doc/install/building/building-with-profile-feedback.rst: + Add trailing newline. + * doc/install/configuration.rst: + Add trailing newline. + * doc/install/copyright.rst: + Add trailing newline. + * doc/install/downloading-gcc.rst: + Add trailing newline. + * doc/install/final-installation.rst: + Add trailing newline. + * doc/install/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/install/host-target-specific-installation-notes-for-gcc.rst: + Add trailing newline. + * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: + Add trailing newline. + * doc/install/how-to-interpret-test-results.rst: + Add trailing newline. + * doc/install/index.rst: + Add trailing newline. + * doc/install/indices-and-tables.rst: + Add trailing newline. + * doc/install/installing-gcc.rst: + Add trailing newline. + * doc/install/passing-options-and-running-multiple-testsuites.rst: + Add trailing newline. + * doc/install/prerequisites.rst: + Add trailing newline. + * doc/install/submitting-test-results.rst: + Add trailing newline. + * doc/install/testing.rst: + Add trailing newline. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * Makefile.in: Use new install URL. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: + Use intersphinx link. + * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: + Use new URL. + * doc/gccint/source-tree-structure-and-build-system.rst: Use + intersphinx link. + * doc/install/host-target-specific-installation-notes-for-gcc.rst: Likewise. + * doc/install/installing-gcc.rst: Likewise. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-09 Martin Liska <mliska@suse.cz> + Sinan <sinan.lin@linux.alibaba.com> + + * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: + Add missing variable name. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/cpp/conf.py: Add newline at last line. + * doc/cppinternals/conf.py: Add newline at last line. + * doc/gcc/conf.py: Add newline at last line. + * doc/gccint/conf.py: Add newline at last line. + * doc/install/conf.py: Add newline at last line. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: + Revert. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/cpp/pragmas.rst: Revert. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Revert. + * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: Revert. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-13 Jonathan Wakely <jwakely@redhat.com> + + * doc/install/testing.rst: Remove anachronism about separate + source tarballs. + +2022-11-14 Martin Liska <mliska@suse.cz> + + Revert: + 2022-11-13 Martin Liska <mliska@suse.cz> + + PR other/107620 + * configure: Regenerate. + * configure.ac: Always set sphinx-build. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/option-summary.rst: Revert. + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Revert. + +2022-11-14 Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/i386-common.cc + (OPTION_MASK_ISA2_AMX_INT8_SET): Add AMX-TILE dependency. + (OPTION_MASK_ISA2_AMX_BF16_SET): Ditto. + (OPTION_MASK_ISA2_AMX_FP16_SET): Ditto. + (OPTION_MASK_ISA2_AMX_TILE_UNSET): Disable AMX_{INT8, + BF16, FP16} when disable AMX_TILE. + +2022-11-14 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: + Revert. + * doc/gcc/gcc-command-options/option-summary.rst: + Revert. + +2022-11-14 Hongyu Wang <hongyu.wang@intel.com> + + * common/config/i386/i386-common.cc (ix86_optimization_table): + Enable small loop unroll at O2 by default. + * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll + factor if -munroll-only-small-loops enabled and -funroll-loops/ + -funroll-all-loops are disabled. + * config/i386/i386.h (struct processor_costs): Add 2 field + small_unroll_ninsns and small_unroll_factor. + * config/i386/i386.opt: Add -munroll-only-small-loops. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: + Document -munroll-only-small-loops. + * doc/gcc/gcc-command-options/option-summary.rst: Likewise. + * loop-init.cc (pass_rtl_unroll_loops::gate): Enable rtl + loop unrolling for -O2-speed and above if target hook + loop_unroll_adjust exists. + (pass_rtl_unroll_loops::execute): Set UAP_UNROLL flag + when target hook loop_unroll_adjust exists. + * config/i386/x86-tune-costs.h: Update all processor costs + with small_unroll_ninsns = 4 and small_unroll_factor = 2. + +2022-11-13 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106235 + * doc/gcc/gcc-command-options/option-summary.rst: Add + -Wno-analyzer-tainted-assertion. + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: + Add -Wno-analyzer-tainted-assertion. + +2022-11-13 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md: New define_split. + +2022-11-13 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv.cc (riscv_rtx_costs): Recognize shNadd, + if expressed as a plus and multiplication with a power-of-2. + Split costing for MINUS from PLUS. + +2022-11-13 Martin Liska <mliska@suse.cz> + + PR other/107620 + * configure: Regenerate. + * configure.ac: Always set sphinx-build. + +2022-11-13 Joseph Myers <joseph@codesourcery.com> + + * ginclude/float.h [__STDC_VERSION__ > 201710L] + (__STDC_VERSION_FLOAT_H__): New macro. + * ginclude/stdarg.h [__STDC_VERSION__ > 201710L] + (__STDC_VERSION_STDARG_H__): New macro. + * ginclude/stdatomic.h [__STDC_VERSION__ > 201710L] + (__STDC_VERSION_STDATOMIC_H__): New macro. + * ginclude/stddef.h [__STDC_VERSION__ > 201710L] + (__STDC_VERSION_STDDEF_H__): New macro. + * ginclude/stdint-gcc.h [__STDC_VERSION__ > 201710L] + (__STDC_VERSION_STDINT_H__): New macro. + * glimits.h [__STDC_VERSION__ > 201710L] + (__STDC_VERSION_LIMITS_H__): New macro. + +2022-11-13 Jonathan Wakely <jwakely@redhat.com> + + * doc/install/testing.rst: Remove anachronism about separate + source tarballs. + +2022-11-12 Joseph Myers <joseph@codesourcery.com> + + * dfp.cc (decimal_from_binary): Convert a canonical NaN to a + canonical NaN. + +2022-11-12 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (range_tests_signbit): Move to set from here... + (range_tests_signed_zeros): ...to here. + +2022-11-12 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (build_lt): Adjust with frange_nextafter + instead of default to a closed range. + (build_gt): Same. + +2022-11-12 Aldy Hernandez <aldyh@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + * range-op-float.cc (float_binary_op_range_finish): New function. + (foperator_plus::op1_range): New. + (foperator_plus::op2_range): New. + (foperator_minus::op1_range): New. + (foperator_minus::op2_range): New. + (foperator_mult::op1_range): New. + (foperator_mult::op2_range): New. + (foperator_div::op1_range): New. + (foperator_div::op2_range): New. + +2022-11-12 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107569 + * range-op-float.cc (zero_p, contains_p, singleton_inf_p, + signbit_known_p, zero_range, inf_range, zero_to_inf_range): New + functions. + (foperator_mult_div_base): New class. + (foperator_mult, foperator_div): Derive from that and use + protected static method from it as well as above new functions + to simplify the code. + +2022-11-12 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107569 + * range-op-float.cc (foperator_div): New class. + (floating_op_table::floating_op_table): Use foperator_div + for RDIV_EXPR. + +2022-11-12 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107569 + PR tree-optimization/107591 + * range-op.h (range_operator_float::rv_fold): Add relation_kind + argument. + * range-op-float.cc (range_operator_float::fold_range): Name + last argument trio and pass trio.op1_op2 () as last argument to + rv_fold. + (range_operator_float::rv_fold): Add relation_kind argument. + (foperator_plus::rv_fold, foperator_minus::rv_fold): Likewise. + (foperator_mult): New class. + (floating_op_table::floating_op_table): Use foperator_mult for + MULT_EXPR. + +2022-11-12 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (UNSPEC_FLOGB): New unspec. + (type): Add flogb. + (logb_non_negative<mode>2): New instruction template. + (logb<mode>2): New define_expand. + +2022-11-12 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (UNSPEC_FSCALEB): New unspec. + (type): Add fscaleb. + (IMODE): New mode attr. + (ldexp<mode>3): New instruction template. + +2022-11-12 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (UNSPEC_FTINT): New unspec. + (UNSPEC_FTINTRM): Likewise. + (UNSPEC_FTINTRP): Likewise. + (LRINT): New define_int_iterator. + (lrint_pattern): New define_int_attr. + (lrint_submenmonic): Likewise. + (lrint_allow_inexact): Likewise. + (ANYFI): New define_mode_iterator. + (lrint<ANYF><ANYFI>): New instruction template. + +2022-11-12 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (frint_<fmt>): Rename to .. + (rint<mode>2): .. this. + +2022-11-11 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106147 + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: + Add -Wanalyzer-infinite-recursion. + * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst + (-Winfinite-recursion): Mention -Wanalyzer-infinite-recursion. + +2022-11-11 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106147 + * Makefile.in (ANALYZER_OBJS): Add analyzer/infinite-recursion.o. + +2022-11-11 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/107523 + * gimple-range.cc (gimple_ranger::update_stmt): Use fur_stmt + rather than fur_depend. + +2022-11-11 Andrew MacLeod <amacleod@redhat.com> + + * tree-vrp.cc (rvrp_folder::rvrp_folder): Init m_last_bb_stmt. + (rvrp_folder::pre_fold_bb): Set m_last_bb_stmt. + (rvrp_folder::pre_fold_stmt): Check for transitive inferred ranges. + (rvrp_folder::fold_stmt): Check in pre_fold_stmt instead. + +2022-11-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com> + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-X1C + CPU. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: + Document Cortex-X1C CPU. + +2022-11-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com> + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A715 + CPU. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: + Document Cortex-A715 CPU. + +2022-11-11 Richard Biener <rguenther@suse.de> + Nikita Voronov <nik_1357@mail.ru> + + PR tree-optimization/107554 + * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes): + Use unsigned HOST_WIDE_INT type for the strlen. + +2022-11-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105142 + * gimple-fold.cc (fosa_unwind): New global. + (follow_outer_ssa_edges): When the SSA definition to follow + is does not dominate fosa_bb, temporarily clear flow-sensitive + info. Make sure to not expand stmts with not defined overflow. + (maybe_fold_comparisons_from_match_pd): Set up unwind stack + for follow_outer_ssa_edges and unwind flow-sensitive info + clearing after matching. + +2022-11-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (operator_mult::fold_range): Remove. + (operator_div::fold_range): Remove. + (operator_bitwise_and): Remove. + +2022-11-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (update_known_bitmask): Avoid unnecessary intersection. + +2022-11-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (range_operator::fold_range): Call + update_known_bitmask. + (operator_bitwise_and::fold_range): Avoid setting nonzero bits + when range is undefined. + +2022-11-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (class operator_div): Remove tree code. + (operator_div::wi_op_overflows): Handle EXACT_DIV_EXPR as + TRUNC_DIV_EXPR. + +2022-11-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc: (range_op_table::set): Set m_code. + (integral_table::integral_table): Handle shared entries. + (pointer_table::pointer_table): Same. + * range-op.h (class range_operator): Add m_code. + +2022-11-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107618 + * tree-ssa-copy.cc (stmt_may_generate_copy): Simulate all + assignments with a single SSA use. + (copy_prop_visit_assignment): Use gimple_fold_stmt_to_constant_1 + to perform simple constant folding. + (copy_prop::visit_stmt): Visit all assignments. + +2022-11-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/84646 + * tree-ssa-dce.cc (pass_dce::set_pass_param): Add param + wheter to run update-address-taken. + (pass_dce::execute): Honor it. + * passes.def: Exchange last DCE and CD-DCE invocations. + Swap pass_tail_calls and the last DCE. + +2022-11-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + Monk Chiang <monk.chiang@sifive.com> + + * config/riscv/riscv-v.cc (emit_pred_move): Adjust for scalable register spilling. + (legitimize_move): Ditto. + * config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): New function. + (riscv_first_stack_step): Adjust for scalable register spilling. + (riscv_expand_prologue): Ditto. + (riscv_expand_epilogue): Ditto. + (riscv_dwarf_poly_indeterminate_value): New function. + (TARGET_DWARF_POLY_INDETERMINATE_VALUE): New target hook support for register spilling. + * config/riscv/riscv.h (RISCV_DWARF_VLENB): New macro. + (RISCV_PROLOGUE_TEMP2_REGNUM): Ditto. + (RISCV_PROLOGUE_TEMP2): Ditto. + * config/riscv/vector-iterators.md: New iterators. + * config/riscv/vector.md (*mov<mode>): Fix it for register spilling. + (*mov<mode>_whole): New pattern. + (*mov<mode>_fract): New pattern. + (@pred_mov<mode>): Fix it for register spilling. + +2022-11-11 Jonathan Wakely <jwakely@redhat.com> + + PR c/85487 + * doc/cpp/pragmas.rst (Pragmas): Document region pragmas. + +2022-11-11 Haochen Jiang <haochen.jiang@intel.com> + + * config/i386/i386-builtin.def (BDESC): Add + OPTION_MASK_ISA2_PREFETCHI for prefetchi builtin. + * config/i386/i386-expand.cc (ix86_expand_builtin): + Add ISA check before emit_insn. + * config/i386/prfchiintrin.h: Add target for intrin. + +2022-11-10 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/99671 + * tristate.h (tristate::is_unknown): New. + +2022-11-10 David Malcolm <dmalcolm@redhat.com> + + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: + Add -Wanalyzer-deref-before-check. + +2022-11-10 Marek Polacek <polacek@redhat.com> + + * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: + Extend the description of -Wdangling-reference. + +2022-11-10 Andrew Pinski <apinski@marvell.com> + + * config/bfin/bfin.h (SLOW_SHORT_ACCESS): Delete. + * config/i386/i386.h (SLOW_SHORT_ACCESS): Delete. + * system.h: Poison SLOW_SHORT_ACCESS + +2022-11-10 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set_nonnegative): Remove NAN sign handling. + (range_tests_signed_zeros): Adjust test. + +2022-11-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/84646 + * tree-ssa-forwprop.cc (pass_forwprop::execute): Improve + copy propagation across PHIs. + +2022-11-10 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv-cores.def (RISCV_TUNE): Update + sifive-7-series to point to the sifive_7 pipeline description. + +2022-11-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/84646 + * tree-ssa-ccp.cc (set_lattice_value): Make sure we + allow a const -> copy transition and avoid using meet + in that case. + +2022-11-10 Martin Liska <mliska@suse.cz> + + * doc/cpp/conf.py: Add newline at last line. + * doc/cppinternals/conf.py: Add newline at last line. + * doc/gcc/conf.py: Add newline at last line. + * doc/gccint/conf.py: Add newline at last line. + * doc/install/conf.py: Add newline at last line. + +2022-11-10 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-unswitch.cc (init_loop_unswitch_info): First collect + candidates and determine the outermost loop to unswitch. + (tree_ssa_unswitch_loops): First perform all guard hoisting, + then perform unswitching on innermost loop predicates. + (find_unswitching_predicates_for_bb): Keep track of the + outermost loop to unswitch. + (evaluate_bbs): Adjust exit test. + (tree_unswitch_single_loop): Dump whether we unswitched an outer + loop. + (tree_unswitch_loop): Remove assert we unswitch only innermost + loops. + +2022-11-10 Jakub Jelinek <jakub@redhat.com> + + PR target/107585 + PR target/107546 + * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): Use + gen_int_mode rather than GEN_INT. + +2022-11-09 Martin Liska <mliska@suse.cz> + Sinan <sinan.lin@linux.alibaba.com> + + * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: + Add missing variable name. + +2022-11-09 Aldy Hernandez <aldyh@redhat.com> + + * value-range-storage.cc (frange_storage_slot::get_frange): Clear + NAN if appropriate. + * value-range.cc (range_tests_floats): New test. + +2022-11-09 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (class foperator_plus): Remove op[12]_range. + (class foperator_minus): Same. + +2022-11-09 Qing Zhao <qing.zhao@oracle.com> + + * gimple-array-bounds.cc (trailing_array): Replace + array_at_struct_end_p with new name and update comments. + * gimple-fold.cc (get_range_strlen_tree): Likewise. + * gimple-ssa-warn-restrict.cc (builtin_memref::builtin_memref): + Likewise. + * graphite-sese-to-poly.cc (bounds_are_valid): Likewise. + * tree-if-conv.cc (idx_within_array_bound): Likewise. + * tree-object-size.cc (addr_object_size): Likewise. + * tree-ssa-alias.cc (component_ref_to_zero_sized_trailing_array_p): + Likewise. + (stmt_kills_ref_p): Likewise. + * tree-ssa-loop-niter.cc (idx_infer_loop_bounds): Likewise. + * tree-ssa-strlen.cc (maybe_set_strlen_range): Likewise. + * tree.cc (array_at_struct_end_p): Rename to ... + (array_ref_flexible_size_p): ... this. + (component_ref_size): Replace array_at_struct_end_p with new name. + * tree.h (array_at_struct_end_p): Rename to ... + (array_ref_flexible_size_p): ... this. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Use new install URL. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: + Use intersphinx link. + * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: + Use new URL. + * doc/gccint/source-tree-structure-and-build-system.rst: Use + intersphinx link. + * doc/install/host-target-specific-installation-notes-for-gcc.rst: Likewise. + * doc/install/installing-gcc.rst: Likewise. + +2022-11-09 Richard Biener <rguenther@suse.de> + + PR tree-optimization/84646 + * tree-ssa-threadbackward.cc (back_threader::maybe_register_path): + Remove premature cycle rejection. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/cpp/character-sets.rst: + Add trailing newline. + * doc/cpp/conditional-syntax.rst: + Add trailing newline. + * doc/cpp/conditional-uses.rst: + Add trailing newline. + * doc/cpp/conditionals.rst: + Add trailing newline. + * doc/cpp/copyright.rst: + Add trailing newline. + * doc/cpp/deleted-code.rst: + Add trailing newline. + * doc/cpp/diagnostics.rst: + Add trailing newline. + * doc/cpp/environment-variables.rst: + Add trailing newline. + * doc/cpp/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/cpp/header-files.rst: + Add trailing newline. + * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: + Add trailing newline. + * doc/cpp/header-files/computed-includes.rst: + Add trailing newline. + * doc/cpp/header-files/include-operation.rst: + Add trailing newline. + * doc/cpp/header-files/include-syntax.rst: + Add trailing newline. + * doc/cpp/header-files/once-only-headers.rst: + Add trailing newline. + * doc/cpp/header-files/search-path.rst: + Add trailing newline. + * doc/cpp/header-files/system-headers.rst: + Add trailing newline. + * doc/cpp/header-files/wrapper-headers.rst: + Add trailing newline. + * doc/cpp/implementation-defined-behavior.rst: + Add trailing newline. + * doc/cpp/implementation-details.rst: + Add trailing newline. + * doc/cpp/implementation-limits.rst: + Add trailing newline. + * doc/cpp/index.rst: + Add trailing newline. + * doc/cpp/indices-and-tables.rst: + Add trailing newline. + * doc/cpp/initial-processing.rst: + Add trailing newline. + * doc/cpp/invocation.rst: + Add trailing newline. + * doc/cpp/line-control.rst: + Add trailing newline. + * doc/cpp/macros.rst: + Add trailing newline. + * doc/cpp/macros/concatenation.rst: + Add trailing newline. + * doc/cpp/macros/directives-within-macro-arguments.rst: + Add trailing newline. + * doc/cpp/macros/function-like-macros.rst: + Add trailing newline. + * doc/cpp/macros/macro-arguments.rst: + Add trailing newline. + * doc/cpp/macros/macro-pitfalls.rst: + Add trailing newline. + * doc/cpp/macros/object-like-macros.rst: + Add trailing newline. + * doc/cpp/macros/predefined-macros.rst: + Add trailing newline. + * doc/cpp/macros/stringizing.rst: + Add trailing newline. + * doc/cpp/macros/undefining-and-redefining-macros.rst: + Add trailing newline. + * doc/cpp/macros/variadic-macros.rst: + Add trailing newline. + * doc/cpp/obsolete-features.rst: + Add trailing newline. + * doc/cpp/other-directives.rst: + Add trailing newline. + * doc/cpp/overview.rst: + Add trailing newline. + * doc/cpp/pragmas.rst: + Add trailing newline. + * doc/cpp/preprocessor-output.rst: + Add trailing newline. + * doc/cpp/the-preprocessing-language.rst: + Add trailing newline. + * doc/cpp/tokenization.rst: + Add trailing newline. + * doc/cpp/traditional-lexical-analysis.rst: + Add trailing newline. + * doc/cpp/traditional-macros.rst: + Add trailing newline. + * doc/cpp/traditional-miscellany.rst: + Add trailing newline. + * doc/cpp/traditional-mode.rst: + Add trailing newline. + * doc/cpp/traditional-warnings.rst: + Add trailing newline. + * doc/cppinternals/copyright.rst: + Add trailing newline. + * doc/cppinternals/cppinternals.rst: + Add trailing newline. + * doc/cppinternals/cpplib.rst: + Add trailing newline. + * doc/cppinternals/files.rst: + Add trailing newline. + * doc/cppinternals/index.rst: + Add trailing newline. + * doc/cppinternals/indices-and-tables.rst: + Add trailing newline. + * doc/cppinternals/internal-representation-of-macros.rst: + Add trailing newline. + * doc/cppinternals/just-which-line-number-anyway.rst: + Add trailing newline. + * doc/cppinternals/lexing-a-line.rst: + Add trailing newline. + * doc/cppinternals/lexing-a-token.rst: + Add trailing newline. + * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: + Add trailing newline. + * doc/cppinternals/macro-expansion-overview.rst: + Add trailing newline. + * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: + Add trailing newline. + * doc/cppinternals/multiple-include-optimization.rst: + Add trailing newline. + * doc/cppinternals/overview.rst: + Add trailing newline. + * doc/cppinternals/representation-of-line-numbers.rst: + Add trailing newline. + * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: + Add trailing newline. + * doc/gcc/binary-compatibility.rst: + Add trailing newline. + * doc/gcc/c++-implementation-defined-behavior.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/architecture.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/characters.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/declarators.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/environment.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/floating-point.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/hints.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/identifiers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/integers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/library-functions.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/statements.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst: + Add trailing newline. + * doc/gcc/c-implementation-defined-behavior/translation.rst: + Add trailing newline. + * doc/gcc/conditionally-supported-behavior.rst: + Add trailing newline. + * doc/gcc/contributing-to-gcc-development.rst: + Add trailing newline. + * doc/gcc/contributors-to-gcc.rst: + Add trailing newline. + * doc/gcc/copyright.rst: + Add trailing newline. + * doc/gcc/exception-handling.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/type-traits.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst: + Add trailing newline. + * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst: + Add trailing newline. + * doc/gcc/funding.rst: + Add trailing newline. + * doc/gcc/gcc-command-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/compiling-c++-programs.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/description.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/gcc-developer-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-directory-search.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-for-linking.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-that-control-optimization.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/program-instrumentation-options.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst: + Add trailing newline. + * doc/gcc/gcc-command-options/using-precompiled-headers.rst: + Add trailing newline. + * doc/gcc/gcc.rst: + Add trailing newline. + * doc/gcc/gcov-dump.rst: + Add trailing newline. + * doc/gcc/gcov-tool.rst: + Add trailing newline. + * doc/gcc/gcov.rst: + Add trailing newline. + * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: + Add trailing newline. + * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: + Add trailing newline. + * doc/gcc/gcov/introduction-to-gcov.rst: + Add trailing newline. + * doc/gcc/gcov/invoking-gcov.rst: + Add trailing newline. + * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: + Add trailing newline. + * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: + Add trailing newline. + * doc/gcc/general-public-license-3.rst: + Add trailing newline. + * doc/gcc/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/exceptions.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/garbage-collection.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/synchronization.rst: + Add trailing newline. + * doc/gcc/gnu-objective-c-features/type-encoding.rst: + Add trailing newline. + * doc/gcc/gnu.rst: + Add trailing newline. + * doc/gcc/have-you-found-a-bug.rst: + Add trailing newline. + * doc/gcc/how-and-where-to-report-bugs.rst: + Add trailing newline. + * doc/gcc/how-to-get-help-with-gcc.rst: + Add trailing newline. + * doc/gcc/index.rst: + Add trailing newline. + * doc/gcc/indices-and-tables.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: + Add trailing newline. + * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/c-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/d-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/go-language.rst: + Add trailing newline. + * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst: + Add trailing newline. + * doc/gcc/lto-dump.rst: + Add trailing newline. + * doc/gcc/programming-languages-supported-by-gcc.rst: + Add trailing newline. + * doc/gcc/reporting-bugs.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: + Add trailing newline. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst: + Add trailing newline. + * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: + Add trailing newline. + * doc/gccint/analyzer-internals.rst: + Add trailing newline. + * doc/gccint/collect2.rst: + Add trailing newline. + * doc/gccint/contributing-to-gcc-development.rst: + Add trailing newline. + * doc/gccint/contributors-to-gcc.rst: + Add trailing newline. + * doc/gccint/control-flow-graph.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/basic-blocks.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/edges.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/liveness-information.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: + Add trailing newline. + * doc/gccint/control-flow-graph/profile-information.rst: + Add trailing newline. + * doc/gccint/copyright.rst: + Add trailing newline. + * doc/gccint/debugging-the-analyzer.rst: + Add trailing newline. + * doc/gccint/funding.rst: + Add trailing newline. + * doc/gccint/gcc-and-portability.rst: + Add trailing newline. + * doc/gccint/general-public-license-3.rst: + Add trailing newline. + * doc/gccint/generic.rst: + Add trailing newline. + * doc/gccint/generic/attributes-in-trees.rst: + Add trailing newline. + * doc/gccint/generic/c-and-c++-trees.rst: + Add trailing newline. + * doc/gccint/generic/declarations.rst: + Add trailing newline. + * doc/gccint/generic/deficiencies.rst: + Add trailing newline. + * doc/gccint/generic/expressions.rst: + Add trailing newline. + * doc/gccint/generic/functions.rst: + Add trailing newline. + * doc/gccint/generic/language-dependent-trees.rst: + Add trailing newline. + * doc/gccint/generic/overview.rst: + Add trailing newline. + * doc/gccint/generic/statements.rst: + Add trailing newline. + * doc/gccint/generic/types.rst: + Add trailing newline. + * doc/gccint/gimple-api.rst: + Add trailing newline. + * doc/gccint/gimple.rst: + Add trailing newline. + * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: + Add trailing newline. + * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: + Add trailing newline. + * doc/gccint/gimple/exception-handling.rst: + Add trailing newline. + * doc/gccint/gimple/gimple-instruction-set.rst: + Add trailing newline. + * doc/gccint/gimple/gimple-sequences.rst: + Add trailing newline. + * doc/gccint/gimple/manipulating-gimple-statements.rst: + Add trailing newline. + * doc/gccint/gimple/operands.rst: + Add trailing newline. + * doc/gccint/gimple/sequence-iterators.rst: + Add trailing newline. + * doc/gccint/gimple/statement-and-operand-traversals.rst: + Add trailing newline. + * doc/gccint/gimple/temporaries.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-representation.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: + Add trailing newline. + * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: + Add trailing newline. + * doc/gccint/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/gccint/guidelines-for-diagnostics.rst: + Add trailing newline. + * doc/gccint/guidelines-for-options.rst: + Add trailing newline. + * doc/gccint/host-common.rst: + Add trailing newline. + * doc/gccint/host-configuration.rst: + Add trailing newline. + * doc/gccint/host-filesystem.rst: + Add trailing newline. + * doc/gccint/host-makefile-fragments.rst: + Add trailing newline. + * doc/gccint/host-misc.rst: + Add trailing newline. + * doc/gccint/index.rst: + Add trailing newline. + * doc/gccint/indices-and-tables.rst: + Add trailing newline. + * doc/gccint/interfacing-to-gcc-output.rst: + Add trailing newline. + * doc/gccint/introduction.rst: + Add trailing newline. + * doc/gccint/language-front-ends-in-gcc.rst: + Add trailing newline. + * doc/gccint/link-time-optimization.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/design-overview.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/lto-file-sections.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: + Add trailing newline. + * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst: + Add trailing newline. + * doc/gccint/machine-descriptions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/conditional-execution.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/constant-definitions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/example-of-defineinsn.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/instruction-attributes.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/iterators.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/operand-constraints.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/predicates.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/rtl-template.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: + Add trailing newline. + * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: + Add trailing newline. + * doc/gccint/makefile-fragments.rst: + Add trailing newline. + * doc/gccint/match-and-simplify.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: + Add trailing newline. + * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst: + Add trailing newline. + * doc/gccint/option-file-format.rst: + Add trailing newline. + * doc/gccint/option-properties.rst: + Add trailing newline. + * doc/gccint/option-specification-files.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: + Add trailing newline. + * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: + Add trailing newline. + * doc/gccint/plugins.rst: + Add trailing newline. + * doc/gccint/plugins/building-gcc-plugins.rst: + Add trailing newline. + * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: + Add trailing newline. + * doc/gccint/plugins/giving-information-about-a-plugin.rst: + Add trailing newline. + * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: + Add trailing newline. + * doc/gccint/plugins/interacting-with-the-pass-manager.rst: + Add trailing newline. + * doc/gccint/plugins/keeping-track-of-available-passes.rst: + Add trailing newline. + * doc/gccint/plugins/loading-plugins.rst: + Add trailing newline. + * doc/gccint/plugins/plugin-api.rst: + Add trailing newline. + * doc/gccint/plugins/recording-information-about-pass-execution.rst: + Add trailing newline. + * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: + Add trailing newline. + * doc/gccint/rtl-representation.rst: + Add trailing newline. + * doc/gccint/rtl-representation/access-to-operands.rst: + Add trailing newline. + * doc/gccint/rtl-representation/access-to-special-operands.rst: + Add trailing newline. + * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/bit-fields.rst: + Add trailing newline. + * doc/gccint/rtl-representation/comparison-operations.rst: + Add trailing newline. + * doc/gccint/rtl-representation/constant-expression-types.rst: + Add trailing newline. + * doc/gccint/rtl-representation/conversions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/declarations.rst: + Add trailing newline. + * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: + Add trailing newline. + * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: + Add trailing newline. + * doc/gccint/rtl-representation/insns.rst: + Add trailing newline. + * doc/gccint/rtl-representation/machine-modes.rst: + Add trailing newline. + * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: + Add trailing newline. + * doc/gccint/rtl-representation/reading-rtl.rst: + Add trailing newline. + * doc/gccint/rtl-representation/registers-and-memory.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-object-types.rst: + Add trailing newline. + * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: + Add trailing newline. + * doc/gccint/rtl-representation/side-effect-expressions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: + Add trailing newline. + * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: + Add trailing newline. + * doc/gccint/rtl-representation/vector-operations.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst: + Add trailing newline. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst: + Add trailing newline. + * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst: + Add trailing newline. + * doc/gccint/standard-header-file-directories.rst: + Add trailing newline. + * doc/gccint/static-analyzer.rst: + Add trailing newline. + * doc/gccint/target-macros.rst: + Add trailing newline. + * doc/gccint/target-macros/controlling-debugging-information-format.rst: + Add trailing newline. + * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: + Add trailing newline. + * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: + Add trailing newline. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst: + Add trailing newline. + * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: + Add trailing newline. + * doc/gccint/target-macros/layout-of-source-language-data-types.rst: + Add trailing newline. + * doc/gccint/target-macros/position-independent-code.rst: + Add trailing newline. + * doc/gccint/target-macros/register-usage.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: + Add trailing newline. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: + Add trailing newline. + * doc/gccint/target-macros/support-for-nested-functions.rst: + Add trailing newline. + * doc/gccint/target-macros/the-global-targetm-variable.rst: + Add trailing newline. + * doc/gccint/target-makefile-fragments.rst: + Add trailing newline. + * doc/gccint/testsuites.rst: + Add trailing newline. + * doc/gccint/testsuites/ada-language-testsuites.rst: + Add trailing newline. + * doc/gccint/testsuites/c-language-testsuites.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst: + Add trailing newline. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst: + Add trailing newline. + * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-gcov.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: + Add trailing newline. + * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst: + Add trailing newline. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst: + Add trailing newline. + * doc/gccint/the-language.rst: + Add trailing newline. + * doc/gccint/user-experience-guidelines.rst: + Add trailing newline. + * doc/install/binaries.rst: + Add trailing newline. + * doc/install/building.rst: + Add trailing newline. + * doc/install/building/building-a-cross-compiler.rst: + Add trailing newline. + * doc/install/building/building-a-native-compiler.rst: + Add trailing newline. + * doc/install/building/building-in-parallel.rst: + Add trailing newline. + * doc/install/building/building-the-ada-compiler.rst: + Add trailing newline. + * doc/install/building/building-the-d-compiler.rst: + Add trailing newline. + * doc/install/building/building-with-profile-feedback.rst: + Add trailing newline. + * doc/install/configuration.rst: + Add trailing newline. + * doc/install/copyright.rst: + Add trailing newline. + * doc/install/downloading-gcc.rst: + Add trailing newline. + * doc/install/final-installation.rst: + Add trailing newline. + * doc/install/gnu-free-documentation-license.rst: + Add trailing newline. + * doc/install/host-target-specific-installation-notes-for-gcc.rst: + Add trailing newline. + * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: + Add trailing newline. + * doc/install/how-to-interpret-test-results.rst: + Add trailing newline. + * doc/install/index.rst: + Add trailing newline. + * doc/install/indices-and-tables.rst: + Add trailing newline. + * doc/install/installing-gcc.rst: + Add trailing newline. + * doc/install/passing-options-and-running-multiple-testsuites.rst: + Add trailing newline. + * doc/install/prerequisites.rst: + Add trailing newline. + * doc/install/submitting-test-results.rst: + Add trailing newline. + * doc/install/testing.rst: + Add trailing newline. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * opts.cc (get_option_html_page): Port to sphinx URLs. + (get_option_url): Likewise. + (test_get_option_html_page): Likewise. + +2022-11-09 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107569 + * range-op-float.cc (foperator_abs::op1_range): Clear NaNs + from the negatives frange before unioning it into r. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Add vpath default for .rst files. + * config/avr/avr-devices.cc: For port RST. + * config/avr/avr-mcus.def: Update path. + * config/avr/gen-avr-mmcu-texi.cc: Moved to... + * config/avr/gen-avr-mmcu-rst.cc: ...here. + * config/avr/t-avr: Update to rst. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: Re-generate. + +2022-11-09 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv.cc (riscv_rtx_costs): Add BSWAP. + +2022-11-09 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.cc (loongarch_emit_int_compare): + Avoid signed overflow. + +2022-11-09 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_plus::op1_range): New. + (foperator_plus::op2_range): New. + (foperator_minus::op1_range): New. + (foperator_minus::op2_range): New. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Support installation if sphinx-build is missing. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst: + Port to RST. + * doc/gccint/target-macros/storage-layout.rst: Likewise. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: Sync with master. + * doc/gcc/gcc-command-options/option-summary.rst: Likewise. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst: + Do not include tm.rst.in. + * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst: + Likewise. + * doc/gccint/target-macros/run-time-target-specification.rst: + Likewise. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: + Fix cross manual refs. + * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: + Likewise. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Support --with-sphinx-build. + * configure.ac: + * configure: Regenerate. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * target.def: Use proper lexers for target macros. + * doc/gccint/target-macros/tm.rst.in: Re-generate. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/analyzer.texi: Removed. + * doc/avr-mmcu.texi: Removed. + * doc/bugreport.texi: Removed. + * doc/cfg.texi: Removed. + * doc/collect2.texi: Removed. + * doc/compat.texi: Removed. + * doc/configfiles.texi: Removed. + * doc/configterms.texi: Removed. + * doc/contrib.texi: Removed. + * doc/contribute.texi: Removed. + * doc/cpp.texi: Removed. + * doc/cppdiropts.texi: Removed. + * doc/cppenv.texi: Removed. + * doc/cppinternals.texi: Removed. + * doc/cppopts.texi: Removed. + * doc/cppwarnopts.texi: Removed. + * doc/extend.texi: Removed. + * doc/fragments.texi: Removed. + * doc/frontends.texi: Removed. + * doc/gcc.texi: Removed. + * doc/gccint.texi: Removed. + * doc/gcov-dump.texi: Removed. + * doc/gcov-tool.texi: Removed. + * doc/gcov.texi: Removed. + * doc/generic.texi: Removed. + * doc/gimple.texi: Removed. + * doc/gnu.texi: Removed. + * doc/gty.texi: Removed. + * doc/headerdirs.texi: Removed. + * doc/hostconfig.texi: Removed. + * doc/implement-c.texi: Removed. + * doc/implement-cxx.texi: Removed. + * doc/include/fdl.texi: Removed. + * doc/include/funding.texi: Removed. + * doc/include/gcc-common.texi: Removed. + * doc/include/gpl_v3.texi: Removed. + * doc/install.texi: Removed. + * doc/interface.texi: Removed. + * doc/invoke.texi: Removed. + * doc/languages.texi: Removed. + * doc/libgcc.texi: Removed. + * doc/loop.texi: Removed. + * doc/lto-dump.texi: Removed. + * doc/lto.texi: Removed. + * doc/makefile.texi: Removed. + * doc/match-and-simplify.texi: Removed. + * doc/md.texi: Removed. + * doc/objc.texi: Removed. + * doc/optinfo.texi: Removed. + * doc/options.texi: Removed. + * doc/passes.texi: Removed. + * doc/plugins.texi: Removed. + * doc/poly-int.texi: Removed. + * doc/portability.texi: Removed. + * doc/rtl.texi: Removed. + * doc/service.texi: Removed. + * doc/sourcebuild.texi: Removed. + * doc/standards.texi: Removed. + * doc/tm.texi: Removed. + * doc/tree-ssa.texi: Removed. + * doc/trouble.texi: Removed. + * doc/ux.texi: Removed. + * doc/tm.texi.in: Removed. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/tm.rst.in: New file. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * Makefile.in: Support Sphinx based documentation. + * configure: Regenerate. + * configure.ac: Support Sphinx based documentation. + * genhooks.cc (struct s_hook): Emit tm.rst.in file. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: Use tm.rst.in file. + * doc/gccint/target-macros/addressing-modes.rst: Likewise. + * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: Likewise. + * doc/gccint/target-macros/anchored-addresses.rst: Likewise. + * doc/gccint/target-macros/c++-abi-parameters.rst: Likewise. + * doc/gccint/target-macros/condition-code-status.rst: Likewise. + * doc/gccint/target-macros/controlling-debugging-information-format.rst: Likewise. + * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: Likewise. + * doc/gccint/target-macros/d-abi-parameters.rst: Likewise. + * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst: + Likewise. + * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst: + Likewise. + * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: Likewise. + * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: Likewise. + * doc/gccint/target-macros/emulating-tls.rst: Likewise. + * doc/gccint/target-macros/implementing-the-varargs-macros.rst: Likewise. + * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: Likewise. + * doc/gccint/target-macros/layout-of-source-language-data-types.rst: Likewise. + * doc/gccint/target-macros/miscellaneous-parameters.rst: Likewise. + * doc/gccint/target-macros/mode-switching-instructions.rst: Likewise. + * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst: + Likewise. + * doc/gccint/target-macros/register-classes.rst: Likewise. + * doc/gccint/target-macros/register-usage.rst: Likewise. + * doc/gccint/target-macros/run-time-target-specification.rst: Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst: + Likewise. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst: + Likewise. + * doc/gccint/target-macros/storage-layout.rst: Likewise. + * doc/gccint/target-macros/support-for-nested-functions.rst: Likewise. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * common/common-target.def: Port to RST. + * target.def: Port to RST. + +2022-11-09 Martin Liska <mliska@suse.cz> + + * doc/cpp/character-sets.rst: New file. + * doc/cpp/conditional-syntax.rst: New file. + * doc/cpp/conditional-uses.rst: New file. + * doc/cpp/conditionals.rst: New file. + * doc/cpp/conf.py: New file. + * doc/cpp/copyright.rst: New file. + * doc/cpp/deleted-code.rst: New file. + * doc/cpp/diagnostics.rst: New file. + * doc/cpp/environment-variables.rst: New file. + * doc/cpp/gnu-free-documentation-license.rst: New file. + * doc/cpp/header-files.rst: New file. + * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: New file. + * doc/cpp/header-files/computed-includes.rst: New file. + * doc/cpp/header-files/include-operation.rst: New file. + * doc/cpp/header-files/include-syntax.rst: New file. + * doc/cpp/header-files/once-only-headers.rst: New file. + * doc/cpp/header-files/search-path.rst: New file. + * doc/cpp/header-files/system-headers.rst: New file. + * doc/cpp/header-files/wrapper-headers.rst: New file. + * doc/cpp/implementation-defined-behavior.rst: New file. + * doc/cpp/implementation-details.rst: New file. + * doc/cpp/implementation-limits.rst: New file. + * doc/cpp/index.rst: New file. + * doc/cpp/indices-and-tables.rst: New file. + * doc/cpp/initial-processing.rst: New file. + * doc/cpp/invocation.rst: New file. + * doc/cpp/line-control.rst: New file. + * doc/cpp/macros.rst: New file. + * doc/cpp/macros/concatenation.rst: New file. + * doc/cpp/macros/directives-within-macro-arguments.rst: New file. + * doc/cpp/macros/function-like-macros.rst: New file. + * doc/cpp/macros/macro-arguments.rst: New file. + * doc/cpp/macros/macro-pitfalls.rst: New file. + * doc/cpp/macros/object-like-macros.rst: New file. + * doc/cpp/macros/predefined-macros.rst: New file. + * doc/cpp/macros/stringizing.rst: New file. + * doc/cpp/macros/undefining-and-redefining-macros.rst: New file. + * doc/cpp/macros/variadic-macros.rst: New file. + * doc/cpp/obsolete-features.rst: New file. + * doc/cpp/other-directives.rst: New file. + * doc/cpp/overview.rst: New file. + * doc/cpp/pragmas.rst: New file. + * doc/cpp/preprocessor-output.rst: New file. + * doc/cpp/the-preprocessing-language.rst: New file. + * doc/cpp/tokenization.rst: New file. + * doc/cpp/traditional-lexical-analysis.rst: New file. + * doc/cpp/traditional-macros.rst: New file. + * doc/cpp/traditional-miscellany.rst: New file. + * doc/cpp/traditional-mode.rst: New file. + * doc/cpp/traditional-warnings.rst: New file. + * doc/cppinternals/conf.py: New file. + * doc/cppinternals/copyright.rst: New file. + * doc/cppinternals/cppinternals.rst: New file. + * doc/cppinternals/cpplib.rst: New file. + * doc/cppinternals/files.rst: New file. + * doc/cppinternals/index.rst: New file. + * doc/cppinternals/indices-and-tables.rst: New file. + * doc/cppinternals/internal-representation-of-macros.rst: New file. + * doc/cppinternals/just-which-line-number-anyway.rst: New file. + * doc/cppinternals/lexing-a-line.rst: New file. + * doc/cppinternals/lexing-a-token.rst: New file. + * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: New file. + * doc/cppinternals/macro-expansion-overview.rst: New file. + * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: New file. + * doc/cppinternals/multiple-include-optimization.rst: New file. + * doc/cppinternals/overview.rst: New file. + * doc/cppinternals/representation-of-line-numbers.rst: New file. + * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: New file. + * doc/gcc/binary-compatibility.rst: New file. + * doc/gcc/c++-implementation-defined-behavior.rst: New file. + * doc/gcc/c-implementation-defined-behavior.rst: New file. + * doc/gcc/c-implementation-defined-behavior/architecture.rst: New file. + * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/characters.rst: New file. + * doc/gcc/c-implementation-defined-behavior/declarators.rst: New file. + * doc/gcc/c-implementation-defined-behavior/environment.rst: New file. + * doc/gcc/c-implementation-defined-behavior/floating-point.rst: New file. + * doc/gcc/c-implementation-defined-behavior/hints.rst: New file. + * doc/gcc/c-implementation-defined-behavior/identifiers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/integers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/library-functions.rst: New file. + * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: New file. + * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: New file. + * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: New file. + * doc/gcc/c-implementation-defined-behavior/statements.rst: New file. + * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst: + New file. + * doc/gcc/c-implementation-defined-behavior/translation.rst: New file. + * doc/gcc/conditionally-supported-behavior.rst: New file. + * doc/gcc/conf.py: New file. + * doc/gcc/contributing-to-gcc-development.rst: New file. + * doc/gcc/contributors-to-gcc.rst: New file. + * doc/gcc/copyright.rst: New file. + * doc/gcc/exception-handling.rst: New file. + * doc/gcc/extensions-to-the-c++-language.rst: New file. + * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: New file. + * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: New file. + * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: New file. + * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: New file. + * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: New file. + * doc/gcc/extensions-to-the-c++-language/type-traits.rst: New file. + * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: New file. + * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst: + New file. + * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: New file. + * doc/gcc/extensions-to-the-c-language-family.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: New file. + * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst: + New file. + * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst: + New file. + * doc/gcc/funding.rst: New file. + * doc/gcc/gcc-command-options.rst: New file. + * doc/gcc/gcc-command-options/c++-modules.rst: New file. + * doc/gcc/gcc-command-options/compiling-c++-programs.rst: New file. + * doc/gcc/gcc-command-options/description.rst: New file. + * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: New file. + * doc/gcc/gcc-command-options/gcc-developer-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst: + New file. + * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst: + New file. + * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst: + New file. + * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: New file. + * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: New file. + * doc/gcc/gcc-command-options/option-summary.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst: + New file. + * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: New file. + * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: New file. + * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: New file. + * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: New file. + * doc/gcc/gcc-command-options/options-for-directory-search.rst: New file. + * doc/gcc/gcc-command-options/options-for-linking.rst: New file. + * doc/gcc/gcc-command-options/options-that-control-optimization.rst: New file. + * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: New file. + * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst: + New file. + * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: New file. + * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: New file. + * doc/gcc/gcc-command-options/program-instrumentation-options.rst: New file. + * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst: + New file. + * doc/gcc/gcc-command-options/using-precompiled-headers.rst: New file. + * doc/gcc/gcc.rst: New file. + * doc/gcc/gcov-dump.rst: New file. + * doc/gcc/gcov-tool.rst: New file. + * doc/gcc/gcov.rst: New file. + * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: New file. + * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: New file. + * doc/gcc/gcov/introduction-to-gcov.rst: New file. + * doc/gcc/gcov/invoking-gcov.rst: New file. + * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: New file. + * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: New file. + * doc/gcc/general-public-license-3.rst: New file. + * doc/gcc/gnu-free-documentation-license.rst: New file. + * doc/gcc/gnu-objective-c-features.rst: New file. + * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: New file. + * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: New file. + * doc/gcc/gnu-objective-c-features/exceptions.rst: New file. + * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: New file. + * doc/gcc/gnu-objective-c-features/garbage-collection.rst: New file. + * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: New file. + * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: New file. + * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: New file. + * doc/gcc/gnu-objective-c-features/synchronization.rst: New file. + * doc/gcc/gnu-objective-c-features/type-encoding.rst: New file. + * doc/gcc/gnu.rst: New file. + * doc/gcc/have-you-found-a-bug.rst: New file. + * doc/gcc/how-and-where-to-report-bugs.rst: New file. + * doc/gcc/how-to-get-help-with-gcc.rst: New file. + * doc/gcc/index.rst: New file. + * doc/gcc/indices-and-tables.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst: + New file. + * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst: + New file. + * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst: + New file. + * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: New file. + * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst: + New file. + * doc/gcc/language-standards-supported-by-gcc.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/c-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/d-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/go-language.rst: New file. + * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst: + New file. + * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: New file. + * doc/gcc/lto-dump.rst: New file. + * doc/gcc/programming-languages-supported-by-gcc.rst: New file. + * doc/gcc/reporting-bugs.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: New file. + * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst: + New file. + * doc/gccint/analysis-and-representation-of-loops.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: New file. + * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst: + New file. + * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: New file. + * doc/gccint/analyzer-internals.rst: New file. + * doc/gccint/collect2.rst: New file. + * doc/gccint/conf.py: New file. + * doc/gccint/contributing-to-gcc-development.rst: New file. + * doc/gccint/contributors-to-gcc.rst: New file. + * doc/gccint/control-flow-graph.rst: New file. + * doc/gccint/control-flow-graph/basic-blocks.rst: New file. + * doc/gccint/control-flow-graph/edges.rst: New file. + * doc/gccint/control-flow-graph/liveness-information.rst: New file. + * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: New file. + * doc/gccint/control-flow-graph/profile-information.rst: New file. + * doc/gccint/copyright.rst: New file. + * doc/gccint/debugging-the-analyzer.rst: New file. + * doc/gccint/funding.rst: New file. + * doc/gccint/gcc-and-portability.rst: New file. + * doc/gccint/general-public-license-3.rst: New file. + * doc/gccint/generic.rst: New file. + * doc/gccint/generic/attributes-in-trees.rst: New file. + * doc/gccint/generic/c-and-c++-trees.rst: New file. + * doc/gccint/generic/declarations.rst: New file. + * doc/gccint/generic/deficiencies.rst: New file. + * doc/gccint/generic/expressions.rst: New file. + * doc/gccint/generic/functions.rst: New file. + * doc/gccint/generic/language-dependent-trees.rst: New file. + * doc/gccint/generic/overview.rst: New file. + * doc/gccint/generic/statements.rst: New file. + * doc/gccint/generic/types.rst: New file. + * doc/gccint/gimple-api.rst: New file. + * doc/gccint/gimple.rst: New file. + * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: New file. + * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: New file. + * doc/gccint/gimple/exception-handling.rst: New file. + * doc/gccint/gimple/gimple-instruction-set.rst: New file. + * doc/gccint/gimple/gimple-sequences.rst: New file. + * doc/gccint/gimple/manipulating-gimple-statements.rst: New file. + * doc/gccint/gimple/operands.rst: New file. + * doc/gccint/gimple/sequence-iterators.rst: New file. + * doc/gccint/gimple/statement-and-operand-traversals.rst: New file. + * doc/gccint/gimple/temporaries.rst: New file. + * doc/gccint/gimple/tuple-representation.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: New file. + * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: New file. + * doc/gccint/gnu-free-documentation-license.rst: New file. + * doc/gccint/guidelines-for-diagnostics.rst: New file. + * doc/gccint/guidelines-for-options.rst: New file. + * doc/gccint/host-common.rst: New file. + * doc/gccint/host-configuration.rst: New file. + * doc/gccint/host-filesystem.rst: New file. + * doc/gccint/host-makefile-fragments.rst: New file. + * doc/gccint/host-misc.rst: New file. + * doc/gccint/index.rst: New file. + * doc/gccint/indices-and-tables.rst: New file. + * doc/gccint/interfacing-to-gcc-output.rst: New file. + * doc/gccint/introduction.rst: New file. + * doc/gccint/language-front-ends-in-gcc.rst: New file. + * doc/gccint/link-time-optimization.rst: New file. + * doc/gccint/link-time-optimization/design-overview.rst: New file. + * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: New file. + * doc/gccint/link-time-optimization/lto-file-sections.rst: New file. + * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: New file. + * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst: + New file. + * doc/gccint/machine-descriptions.rst: New file. + * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: New file. + * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: New file. + * doc/gccint/machine-descriptions/conditional-execution.rst: New file. + * doc/gccint/machine-descriptions/constant-definitions.rst: New file. + * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: New file. + * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: New file. + * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: New file. + * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: New file. + * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: New file. + * doc/gccint/machine-descriptions/example-of-defineinsn.rst: New file. + * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: New file. + * doc/gccint/machine-descriptions/instruction-attributes.rst: New file. + * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: New file. + * doc/gccint/machine-descriptions/iterators.rst: New file. + * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: New file. + * doc/gccint/machine-descriptions/operand-constraints.rst: New file. + * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: New file. + * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst: + New file. + * doc/gccint/machine-descriptions/predicates.rst: New file. + * doc/gccint/machine-descriptions/rtl-template.rst: New file. + * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: New file. + * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: New file. + * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: New file. + * doc/gccint/makefile-fragments.rst: New file. + * doc/gccint/match-and-simplify.rst: New file. + * doc/gccint/memory-management-and-type-information.rst: New file. + * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst: + New file. + * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst: + New file. + * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst: + New file. + * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: New file. + * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst: + New file. + * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: New file. + * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst: + New file. + * doc/gccint/option-file-format.rst: New file. + * doc/gccint/option-properties.rst: New file. + * doc/gccint/option-specification-files.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst: + New file. + * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: New file. + * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: New file. + * doc/gccint/plugins.rst: New file. + * doc/gccint/plugins/building-gcc-plugins.rst: New file. + * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: New file. + * doc/gccint/plugins/giving-information-about-a-plugin.rst: New file. + * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: New file. + * doc/gccint/plugins/interacting-with-the-pass-manager.rst: New file. + * doc/gccint/plugins/keeping-track-of-available-passes.rst: New file. + * doc/gccint/plugins/loading-plugins.rst: New file. + * doc/gccint/plugins/plugin-api.rst: New file. + * doc/gccint/plugins/recording-information-about-pass-execution.rst: New file. + * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: New file. + * doc/gccint/rtl-representation.rst: New file. + * doc/gccint/rtl-representation/access-to-operands.rst: New file. + * doc/gccint/rtl-representation/access-to-special-operands.rst: New file. + * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: New file. + * doc/gccint/rtl-representation/bit-fields.rst: New file. + * doc/gccint/rtl-representation/comparison-operations.rst: New file. + * doc/gccint/rtl-representation/constant-expression-types.rst: New file. + * doc/gccint/rtl-representation/conversions.rst: New file. + * doc/gccint/rtl-representation/declarations.rst: New file. + * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: New file. + * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: New file. + * doc/gccint/rtl-representation/insns.rst: New file. + * doc/gccint/rtl-representation/machine-modes.rst: New file. + * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: New file. + * doc/gccint/rtl-representation/reading-rtl.rst: New file. + * doc/gccint/rtl-representation/registers-and-memory.rst: New file. + * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: New file. + * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: New file. + * doc/gccint/rtl-representation/rtl-object-types.rst: New file. + * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: New file. + * doc/gccint/rtl-representation/side-effect-expressions.rst: New file. + * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: New file. + * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: New file. + * doc/gccint/rtl-representation/vector-operations.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst: + New file. + * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: New file. + * doc/gccint/source-tree-structure-and-build-system.rst: New file. + * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/building-documentation.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst: + New file. + * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst: + New file. + * doc/gccint/standard-header-file-directories.rst: New file. + * doc/gccint/static-analyzer.rst: New file. + * doc/gccint/target-macros.rst: New file. + * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: New file. + * doc/gccint/target-macros/addressing-modes.rst: New file. + * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: New file. + * doc/gccint/target-macros/anchored-addresses.rst: New file. + * doc/gccint/target-macros/c++-abi-parameters.rst: New file. + * doc/gccint/target-macros/condition-code-status.rst: New file. + * doc/gccint/target-macros/controlling-debugging-information-format.rst: New file. + * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: New file. + * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: New file. + * doc/gccint/target-macros/d-abi-parameters.rst: New file. + * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: New file. + * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst: + New file. + * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: New file. + * doc/gccint/target-macros/defining-the-output-assembler-language.rst: New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst: + New file. + * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst: + New file. + * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: New file. + * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: New file. + * doc/gccint/target-macros/emulating-tls.rst: New file. + * doc/gccint/target-macros/implementing-the-varargs-macros.rst: New file. + * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: New file. + * doc/gccint/target-macros/layout-of-source-language-data-types.rst: New file. + * doc/gccint/target-macros/miscellaneous-parameters.rst: New file. + * doc/gccint/target-macros/mode-switching-instructions.rst: New file. + * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst: + New file. + * doc/gccint/target-macros/position-independent-code.rst: New file. + * doc/gccint/target-macros/register-classes.rst: New file. + * doc/gccint/target-macros/register-usage.rst: New file. + * doc/gccint/target-macros/run-time-target-specification.rst: New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst: + New file. + * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst: + New file. + * doc/gccint/target-macros/storage-layout.rst: New file. + * doc/gccint/target-macros/support-for-nested-functions.rst: New file. + * doc/gccint/target-macros/the-global-targetm-variable.rst: New file. + * doc/gccint/target-makefile-fragments.rst: New file. + * doc/gccint/testsuites.rst: New test. + * doc/gccint/testsuites/ada-language-testsuites.rst: New test. + * doc/gccint/testsuites/c-language-testsuites.rst: New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst: + New test. + * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst: + New test. + * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: New test. + * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: New test. + * doc/gccint/testsuites/support-for-testing-gcov.rst: New test. + * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: New test. + * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: New test. + * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: New test. + * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: New test. + * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: New test. + * doc/gccint/the-gcc-low-level-runtime-library.rst: New file. + * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst: + New file. + * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst: + New file. + * doc/gccint/the-language.rst: New file. + * doc/gccint/user-experience-guidelines.rst: New file. + * doc/install/binaries.rst: New file. + * doc/install/building.rst: New file. + * doc/install/building/building-a-cross-compiler.rst: New file. + * doc/install/building/building-a-native-compiler.rst: New file. + * doc/install/building/building-in-parallel.rst: New file. + * doc/install/building/building-the-ada-compiler.rst: New file. + * doc/install/building/building-the-d-compiler.rst: New file. + * doc/install/building/building-with-profile-feedback.rst: New file. + * doc/install/conf.py: New file. + * doc/install/configuration.rst: New file. + * doc/install/copyright.rst: New file. + * doc/install/downloading-gcc.rst: New file. + * doc/install/final-installation.rst: New file. + * doc/install/gnu-free-documentation-license.rst: New file. + * doc/install/host-target-specific-installation-notes-for-gcc.rst: New file. + * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: New test. + * doc/install/how-to-interpret-test-results.rst: New file. + * doc/install/index.rst: New file. + * doc/install/indices-and-tables.rst: New file. + * doc/install/installing-gcc.rst: New file. + * doc/install/passing-options-and-running-multiple-testsuites.rst: New test. + * doc/install/prerequisites.rst: New file. + * doc/install/submitting-test-results.rst: New file. + * doc/install/testing.rst: New file. + +2022-11-09 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (class foperator_minus): New. + (floating_op_table::floating_op_table): Add MINUS_EXPR entry. + +2022-11-09 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (range_operator_float::fold_range): Abstract + out from foperator_plus. + (range_operator_float::rv_fold): New. + (foperator_plus::fold_range): Remove. + (foperator_plus::rv_fold): New. + (propagate_nans): Remove. + * range-op.h (class range_operator_float): Add rv_fold. + +2022-11-09 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_plus::fold_range): Set NAN for + addition of different signed infinities. + (range_op_float_tests): New test. + +2022-11-09 liuhongt <hongtao.liu@intel.com> + + PR target/107540 + * config/i386/sse.md (avx512f_movddup512<mask_name>): Change + type from sselog to sselog1. + (avx_movddup256<mask_name>): Ditto. + +2022-11-08 David Faust <david.faust@oracle.com> + + * config/bpf/bpf.cc (struct core_walk_data): Add field `which'... + (bpf_resolve_overloaded_builtin): ... set it here. Use values of enum + bpf_builtins for error checks. + (bpf_core_walk): Use values of enum bpf_builtins. + (bpf_core_newdecl): Likewise. + (bpf_expand_builtin): Likewise. + +2022-11-08 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/24021 + * range-op-float.cc (propagate_nans): New. + (frange_nextafter): New. + (frange_arithmetic): New. + (class foperator_plus): New. + (floating_op_table::floating_op_table): Add PLUS_EXPR entry. + +2022-11-08 Aldy Hernandez <aldyh@redhat.com> + + * real.cc (real_isdenormal): New. + (encode_ieee_single): Call real_isdenormal. + (encode_ieee_double): Same. + (encode_ieee_extended): Same. + (encode_ieee_quad): Same. + (encode_ieee_half): Same. + (encode_arm_bfloat_half): Same. + * real.h (real_isdenormal): Add mode argument. Rewrite for + normalized values. + * value-range.cc (frange::flush_denormals_to_zero): Pass mode to + real_isdenormal. + +2022-11-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107389 + * gimple-low.cc (lower_builtin_assume_aligned): New. + (lower_stmt): Call it. + +2022-11-08 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (operator_div::fold_range): Call + update_known_bitmask. + * tree-ssa-ccp.cc (bit_value_binop): Handle divisions by powers of + 2 as a right shift. + +2022-11-08 Kwok Cheung Yeung <kcy@codesourcery.com> + + * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand first argument + of GCN_BUILTIN_LDEXPV to V64DFmode. + +2022-11-08 Kwok Cheung Yeung <kcy@codesourcery.com> + + * config/gcn/gcn-builtins.def (FABSV, FLOORVF, FLOORV): New builtins. + * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand GCN_BUILTIN_FABSV, + GCN_BUILTIN_FLOORVF and GCN_BUILTIN_FLOORV. + +2022-11-08 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (irange_to_masked_value): New. + (update_known_bitmask): New. + (operator_mult::fold_range): Call update_known_bitmask. + +2022-11-08 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107547 + * tree-call-cdce.cc (get_no_error_domain): Handle CASE_FLT_FN_FLOATN_NX + of BUILT_IN_{ACOS,ASIN,ACOSH,ATANH,LOG,LOG2,LOG10,LOG1P}. Handle + BUILT_IN_{COSH,SINH,EXP,EXPM1,EXP2}F{16,32,64,128}. + +2022-11-08 Jakub Jelinek <jakub@redhat.com> + + PR target/107546 + * config/i386/predicates.md (vector_or_const_vector_operand): New + predicate. + * config/i386/sse.md (vec_cmp<mode><sseintvecmodelower>, + vec_cmpv2div2di, vec_cmpu<mode><sseintvecmodelower>, + vec_cmpuv2div2di): Use nonimmediate_or_const_vector_operand + predicate instead of nonimmediate_operand and + vector_or_const_vector_operand instead of vector_operand. + * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): For + LE/LEU or GE/GEU with CONST_VECTOR cop1 try to transform those + into LE/LEU or GT/GTU with larger or smaller by one cop1 if + there is no wrap-around. Force CONST_VECTOR cop0 or cop1 into + REG. Formatting fix. + +2022-11-08 Max Filippov <jcmvbkbc@gmail.com> + + PR rtl-optimization/107482 + * ira-color.cc (assign_hard_reg): Only call + update_costs_from_copies when retry_p is false. + +2022-11-08 konglin1 <lingling.kong@intel.com> + + Revert: + 2022-11-07 konglin1 <lingling.kong@intel.com> + + * config/i386/i386.opt:Add -mprefer-remote-atomic. + * config/i386/sync.md (atomic_<plus_logic><mode>): + New define_expand. + (atomic_add<mode>): Rename to below one. + (atomic_add<mode>_1): To this. + (atomic_<logic><mode>): Ditto. + (atomic_<logic><mode>_1): Ditto. + * doc/invoke.texi: Add -mprefer-remote-atomic. + +2022-11-08 Haochen Jiang <haochen.jiang@intel.com> + + * config/i386/i386-options.cc (m_CORE_ATOM): New. + * config/i386/x86-tune.def + (X86_TUNE_SCHEDULE): Initial tune for CORE_ATOM. + (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto. + (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Ditto. + (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto. + (X86_TUNE_USE_LEAVE): Ditto. + (X86_TUNE_PUSH_MEMORY): Ditto. + (X86_TUNE_USE_INCDEC): Ditto. + (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto. + (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto. + (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto. + (X86_TUNE_USE_SAHF): Ditto. + (X86_TUNE_USE_BT): Ditto. + (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto. + (X86_TUNE_ONE_IF_CONV_INSN): Ditto. + (X86_TUNE_AVOID_MFENCE): 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_SSE_TYPELESS_STORES): Ditto. + (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto. + (X86_TUNE_AVOID_4BYTE_PREFIXES): Ditto. + (X86_TUNE_USE_GATHER_2PARTS): Ditto. + (X86_TUNE_USE_GATHER_4PARTS): Ditto. + (X86_TUNE_USE_GATHER): Ditto. + +2022-11-08 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/104530 + * gimple-range-cache.cc (ranger_cache::register_inferred_value): + New. Split from: + (ranger_cache::apply_inferred_ranges): Move setting cache to + separate function. + * gimple-range-cache.h (register_inferred_value): New prototype. + * gimple-range-infer.cc (infer_range_manager::has_range_p): New. + * gimple-range-infer.h (has_range_p): New prototype. + * gimple-range.cc (register_transitive_inferred_ranges): New. + * gimple-range.h (register_transitive_inferred_ranges): New proto. + * tree-vrp.cc (rvrp_folder::fold_stmt): Check for transitive inferred + ranges at the end of the block before folding final stmt. + +2022-11-07 David Faust <david.faust@oracle.com> + + * config/bpf/bpf.cc (handle_attr_preserve): Use maybe_make_core_relo(). + +2022-11-07 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/55157 + * range-op.cc (operator_mult::wi_fold): Optimize multiplications + by powers of 2. + +2022-11-07 H.J. Lu <hjl.tools@gmail.com> + + PR middle-end/102566 + * tree-ssa-ccp.cc (optimize_atomic_bit_test_and): Also handle + if (_5 < 0) and if (_5 >= 0). + +2022-11-07 Richard Purdie <richard.purdie@linuxfoundation.org> + + * file-prefix-map.cc (remap_filename): Handle NULL filenames. + +2022-11-07 Alexander Monakov <amonakov@ispras.ru> + + PR tree-optimization/107505 + * tree-ssa-sink.cc (statement_sink_location): Additionally + reject ECF_RETURNS_TWICE calls. + +2022-11-07 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107541 + * range-op.cc (operator_div::fold_range): Restrict power of 2 + optimization to positive numbers. + +2022-11-07 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-unswitch.cc (unswitch_predicate::count): New. + (unswitch_predicate::unswitch_predicate): Initialize count. + (init_loop_unswitch_info): First collect candidates and + determine the outermost loop to unswitch. + (tree_ssa_unswitch_loops): First perform all guard hoisting, + then perform unswitching on innermost loop predicates. + (find_unswitching_predicates_for_bb): Keep track of the + most profitable predicate to unswitch on. + (tree_unswitch_single_loop): Unswitch given predicate if + not NULL. + +2022-11-07 Martin Liska <mliska@suse.cz> + Gerald Pfeifer <gerald@pfeifer.com> + + * doc/invoke.texi: Improve wording. + +2022-11-07 Martin Liska <mliska@suse.cz> + + * range-op.cc: Add final override keywords. + +2022-11-07 Kewen Lin <linkw@linux.ibm.com> + + PR tree-optimization/107412 + * gimple-fold.cc (gimple_fold_mask_load_store_mem_ref): Rename to ... + (gimple_fold_partial_load_store_mem_ref): ... this, add one parameter + mask_p indicating it's for mask or length, and add some handlings for + IFN LEN_{LOAD,STORE}. + (gimple_fold_mask_load): Rename to ... + (gimple_fold_partial_load): ... this, add one parameter mask_p. + (gimple_fold_mask_store): Rename to ... + (gimple_fold_partial_store): ... this, add one parameter mask_p. + (gimple_fold_call): Add the handlings for IFN LEN_{LOAD,STORE}, + and adjust calls on gimple_fold_mask_load_store_mem_ref to + gimple_fold_partial_load_store_mem_ref. + +2022-11-07 Hu, Lin1 <lin1.hu@intel.com> + + * common/config/i386/cpuinfo.h + (get_intel_cpu): Handle Grand Ridge. + * common/config/i386/i386-common.cc + (processor_names): Add grandridge. + (processor_alias_table): Ditto. + * common/config/i386/i386-cpuinfo.h: + (enum processor_types): Add INTEL_GRANDRIDGE. + * config.gcc: Add -march=grandridge. + * config/i386/driver-i386.cc (host_detect_local_cpu): + Handle grandridge. + * config/i386/i386-c.cc (ix86_target_macros_internal): + Ditto. + * config/i386/i386-options.cc (m_GRANDRIDGE): New define. + (processor_cost_table): Add grandridge. + * config/i386/i386.h (enum processor_type): + Add PROCESSOR_GRANDRIDGE. + (PTA_GRANDRIDGE): Ditto. + * doc/extend.texi: Add grandridge. + * doc/invoke.texi: Ditto. + +2022-11-07 konglin1 <lingling.kong@intel.com> + + * config/i386/i386.opt:Add -mprefer-remote-atomic. + * config/i386/sync.md (atomic_<plus_logic><mode>): + New define_expand. + (atomic_add<mode>): Rename to below one. + (atomic_add<mode>_1): To this. + (atomic_<logic><mode>): Ditto. + (atomic_<logic><mode>_1): Ditto. + * doc/invoke.texi: Add -mprefer-remote-atomic. + +2022-11-07 konglin1 <lingling.kong@intel.com> + + * common/config/i386/cpuinfo.h (get_available_features): + Detect raoint. + * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_RAOINT_SET, + OPTION_MASK_ISA2_RAOINT_UNSET): New. + (ix86_handle_option): Handle -mraoint. + * common/config/i386/i386-cpuinfo.h (enum processor_features): + Add FEATURE_RAOINT. + * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for + raoint. + * config.gcc: Add raointintrin.h + * config/i386/cpuid.h (bit_RAOINT): New. + * config/i386/i386-builtin.def (BDESC): Add new builtins. + * config/i386/i386-c.cc (ix86_target_macros_internal): Define + __RAOINT__. + * config/i386/i386-isa.def (RAOINT): Add DEF_PTA(RAOINT). + * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): + Add -mraoint. + * config/i386/sync.md (rao_a<raointop><mode>): New define insn. + * config/i386/i386.opt: Add option -mraoint. + * config/i386/x86gprintrin.h: Include raointintrin.h. + * doc/extend.texi: Document raoint. + * doc/invoke.texi: Document -mraoint. + * doc/sourcebuild.texi: Document target raoint. + * config/i386/raointintrin.h: New file. + +2022-11-07 Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/cpuinfo.h + (get_intel_cpu): Handle Granite Rapids. + * common/config/i386/i386-common.cc: + (processor_names): Add graniterapids. + (processor_alias_table): Ditto. + * common/config/i386/i386-cpuinfo.h + (enum processor_subtypes): Add INTEL_GRANTIERAPIDS. + * config.gcc: Add -march=graniterapids. + * config/i386/driver-i386.cc (host_detect_local_cpu): + Handle graniterapids. + * config/i386/i386-c.cc (ix86_target_macros_internal): + Ditto. + * config/i386/i386-options.cc (m_GRANITERAPIDS): New. + (processor_cost_table): Add graniterapids. + * config/i386/i386.h (enum processor_type): + Add PROCESSOR_GRANITERAPIDS. + (PTA_GRANITERAPIDS): Ditto. + * doc/extend.texi: Add graniterapids. + * doc/invoke.texi: Ditto. + +2022-11-07 Haochen Jiang <haochen.jiang@intel.com> + Hongtao Liu <hongtao.liu@intel.com> + + * common/config/i386/cpuinfo.h (get_available_features): + Detect PREFETCHI. + * common/config/i386/i386-common.cc + (OPTION_MASK_ISA2_PREFETCHI_SET, + OPTION_MASK_ISA2_PREFETCHI_UNSET): New. + (ix86_handle_option): Handle -mprefetchi. + * common/config/i386/i386-cpuinfo.h + (enum processor_features): Add FEATURE_PREFETCHI. + * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY + for prefetchi. + * config.gcc: Add prfchiintrin.h. + * config/i386/cpuid.h (bit_PREFETCHI): New. + * config/i386/i386-builtin-types.def: + Add DEF_FUNCTION_TYPE (VOID, PCVOID, INT) + and DEF_FUNCTION_TYPE (VOID, PCVOID, INT, INT, INT). + * config/i386/i386-builtin.def (BDESC): Add new builtins. + * config/i386/i386-c.cc (ix86_target_macros_internal): + Define __PREFETCHI__. + * config/i386/i386-expand.cc: Handle new builtins. + * config/i386/i386-isa.def (PREFETCHI): + Add DEF_PTA(PREFETCHI). + * config/i386/i386-options.cc + (ix86_valid_target_attribute_inner_p): Handle prefetchi. + * config/i386/i386.md (prefetchi): New define_insn. + * config/i386/i386.opt: Add option -mprefetchi. + * config/i386/predicates.md (local_func_symbolic_operand): + New predicates. + * config/i386/x86gprintrin.h: Include prfchiintrin.h. + * config/i386/xmmintrin.h (enum _mm_hint): New enum for + prefetchi. + (_mm_prefetch): Handle the highest bit of enum. + * doc/extend.texi: Document prefetchi. + * doc/invoke.texi: Document -mprefetchi. + * doc/sourcebuild.texi: Document target prefetchi. + * config/i386/prfchiintrin.h: New file. + +2022-11-06 Uroš Bizjak <ubizjak@gmail.com> + + * optabs.cc (can_vec_set_var_idx_p): Use operand[2] + mode when checking vec_set_optab. + +2022-11-06 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (UNSPEC_FCOPYSIGN): New unspec. + (type): Add fcopysign. + (copysign<mode>3): New instruction template. + +2022-11-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * multiple_target.cc (expand_target_clones): Free memory. + +2022-11-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * cgraph.cc (cgraph_node::make_local): Remove redundant set_section. + * multiple_target.cc (create_dispatcher_calls): Likewise. + +2022-11-05 Jonathan Wakely <jwakely@redhat.com> + + PR c/41041 + * doc/cppopts.texi: Document -fwide-exec-charset defaults + correctly. + +2022-11-05 Alexandre Oliva <oliva@adacore.com> + + * common.opt (fmultiflags): New. + * doc/invoke.texi: Document it. + * gcc.cc (driver_self_specs): Discard it. + * opts.cc (common_handle_option): Ignore it in the driver. + +2022-11-04 Jeff Chapman II <jchapman@lock3software.com> + Jason Merrill <jason@redhat.com> + + * input.cc (get_source_text_between): New fn. + * input.h (get_source_text_between): Declare. + +2022-11-04 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107342 + * range-op.cc (operator_mult::fold_range): New. + (operator_div::fold_range): New. + +2022-11-04 Eric Botcazou <ebotcazou@adacore.com> + + * fold-const.cc (operand_compare::operand_equal_p) <COMPONENT_REF>: + Do not take into account operand 2. + (operand_compare::hash_operand) <COMPONENT_REF>: Likewise. + +2022-11-04 Eric Botcazou <ebotcazou@adacore.com> + + * expr.cc (emit_group_store): Do not use subword paradoxical subregs + +2022-11-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64-sve2.md: Fix typo in Cryptographic + extensions comment. + +2022-11-04 Thomas Schwinge <thomas@codesourcery.com> + + * config.gcc [target *-intelmic-* | *-intelmicemul-*]: Remove. + * config/i386/i386-options.cc (ix86_omp_device_kind_arch_isa) + [ACCEL_COMPILER]: Remove. + * config/i386/intelmic-mkoffload.cc: Remove. + * config/i386/intelmic-offload.h: Likewise. + * config/i386/t-intelmic: Likewise. + * config/i386/t-omp-device: Likewise. + * configure.ac [target *-intelmic-* | *-intelmicemul-*]: Remove. + * configure: Regenerate. + * doc/install.texi (--enable-offload-targets=[...]): Update. + * doc/sourcebuild.texi: Remove 'liboffloadmic' documentation. + +2022-11-04 Thomas Schwinge <thomas@codesourcery.com> + + * Makefile.in (OBJS): Remove 'dbxout.o'. + * config/nvptx/nvptx.cc: Don't '#include "dbxout.h"'. + * dbxout.cc: Remove. + * dbxout.h: Likewise. + * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): + Default to 'default_asm_out_constructor', + 'default_asm_out_destructor'. + * targhooks.cc (default_asm_out_constructor) + (default_asm_out_destructor): New. + * targhooks.h (default_asm_out_constructor) + (default_asm_out_destructor): Declare. + +2022-11-04 Thomas Schwinge <thomas@codesourcery.com> + + * Makefile.in (OBJS): Add 'dbxout.o'. + * config/nvptx/nvptx.cc: '#include "dbxout.h"'. + * dbxout.cc: New. + * dbxout.h: Likewise. + * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): + Default to 'default_stabs_asm_out_constructor', + 'default_stabs_asm_out_destructor'. + +2022-11-04 Hongyu Wang <hongyu.wang@intel.com> + Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/cpuinfo.h (get_available_features): Detect + amx-fp16. + * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_FP16_SET, + OPTION_MASK_ISA2_AMX_FP16_UNSET): New macros. + (ix86_handle_option): Handle -mamx-fp16. + * common/config/i386/i386-cpuinfo.h (enum processor_features): + Add FEATURE_AMX_FP16. + * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for + amx-fp16. + * config.gcc: Add amxfp16intrin.h. + * config/i386/cpuid.h (bit_AMX_FP16): New. + * config/i386/i386-c.cc (ix86_target_macros_internal): Define + __AMX_FP16__. + * config/i386/i386-isa.def: Add DEF_PTA for AMX_FP16. + * config/i386/i386-options.cc (isa2_opts): Add -mamx-fp16. + (ix86_valid_target_attribute_inner_p): Add new ATTR. + (ix86_option_override_internal): Handle AMX-FP16. + * config/i386/i386.opt: Add -mamx-fp16. + * config/i386/immintrin.h: Include amxfp16intrin.h. + * doc/extend.texi: Document -mamx-fp16. + * doc/invoke.texi: Document amx-fp16. + * doc/sourcebuild.texi: Document amx_fp16. + * config/i386/amxfp16intrin.h: New file. + +2022-11-04 Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/cpuinfo.h (get_intel_cpu): + Add Sierra Forest. + * common/config/i386/i386-common.cc + (processor_names): Add Sierra Forest. + (processor_alias_table): Ditto. + * common/config/i386/i386-cpuinfo.h + (enum processor_types): Add INTEL_SIERRAFOREST. + * config.gcc: Add -march=sierraforest. + * config/i386/driver-i386.cc (host_detect_local_cpu): + Handle Sierra Forest. + * config/i386/i386-c.cc (ix86_target_macros_internal): + Ditto. + * config/i386/i386-options.cc (m_SIERRAFOREST): New define. + (processor_cost_table): Add sierra forest. + * config/i386/i386.h (enum processor_type): + Add PROCESSOR_SIERRA_FOREST. + (PTA_SIERRAFOREST): Ditto. + * doc/extend.texi: Add sierra forest. + * doc/invoke.texi: Ditto. + +2022-11-04 Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/cpuinfo.h (get_available_features): + Detect cmpccxadd. + * common/config/i386/i386-common.cc + (OPTION_MASK_ISA2_CMPCCXADD_SET, + OPTION_MASK_ISA2_CMPCCXADD_UNSET): New. + (ix86_handle_option): Handle -mcmpccxadd. + * common/config/i386/i386-cpuinfo.h (enum processor_features): + Add FEATURE_CMPCCXADD. + * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for + cmpccxadd. + * config.gcc: Add cmpccxaddintrin.h. + * config/i386/cpuid.h (bit_CMPCCXADD): New. + * config/i386/i386-builtin-types.def: + Add DEF_FUNCTION_TYPE(INT, PINT, INT, INT, INT) + and DEF_FUNCTION_TYPE(LONGLONG, PLONGLONG, LONGLONG, LONGLONG, INT). + * config/i386/i386-builtin.def (BDESC): Add new builtins. + * config/i386/i386-c.cc (ix86_target_macros_internal): Define + __CMPCCXADD__. + * config/i386/i386-expand.cc (ix86_expand_special_args_builtin): + Add new parameter to indicate constant position. + Handle INT_FTYPE_PINT_INT_INT_INT + and LONGLONG_FTYPE_PLONGLONG_LONGLONG_LONGLONG_INT. + * config/i386/i386-isa.def (CMPCCXADD): Add DEF_PTA(CMPCCXADD). + * config/i386/i386-options.cc (isa2_opts): Add -mcmpccxadd. + (ix86_valid_target_attribute_inner_p): Handle cmpccxadd. + * config/i386/i386.opt: Add option -mcmpccxadd. + * config/i386/sync.md (cmpccxadd_<mode>): New define insn. + * config/i386/x86gprintrin.h: Include cmpccxaddintrin.h. + * doc/extend.texi: Document cmpccxadd. + * doc/invoke.texi: Document -mcmpccxadd. + * doc/sourcebuild.texi: Document target cmpccxadd. + * config/i386/cmpccxaddintrin.h: New file. + +2022-11-03 Jason Merrill <jason@redhat.com> + + * doc/invoke.texi: -fconcepts no longer implies + -fconcepts-ts before C++20. + +2022-11-03 Kwok Cheung Yeung <kcy@codesourcery.com> + + * config/gcn/gcn-valu.md (math_unop_insn): New attribute. + (<math_unop><mode>2, <math_unop><mode>2<exec>, <math_unop><mode>2, + <math_unop><mode>2<exec>, *<math_unop><mode>2_insn, + *<math_unop><mode>2<exec>_insn): Use math_unop_insn to generate + assembler output. + +2022-11-03 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range.cc (gimple_ranger::update_stmt): New. + * gimple-range.h (gimple_ranger::update_stmt): New prototype. + * tree-ssa-operands.cc (update_stmt_operands): Notify range + query that stmt has changed. + * value-query.h (range_query::update_stmt): New. + +2022-11-03 David Malcolm <dmalcolm@redhat.com> + + * make-unique.h: New file. + +2022-11-03 Uroš Bizjak <ubizjak@gmail.com> + + PR target/107404 + * config/i386/i386.md (eliminate reg-reg move by inverting the + condition of a cmove #2 peephole2): Check if eliminated move + initialized a register, used in the moved instruction. + +2022-11-03 Andrew Stubbs <ams@codesourcery.com> + + PR target/107510 + * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Remove duplicate + UNSPEC_SMIN_DPP_SHR conditionals. + +2022-11-02 Christoph Müllner <christoph.muellner@vrull.eu> + + * common/config/riscv/riscv-common.cc: Add zawrs extension. + * config/riscv/riscv-opts.h (MASK_ZAWRS): New. + (TARGET_ZAWRS): New. + * config/riscv/riscv.opt: New. + +2022-11-02 Rasmus Villemoes <rv@rasmusvillemoes.dk> + + PR driver/93371 + * gcc.cc (ASM_MAP): Honour -ffile-prefix-map. + +2022-11-02 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::contains_p): Fix signed zero handling. + (range_tests_signed_zeros): New test. + +2022-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * builtins.cc (mathfn_built_in_2): #undef HUGE_VAL, NAN. + +2022-11-02 Xionghu Luo <xionghuluo@tencent.com> + + PR target/100866 + * config/rs6000/altivec.md: (*altivec_vrl<VI_char>): Named to... + (altivec_vrl<VI_char>): ...this. + * config/rs6000/vsx.md (revb_<mode>): Call vspltish and vrlh when + target is Power8 and mode is V8HI. + +2022-11-01 David Seifert <soap@gentoo.org> + + * configure.ac: Add AC_CACHE_CHECK(..., gcc_cv_sys_sdt_h). + * configure: Regenerate. + +2022-11-01 Richard Purdie <richard.purdie@linuxfoundation.org> + + * file-prefix-map.cc (remap_filename): Allow remapping of relative paths. + +2022-11-01 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107490 + * range-op-float.cc (foperator_unordered_lt::op1_range): Handle + NANs. + (foperator_unordered_lt::op2_range): Same. + (foperator_unordered_le::op1_range): Same. + (foperator_unordered_le::op2_range): Same. + (foperator_unordered_gt::op1_range): Same. + (foperator_unordered_gt::op2_range): Same. + (foperator_unordered_ge::op1_range): Same. + (foperator_unordered_ge::op2_range): Same. + +2022-11-01 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/107497 + * tree-vrp.cc (remove_unreachable::remove_and_update_globals): + Check that ssa-name still exists before accessing it. + +2022-11-01 Andrew MacLeod <amacleod@redhat.com> + + * params.opt (param_vrp1_mode): Make ranger default. + +2022-11-01 Andrew MacLeod <amacleod@redhat.com> + + * tree-vrp.cc (class remove_unreachable): New. + (remove_unreachable::maybe_register_block): New. + (remove_unreachable::remove_and_update_globals): New. + (rvrp_folder::rvrp_folder): Initialize m_unreachable. + (rvrp_folder::post_fold_bb): Maybe register unreachable block. + (rvrp_folder::m_unreachable): New member. + (execute_ranger_vrp): Add final_pass flag, remove unreachables. + +2022-11-01 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::fill_block_cache): Allow + exit block to be specified. + (ranger_cache::range_from_dom): If exit block is specified, use + the immediate predecessor instead of the dominator to start. + * gimple-range.cc (gimple_ranger::range_on_exit): Allow query + for exit block. + +2022-11-01 Andrew MacLeod <amacleod@redhat.com> + + * value-range.cc (irange::intersect_nonzero_bits): If new + non-zero mask is the same as original, flag no change. + +2022-11-01 Alexander Monakov <amonakov@ispras.ru> + + PR target/87832 + * config/i386/znver.md (znver1_idiv): New automaton. + (znver1-idiv): New unit. + (znver1_idiv_DI): Correct unit and cycles in the reservation. + (znver1_idiv_SI): Ditto. + (znver1_idiv_HI): Ditto. + (znver1_idiv_QI): Ditto. + (znver1_idiv_mem_DI): Ditto. + (znver1_idiv_mem_SI): Ditto. + (znver1_idiv_mem_HI): Ditto. + (znver1_idiv_mem_QI): Ditto. + (znver3_idiv_DI): Ditto. + (znver3_idiv_SI): Ditto. + (znver3_idiv_HI): Ditto. + (znver3_idiv_QI): Ditto. + (znver3_idiv_mem_DI): Ditto. + (znver3_idiv_mem_SI): Ditto. + (znver3_idiv_mem_HI): Ditto. + (znver3_idiv_mem_QI): Ditto. + +2022-11-01 liuhongt <hongtao.liu@intel.com> + + PR target/107057 + * config/i386/sse.md (*vec_interleave_highv2df): Remove + constraint 1. + (*vec_interleave_lowv2df): Ditto. + (vec_concatv2df): Ditto. + (*avx512f_unpcklpd512<mask_name>): Ditto and renamed to .. + (avx512f_unpcklpd512<mask_name>): .. this. + (avx512f_movddup512<mask_name>): Change to define_insn. + (avx_movddup256<mask_name>): Ditto. + (*avx_unpcklpd256<mask_name>): Remove constraint 1 and renamed + to .. + (avx_unpcklpd256<mask_name>): .. this. + * config/i386/i386.cc (ix86_vec_interleave_v2df_operator_ok): + Disallow MEM_P (op1) && MEM_P (op2). + +2022-11-01 liuhongt <hongtao.liu@intel.com> + + PR target/55583 + * config/i386/i386.md (*x86_64_shld_1): Rename to .. + (x86_64_shld_1): .. this. + (*x86_shld_1): Rename to .. + (x86_shld_1): .. this. + (*x86_64_shrd_1): Rename to .. + (x86_64_shrd_1): .. this. + (*x86_shrd_1): Rename to .. + (x86_shrd_1): .. this. + (*x86_64_shld_shrd_1_nozext): New pre_reload splitter. + (*x86_shld_shrd_1_nozext): Ditto. + (*x86_64_shrd_shld_1_nozext): Ditto. + (*x86_shrd_shld_1_nozext): Ditto. + +2022-11-01 Cui,Lili <lili.cui@intel.com> + + * ipa-inline-analysis.cc (do_estimate_edge_time): Add function attribute + judgement for INLINE_HINT_known_hot hint. + +2022-10-31 Guillermo E. Martinez <guillermo.e.martinez@oracle.com> + + * btfout.cc (btf_calc_num_vbytes): Compute enumeration size depending of + enumerator type btf_enum{,64}. + (btf_asm_type): Update btf_kflag according to enumeration type sign + using dtd_enum_unsigned field for both: BTF_KIND_ENUM{,64}. + (btf_asm_enum_const): New argument to represent the size of + the BTF enum type, writing the enumerator constant value for + 32 bits, if it's 64 bits then explicitly writes lower 32-bits + value and higher 32-bits value. + (output_asm_btf_enum_list): Add enumeration size argument. + * ctfc.cc (ctf_add_enum): New argument to represent CTF enum + basic information. + (ctf_add_generic): Use of ei_{name. size, unsigned} to build the + dtd structure containing enumeration information. + (ctf_add_enumerator): Update comment mention support for BTF + enumeration in 64-bits. + * dwarf2ctf.cc (gen_ctf_enumeration_type): Extract signedness + for enumeration type and use it in ctf_add_enum. + * ctfc.h (ctf_dmdef): Update dmd_value to HOST_WIDE_INT to allow + use 32/64 bits enumerators. + information. + (ctf_dtdef): New field to describe enum signedness. + +2022-10-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins-bases.cc: Change constexpr back to CONSTEXPR. + * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Ditto. + * config/riscv/riscv-vector-builtins.cc (struct registered_function_hasher): Ditto. + * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): Ditto. + +2022-10-31 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-valu.md (fminmaxop): New iterator. + (<fexpander><mode>3): New define_expand. + (<fexpander><mode>3<exec>): Likewise. + (reduc_<fexpander>_scal_<mode>): Likewise. + * config/gcn/gcn.md (fexpander): New attribute. + +2022-10-31 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-valu.md (V64_SI): Delete iterator. + (V64_DI): Likewise. + (V64_1REG): Likewise. + (V64_INT_1REG): Likewise. + (V64_2REG): Likewise. + (V64_ALL): Likewise. + (V64_FP): Likewise. + (reduc_<reduc_op>_scal_<mode>): Use V_ALL. Use gen_vec_extract. + (fold_left_plus_<mode>): Use V_FP. + (*<reduc_op>_dpp_shr_<mode>): Use V_1REG. + (*<reduc_op>_dpp_shr_<mode>): Use V_DI. + (*plus_carry_dpp_shr_<mode>): Use V_INT_1REG. + (*plus_carry_in_dpp_shr_<mode>): Use V_SI. + (*plus_carry_dpp_shr_<mode>): Use V_DI. + (mov_from_lane63_<mode>): Delete. + (mov_from_lane63_<mode>): Delete. + * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Support partial vectors. + * config/gcn/gcn.md (unspec): Remove UNSPEC_MOV_FROM_LANE63. + +2022-10-31 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): + Set base_type as ARG_UNUSED. + +2022-10-31 Jakub Jelinek <jakub@redhat.com> + + * builtin-types.def (BT_COMPLEX_FLOAT16, BT_COMPLEX_FLOAT32, + BT_COMPLEX_FLOAT64, BT_COMPLEX_FLOAT128, BT_COMPLEX_FLOAT32X, + BT_COMPLEX_FLOAT64X, BT_COMPLEX_FLOAT128X, + BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16, + BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32, + BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64, + BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128, + BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X, + BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X, + BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X, + BT_FN_FLOAT16_COMPLEX_FLOAT16, BT_FN_FLOAT32_COMPLEX_FLOAT32, + BT_FN_FLOAT64_COMPLEX_FLOAT64, BT_FN_FLOAT128_COMPLEX_FLOAT128, + BT_FN_FLOAT32X_COMPLEX_FLOAT32X, BT_FN_FLOAT64X_COMPLEX_FLOAT64X, + BT_FN_FLOAT128X_COMPLEX_FLOAT128X, + BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16_COMPLEX_FLOAT16, + BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32_COMPLEX_FLOAT32, + BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64_COMPLEX_FLOAT64, + BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128_COMPLEX_FLOAT128, + BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X, + BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X, + BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X): New. + * builtins.def (CABS_TYPE, CACOSH_TYPE, CARG_TYPE, CASINH_TYPE, + CPOW_TYPE, CPROJ_TYPE): Define and undefine later. + (BUILT_IN_CABS, BUILT_IN_CACOSH, BUILT_IN_CACOS, BUILT_IN_CARG, + BUILT_IN_CASINH, BUILT_IN_CASIN, BUILT_IN_CATANH, BUILT_IN_CATAN, + BUILT_IN_CCOSH, BUILT_IN_CCOS, BUILT_IN_CEXP, BUILT_IN_CLOG, + BUILT_IN_CPOW, BUILT_IN_CPROJ, BUILT_IN_CSINH, BUILT_IN_CSIN, + BUILT_IN_CSQRT, BUILT_IN_CTANH, BUILT_IN_CTAN): Add + DEF_EXT_LIB_FLOATN_NX_BUILTINS. + * fold-const-call.cc (fold_const_call_sc, fold_const_call_cc, + fold_const_call_ccc): Add various CASE_CFN_*_FN: cases when + CASE_CFN_* is present. + * gimple-ssa-backprop.cc (backprop::process_builtin_call_use): + Likewise. + * builtins.cc (expand_builtin, fold_builtin_1): Likewise. + * fold-const.cc (negate_mathfn_p, tree_expr_finite_p, + tree_expr_maybe_signaling_nan_p, tree_expr_maybe_nan_p, + tree_expr_maybe_real_minus_zero_p, tree_call_nonnegative_warnv_p): + Likewise. + +2022-10-31 Jakub Jelinek <jakub@redhat.com> + + * builtin-types.def (BT_FN_BFLOAT16_BFLOAT16_BFLOAT16): New. + * builtins.def (BUILT_IN_NEXTAFTERF16B): New builtin. + * fold-const-call.cc (fold_const_call_sss): Handle + CFN_BUILT_IN_NEXTAFTERF16B. + +2022-10-31 Jakub Jelinek <jakub@redhat.com> + + * builtin-types.def (BT_FLOAT16_PTR, BT_FLOAT32_PTR, BT_FLOAT64_PTR, + BT_FLOAT128_PTR, BT_FLOAT32X_PTR, BT_FLOAT64X_PTR, BT_FLOAT128X_PTR): + New DEF_PRIMITIVE_TYPE. + (BT_FN_INT_FLOAT16, BT_FN_INT_FLOAT32, BT_FN_INT_FLOAT64, + BT_FN_INT_FLOAT128, BT_FN_INT_FLOAT32X, BT_FN_INT_FLOAT64X, + BT_FN_INT_FLOAT128X, BT_FN_LONG_FLOAT16, BT_FN_LONG_FLOAT32, + BT_FN_LONG_FLOAT64, BT_FN_LONG_FLOAT128, BT_FN_LONG_FLOAT32X, + BT_FN_LONG_FLOAT64X, BT_FN_LONG_FLOAT128X, BT_FN_LONGLONG_FLOAT16, + BT_FN_LONGLONG_FLOAT32, BT_FN_LONGLONG_FLOAT64, + BT_FN_LONGLONG_FLOAT128, BT_FN_LONGLONG_FLOAT32X, + BT_FN_LONGLONG_FLOAT64X, BT_FN_LONGLONG_FLOAT128X): New + DEF_FUNCTION_TYPE_1. + (BT_FN_FLOAT16_FLOAT16_FLOAT16PTR, BT_FN_FLOAT32_FLOAT32_FLOAT32PTR, + BT_FN_FLOAT64_FLOAT64_FLOAT64PTR, BT_FN_FLOAT128_FLOAT128_FLOAT128PTR, + BT_FN_FLOAT32X_FLOAT32X_FLOAT32XPTR, + BT_FN_FLOAT64X_FLOAT64X_FLOAT64XPTR, + BT_FN_FLOAT128X_FLOAT128X_FLOAT128XPTR, BT_FN_FLOAT16_FLOAT16_INT, + BT_FN_FLOAT32_FLOAT32_INT, BT_FN_FLOAT64_FLOAT64_INT, + BT_FN_FLOAT128_FLOAT128_INT, BT_FN_FLOAT32X_FLOAT32X_INT, + BT_FN_FLOAT64X_FLOAT64X_INT, BT_FN_FLOAT128X_FLOAT128X_INT, + BT_FN_FLOAT16_FLOAT16_INTPTR, BT_FN_FLOAT32_FLOAT32_INTPTR, + BT_FN_FLOAT64_FLOAT64_INTPTR, BT_FN_FLOAT128_FLOAT128_INTPTR, + BT_FN_FLOAT32X_FLOAT32X_INTPTR, BT_FN_FLOAT64X_FLOAT64X_INTPTR, + BT_FN_FLOAT128X_FLOAT128X_INTPTR, BT_FN_FLOAT16_FLOAT16_LONG, + BT_FN_FLOAT32_FLOAT32_LONG, BT_FN_FLOAT64_FLOAT64_LONG, + BT_FN_FLOAT128_FLOAT128_LONG, BT_FN_FLOAT32X_FLOAT32X_LONG, + BT_FN_FLOAT64X_FLOAT64X_LONG, BT_FN_FLOAT128X_FLOAT128X_LONG): New + DEF_FUNCTION_TYPE_2. + (BT_FN_FLOAT16_FLOAT16_FLOAT16_INTPTR, + BT_FN_FLOAT32_FLOAT32_FLOAT32_INTPTR, + BT_FN_FLOAT64_FLOAT64_FLOAT64_INTPTR, + BT_FN_FLOAT128_FLOAT128_FLOAT128_INTPTR, + BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_INTPTR, + BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_INTPTR, + BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_INTPTR): New DEF_FUNCTION_TYPE_3. + * builtins.def (ACOSH_TYPE, ATAN2_TYPE, ATANH_TYPE, COSH_TYPE, + FDIM_TYPE, HUGE_VAL_TYPE, HYPOT_TYPE, ILOGB_TYPE, LDEXP_TYPE, + LGAMMA_TYPE, LLRINT_TYPE, LOG10_TYPE, LRINT_TYPE, MODF_TYPE, + NEXTAFTER_TYPE, REMQUO_TYPE, SCALBLN_TYPE, SCALBN_TYPE, SINH_TYPE): + Define and undefine later. + (FMIN_TYPE, SQRT_TYPE): Undefine at a later line. + (INF_TYPE): Define at a later line. + (BUILT_IN_ACOSH, BUILT_IN_ACOS, BUILT_IN_ASINH, BUILT_IN_ASIN, + BUILT_IN_ATAN2, BUILT_IN_ATANH, BUILT_IN_ATAN, BUILT_IN_CBRT, + BUILT_IN_COSH, BUILT_IN_COS, BUILT_IN_ERFC, BUILT_IN_ERF, + BUILT_IN_EXP2, BUILT_IN_EXP, BUILT_IN_EXPM1, BUILT_IN_FDIM, + BUILT_IN_FMOD, BUILT_IN_FREXP, BUILT_IN_HYPOT, BUILT_IN_ILOGB, + BUILT_IN_LDEXP, BUILT_IN_LGAMMA, BUILT_IN_LLRINT, BUILT_IN_LLROUND, + BUILT_IN_LOG10, BUILT_IN_LOG1P, BUILT_IN_LOG2, BUILT_IN_LOGB, + BUILT_IN_LOG, BUILT_IN_LRINT, BUILT_IN_LROUND, BUILT_IN_MODF, + BUILT_IN_NEXTAFTER, BUILT_IN_POW, BUILT_IN_REMAINDER, BUILT_IN_REMQUO, + BUILT_IN_SCALBLN, BUILT_IN_SCALBN, BUILT_IN_SINH, BUILT_IN_SIN, + BUILT_IN_TANH, BUILT_IN_TAN, BUILT_IN_TGAMMA): Add + DEF_EXT_LIB_FLOATN_NX_BUILTINS. + (BUILT_IN_HUGE_VAL): Use HUGE_VAL_TYPE instead of INF_TYPE in + DEF_GCC_FLOATN_NX_BUILTINS. + * fold-const-call.cc (fold_const_call_ss): Add various CASE_CFN_*_FN: + cases when CASE_CFN_* is present. + (fold_const_call_sss): Likewise. + * builtins.cc (mathfn_built_in_2): Use CASE_MATHFN_FLOATN instead of + CASE_MATHFN for various builtins in SEQ_OF_CASE_MATHFN macro. + (builtin_with_linkage_p): Add CASE_FLT_FN_FLOATN_NX for various + builtins next to CASE_FLT_FN. + * fold-const.cc (tree_call_nonnegative_warnv_p): Add CASE_CFN_*_FN: + next to CASE_CFN_*: for various builtins. + * tree-call-cdce.cc (can_test_argument_range): Add + CASE_FLT_FN_FLOATN_NX next to CASE_FLT_FN for various builtins. + (edom_only_function): Likewise. + +2022-10-31 konglin1 <lingling.kong@intel.com> + + * common/config/i386/i386-common.cc + (OPTION_MASK_ISA2_AVXNECONVERT_SET, + OPTION_MASK_ISA2_AVXNECONVERT_UNSET): New. + (ix86_handle_option): Handle -mavxneconvert, unset + avxneconvert when avx2 is disabled. + * common/config/i386/i386-cpuinfo.h (processor_types): Add + FEATURE_AVXNECONVERT. + * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for + avxneconvert. + * common/config/i386/cpuinfo.h (get_available_features): + Detect avxneconvert. + * config.gcc: Add avxneconvertintrin.h + * config/i386/avxneconvertintrin.h: New. + * config/i386/avx512bf16vlintrin.h (_mm256_cvtneps_pbh): + Unified builtin with avxneconvert. + (_mm_cvtneps_pbh): Ditto. + * config/i386/cpuid.h (bit_AVXNECONVERT): New. + * config/i386/i386-builtin-types.def: Add + DEF_POINTER_TYPE (PCV8HF, V8HF, CONST), + DEF_POINTER_TYPE (PCV8BF, V8BF, CONST), + DEF_POINTER_TYPE (PCV16HF, V16HF, CONST), + DEF_POINTER_TYPE (PCV16BF, V16BF, CONST), + DEF_FUNCTION_TYPE (V4SF, PCBFLOAT16), + DEF_FUNCTION_TYPE (V4SF, PCFLOAT16), + DEF_FUNCTION_TYPE (V8SF, PCBFLOAT16), + DEF_FUNCTION_TYPE (V8SF, PCFLOAT16), + DEF_FUNCTION_TYPE (V4SF, PCV8BF), + DEF_FUNCTION_TYPE (V4SF, PCV8HF), + DEF_FUNCTION_TYPE (V8SF, PCV16HF), + DEF_FUNCTION_TYPE (V8SF, PCV16BF), + * config/i386/i386-builtin.def: Add new builtins. + * config/i386/i386-c.cc (ix86_target_macros_internal): Define + __AVXNECONVERT__. + * config/i386/i386-expand.cc (ix86_expand_special_args_builtin): + Handle V4SF_FTYPE_PCBFLOAT16,V8SF_FTYPE_PCBFLOAT16, V4SF_FTYPE_PCFLOAT16, + V8SF_FTYPE_PCFLOAT16,V4SF_FTYPE_PCV8BF, + V4SF_FTYPE_PCV8HF,V8SF_FTYPE_PCV16BF,V8SF_FTYPE_PCV16HF. + * config/i386/i386-isa.def : Add DEF_PTA(AVXNECONVERT) New. + * config/i386/i386-options.cc (isa2_opts): Add -mavxneconvert. + (ix86_valid_target_attribute_inner_p): Handle avxneconvert. + * config/i386/i386.md: Add attr avx512bf16vl and avxneconvert. + * config/i386/i386.opt: Add option -mavxneconvert. + * config/i386/immintrin.h: Inculde avxneconvertintrin.h. + * config/i386/sse.md (vbcstnebf162ps_<mode>): New define_insn. + (vbcstnesh2ps_<mode>): Ditto. + (vcvtnee<bf16_ph>2ps_<mode>):Ditto. + (vcvtneo<bf16_ph>2ps_<mode>):Ditto. + (vcvtneps2bf16_v4sf): Ditto. + (*vcvtneps2bf16_v4sf): Ditto. + (vcvtneps2bf16_v8sf): Ditto. + * doc/invoke.texi: Document -mavxneconvert. + * doc/extend.texi: Document avxneconvert. + * doc/sourcebuild.texi: Document target avxneconvert. + +2022-10-31 konglin1 <lingling.kong@intel.com> + + * config/i386/avx512bf16intrin.h (__attribute__): Change short to bf16. + (_mm_cvtsbh_ss): Ditto. + (_mm512_cvtne2ps_pbh): Ditto. + (_mm512_mask_cvtne2ps_pbh): Ditto. + (_mm512_maskz_cvtne2ps_pbh): Ditto. + * config/i386/avx512bf16vlintrin.h (__attribute__): Ditto. + (_mm256_cvtne2ps_pbh): Ditto. + (_mm256_mask_cvtne2ps_pbh): Ditto. + (_mm256_maskz_cvtne2ps_pbh): Ditto. + (_mm_cvtne2ps_pbh): Ditto. + (_mm_mask_cvtne2ps_pbh): Ditto. + (_mm_maskz_cvtne2ps_pbh): Ditto. + (_mm_cvtness_sbh): Ditto. + * config/i386/i386-builtin-types.def (V8BF): Add new + DEF_VECTOR_TYPE for BFmode. + (V16BF): Ditto. + (V32BF): Ditto. + * config/i386/i386-builtin.def (BDESC): Fixed builtins. + * config/i386/i386-expand.cc (ix86_expand_args_builtin): Changed + avx512bf16 ix86_builtin_func_type included HI to BF. + * config/i386/immintrin.h: Add SSE2 depend for avx512bf16. + * config/i386/sse.md (TARGET_AVX512VL): Changed HI vector to BF + vector. + (avx512f_cvtneps2bf16_v4sf): New define_expand. + (*avx512f_cvtneps2bf16_v4sf): New define_insn. + (avx512f_cvtneps2bf16_v4sf_maskz):Ditto. + (avx512f_cvtneps2bf16_v4sf_mask): Ditto. + (avx512f_cvtneps2bf16_v4sf_mask_1): Ditto. + +2022-10-31 liuhongt <hongtao.liu@intel.com> + + PR target/107261 + * config/i386/i386-modes.def (VECTOR_MODE): Support V2BFmode. + * config/i386/i386.cc (classify_argument): Handle V4BFmode and + V2BFmode. + (ix86_convert_const_vector_to_integer): Ditto. + * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Remove + V2BFmode. + (VALID_SSE2_REG_MODE): Add V4BFmode and V2BFmode. + (VALID_MMX_REG_MODE): Add V4BFmode. + * config/i386/i386.md (mode): Add V4BF and V2BF. + (MODE_SIZE): Ditto. + * config/i386/mmx.md (MMXMODE) Add V4BF. + (V_32): Add V2BF. + (V_16_32_64): Add V4BF and V2BF. + (mmxinsnmode): Add V4BF and V2BF. + (*mov<mode>_internal): Hanlde V4BFmode and V2BFmode. + +2022-10-29 Eric Botcazou <ebotcazou@adacore.com> + + * configure.ac (sjlj-exceptions): Restore dropped line. + * configure: Regenerate. + +2022-10-29 Eric Botcazou <ebotcazou@adacore.com> + + * alias.cc (init_alias_analysis): Do not record sets to the hard + frame pointer if the frame pointer has not been eliminated. + +2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org> + + * config/darwin-d.cc (TARGET_D_MINFO_START_NAME): Rename to ... + (TARGET_D_MINFO_SECTION_START): ...this. + (TARGET_D_MINFO_END_NAME): Rename to ... + (TARGET_D_MINFO_SECTION_END): ... this. + * config/elfos.h (TARGET_D_MINFO_SECTION): Remove. + (TARGET_D_MINFO_START_NAME): Remove. + (TARGET_D_MINFO_END_NAME): Remove. + * config/i386/cygwin-d.cc (TARGET_D_MINFO_SECTION): Remove. + (TARGET_D_MINFO_START_NAME): Remove. + (TARGET_D_MINFO_END_NAME): Remove. + * config/i386/winnt-d.cc (TARGET_D_MINFO_SECTION): Remove. + (TARGET_D_MINFO_START_NAME): Remove. + (TARGET_D_MINFO_END_NAME): Remove. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in (TARGET_D_MINFO_START_NAME): Rename to ... + (TARGET_D_MINFO_SECTION_START): ...this. + (TARGET_D_MINFO_END_NAME): Rename to ... + (TARGET_D_MINFO_SECTION_END): ...this. + +2022-10-29 Iain Buclaw <ibuclaw@gdcproject.org> + + * config.gcc: Split out glibc-d.o into linux-d.o, kfreebsd-d.o, + kopensolaris-d.o, and gnu-d.o. Split out cygwin-d.o from winnt-d.o. + * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Remove. + * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove. + * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): Remove. + * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove. + * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Remove. + * config/i386/t-cygming: Add cygwin-d.o. + * config/i386/winnt-d.cc (winnt_d_os_builtins): Only add + MinGW-specific version condition. + * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove. + * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove. + * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Remove. + * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove. + * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove. + * config/t-glibc: Remove glibc-d.o, add gnu-d.o, kfreebsd-d.o, + kopensolaris-d.o. + * config/t-linux: Add linux-d.o. + * config/glibc-d.cc: Remove file. + * config/gnu-d.cc: New file. + * config/i386/cygwin-d.cc: New file. + * config/kfreebsd-d.cc: New file. + * config/kopensolaris-d.cc: New file. + * config/linux-d.cc: New file. + +2022-10-29 Jeff Law <jeffreyalaw@gmail.com> + + * config/h8300/h8300.cc (pre_incdec_with_reg): Make reg argument + an unsigned int + * config/h8300/h8300-protos.h (pre_incdec_with_reg): Adjust prototype. + +2022-10-28 Joseph Myers <joseph@codesourcery.com> + + * config/aarch64/aarch64.cc (aarch64_setup_incoming_varargs): + Check TYPE_NO_NAMED_ARGS_STDARG_P. + * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Likewise. + * config/arc/arc.cc (arc_setup_incoming_varargs): Likewise. + * config/arm/arm.cc (arm_setup_incoming_varargs): Likewise. + * config/csky/csky.cc (csky_setup_incoming_varargs): Likewise. + * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): + Likewise. + * config/fr30/fr30.cc (fr30_setup_incoming_varargs): Likewise. + * config/frv/frv.cc (frv_setup_incoming_varargs): Likewise. + * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Likewise. + * config/i386/i386.cc (ix86_setup_incoming_varargs): Likewise. + * config/ia64/ia64.cc (ia64_setup_incoming_varargs): Likewise. + * config/loongarch/loongarch.cc + (loongarch_setup_incoming_varargs): Likewise. + * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Likewise. + * config/mcore/mcore.cc (mcore_setup_incoming_varargs): Likewise. + * config/mips/mips.cc (mips_setup_incoming_varargs): Likewise. + * config/mmix/mmix.cc (mmix_setup_incoming_varargs): Likewise. + * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Likewise. + * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Likewise. + * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Likewise. + * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Likewise. + * config/sh/sh.cc (sh_setup_incoming_varargs): Likewise. + * config/visium/visium.cc (visium_setup_incoming_varargs): + Likewise. + * config/vms/vms-c.cc (vms_c_common_override_options): Do not set + flag_allow_parameterless_variadic_functions. + * doc/invoke.texi (-fallow-parameterless-variadic-functions): Do + not document option. + * function.cc (assign_parms): Call assign_parms_setup_varargs for + TYPE_NO_NAMED_ARGS_STDARG_P case. + * ginclude/stdarg.h [__STDC_VERSION__ > 201710L] (va_start): Make + variadic macro. Pass second argument of 0 to __builtin_va_start. + * target.def (setup_incoming_varargs): Update documentation. + * doc/tm.texi: Regenerate. + * tree-core.h (struct tree_type_common): Add + no_named_args_stdarg_p. + * tree-streamer-in.cc (unpack_ts_type_common_value_fields): Unpack + TYPE_NO_NAMED_ARGS_STDARG_P. + * tree-streamer-out.cc (pack_ts_type_common_value_fields): Pack + TYPE_NO_NAMED_ARGS_STDARG_P. + * tree.cc (type_cache_hasher::equal): Compare + TYPE_NO_NAMED_ARGS_STDARG_P. + (build_function_type): Add argument no_named_args_stdarg_p. + (build_function_type_list_1, build_function_type_array_1) + (reconstruct_complex_type): Update calls to build_function_type. + (stdarg_p, prototype_p): Return true for (...) functions. + (gimple_canonical_types_compatible_p): Compare + TYPE_NO_NAMED_ARGS_STDARG_P. + * tree.h (TYPE_NO_NAMED_ARGS_STDARG_P): New. + (build_function_type): Update prototype. + +2022-10-28 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR tree-optimization/107346 + * tree-vect-data-refs.cc (vect_check_gather_scatter): Reject offsets + that aren't multiples of BITS_PER_UNIT. + +2022-10-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107407 + * tree-ssa-dse.cc (dse_classify_store): Perform backedge + varying index check when collecting PHI uses rather than + after optimizing processing of the candidate defs. + +2022-10-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107447 + * tree-ssa-loop-im.cc (determine_max_movement): Do not + hoist returns-twice calls. + +2022-10-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107435 + * tree-vect-loop.cc (vectorizable_recurr): Convert initial + value to vector component type. + +2022-10-28 Julian Brown <julian@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/90115 + * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not + privatization candidates. + +2022-10-28 Martin Liska <mliska@suse.cz> + + PR sanitizer/107298 + * doc/invoke.texi: Document sanitizers can trigger warnings. + +2022-10-28 Thomas Schwinge <thomas@codesourcery.com> + + * doc/makefile.texi (Makefile Targets): Document + 'distclean-stage[N]'. + +2022-10-28 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (range_tests_floats): Use HONOR_INFINITIES. + +2022-10-27 Eric Botcazou <ebotcazou@adacore.com> + + * config/aarch64/aarch64.h (DONT_USE_BUILTIN_SETJMP): Delete. + +2022-10-27 H.J. Lu <hjl.tools@gmail.com> + + PR target/107172 + * config/i386/i386.md (UNSPEC_CC_NE): New. + Replace ne:CCC/ne:CCO with UNSPEC_CC_NE in neg patterns. + +2022-10-27 Andrew Pinski <apinski@marvell.com> + + * tree-ssa-phiopt.cc: Include tree-ssa-dce.h + (replace_phi_edge_with_variable): + New argument, dce_ssa_names. Call simple_dce_from_worklist. + (match_simplify_replacement): If we inserted a sequence, + mark the lhs of the new sequence to be possible dce. + Always move the statement and mark the lhs (if it is a name) + as possible to remove. + +2022-10-27 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-protos.h: Replace constexpr with + CONSTEXPR. + * config/aarch64/aarch64-sve-builtins-base.cc: Likewise. + * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. + * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise. + * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. + * config/aarch64/aarch64-sve-builtins.cc: Likewise. + * config/aarch64/aarch64.cc: Likewise. + * config/aarch64/driver-aarch64.cc: Likewise + +2022-10-27 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107394 + * value-range-storage.cc (frange_storage_slot::get_frange): Use + frange constructor. + +2022-10-27 Thomas Schwinge <thomas@codesourcery.com> + + * optc-save-gen.awk: Clarify 'Init' option property usage for + streaming optimization. + +2022-10-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> + Yvan ROUX <yvan.roux@foss.st.com> + + * ira.cc: Resize array after reg number increased. + +2022-10-27 Jiawei <jiawei@iscas.ac.cn> + Sinan Lin <sinan@isrc.iscas.ac.cn> + + * config/riscv/constraints.md (TARGET_ZFINX ? GR_REGS): Set GPRS + use while Zfinx is enable. + * config/riscv/riscv.cc (riscv_hard_regno_mode_ok): Limit odd + registers use when Zdinx enable in RV32 cases. + (riscv_option_override): New target enable MASK_FDIV. + (riscv_libgcc_floating_mode_supported_p): New error info when + use incompatible arch&abi. + (riscv_excess_precision): New target enable FLOAT16. + +2022-10-27 Jiawei <jiawei@iscas.ac.cn> + + * config/riscv/iterators.md (TARGET_ZFINX):New target. + (TARGET_ZDINX): Ditto. + (TARGET_ZHINX): Ditto. + * config/riscv/riscv-builtins.cc (AVAIL): Ditto. + (riscv_atomic_assign_expand_fenv): Ditto. + * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Ditto. + * config/riscv/riscv.md: Ditto. + +2022-10-27 Jiawei <jiawei@iscas.ac.cn> + Sinan Lin <sinan@isrc.iscas.ac.cn> + + * common/config/riscv/riscv-common.cc: New extensions. + * config/riscv/arch-canonicalize: New imply relations. + * config/riscv/riscv-opts.h (MASK_ZFINX): New mask. + (MASK_ZDINX): Ditto. + (MASK_ZHINX): Ditto. + (MASK_ZHINXMIN): Ditto. + (TARGET_ZFINX): New target. + (TARGET_ZDINX): Ditto. + (TARGET_ZHINX): Ditto. + (TARGET_ZHINXMIN): Ditto. + * config/riscv/riscv.opt: New target variable. + +2022-10-26 David Faust <david.faust@oracle.com> + + * config/bpf/bpf.cc: Support __builtin_preserve_field_info. + (enum bpf_builtins): Add new builtin. + (bpf_init_builtins): Likewise. + (bpf_core_field_info): New function. + (bpf_expand_builtin): Accomodate new builtin. Refactor adding new + relocation to... + (maybe_make_core_relo): ... here. New function. + (bpf_resolve_overloaded_builtin): Accomodate new builtin. + (bpf_core_newdecl): Likewise. + (bpf_core_walk): Likewise. + (bpf_core_is_maybe_aggregate_access): Improve logic. + (struct core_walk_data): New. + * config/bpf/coreout.cc (bpf_core_reloc_add): Allow adding different + relocation kinds. + * config/bpf/coreout.h: Analogous change. + * doc/extend.texi: Document BPF __builtin_preserve_field_info. + +2022-10-26 Marek Polacek <polacek@redhat.com> + + PR c++/106393 + * doc/invoke.texi: Document -Wdangling-reference. + +2022-10-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (movdi): + Copy operands[0...1] to ops[0...3] and then use the latter before + calling xtensa_split_DI_reg_imm() and emitting insns. + +2022-10-26 Alexander Monakov <amonakov@ispras.ru> + + PR other/107353 + * ipa-visibility.cc (function_and_variable_visibility): + Conditionally upgrade TLS model instead of asserting. + +2022-10-26 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (fold_using_range::fold_stmt): Check if + stmt is non-negative and adjust the range. + +2022-10-26 Martin Liska <mliska@suse.cz> + + * common/config/i386/cpuinfo.h (has_cpu_feature): Add comment. + (reset_cpu_feature): New. + (get_zhaoxin_cpu): Use reset_cpu_feature. + +2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.cc (riscv_expand_epilogue): Fix statement. + +2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + PR target/107357 + * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Set to minimum size. + (ADJUST_NUNITS): Adjust according to -march. + (ADJUST_BYTESIZE): Ditto. + * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): + Remove. + (riscv_v_ext_vector_mode_p): Change function implementation. + * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher): + Change to riscv_v_ext_vector_mode_p. + (register_builtin_type): Ditto. + * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): Change to enabled + modes. + (ENTRY): Ditto. + (riscv_v_ext_enabled_vector_mode_p): Remove. + (riscv_v_adjust_nunits): New function. + (riscv_vector_mode_supported_p): Use riscv_v_ext_vector_mode_p instead. + * config/riscv/riscv.h (riscv_v_adjust_nunits): New function. + +2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config.gcc (riscv*): Add riscv-v.o to extra_objs. + * config/riscv/constraints.md (vu): New constraint. + (vi): Ditto. + (Wc0): Ditto. + (Wc1): Ditto. + * config/riscv/predicates.md (vector_length_operand): New. + (reg_or_mem_operand): Ditto. + (vector_move_operand): Ditto. + (vector_mask_operand): Ditto. + (vector_merge_operand): Ditto. + * config/riscv/riscv-protos.h (riscv_regmode_natural_size) New. + (riscv_vector::const_vec_all_same_in_range_p): Ditto. + (riscv_vector::legitimize_move): Ditto. + (tail_policy): Ditto. + (mask_policy): Ditto. + * config/riscv/riscv-v.cc: New. + * config/riscv/riscv-vector-builtins-bases.cc + (vsetvl::expand): Refactor how LMUL encoding. + * config/riscv/riscv.cc (riscv_print_operand): Update how LMUL + print and mask operand print. + (riscv_regmode_natural_size): New. + * config/riscv/riscv.h (REGMODE_NATURAL_SIZE): New. + * config/riscv/riscv.md (mode): Add vector modes. + * config/riscv/t-riscv (riscv-v.o) New. + * config/riscv/vector-iterators.md: New. + * config/riscv/vector.md (vundefined<mode>): New. + (mov<mode>): New. + (*mov<mode>): New. + (@vsetvl<mode>_no_side_effects): New. + (@pred_mov<mode>): New. + +2022-10-26 Monk Chiang <monk.chiang@sifive.com> + + * common/config/riscv/riscv-common.cc (riscv_ext_version_table): + Add svinval and svnapot extension. + (riscv_ext_flag_table): Ditto. + * config/riscv/riscv-opts.h (MASK_SVINVAL): New. + (MASK_SVNAPOT): Ditto. + (TARGET_SVINVAL): Ditto. + (TARGET_SVNAPOT): Ditto. + * config/riscv/riscv.opt (riscv_sv_subext): New. + +2022-10-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-modes.def: Adjust table indentation in commnet. + +2022-10-26 Martin Liska <mliska@suse.cz> + + * configure: Regenerate. + +2022-10-26 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Use HONOR_*. + (frange::verify_range): Same. + * value-range.h (frange_val_min): Same. + (frange_val_max): Same. + +2022-10-26 Jiufu Guo <guojiufu@linux.ibm.com> + + PR target/106460 + * config/rs6000/rs6000.cc (rs6000_cannot_force_const_mem): Return true + for HIGH code rtx. + +2022-10-26 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc (riscv_ext_version_table): + Add `h`. + (riscv_supported_std_ext): Ditto. + (multi_letter_subset_rank): Remove `h`. + (riscv_subset_list::parse_std_ext): Handle `h` as single letter + extension. + (riscv_subset_list::parse): Ditto. + +2022-10-25 Eugene Rozenfeld <erozen@microsoft.com> + + * auto-profile.cc (get_combined_location): Include discriminator in the + returned combined location. + (read_function_instance): Read discriminators from profiles. + +2022-10-25 H.J. Lu <hjl.tools@gmail.com> + + PR target/107304 + * expr.cc (get_inner_reference): Always use TYPE_MODE for vector + field with vector raw mode. + +2022-10-25 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000.md (CCEITHER): Delete. + (CCANY): New. + (un): Delete. + (isel_<un>signed_<GPR:mode>): Rename to... + (isel_<CCANY:mode>_<GPR:mode>): ... this. Adjust. + (*isel_reversed_<un>signed_<GPR:mode>): Rename to... + (*isel_reversed_<CCANY:mode>_<GPR:mode>): ... this. Adjust. + (setbc_<un>signed_<GPR:mode>): Rename to... + (setbc_<CCANY:mode>_<GPR:mode>C): ... this. Adjust." + (*setbcr_<un>signed_<GPR:mode>): Rename to ... + (*setbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust. + (*setnbc_<un>signed_<GPR:mode>): Rename to ... + (*setnbc_<CCANY:mode>_<GPR:mode>): ... this. Adjust. + (*setnbcr_<un>signed_<GPR:mode>): Rename to ... + (*setnbcr_<CCANY:mode>_<GPR:mode>): ... this. Adjust. + (eq<mode>3 for GPR): Adjust. + (ne<mode>3 for GPR): Adjust. + * config/rs6000/rs6000-string.cc (do_isel): Adjust. + * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Adjust. + +2022-10-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107176 + PR tree-optimization/66375 + PR tree-optimization/42512 + * tree-scalar-evolution.cc (follow_ssa_edge_expr): Revert + the PR66375 fix, do not not associate PLUS_EXPR to be able + to use tail-recursion. + (follow_ssa_edge_binary): Likewise. + (interpret_loop_phi): Revert PR42512 fix, do not throw + away analyze_evolution_in_loop result after the fact. + (follow_ssa_edge_expr): When reaching halting_phi initalize + the evolution to the symbolic value of the PHI result. + (add_to_evolution_1): When adding the first evolution verify + we can handle the expression wrapping the symbolic evolution + and replace that in full using the initial condition. + (class scev_dfs): New, contains ... + (follow_ssa_edge_expr, follow_ssa_edge_binary, + follow_ssa_edge_in_condition_phi_branch, + follow_ssa_edge_in_condition_phi, + follow_ssa_edge_inner_loop_phi, + add_to_evolution, add_to_evolution_1): ... these with + loop and halting_phi arguments in class data. + (scev_dfs::get_ev): New toplevel DFS entry, start with + a chrec_dont_know evolution. + (analyze_evolution_in_loop): Use scev_dfs. + +2022-10-25 Eric Botcazou <ebotcazou@adacore.com> + + * profile.cc (branch_prob): Be prepared for ignored functions with + DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION. + +2022-10-25 Richard Biener <rguenther@suse.de> + + * tree-scalar-evolution.cc (follow_ssa_edge_expr): Move + STRIP_USELESS_TYPE_CONVERSIONS to where it matters. + +2022-10-25 Tejas Joshi <TejasSanjay.Joshi@amd.com> + + * common/config/i386/i386-common.cc (processor_alias_table): Use + CPU_ZNVER3 for znver4. + * config/i386/znver.md: Remove znver4 reservations. + +2022-10-25 Jakub Jelinek <jakub@redhat.com> + + * gimplify.cc (gimple_boolify): Fix comment typos, prduce -> produce + and There -> These. + +2022-10-25 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107368 + * gimplify.cc (gimplify_call_expr): For complex IFN_ASSUME + conditions call gimple_boolify on the condition. + +2022-10-25 YunQiang Su <yunqiang.su@cipunited.com> + + * config.gcc: add -with-compact-branches=policy build option. + * doc/install.texi: Likewise. + * config/mips/mips.h: Likewise. + +2022-10-25 YunQiang Su <yunqiang.su@cipunited.com> + + * config/mips/mips.cc (mips_option_override): not trigger error + for compact-branches=always for pre-R6. + * config/mips/mips.h (TARGET_RTP_PIC): not trigger error for + compact-branches=always for pre-R6. + (TARGET_CB_NEVER): Likewise. + (TARGET_CB_ALWAYS): Likewise. + (struct mips_cpu_info): define macros for compact branch policy. + * doc/invoke.texi: Document "always" with pre-R6. + +2022-10-25 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107369 + * gimplify.cc (gimplify_call_expr): If seen_error, handle complex + IFN_ASSUME the same as for -O0. + +2022-10-25 YunQiang Su <yunqiang.su@cipunited.com> + + * configure.ac: AC_DEFINE(ENABLE_MULTIARCH, 1) + * configure: Regenerated. + * config.in: Regenerated. + * config/mips/mips.h: don't define STANDARD_STARTFILE_PREFIX_1 + if ENABLE_MULTIARCH is defined. + * config/mips/t-linux64: define correct multiarch path when + multiarch is enabled. + +2022-10-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/100756 + * tree-ssa-loop-niter.cc (expand_simple_operations): Also + expand multiplications by invariants. + +2022-10-25 Kewen Lin <linkw@linux.ibm.com> + + PR tree-optimization/107338 + * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Move + shfit_n calculation before the adjustments for widening loads. + +2022-10-25 Martin Liska <mliska@suse.cz> + + * common/config/riscv/riscv-common.cc + (riscv_get_valid_option_values): Get out of ifdef. + +2022-10-25 Martin Liska <mliska@suse.cz> + + PR target/107364 + * common/config/i386/i386-cpuinfo.h (enum processor_vendor): + Fix pedantic warning. + +2022-10-24 Martin Liska <mliska@suse.cz> + + PR analyzer/107366 + * diagnostic-format-sarif.cc + (sarif_builder::maybe_make_physical_location_object): Gracefully + reject locations with NULL filename. + +2022-10-24 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106300 + * doc/invoke.texi (Static Analyzer Options): Add "pipe" and + "pipe2" to the list of functions the analyzer has hardcoded + knowledge of. + +2022-10-24 Jason Merrill <jason@redhat.com> + + * tree.h (build_string_literal): New one-argument overloads that + take tree (identifier) and const char *. + * builtins.cc (fold_builtin_FILE) + (fold_builtin_FUNCTION) + * gimplify.cc (gimple_add_init_for_auto_var) + * vtable-verify.cc (verify_bb_vtables): Simplify calls. + +2022-10-24 Martin Liska <mliska@suse.cz> + + PR target/107364 + * common/config/i386/i386-cpuinfo.h (enum processor_vendor): + Reorder enum values as BUILTIN_VENDOR_MAX should not point + in the middle of the valid enum values. + +2022-10-24 Marek Polacek <polacek@redhat.com> + + PR c++/107276 + * tree.cc (maybe_wrap_with_location): Don't create a location wrapper + when the type is erroneous. + +2022-10-24 Wilco Dijkstra <wdijkstr@arm.com> + + PR target/106583 + * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate) + Add support for a bitmask immediate with 2 MOVKs. + (aarch64_check_bitmask): New function after refactorization. + (aarch64_bitmask_imm): Simplify replication of small modes. + Split function into 64-bit only version for efficiency. + (aarch64_move_imm): Move near other immediate functions. + (aarch64_uimm12_shift): Likewise. + (aarch64_clamp_to_uimm12_shift): Likewise. + (aarch64_movk_shift): Likewise. + (aarch64_replicate_bitmask_imm): Likewise. + (aarch64_and_split_imm1): Likewise. + (aarch64_and_split_imm2): Likewise. + (aarch64_and_bitmask_imm): Likewise. + (aarch64_movw_imm): Likewise. + +2022-10-24 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107355 + * range-op-float.cc (foperator_abs::op1_range): Handle NAN. + +2022-10-24 Tobias Burnus <tobias@codesourcery.com> + + PR middle-end/107236 + * omp-expand.cc (expand_omp_target): Set calls_declare_variant_alt + in DECL_CONTEXT and not to cfun->decl. + * cgraphclones.cc (cgraph_node::create_clone): Copy also the + node's calls_declare_variant_alt value. + +2022-10-24 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc (riscv_tunes): New. + (riscv_get_valid_option_values): New. + (TARGET_GET_VALID_OPTION_VALUES): New. + * config/riscv/riscv-cores.def (RISCV_TUNE): New, define options + for tune here. + (RISCV_CORE): Fix comment. + * config/riscv/riscv.cc (riscv_tune_info_table): Move definition to + riscv-cores.def. + +2022-10-24 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107365 + * value-range.cc (frange::verify_range): Predicate NAN check in + VARYING range on HONOR_NANS instead of flag_finite_math_only. + (range_tests_floats): Same. + (range_tests_floats_various): New. + (range_tests): Call range_tests_floats_various. + +2022-10-24 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> + Yvan ROUX <yvan.roux@foss.st.com> + + * lto-wrapper.cc: Quote paths in makefile. + +2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.cc (riscv_legitimize_move): Support (set (mem) (const_poly_int)). + +2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins-bases.cc: Replace CONSTEXPR + with constexpr throughout. + * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Likewise. + * config/riscv/riscv-vector-builtins.cc + (struct registered_function_hasher): Likewise. + * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): + Likewise. + +2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-switch.def (ENTRY): Remove unused TI/TF vector modes. + +2022-10-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.h (REG_CLASS_CONTENTS): Fix ALL_REGS. + +2022-10-22 Michael Eager <eager@eagercon.com> + + * config/microblaze/microblaze.cc + (microblaze_legitimize_address): Initialize 'reg' to NULL, check for NULL. + (microblaze_address_insns): Replace abort() with gcc_unreachable(). + (print_operand_address): Same. + (microblaze_expand_move): Initialize 'p1' to NULL, check for NULL. + (get_branch_target): Replace abort() with gcc_unreachable(). + +2022-10-22 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (range_tests_floats): Predicate [-Inf, +Inf] test + with !flag_finite_math_only. + +2022-10-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_conditional_register_usage): + Remove register A0 from FIXED_REGS if the CALL0 ABI. + (xtensa_expand_epilogue): Change to emit '(use (reg:SI A0_REG))' + unconditionally after restoring callee-saved registers for + sibling-call functions, in order to prevent misleading that + register A0 is free to use. + +2022-10-21 Jakub Jelinek <jakub@redhat.com> + + PR target/107322 + * config/i386/i386-expand.cc (ix86_prepare_fp_compare_args): For + BFmode comparisons promote arguments to SFmode and recurse. + (ix86_expand_int_movcc, ix86_expand_fp_movcc): Return false early + if comparison operands are BFmode and operands[1] is not + ix86_fp_comparison_operator. + +2022-10-21 Tejas Joshi <TejasSanjay.Joshi@amd.com> + + * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver4. + * common/config/i386/i386-common.cc (processor_names): Add znver4. + (processor_alias_table): Add znver4 and modularize old znvers. + * common/config/i386/i386-cpuinfo.h (processor_subtypes): + AMDFAM19H_ZNVER4. + * config.gcc (x86_64-*-* |...): Likewise. + * config/i386/driver-i386.cc (host_detect_local_cpu): Let + -march=native recognize znver4 cpus. + * config/i386/i386-c.cc (ix86_target_macros_internal): Add znver4. + * config/i386/i386-options.cc (m_ZNVER4): New definition. + (m_ZNVER): Include m_ZNVER4. + (processor_cost_table): Add znver4. + * config/i386/i386.cc (ix86_reassociation_width): Likewise. + * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER4. + (PTA_ZNVER1): New definition. + (PTA_ZNVER2): Likewise. + (PTA_ZNVER3): Likewise. + (PTA_ZNVER4): Likewise. + * config/i386/i386.md (define_attr "cpu"): Add znver4 and rename + md file. + * config/i386/x86-tune-costs.h (znver4_cost): New definition. + * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver4. + (ix86_adjust_cost): Likewise. + * config/i386/znver1.md: Rename to znver.md. + * config/i386/znver.md: Add new reservations for znver4. + * doc/extend.texi: Add details about znver4. + * doc/invoke.texi: Likewise. + +2022-10-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107323 + * tree-loop-distribution.cc (pg_unmark_merged_alias_ddrs): + New function. + (loop_distribution::break_alias_scc_partitions): Revert + postorder save/restore from the PR94125 fix. Instead + make sure to not ignore edges from SCCs we are going to + merge. + +2022-10-21 Monk Chiang <monk.chiang@sifive.com> + + * config/riscv/riscv.md: Add atomic type attribute. + * config/riscv/sync.md: Add atomic type for atomic instructions. + +2022-10-21 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/54346 + * match.pd ((vec_perm (vec_perm@0 @1 @2 VECTOR_CST) @0 VECTOR_CST)): + Optimize nested VEC_PERM_EXPRs even if target can't handle the + new one provided we don't increase number of VEC_PERM_EXPRs the + target can't handle. + +2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config.gcc: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o + * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New macro. + (DEF_RVV_FUNCTION): Ditto. + (handle_pragma_vector): Add intrinsic framework. + * config/riscv/riscv.cc (riscv_print_operand): Add operand print for vsetvl/vsetvlmax. + * config/riscv/riscv.md: include vector.md. + * config/riscv/t-riscv: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o + * config/riscv/riscv-vector-builtins-bases.cc: New file. + * config/riscv/riscv-vector-builtins-bases.h: New file. + * config/riscv/riscv-vector-builtins-functions.def: New file. + * config/riscv/riscv-vector-builtins-shapes.cc: New file. + * config/riscv/riscv-vector-builtins-shapes.h: New file. + * config/riscv/riscv-vector-builtins-types.def: New file. + * config/riscv/vector.md: New file. + +2022-10-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config.gcc: Add gt files since function_instance is GTY ((user)). + * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV intrinsic framework. + (riscv_builtin_decl): Ditto. + (riscv_expand_builtin): Ditto. + * config/riscv/riscv-protos.h (builtin_decl): New function. + (expand_builtin): Ditto. + (enum riscv_builtin_class): New enum to classify RVV intrinsic and RISC-V general built-in. + * config/riscv/riscv-vector-builtins.cc (class GTY): New declaration. + (struct registered_function_hasher): New struct. + (DEF_RVV_OP_TYPE): New macro. + (DEF_RVV_TYPE): Ditto. + (DEF_RVV_PRED_TYPE): Ditto. + (GTY): New declaration. + (add_attribute): New function. + (check_required_extensions): Ditto. + (rvv_arg_type_info::get_tree_type): Ditto. + (function_instance::function_instance): Ditto. + (function_instance::operator==): Ditto. + (function_instance::any_type_float_p): Ditto. + (function_instance::get_return_type): Ditto. + (function_instance::get_arg_type): Ditto. + (function_instance::hash): Ditto. + (function_instance::call_properties): Ditto. + (function_instance::reads_global_state_p): Ditto. + (function_instance::modifies_global_state_p): Ditto. + (function_instance::could_trap_p): Ditto. + (function_builder::function_builder): Ditto. + (function_builder::~function_builder): Ditto. + (function_builder::allocate_argument_types): Ditto. + (function_builder::register_function_group): Ditto. + (function_builder::append_name): Ditto. + (function_builder::finish_name): Ditto. + (function_builder::get_attributes): Ditto. + (function_builder::add_function): Ditto. + (function_builder::add_unique_function): Ditto. + (function_call_info::function_call_info): Ditto. + (function_expander::function_expander): Ditto. + (function_expander::add_input_operand): Ditto. + (function_expander::generate_insn): Ditto. + (registered_function_hasher::hash): Ditto. + (registered_function_hasher::equal): Ditto. + (builtin_decl): Ditto. + (expand_builtin): Ditto. + (gt_ggc_mx): Define for using GCC garbage collect. + (gt_pch_nx): Define for using GCC garbage collect. + * config/riscv/riscv-vector-builtins.def (DEF_RVV_OP_TYPE): New macro. + (DEF_RVV_PRED_TYPE): Ditto. + (vbool64_t): Add suffix. + (vbool32_t): Ditto. + (vbool16_t): Ditto. + (vbool8_t): Ditto. + (vbool4_t): Ditto. + (vbool2_t): Ditto. + (vbool1_t): Ditto. + (vint8mf8_t): Ditto. + (vuint8mf8_t): Ditto. + (vint8mf4_t): Ditto. + (vuint8mf4_t): Ditto. + (vint8mf2_t): Ditto. + (vuint8mf2_t): Ditto. + (vint8m1_t): Ditto. + (vuint8m1_t): Ditto. + (vint8m2_t): Ditto. + (vuint8m2_t): Ditto. + (vint8m4_t): Ditto. + (vuint8m4_t): Ditto. + (vint8m8_t): Ditto. + (vuint8m8_t): Ditto. + (vint16mf4_t): Ditto. + (vuint16mf4_t): Ditto. + (vint16mf2_t): Ditto. + (vuint16mf2_t): Ditto. + (vint16m1_t): Ditto. + (vuint16m1_t): Ditto. + (vint16m2_t): Ditto. + (vuint16m2_t): Ditto. + (vint16m4_t): Ditto. + (vuint16m4_t): Ditto. + (vint16m8_t): Ditto. + (vuint16m8_t): Ditto. + (vint32mf2_t): Ditto. + (vuint32mf2_t): Ditto. + (vint32m1_t): Ditto. + (vuint32m1_t): Ditto. + (vint32m2_t): Ditto. + (vuint32m2_t): Ditto. + (vint32m4_t): Ditto. + (vuint32m4_t): Ditto. + (vint32m8_t): Ditto. + (vuint32m8_t): Ditto. + (vint64m1_t): Ditto. + (vuint64m1_t): Ditto. + (vint64m2_t): Ditto. + (vuint64m2_t): Ditto. + (vint64m4_t): Ditto. + (vuint64m4_t): Ditto. + (vint64m8_t): Ditto. + (vuint64m8_t): Ditto. + (vfloat32mf2_t): Ditto. + (vfloat32m1_t): Ditto. + (vfloat32m2_t): Ditto. + (vfloat32m4_t): Ditto. + (vfloat32m8_t): Ditto. + (vfloat64m1_t): Ditto. + (vfloat64m2_t): Ditto. + (vfloat64m4_t): Ditto. + (vfloat64m8_t): Ditto. + (vv): Ditto. + (vx): Ditto. + (v): Ditto. + (wv): Ditto. + (wx): Ditto. + (x_x_v): Ditto. + (vf2): Ditto. + (vf4): Ditto. + (vf8): Ditto. + (vvm): Ditto. + (vxm): Ditto. + (x_x_w): Ditto. + (v_v): Ditto. + (v_x): Ditto. + (vs): Ditto. + (mm): Ditto. + (m): Ditto. + (vf): Ditto. + (vm): Ditto. + (wf): Ditto. + (vfm): Ditto. + (v_f): Ditto. + (ta): Ditto. + (tu): Ditto. + (ma): Ditto. + (mu): Ditto. + (tama): Ditto. + (tamu): Ditto. + (tuma): Ditto. + (tumu): Ditto. + (tam): Ditto. + (tum): Ditto. + * config/riscv/riscv-vector-builtins.h (GCC_RISCV_VECTOR_BUILTINS_H): New macro. + (RVV_REQUIRE_RV64BIT): Ditto. + (RVV_REQUIRE_ZVE64): Ditto. + (RVV_REQUIRE_ELEN_FP_32): Ditto. + (RVV_REQUIRE_ELEN_FP_64): Ditto. + (enum operand_type_index): New enum. + (DEF_RVV_OP_TYPE): New macro. + (enum predication_type_index): New enum. + (DEF_RVV_PRED_TYPE): New macro. + (enum rvv_base_type): New enum. + (struct rvv_builtin_suffixes): New struct. + (struct rvv_arg_type_info): Ditto. + (struct rvv_type_info): Ditto. + (struct rvv_op_info): Ditto. + (class registered_function): New class. + (class function_base): Ditto. + (class function_shape): Ditto. + (struct function_group_info): New struct. + (class GTY): New class. + (class function_builder): Ditto. + (class function_call_info): Ditto. + (function_call_info::function_returns_void_p): New function. + (class function_expander): New class. + (function_instance::operator!=): New function. + (function_expander::expand): Ditto. + (function_expander::add_input_operand): Ditto. + (function_base::call_properties): Ditto. + +2022-10-21 Haochen Jiang <haochen.jiang@intel.com> + + * config/i386/sse.md (ssedvecmode): Rename from VI1SI. + (ssedvecmodelower): Rename from vi1si. + (sdot_prod<mode>): New define_expand. + (udot_prod<mode>): Ditto. + +2022-10-21 Kong Lingling <lingling.kong@intel.com> + Hongyu Wang <hongyu.wang@intel.com> + Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/cpuinfo.h (get_available_features): Detect + avxvnniint8. + * common/config/i386/i386-common.cc + (OPTION_MASK_ISA2_AVXVNNIINT8_SET): New. + (OPTION_MASK_ISA2_AVXVNNIINT8_UNSET): Ditto. + (ix86_handle_option): Handle -mavxvnniint8. + * common/config/i386/i386-cpuinfo.h (enum processor_features): + Add FEATURE_AVXVNNIINT8. + * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for + avxvnniint8. + * config.gcc: Add avxvnniint8intrin.h. + * config/i386/avxvnniint8intrin.h: New file. + * config/i386/cpuid.h (bit_AVXVNNIINT8): New. + * config/i386/i386-builtin.def: Add new builtins. + * config/i386/i386-c.cc (ix86_target_macros_internal): Define + __AVXVNNIINT8__. + * config/i386/i386-options.cc (isa2_opts): Add -mavxvnniint8. + (ix86_valid_target_attribute_inner_p): Handle avxvnniint8. + * config/i386/i386-isa.def: Add DEF_PTA(AVXVNNIINT8) New.. + * config/i386/i386.opt: Add option -mavxvnniint8. + * config/i386/immintrin.h: Include avxvnniint8intrin.h. + * config/i386/sse.md (UNSPEC_VPMADDUBSWACCD + UNSPEC_VPMADDUBSWACCSSD,UNSPEC_VPMADDWDACCD, + UNSPEC_VPMADDWDACCSSD): Rename according to new style. + (vpdp<vpdotprodtype>_<mode>): New define_insn. + * doc/extend.texi: Document avxvnniint8. + * doc/invoke.texi: Document -mavxvnniint8. + * doc/sourcebuild.texi: Document target avxvnniint8. + +2022-10-21 Hongyu Wang <hongyu.wang@intel.com> + + * common/config/i386/i386-common.cc + (OPTION_MASK_ISA_AVXIFMA_SET, OPTION_MASK_ISA2_AVXIFMA_UNSET, + OPTION_MASK_ISA2_AVX2_UNSET): New macro. + (ix86_handle_option): Handle -mavxifma. + * common/config/i386/i386-cpuinfo.h (processor_types): Add + FEATURE_AVXIFMA. + * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for + avxifma. + * common/config/i386/cpuinfo.h (get_available_features): + Detect avxifma. + * config.gcc: Add avxifmaintrin.h + * config/i386/avx512ifmavlintrin.h: (_mm_madd52lo_epu64): Change + to macro. + (_mm_madd52hi_epu64): Likewise. + (_mm256_madd52lo_epu64): Likewise. + (_mm256_madd52hi_epu64): Likewise. + * config/i386/avxifmaintrin.h: New header. + * config/i386/cpuid.h (bit_AVXIFMA): New. + * config/i386/i386-builtin.def: Add new builtins, and correct + pattern names for AVX512IFMA. + * config/i386/i386-builtins.cc (def_builtin): Handle AVX-IFMA + builtins like AVX-VNNI. + * config/i386/i386-c.cc (ix86_target_macros_internal): Define + __AVXIFMA__. + * config/i386/i386-expand.cc (ix86_check_builtin_isa_match): + Relax ISA masks for AVXIFMA. + * config/i386/i386-isa.def: Add AVXIFMA. + * config/i386/i386-options.cc (isa2_opts): Add -mavxifma. + (ix86_valid_target_attribute_inner_p): Handle avxifma. + * config/i386/i386.md (isa): Add attr avxifma and avxifmavl. + * config/i386/i386.opt: Add option -mavxifma. + * config/i386/immintrin.h: Inculde avxifmaintrin.h. + * config/i386/sse.md (avx_vpmadd52<vpmadd52type>_<mode>): + Remove. + (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Remove. + (vpamdd52huq<mode>_maskz): Rename to ... + (vpmadd52huq<mode>_maskz): ... this. + (vpamdd52luq<mode>_maskz): Rename to ... + (vpmadd52luq<mode>_maskz): ... this. + (vpmadd52<vpmadd52type><mode>): New define_insn. + (vpmadd52<vpmadd52type>v8di): Likewise. + (vpmadd52<vpmadd52type><mode>_maskz_1): Likewise. + (vpamdd52<vpmadd52type><mode>_mask): Rename to ... + (vpmadd52<vpmadd52type><mode>_mask): ... this. + * doc/invoke.texi: Document -mavxifma. + * doc/extend.texi: Document avxifma. + * doc/sourcebuild.texi: Document target avxifma. + +2022-10-20 Aldy Hernandez <aldyh@redhat.com> + + PR c++/106654 + * value-query.cc (get_range_global): Handle non integer ranges for + default def SSA names. + +2022-10-20 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_unordered_lt::op1_range): New. + (foperator_unordered_lt::op2_range): New. + +2022-10-20 Artem Klimov <jakmobius@gmail.com> + Alexander Monakov <amonakov@gcc.gnu.org> + + PR middle-end/99619 + * ipa-visibility.cc (function_and_variable_visibility): Promote + TLS access model afer visibility optimizations. + * varasm.cc (have_optimized_refs): New helper. + (optimize_dyn_tls_for_decl_p): New helper. Use it ... + (decl_default_tls_model): ... here in place of 'optimize' check. + +2022-10-20 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_unordered_le::op1_range): Adjust + false side with a NAN operand. + (foperator_unordered_le::op2_range): Same. + (foperator_unordered_gt::op1_range): Same. + (foperator_unordered_gt::op2_range): Same. + (foperator_unordered_ge::op1_range): Same. + (foperator_unordered_ge::op2_range): Same. + (foperator_unordered_equal::op1_range): Same. + +2022-10-20 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR tree-optimization/107326 + * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Change + vectype when widening container. + +2022-10-20 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (frange::set_varying): Do not set NAN flags for + !HONOR_NANS. + * value-range.cc (frange::normalize_kind): Adjust for no NAN when + !HONOR_NANS. + (frange::verify_range): Same. + * range-op-float.cc (maybe_isnan): Remove flag_finite_math_only check. + +2022-10-20 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (finite_operand_p): Remove. + (finite_operands_p): Rename to... + (maybe_isnan): ...this. + (frelop_early_resolve): Use maybe_isnan instead of finite_operands_p. + (foperator_equal::fold_range): Same. + (foperator_equal::op1_range): Same. + (foperator_not_equal::fold_range): Same. + (foperator_lt::fold_range): Same. + (foperator_le::fold_range): Same. + (foperator_gt::fold_range): Same. + (foperator_ge::fold_range): Same. + +2022-10-20 Jakub Jelinek <jakub@redhat.com> + + * passes.cc (pass_manager::register_pass): Fix a comment + typo - copmilation -> compilation. + +2022-10-20 Richard Biener <rguenther@suse.de> + + * tree-vect-loop.cc (vect_phi_first_order_recurrence_p): + Disallow latch PHI defs. + (vectorizable_recurr): Revert previous change. + +2022-10-20 Julian Brown <julian@codesourcery.com> + + PR target/105421 + * config/gcn/gcn.cc (gcn_detect_incoming_pointer_arg): Any pointer + argument forces FLAT addressing mode, not just + pointer-to-non-aggregate. + +2022-10-20 Thomas Schwinge <thomas@codesourcery.com> + + * configure.ac (AC_CONFIG_MACRO_DIRS): Instantiate. + * configure: Regenerate. + +2022-10-20 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve-builtins.h + (gimple_folder::fold_to_cstu): New member function. + * config/aarch64/aarch64-sve-builtins.cc + (gimple_folder::fold_to_cstu): Define. + * config/aarch64/aarch64-sve-builtins-base.cc + (svcnt_bhwd_impl::fold): Use it. + +2022-10-20 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve-builtins-functions.h (quiet) + (rtx_code_function, rtx_code_function_rotated, unspec_based_function) + (unspec_based_function_rotated, unspec_based_function_exact_insn) + (unspec_based_fused_function, unspec_based_fused_lane_function): + Replace constructors with using directives. + * config/aarch64/aarch64-sve-builtins-base.cc (svcnt_bhwd_pat_impl) + (svcreate_impl, svdotprod_lane_impl, svget_impl, svld1_extend_impl) + (svld1_gather_extend_impl, svld234_impl, svldff1_gather_extend) + (svset_impl, svst1_scatter_truncate_impl, svst1_truncate_impl) + (svst234_impl, svundef_impl): Likewise. + * config/aarch64/aarch64-sve-builtins-sve2.cc + (svldnt1_gather_extend_impl, svmovl_lb_impl): Likewise. + (svstnt1_scatter_truncate_impl): Likewise. + +2022-10-20 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve-builtins-base.cc: Replace CONSTEXPR + with constexpr throughout. + * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. + * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise. + * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. + * config/aarch64/aarch64-sve-builtins.cc: Likewise. + +2022-10-20 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove + merging alternative. + (*aarch64_brk<brk_op>_ptest): Likewise. + +2022-10-20 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/iterators.md (SVE_BRKP): New iterator. + * config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern. + (*aarch64_brkn_ptest): Likewise. + (*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP. + (*aarch64_brk<brk_op>_ptest): Likewise. + +2022-10-20 Richard Biener <rguenther@suse.de> + + PR c/107305 + PR c/107306 + * tree-cfg.h (verify_gimple_in_seq): Add parameter to + indicate whether to emit an ICE. Add return value. + (verify_gimple_in_cfg): Likewise. + * tree-cfg.cc (verify_gimple_in_seq): Likewise. + (verify_gimple_in_cfg): Likewise. + +2022-10-20 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107240 + * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Attempt to + simplify shifted value first. + +2022-10-20 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-gori.h (compute_operand_range): Make public. + * gimple-range-infer.cc (gimple_infer_range::check_assume_func): New. + (gimple_infer_range::gimple_infer_range): Check for assume calls. + * gimple-range-infer.h (check_assume_func): Add prototype. + * gimple-range.cc (assume_query::assume_range_p): New. + (assume_query::range_of_expr): New. + (assume_query::assume_query): New. + (assume_query::calculate_op): New. + (assume_query::calculate_phi): New. + (assume_query::check_taken_edge): New. + (assume_query::calculate_stmt): New. + (assume_query::dump): New. + * gimple-range.h (class assume_query): New. + * tree-vrp.cc (pass_assumptions::execute): Add processing. + +2022-10-19 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (build_le): Document result. + (build_lt): Same. + (build_ge): Same. + (foperator_ge::op2_range): Check result of build_*. + (foperator_unordered_le::op1_range): Same. + (foperator_unordered_le::op2_range): Same. + (foperator_unordered_gt::op1_range): Same. + (foperator_unordered_gt::op2_range): Same. + (foperator_unordered_ge::op1_range): Same. + (foperator_unordered_ge::op2_range): Same. + +2022-10-19 Marek Polacek <polacek@redhat.com> + + PR c++/85043 + * doc/invoke.texi: Update documentation of -Wuseless-cast. + +2022-10-19 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::range_from_dom): Use + Value_Range not int_range_max. + +2022-10-19 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107312 + * range.h (range_true_and_false): Special case 1-bit signed types. + * value-range.cc (range_tests_misc): New test. + +2022-10-19 LIU Hao <lh_mouse@126.com> + + * config/i386/mingw-mcfgthread.h: New file + * config/i386/mingw32.h: Add builtin macro and default libraries + for mcfgthread when thread model is `mcf` + * config.gcc: Include 'i386/mingw-mcfgthread.h' when thread model + is `mcf` + * configure.ac: Recognize `mcf` as a valid thread model + * config.in: Regenerate + * configure: Regenerate + +2022-10-19 Lewis Hyatt <lhyatt@gmail.com> + + * gengtype.cc (output_escaped_param): Add missing const. + (get_string_option): Add missing check for option type. + (walk_type): Support new "string_length" GTY option. + (write_types_process_field): Likewise. + * ggc-common.cc (gt_pch_note_object): Add optional length argument. + * ggc.h (gt_pch_note_object): Adjust prototype for new argument. + (gt_pch_n_S2): Declare... + * stringpool.cc (gt_pch_n_S2): ...new function. + * doc/gty.texi: Document new GTY((string_length)) option. + +2022-10-19 Martin Liska <mliska@suse.cz> + + * doc/extend.texi: Remove useless @tie{} directives. + +2022-10-19 Martin Jambor <mjambor@suse.cz> + + PR tree-optimization/107206 + * tree-sra.cc (struct access): New field grp_result_of_prop_from_lhs. + (analyze_access_subtree): Do not create replacements for accesses with + this flag when not toally scalarizing. + (propagate_subaccesses_from_lhs): Set the new flag. + +2022-10-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> + + PR target/106355 + * config/s390/s390.cc (s390_call_saved_register_used): For a + parameter with BLKmode fix determining number of consecutive + registers. + +2022-10-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa-protos.h + (xtensa_split1_finished_p, xtensa_split_DI_reg_imm): New prototypes. + * config/xtensa/xtensa.cc + (xtensa_split1_finished_p, xtensa_split_DI_reg_imm, xtensa_lra_p): + New functions. + (TARGET_LRA_P): Replace the dummy hook with xtensa_lra_p. + (xt_true_regnum): Rework. + * config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS): + Switch from CALL_USED_REGISTERS, and revise the comment. + * config/xtensa/constraints.md (Y): + Use !xtensa_split1_finished_p() instead of can_create_pseudo_p(). + * config/xtensa/predicates.md (move_operand): Ditto. + * config/xtensa/xtensa.md: Add two new split patterns: + - splits DImode immediate load into two SImode ones + - puts out-of-constraint SImode constants into the constant pool + * config/xtensa/xtensa.opt (-mlra): New target-specific option + for testing purpose. + +2022-10-19 Robin Dapp <rdapp@linux.ibm.com> + + * config/s390/s390.md: Move reload_completed and check operands for REG_P. + +2022-10-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/107262 + * expr.cc (convert_mode_scalar): For BFmode -> SFmode conversions + of constants, use simplify_unary_operation if fromi has VOIDmode + instead of recursive convert_mode_scalar. + +2022-10-19 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/106990 + * match.pd ((~X - ~Y) -> Y - X, -x & 1 -> x & 1): Guard with + !TYPE_OVERFLOW_SANITIZED (type). + +2022-10-19 Jakub Jelinek <jakub@redhat.com> + + * config/i386/i386-builtins.cc (ix86_bf16_ptr_type_node): Remove. + (ix86_bf16_type_node): New variable. + (ix86_register_bf16_builtin_type): If bfloat16_type_node is NULL + from generic code, set only ix86_bf16_type_node to a new REAL_TYPE + rather than bfloat16_type_node, otherwise set ix86_bf16_type_node + to bfloat16_type_node. Register __bf16 on ix86_bf16_type_node + rather than bfloat16_type_node. Don't initialize unused + ix86_bf16_ptr_type_node. + * config/i386/i386-builtin-types.def (BFLOAT16): Use + ix86_bf16_type_node rather than bfloat16_type_node. + +2022-10-19 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106781 + * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Copy + LHS removal from fixup_noreturn_call. + +2022-10-19 liuhongt <hongtao.liu@intel.com> + + PR target/107271 + * config/i386/i386-expand.cc (ix86_vec_perm_index_canon): New. + (expand_vec_perm_shufps_shufps): Call + ix86_vec_perm_index_canon + +2022-10-18 Martin Jambor <mjambor@suse.cz> + + * ipa-prop.h (ipa_agg_value): Remove type. + (ipa_agg_value_set): Likewise. + (ipa_copy_agg_values): Remove function. + (ipa_release_agg_values): Likewise. + (ipa_auto_call_arg_values) Add a forward declaration. + (ipa_call_arg_values): Likewise. + (class ipa_argagg_value_list): New constructors, added member function + value_for_index_p. + (class ipa_auto_call_arg_values): Removed the destructor and member + function safe_aggval_at. Use ipa_argagg_values for m_known_aggs. + (class ipa_call_arg_values): Removed member function safe_aggval_at. + Use ipa_argagg_values for m_known_aggs. + (ipa_get_indirect_edge_target): Removed declaration. + (ipa_find_agg_cst_for_param): Likewise. + (ipa_find_agg_cst_from_init): New declaration. + (ipa_agg_value_from_jfunc): Likewise. + (ipa_agg_value_set_from_jfunc): Removed declaration. + (ipa_push_agg_values_from_jfunc): New declaration. + * ipa-cp.cc (ipa_agg_value_from_node): Renamed to + ipa_agg_value_from_jfunc, made public. + (ipa_agg_value_set_from_jfunc): Removed. + (ipa_push_agg_values_from_jfunc): New function. + (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use + avs for this purpose too. + (ipa_get_indirect_edge_target): Removed the overload working on + ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining + one. + (devirtualization_time_bonus): Use ipa_argagg_value_list and + ipa_get_indirect_edge_target_1 instead of + ipa_get_indirect_edge_target. + (context_independent_aggregate_values): Removed function. + (gather_context_independent_values): Work on ipa_argagg_value_list. + (estimate_local_effects): Likewise, define some iterator variables + only in the construct where necessary. + (ipcp_discover_new_direct_edges): Adjust the call to + ipa_get_indirect_edge_target_1. + (push_agg_values_for_index_from_edge): Adjust the call + ipa_agg_value_from_node which has been renamed to + ipa_agg_value_from_jfunc. + * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on + ipa_argagg_value_list. + (evaluate_properties_for_edge): Replace manual filling in aggregate + values with call to ipa_push_agg_values_from_jfunc. + (estimate_calls_size_and_time): Work on ipa_argagg_value_list. + (ipa_cached_call_context::duplicate_from): Likewise. + (ipa_cached_call_context::release): Likewise. + (ipa_call_context::equal_to): Likewise. + * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public. + (ipa_find_agg_cst_for_param): Removed function. + (ipa_find_agg_cst_from_jfunc_items): New function. + (try_make_edge_direct_simple_call): Replace calls to + ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with + ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items. + (try_make_edge_direct_virtual_call): Replace calls to + ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with + simple query of constant jump function and a call to + ipa_find_agg_cst_from_jfunc_items. + (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed. + +2022-10-18 Martin Jambor <mjambor@suse.cz> + + * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New. + (ipcp_transformation): Added forward declaration. + (ipa_argagg_value): New type. + (ipa_argagg_value_list): New type. + (ipa_agg_replacement_value): Removed type. + (ipcp_transformation): Switch from using ipa_agg_replacement_value + to ipa_argagg_value_list. + (ipa_get_agg_replacements_for_node): Removed. + (ipa_dump_agg_replacement_values): Removed declaration. + * ipa-cp.cc: Define INCLUDE_ALGORITHM. + (values_equal_for_ipcp_p): Moved up in the file. + (ipa_argagg_value_list::dump): New function. + (ipa_argagg_value_list::debug): Likewise. + (ipa_argagg_value_list::get_elt): Likewise. + (ipa_argagg_value_list::get_elt_for_index): Likewise. + (ipa_argagg_value_list::get_value): New overloaded functions. + (ipa_argagg_value_list::superset_of_p): New function. + (new ipa_argagg_value_list::push_adjusted_values): Likewise. + (push_agg_values_from_plats): Likewise. + (intersect_argaggs_with): Likewise. + (get_clone_agg_value): Removed. + (ipa_agg_value_from_node): Make last parameter const, use + ipa_argagg_value_list to search values coming from clones. + (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search + values coming from clones. + (ipcp_discover_new_direct_edges): Pass around a vector of + ipa_argagg_values rather than a link list of replacement values. + (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search + values coming from clones. + (create_specialized_node): Work with a vector of ipa_argagg_values + rather than a link list of replacement values. + (self_recursive_agg_pass_through_p): Make the pointer parameters + const. + (copy_plats_to_inter): Removed. + (intersect_with_plats): Likewise. + (agg_replacements_to_vector): Likewise. + (intersect_with_agg_replacements): Likewise. + (intersect_aggregates_with_edge): Likewise. + (push_agg_values_for_index_from_edge): Likewise. + (push_agg_values_from_edge): Likewise. + (find_aggregate_values_for_callers_subset): Rewrite. + (cgraph_edge_brings_all_agg_vals_for_node): Likewise. + (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search + aggregate values. + (decide_about_value): Work with a vector of ipa_argagg_values rather + than a link list of replacement values. + (decide_whether_version_node): Likewise. + (ipa_analyze_node): Check number of parameters, assert that there + are no descriptors when bailing out. + * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of + ipa_argagg_value. + (ipa_node_params_t::duplicate): Removed superfluous handling of + ipa_agg_replacement_values. Name of src parameter removed because + it is no longer used. + (ipcp_transformation_t::duplicate): Replaced duplication of + ipa_agg_replacement_values with copying vector m_agg_values. + (ipa_dump_agg_replacement_values): Removed. + (write_ipcp_transformation_info): Stream the new data-structure + instead of the old. + (read_ipcp_transformation_info): Likewise. + (adjust_agg_replacement_values): Work with ipa_argagg_values instead + of linked lists of ipa_agg_replacement_values, copy the items and + truncate the vector as necessary to keep it sorted instead of marking + items as invalid. Return one bool if CFG should be updated. + (ipcp_modif_dom_walker): Store ipcp_transformation instead of + linked list of ipa_agg_replacement_values. + (ipcp_modif_dom_walker::before_dom_children): Use + ipa_argagg_value_list instead of walking a list of + ipa_agg_replacement_values. + (ipcp_transform_function): Switch to the new data structure, adjust + dumping. + +2022-10-18 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107302 + * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm + placement for a PHI latch def. + +2022-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR tree-optimization/107275 + * tree-if-conv.cc (if_convertible_loop_p_1): Move + find_data_references_in_loop call from here... + (if_convertible_loop_p): And move data-reference vector initialization + from here... + (tree_if_conversion):... to here. + +2022-10-18 Jakub Jelinek <jakub@redhat.com> + + PR c++/106654 + * gimple.def (GIMPLE_ASSUME): New statement kind. + * gimple.h (struct gimple_statement_assume): New type. + (is_a_helper <gimple_statement_assume *>::test, + is_a_helper <const gimple_statement_assume *>::test): New. + (gimple_build_assume): Declare. + (gimple_has_substatements): Return true for GIMPLE_ASSUME. + (gimple_assume_guard, gimple_assume_set_guard, + gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body): + New inline functions. + * gsstruct.def (GSS_ASSUME): New. + * gimple.cc (gimple_build_assume): New function. + (gimple_copy): Handle GIMPLE_ASSUME. + * gimple-pretty-print.cc (dump_gimple_assume): New function. + (pp_gimple_stmt_1): Handle GIMPLE_ASSUME. + * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME. + * omp-low.cc (WALK_SUBSTMTS): Likewise. + (lower_omp_1): Likewise. + * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn): + Likewise. + * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise. + * function.h (struct function): Add assume_function bitfield. + * gimplify.cc (gimplify_call_expr): If the assumption isn't + simple enough, expand it into GIMPLE_ASSUME wrapped block or + for -O0 drop it. + * gimple-low.cc: Include attribs.h. + (create_assumption_fn): New function. + (struct lower_assumption_data): New type. + (find_assumption_locals_r, assumption_copy_decl, + adjust_assumption_stmt_r, adjust_assumption_stmt_op, + lower_assumption): New functions. + (lower_stmt): Handle GIMPLE_ASSUME. + * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove + IFN_ASSUME calls. + * lto-streamer-out.cc (output_struct_function_base): Pack + assume_function bit. + * lto-streamer-in.cc (input_struct_function_base): And unpack it. + * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function + has TREE_ASM_WRITTEN set and don't release its body. + (symbol_table::compile): Allow assume functions not to have released + body. + * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable. + * passes.cc (execute_one_pass): For TODO_discard_function don't + release body of assume functions. + * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes + of PROP_assumptions_done functions. + * tree-pass.h (PROP_assumptions_done): Define. + (TODO_discard_function): Adjust comment. + (make_pass_assumptions): Declare. + * passes.def (pass_assumptions): Add. + * timevar.def (TV_TREE_ASSUMPTIONS): New. + * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME. + * tree-vrp.cc (pass_data_assumptions): New variable. + (pass_assumptions): New class. + (make_pass_assumptions): New function. + +2022-10-18 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107301 + * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg): + Check whether we can duplicate the block. + (find_implicit_erroneous_behavior): Likewise. + +2022-10-18 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/107273 + * value-relation.cc (equiv_oracle::add_partial_equiv): Merge + instead of copying precison of each member. + +2022-10-17 Jeff Law <jeffreyalaw@gmail.com> + + PR target/101697 + * config/h8300/combiner.md: Replace '<' preincment constraint with + ZA/Z1..ZH/Z7 combinations. + * config/h8300/movepush.md: Similarly + +2022-10-17 Jeff Law <jeffreyalaw@gmail.com> + + * config/h8300/constraints.md (Za..Zh): New constraints for + autoinc addresses using a specific register. + * config/h8300/h8300.cc (pre_incdec_with_reg): New function. + * config/h8300/h8300-protos.h (pre_incdec_with_reg): Add prototype. + +2022-10-17 Jeff Law <jlaw@ventanamicro.com> + + * config/i386/cet.c: Remove accidental commit. + * config/i386/driver-mingw32.c: Likewise. + * config/i386/i386-builtins.c: Likewise. + * config/i386/i386-d.c: Likewise. + * config/i386/i386-expand.c: Likewise. + * config/i386/i386-features.c: Likewise. + * config/i386/i386-options.c: Likewise. + * config/i386/t-cet: Likewise. + * config/i386/x86-tune-sched-atom.c: Likewise. + * config/i386/x86-tune-sched-bd.c: Likewise. + * config/i386/x86-tune-sched-core.c: Likewise. + * config/i386/x86-tune-sched.c: Likewise. + +2022-10-17 Jeff Law <jeffreyalaw@gmail.com> + + * common/config/h8300/h8300-common.cc (h8300_option_optimization_table): + Enable redundant extension elimination at -O2 and above. + * config/i386/cet.c: New file. + * config/i386/driver-mingw32.c: New file. + * config/i386/i386-builtins.c: New file. + * config/i386/i386-d.c: New file. + * config/i386/i386-expand.c: New file. + * config/i386/i386-features.c: New file. + * config/i386/i386-options.c: New file. + * config/i386/t-cet: New file. + * config/i386/x86-tune-sched-atom.c: New file. + * config/i386/x86-tune-sched-bd.c: New file. + * config/i386/x86-tune-sched-core.c: New file. + * config/i386/x86-tune-sched.c: New file. + +2022-10-17 Jeff Law <jeffreyalaw@gmail.com> + + * config/h8300/extensions.md (CCZN setting zero extended load): Add + missing splitter. + +2022-10-17 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107293 + * tree-ssa-dom.cc + (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): + Check that condition post-dominates the definition point. + +2022-10-17 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107286 + * value-range.cc (range_tests_floats): Do not test for -Inf when + flag_finite_math_only. + +2022-10-17 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (fold_using_range::range_of_range_op): + Provide relation_trio class. + * gimple-range-gori.cc (gori_compute::refine_using_relation): + Provide relation_trio class. + (gori_compute::refine_using_relation): Ditto. + (gori_compute::compute_operand1_range): Provide lhs_op2 and + op1_op2 relations via relation_trio class. + (gori_compute::compute_operand2_range): Ditto. + * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use + relation_trio instead of relation_kind. + (gimple_range_op_handler::calc_op2): Ditto. + (*::fold_range): Ditto. + * gimple-range-op.h (gimple_range_op::calc_op1): Adjust prototypes. + (gimple_range_op::calc_op2): Adjust prototypes. + * range-op-float.cc (*::fold_range): Use relation_trio instead of + relation_kind. + (*::op1_range): Ditto. + (*::op2_range): Ditto. + * range-op.cc (*::fold_range): Use relation_trio instead of + relation_kind. + (*::op1_range): Ditto. + (*::op2_range): Ditto. + * range-op.h (class range_operator): Adjust prototypes. + (class range_operator_float): Ditto. + (class range_op_handler): Adjust prototypes. + (relop_early_resolve): Pickup op1_op2 relation from relation_trio. + * value-relation.cc (VREL_LAST): Adjust use to be one past the end of + the enum. + (relation_oracle::validate_relation): Use relation_trio in call + to fold_range. + * value-relation.h (enum relation_kind_t): Add VREL_LAST as + final element. + (class relation_trio): New. + (TRIO_VARYING, TRIO_SHIFT, TRIO_MASK): New. + +2022-10-17 Andrew MacLeod <amacleod@redhat.com> + + * range-op-float.cc (foperator_not_equal::op1_range): Check for + VREL_EQ after singleton. + (foperator_unordered::op1_range): Set VARYING before calling + clear_nan(). + (foperator_ordered::op1_range): Set rather than clear NAN if both + operands are the same. + +2022-10-17 Andrew MacLeod <amacleod@redhat.com> + + * value-relation.cc (value_relation::dump): Change message. + * value-relation.h (value_relation::set_relation): If op1 is the + same as op2 do not create a relation. + +2022-10-17 Thomas Schwinge <thomas@codesourcery.com> + + * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of + 'case QImode:', etc. + +2022-10-17 Thomas Schwinge <thomas@codesourcery.com> + + * gimple-expr.cc (mark_addressable_2): Tag as 'static'. + +2022-10-17 Richard Biener <rguenther@suse.de> + Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + PR tree-optimization/99409 + PR tree-optimization/99394 + * tree-vectorizer.h (vect_def_type::vect_first_order_recurrence): Add. + (stmt_vec_info_type::recurr_info_type): Likewise. + (vectorizable_recurr): New function. + * tree-vect-loop.cc (vect_phi_first_order_recurrence_p): New + function. + (vect_analyze_scalar_cycles_1): Look for first order + recurrences. + (vect_analyze_loop_operations): Handle them. + (vect_transform_loop): Likewise. + (vectorizable_recurr): New function. + (maybe_set_vectorized_backedge_value): Handle the backedge value + setting in the first order recurrence PHI and the permutes. + * tree-vect-stmts.cc (vect_analyze_stmt): Handle first order + recurrences. + (vect_transform_stmt): Likewise. + (vect_is_simple_use): Likewise. + (vect_is_simple_use): Likewise. + * tree-vect-slp.cc (vect_get_and_check_slp_defs): Likewise. + (vect_build_slp_tree_2): Likewise. + (vect_schedule_scc): Handle the backedge value setting in the + first order recurrence PHI and the permutes. + +2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/t-riscv: Change Tab into 2 space. + +2022-10-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins.cc (mangle_builtin_type): Move down the function. + +2022-10-17 Arsen Arsenovic <arsen@aarsen.me> + + * config.gcc: --target=*-elf --without-{newlib,headers} should + provide stdint.h. + +2022-10-17 Hu, Lin1 <lin1.hu@intel.com> + + * common/config/i386/cpuinfo.h: + (get_intel_cpu): Handle Meteorlake. + * common/config/i386/i386-common.cc: + (processor_alias_table): Add Meteorlake. + +2022-10-17 Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/cpuinfo.h: + (get_intel_cpu): Handle Raptorlake. + * common/config/i386/i386-common.cc: + (processor_alias_table): Add Raptorlake. + +2022-10-16 Jeff Law <jeffreyalaw@gmail.com> + + * config/h8300/constraints.md (Z0..Z7): New register + constraints. + * config/h8300/h8300.h (reg_class): Add new classes. + (REG_CLASS_NAMES): Similarly. + (REG_CLASS_CONTENTS): Similarly. + +2022-10-16 Jeff Law <jeffreyalaw@gmail.com> + + * config/h8300/constraints.md (Zz constraint): Renamed + from "z". + * config/h8300/movepush.md (movqi_h8sx, movhi_h8sx): Adjust + constraint to use Zz instead of Z. + +2022-10-16 Jeff Law <jeffreyalaw@gmail.com> + + * config/h8300/h8300.cc (h8300_register_move_cost): Fix typo. + +2022-10-14 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Implement distinction between + HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS. + +2022-10-14 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-op.cc (class cfn_copysign): New. + (gimple_range_op_handler::maybe_builtin_call): Add + CFN_BUILT_IN_COPYSIGN*. + +2022-10-14 Aldy Hernandez <aldyh@redhat.com> + + * real.h (real_isdenormal): Check rvc_normal. + * value-range.cc (range_tests_floats): New test. + +2022-10-14 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-op.cc + (gimple_range_op_handler::maybe_builtin_call): Replace + CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN. + +2022-10-14 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Normalize ranges for both bounds. + +2022-10-14 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS. + +2022-10-14 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-op.cc + (gimple_range_op_handler::maybe_builtin_call): Add + CFN_BUILT_IN_SIGNBIT[FL]* entries. + +2022-10-14 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107254 + * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): + For permutes also analyze live lanes. + (vect_schedule_slp_node): For permutes also code generate + live lane extracts. + +2022-10-14 Eric Botcazou <ebotcazou@adacore.com> + + PR target/107248 + * config/sparc/sparc.cc (sparc_expand_prologue): Emit a frame + blockage for leaf functions. + (sparc_flat_expand_prologue): Emit frame instead of full blockage. + (sparc_expand_epilogue): Emit a frame blockage for leaf functions. + (sparc_flat_expand_epilogue): Emit frame instead of full blockage. + +2022-10-14 Jakub Jelinek <jakub@redhat.com> + + * tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE. + * tree.h (bfloat16_type_node): Define. + * tree.cc (excess_precision_type): Promote bfloat16_type_mode + like float16_type_mode. + (build_common_tree_nodes): Initialize bfloat16_type_node if + BFmode is supported. + * expmed.h (maybe_expand_shift): Declare. + * expmed.cc (maybe_expand_shift): No longer static. + * expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF + conversions. If there is no optab, handle BF -> {DF,XF,TF,HF} + conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add + -ffast-math generic implementation for BF -> SF and SF -> BF + conversions. + * builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New. + * builtins.def (BUILT_IN_NANSF16B): New builtin. + * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B. + * config/i386/i386.cc (classify_argument): Handle E_BCmode. + (ix86_libgcc_floating_mode_supported_p): Also return true for BFmode + for -msse2. + (ix86_mangle_type): Mangle BFmode as DF16b. + (ix86_invalid_conversion, ix86_invalid_unary_op, + ix86_invalid_binary_op): Remove. + (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP, + TARGET_INVALID_BINARY_OP): Don't redefine. + * config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove. + (ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than + ix86_bf16_type_node, only create it if still NULL. + * config/i386/i386-builtin-types.def (BFLOAT16): Likewise. + * config/i386/i386.md (cbranchbf4, cstorebf4): New expanders. + +2022-10-14 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/323 + PR c++/107097 + * doc/invoke.texi (-fexcess-precision=standard): Mention that the + option now also works in C++. + +2022-10-13 Eric Botcazou <ebotcazou@adacore.com> + + * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return + early for calls made from thunks. + +2022-10-13 Eric Botcazou <ebotcazou@adacore.com> + + * expr.cc (emit_group_stote): Fix handling of modes of different + sizes for big-endian targets in latest change and add commentary. + +2022-10-13 Martin Liska <mliska@suse.cz> + + * output.h (assemble_vtv_preinit_initializer): Remove. + * varasm.cc (assemble_vtv_preinit_initializer): Remove. + +2022-10-13 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/102540 + PR tree-optimization/102872 + * gimple-range-cache.cc (ranger_cache::fill_block_cache): + Handle partial equivs. + (ranger_cache::range_from_dom): Cleanup dump output. + +2022-10-13 Andrew MacLeod <amacleod@redhat.com> + + * range-op.cc (operator_cast::lhs_op1_relation): New. + (operator_bitwise_and::lhs_op1_relation): New. + +2022-10-13 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::fill_block_cache): Use + iterator. + * value-relation.cc + (equiv_relation_iterator::equiv_relation_iterator): New. + (equiv_relation_iterator::next): New. + (equiv_relation_iterator::get_name): New. + * value-relation.h (class relation_oracle): Privatize some methods. + (class equiv_relation_iterator): New. + (FOR_EACH_EQUIVALENCE): New. + (FOR_EACH_PARTIAL_EQUIV): New. + (FOR_EACH_PARTIAL_AND_FULL_EQUIV): New. + +2022-10-13 Andrew MacLeod <amacleod@redhat.com> + + * value-relation.cc (equiv_chain::dump): Don't print empty + equivalences. + (equiv_oracle::equiv_oracle): Allocate a partial equiv table. + (equiv_oracle::~equiv_oracle): Release the partial equiv table. + (equiv_oracle::add_partial_equiv): New. + (equiv_oracle::partial_equiv_set): New. + (equiv_oracle::partial_equiv): New. + (equiv_oracle::query_relation): Check for partial equivs too. + (equiv_oracle::dump): Also dump partial equivs. + (dom_oracle::register_relation): Handle partial equivs. + (dom_oracle::query_relation): Check for partial equivs. + * value-relation.h (enum relation_kind_t): Add partial equivs. + (relation_partial_equiv_p): New. + (relation_equiv_p): New. + (class pe_slice): New. + (class equiv_oracle): Add prototypes. + (pe_to_bits): New. + (bits_to_pe): New. + (pe_min): New. + +2022-10-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107247 + * tree-vect-loop.cc (vect_create_epilog_for_reduction): + Reduce multi vector SLP reduction accumulators. Check + the adjusted number of accumulator vectors against + one for the re-use in the epilogue. + +2022-10-13 Jakub Jelinek <jakub@redhat.com> + + * genmodes.cc (emit_mode_wider): Emit previous content of + mode_wider array into mode_next array and for mode_wider + emit always VOIDmode for !CLASS_HAS_WIDER_MODES_P classes, + otherwise skip through modes with the same precision. + * machmode.h (mode_next): Declare. + (GET_MODE_NEXT_MODE): New inline function. + (mode_iterator::get_next, mode_iterator::get_known_next): New + function templates. + (FOR_EACH_MODE_IN_CLASS): Use get_next instead of get_wider. + (FOR_EACH_MODE): Use get_known_next instead of get_known_wider. + (FOR_EACH_MODE_FROM): Use get_next instead of get_wider. + (FOR_EACH_WIDER_MODE_FROM): Define. + (FOR_EACH_NEXT_MODE): Define. + * expmed.cc (emit_store_flag_1): Use FOR_EACH_WIDER_MODE_FROM + instead of FOR_EACH_MODE_FROM. + * optabs.cc (prepare_cmp_insn): Likewise. Remove redundant + !CLASS_HAS_WIDER_MODES_P check. + (prepare_float_lib_cmp): Use FOR_EACH_WIDER_MODE_FROM instead of + FOR_EACH_MODE_FROM. + * config/i386/i386-expand.cc (get_mode_wider_vector): Use + GET_MODE_NEXT_MODE instead of GET_MODE_WIDER_MODE. + +2022-10-13 Wilco Dijkstra <wdijkstr@arm.com> + + PR target/105773 + * config/aarch64/aarch64.cc (aarch64_select_cc_mode): Allow + GT/LE for merging compare with zero into AND. + (aarch64_get_condition_code_1): Add CC_NZVmode support. + * config/aarch64/aarch64-modes.def: Add CC_NZV. + * config/aarch64/aarch64.md: Use CC_NZV in cmp+and patterns. + +2022-10-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107160 + * tree-vect-loop.cc (vect_create_epilog_for_reduction): + Do not register accumulator if we failed to reduce it + to a single vector. + +2022-10-13 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (range_operator_float::op1_op2_relation): New. + (class foperator_equal): Add using. + (class foperator_not_equal): Same. + (class foperator_lt): Same. + (class foperator_le): Same. + (class foperator_gt): Same. + (class foperator_ge): Same. + * range-op.cc (range_op_handler::op1_op2_relation): New. + * range-op.h (range_operator_float::op1_op2_relation): New. + +2022-10-13 Richard Biener <rguenther@suse.de> + + * genmatch.cc (parser::parse_c_expr): Diagnose 'return'. + * match.pd: Replace 'return' statements in with expressions + with appropriate variants. + +2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR tree-optimization/107229 + * tree-if-conv.cc (get_bitfield_rep): Fix bitposition calculation. + +2022-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR tree-optimization/107226 + * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Reject + BITFIELD_REF's with non integral typed first operands. + +2022-10-13 Joseph Myers <joseph@codesourcery.com> + + * ginclude/float.h (FLT_IS_IEC_60559, DBL_IS_IEC_60559) + (LDBL_IS_IEC_60559): Update comment. + +2022-10-12 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (class foperator_negate): New. + (floating_op_table::floating_op_table): Add NEGATE_EXPR + (range_op_float_tests): Add negate tests. + +2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins.h: Remove unused macro. + +2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Apply + clang-format. + (add_vector_type_attribute): Ditto. + * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Apply + clang-format. + * config/riscv/riscv-vector-builtins.h (DEF_RVV_TYPE): Apply + clang-format. + +2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins.cc (builtin_types): Redefine + vector types. + (build_const_pointer): New function. + (register_builtin_type): Ditto. + (DEF_RVV_TYPE): Simplify macro. + (register_vector_type): Refine implementation. + * config/riscv/riscv-vector-builtins.h (rvv_builtin_types_t): New. + +2022-10-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins.h (class rvv_switcher): Move to + this to .... + * config/riscv/riscv-vector-builtins.cc (class rvv_switcher): + here. + +2022-10-12 Cui,Lili <lili.cui@intel.com> + + * config/i386/driver-i386.cc (host_detect_local_cpu): + Move sapphirerapids out of AVX512_VP2INTERSECT. + * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS + * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS + +2022-10-12 Martin Liska <mliska@suse.cz> + + * gcov-io.cc (gcov_write_summary): Rename to ... + (gcov_write_object_summary): ... this. + * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY_LENGTH): Rename from ... + (GCOV_TAG_SUMMARY_LENGTH): ... this. + +2022-10-12 Martin Liska <mliska@suse.cz> + + * configure: Regenerate. + +2022-10-12 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (frange_float): New. + (range_op_float_tests): New. + * range-op.cc (range_op_tests): Call range_op_float_tests. + +2022-10-12 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (frange::nan_signbit_p): New. + +2022-10-12 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set_nonnegative): Pass bool to + update_nan. + * value-range.h: Disallow conversion to bool in update_nan(). + +2022-10-12 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (frange::frange): Add constructor taking type. + +2022-10-12 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc: Add relation_kind = VREL_VARYING to all + methods. + +2022-10-11 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-gori.cc (gori_compute::logical_combine): Avoid + calling tracer.trailer(). + +2022-10-11 Jakub Jelinek <jakub@redhat.com> + + PR target/107185 + * config/i386/i386.md (*notxor<mode>_1): Use MASK_REG_P (x) instead of + MASK_REGNO_P (REGNO (x)). + +2022-10-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (class foperator_abs): New. + (floating_op_table::floating_op_table): Add ABS_EXPR entry. + +2022-10-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_unordered_le::op1_range): New. + (foperator_unordered_le::op2_range): New. + (foperator_unordered_gt::op1_range): New. + (foperator_unordered_gt::op2_range): New. + (foperator_unordered_ge::op1_range): New. + (foperator_unordered_ge::op2_range): New. + (foperator_unordered_equal::op1_range): New. + +2022-10-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (class foperator_unordered_lt): New. + (class foperator_relop_unknown): Remove + (class foperator_unordered_le): New. + (class foperator_unordered_gt): New. + (class foperator_unordered_ge): New. + (class foperator_unordered_equal): New. + (floating_op_table::floating_op_table): Replace all UN_EXPR + entries with their appropriate fop_unordered_* counterpart. + +2022-10-11 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (operator_equal::op1_range): Move BRS_TRUE case up. + (operator_lt::op2_range): Same. + (operator_le::op2_range): Same. + (operator_gt::op2_range): Same. + (operator_ge::op2_range): Same. + +2022-10-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107212 + * tree-vect-loop.cc (vectorizable_reduction): Make sure to + set STMT_VINFO_REDUC_DEF for all live lanes in a SLP + reduction. + (vectorizable_live_operation): Do not pun to the SLP + node representative for reduction epilogue generation. + +2022-10-11 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-valu.md (neg<mode>2): New define_expand. + +2022-10-11 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-valu.md (vec_init<V_ALL:mode><V_ALL_ALT:mode>): New. + * config/gcn/gcn.cc (GEN_VN): Add andvNsi3, subvNsi3. + (GEN_VNM): Add gathervNm_expr. + (GEN_VN_NOEXEC): Add vec_seriesvNsi. + (gcn_expand_vector_init): Add initialization of vectors from smaller + vectors. + +2022-10-11 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-protos.h (get_exec): Add prototypes for two variants. + * config/gcn/gcn-valu.md + (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): New define_expand. + * config/gcn/gcn.cc (get_exec): Export the existing function. Add a + new overload variant. + +2022-10-11 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-valu.md + (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): Use MODE_VF. + (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): Likewise. + * config/gcn/gcn.h (MODE_VF): New macro. + +2022-10-11 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-modes.def (VECTOR_MODE): Add new modes + V32QI, V32HI, V32SI, V32DI, V32TI, V32HF, V32SF, V32DF, + V16QI, V16HI, V16SI, V16DI, V16TI, V16HF, V16SF, V16DF, + V8QI, V8HI, V8SI, V8DI, V8TI, V8HF, V8SF, V8DF, + V4QI, V4HI, V4SI, V4DI, V4TI, V4HF, V4SF, V4DF, + V2QI, V2HI, V2SI, V2DI, V2TI, V2HF, V2SF, V2DF. + (ADJUST_ALIGNMENT): Likewise. + * config/gcn/gcn-protos.h (gcn_full_exec): Delete. + (gcn_full_exec_reg): Delete. + (gcn_scalar_exec): Delete. + (gcn_scalar_exec_reg): Delete. + (vgpr_1reg_mode_p): Use inner mode to identify vector registers. + (vgpr_2reg_mode_p): Likewise. + (vgpr_vector_mode_p): Use VECTOR_MODE_P. + * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF, + V_QIHI, V_1REG, V_INT_1REG, V_INT_1REG_ALT, V_FP_1REG, V_2REG, V_noQI, + V_noHI, V_INT_noQI, V_INT_noHI, V_ALL, V_ALL_ALT, V_INT, V_FP): + Add additional vector modes. + (V64_SI, V64_DI, V64_ALL, V64_FP): New iterators. + (scalar_mode, SCALAR_MODE, vnsi, VnSI, vndi, VnDI, sdwa): + Add additional vector mode mappings. + (mov<mode>): Implement vector length conversions. + (ldexp<mode>3<exec>): Use VnSI. + (frexp<mode>_exp2<exec>): Likewise. + (VCVT_MODE, VCVT_FMODE, VCVT_IMODE): Add additional vector modes. + (reduc_<reduc_op>_scal_<mode>): Use V64_ALL. + (fold_left_plus_<mode>): Use V64_FP. + (*<reduc_op>_dpp_shr_<mode>): Use V64_1REG. + (*<reduc_op>_dpp_shr_<mode>): Use V64_DI. + (*plus_carry_dpp_shr_<mode>): Use V64_INT_1REG. + (*plus_carry_in_dpp_shr_<mode>): Use V64_SI. + (*plus_carry_dpp_shr_<mode>): Use V64_DI. + (mov_from_lane63_<mode>): Use V64_2REG. + * config/gcn/gcn.cc (VnMODE): New function. + (gcn_can_change_mode_class): Support multiple vector sizes. + (gcn_modes_tieable_p): Likewise. + (gcn_operand_part): Likewise. + (gcn_scalar_exec): Delete function. + (gcn_scalar_exec_reg): Delete function. + (gcn_full_exec): Delete function. + (gcn_full_exec_reg): Delete function. + (gcn_inline_fp_constant_p): Support multiple vector sizes. + (gcn_fp_constant_p): Likewise. + (A): New macro. + (GEN_VN_NOEXEC): New macro. + (GEN_VNM_NOEXEC): New macro. + (GEN_VN): New macro. + (GEN_VNM): New macro. + (GET_VN_FN): New macro. + (CODE_FOR): New macro. + (CODE_FOR_OP): New macro. + (gen_mov_with_exec): Delete function. + (gen_duplicate_load): Delete function. + (gcn_expand_vector_init): Support multiple vector sizes. + (strided_constant): Likewise. + (gcn_addr_space_legitimize_address): Likewise. + (gcn_expand_scalar_to_vector_address): Likewise. + (gcn_expand_scaled_offsets): Likewise. + (gcn_secondary_reload): Likewise. + (gcn_valid_cvt_p): Likewise. + (gcn_expand_builtin_1): Likewise. + (gcn_make_vec_perm_address): Likewise. + (gcn_vectorize_vec_perm_const): Likewise. + (gcn_vector_mode_supported_p): Likewise. + (gcn_autovectorize_vector_modes): New hook. + (gcn_related_vector_mode): Support multiple vector sizes. + (gcn_expand_dpp_shr_insn): Add FIXME comment. + (gcn_md_reorg): Support multiple vector sizes. + (print_reg): Likewise. + (print_operand): Likewise. + (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): New hook. + +2022-10-11 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * tree-if-conv.cc (if_convertible_loop_p_1): Move ordering of loop bb's from + here... + (tree_if_conversion): ... to here. Also call bitfield lowering when + appropriate. + (version_loop_for_if_conversion): Adapt to enable loop versioning when we only + need to lower bitfields. + (ifcvt_split_critical_edges): Relax condition of expected loop form as this is + checked earlier. + (get_bitfield_rep): New function. + (lower_bitfield): Likewise. + (bitfields_to_lower_p): Likewise. + (need_to_lower_bitfields): New global boolean. + (need_to_ifcvt): Likewise. + * tree-vect-data-refs.cc (vect_find_stmt_data_reference): Improve diagnostic + message. + * tree-vect-patterns.cc (vect_recog_temp_ssa_var): Add default value for last + parameter. + (vect_recog_bitfield_ref_pattern): New. + (vect_recog_bit_insert_pattern): New. + +2022-10-11 liuhongt <hongtao.liu@intel.com> + + PR target/107093 + * config/i386/i386.md (*notxor<mode>_1): New post_reload + define_insn_and_split. + (*notxorqi_1): Ditto. + +2022-10-11 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107195 + * value-range.cc (irange::set_range_from_nonzero_bits): Set range + to [0,0] when nonzero mask is 0. + +2022-10-11 Olivier Hainque <hainque@adacore.com> + + * configure: Regenerate. + +2022-10-11 Olivier Hainque <hainque@adacore.com> + + * config.gcc (*vxworks*): Add t-slibgcc fragment + if enable_shared. + +2022-10-11 Olivier Hainque <hainque@adacore.com> + + * config/vxworks.h (VX_LGCC_EH_SO0, VX_LGCC_EH_SO1): New + internal macros. + (VXWORKS_LIBGCC_SPEC): Use them and document. + +2022-10-11 Martin Liska <mliska@suse.cz> + + * gimple-range-op.cc: Add override keyword. + +2022-10-11 Eugene Rozenfeld <erozen@microsoft.com> + + PR debug/107193 + * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e + out of the loop. + +2022-10-11 Liwei Xu <liwei.xu@intel.com> + liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/54346 + * match.pd: Merge the index of VCST then generates the new vec_perm. + +2022-10-11 Jeff Law <jeffreyalaw@gmail.com> + + PR rtl-optimization/107182 + * cfgrtl.cc (fixup_reorder_chain): When optimizing a jump to a + return, clear EDGE_CROSSING on the appropriate edge. + +2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-vector-builtins.cc (struct vector_type_info): Move + from config/riscv/riscv-vector-builtins.h. + (DEF_RVV_TYPE): Change USER_NAME to NAME. + (register_vector_type): Change user_name to name. + * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Change + USER_NAME to NAME. + * config/riscv/riscv-vector-builtins.h (struct vector_type_info): Move + to riscv-vector-builtins.cc. + (DEF_RVV_TYPE): Change USER_NAME to NAME. + +2022-10-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.md: Add vsetvl instruction type. + +2022-10-10 Nathan Sidwell <nathan@acm.org> + + * common.opt (-fabi-version=): Document 18. + * doc/invoke.texi (-fabi-version): Document 18. + +2022-10-10 Andrea Corallo <andrea.corallo@arm.com> + + PR other/99723 + * toplev.cc (toplev::main): Don't run self tests in case of + previous error. + +2022-10-10 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/riscv-c.cc: Add newline to the end of file. + +2022-10-10 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (class foperator_identity): Make members public. + (class foperator_equal): Same. + (class foperator_not_equal): Same. + (class foperator_lt): Same. + (class foperator_le): Same. + (class foperator_gt): Same. + (class foperator_ge): Same. + (class foperator_unordered): Same. + (class foperator_ordered): Same. + +2022-10-10 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (frange::maybe_isnan): New. + +2022-10-10 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_not_equal::op1_range): Set NAN on + TRUE side for x != x. + +2022-10-10 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_unordered::op1_range): Set NAN when + operands are equal and result is TRUE. + +2022-10-10 Aldy Hernandez <aldyh@redhat.com> + + * range.h (range_true): Return int_range<2>. + (range_false): Same. + (range_true_and_false): Same. + +2022-10-10 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-op.cc: Add op1_range entry for __builtin_signbit. + +2022-10-10 liuhongt <hongtao.liu@intel.com> + + PR target/107185 + * config/i386/i386.md (lrint<MODEF:mode><SWI48:mode>2): Swap + predicate of operands[0] and operands[1]. + +2022-10-10 Claudiu Zissulescu <claziss@gmail.com> + + * common/config/arc/arc-common.cc (arc_option_optimization_table): + Remove Rcq and Rcw options. + * config/arc/arc.opt (mRcq): Ignore option, preserve it for + backwards compatibility. + (mRcw): Likewise. + * doc/invoke.texi (mRcw, mRcq): Update document. + +2022-10-10 Claudiu Zissulescu <claziss@gmail.com> + + * config/arc/arc.cc (arc_check_short_reg_p): New function. + (arc_address_cost): Replace satisfies_constraint_Rcq with the + above new function. + (arc_output_addsi): Likewise. + (split_addsi): Likewise. + (split_subsi): Likewise. + * config/arc/arc.md (movqi_insn): Remove Rcq constraint. + (movhi_insn): Likewise. + (movsi_insn): Likewise. + (tst_movb): Likewise. + (tst): Likewise. + (tst_bitfield): Likewise. + (abssi2): Likewise. + (addsi3_mixed): Likewise. + (mulhisi3_reg): Likewise. + (umulhisi3_reg): Likewise. + (mulsi_600): Likewise. + (mul64): Likewise. + (subsi3_insn): Likewise. + (bicsi3_insn): Likewise. + (xorsi3): Likewise. + (negsi2): Likewise. + (one_cmplsi2): Likewise. + (lshrsi3_insn): Likewise. + (cmpsi_cc_insn_mixed): Likewise. + (cmpsi_cc_zn_insn): Likewise. + (btst): Likewise. + (cmpsi_cc_z_insn): Likewise. + (cmpsi_cc_c_insn): Likewise. + (indirect_jump): Likewise. + (casesi_jump): Likewise. + (call_i): Likewise. + (call_value_i): Likewise. + (bbit): Likewise. + (abssf2): Likewise. + (ashlsi2_cnt1): Likewise. + (lshrsi3_cnt1): Likewise. + (ashrsi3_cnt1): Likewise. + * config/arc/constraints.md (Rcq): Remove. + +2022-10-10 Claudiu Zissulescu <claziss@gmail.com> + + * config/arc/arc.md (smaxsi3): Remove Rcw. + (sminsi3): Likewise. + (addsi3_mixed): Likewise. + (add_f_2): Likewise. + (subsi3_insn): Likewise. + (sub_f): Likewise. + (sub_n): Likewise. + (bset): Likewise. + (bxor): Likewise. + (bclr): Likewise. + (bset_insn): Likewise. + (bxor_insn): Likewise. + (bclr_insn): Likewise. + (bmsk_insn): Likewise. + (bicsi3_insn): Likewise. + (xorsi3): Likewise. + (negsi2): Likewise. + (lshrsi3_insn): Likewise. + (abssf2): Likewise. + (negsf2): Likewise. + * config/arc/constraints.md(Rcw): Remove it. + +2022-10-10 Claudiu Zissulescu <claziss@gmail.com> + + * config/arc/arc.md(mulsi3_700): Remove Rcr. + (mulsi3_highpart): Likewise. + (umulsi3_highpart_i): Likewise. + (umulsi3_highpart_int): Likewise. + (macd): Likewise. + (macdu): Likewise. + * config/arc/constraints.md (Rcr): Remove it. + +2022-10-10 Claudiu Zissulescu <claziss@gmail.com> + + * config/arc/arc.cc (arc_save_callee_enter): Use negative offsets. + +2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu> + + PR target/106562 + * config/pru/pru-protos.h (pru_noteq_condition): New + function declaration. + * config/pru/pru.cc (pru_noteq_condition): New function. + * config/pru/pru.md (cbranchdi4): Define new pattern. + +2022-10-09 Dimitar Dimitrov <dimitar@dinux.eu> + + * config/pru/pru.md (lshrdi3): New expand pattern. + (ashldi3): Ditto. + +2022-10-09 YunQiang Su <yunqiang.su@cipunited.com> + + * config.gcc: set with_arch to default_mips_arch if no defined. + * config/mips/driver-native.cc (host_detect_local_cpu): + try getauxval(AT_BASE_PLATFORM) and _MIPS_ARCH, too. + pass -mnan=2008 if __mips_nan2008__ is defined. + * config.in: define HAVE_SYS_AUXV_H and HAVE_GETAUXVAL. + * configure.ac: detect sys/auxv.h and getauxval. + * configure: regenerated. + +2022-10-07 Eugene Rozenfeld <erozen@microsoft.com> + + * tree-cfg.cc (assign_discriminators): Set discriminators for call stmts + on the same line within the same basic block. + +2022-10-07 Qing Zhao <qing.zhao@oracle.com> + + PR tree-optimization/101836 + * tree-object-size.cc (addr_object_size): Use array_at_struct_end_p + to determine a flexible array member reference. + +2022-10-07 Qing Zhao <qing.zhao@oracle.com> + + * doc/extend.texi: Document strict_flex_array attribute. + * doc/invoke.texi: Document -fstrict-flex-arrays[=n] option. + * print-tree.cc (print_node): Print new bit decl_not_flexarray. + * tree-core.h (struct tree_decl_common): New bit field + decl_not_flexarray. + * tree-streamer-in.cc (unpack_ts_decl_common_value_fields): Stream + in new bit decl_not_flexarray. + * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream + out new bit decl_not_flexarray. + * tree.cc (array_at_struct_end_p): Update it with the new bit field + decl_not_flexarray. + * tree.h (DECL_NOT_FLEXARRAY): New flag. + +2022-10-07 Olivier Hainque <hainque@adacore.com> + + * config/vxworks/_vxworks-versions.h: Use OS specific + paths in #include of version.h. + +2022-10-07 Martin Liska <mliska@suse.cz> + + * opts.cc (finish_options): Print sorry message only + for -flive-patching=inline-only-static. + +2022-10-07 Jason Merrill <jason@redhat.com> + + * gimplify.cc (gimplify_modify_expr_rhs): Don't optimize + x = *(A*)&<expr> to x = <expr> for a TREE_ADDRESSABLE type. + +2022-10-07 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107153 + * tree-cfg.cc (gimple_duplicate_sese_tail): Do not update + SSA form here. + * tree-parloops.cc (gen_parallel_loop): Update SSA form + after to-exit-first transform, no PHI insertion is necessary. + (pass_parallelize_loops::execute): Force re-write of the + virtual operand SSA web. + +2022-10-07 Jonathan Wakely <jwakely@redhat.com> + + * value-range.cc (irange::irange_contains_p): Fix comment typo. + +2022-10-07 Eric Botcazou <ebotcazou@adacore.com> + + * function.cc (thread_prologue_and_epilogue_insns): Update only + entry and exit blocks when not optimizing. Remove dead statement. + +2022-10-07 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::irange_set): Convert nonzero mask to + tree. + (irange::irange_set_anti_range): Same. + (irange::set): Same. + (irange::verify_range): Same. + (irange::contains_p): Same. + (irange::invert): Same. + (irange::set_range_from_nonzero_bits): Same. + (irange::set_nonzero_bits): Same. + (mask_to_wi): Same. + (irange::intersect_nonzero_bits): Same. + (irange::union_nonzero_bits): Same. + * value-range.h (irange::varying_compatible_p): Same. + (gt_ggc_mx): Same. + (gt_pch_nx): Same. + (irange::set_undefined): Same. + (irange::set_varying): Same. + +2022-10-07 Martin Liska <mliska@suse.cz> + + * config/i386/i386-protos.h (ix86_binary_operator_ok): Add array + size to function parameter. + (ix86_unary_operator_ok): Likewise. + +2022-10-07 Martin Liska <mliska@suse.cz> + + * auto-profile.cc (get_inline_stack): Remove unused variable. + +2022-10-07 Jakub Jelinek <jakub@redhat.com> + + * ipa-prop.h (ipa_constant_data): Fix comment typo. + * value-range.cc (irange::irange_contains_p): Likewise. + * value-relation.cc (dom_oracle::set_one_relation): Likewise. + * gimple-predicate-analysis.cc (predicate::simplify_4): Likewise. + * tree-inline.cc (remap_ssa_name): Likewise. + +2022-10-07 Jakub Jelinek <jakub@redhat.com> + + * attribs.h (is_attribute_namespace_p): New inline function. + (lookup_attribute): Document meaning of ATTR_NS equal to "". + * attribs.cc (remove_attribute): Use is_attribute_namespace_p. + (private_lookup_attribute): For ATTR_NS "" match either standard + attribute or "gnu" namespace one. + +2022-10-07 Olivier Hainque <hainque@adacore.com> + + * config/vxworks.h (DWARF_VERSION_DEFAULT): Adjust from + 4 to 3 for VxWorks >= 7. + +2022-10-07 Olivier Hainque <hainque@adacore.com> + + * defaults.h (DWARF_DEFAULT_VERSION): Define if not + defined already. + * common.opt (gdwarf-): Use it. + * doc/tm.texi.in (DWARF_DEFAULT_VERSION): Document. + * doc/tm.texi: Update accordingly. + * config/vxworks.h (DWARF_DEFAULT_VERSION): Redefine. + * config/vxworks.cc: Remove code setting dwarf_version, now + handled by the DWARF_DEFAULT_VERSION redefinition. + +2022-10-07 Olivier Hainque <hainque@adacore.com> + + * ginclude/stddef.h: #undef offsetof before #define. + +2022-10-06 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107170 + * vr-values.cc (vr_values::range_of_expr): Do not die on + unsupported types. + +2022-10-06 Joseph Myers <joseph@codesourcery.com> + + * doc/invoke.texi (-fno-asm): Update description of effects on + typeof keyword. + +2022-10-06 Eric Botcazou <ebotcazou@adacore.com> + + * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Bail out for a self + dependency that is a write-after-write if the access function is not + affine or constant. + +2022-10-06 Eric Botcazou <ebotcazou@adacore.com> + + * df-scan.cc (df_ref_create_structure): Minor cleanup. + +2022-10-06 Richard Biener <rguenther@suse.de> + + PR middle-end/107115 + * expr.cc (store_expr): Check mems_same_for_tbaa_p before + eliding a seemingly redundant store. + +2022-10-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/atomics.md (*atomic_load<ALLX:mode>_zext<SD_HSDI:mode>): + New pattern. + +2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update + Ampere-1 core entry. + +2022-10-06 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/aarch64/driver-aarch64.cc (readline): Fix off-by-one. + +2022-10-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107107 + * tree-ssa-sccvn.cc (visit_reference_op_store): Do not + affect value-numbering when doing the tail merging + MODIFY_EXPR lookup. + +2022-10-06 Claudiu Zissulescu <claziss@synopsys.com> + + * config/arc/linux.h (LINK_SPEC): Remove max-page-size and + common-pave-size. + +2022-10-06 Jakub Jelinek <jakub@redhat.com> + + PR c++/106654 + * internal-fn.def (ASSUME): New internal function. + * internal-fn.h (expand_ASSUME): Declare. + * internal-fn.cc (expand_ASSUME): Define. + * gimplify.cc (gimplify_call_expr): Gimplify IFN_ASSUME. + * fold-const.h (simple_condition_p): Declare. + * fold-const.cc (simple_operand_p_2): Rename to ... + (simple_condition_p): ... this. Remove forward declaration. + No longer static. Adjust function comment and fix a typo in it. + Adjust recursive call. + (simple_operand_p): Adjust function comment. + (fold_truth_andor): Adjust simple_operand_p_2 callers to call + simple_condition_p. + * doc/extend.texi: Document assume attribute. Move fallthrough + attribute example to its section. + +2022-10-06 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> + + PR rtl-optimization/107088 + * cselib.cc (new_cselib_val): Skip BImode while keeping track of + subvalue relations. + +2022-10-06 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Call set_nan unconditionally. + (range_tests_nan): Adjust tests. + (range_tests_signed_zeros): Same. + (range_tests_floats): Same. + * value-range.h (frange::update_nan): Guard with HONOR_NANS. + (frange::set_nan): Set undefined if !HONOR_NANS. + +2022-10-06 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_lt::fold_range): Remove extra check + to finite_operands_p. + (foperator_le::fold_range): Same. + (foperator_gt::fold_range): Same. + (foperator_ge::fold_range): Same. + +2022-10-06 Aldy Hernandez <aldyh@redhat.com> + + * value-range-pretty-print.cc (vrange_printer::print_real_value): + Avoid printing INF and NAN twice. + +2022-10-05 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/constraints.md (wD): Delete. + * doc/md.texi (Machine Constraints): Adjust. + +2022-10-05 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/vsx.md (vsx_extract_<mode>): Replace define_insn by a + define_expand. Split the contents to... + (*vsx_extract_<mode>_0): ... this. Rewrite. + (*vsx_extract_<mode>_1): ... and this. Rewrite. + +2022-10-05 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of + "wD" constraint. + +2022-10-05 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/107060 + * doc/analyzer.texi (__analyzer_get_unknown_ptr): Document. + +2022-10-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config.gcc: Add riscv_vector.h. + * config/riscv/riscv-builtins.cc: Add RVV builtin types support. + * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): New function. + (riscv_register_pragmas): Ditto. + * config/riscv/riscv-protos.h (riscv_register_pragmas): Ditto. + (init_builtins): Move declaration from riscv-vector-builtins.h to riscv-protos.h. + (mangle_builtin_type): Ditto. + (verify_type_context): Ditto. + (handle_pragma_vector): New function. + * config/riscv/riscv-vector-builtins.cc (GTY): New variable. + (register_vector_type): New function. + (init_builtins): Add RVV builtin types support. + (handle_pragma_vector): New function. + * config/riscv/riscv-vector-builtins.h (GCC_RISCV_V_BUILTINS_H): Change + name according to file name. + (GCC_RISCV_VECTOR_BUILTINS_H): Ditto. + (init_builtins): Remove declaration in riscv-vector-builtins.h. + (mangle_builtin_type): Ditto. + (verify_type_context): Ditto. + * config/riscv/riscv.cc: Adjust for RVV builtin types support. + * config/riscv/riscv.h (REGISTER_TARGET_PRAGMAS): New macro. + * config/riscv/t-riscv: Remove redundant file including. + * config/riscv/riscv_vector.h: New file. + +2022-10-05 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (operator_cast::fold_range): Handle truncating casts + for nonzero masks. + +2022-10-05 Martin Liska <mliska@suse.cz> + + PR c/107156 + * attribs.h (lookup_attribute_by_prefix): Support the attribute + starting with underscore (_Noreturn). + +2022-10-05 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107052 + * gimple-range-op.cc (cfn_popcount::fold_range): Take into account + nonzero bit mask. + +2022-10-05 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107052 + * range-op.cc (operator_cast::fold_range): Set nonzero mask. + +2022-10-05 Eric Botcazou <ebotcazou@adacore.com> + + PR tree-optimization/106698 + * pointer-query.cc (handle_array_ref): Fix handling of low bound. + +2022-10-05 Vineet Gupta <vineetg@rivosinc.com> + + * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): + Remove __riscv_cmodel_pic, that deprecated in last version. + +2022-10-05 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/107072 + * Makefile.in (ANALYZER_OBJS): Add analyzer/call-summary.o. + +2022-10-04 Jakub Jelinek <jakub@redhat.com> + + * attribs.h (remove_attribute): Declare overload with additional + attr_ns argument. + (private_lookup_attribute): Declare overload with additional + attr_ns and attr_ns_len arguments. + (lookup_attribute): New overload with additional attr_ns argument. + * attribs.cc (remove_attribute): New overload with additional + attr_ns argument. + (private_lookup_attribute): New overload with additional + attr_ns and attr_ns_len arguments. + +2022-10-04 Jakub Jelinek <jakub@redhat.com> + + * attribs.cc (handle_ignored_attributes_option, decl_attributes, + common_function_versions): Use auto_diagnostic_group. + +2022-10-04 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::set_nonzero_bits): Remove assert. + +2022-10-04 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New macro. + * config/aarch64/aarch64-arches.def (armv8.3-a): Include RCPC. + * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1) + (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores. + * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define + __ARM_FEATURE_RCPC when appropriate. + +2022-10-04 Tobias Burnus <tobias@codesourcery.com> + + * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax. + (-fopenmp-simd): Likewise; update permitted directives. + +2022-10-04 Tobias Burnus <tobias@codesourcery.com> + + * doc/install.texi (Specific): Add missing items to bullet list. + (amdgcn): Update LLVM requirements, use version not date for newlib. + (nvptx): Use version not git hash for newlib. + +2022-10-04 Aldy Hernandez <aldyh@redhat.com> + + * value-range-storage.cc (irange_storage_slot::set_irange): Remove + special case. + * value-range.cc (irange::irange_set): Adjust for nonzero mask + being a wide int. + (irange::irange_set_anti_range): Same. + (irange::set): Same. + (irange::verify_range): Same. + (irange::legacy_equal_p): Same. + (irange::operator==): Same. + (irange::contains_p): Same. + (irange::legacy_intersect): Same. + (irange::legacy_union): Same. + (irange::irange_single_pair_union): Call union_nonzero_bits. + (irange::irange_union): Same. + (irange::irange_intersect): Call intersect_nonzero_bits. + (irange::intersect): Adjust for nonzero mask being a wide int. + (irange::invert): Same. + (irange::set_nonzero_bits): Same. + (irange::get_nonzero_bits_from_range): New. + (irange::set_range_from_nonzero_bits): New. + (irange::get_nonzero_bits): Adjust for nonzero mask being a wide + int. + (irange::intersect_nonzero_bits): Same. + (irange::union_nonzero_bits): Same. + (range_tests_nonzero_bits): Remove test. + * value-range.h (irange::varying_compatible_p): Adjust for nonzero + mask being a wide int. + (gt_ggc_mx): Same. + (gt_pch_nx): Same. + (irange::set_undefined): Same. + (irange::set_varying): Same. + (irange::normalize_kind): Same. + +2022-10-04 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107130 + * gimple-range-op.cc (class cfn_popcount): Call op_cfn_ffs. + (class cfn_ffs): New. + (gimple_range_op_handler::maybe_builtin_call): Separate out + CASE_CFN_FFS into its own case. + +2022-10-03 Sergei Trofimovich <siarheit@google.com> + + * config/i386/t-i386: Add build-time dependencies against + i386-builtin-types.inc to i386-builtins.o, i386-expand.o, + i386-features.o. + +2022-10-03 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using + operand 3. + * doc/md.texi (while_ult): Document new operand 3 usage. + * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type + maps to a non-vector mode. + +2022-10-03 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/107109 + * range-op.cc (adjust_op1_for_overflow): Don't process undefined. + +2022-10-03 Christophe Lyon <christophe.lyon@arm.com> + + * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early + clobber. + (mve_vrev64q_m_f<mode>): Likewise. + +2022-10-03 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::set_nonzero_bits): Do not pessimize range. + (range_tests_nonzero_bits): New test. + +2022-10-03 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::operator==): Early bail on m_num_ranges + equal to 0. + +2022-10-03 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::legacy_equal_p): Remove nonozero mask + check when comparing VR_VARYING ranges. + +2022-10-03 Aldy Hernandez <aldyh@redhat.com> + + * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare + incompatible ranges in ipa-prop. + +2022-10-02 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107121 + * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics, + DEFFERED_INIT -> DEFERRED_INIT. + +2022-10-02 Marc Poulhiès <poulhies@adacore.com> + + * config/vxworks-driver.cc: New. + * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs. + * config/t-vxworks: Add vxworks-driver.o. + * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New. + +2022-10-02 Olivier Hainque <hainque@adacore.com> + + * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If + HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless + of ENABLE_SHARED_LIBGCC. + +2022-10-01 Stafford Horne <shorne@gmail.com> + + * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if + HAVE_AS_TLS is defined. + +2022-10-01 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create) + handling. + +2022-10-01 Jeff Law <jeffreyalaw@gmail.com> + + * config/h8300/h8300.md (HSI2): New iterator. + (eqne_invert): Similarly. + * config/h8300/testcompare.md (testhi_upper_z): New pattern. + (cmpqi_z, cmphi_z, cmpsi_z): Likewise. + (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New + define_insn_and_splits and/or define_insns. + (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise. + (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise. + +2022-10-01 Jeff Law <jeffreyalaw@gmail.com> + + * tree-ssa-dom.cc (record_edge_info): Install correct version of + patch. + +2022-10-01 Eugene Rozenfeld <erozen@microsoft.com> + + * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites. + +2022-09-30 Jeff Law <jeffreyalaw@gmail.com> + + * tree-ssa-dom.cc (single_block_loop_p): New function. + (record_edge_info): Also record equivalences for the outgoing + edge of a single block loop where the condition is an invariant. + +2022-09-30 Jeff Law <jeffreyalaw@gmail.com> + + * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too. + (free_all_edge_infos): Do not clear e->aux here. + +2022-09-30 H.J. Lu <hjl.tools@gmail.com> + + * target.def (TARGET_C_EXCESS_PRECISION): Document + -fexcess-precision=16. + +2022-09-30 Palmer Dabbelt <palmer@rivosinc.com> + + * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16. + +2022-09-30 Palmer Dabbelt <palmer@rivosinc.com> + + PR target/106815 + * config/riscv/riscv.cc (riscv_excess_precision): Add support + for EXCESS_PRECISION_TYPE_FLOAT16. + +2022-09-30 Jakub Jelinek <jakub@redhat.com> + + PR c++/107080 + * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh + and _Float16 as DF16_. + * config/csky/csky.cc (csky_init_builtins): Fix a comment typo. + (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_ + rather than mangling __fp16 as __fp16. + +2022-09-30 Lewis Hyatt <lhyatt@gmail.com> + + PR preprocessor/69543 + * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking + information away from the diagnostic location. + (maybe_warn_read_write_only): Likewise. + (maybe_warn_operand): Likewise. + +2022-09-30 Jakub Jelinek <jakub@redhat.com> + + PR c++/107080 + * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16 + as Dh and _Float16 as DF16_. + +2022-09-30 Jakub Jelinek <jakub@redhat.com> + + PR c++/107080 + * config/i386/i386.cc (ix86_mangle_type): Always return NULL + for float128_type_node or float64x_type_node, don't check + float128t_type_node later on. + * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL + for float128_type_node or float64x_type_node. + * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise. + Don't check float128_type_node later on. + * config/s390/s390.cc (s390_mangle_type): Don't use + TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT + a few lines earlier. + +2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> + Yvan ROUX <yvan.roux@foss.st.com> + + * doc/sourcebuild.texi: Document new vma_equals_lma effective + target check. + +2022-09-30 Jiawei <jiawei@iscas.ac.cn> + + * config/riscv/riscv.cc (riscv_file_start): New .option. + * config/riscv/riscv.opt: New options. + * doc/invoke.texi: New definations. + +2022-09-30 Kewen Lin <linkw@linux.ibm.com> + + PR target/99888 + PR target/105649 + * doc/invoke.texi (option -fpatchable-function-entry): Adjust the + documentation for PowerPC ELFv2 ABI dual entry points. + * config/rs6000/rs6000-internal.h + (rs6000_print_patchable_function_entry): New function declaration. + * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue): + Support patchable-function-entry by emitting nops before and after + local entry for the function that needs global entry. + * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip + the function that needs global entry till global entry has been + emitted. + * config/rs6000/rs6000.h (struct machine_function): New bool member + global_entry_emitted. + +2022-09-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/107095 + * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg + for .MASK_STORE size. + +2022-09-29 Andrew MacLeod <amacleod@redhat.com> + + * range-op.cc (plus_minus_ranges): New. + (adjust_op1_for_overflow): New. + (operator_plus::op1_range): Use new adjustment. + (operator_plus::op2_range): Ditto. + (operator_minus::op1_range): Ditto. + * value-relation.h (relation_lt_le_gt_ge_p): New. + +2022-09-29 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-gori.cc (gori_compute::refine_using_relation): New. + (gori_compute::compute_operand1_range): Invoke + refine_using_relation when applicable. + (gori_compute::compute_operand2_range): Ditto. + * gimple-range-gori.h (class gori_compute): Adjust prototypes. + +2022-09-29 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-gori.cc (ori_compute::compute_operand_range): + Create a relation record and pass it along when possible. + (gori_compute::compute_operand1_range): Pass relation along. + (gori_compute::compute_operand2_range): Ditto. + (gori_compute::compute_operand1_and_operand2_range): Ditto. + * gimple-range-gori.h (class gori_compute): Adjust prototypes. + * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass + relation to op1_range call. + (gimple_range_op_handler::calc_op2): Pass relation to op2_range call. + * gimple-range-op.h (class gimple_range_op_handler): Adjust + prototypes. + +2022-09-29 Andrew MacLeod <amacleod@redhat.com> + + * value-relation.cc (class value_relation): Move to .h file. + (value_relation::set_relation): Ditto. + (value_relation::value_relation): ditto. + * value-relation.h (class value_relation): Move from .cc file. + (value_relation::set_relation): Ditto + (value_relation::value_relation): Ditto. + +2022-09-29 Andrew MacLeod <amacleod@redhat.com> + + * range-op.cc (operator_minus::op2_range): Check for undefined. + (operator_mult::op1_range): Ditto. + (operator_exact_divide::op1_range): Ditto. + (operator_lshift::op1_range): Ditto. + (operator_rshift::op1_range): Ditto. + (operator_cast::op1_range): Ditto. + (operator_bitwise_and::op1_range): Ditto. + (operator_bitwise_or::op1_range): Ditto. + (operator_trunc_mod::op1_range): Ditto. + (operator_trunc_mod::op2_range): Ditto. + (operator_bitwise_not::op1_range): Ditto. + (pointer_or_operator::op1_range): Ditto. + (range_op_handler::op1_range): Ditto. + (range_op_handler::op2_range): Ditto. + +2022-09-29 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): + Remove unused elt_bits variable. + +2022-09-29 Olivier Hainque <hainque@adacore.com> + + * config/vxworks.h: Add comment on our use of + HAVE_INITFINI_ARRAY_SUPPORT. + +2022-09-29 Olivier Hainque <hainque@adacore.com> + + * config/aarch64/t-aarch64-vxworks: Request multilib + variants for mcmodel=large. + +2022-09-29 Olivier Hainque <hainque@adacore.com> + + * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove + resetting to 0. + +2022-09-29 Olivier Hainque <hainque@adacore.com> + + * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0 + when ARM_UNWIND_INFO is set. + +2022-09-29 Julian Brown <julian@codesourcery.com> + + PR middle-end/107028 + * gimplify.cc (omp_check_mapping_compatibility, + oacc_resolve_clause_dependencies): New functions. + (omp_accumulate_sibling_list): Remove redundant duplicate clause + detection for OpenACC. + (build_struct_sibling_lists): Skip deleted groups. Don't build sibling + list for struct variables that are fully mapped on the same directive + for OpenACC. + (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies. + +2022-09-29 Jose E. Marchesi <jose.marchesi@oracle.com> + + PR middle-end/25521 + * varasm.cc (categorize_decl_for_section): Place `const volatile' + objects in read-only sections. + (default_select_section): Likewise. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead + of to_widest. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4) + (TARGET_DOTPROD): Don't depend on TARGET_SIMD. + (TARGET_AES, TARGET_SHA2): Likewise. Remove TARGET_CRYPTO test. + (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT. + (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend + on TARGET_SVE. + (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3) + (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2. + (TARGET_F32MM, TARGET_F64MM): Delete. + * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard + float macros with just TARGET_FLOAT rather than TARGET_FLOAT + || TARGET_SIMD. + * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend + only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD. + (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES, + rather than TARGET_SIMD && TARGET_AES. + (aarch64_crypto_aes<aesmc_op>v16qi): Likewise. + (*aarch64_crypto_aese_fused): Likewise. + (*aarch64_crypto_aesd_fused): Likewise. + (aarch64_crypto_pmulldi): Likewise. + (aarch64_crypto_pmullv2di): Likewise. + (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2. + (aarch64_crypto_sha1hv4si): Likewise. + (aarch64_be_crypto_sha1hv4si): Likewise. + (aarch64_crypto_sha1su1v4si): Likewise. + (aarch64_crypto_sha1<sha1_op>v4si): Likewise. + (aarch64_crypto_sha1su0v4si): Likewise. + (aarch64_crypto_sha256h<sha256_op>v4si): Likewise. + (aarch64_crypto_sha256su0v4si): Likewise. + (aarch64_crypto_sha256su1v4si): Likewise. + (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3. + (aarch64_crypto_sha512su0qv2di): Likewise. + (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise. + (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise. + (aarch64_sm3ss1qv4si): Likewise TARGET_SM4. + (aarch64_sm3tt<sm3tt_op>qv4si): Likewise. + (aarch64_sm3partw<sm3part_op>qv4si): Likewise. + (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise. + * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2) + (copysign<GPF:mode>3, copysign<GPF:mode>3_insn) + (xorsign<mode>3): Remove redundant TARGET_FLOAT condition. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable. + * config/aarch64/aarch64.h (aarch64_asm_isa_flags) + (aarch64_isa_flags): Redefine as read-only macros. + (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on + !TARGET_GENERAL_REGS_ONLY. + * common/config/aarch64/aarch64-common.cc + (aarch64_set_asm_isa_flags): New function. + (aarch64_handle_option): Call it when updating -mgeneral-regs. + * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace + m_old_isa_flags with m_old_asm_isa_flags. + (aarch64_set_asm_isa_flags): Declare. + * config/aarch64/aarch64-builtins.cc + (aarch64_simd_switcher::aarch64_simd_switcher) + (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore + aarch64_asm_isa_flags instead of aarch64_isa_flags. + * config/aarch64/aarch64-sve-builtins.cc + (check_required_extensions): Use aarch64_asm_isa_flags instead + of aarch64_isa_flags. + * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function. + (aarch64_override_options, aarch64_handle_attr_arch) + (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use + aarch64_set_asm_isa_flags to set the ISA flags. + (aarch64_option_print, aarch64_declare_function_name) + (aarch64_start_file): Use aarch64_asm_isa_flags instead + of aarch64_isa_flags. + (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as + aarch64_isa_flags. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * common/config/aarch64/aarch64-common.cc (all_extensions): + Include the feature flag in flags_on and flags_off. + (aarch64_parse_extension): Update accordingly. + (aarch64_get_extension_string_for_isa_flags): Likewise. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags + for feature flags throughout. + * config/aarch64/aarch64-protos.h: Likewise. + * config/aarch64/aarch64-sve-builtins.h: Likewise. + * config/aarch64/aarch64-sve-builtins.cc: Likewise. + * config/aarch64/aarch64.cc: Likewise. + * config/aarch64/aarch64.opt: Likewise. + * config/aarch64/driver-aarch64.cc: Likewise. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * common/config/aarch64/aarch64-common.cc (aarch64_option_extension) + (processor_name_to_arch, arch_to_arch_name): Remove const from + member variables. + (all_extensions, all_cores, all_architectures): Make a constexpr. + * config/aarch64/aarch64.cc (processor): Remove const from + member variables. + (all_architectures): Make a constexpr. + * config/aarch64/driver-aarch64.cc (aarch64_core_data) + (aarch64_arch_driver_info): Remove const from member variables. + (aarch64_cpu_data, aarch64_arches): Make a constexpr. + (get_arch_from_id): Return a pointer to const. + (host_detect_local_cpu): Update accordingly. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * common/config/aarch64/aarch64-common.cc (processor_name_to_arch) + (arch_to_arch_name): Use const char * instead of std::string. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * common/config/aarch64/aarch64-common.cc + (TARGET_OPTION_INIT_STRUCT): Delete. + (aarch64_option_extension): Remove is_synthetic_flag. + (all_extensions): Update accordingly. + (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete. + (aarch64_option_init_struct, aarch64_contains_opt): Delete. + (aarch64_get_extension_string_for_isa_flags): Rewrite to use + all_extensions instead of all_extensions_on. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-option-extensions.def: Switch to a new format. + * config/aarch64/aarch64-cores.def: Use the same format to specify + lists of features. + * config/aarch64/aarch64-arches.def: Likewise, moving that information + from aarch64.h. + * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef. + * config/aarch64/aarch64.h (aarch64_feature): New class enum. + Turn AARCH64_FL_* macros into constexprs, getting the definitions + from aarch64-option-extensions.def. Remove AARCH64_FL_FOR_* macros. + * common/config/aarch64/aarch64-common.cc: Include + aarch64-feature-deps.h. + (all_extensions): Update for new .def format. + (all_extensions_by_on, all_cores, all_architectures): Likewise. + * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h. + (aarch64_extensions): Update for new .def format. + (aarch64_cpu_data, aarch64_arches): Likewise. + * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h. + (all_architectures, all_cores): Update for new .def format. + * config/aarch64/aarch64-sve-builtins.cc + (check_required_extensions): Likewise. + * config/aarch64/aarch64-feature-deps.h: New file. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-option-extensions.def: Move crypto + after sha2. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-option-extensions.def (dotprod): Depend + on fp as well as simd. + (sha3): Likewise. + (aes): Likewise. Make +noaes disable crypto. + (sha2): Likewise +nosha2. Also make +nosha2 disable sha3 and + sve2-sha3. + (sve2-sha3): Depend on sha2 as well as sha3. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + PR target/107025 + * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete. + (AARCH64_FL_FOR_V8_4A): Update accordingly. + (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly. + * config/aarch64/aarch64-cores.def (thunderx3t110): Remove + AARCH64_FL_RCPC8_4. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH> + from the flags field. + * common/config/aarch64/aarch64-common.cc (all_cores): Add it + here instead. + * config/aarch64/aarch64.cc (all_cores): Likewise. + * config/aarch64/driver-aarch64.cc (all_cores): Likewise. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config.gcc: Remove dead aarch64-option-extensions.def code. + * config/aarch64/aarch64-arches.def: Update comment. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-arches.def: Add a leading "V" to the + ARCH_IDENT fields. + * config/aarch64/aarch64-cores.def: Update accordingly. + * common/config/aarch64/aarch64-common.cc (all_cores): Likewise. + * config/aarch64/aarch64.cc (all_cores): Likewise. + * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the + leading "V". + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to... + (AARCH64_FL_FOR_V8A): ...this. + (AARCH64_FL_FOR_ARCH8_1): Rename to... + (AARCH64_FL_FOR_V8_1A): ...this. + (AARCH64_FL_FOR_ARCH8_2): Rename to... + (AARCH64_FL_FOR_V8_2A): ...this. + (AARCH64_FL_FOR_ARCH8_3): Rename to... + (AARCH64_FL_FOR_V8_3A): ...this. + (AARCH64_FL_FOR_ARCH8_4): Rename to... + (AARCH64_FL_FOR_V8_4A): ...this. + (AARCH64_FL_FOR_ARCH8_5): Rename to... + (AARCH64_FL_FOR_V8_5A): ...this. + (AARCH64_FL_FOR_ARCH8_6): Rename to... + (AARCH64_FL_FOR_V8_6A): ...this. + (AARCH64_FL_FOR_ARCH8_7): Rename to... + (AARCH64_FL_FOR_V8_7A): ...this. + (AARCH64_FL_FOR_ARCH8_8): Rename to... + (AARCH64_FL_FOR_V8_8A): ...this. + (AARCH64_FL_FOR_ARCH8_R): Rename to... + (AARCH64_FL_FOR_V8R): ...this. + (AARCH64_FL_FOR_ARCH9): Rename to... + (AARCH64_FL_FOR_V9A): ...this. + (AARCH64_FL_FOR_ARCH9_1): Rename to... + (AARCH64_FL_FOR_V9_1A): ...this. + (AARCH64_FL_FOR_ARCH9_2): Rename to... + (AARCH64_FL_FOR_V9_2A): ...this. + (AARCH64_FL_FOR_ARCH9_3): Rename to... + (AARCH64_FL_FOR_V9_3A): ...this. + * common/config/aarch64/aarch64-common.cc (all_cores): Update + accordingly. + * config/aarch64/aarch64-arches.def: Likewise. + * config/aarch64/aarch64-cores.def: Likewise. + * config/aarch64/aarch64.cc (all_cores): Likewise. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2) + (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6) + (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1) + (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name. + (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R. + (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly. + (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise. + (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise. + (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise. + (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise. + (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise. + (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A) + (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise. + (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise. + (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3) + (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6) + (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2) + (AARCH64_ISA_V9_3): Add "A" to the end of the name. + (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R. + (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update + accordingly. + * common/config/aarch64/aarch64-common.cc + (aarch64_get_extension_string_for_isa_flags): Likewise. + * config/aarch64/aarch64-c.cc + (aarch64_define_unconditional_macros): Likewise. + +2022-09-29 Richard Sandiford <richard.sandiford@arm.com> + + * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA. + +2022-09-29 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/107059 + * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC + isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2 + before FIXED_INCLUDE_DIR entry with multilib flag 0. + * gcc.cc (do_spec_1): If multiarch_dir, add + include-fixed/multiarch_dir paths before include-fixed paths. + +2022-09-29 Martin Liska <mliska@suse.cz> + + PR driver/106897 + * common.opt: Add -gz=zstd value. + * configure.ac: Detect --compress-debug-sections=zstd + for both linker and assembler. + * configure: Regenerate. + * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd. + (ASM_COMPRESS_DEBUG_SPEC): Likewise. + +2022-09-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105646 + * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute + the set of fallthru reachable blocks from function entry + and use that to determine wlims.always_executed. + +2022-09-29 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/107055 + * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for + nonlinear induction variables. + * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New + functions. + (vectorizable_nonlinear_induction): Put part codes into + vect_can_peel_nonlinear_iv_p. + * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare. + +2022-09-28 Eugene Rozenfeld <erozen@microsoft.com> + + * basic-block.h: Remove discriminator from basic blocks. + * cfghooks.cc (split_block_1): Remove discriminator from basic blocks. + * final.cc (final_start_function_1): Switch from per-bb to per statement + discriminator. + (final_scan_insn_1): Don't keep track of basic block discriminators. + (compute_discriminator): Switch from basic block discriminators to + instruction discriminators. + (insn_discriminator): New function to return instruction discriminator. + (notice_source_line): Use insn_discriminator. + * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of + basic block discriminators. + * gimple-streamer-in.cc (input_bb): Remove reading of basic block + discriminators. + * gimple-streamer-out.cc (output_bb): Remove writing of basic block + discriminators. + * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA. + (location_with_discriminator): New function to combine locus with + a discriminator. + (has_discriminator): New function to check if a location has a discriminator. + (get_discriminator_from_loc): New function to get the discriminator + from a location. + * input.h: Declarations of new functions. + * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison. + (apply_location_cache): Keep track of current discriminator. + (input_location_and_block): Read discriminator from stream. + * lto-streamer-out.cc (clear_line_info): Set current discriminator to + UINT_MAX. + (lto_output_location_1): Write discriminator to stream. + * lto-streamer.h: Add discriminator to cached_location. + Add current_discr to lto_location_cache. + Add current_discr to output_block. + * print-rtl.cc (print_rtx_operand_code_i): Print discriminator. + * rtl.h: Add extern declaration of insn_discriminator. + * tree-cfg.cc (assign_discriminator): New function to assign a unique + discriminator value to all statements in a basic block that have the given + line number. + (assign_discriminators): Assign discriminators to statement locations. + * tree-pretty-print.cc (dump_location): Dump discriminators. + * tree.cc (set_block): Preserve discriminator when setting block. + (set_source_range): Preserve discriminator when setting source range. + +2022-09-28 H.J. Lu <hjl.tools@gmail.com> + + PR target/107061 + * config/i386/predicates.md (encodekey128_operation): Check + XMM4-XMM6 as clobbered. + (encodekey256_operation): Likewise. + * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6. + (encodekey256u32): Likewise. + +2022-09-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai> + + * config.gcc: Add riscv-vector-builtins.o. + * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function. + * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function. + * config/riscv/riscv.cc (ENTRY): New macro. + (riscv_v_ext_enabled_vector_mode_p): New function. + (riscv_mangle_type): Add RVV mangle. + (riscv_vector_mode_supported_p): Adjust RVV machine mode. + (riscv_verify_type_context): Add context check for RVV. + (riscv_vector_alignment): Add RVV alignment target hook support. + (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support. + (TARGET_VERIFY_TYPE_CONTEXT): Ditto. + (TARGET_VECTOR_ALIGNMENT): Ditto. + * config/riscv/t-riscv: Add riscv-vector-builtins.o + * config/riscv/riscv-vector-builtins.cc: New file. + * config/riscv/riscv-vector-builtins.def: New file. + * config/riscv/riscv-vector-builtins.h: New file. + * config/riscv/riscv-vector-switch.def: New file. + +2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> + + * var-tracking.cc (vt_add_function_parameter): Add entry values + up to maximal register mode. + +2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> + + * cselib.cc (new_cselib_val): Keep track of further subvalue + relations. + +2022-09-28 Andrea Corallo <andrea.corallo@arm.com> + + * config/arm/arm-c.cc (arm_cpu_builtins): Define + __ARM_FEATURE_AES and __ARM_FEATURE_SHA2. + +2022-09-28 Xi Ruoyao <xry111@xry111.site> + + PR tree-optimization/105414 + * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec. + (UNSPEC_FMIN): Likewise. + (fmax<mode>3): Use UNSPEC_FMAX instead of smax. + (fmin<mode>3): Use UNSPEC_FMIN instead of smin. + +2022-09-28 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): + Fixed typo in "asan_mapping.h". + +2022-09-28 H.J. Lu <hjl.tools@gmail.com> + + PR middle-end/58245 + * calls.cc: Include "tree-eh.h". + (expand_call): Check stack canary before throwing exception. + +2022-09-27 Eugene Rozenfeld <erozen@microsoft.com> + + * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison. + +2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com> + + * doc/invoke.texi: Update ABI version info. + +2022-09-27 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a + singleton. + +2022-09-27 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::set_nonzero_bits): Set range when known. + +2022-09-27 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (irange::set): New version taking wide_int_ref. + +2022-09-27 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/107029 + * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat + OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be + signed and so can trigger even the (b % 4) == 3 case. + +2022-09-27 Jeff Law <jeffreyalaw@gmail.com> + + * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return + and return are available before trying to use them. + +2022-09-27 Jakub Jelinek <jakub@redhat.com> + + PR c++/106652 + PR c++/85518 + * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE + enumerator. + * tree.h (float128t_type_node): Define. + * tree.cc (build_common_tree_nodes): Initialize float128t_type_node. + * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that + _Float<N> is supported in C++ too. + * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g" + float128t_type_node. + * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use + float128t_type_node for __float128 instead of float128_type_node + and create it if NULL. + * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph, + _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of + 0.0f. + * config/ia64/ia64.cc (ia64_init_builtins): Use + float128t_type_node for __float128 instead of float128_type_node + and create it if NULL. + * config/rs6000/rs6000-c.cc (is_float128_p): Also return true + for float128t_type_node if non-NULL. + * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle + float128_type_node as "u9__ieee128". + * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use + float128t_type_node for __float128 instead of float128_type_node + and create it if NULL. + +2022-09-26 Martin Liska <mliska@suse.cz> + + * doc/invoke.texi: Add missing dash for + Wanalyzer-exposure-through-uninit-copy. + +2022-09-26 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107009 + * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK. + (range_op_bitwise_and_tests): New test. + +2022-09-26 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/107009 + * tree-ssa-dom.cc + (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): + Iterate over exports. + +2022-09-26 Thomas Schwinge <thomas@codesourcery.com> + + * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override + the default. + * config/nvptx/gen-multilib-matches.sh: New. + * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES) + (MULTILIB_EXCEPTIONS): Handle this. + * doc/install.texi (Specific) <nvptx-*-none>: Document this. + * doc/invoke.texi (Nvidia PTX Options): Likewise. + +2022-09-26 Thomas Schwinge <thomas@codesourcery.com> + + * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'. + * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES) + (MULTILIB_EXCEPTIONS): Handle it. + +2022-09-26 Thomas Schwinge <thomas@codesourcery.com> + + * config.gcc (with_arch) [nvptx]: Set to 'sm_30'. + * config/nvptx/nvptx.cc (nvptx_option_override): Assert that + '-misa' appeared. + * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define. + * config/nvptx/nvptx.opt (misa=): Remove 'Init'. + +2022-09-26 Thomas Schwinge <thomas@codesourcery.com> + + * config/nvptx/nvptx.h (ASM_SPEC): Define. + +2022-09-26 Jeff Law <jeffreyalaw@gmail.com> + + * cfgcleanup.cc (bb_is_just_return): No longer static. + * cfgcleanup.h (bb_is_just_return): Add prototype. + * cfgrtl.cc (fixup_reorder_chain): Do not create an + unconditional jump to a return block. Conditionally + remove unreachable blocks. + +2022-09-26 Tobias Burnus <tobias@codesourcery.com> + + PR middle-end/106982 + * omp-low.cc (lower_oacc_reductions): Add some unshare_expr. + +2022-09-26 Martin Liska <mliska@suse.cz> + + * config/s390/s390.cc (s390_rtx_costs): Remove dest variable + and use only dst. + +2022-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64-arches.def (armv9.1-a): Define. + (armv9.2-a): Likewise. + (armv9.3-a): Likewise. + * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise. + (AARCH64_FL_V9_2): Likewise. + (AARCH64_FL_V9_3): Likewise. + (AARCH64_FL_FOR_ARCH9_1): Likewise. + (AARCH64_FL_FOR_ARCH9_2): Likewise. + (AARCH64_FL_FOR_ARCH9_3): Likewise. + (AARCH64_ISA_V9_1): Likewise. + (AARCH64_ISA_V9_2): Likewise. + (AARCH64_ISA_V9_3): Likewise. + * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a, + armv9.3-a values to -march. + +2022-09-26 Martin Liska <mliska@suse.cz> + + * value-range.cc (tree_compare): Remove unused function. + +2022-09-26 Kewen Lin <linkw@linux.ibm.com> + + PR target/96072 + * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the + condition for adding REG_CFA_DEF_CFA reg note with + frame_pointer_needed_indeed. + +2022-09-26 Kewen Lin <linkw@linux.ibm.com> + + PR target/100645 + * config/rs6000/vector.md (vec_shr_<mode>): Replace condition + TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P. + +2022-09-26 Hongtao Liu <hongtao.liu@intel.com> + Liwei Xu <liwei.xu@intel.com> + + PR target/53346 + * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps): + New function. + (ix86_expand_vec_perm_const_1): Insert + expand_vec_perm_shufps_shufps at the end of 2-instruction + expand sequence. + +2022-09-25 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> + + * doc/sourcebuild.texi: Fix chapter level. + +2022-09-24 Jakub Jelinek <jakub@redhat.com> + + PR c/107001 + * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement + at the end. + * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA + is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't + update parent. + (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset + cur_region back after new_omp_region. + +2022-09-23 Vineet Gupta <vineetg@rivosinc.com> + + * config/riscv/riscv.h (LOCAL_SYM_P): New. + (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P. + +2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes. + (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks. + (ADJUST_ALIGNMENT): Adjust alignment. + (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks. + (RVV_MODES): New macro. + (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes. + (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes. + +2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai> + + * common/config/riscv/riscv-common.cc: Change "static void" to "void". + * config.gcc: Add riscv-selftests.o + * config/riscv/predicates.md: Allow const_poly_int. + * config/riscv/riscv-protos.h (riscv_reinit): New function. + (riscv_parse_arch_string): change as exten function. + (riscv_run_selftests): New function. + * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly + into const pool. + (riscv_report_v_required): New function. + (riscv_expand_op): New function. + (riscv_expand_mult_with_const_int): New function. + (riscv_legitimize_poly_move): Ditto. + (riscv_legitimize_move): New function. + (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix + vector RA. + (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for + -marh no 'v'. + (riscv_reinit): New function. + (TARGET_RUN_TARGET_SELFTESTS): New target hook support. + * config/riscv/t-riscv: Add riscv-selftests.o. + * config/riscv/riscv-selftests.cc: New file. + +2022-09-23 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106922 + * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow + an arbitrary number of same valued skipped stores. + +2022-09-23 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Swap setters such that the one + accepting REAL_VALUE_TYPE does all the work. + +2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64-cores.def (neoverse-v2): New entry. + (demeter): Update tunings to neoversev2. + * config/aarch64/aarch64-tune.md: Regenerate. + * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to + neoversev2_addrcost_table. + (demeter_regmove_cost): Rename to neoversev2_addrcost_table. + (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost. + (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost. + (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info. + (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info. + (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info. + (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info. + Update references to above. + (demeter_vector_cost): Rename to neoversev2_vector_cost. + (demeter_tunings): Rename to neoversev2_tunings. + (aarch64_vec_op_count::rename_cycles_per_iter): Use + neoversev2_sve_issue_info instead of demeter_sve_issue_info. + * doc/invoke.texi (AArch64 Options): Document neoverse-v2. + +2022-09-23 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (build_le): Use vrp_val_*. + (build_lt): Same. + (build_ge): Same. + (build_gt): Same. + * value-range.cc (frange::set): Chop ranges outside of the + representable numbers for -ffinite-math-only. + (frange::normalize_kind): Use vrp_val*. + (frange::verify_range): Same. + (frange::set_nonnegative): Same. + (range_tests_floats): Remove tests that depend on -INF and +INF. + * value-range.h (real_max_representable): Add prototype. + (real_min_representable): Same. + (vrp_val_max): Set max representable number for + -ffinite-math-only. + (vrp_val_min): Same but for min. + (frange::set_varying): Use vrp_val*. + +2022-09-23 Aldy Hernandez <aldyh@redhat.com> + + * real.cc (debug): New. + +2022-09-23 Aldy Hernandez <aldyh@redhat.com> + + * value-range-pretty-print.cc (vrange_printer::print_real_value): New. + (vrange_printer::visit): Call print_real_value. + * value-range-pretty-print.h: New print_real_value. + +2022-09-23 Martin Liska <mliska@suse.cz> + + * common.opt: Update -flto-compression-level documentation. + * opts.cc (print_filtered_help): Do not append range to an + option that uses \t syntax. + +2022-09-23 Jakub Jelinek <jakub@redhat.com> + + * attribs.cc (decl_attributes): Improve diagnostics, instead of + saying expected between 1 and 1, found 2 just say expected 1, found 2. + +2022-09-23 Hu, Lin1 <lin1.hu@intel.com> + + PR target/94962 + * config/i386/constraints.md (BH): New define_constraint. + * config/i386/i386.cc (standard_sse_constant_p): Add return + 3/4 when operand matches new predicate. + (standard_sse_constant_opcode): Add new alternative branch to + return "vpcmpeqd". + * config/i386/predicates.md + (vector_all_ones_zero_extend_half_operand): New define_predicate. + (vector_all_ones_zero_extend_quarter_operand): Ditto. + * config/i386/sse.md: Add constraint to insn "mov<mode>_internal". + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_range_op): Handle no operands. + (range_of_call): Do not check for builtins. + (fold_using_range::range_of_builtin_call): Delete. + (fold_using_range::range_of_builtin_int_call): Delete. + * gimple-range-fold.h: Adjust prototypes. + * gimple-range-op.cc (class cfn_parity): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_int_call): Remove case + for CFN_GOACC_DIM_*. + * gimple-range-op.cc (class cfn_goacc_dim): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_int_call): Remove case + for CFN_BUILT_IN_STRLEN. + * gimple-range-op.cc (class cfn_strlen): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete. + (range_of_builtin_int_call): Remove cases for + CFN_BUILT_IN_UBSAN_CHECK. + * gimple-range-op.cc (class cfn_ubsan): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_int_call): Remove case + for CFN_BUILT_IN_CLRSB. + * gimple-range-op.cc (class cfn_clrsb): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_int_call): Remove case + for CFN_CTZ. + * gimple-range-op.cc (class cfn_ctz): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_int_call): Remove case + for CFN_CLZ. + * gimple-range-op.cc (class cfn_clz): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_int_call): Remove case + for CFN_FFS and CFN_POPCOUNT. + * gimple-range-op.cc (class cfn_pocount): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (get_letter_range): Move to new class. + (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER + and CFN_BUILT_IN_TOLOWER. + * gimple-range-op.cc (class cfn_toupper_tolower): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_builtin_int_call): Remove case + for CFN_BUILT_IN_SIGNBIT. + * gimple-range-op.cc (class cfn_signbit): New. + (gimple_range_op_handler::maybe_builtin_call): Set arguments. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc + (fold_using_range::range_of_builtin_int_call): Remove case for + CFN_BUILT_IN_CONSTANT_P. + * gimple-range-op.cc (gimple_range_op_handler::supported_p): + Check if a call also creates a range-op object. + (gimple_range_op_handler): Also check builtin calls. + (class cfn_constant_float_p): New. Float CFN_BUILT_IN_CONSTANT_P. + (class cfn_constant_p): New. Integral CFN_BUILT_IN_CONSTANT_P. + (gimple_range_op_handler::maybe_builtin_call): Set arguments and + handler for supported built-in calls. + * gimple-range-op.h (maybe_builtin_call): New prototype. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (range_of_range_op): Set result to + VARYING if the call to fold_range fails. + * tree-data-ref.cc (compute_distributive_range): Ditto. + * tree-vrp.cc (range_fold_binary_expr): Ditto. + (range_fold_unary_expr): Ditto. + * value-query.cc (range_query::get_tree_range): Ditto. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * range-op-float.cc (range_operator_float::fold_range): New base + method for "int = float op int". + * range-op.cc (range_op_handler::fold_range): New case. + * range-op.h: Update prototypes. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use + operand 1 for second range if there is no operand 2. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * Makefile.in (OBJS): Add gimple-range-op.o. + * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use + gimple_range_op_handler. + * gimple-range-fold.cc (gimple_range_base_of_assignment): Move + to a method in gimple_range_op_handler. + (gimple_range_operand1): Ditto. + (gimple_range_operand2): Ditto. + (fold_using_range::fold_stmt): Use gimple_range_op_handler. + (fold_using_range::range_of_range_op): Ditto. + (fold_using_range::relation_fold_and_or): Ditto. + (fur_source::register_outgoing_edges): Ditto. + (gimple_range_ssa_names): Relocate to gimple-range-op.cc. + * gimple-range-fold.h: Adjust prototypes. + * gimple-range-gori.cc (gimple_range_calc_op1): Move + to a method in gimple_range_op_handler. + (gimple_range_calc_op2): Ditto. + (gori_compute::compute_operand_range): Use + gimple_range_op_handler. + (gori_compute::compute_logical_operands): Ditto. + (compute_operand1_range): Ditto. + (gori_compute::compute_operand2_range): Ditto. + (gori_compute::compute_operand1_and_operand2_range): Ditto. + * gimple-range-gori.h: Adjust protoypes. + * gimple-range-op.cc: New. Supply gimple_range_op_handler methods. + * gimple-range-op.h: New. Supply gimple_range_op_handler class. + * gimple-range.cc (gimple_ranger::prefill_name): Use + gimple_range_op_handler. + (gimple_ranger::prefill_stmt_dependencies): Ditto. + * gimple-range.h: Include gimple-range-op.h. + * range-op.cc (range_op_handler::range_op_handler): Adjust and + remove gimple * parameter option. + * range-op.h: Adjust prototypes. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * range-op.cc (range_op_handler::set_op_handler): Set new fields. + (ange_op_handler::range_op_handler): Likewise. + (range_op_handler::operator bool): Remove. + (range_op_handler::fold_range): Use appropriate handler. + (range_op_handler::op1_range): Likewise. + (range_op_handler::op2_range): Likewise. + (range_op_handler::lhs_op1_relation): Likewise. + (range_op_handler::lhs_op2_relation): Likewise. + (range_op_handler::op1_op2_relation): Likewise. + * range-op.h (class range_op_handler): Store handler pointers. + (range_op_handler:: operator bool): Inline. + +2022-09-22 Andrew MacLeod <amacleod@redhat.com> + + * tree-ssa-threadbackward.cc + (back_threader::find_paths_to_names): Replace sequence with + a call to gimple_range_ssa_names. + +2022-09-22 Martin Liska <mliska@suse.cz> + Fangrui Song <i@maskray.me> + + * configure: Regenerate. + * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1} + and gcc_cv_as_compress_debug={0,1}. + * doc/invoke.texi: Document the removal. + * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore + zlib-gnu. + (ASM_COMPRESS_DEBUG_SPEC): Likewise. + +2022-09-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106922 + * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member. + (vn_walk_cb_data::finish): Perform delayed verification of + a skipped may-alias. + (vn_reference_lookup_pieces): Likewise. + (vn_reference_lookup): Likewise. + (vn_reference_lookup_3): When skipping stores of the same + value also handle constant stores that are more than a + single VDEF away by delaying the verification. + +2022-09-22 Max Filippov <jcmvbkbc@gmail.com> + + * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New + definition. + +2022-09-22 Max Filippov <jcmvbkbc@gmail.com> + + * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk) + (xtensa_output_mi_thunk): New functions. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK) + (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions. + (xtensa_prepare_expand_call): Use fixed register a8 as temporary + when called with reload_completed set to 1. + +2022-09-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/99407 + * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global. + (dse_classify_store): Use data-ref analysis to disambiguate more uses. + (pass_dse::use_dr_analysis_p): New pass parameter. + (pass_dse::set_pass_param): Implement. + (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map. + * passes.def: Allow DR analysis for the DSE pass before loop. + +2022-09-22 Richard Biener <rguenther@suse.de> + + * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New + function split out from ... + (vn_nary_op_insert_pieces_predicated): ... here. + +2022-09-22 liuhongt <hongtao.liu@intel.com> + + PR target/106994 + * config/i386/mmx.md (floorv2sf2): Fix typo, use + register_operand instead of vector_operand for operands[1]. + +2022-09-21 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/106967 + * value-range.cc (frange::set): Set known NANs to undefined for + flag_finite_math_only. + +2022-09-21 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::combine_zeros): Call set_undefined. + (frange::intersect_nans): Same. + (frange::intersect): Same. + (frange::verify_range): Undefined ranges do not have a type. + * value-range.h (frange::set_undefined): Clear NAN flags and type. + +2022-09-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106984 + * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in + a separate statement. + +2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT, + EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before + OPTION_DEFAULT_SPECS. + (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to + local_cpu_detect when rewriting -march=native and no -mcpu or -mtune + is given. + (CONFIG_TUNE_SPEC): Define. + (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune". + +2022-09-21 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/106967 + * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN. + (foperator_equal::op1_range): Same. + (foperator_not_equal::fold_range): Same. + (foperator_not_equal::op1_range): Same. + (foperator_lt::fold_range): Same. + (foperator_lt::op1_range): Same. + (foperator_lt::op2_range): Same. + (foperator_le::fold_range): Same. + (foperator_le::op1_range): Same. + (foperator_le::op2_range): Same. + (foperator_gt::fold_range): Same. + (foperator_gt::op1_range): Same. + (foperator_gt::op2_range): Same. + (foperator_ge::fold_range): Same. + (foperator_ge::op1_range): Same. + (foperator_ge::op2_range): Same. + (foperator_unordered::op1_range): Same. + (foperator_ordered::fold_range): Same. + (foperator_ordered::op1_range): Same. + (build_le): Assert that we don't have a NAN. + (build_lt): Same. + (build_gt): Same. + (build_ge): Same. + +2022-09-21 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/106963 + * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use + vec_gen_perm_mask_any instead of vec_gen_perm_mask_check. + +2022-09-20 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (frange::maybe_isnan): Return false for + undefined ranges. + +2022-09-20 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set_nonnegative): Set +NAN. + (range_tests_signed_zeros): New test. + * value-range.h (frange::update_nan): New overload to set NAN sign. + +2022-09-20 Richard Sandiford <richard.sandiford@arm.com> + + PR target/106491 + * config/aarch64/aarch64-sve-builtins.cc (scalar_types) + (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY + markup to (new) extern declarations instead of to the main + definition. + +2022-09-20 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/106794 + PR tree-optimization/106914 + * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost): + Only consider loads that already have a permutation. + (vect_optimize_slp_pass::start_choosing_layouts): Assert that + loads with permutations are leaf nodes. Prevent any kind of grouped + access from changing layout if it doesn't have a load permutation. + +2022-09-20 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict + early-out optimisation to SSA_NAMEs. + +2022-09-20 Martin Liska <mliska@suse.cz> + + * ctfc.cc (ctf_add_string): Replace "the the" with "the". + * doc/md.texi: Likewise. + * gimple-range-infer.cc (non_null_loadstore): Likewise. + +2022-09-20 liuhongt <hongtao.liu@intel.com> + + PR target/106910 + * config/i386/mmx.md (nearbyintv2sf2): New expander. + (rintv2sf2): Ditto. + (ceilv2sf2): Ditto. + (lceilv2sfv2si2): Ditto. + (floorv2sf2): Ditto. + (lfloorv2sfv2si2): Ditto. + (btruncv2sf2): Ditto. + (lrintv2sfv2si2): Ditto. + (roundv2sf2): Ditto. + (lroundv2sfv2si2): Ditto. + (*mmx_roundv2sf2): New define_insn. + +2022-09-20 konglin1 <lingling.kong@intel.com> + + PR middle-end/105735 + * tree-scalar-evolution.cc + (analyze_and_compute_bitop_with_inv_effect): New function. + (final_value_replacement_loop): Enhanced to handle bitop + with inv induction. + +2022-09-20 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For + -static-pie, pass -static -pie --no-dynamic-linker -z text to + the linker, and do not pass --dynamic-linker. + +2022-09-20 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::flush_denormals_to_zero): New. + (frange::set): Call flush_denormals_to_zero. + * value-range.h (class frange): Add flush_denormals_to_zero. + +2022-09-20 liuhongt <hongtao.liu@intel.com> + + * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for + latest Intel processors. + +2022-09-20 konglin1 <lingling.kong@intel.com> + + PR target/106887 + * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate): + Fixed V16BF mode case. + +2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> + + * targhooks.cc (default_zero_call_used_regs): Improve sorry + message. + +2022-09-18 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (omp_segregate_mapping_groups): Update comment. + (gimplify_adjust_omp_clauses): Move ATTACH and + ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list + for offloaded OpenMP regions. + +2022-09-18 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/106831 + * value-range.cc (frange::singleton_p): Avoid propagating long + doubles that may have multiple representations. + +2022-09-18 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (frange_add_zeros): Replace set_signbit with + union of zero. + * value-query.cc (range_query::get_tree_range): Remove set_signbit + use. + * value-range-pretty-print.cc (vrange_printer::print_frange_prop): + Remove. + (vrange_printer::print_frange_nan): New. + * value-range-pretty-print.h (print_frange_prop): Remove. + (print_frange_nan): New. + * value-range-storage.cc (frange_storage_slot::set_frange): Set + kind and NAN fields. + (frange_storage_slot::get_frange): Restore kind and NAN fields. + * value-range-storage.h (class frange_storage_slot): Add kind and + NAN fields. + * value-range.cc (frange::update_nan): Remove. + (frange::set_signbit): Remove. + (frange::set): Adjust for NAN fields. + (frange::normalize_kind): Remove m_props. + (frange::combine_zeros): New. + (frange::union_nans): New. + (frange::union_): Handle new NAN fields. + (frange::intersect_nans): New. + (frange::intersect): Handle new NAN fields. + (frange::operator=): Same. + (frange::operator==): Same. + (frange::contains_p): Same. + (frange::singleton_p): Remove special case for signed zeros. + (frange::verify_range): Adjust for new NAN fields. + (frange::set_zero): Handle signed zeros. + (frange::set_nonnegative): Same. + (range_tests_nan): Adjust tests. + (range_tests_signed_zeros): Same. + (range_tests_signbit): Same. + (range_tests_floats): Same. + * value-range.h (class fp_prop): Remove. + (FP_PROP_ACCESSOR): Remove. + (class frange_props): Remove + (frange::lower_bound): NANs don't have endpoints. + (frange::upper_bound): Same. + (frange_props::operator==): Remove. + (frange_props::union_): Remove. + (frange_props::intersect): Remove. + (frange::update_nan): New. + (frange::clear_nan): New. + (frange::undefined_p): New. + (frange::set_nan): New. + (frange::known_finite): Adjust for new NAN representation. + (frange::maybe_isnan): Same. + (frange::known_isnan): Same. + (frange::signbit_p): Same. + * gimple-range-fold.cc (range_of_builtin_int_call): Rename + known_signbit_p into signbit_p. + +2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de> + + * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int) + to prevent warning. + +2022-09-17 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/106958 + * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If + id >= l, cast op to type1, otherwise to pointer_sized_int_node. + If type has pointer type, cast exp to pointer_sized_int_node + even when id < l. + +2022-09-16 liuhongt <hongtao.liu@intel.com> + + PR target/106910 + * config/i386/i386-builtins.cc + (ix86_builtin_vectorized_function): Modernized with + corresponding expanders. + * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New + expander. + (floor<mode>2): Ditto. + (lfloor<mode><sseintvecmodelower>2): Ditto. + (ceil<mode>2): Ditto. + (lceil<mode><sseintvecmodelower>2): Ditto. + (btrunc<mode>2): Ditto. + (lround<mode><sseintvecmodelower>2): Ditto. + (exp2<mode>2): Ditto. + +2022-09-15 Joseph Myers <joseph@codesourcery.com> + + * ginclude/float.h (INFINITY): Define only if + [__FLT_HAS_INFINITY__]. + +2022-09-15 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106922 + * tree-ssa-pre.cc (translate_vuse_through_block): Only + keep the VUSE if its def dominates PHIBLOCK. + (prune_clobbered_mems): Rewrite logic so we check whether + a value dies in a block when the VUSE def doesn't dominate it. + +2022-09-15 Richard Biener <rguenther@suse.de> + + * tree.cc (build_common_tree_nodes): Initialize void_list_node + here. + +2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com> + + PR target/106550 + * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli. + +2022-09-14 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (frange_add_zeros): New. + (build_le): Call frange_add_zeros. + (build_ge): Same. + (foperator_equal::op1_range): Same. + (foperator_not_equal::op1_range): Same. + +2022-09-14 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (build_le): Accept frange instead of number. + (build_lt): Same. + (build_ge): Same. + (build_gt): Same. + (foperator_lt::op1_range): Pass full range to build_*. + (foperator_lt::op2_range): Same. + (foperator_le::op1_range): Same. + (foperator_le::op2_range): Same. + (foperator_gt::op1_range): Same. + (foperator_gt::op2_range): Same. + (foperator_ge::op1_range): Same. + (foperator_ge::op2_range): Same. + +2022-09-14 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Use set_nan. + * value-range.h (frange::set_nan): Inline code originally in + set(). + +2022-09-14 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (frange_set_nan): Remove. + (build_lt): Use set_nan, update_nan, clear_nan. + (build_gt): Same. + (foperator_equal::op1_range): Same. + (foperator_not_equal::op1_range): Same. + (foperator_lt::op1_range): Same. + (foperator_lt::op2_range): Same. + (foperator_le::op1_range): Same. + (foperator_le::op2_range): Same. + (foperator_gt::op1_range): Same. + (foperator_gt::op2_range): Same. + (foperator_ge::op1_range): Same. + (foperator_ge::op2_range): Same. + (foperator_unordered::op1_range): Same. + (foperator_ordered::op1_range): Same. + * value-query.cc (range_query::get_tree_range): Same. + * value-range.cc (frange::set_nan): Same. + (frange::update_nan): Same. + (frange::union_): Same. + (frange::intersect): Same. + (range_tests_nan): Same. + (range_tests_signed_zeros): Same. + (range_tests_signbit): Same. + (range_tests_floats): Same. + * value-range.h (class frange): Add update_nan and clear_nan. + (frange::set_nan): New. + +2022-09-14 Aldy Hernandez <aldyh@redhat.com> + + * value-query.cc (range_query::get_tree_range): Remove check for overflow. + * value-range-pretty-print.cc (vrange_printer::visit): Move read + of type until after undefined_p is checked. + * value-range.cc (frange::set): Remove asserts for REAL_CST. + (frange::contains_p): Tidy up. + (range_tests_nan): Add comment. + * value-range.h (frange::type): Check for undefined_p. + (frange::set_undefined): Remove set of endpoints. + +2022-09-14 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after + GOMP_MAP_STRUCT (for reindexing). + (omp_gather_mapping_groups): Reimplement using... + (omp_gather_mapping_groups_1): This new function. Stop processing at + GATHER_SENTINEL. + (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node. + (omp_index_mapping_groups): Reimplement using... + (omp_index_mapping_groups_1): This new function. Handle + REINDEX_SENTINEL. + (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New + functions. + (omp_tsort_mapping_groups_1): Adjust handling of base group being the + same as current group. Use omp_mapped_by_containing_struct. + (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct + and omp_reindex_mapping_groups. Robustify group deletion for reordered + lists. + (gimplify_scan_omp_clauses): Update calls to + omp_build_struct_sibling_lists. + +2022-09-14 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS. + (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber. + (insert_struct_comp_map): Refactor function into... + (build_omp_struct_comp_nodes): This new function. Remove list handling + and improve self-documentation. + (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move + code to strip outer parts of address out of function, but strip no-op + conversions. + (omp_mapping_group): Add DELETED field for use during reindexing. + (omp_strip_components_and_deref, omp_strip_indirections): New functions. + (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling. + (omp_gather_mapping_groups): Initialise DELETED field for new groups. + (omp_index_mapping_groups): Notice DELETED groups when (re)indexing. + (omp_siblist_insert_node_after, omp_siblist_move_node_after, + omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New + helper functions. + (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT + node groups for sibling lists. Outlined from gimplify_scan_omp_clauses. + (omp_build_struct_sibling_lists): New function. + (gimplify_scan_omp_clauses): Remove struct_map_to_clause, + struct_seen_clause, struct_deref_set. Call + omp_build_struct_sibling_lists as pre-pass instead of handling sibling + lists in the function's main processing loop. + (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS + handling, unused now. + * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect + struct references, and references to pointers to structs also. + +2022-09-14 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106938 + * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal + edges for all last stmts in a block. Do EH cleanup + only on the last stmt in a block. + +2022-09-14 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/106936 + * value-query.cc (range_query::get_value_range): Remove assert. + +2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de> + + * config/mips/mips.cc (mips_option_override): Drop unused variable. + +2022-09-14 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete + functions. + (omp_tsort_mark): Add enum. + (omp_mapping_group): Add struct. + (debug_mapping_group, omp_get_base_pointer, omp_get_attachment, + omp_group_last, omp_gather_mapping_groups, omp_group_base, + omp_index_mapping_groups, omp_containing_struct, + omp_tsort_mapping_groups_1, omp_tsort_mapping_groups, + omp_segregate_mapping_groups, omp_reorder_mapping_groups): New + functions. + (gimplify_scan_omp_clauses): Call above functions instead of + omp_target_reorder_clauses, unless we've seen an error. + * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't + sorted mapping groups. + +2022-09-14 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/106878 + * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer, + reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless + the second argument is INTEGER_CST, BIT_AND_EXPR. + * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)), + (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for + POINTER_TYPE_P or OFFSET_TYPE. + * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For + pointers cast them to pointer sized integers first. + +2022-09-14 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106934 + * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs + of bitfields. + (maybe_rewrite_mem_ref_base): Likewise. + +2022-09-14 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/106905 + * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return + false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) && + LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0. + +2022-09-13 Roger Sayle <roger@nextmovesoftware.com> + + PR target/106877 + * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm + in gcc_assert. + +2022-09-13 Max Filippov <jcmvbkbc@gmail.com> + + Revert: + 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P): + New macro definition. + (xtensa_constant_ok_for_cprop_p): + Implement the hook as mentioned above. + +2022-09-13 Kewen Lin <linkw@linux.ibm.com> + + PR target/104482 + * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix + the equality check for argument number, and move this hunk ahead. + +2022-09-13 Kewen.Lin <linkw@gcc.gnu.org> + + PR target/105485 + * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add + the handling for unresolved overloaded builtin function. + (rs6000_expand_builtin): Likewise. + +2022-09-13 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members + m_nstores, m_reduc_factor, m_gather_load and member function + determine_suggested_unroll_factor. + (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores, + m_reduc_factor and m_gather_load. + (rs6000_cost_data::determine_suggested_unroll_factor): New function. + (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor. + * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter. + (rs6000-vect-unroll-issue): Likewise. + (rs6000-vect-unroll-reduc-threshold): Likewise. + * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter. + +2022-09-13 Richard Biener <rguenther@suse.de> + + PR middle-end/106909 + * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering + flag of a unreachable call. + +2022-09-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106913 + * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set + ft_reachable on EXIT_BLOCK. + +2022-09-13 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use + TARGET_FLOAT instead of TARGET_SIMD. + (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to + TARGET_SIMD. + (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors + in GPRs. + (aarch64_classify_address): Treat little-endian structure moves + like big-endian for TARGET_FLOAT && !TARGET_SIMD. + (aarch64_secondary_memory_needed): New function. + (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors + in the same way as TF, TI and TD. + (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD. + (aarch64_rtx_costs): Likewise. + (aarch64_register_move_cost): Treat a pair of 64-bit vectors + separately from a single 128-bit vector. Handle the cost implied + by aarch64_secondary_memory_needed. + (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to + TARGET_SIMD. + (aarch64_expand_vec_perm_const_1): Likewise. + (TARGET_SECONDARY_MEMORY_NEEDED): New macro. + * config/aarch64/iterators.md (VTX): New iterator. + * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd. + (arch_enabled): Adjust accordingly. + (@aarch64_reload_mov<TX:mode>): Extend to... + (@aarch64_reload_mov<VTX:mode>): ...this. + * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT + rather than TARGET_SIMD. + (movmisalign<mode>): Likewise. + (load_pair<DREG:mode><DREG2:mode>): Likewise. + (vec_store_pair<DREG:mode><DREG2:mode>): Likewise. + (load_pair<VQ:mode><VQ2:mode>): Likewise. + (vec_store_pair<VQ:mode><VQ2:mode>): Likewise. + (@aarch64_split_simd_mov<mode>): Likewise. + (aarch64_get_low<mode>): Likewise. + (aarch64_get_high<mode>): Likewise. + (aarch64_get_half<mode>): Likewise. Canonicalize to a move for + lowpart extracts. + (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than + TARGET_SIMD. Use different w<-w and r<-w instructions for + !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but + add an alternative specifically for w<-Z. + (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than + TARGET_SIMD. Likewise for the associated define_splits. Disable + FPR moves and immediate moves for !TARGET_SIMD but add an alternative + specifically for w<-Z. + (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than + TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD + but add a new r<-w one for !TARGET_SIMD. + (*aarch64_get_high<mode>): New pattern. + (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD. + (store_pair_lanes<mode>): Likewise. + (*aarch64_combine_internal<mode>): Likewise. Restrict existing + w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r + alternative for !TARGET_SIMD. + (*aarch64_combine_internal_be<mode>): Likewise. + (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD. + Remove bogus arch attribute. + (*aarch64_combinez_be<mode>): Likewise. + (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than + TARGET_SIMD. + (aarch64_combine<mode>): Likewise. + (aarch64_rev_reglist<mode>): Likewise. + (mov<mode>): Likewise. + (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT && + !TARGET_SIMD, regardless of endianness. Extend associated + define_splits in the same way, both for this pattern and the + ones below. + (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w + alternative to TARGET_SIMD. + (*aarch64_be_movoi): Likewise. + (*aarch64_be_movci): Likewise. + (*aarch64_be_movxi): Likewise. + (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT + && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative + to TARGET_SIMD for tuples of 128-bit vectors. + (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise. + * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition + from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in + the VQ and VP_2E LDP and STP peepholes. + +2022-09-13 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD + condition. Likewise for the related define_split. Tweak formatting. + +2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P): + New macro definition. + (xtensa_constant_ok_for_cprop_p): + Implement the hook as mentioned above. + +2022-09-12 Joseph Myers <joseph@codesourcery.com> + + * ginclude/stdatomic.h [defined __STDC_VERSION__ && + __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define. + +2022-09-12 Tobias Burnus <tobias@codesourcery.com> + + * config/nvptx/mkoffload.cc (process): Replace a fatal_error by + a warning + not enabling offloading if -misa=sm_30 prevents + reverse offload. + (main): Use tool_name as progname for diagnostic. + * config/gcn/mkoffload.cc (main): Likewise. + +2022-09-12 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set_signbit): Avoid changing sign when + already in the correct sign. + +2022-09-12 Max Filippov <jcmvbkbc@gmail.com> + + * config/xtensa/xtensa.cc (xtensa_function_value_regno_p): + Recognize all 4 return registers. + * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition. + * config/xtensa/xtensa.md (untyped_call): New pattern. + +2022-09-12 Jonathan Wakely <jwakely@redhat.com> + + * doc/extend.texi (Floating Types): Fix "_float128" typo. + +2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_constantsynth): + Add new pattern for the abovementioned case. + +2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com> + Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code. + +2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md: Rewrite the split pattern that performs + the abovementioned process so that insns that overwrite clobbered + register no longer need to be contiguous. + (DSC): Remove as no longer needed. + +2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (machine_function): New boolean member as + a flag that controls whether to emit the insns for stack pointer + adjustment inside of the pro/epilogue. + (xtensa_emit_adjust_stack_ptr): New function to share the common + codes and to emit insns if not inhibited. + (xtensa_expand_epilogue): Change to use the function mentioned + above when using the CALL0 ABI. + (xtensa_expand_prologue): Ditto. + And also change to set the inhibit flag used by + xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only + used for its own adjustment. + +2022-09-09 David Malcolm <dmalcolm@redhat.com> + + * doc/invoke.texi (Static Analyzer Options): Add + -Wanalyzer-exposure-through-uninit-copy. + +2022-09-09 David Malcolm <dmalcolm@redhat.com> + + * Makefile.in (ANALYZER_OBJS): Add + analyzer/known-function-manager.o. + +2022-09-09 Tobias Burnus <tobias@codesourcery.com> + + * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member. + (record_id): Store func name without quotes, store dim separately. + (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is + at least sm_35, create '$offload_func_table' global array and init + with reverse-offload function addresses. + * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New + force_public attribute to force .visible. + (nvptx_declare_function_name): For "omp target + device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC. + +2022-09-09 Tobias Burnus <tobias@codesourcery.com> + + * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table, + similar to pre-existing .offload_var_table. + +2022-09-09 Joseph Myers <joseph@codesourcery.com> + + * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable): + New macro. + +2022-09-09 Kewen Lin <linkw@linux.ibm.com> + + PR middle-end/106833 + * tree.cc (verify_opaque_type): New function. + (verify_type): Call verify_opaque_type for OPAQUE_TYPE. + +2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com> + + * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP, + FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins. + * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype. + * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG, + MATH_UNOP_TRIG): New iterators. + (math_unop): New attributes. + (<math_unop><mode>2, <math_unop><mode>2<exec>, + <math_unop><mode>2, <math_unop><mode>2<exec>, + *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn, + ldexp<mode>3, ldexp<mode>3<exec>, + frexp<mode>_exp2, frexp<mode>_mant2, + frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions. + (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders. + * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of + dconst1over2pi. + (gcn_dconst1over2pi): New. + (gcn_builtin_type_index): Add entry for v64df type. + (v64df_type_node): New. + (gcn_init_builtin_types): Initialize v64df_type_node. + (gcn_expand_builtin_1): Expand new builtins to instructions. + (print_operand): Fix assembler output for 1/(2*PI) constant. + * config/gcn/gcn.md (unspec): Add new entries. + +2022-09-09 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106722 + * tree-predcom.cc (ref_at_iteration): Do not associate the + constant part of the offset into the MEM_REF offset + operand, across a non-zero offset. + +2022-09-09 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB): + Move forward for cover all all necessary functions for suppress + unused function warnings. + (riscv_multi_lib_check): Move forward, and tweak message to suppress + -Werror=format-diag warning. + +2022-09-09 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106881 + * gimple-predicate-analysis.cc (simple_control_dep_chain): + Add only non-fallthru edges and avoid the same set of edges + as compute_control_dep_chain_pdom does. + +2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de> + + * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement + of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well. + * doc/tm.texi: Regenerate. + +2022-09-09 Martin Liska <mliska@suse.cz> + + * optc-save-gen.awk: Always compare array option values with memcmp. + +2022-09-08 Jonathan Wakely <jwakely@redhat.com> + + PR c++/106838 + * doc/extend.texi (Type Traits): Fix requirements. Document + __is_aggregate and __is_final. + +2022-09-08 Tim Lange <mail@tim-lange.me> + + PR analyzer/106625 + * doc/invoke.texi: + State that the checker also reasons about symbolic values. + +2022-09-08 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/106886 + * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout): + Fix copying of scalar stmts. + +2022-09-08 Chung-Lin Tang <cltang@codesourcery.com> + + * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define. + +2022-09-08 Richard Biener <rguenther@suse.de> + + PR middle-end/106870 + * gimple-harden-conditionals.cc (insert_check_and_trap): + Set the control-altering flag on the built IFN_TRAP. + * gimple.cc (gimple_build_builtin_unreachable): Likewise. + * tree-cfg.cc (handle_abnormal_edges): Set the control-altering + flag on the .ABNORMAL_DISPATCHER call. + * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid + resetting the control altering flag for ECF_NORETURN calls. + (cleanup_control_flow_bb): Set the control altering flag on + discovered noreturn calls. + * symtab-thunks.cc (expand_thunk): Set the control altering + flag for the noreturn tailcall case. + * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume + calls. + +2022-09-08 Jakub Jelinek <jakub@redhat.com> + + * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument. + Add doacross(sink:omp_cur_iteration-1) support. + (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1]. + Adjust expand_omp_ordered_sink caller. + (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is + non-NULL, set that variable to true at the start of outermost + non-collapsed loop and set it to false at the end of innermost + ordered loop. + (expand_omp_for_generic): If fd->ordered, allocate + 1 + (fd->ordered - fd->collapse) further elements in counts array. + Copy to counts + 2 + fd->ordered the counts of fd->collapse .. + fd->ordered - 1 loop if any. + +2022-09-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106881 + * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom): + Add only non-fallthru edges and avoid the same set of edges + as the caller does. + +2022-09-08 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc + (fold_using_range::range_of_builtin_int_call): Use fpclassify like API. + * range-op-float.cc (finite_operand_p): Same. + (finite_operands_p): Same. + (foperator_lt::fold_range): Same. + (foperator_le::fold_range): Same. + (foperator_gt::fold_range): Same. + (foperator_ge::fold_range): Same. + (foperator_unordered::fold_range): Same. + (foperator_unordered::op1_range): Same. + (foperator_ordered::fold_range): Same. + * value-range.cc (frange::set_nan): Same. + (frange::set_signbit): Same. + (frange::union_): Same. + (frange::intersect): Same. + (frange::operator==): Same. + (frange::singleton_p): Same. + (frange::verify_range): Same. + (range_tests_nan): Same. + (range_tests_floats): Same. + * value-range.h(frange::known_finite): New. + (frange::maybe_inf): New. + (frange::known_inf): New. + (frange::maybe_nan): New. + (frange::known_nan): New. + (frange::known_signbit): New. + +2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org> + + * config/darwin-d.cc: Include tm.h. + * config/dragonfly-d.cc: Likewise. + * config/freebsd-d.cc: Remove memmodel.h. + * config/glibc-d.cc: Likewise. + * config/netbsd-d.cc: Include tm.h. + * config/openbsd-d.cc: Likewise. + * config/sol2-d.cc: Likewise. + +2022-09-08 Christophe Lyon <christophe.lyon@arm.com> + + * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use + MVE_pred/MVE_constraint instead of mve_imm_7/Ra. + (mve_vqshluq_m_n_s<mode>): Likewise. + (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3 + instead of mve_imm_8/Rb. + (mve_vqrshrunbq_n_s<mode>): Likewise. + (mve_vqrshrntq_n_<supf><mode>): Likewise. + (mve_vqrshruntq_n_s<mode>): Likewise. + (mve_vrshrnbq_n_<supf><mode>): Likewise. + (mve_vrshrntq_n_<supf><mode>): Likewise. + (mve_vqrshrnbq_m_n_<supf><mode>): Likewise. + (mve_vqrshrntq_m_n_<supf><mode>): Likewise. + (mve_vrshrnbq_m_n_<supf><mode>): Likewise. + (mve_vrshrntq_m_n_<supf><mode>): Likewise. + (mve_vqrshrunbq_m_n_s<mode>): Likewise. + (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead + of mve_imm_selective_upto_8/Rg. + (mve_vsriq_m_n_<supf><mode>): Likewise. + +2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com> + + * config/rs6000/rs6000.md (splitter for set to and_mask constants): + Use int_reg_operand (instead of int_reg_operand_not_pseudo). + (splitter for multi-insn constant loads): Ditto. + +2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if + -mvrsave is present. + * config/rs6000/t-rtems: Add -mvrsave multilib variants for + -mcpu=e6500. + +2022-09-07 Martin Liska <mliska@suse.cz> + + * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS. + * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it. + * configure: Regenerate. + * config.in: Regenerate. + +2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com> + + PR rtl-optimization/105586 + * sched-rgn.cc (save_state_for_fallthru_edge): New function. + (schedule_region): Use it for all blocks. + +2022-09-07 Joseph Myers <joseph@codesourcery.com> + + * ginclude/stdalign.h [defined __STDC_VERSION__ && + __STDC_VERSION__ > 201710L]: Disable all content. + * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__ + > 201710L] (bool, true, false): Do not define. + +2022-09-07 Martin Liska <mliska@suse.cz> + + PR bootstrap/106855 + * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): + Restore usage of XCOFF_DEBUGGING_INFO. + * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore. + * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for + XCOFF_DEBUGGING_INFO. + (dw2_asm_output_nstring): Likewise. + (USE_LINKONCE_INDIRECT): Likewise. + * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise. + (HAVE_XCOFF_DWARF_EXTRAS): Likewise. + (output_fde): Likewise. + (output_call_frame_info): Likewise. + (have_macinfo): Likewise. + (add_AT_loc_list): Likewise. + (add_AT_view_list): Likewise. + (output_compilation_unit_header): Likewise. + (output_pubnames): Likewise. + (output_aranges): Likewise. + (output_line_info): Likewise. + (output_macinfo): Likewise. + (dwarf2out_finish): Likewise. + (dwarf2out_early_finish): Likewise. + +2022-09-07 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106866 + * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When + we changed cfun->calls_setjmp make sure to purge all + abnormal call edges. + +2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com> + + * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of + float LE comparing with zero for fpuv3. + * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2 + features are enabled. + +2022-09-07 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106860 + * tree-ssa-loop-split.cc (split_loop): Find the exit to + latch edge from the loop exit edge instead of from the + latch. Verify we're going to find it. + +2022-09-07 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (dfs_mark_dominating_region): + Adjust to take the region exit source as argument. + (uninit_analysis::init_from_phi_def): Adjust. + (uninit_analysis::init_use_preds): Mark the dominating region + before computing control dependences. + +2022-09-07 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend + w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves + in that case. Extend w<-r to w<-Z. + (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z. + (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not + available. + (define_split): Do not apply the floating-point immediate-to-register + split to zeros, even if MOVI is not available. + +2022-09-07 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.cc (aarch64_conditional_register_usage): + Disallow use of FPRs in register asms for !TARGET_FLOAT. + +2022-09-07 Lulu Cheng <chenglulu@loongson.cn> + + PR target/106828 + * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New. + (TARGET_ASAN_SHADOW_OFFSET): New. + +2022-09-07 Jakub Jelinek <jakub@redhat.com> + + * doc/invoke.texi (-Wno-unicode): Document. + +2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com> + + * config/rs6000/rs6000.md (const_scalar_int splitter): Remove. + +2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com> + + * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the + replacements. + +2022-09-07 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/103144 + * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function. + (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function. + (vect_create_nonlinear_iv_init): New function. + (vect_peel_nonlinear_iv_init): Ditto. + (vect_create_nonlinear_iv_step): Ditto + (vect_create_nonlinear_iv_vec_step): Ditto + (vect_update_nonlinear_iv): Ditto + (vectorizable_nonlinear_induction): Ditto. + (vectorizable_induction): Call + vectorizable_nonlinear_induction when induction_type is not + vect_step_op_add. + * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): + Update nonlinear iv for epilogue loop. + * tree-vectorizer.h (enum vect_induction_op_type): New enum. + (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro. + +2022-09-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106754 + * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom): + New function, split out from compute_control_dep_chain. Handle + loop-exit like conditions here by pushing to the control vector. + (compute_control_dep_chain): Adjust and streamline dumping. + In the wrapper perform a post-dominator walk as well. + (uninit_analysis::init_use_preds): Remove premature early exit. + +2022-09-06 Max Filippov <jcmvbkbc@gmail.com> + + * config/xtensa/linux.h (LINK_SPEC): Add static-pie. + +2022-09-06 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (build_le): Handle NANs and going past infinity. + (build_lt): Same. + (build_ge): Same. + (build_gt): Same. + (foperator_lt::op1_range): Avoid adjustments to range if build_* + returned false. + (foperator_lt::op2_range): Same. + (foperator_le::op1_range): Same. + (foperator_le::op2_range): Same. + (foperator_gt::op1_range): Same. + (foperator_gt::op2_range): Same. + +2022-09-06 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (compute_control_dep_chain): + Add output flag to indicate whether we possibly have dropped + any chains. Return whether the info is complete from the + wrapping overload. + (uninit_analysis::init_use_preds): Adjust accordingly, with + a workaround for PR106754. + (uninit_analysis::init_from_phi_def): Properly guard the + case where we complete an empty chain. + +2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de> + + * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument. + +2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector + type with same element type as arg0, and length as op2. + +2022-09-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106844 + * gimple-predicate-analysis.cc (compute_control_dep_chain): + Return whether we found a chain. + +2022-09-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106841 + * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process + scatter/gather offset. + +2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de> + + * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void). + +2022-09-06 Jakub Jelinek <jakub@redhat.com> + + * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator. + (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of + GIMPLE_OMP_TEAMS as upper bound. + (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New + inline functions. + * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with + NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause. + (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED + with NULL OMP_ORDERED_BODY. + * omp-low.cc (check_omp_nesting_restrictions): Use + gimple_omp_ordered_standalone_p test instead of + omp_find_clause (..., OMP_CLAUSE_DOACROSS). + (lower_omp_ordered): Likewise. + * omp-expand.cc (expand_omp, build_omp_regions_1, + omp_make_gimple_edges): Likewise. + +2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com> + + * config/csky/csky.md (cskyv2_addcc): Fix missing operand. + (cskyv2_addcc_invert): Likewise. + +2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com> + + * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic + `insn'. + (bpf_expand_epilogue): Likewise. + +2022-09-06 liuhongt <hongtao.liu@intel.com> + + * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512): + Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae. + * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to .. + (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this. + (avx512f_vcvtps2ph512_mask_sae): New expander + +2022-09-05 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc + (fold_using_range::range_of_builtin_int_call): Ignore sign bit + when there's the possibility of a NAN. + +2022-09-05 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc + (fold_using_range::range_of_builtin_int_call): Fold a set signbit + in __builtin_signbit to nonzero. + +2022-09-05 Alexander Monakov <amonakov@ispras.ru> + + PR target/106453 + * config/i386/i386.md (sse4_2_crc32di): Model that only low 32 + bits of operand 0 are consumed, and the result is zero-extended + to 64 bits. + +2022-09-05 Aldy Hernandez <aldyh@redhat.com> + + PR middle-end/106831 + * value-range.h (frange::supports_p): Disable decimal floats. + * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P + check. + (frange_drop_ninf): Same. + +2022-09-05 Aldy Hernandez <aldyh@redhat.com> + + PR middle-end/106824 + * value-range.cc (frange::set_nan): Set undefined when updating a + NAN to a non-NAN. + +2022-09-05 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/riscv.cc (riscv_option_override): Fix wrong + condition for MASK_DIV and simplify incompatible checking. + * config/riscv/riscv.md (muldi3): Adding parentheses. + +2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch + string is a valid -mcpu string and emit hint. + +2022-09-05 LiaoShihua <shihua@iscas.ac.cn> + + * common/config/riscv/riscv-common.cc: Add Zmmul. + * config/riscv/riscv-opts.h (MASK_ZMMUL): New. + (TARGET_ZMMUL): Ditto. + * config/riscv/riscv.cc (riscv_option_override):Ditto. + * config/riscv/riscv.md: Add Zmmul + * config/riscv/riscv.opt: Ditto. + +2022-09-05 Richard Biener <rguenther@suse.de> + + * tree-cfg.h (get_cases_for_edge): Declare. + * tree-cfg.cc (get_cases_for_edge): Export. + * tree-ssa-uninit.cc (execute_late_warn_uninitialized): + Start and end recording case labels. + * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove. + (predicate::init_from_control_deps): Use get_cases_for_edge. + +2022-09-05 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove. + (compute_control_dep_chain): Move uninit-control-dep-attempts + checking where it also counts the post-dominator check + invocations. + +2022-09-05 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.h (predicate::debug): New. + (predicate::dump): Add FILE * argument, add base overload. + * gimple-predicate-analysis.cc (debug): New. + (dump_pred_info): Add FILE * argument. + (dump_pred_chain): Likewise. + (predicate::dump): Split out preamble into overload. Add + FILE * argument. + (predicate::debug): New. + (predicate::simplify): Adjust. + (predicate::normalize): Likewise. + (predicate::init_from_control_deps): Likewise. + +2022-09-05 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-protos.h + (aarch64_init_simd_builtins): Remove prototype. + * config/aarch64/aarch64-builtins.cc + (aarch64_simd_builtins_initialized_p): Delete. + (aarch64_init_simd_builtins): Make static. Remove protection + against multiple calls. + * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove + lazy SIMD builtin initialization. + * config/aarch64/aarch64.cc + (aarch64_option_valid_attribute_p): Likewise. + +2022-09-05 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/genopts/loongarch.opt.in: Add + -mdirect-extern-access option. + * config/loongarch/loongarch.opt: Regenerate. + * config/loongarch/loongarch.cc + (loongarch_symbol_binds_local_p): Return true if + TARGET_DIRECT_EXTERN_ACCESS. + (loongarch_option_override_internal): Complain if + -mdirect-extern-access is used with -fPIC or -fpic. + * doc/invoke.texi: Document -mdirect-extern-access for + LoongArch. + +2022-09-05 Martin Liska <mliska@suse.cz> + + * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to + DEBUGGER_REGNO. + * doc/tm.texi: Regenerate. + +2022-09-05 Martin Liska <mliska@suse.cz> + + * config/aarch64/aarch64-protos.h (aarch64_dbx_regno): + Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO. + (aarch64_debugger_regno): Likewise. + * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise. + (aarch64_debugger_regno): Likewise. + * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + (DWARF_FRAME_REGNUM): Likewise. + * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise. + * config/arc/arc.cc (arc_init_reg_tables): Likewise. + * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/arm/arm-protos.h (arm_dbx_regno): Likewise. + (arm_debugger_regno): Likewise. + * config/arm/arm.cc (arm_dbx_regno): Likewise. + (arm_debugger_regno): Likewise. + * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/c6x/c6x.cc: Likewise. + * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/cris/cris.h (enum reg_class): Likewise. + (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/csky/csky.cc (enum reg_class): Likewise. + * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise. + (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/gcn/gcn.cc (print_operand): Likewise. + * config/i386/bsd.h (ASM_QUAD): Likewise. + * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + (DWARF_FRAME_REGNUM): Likewise. + * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/gas.h: Likewise. + * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/i386.cc (enum reg_class): Likewise. + * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise. + (ia64_debugger_regno): Likewise. + * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise. + (ia64_dbx_regno): Likewise. + (ia64_debugger_regno): Likewise. + (process_cfa_adjust_cfa): Likewise. + (process_cfa_register): Likewise. + (ia64_asm_unwind_emit): Likewise. + * config/ia64/ia64.h: Likewise. + * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise. + * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + (__transfer_from_trampoline): Likewise. + * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise. + (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/microblaze/microblaze.cc (microblaze_option_override): Likewise. + * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + (GP_DBX_FIRST): Likewise. + (GP_DEBUGGER_FIRST): Likewise. + * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise. + (mmix_debugger_regno): Likewise. + * config/mmix/mmix.cc (mmix_dbx_regno): Likewise. + (mmix_debugger_regno): Likewise. + * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise. + (nds32_debugger_regno): Likewise. + * config/nds32/nds32.cc (nds32_dbx_regno): Likewise. + (nds32_debugger_regno): Likewise. + (nds32_use_blocks_for_constant_p): Likewise. + * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise. + (rs6000_debugger_regno): Likewise. + * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise. + (rs6000_debugger_regno): Likewise. + * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + (DWARF2_FRAME_REG_OUT): Likewise. + * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + (SH_DBX_REGISTER_NUMBER): Likewise. + (SH_DEBUGGER_REGNO): Likewise. + * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise. + (xtensa_debugger_regno): Likewise. + * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise. + (xtensa_debugger_regno): Likewise. + * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + * defaults.h (DBX_REGISTER_NUMBER): Likewise. + (DEBUGGER_REGNO): Likewise. + (DWARF_FRAME_REGNUM): Likewise. + * doc/tm.texi: Likewise. + * doc/tm.texi.in: Likewise. + * dwarf2out.cc (dbx_reg_number): Likewise. + (debugger_reg_number): Likewise. + (reg_loc_descriptor): Likewise. + (multiple_reg_loc_descriptor): Likewise. + (mem_loc_descriptor): Likewise. + * except.cc: Likewise. + +2022-09-05 konglin1 <lingling.kong@intel.com> + + PR target/106742 + * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate): + Handle V8BF mode. + (expand_vec_perm_broadcast_1): Ditto. + * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode. + (vec_set<mode>_0): Add @ to it. + (@vec_set<mode>_0): Ditto. + (vec_interleave_high<mode><mask_name>): Ditto. + (@vec_interleave_high<mode><mask_name>): Ditto. + (vec_interleave_low<mode><mask_name>): Ditto. + (@vec_interleave_low<mode><mask_name>): Ditto. + * config/i386/subst.md (SUBST_V): Add BF vector mode. + +2022-09-05 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (early_nan_resolve): Remove. + (frange::intersect): Handle NANs. + +2022-09-04 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::union_): Do not drop properties when + unioning a NAN with something else. + (range_tests_signed_zeros): Add tests. + +2022-09-04 Aldy Hernandez <aldyh@redhat.com> + + * real.cc (encode_ieee_single): Use real_isdenormal. + (encode_ieee_double): Same. + (encode_ieee_extended): Same. + (encode_ieee_quad): Same. + (encode_ieee_half): Same. + (encode_arm_bfloat_half): Same. + * real.h (real_isdenormal): New. + +2022-09-03 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::singleton_p): Move NAN check to the top. + +2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de> + + * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments. + +2022-09-03 Jakub Jelinek <jakub@redhat.com> + + * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS. + (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE + and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID. + (enum omp_clause_doacross_kind): New type. + (struct tree_omp_clause): Add subcode.doacross_kind member. + * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove. + (OMP_CLAUSE_DOACROSS_KIND): Define. + (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define. + (OMP_CLAUSE_DOACROSS_DEPEND): Define. + (OMP_CLAUSE_ORDERED_DOACROSS): Define. + * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add + OMP_CLAUSE_DOACROSS entries. + * tree-nested.cc (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS. + * tree-pretty-print.cc (dump_omp_clause): Don't handle + OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle + OMP_CLAUSE_DOACROSS. + * gimplify.cc (gimplify_omp_depend): Don't handle + OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. + (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS. + (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS. + (find_standalone_omp_ordered): New function. + (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search + body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found, + set OMP_CLAUSE_ORDERED_DOACROSS. + (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or + OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust + diagnostics that presence or absence of ordered clause parameter + is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use + actual user name of the clause - doacross or depend - in diagnostics. + * omp-general.cc (omp_extract_for_data): Don't set fd->ordered + if !OMP_CLAUSE_ORDERED_DOACROSS (t). If + OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t), + set fd->ordered to -1 and set it after the loop in that case to + fd->collapse. + * omp-low.cc (check_omp_nesting_restrictions): Don't handle + OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check + OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross + or depend - in diagnostics. Diagnose mixing of stand-alone and + block associated ordered constructs binding to the same loop. + (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK, + instead handle OMP_CLAUSE_DOACROSS. + (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of + OMP_CLAUSE_DEPEND. + (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and + OMP_CLAUSE_DEPEND_SINK. + * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for + doacross(sink:omp_cur_iteration-1). + (expand_omp_ordered_source_sink): Use + OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of + OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause + - doacross or depend - in diagnostics. + (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of + OMP_CLAUSE_DEPEND. + (build_omp_regions_1): Likewise. + (omp_make_gimple_edges): Likewise. + * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS. + * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise. + * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise. + +2022-09-02 David Malcolm <dmalcolm@redhat.com> + + PR c/90885 + * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow. + +2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org> + + PR d/105659 + * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h. + * config/aarch64/aarch64-d.cc: Include tm_d.h. + * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to + config/aarch64/aarch64-d.h. + (aarch64_d_register_target_info): Likewise. + * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of + tm_p.h. + * config/arm/arm-protos.h (arm_d_target_versions): Move to + config/arm/arm-d.h. + (arm_d_register_target_info): Likewise. + * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + * config/default-d.cc: Remove memmodel.h include. + * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h. + * config/glibc-d.cc: Likewise. + * config/i386/i386-d.cc: Include tm_d.h. + * config/i386/i386-protos.h (ix86_d_target_versions): Move to + config/i386/i386-d.h. + (ix86_d_register_target_info): Likewise. + (ix86_d_has_stdcall_convention): Likewise. + * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + (TARGET_D_HAS_STDCALL_CONVENTION): Likewise. + * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h. + * config/mips/mips-d.cc: Include tm_d.h. + * config/mips/mips-protos.h (mips_d_target_versions): Move to + config/mips/mips-d.h. + (mips_d_register_target_info): Likewise. + * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h. + * config/openbsd-d.cc: Likewise. + * config/pa/pa-d.cc: Include tm_d.h. + * config/pa/pa-protos.h (pa_d_target_versions): Move to + config/pa/pa-d.h. + (pa_d_register_target_info): Likewise. + * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + * config/riscv/riscv-d.cc: Include tm_d.h. + * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to + config/riscv/riscv-d.h. + (riscv_d_register_target_info): Likewise. + * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + * config/rs6000/rs6000-d.cc: Include tm_d.h. + * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to + config/rs6000/rs6000-d.h. + (rs6000_d_register_target_info): Likewise. + * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.: + (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.: + * config/s390/s390-d.cc: Include tm_d.h. + * config/s390/s390-protos.h (s390_d_target_versions): Move to + config/s390/s390-d.h. + (s390_d_register_target_info): Likewise. + * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h. + * config/sparc/sparc-d.cc: Include tm_d.h. + * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to + config/sparc/sparc-d.h. + (sparc_d_register_target_info): Likewise. + * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise. + (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise. + * configure: Regenerate. + * configure.ac (tm_d_file): Remove defaults.h. + (tm_d_include_list): Remove options.h and insn-constants.h. + * config/aarch64/aarch64-d.h: New file. + * config/arm/arm-d.h: New file. + * config/i386/i386-d.h: New file. + * config/mips/mips-d.h: New file. + * config/pa/pa-d.h: New file. + * config/riscv/riscv-d.h: New file. + * config/rs6000/rs6000-d.h: New file. + * config/s390/s390-d.h: New file. + * config/sparc/sparc-d.h: New file. + +2022-09-02 Aldy Hernandez <aldyh@redhat.com> + + * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf. + (fold_builtin_fpclassify): Same. + * fold-const-call.cc (fold_const_call_cc): Same. + * match.pd: Same. + * omp-low.cc (omp_reduction_init_op): Same. + * realmpfr.cc (real_from_mpfr): Same. + * tree.cc (build_complex_inf): Same. + +2022-09-02 Peter Bergner <bergner@linux.ibm.com> + + * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use + NOP_EXPR for MMA pointer casting. + +2022-09-02 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost): + Reduce the fallback cost to 1. Only use it if the number of + input lanes is equal to the number of output lanes. + +2022-09-02 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/106787 + * tree-vect-slp.cc (vect_map_to_instance): New function, split out + from... + (vect_bb_partition_graph_r): ...here. Replace the visited set + with a map from nodes to instances. Ensure that a node only + appears in one partition. + (vect_bb_partition_graph): Update accordingly. + +2022-09-02 Richard Biener <rguenther@suse.de> + + * timevar.def (TV_TREE_RPO_VN): New. + * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload. + * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker. + (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN. + (pass_fre::execute): Adjust. + * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust. + +2022-09-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106809 + * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have + more than one successor before doing extra work. + +2022-09-02 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc: Include <vector>. + (struct riscv_multi_lib_info_t): New. + (riscv_subset_list::match_score): Ditto. + (find_last_appear_switch): Ditto. + (prefixed_with): Ditto. + (struct multi_lib_info_t): Ditto. + (riscv_current_arch_str): Ditto. + (riscv_current_abi_str): Ditto. + (riscv_multi_lib_info_t::parse): Ditto. + (riscv_check_cond): Ditto. + (riscv_check_conds): Ditto. + (riscv_compute_multilib): Ditto. + (TARGET_COMPUTE_MULTILIB): Defined. + * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if + doing link. + (RISCV_USE_CUSTOMISED_MULTI_LIB): New. + * config/riscv/riscv.h (riscv_multi_lib_check): New. + (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check. + * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New. + +2022-09-02 Kito Cheng <kito.cheng@sifive.com> + + * common/common-target.def (compute_multilib): New. + * common/common-targhooks.h (default_compute_multilib): New. + * common/common-targhooks.cc (default_compute_multilib): New. + * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New. + * doc/tm.texi: Regen. + * gcc.cc: Include common/common-target.h. + (set_multilib_dir) Call targetm_common.compute_multilib. + (SWITCH_LIVE): Move to opts.h. + (SWITCH_FALSE): Ditto. + (SWITCH_IGNORE): Ditto. + (SWITCH_IGNORE_PERMANENTLY): Ditto. + (SWITCH_KEEP_FOR_GCC): Ditto. + (struct switchstr): Ditto. + * opts.h (SWITCH_LIVE): Move from gcc.c. + (SWITCH_FALSE): Ditto. + (SWITCH_IGNORE): Ditto. + (SWITCH_IGNORE_PERMANENTLY): Ditto. + (SWITCH_KEEP_FOR_GCC): Ditto. + (struct switchstr): Ditto. + +2022-09-02 Martin Liska <mliska@suse.cz> + + * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable + debugging format. + +2022-09-02 Martin Liska <mliska@suse.cz> + + * Makefile.in: Remove -gstabs option support, DBX-related + macros and DBX debugging info support. + * collect2.cc (scan_prog_file): Likewise. + * common.opt: Likewise. + * config.gcc: Likewise. + * config.in: Likewise. + * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise. + * config/alpha/alpha.cc: Likewise. + * config/alpha/elf.h (ASM_SPEC): Likewise. + * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise. + * config/darwin.h (DSYMUTIL_SPEC): Likewise. + (ASM_DEBUG_SPEC): Likewise. + (DBX_DEBUGGING_INFO): Likewise. + (DBX_USE_BINCL): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise. + * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + * config/i386/bsd.h (DBX_NO_XREFS): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + * config/i386/gas.h (DBX_NO_XREFS): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + * config/ia64/ia64.h: Likewise. + * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise. + * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise. + * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + (DBX_CONTIN_CHAR): Likewise. + * config/mips/mips.cc (mips_output_filename): Likewise. + (mips_option_override): Likewise. + * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise. + (DBX_DEBUGGING_INFO): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + (DBX_REGISTER_NUMBER): Likewise. + (GP_DBX_FIRST): Likewise. + (FP_DBX_FIRST): Likewise. + (MD_DBX_FIRST): Likewise. + * config/nvptx/nvptx.cc: Likewise. + * config/openbsd.h (DBX_NO_XREFS): Likewise. + * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise. + * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise. + (DBX_USE_BINCL): Likewise. + (DBX_LINES_FUNCTION_RELATIVE): Likewise. + (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise. + * config/pdp11/pdp11.cc: Likewise. + * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise. + (PREFERRED_DEBUGGING_TYPE): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + * config/rs6000/rs6000-builtin.cc: Likewise. + * config/rs6000/rs6000-call.cc: Likewise. + * config/rs6000/rs6000-logue.cc (defined): Likewise. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise. + (HAVE_XCOFF_DWARF_EXTRAS): Likewise. + (rs6000_xcoff_declare_function_name): Likewise. + * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise. + (DBX_FUNCTION_FIRST): Likewise. + * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise. + * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise. + * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise. + (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise. + * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise. + * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise. + * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise. + * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise. + * config/vax/vax.cc (vax_file_start): Likewise. + * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise. + (DBX_CONTIN_LENGTH): Likewise. + (DBX_CONTIN_CHAR): Likewise. + (DBX_NO_XREFS): Likewise. + (DBX_STATIC_STAB_DATA_SECTION): Likewise. + * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise. + (XCOFF_DEBUGGING_INFO): Likewise. + * configure: Regenerate. Likewise. + * configure.ac: Likewise. + * debug.h: Likewise. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/tm.texi: Likewise. + * doc/tm.texi.in: Likewise. + * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise. + (dw2_asm_output_nstring): Likewise. + (USE_LINKONCE_INDIRECT): Likewise. + * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise. + (HAVE_XCOFF_DWARF_EXTRAS): Likewise. + (output_fde): Likewise. + (output_call_frame_info): Likewise. + (have_macinfo): Likewise. + (add_AT_loc_list): Likewise. + (add_AT_view_list): Likewise. + (output_compilation_unit_header): Likewise. + (output_pubnames): Likewise. + (output_aranges): Likewise. + (output_line_info): Likewise. + (output_macinfo): Likewise. + (dwarf2out_finish): Likewise. + (dwarf2out_early_finish): Likewise. + * final.cc (final_scan_insn_1): Likewise. + (rest_of_handle_final): Likewise. + * flag-types.h (enum debug_info_type): Likewise. + (DBX_DEBUG): Likewise. + (XCOFF_DEBUG): Likewise. + * function.cc (defined): Likewise. + * gcc.cc (defined): Likewise. + (ASM_DEBUG_SPEC): Likewise. + (ASM_DEBUG_OPTION_SPEC): Likewise. + * opts.cc (common_handle_option): Likewise. + (set_debug_level): Likewise. + * system.h (fancy_abort): Likewise. + * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise. + (TARGET_ASM_DESTRUCTOR): Likewise. + * toplev.cc (defined): Likewise. + * varasm.cc: Likewise. + * config/dbxcoff.h: Removed. + * config/dbxelf.h: Removed. + * dbxout.cc: Removed. + * dbxout.h: Removed. + * gstab.h: Removed. + * stab.def: Removed. + * xcoffout.cc: Removed. + * xcoffout.h: Removed. + +2022-09-02 Simon Rainer <gcc.gnu@vvalter.com> + + PR ipa/106627 + * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher): + Set TREE_NOTHROW correctly for dispatcher declaration. + * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher): + Likewise. + +2022-09-01 Tamar Christina <tamar.christina@arm.com> + + PR other/106782 + * config/aarch64/aarch64.cc + (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with + HOST_WIDE_INT_PRINT_UNSIGNED. + +2022-09-01 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-slp.cc (vect_build_slp_tree_2): When building a + VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES + to the number of vector elements, if that's a known constant. + (vect_optimize_slp_pass::is_compatible_layout): Remove associated + comment about zero SLP_TREE_LANES. + (vect_optimize_slp_pass::start_choosing_layouts): Iterate over + all partition members when looking for potential layouts. + Handle existing permutes of fixed-length vectors. + +2022-09-01 Uroš Bizjak <ubizjak@gmail.com> + + PR target/106707 + * config/i386/i386.md (moves to/from AX_REG into xchg peephole2): + Do not convert a move pattern where both operands are AX_REG. + +2022-09-01 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (build_le): Convert to dconst*inf. + (build_ge): Same. + * value-range.cc (frange::set_signbit): Same. + (frange::normalize_kind): Same. + (range_tests_floats): Same. + * value-range.h (vrp_val_max): Same. + (vrp_val_min): Same. + (frange::set_varying): Same. + +2022-09-01 Aldy Hernandez <aldyh@redhat.com> + + * emit-rtl.cc (init_emit_once): Initialize dconstinf and + dconstninf. + * real.h: Add dconstinf and dconstninf. + +2022-09-01 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (compute_control_dep_chain): + Remove cycle detection, instead avoid walking backedges. + +2022-09-01 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (compute_control_dep_chain): + New wrapping overload. + (uninit_analysis::init_use_preds): Simplify. + (uninit_analysis::init_from_phi_def): Likewise. + +2022-09-01 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc + (fold_using_range::range_of_builtin_int_call): Add case for + CFN_BUILT_IN_SIGNBIT. + +2022-09-01 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_equal::op1_range): Do not copy sign + bit. + (foperator_not_equal::op1_range): Same. + * value-query.cc (range_query::get_tree_range): Set sign bit. + * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit. + * value-range.cc (frange::set_signbit): New. + (frange::set): Adjust for sign bit. + (frange::normalize_kind): Same. + (frange::union_): Remove useless comment. + (frange::intersect): Same. + (frange::contains_p): Adjust for sign bit. + (frange::singleton_p): Same. + (frange::verify_range): Same. + (range_tests_signbit): New tests. + (range_tests_floats): Call range_tests_signbit. + * value-range.h (class frange_props): Add signbit + (class frange): Same. + +2022-09-01 Jakub Jelinek <jakub@redhat.com> + + PR other/106782 + * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4) + instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0). + * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to + derived types of gimple to gimple * to avoid -Wformat warnings. + * tree-vect-loop-manip.cc (vect_set_loop_condition, + vect_update_ivs_after_vectorizer): Likewise. + * tree-vect-stmts.cc (vectorizable_load): Likewise. + * tree-vect-patterns.cc (vect_split_statement, + vect_recog_mulhs_pattern, vect_recog_average_pattern, + vect_determine_precisions_from_range, + vect_determine_precisions_from_users): Likewise. + * gimple-loop-versioning.cc + (loop_versioning::analyze_term_using_scevs): Likewise. + * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise. + (vect_build_slp_tree): Cast slp_tree to void * to avoid + -Wformat warnings. + (optimize_load_redistribution_1, vect_match_slp_patterns, + vect_build_slp_instance, vect_optimize_slp_pass::materialize, + vect_optimize_slp_pass::dump, vect_slp_convert_to_external, + vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise. + (vect_print_slp_tree): Likewise. Also use + HOST_WIDE_INT_PRINT_UNSIGNED instead of %u. + * tree-vect-loop.cc (vect_determine_vectorization_factor, + vect_analyze_scalar_cycles_1, vect_analyze_loop_operations, + vectorizable_induction, vect_transform_loop): Cast pointers to derived + types of gimple to gimple * to avoid -Wformat warnings. + (vect_analyze_loop_2): Cast slp_tree to void * to avoid + -Wformat warnings. + (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED + instead of %d. + * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G + instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node)) + instead of SLP_TREE_DEF_TYPE (node). + +2022-09-01 Jakub Jelinek <jakub@redhat.com> + + PR c++/106655 + * doc/invoke.texi (-Winvalid-utf8): Document it. + +2022-09-01 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/106785 + * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS. + (range_tests_floats): Same. + +2022-09-01 konglin1 <lingling.kong@intel.com> + + * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR + recognition. + +2022-09-01 Peter Bergner <bergner@linux.ibm.com> + + PR target/101322 + * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): + Enforce the use of a valid MMA pointer type. + +2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector + registers. + +2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int. + (riscv_output_move): Add csrr vlenb assembly. + * config/riscv/riscv.md (move_type): Add csrr vlenb type. + (ext): New attribute. + (ext_enabled): Ditto. + (enabled): Ditto. + +2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add + "vr" constraint. + (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint. + (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint. + (vp): Add poly constraint. + +2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.h (enum reg_class): Change vype to vtype. + +2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.cc (riscv_convert_vector_bits): Change + configuration according to TARGET_MIN_VLEN. + * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment. + +2022-08-31 Martin Liska <mliska@suse.cz> + + * config.build: Remove deprecated ports. + * config.gcc: Likewise. + * config.host: Likewise. + * configure.ac: Likewise. + * configure: Regenerate. + * config/pa/pa-hpux10.h: Removed. + * config/pa/pa-hpux10.opt: Removed. + * config/pa/t-dce-thr: Removed. + +2022-08-31 Martin Liska <mliska@suse.cz> + + * Makefile.in: Always install limits.h and syslimits.h to + include folder. + * configure.ac: Assign STMP_FIXINC blank if + --disable-fixincludes is used. + * configure: Regenerate. + +2022-08-31 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (predicate::init_from_control_deps): + Assert the guard_bb isn't empty and has more than one successor. + Drop appropriate parts of the predicate when an edge fails to + register a predicate. + (predicate::dump): Dump empty predicate as TRUE. + +2022-08-31 Richard Biener <rguenther@suse.de> + + PR tree-optimization/90994 + * gimple-predicate-analysis.cc (predicate::init_from_control_deps): + Ignore exceptional control flow and skip the edge for the purpose of + predicate generation also for non-calls. + +2022-08-31 Aldy Hernandez <aldyh@redhat.com> + + * value-range-storage.cc (frange_storage_slot::set_frange): Save + endpoints. + (frange_storage_slot::get_frange): Restore endpoints. + * value-range-storage.h (class frange_storage_slot): Add endpoint + fields. + +2022-08-31 Martin Liska <mliska@suse.cz> + + PR tree-optimization/106789 + * range-op-float.cc (default_frelop_fold_range): Remove the + function. + +2022-08-31 Martin Liska <mliska@suse.cz> + + * value-range.h: Add more override keywords. + +2022-08-31 Martin Liska <mliska@suse.cz> + + * value-range.h: Add override. + +2022-08-31 Richard Biener <rguenther@suse.de> + + PR tree-optimization/65244 + * gimple-predicate-analysis.h (predicate::init_from_control_deps): + Add argument to specify whether the predicate is for the USE. + * gimple-predicate-analysis.cc (predicate::init_from_control_deps): + Also include predicates effective fallthru control edges when + the predicate is for the USE. + +2022-08-31 Richard Biener <rguenther@suse.de> + + PR tree-optimization/73550 + * gimple-predicate-analysis.cc (predicate::init_from_control_deps): + Sanitize debug dumping. Handle case labels with a CASE_HIGH. + (predicate::dump): Adjust for better readability. + +2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + Jakub Jelinek <jakub@redhat.com> + + * omp-simd-clone.cc (simd_clone_adjust_return_type, + simd_clone_adjust_argument_types): Use known_eq (veclen, 0U) + instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings. + +2022-08-31 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus + argument. + +2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai> + + * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply + initialize const_vf to 0. + +2022-08-31 Martin Liska <mliska@suse.cz> + + * config.gcc: Remove cr16. + +2022-08-30 Martin Jambor <mjambor@suse.cz> + + * vec.h (array_slice): Add constructors for non-const reference to + heap vector and pointers to heap vectors. + +2022-08-30 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (early_nan_resolve): Change comment. + (frange::union_): Handle union when one side is a NAN. + (range_tests_nan): Add tests for NAN union. + +2022-08-30 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New. + (gcn_simd_clone_adjust): New. + (gcn_simd_clone_usable): New. + (TARGET_SIMD_CLONE_ADJUST): New. + (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New. + (TARGET_SIMD_CLONE_USABLE): New. + +2022-08-30 Andrew Stubbs <ams@codesourcery.com> + + * doc/tm.texi: Regenerate. + * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero + vecsize. + (simd_clone_adjust_argument_types): Likewise. + * target.def (compute_vecsize_and_simdlen): Document the new + vecsize_int and vecsize_float semantics. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * expmed.cc (store_bit_field_1): Fix byte offset calculation + for undefined structures. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * params.opt (-param=vect-max-layout-candidates=): New parameter. + * doc/invoke.texi (vect-max-layout-candidates): Document it. + * tree-vectorizer.h (auto_lane_permutation_t): New typedef. + (auto_load_permutation_t): Likewise. + * tree-vect-slp.cc (vect_slp_node_weight): New function. + (slpg_layout_cost): New class. + (slpg_vertex): Replace perm_in and perm_out with partition, + out_degree, weight and out_weight. + (slpg_partition_info, slpg_partition_layout_costs): New classes. + (vect_optimize_slp_pass): Likewise, cannibalizing some part of + the previous vect_optimize_slp. + (vect_optimize_slp): Use it. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * hash-traits.h (vec_hash_base): New class. + (vec_free_hash_base): Likewise. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * hash-traits.h (int_hash_base): New struct, split out from... + (int_hash): ...this class, which now inherits from int_hash_base. + * hash-map-traits.h (unbounded_hashmap_traits): Take a template + parameter for the key that provides hash and equality functions. + (unbounded_int_hashmap_traits): Turn into a type alias of + unbounded_hashmap_traits. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * graphds.cc (graphds_scc): Add a pass-back parameter for the + final node order. + * graphds.h (graphds_scc): Update prototype accordingly. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from... + (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead + of STMT_VINFO_VECTYPE. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from... + (vectorizable_slp_permutation): ...here. + +2022-08-30 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check + that the requested number of units is interoperable with the requested + prevailing mode. + +2022-08-30 Martin Liska <mliska@suse.cz> + + * config.gcc: Remove the port. + * config/m32c/rtems.h: Removed. + +2022-08-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/73550 + * gimple-predicate-analysis.cc (predicate::init_from_control_deps): + Do not apply MAX_NUM_CHAINS again. + +2022-08-30 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (format_edge_vec): Dump + both source and destination. + (dump_dep_chains): Remove. + (uninit_analysis::init_use_preds): Remove redundant + dumping of chains. + +2022-08-30 Aldy Hernandez <aldyh@redhat.com> + + * value-range-storage.cc (frange_storage_slot::get_frange): Use + frange_nan. + * value-range.cc (frange::set_nan): New. + (frange_nan): Move to header file. + (range_tests_nan): Adjust frange_nan callers to pass type. + New test. + * value-range.h (FRANGE_PROP_ACCESSOR): Remove. + (frange_nan): New. + +2022-08-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/67196 + * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded): + Simplify and normalize use prediates before first use. + +2022-08-30 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (dump_pred_chain): Fix + parentizing and AND prepending. + (predicate::dump): Do not dump the GENERIC expanded + predicate, properly parentize and prepend ORs to the + piecewise predicate dump. + (build_pred_expr): Remove. + +2022-08-30 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (finite_operand_p): New. + (build_le): New. + (build_lt): New. + (build_ge): New. + (build_gt): New. + (foperator_equal::fold_range): New implementation with endpoints. + (foperator_equal::op1_range): Same. + (foperator_not_equal::fold_range): Same. + (foperator_not_equal::op1_range): Same. + (foperator_lt::fold_range): Same. + (foperator_lt::op1_range): Same. + (foperator_lt::op2_range): Same. + (foperator_le::fold_range): Same. + (foperator_le::op1_range): Same. + (foperator_le::op2_range): Same. + (foperator_gt::fold_range): Same. + (foperator_gt::op1_range): Same. + (foperator_gt::op2_range): Same. + (foperator_ge::fold_range): Same. + (foperator_ge::op1_range): Same. + (foperator_ge::op2_range): Same. + +2022-08-30 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (frange_set_nan): New. + (frange_drop_inf): New. + (frange_drop_ninf): New. + (foperator_equal::op1_range): Adjust for endpoints. + (foperator_lt::op1_range): Same. + (foperator_lt::op2_range): Same. + (foperator_gt::op1_range): Same. + (foperator_gt::op2_range): Same. + (foperator_unordered::op1_range): Same. + * value-query.cc (range_query::get_tree_range): Same. + * value-range-pretty-print.cc (vrange_printer::visit): Same. + * value-range-storage.cc (frange_storage_slot::get_frange): Same. + * value-range.cc (frange::set): Same. + (frange::normalize_kind): Same. + (frange::union_): Same. + (frange::intersect): Same. + (frange::operator=): Same. + (early_nan_resolve): New. + (frange::contains_p): New. + (frange::singleton_p): New. + (frange::set_nonzero): New. + (frange::nonzero_p): New. + (frange::set_zero): New. + (frange::zero_p): New. + (frange::set_nonnegative): New. + (frange_float): New. + (frange_nan): New. + (range_tests_nan): New. + (range_tests_signed_zeros): New. + (range_tests_floats): New. + (range_tests): New. + * value-range.h (frange::lower_bound): New. + (frange::upper_bound): New. + (vrp_val_min): Use real_inf with a sign instead of negating inf. + (frange::frange): New. + (frange::set_varying): Adjust for endpoints. + (real_max_representable): New. + (real_min_representable): New. + +2022-08-30 Aldy Hernandez <aldyh@redhat.com> + + * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant + for real zero. + +2022-08-30 Martin Liska <mliska@suse.cz> + + * config/s390/s390.cc (s390_rtx_costs): Use proper type as + argument. + +2022-08-30 Richard Biener <rguenther@suse.de> + + * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute + the set of fallthru reachable blocks from function entry + and use that to determine wlims.always_executed. + +2022-08-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/56654 + * tree-ssa-uninit.cc (cand_cmp): New. + (find_uninit_use): First process all PHIs and collect candidate + stmts, then sort those after RPO. + (warn_uninitialized_phi): Pass on bb_to_rpo. + (execute_late_warn_uninitialized): Compute and pass on + reverse lookup of RPO number from basic block index. + +2022-08-30 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.h (uninit_analysis::operator()): + Remove. + * gimple-predicate-analysis.cc + (uninit_analysis::collect_phi_def_edges): Use phi_arg_set, + simplify a bit. + * tree-ssa-uninit.cc (defined_args): New global. + (compute_uninit_opnds_pos): Mask with the recorded set + of guarded maybe-uninitialized uses. + (uninit_undef_val_t::operator()): Remove. + (find_uninit_use): Process all PHI uses, recording the + guarded ones and marking the PHI result as uninitialized + consistently. + (warn_uninitialized_phi): Adjust. + (execute_late_warn_uninitialized): Get rid of the PHI worklist + and instead walk the function in RPO order. + * spellcheck.h (best_match::m_best_candidate_len): Initialize. + +2022-08-30 Tamar Christina <tamar.christina@arm.com> + + PR tree-optimization/106744 + * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments. + +2022-08-30 Tamar Christina <tamar.christina@arm.com> + + * expmed.cc (store_bit_field_1): Initialize regnum to 0. + +2022-08-29 David Faust <david.faust@oracle.com> + + PR target/106745 + * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix + computation of index for anonymous members. + +2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com> + + * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a + target macro. + +2022-08-29 H.J. Lu <hjl.tools@gmail.com> + + PR target/106748 + * config/i386/i386-expand.cc + (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode. + * config/i386/sse.md (V_256H): Add V16BF. + +2022-08-29 Robin Dapp <rdapp@linux.ibm.com> + + * config/s390/s390.cc (s390_address_cost): Declare. + (s390_hard_regno_nregs): Declare. + (s390_rtx_costs): Add handling for REG and MEM in SET. + +2022-08-29 Robin Dapp <rdapp@linux.ibm.com> + + * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern. + (is_reverse_perm_mask): New function. + (expand_perm_with_rot): Recognize reverse pattern. + (expand_perm_with_vstbrq): New function. + (expand_perm_with_vster): Use vler/vster for element reversal on z15. + (vectorize_vec_perm_const_1): Use. + (s390_vectorize_vec_perm_const): Add expand functions. + * config/s390/vx-builtins.md: Prefer vster over vler. + +2022-08-29 Robin Dapp <rdapp@linux.ibm.com> + + * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT. + * config/s390/vector.md: Rewrite patterns to use vec_select. + * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI): + Likewise. + +2022-08-29 Robin Dapp <rdapp@linux.ibm.com> + + PR target/100869 + * config/s390/vector.md (@vpdi4_2<mode>): New pattern. + (rotl<mode>3_di): New pattern. + * config/s390/vx-builtins.md: Use vpdi and verll for reversing + elements. + +2022-08-29 Robin Dapp <rdapp@linux.ibm.com> + + * config/s390/s390.cc (s390_issue_rate): Add z15. + +2022-08-29 Robin Dapp <rdapp@linux.ibm.com> + + * common/config/s390/s390-common.cc: Enable -funroll-loops and + -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY. + * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll + loops larger than 12 instructions. + (s390_override_options_after_change): Set unroll options. + (s390_option_override_internal): Likewise. + * config/s390/s390.opt: Document munroll-only-small-loops. + +2022-08-29 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (is_loop_exit, + find_control_equiv_block): Inline into single caller ... + (uninit_analysis::init_use_preds): ... here and refactor. + +2022-08-29 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (compute_control_dep_chain): + Inline is_loop_exit and refactor, add comment about + loop exits. + +2022-08-29 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`; + (riscv_frame_info::reset(void)): New. + (riscv_compute_frame_info): Use riscv_frame_info::reset instead + of memset when clean frame. + +2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function. + (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV. + (riscv_address_insns): Add RVV modes condition. + (riscv_binary_cost): Ditto. + (riscv_rtx_costs): Adjust cost for RVV. + (riscv_secondary_memory_needed): Add RVV modes condition. + (riscv_hard_regno_nregs): Add RVV register allocation. + (riscv_hard_regno_mode_ok): Add RVV register allocation. + (riscv_class_max_nregs): Add RVV register allocation. + * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf. + (UNITS_PER_V_REG): New macro. + (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV. + (V_REG_FIRST): New macro. + (V_REG_LAST): Ditto. + (V_REG_NUM): Ditto. + (V_REG_P): Ditto. + (VL_REG_P): Ditto. + (VTYPE_REG_P): Ditto. + (RISCV_DWARF_VL): Ditto. + (RISCV_DWARF_VTYPE): Ditto. + (enum reg_class): Add RVV register types. + (REG_CLASS_CONTENTS): Add RVV register types. + * config/riscv/riscv.md: Add VL/VTYPE register number constants. + +2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/riscv.md: Add new type for vector instructions. + +2022-08-28 Peter Bergner <bergner@linux.ibm.com> + + PR target/106017 + * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling + of MMA pointer conversions. + +2022-08-27 Xi Ruoyao <xry111@xry111.site> + + * config/i386/gcc-auto-profile: Regenerate. + +2022-08-26 Aldy Hernandez <aldyh@redhat.com> + + * real.cc (real_iszero): New. + * real.h (real_iszero): New. + +2022-08-26 Aldy Hernandez <aldyh@redhat.com> + + * real.cc (real_isinf): New overload. + (real_inf): Add sign argument. + * real.h (real_isinf): New overload. + (real_inf): Add sign argument. + +2022-08-26 Marek Polacek <polacek@redhat.com> + + PR c++/81159 + * doc/invoke.texi: Document -Wself-move. + +2022-08-26 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (vrange::set): Set varying. + (vrange::set_nonzero): Same. + (vrange::set_zero): Same. + (vrange::set_nonnegative): Same. + +2022-08-26 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_equal::op1_range): Do not blindly + copy op2 range when honoring signed zeros. + +2022-08-26 Aldy Hernandez <aldyh@redhat.com> + + * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always + add newline. + (profitable_path_p): Same. + +2022-08-26 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.h + (uninit_analysis::use_cannot_happen): Remove. + * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove. + (uninit_analysis::use_cannot_happen): Likewise. + (uninit_analysis::is_use_guarded): Do not call + use_cannot_happen. + (dump_predicates): Remove. + (simple_control_dep_chain): Remove edge overload. + +2022-08-26 Tobias Burnus <tobias@codesourcery.com> + + * internal-fn.cc (expand_GOMP_TARGET_REV): New. + * internal-fn.def (GOMP_TARGET_REV): New. + * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark + 'omp target device_ancestor_host' as in_other_partition and don't + error if absent. + * omp-low.cc (create_omp_child_function): Mark as 'noclone'. + * omp-expand.cc (expand_omp_target): For reverse offload, remove + sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create + empty-body nohost function. + * omp-offload.cc (execute_omp_device_lower): Handle + IFN_GOMP_TARGET_REV. + (pass_omp_target_link::execute): For ACCEL_COMPILER, don't + nullify fn argument for reverse offload + +2022-08-26 Jakub Jelinek <jakub@redhat.com> + + * builtins.def (BUILT_IN_ISSIGNALING): New built-in. + * builtins.cc (expand_builtin_issignaling): New function. + (expand_builtin_signbit): Don't overwrite target. + (expand_builtin): Handle BUILT_IN_ISSIGNALING. + (fold_builtin_classify): Likewise. + (fold_builtin_1): Likewise. + * optabs.def (issignaling_optab): New. + * fold-const-call.cc (fold_const_call_ss): Handle + BUILT_IN_ISSIGNALING. + * config/i386/i386.md (issignalingxf2): New expander. + * doc/extend.texi (__builtin_issignaling): Document. + (__builtin_isinf, __builtin_isnan): Clarify behavior with + -ffinite-math-only. + * doc/md.texi (issignaling<mode>2): Likewise. + +2022-08-26 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/106099 + * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag. + * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of + __builtin_trap to avoid the need of vops. + +2022-08-26 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (dfs_mark_dominating_region): + New helper. + (compute_control_dep_chain): Adjust to honor marked region + if provided. + (uninit_analysis::init_from_phi_def): Pre-mark the dominating + region to improve compute_control_dep_chain walking. + * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder. + +2022-08-26 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc + (uninit_analysis::collect_phi_def_edges): Only expand a + PHI def edge when it is possibly undefined. + +2022-08-26 Martin Liska <mliska@suse.cz> + + * doc/extend.texi: Remove cr16 related stuff. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + * function-tests.cc (test_expansion_to_rtl): Likewise. + * common/config/cr16/cr16-common.cc: Removed. + * config/cr16/constraints.md: Removed. + * config/cr16/cr16-protos.h: Removed. + * config/cr16/cr16.cc: Removed. + * config/cr16/cr16.h: Removed. + * config/cr16/cr16.md: Removed. + * config/cr16/cr16.opt: Removed. + * config/cr16/predicates.md: Removed. + * config/cr16/t-cr16: Removed. + +2022-08-26 liuhongt <hongtao.liu@intel.com> + + PR target/106704 + * config/i386/i386-builtin.def (BDESC): Add + CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to + corresponding builtins. + * config/i386/i386.cc (ix86_gimple_fold_builtin): + Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256, + IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2. + +2022-08-25 Marek Polacek <polacek@redhat.com> + + * ginclude/stddef.h: Define nullptr_t. + +2022-08-25 Joseph Myers <joseph@codesourcery.com> + + * gimplify.cc (gimplify_modify_expr): Convert initialization from + a variable-size CONSTRUCTOR to memset before call to + gimplify_modify_expr_rhs. + +2022-08-25 Jason Merrill <jason@redhat.com> + + * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t. + +2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com> + + PR target/106101 + * config/s390/predicates.md (subreg_register_operand): New + predicate. + * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New + function prototype. + * config/s390/s390.cc (s390_gen_lowpart_subreg): New function. + (s390_expand_insv): Use s390_gen_lowpart_subreg instead of + gen_lowpart. + * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31") + ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise. + ("movstrictqi", "movstricthi", "movstrictsi"): Use the + subreg_register_operand predicate instead of register_operand. + +2022-08-25 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch-protos.h (loongarch_symbol_type): + Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL. + * config/loongarch/loongarch.cc (loongarch_attribute_table): + New attribute table. + (TARGET_ATTRIBUTE_TABLE): Define the target hook. + (loongarch_handle_model_attribute): New static function. + (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the + model attribute of SYMBOL_REF_DECL into account returning + SYMBOL_PCREL or SYMBOL_PCREL64. + (loongarch_use_anchors_for_symbol_p): New static function. + (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook. + (loongarch_symbol_extreme_p): New static function. + (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64. + (loongarch_symbol_insns): Likewise. + (loongarch_split_symbol_type): Likewise. + (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of + TARGET_CMODEL_EXTREME for PC-relative addressing. + (loongarch_print_operand_reloc): Likewise. + * doc/extend.texi (Variable Attributes): Document new + LoongArch specific attribute. + +2022-08-25 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.cc (loongarch_classify_symbol): + Return early if the rtx is not SYMBOL_REF. + +2022-08-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106737 + * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not + verify SSA form. + +2022-08-25 Chenghua Xu <xuchenghua@loongson.cn> + + PR target/106459 + * config/loongarch/loongarch.cc (loongarch_build_integer): + Use HOST_WIDE_INT. + * config/loongarch/loongarch.h (IMM_REACH): Likewise. + (HWIT_1U): New Defined. + (LU12I_OPERAND): Use HOST_WIDE_INT. + (LU32I_OPERAND): Likewise. + (LU52I_OPERAND): Likewise. + (HWIT_UC_0xFFF): Likwise. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + PR target/106632 + PR target/106588 + * config/riscv/bitmanip.md (*shNadduw): Use n constraint + instead of i. + (*slliuw): Likewise. + (*bexti): Likewise. Also add a check for operands[2] to be less + than the mode bitsize. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/constraints.md (DbS): New constraint. + (DnS): New constraint. + * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint. + (*bclr<mode>): Likewise. + (*binvi<mode>): Likewise. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + PR target/106586 + * config/riscv/predicates.md (single_bit_mask_operand): + Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi. + (not_single_bit_mask_operand): Likewise. + * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case + 1<<31 for 32bits as it is already handled. + Call trunc_int_for_mode on the upper part after the subtraction. + (riscv_move_integer): Call trunc_int_for_mode before generating + the integer just make sure the constant has been sign extended + corectly. + (riscv_emit_int_compare): Call trunc_int_for_mode after doing the + addition for the new rhs. + * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT, + then mask off the upper 32bits of the HWI as it will be sign extended. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/constraints.md (DsS): New constraint. + (DsD): New constraint. + * config/riscv/iterators.md (shiftm1c): New iterator. + * config/riscv/bitmanip.md (*bset<mode>_mask): + Use shiftm1c. + (*bset<mode>_1_mask): Likewise. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/constraints.md (Ds3): New constraint. + * config/riscv/predicates.md (imm123_operand): New predicate. + * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand. + (*shNadduw): Likewise. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/riscv.cc (riscv_print_operand): + Handle '~'. + (riscv_print_operand_punct_valid_p): New function + (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. + * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt): + Use %~ instead of conditional the pattern on TARGET_64BIT. + (rotrsi3): Likewise. + (rotlsi3): Likewise. + * config/riscv/riscv.md: Add ~ to the list of modifiers. + (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT. + (subsi3): Likewise. + (negsi2): Likewise. + (mulsi3): Likewise. + (optab>si3/any_div): Likewise. + (*add<mode>hi3): Likewise. + (<optab>si3/any_shift): Likewise. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/riscv.cc (riscv_print_operand): Make a mention to + keep the list in riscv.md in sync with this list. + * config/riscv/riscv.md: Add list of modifiers as comments. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/sync.md (any_atomic, atomic_optab): Move to ... + * config/riscv/iterators.md: Here. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/bitmanip.md + (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna, + tbitmanip_optab, bitmanip_insn, shiftm1): Move to ... + * config/riscv/iterators.md: Here. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + * config/riscv/riscv.md (GPR): Move to new file. + (P, X, BR): Likewise. + (MOVE32, MOVE64, SHORT): Likewise. + (HISI, SUPERQI, SUBX): Likewise. + (ANYI, ANYF, SOFTF): Likewise. + (size, load, default_load): Likewise. + (softload, store, softstore): Likewise. + (reg, fmt, ifmt, amo): Likewise. + (UNITMODE, HALFMODE): Likewise. + (RINT, rint_pattern, rint_rm): Likewise. + (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise. + (any_extend, any_shiftrt, any_shift): Likewise. + (any_bitwise): Likewise. + (any_div, any_mod): Likewise. + (any_gt, any_ge, any_lt, any_le): Likewise. + (u, su): Likewise. + (optab, insn): Likewise. + * config/riscv/iterators.md: New file. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + PR target/106601 + * config/riscv/bitmanip.md (bswaphi2): New pattern. + +2022-08-24 Andrew Pinski <apinski@marvell.com> + + PR target/106600 + * config/riscv/bitmanip.md (bswap<mode>2): Remove + condition on TARGET_64BIT as X is already conditional there. + +2022-08-24 Joseph Myers <joseph@codesourcery.com> + + * tree.cc (build_real): Give DFP dconst0 the minimum quantum + exponent for the type. + +2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com> + + PR target/106733 + * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer + constants as legitimate addresses for functions. + (bpf_small_register_classes_for_mode_p): Define target hook. + +2022-08-24 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc: Move predicate normalization + after the comment documenting it. + +2022-08-24 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.h (predicate): Split out + non-predicate related functionality into .. + (uninit_analysis): .. this new class. + * gimple-predicate-analysis.cc: Refactor into two classes. + * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis. + +2022-08-24 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (predicate::use_cannot_happen): + Do simple_control_dep_chain only up to cd_root, add the PHI + operand edge to the chains like init_from_phi_def does. + (predicate::is_use_guarded): Speedup early out, avoid half-way + initializing the PHI def predicate. + +2022-08-24 Jakub Jelinek <jakub@redhat.com> + + PR target/106721 + * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries. + Change V32HF, V16HF and V8HF entries from "f" to "i". + (iptr): Add V32BF, V16BF, V8BF and BF entries. + (i128vldq): Add V16HF and V16BF entries. + (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo, + mask_opernad3 -> mask_operand3. + +2022-08-24 Martin Liska <mliska@suse.cz> + Jørgen Kvalsvik <j@lambda.is> + + * gcov.cc (add_line_counts): Add group functions to coverage + summary. + (accumulate_line_counts): Similarly for files. + +2022-08-24 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/genopts/loongarch-strings: Support code model medium. + * config/loongarch/genopts/loongarch.opt.in: Likewise. + * config/loongarch/loongarch-def.c: Likewise. + * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise. + (CMODEL_EXTREME): Likewise. + (N_CMODEL_TYPES): Likewise. + (CMODEL_MEDIUM): Likewise. + * config/loongarch/loongarch-opts.cc: Likewise. + * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise. + * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise. + * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr): + Tls symbol Loading support medium mode. + (loongarch_legitimize_call_address): When medium mode, make a symbolic + jump with two instructions. + (loongarch_option_override_internal): Support medium. + * config/loongarch/loongarch.md (@pcalau12i<mode>): New template. + (@sibcall_internal_1<mode>): New function call templates added to support + medium mode. + (@sibcall_value_internal_1<mode>): Likewise. + (@sibcall_value_multiple_internal_1<mode>): Likewise. + (@call_internal_1<mode>): Likewise. + (@call_value_internal_1<mode>): Likewise. + (@call_value_multiple_internal_1<mode>): Likewise. + * config/loongarch/loongarch.opt: Support medium. + * config/loongarch/predicates.md: Add processing about medium mode. + * doc/invoke.texi: Document for '-mcmodel=medium'. + +2022-08-24 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (predicate::use_cannot_happen): + Start the compute_control_dep_chain walk from the immediate + dominator of the PHI. + +2022-08-23 H.J. Lu <hjl.tools@gmail.com> + + PR target/106714 + * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to + __PTRDIFF_TYPE__. + (_tile_stream_loadd_internal): Likewise. + (_tile_stored_internal): Likewise. + +2022-08-23 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106722 + * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN, + MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ... + * gimple-predicate-analysis.cc: ... here and document. + (simple_control_dep_chain): New function, factored from + predicate::use_cannot_happen. + (predicate::use_cannot_happen): Adjust. + (predicate::predicate): Use simple_control_dep_chain as fallback. + +2022-08-23 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (foperator_equal::op1_range): Set range to + range of op2. + +2022-08-23 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (is_loop_exit): Split out + from ... + (is_non_loop_exit_postdominating): ... here. Remove after + inlining ... + (find_control_equiv_block): ... here. + (compute_control_dep_chain): ... and here. + (predicate::is_use_guarded): Do not excempt loop exits + from short-cutting the case of the use post-dominating the + PHI definition. + +2022-08-23 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106687 + * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE + for the VREL_GT case as well. + +2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu> + + * config/pru/pru.md (pru_<code>di3): New alternative for + two operands but without earlyclobber. + +2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu> + + * config/pru/pru.md (prumov<mode>, mov<mode>): Add + variants for loading -1 consts. + +2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu> + + PR target/106564 + * config/pru/constraints.md (Um): New constraint for -1. + (Uf): New constraint for IOR fill-bytes constants. + (Uz): New constraint for AND zero-bytes constants. + * config/pru/predicates.md (const_fillbytes_operand): New + predicate for IOR fill-bytes constants. + (const_zerobytes_operand): New predicate for AND zero-bytes + constants. + * config/pru/pru-protos.h (pru_output_sign_extend): Remove. + (struct pru_byterange): New struct to describe a byte range. + (pru_calc_byterange): New declaration. + * config/pru/pru.cc (pru_rtx_costs): Add penalty for + 64-bit zero-extend. + (pru_output_sign_extend): Remove. + (pru_calc_byterange): New helper function to extract byte + range info from a constant. + (pru_print_operand): Remove 'y' and 'z' print modifiers. + * config/pru/pru.md (zero_extendqidi2): New pattern. + (zero_extendhidi2): New pattern. + (zero_extendsidi2): New pattern. + (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand. + (@pru_ior_fillbytes<mode>): New pattern. + (@pru_and_zerobytes<mode>): New pattern. + (<code>di3): Rewrite as an expand and handle ZERO and FILL + special cases. + (pru_<code>di3): New name for <code>di3. + (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to + handle bit-test for 64-bit registers. + +2022-08-22 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.h (predicate::m_use_expr): Remove. + (predicate::def_expr): Likewise. + (predicate::use_expr): Likewise. + (predicate::expr): Likewise. + * gimple-predicate-analysis.cc (predicate::def_expr): Remove. + (predicate::use_expr): Likewise. + (predicate::expr): Likewise. + (predicate::is_use_guarded): Do not build m_use_expr. + +2022-08-22 Martin Liska <mliska@suse.cz> + + PR lto/106700 + * configure.ac: Detect O_NONBLOCK flag for open. + * config.in: Regenerate. + * configure: Regenerate. + * opts-common.cc (jobserver_info::connect): Set is_connected + properly based on O_NONBLOCK. + * opts-jobserver.h (struct jobserver_info): Add is_connected + member variable. + +2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai> + + * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value + and repeat value different. + +2022-08-22 Tobias Burnus <tobias@codesourcery.com> + + PR lto/106686 + * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup. + (tool_cleanup): Unlink offload_names. + (compile_offload_image): Take filename argument to set it early. + (compile_images_for_offload_targets): Update call; set + offload_names to NULL after freeing the array. + +2022-08-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105937 + * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs + on backedges. + (execute_late_warn_uninitialized): Mark backedges. + +2022-08-22 Richard Biener <rguenther@suse.de> + + * gimple-predicate-analysis.cc (predicate::use_cannot_happen): + If the use is guarded with multiple predicate paths compute + the predicates intersection before going forward. When + compute_control_dep_chain wasn't able to come up with at + least one path from function entry to the PHI edge compute + a conservative sparse path instead. + +2022-08-20 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme. + * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr): + Add extreme support for TLS GD and LD types. + (loongarch_legitimize_tls_address): Add extreme support for TLS LE + and IE. + (loongarch_split_symbol): When compiling with -mcmodel=extreme, + the symbol address will be obtained through five instructions. + (loongarch_print_operand_reloc): Add support. + (loongarch_print_operand): Add support. + (loongarch_print_operand_address): Add support. + (loongarch_option_override_internal): Set '-mcmodel=extreme' option + incompatible with '-mno-explicit-relocs'. + * config/loongarch/loongarch.md (@lui_l_hi20<mode>): + Loads bits 12-31 of data into registers. + (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of + the source register. + (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of + the source register. + * config/loongarch/predicates.md: Symbols need to be decomposed + when defining the macro TARGET_CMODEL_EXTREME + * doc/invoke.texi: Modify the description information of cmodel in the document. + Document -W[no-]extreme-plt. + +2022-08-19 Tobias Burnus <tobias@codesourcery.com> + + * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to + files_to_cleanup. + * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add + omp_requires_file to temp_files. + * config/nvptx/mkoffload.cc (omp_requires_file): New global static var. + (main): Remove local omp_requires_file var. + (tool_cleanup): Handle omp_requires_file. + +2022-08-19 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-path.cc (path_range_query::path_range_query): + Remove constructor that takes edge. + * gimple-range-path.h (class path_range_query): Same. + * tree-ssa-loop-ch.cc (edge_range_query): New. + (entry_loop_condition_is_static): Call edge_range_query. + +2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.h + (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Add new register class "ISC_REGS". + * config/xtensa/constraints.md (c): Add new register constraint. + * config/xtensa/xtensa.md (define_constants): Remove "A11_REG". + (sibcall_internal, sibcall_value_internal): + Change to use the new register constraint, and remove two split + patterns for fixups that are no longer needed. + +2022-08-18 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output + pattern formatting. + +2022-08-18 Tim Lange <mail@tim-lange.me> + + PR analyzer/106181 + * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic. + +2022-08-18 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-path.cc (path_range_query::path_range_query): Add + various constructors to take a path. + (path_range_query::~path_range_query): Remove m_alloced_ranger. + (path_range_query::range_on_path_entry): Adjust for m_ranger being + a reference. + (path_range_query::set_path): Rename to... + (path_range_query::reset_path): ...this and call compute_ranges. + (path_range_query::ssa_range_in_phi): Adjust for m_ranger + reference. + (path_range_query::range_defined_in_block): Same. + (path_range_query::compute_ranges_in_block): Same. + (path_range_query::adjust_for_non_null_uses): Same. + (path_range_query::compute_exit_dependencies): Use m_path instead + of argument. + (path_range_query::compute_ranges): Remove path argument. + (path_range_query::range_of_stmt): Adjust for m_ranger reference. + (path_range_query::compute_outgoing_relations): Same. + * gimple-range-path.h (class path_range_query): Add various + constructors. + Make compute_ranges and compute_exit_dependencies private. + Rename set_path to reset_path. + Make m_ranger a reference. + Remove m_alloced_ranger. + * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to + path_range_query. + * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a + ranger and instantiate a new path_range_query every time. + (ch_base::copy_headers): Pass ranger instead of path_range_query. + * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver. + (back_threader::~back_threader): Remove m_solver. + (back_threader::find_taken_edge_switch): Adjust for m_ranger + reference. + (back_threader::find_taken_edge_cond): Same. + (back_threader::dump): Remove m_solver. + (back_threader::back_threader): Move verify_marked_backedges + here from the path_range_query constructor. + * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move + some code from compute_ranges_from_state here. + (hybrid_jt_simplifier::compute_ranges_from_state): Rename... + (hybrid_jt_simplifier::compute_exit_dependencies): ...to this. + * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename + compute_ranges_from_state to compute_exit_dependencies. + Remove m_path. + +2022-08-18 Richard Biener <rguenther@suse.de> + + PR middle-end/106617 + * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix + guard, disable on GENERIC to not cause quadratic behavior + with the fold-const.cc implementation and the use of ! + +2022-08-18 Andrew Pinski <apinski@marvell.com> + + PR gcov-profile/106659 + * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with + INCLUDE_VECTOR. + +2022-08-18 konglin1 <lingling.kong@intel.com> + + * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector + BFmode. + (ix86_expand_vector_init_duplicate): Support vector BFmode. + (ix86_expand_vector_init_one_nonzero): Ditto. + (ix86_expand_vector_init_one_var): Ditto. + (ix86_expand_vector_init_concat): Ditto. + (ix86_expand_vector_init_interleave): Ditto. + (ix86_expand_vector_init_general): Ditto. + (ix86_expand_vector_init): Ditto. + (ix86_expand_vector_set_var): Ditto. + (ix86_expand_vector_set): Ditto. + (ix86_expand_vector_extract): Ditto. + * config/i386/i386.cc (classify_argument): Add BF vector modes. + (function_arg_64): Ditto. + (ix86_gimplify_va_arg): Ditto. + (ix86_get_ssemov): Ditto. + * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes. + (VALID_AVX512F_REG_MODE): Ditto. + (host_detect_local_cpu): Ditto. + (VALID_SSE2_REG_MODE): Ditto. + * config/i386/i386.md: Add BF vector modes. + (MODE_SIZE): Ditto. + (ssemodesuffix): Add bf suffix for BF vector modes. + (ssevecmode): Ditto. + * config/i386/sse.md (VMOVE): Adjust for BF vector modes. + (VI12HFBF_AVX512VL): Ditto. + (V_256_512): Ditto. + (VF_AVX512HFBF16): Ditto. + (VF_AVX512BWHFBF16): Ditto. + (VIHFBF): Ditto. + (avx512): Ditto. + (VIHFBF_256): Ditto. + (VIHFBF_AVX512BW): Ditto. + (VI2F_256_512):Ditto. + (V8_128):Ditto. + (V16_256): Ditto. + (V32_512): Ditto. + (sseinsnmode): Ditto. + (sseconstm1): Ditto. + (sseintmodesuffix): New mode_attr. + (avx512fmaskmode): Ditto. + (avx512fmaskmodelower): Ditto. + (ssedoublevecmode): Ditto. + (ssehalfvecmode): Ditto. + (ssehalfvecmodelower): Ditto. + (ssescalarmode): Add vector BFmode mapping. + (ssescalarmodelower): Ditto. + (ssexmmmode): Ditto. + (ternlogsuffix): Ditto. + (ssescalarsize): Ditto. + (sseintprefix): Ditto. + (i128): Ditto. + (xtg_mode): Ditto. + (bcstscalarsuff): Ditto. + (<avx512>_blendm<mode>): New define_insn for BFmode. + (<avx512>_store<mode>_mask): Ditto. + (vcond_mask_<mode><avx512fmaskmodelower>): Ditto. + (vec_set<mode>_0): New define_insn for BF vector set. + (V8BFH_128): New mode_iterator for BFmode. + (avx512fp16_mov<mode>): Ditto. + (vec_set<mode>): New define_insn for BF vector set. + (@vec_extract_hi_<mode>): Ditto. + (@vec_extract_lo_<mode>): Ditto. + (vec_set_hi_<mode>): Ditto. + (vec_set_lo_<mode>): Ditto. + (*vec_extract<mode>_0): New define_insn_and_split for BF + vector extract. + (*vec_extract<mode>): New define_insn. + (VEC_EXTRACT_MODE): Add BF vector modes. + (PINSR_MODE): Add V8BF. + (sse2p4_1): Ditto. + (pinsr_evex_isa): Ditto. + (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support + insert for V8BFmode. + (pbroadcast_evex_isa): Add BF vector modes. + (AVX2_VEC_DUP_MODE): Ditto. + (VEC_INIT_MODE): Ditto. + (VEC_INIT_HALF_MODE): Ditto. + (avx2_pbroadcast<mode>): Adjust to support BF vector mode + broadcast. + (avx2_pbroadcast<mode>_1): Ditto. + (<avx512>_vec_dup<mode>_1): Ditto. + (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): + Ditto. + +2022-08-18 Martin Liska <mliska@suse.cz> + + * configure: Regenerate. + +2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org> + + PR target/103109 + * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add. + (<u>madddi4_highpart): New. + (<u>madddi4_highpart_le): New. + +2022-08-18 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-path.cc + (path_range_query::compute_exit_dependencies): Use + gimple_range_ssa_names. + +2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai> + + * config/riscv/predicates.md: Adjust runtime invariant. + * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New. + (NUM_POLY_INT_COEFFS): New. + * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust + runtime invariant. + * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls): + Adjust runtime invariant. + * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime + invariant. + (enum riscv_microarchitecture_type): Ditto. + (riscv_valid_offset_p): Ditto. + (riscv_valid_lo_sum_p): Ditto. + (riscv_address_insns): Ditto. + (riscv_load_store_insns): Ditto. + (riscv_legitimize_move): Ditto. + (riscv_binary_cost): Ditto. + (riscv_rtx_costs): Ditto. + (riscv_output_move): Ditto. + (riscv_extend_comparands): Ditto. + (riscv_flatten_aggregate_field): Ditto. + (riscv_get_arg_info): Ditto. + (riscv_pass_by_reference): Ditto. + (riscv_elf_select_rtx_section): Ditto. + (riscv_stack_align): Ditto. + (riscv_compute_frame_info): Ditto. + (riscv_initial_elimination_offset): Ditto. + (riscv_set_return_address): Ditto. + (riscv_for_each_saved_reg): Ditto. + (riscv_first_stack_step): Ditto. + (riscv_expand_prologue): Ditto. + (riscv_expand_epilogue): Ditto. + (riscv_can_use_return_insn): Ditto. + (riscv_secondary_memory_needed): Ditto. + (riscv_hard_regno_nregs): Ditto. + (riscv_convert_vector_bits): New. + (riscv_option_override): Adjust runtime invariant. + (riscv_promote_function_mode): Ditto. + * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New. + (BITS_PER_RISCV_VECTOR): New. + (BYTES_PER_RISCV_VECTOR): New. + * config/riscv/riscv.md: Adjust runtime invariant. + +2022-08-18 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr): + Get __tls_get_addr address through got table when disable plt. + +2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_expand_prologue): + Use an "addmi" machine instruction for updating the stack pointer + rather than addition/subtraction via hard register A9, if the amount + of change satisfies the literal value conditions of that instruction + when the CALL0 ABI is used. + (xtensa_expand_epilogue): Ditto. + And also inhibit the stack pointer addition of constant zero. + +2022-08-17 Roger Sayle <roger@nextmovesoftware.com> + + PR target/106640 + * config/i386/i386-features.cc + (timde_scalar_chain::compute_convert_gain): Replace incorrect use + of XINT with INTVAL (XEXP (src, 1)). + +2022-08-17 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-path.cc + (path_range_query::compute_ranges_in_block): Remove + set_root_oracle call. + (path_range_query::compute_ranges): Pass ranger oracle to + reset_path. + * value-relation.cc (path_oracle::reset_path): Set root oracle. + * value-relation.h (path_oracle::reset_path): Add root oracle + argument. + +2022-08-17 Marek Polacek <polacek@redhat.com> + + PR c++/89780 + * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle + OPT_Wpessimizing_move and OPT_Wredundant_move. + * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator. + +2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + Jakub Jelinek <jakub@redhat.com> + + PR fortran/46539 + * common.opt (static-libquadmath): New option. + * gcc.cc (driver_handle_option): Always accept -static-libquadmath. + * config/darwin.h (LINK_SPEC): Handle -static-libquadmath. + +2022-08-17 Tobias Burnus <tobias@codesourcery.com> + + * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic + when filenames come out identically. + +2022-08-17 Tobias Burnus <tobias@codesourcery.com> + + PR middle-end/106548 + * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref + for 'simd' linear-step values that are variable. + +2022-08-17 Tobias Burnus <tobias@codesourcery.com> + Chung-Lin Tang <cltang@codesourcery.com> + + PR c++/104493 + * gimplify.cc (omp_notice_variable): Call omp_mappable_type + instead of removed langhook. + * omp-general.h (omp_mappable_type): New prototype. + * omp-general.cc (omp_mappable_type): New; moved from ... + * langhooks.cc (lhd_omp_mappable_type): ... here. + * langhooks-def.h (lhd_omp_mappable_type, + LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter. + * langhooks.h (struct lang_hooks_for_types): Remove + omp_mappable_type. + +2022-08-17 Christophe Lyon <christophe.lyon@arm.com> + + * config.gcc (arm): Define with_float to hard if target name ends + with 'hf'. + +2022-08-17 Richard Biener <rguenther@suse.de> + + * tree-ssa-threadbackward.cc + (back_threader_profitability): Split profitable_path_p + into possibly_profitable_path_p and itself, keep state + as new members. + (back_threader::m_profit): Remove. + (back_threader::find_paths): Likewise. + (back_threader::maybe_register_path): Take profitability + instance as parameter. + (back_threader::find_paths_to_names): Likewise. Use + possibly_profitable_path_p and avoid the path range query + when the path is currently too large. + (back_threader::find_paths): Fold into ... + (back_threader::maybe_thread_block): ... this. + (get_gimple_control_stmt): Remove. + (back_threader_profitability::possibly_profitable_path_p): + Split out from profitable_path_p, do early profitability + checks. + (back_threader_profitability::profitable_path_p): Do final + profitability path after the taken edge has been determined. + +2022-08-17 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern. + (fmin<mode>3): Likewise. + +2022-08-17 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (gimple_range_ssa_names): New. + * gimple-range-fold.h (gimple_range_ssa_names): New prototype. + * gimple-range-gori.cc (range_def_chain::get_def_chain): Move + code to new routine. + +2022-08-16 Martin Liska <mliska@suse.cz> + + PR target/106637 + * doc/install.texi: Remove link to www.bullfreeware.com + +2022-08-16 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc (riscv_implied_info): Add + zfh and zfhmin. + (riscv_ext_version_table): Ditto. + (riscv_ext_flag_table): Ditto. + * config/riscv/riscv-opts.h (MASK_ZFHMIN): New. + (MASK_ZFH): Ditto. + (TARGET_ZFHMIN): Ditto. + (TARGET_ZFH): Ditto. + * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move + for zfh and zfhmin. + (riscv_emit_float_compare): Handle HFmode. + * config/riscv/riscv.md (ANYF): Add HF. + (SOFTF): Add HF. + (load): Ditto. + (store): Ditto. + (truncsfhf2): New. + (truncdfhf2): Ditto. + (extendhfsf2): Ditto. + (extendhfdf2): Ditto. + (*movhf_hardfloat): Ditto. + (*movhf_softfloat): Make sure not ZFHMIN. + * config/riscv/riscv.opt (riscv_zf_subext): New. + +2022-08-16 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/riscv-builtins.cc: include stringpool.h + (riscv_float16_type_node): New. + (riscv_init_builtin_types): Ditto. + (riscv_init_builtins): Call riscv_init_builtin_types. + * config/riscv/riscv-modes.def (HF): New. + * config/riscv/riscv.cc (riscv_output_move): Handle HFmode. + (riscv_mangle_type): New. + (riscv_scalar_mode_supported_p): Ditto. + (riscv_libgcc_floating_mode_supported_p): Ditto. + (riscv_excess_precision): Ditto. + (riscv_floatn_mode): Ditto. + (riscv_init_libfuncs): Ditto. + (TARGET_MANGLE_TYPE): Ditto. + (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto. + (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto. + (TARGET_INIT_LIBFUNCS): Ditto. + (TARGET_C_EXCESS_PRECISION): Ditto. + (TARGET_FLOATN_MODE): Ditto. + * config/riscv/riscv.md (mode): Add HF. + (softload): Add HF. + (softstore): Ditto. + (fmt): Ditto. + (UNITMODE): Ditto. + (movhf): New. + (*movhf_softfloat): New. + +2022-08-16 Richard Biener <rguenther@suse.de> + + * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): + Do not walk further if we are leaving the current loop. + +2022-08-16 Sergei Trofimovich <siarheit@google.com> + + PR driver/106624 + * gcc.cc (driver::detect_jobserver): Allocate storage xputenv() + argument using xstrdup(). + +2022-08-16 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-path.cc (path_range_query::import_p): Rename to... + (path_range_query::exit_dependency_p): ...this. + (path_range_query::dump): Rename imports to exit dependencies. + (path_range_query::compute_ranges_in_phis): Same. + (path_range_query::compute_ranges_in_block): Same. + (path_range_query::adjust_for_non_null_uses): Same. + (path_range_query::compute_ranges): Same. + (path_range_query::compute_phi_relations): Same. + (path_range_query::add_to_imports): Rename to... + (path_range_query::add_to_exit_dependencies): ...this. + (path_range_query::compute_imports): Rename to... + (path_range_query::compute_exit_dependencies): ...this. + * gimple-range-path.h (class path_range_query): Rename imports to + exit dependencies. + +2022-08-16 Martin Liska <mliska@suse.cz> + + * value-range-storage.h (class obstack_vrange_allocator): Mark + the class as final. + (class ggc_vrange_allocator): Likewise. + +2022-08-16 Martin Liska <mliska@suse.cz> + + * value-range-equiv.h (class value_range_equiv): Add virtual + destructor. + * value-range.h: Likewise. + +2022-08-16 Richard Biener <rguenther@suse.de> + + PR middle-end/106630 + * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to + narrowing conversions. + +2022-08-16 Martin Liska <mliska@suse.cz> + + * value-range-equiv.h (class value_range_equiv): + +2022-08-16 Martin Liska <mliska@suse.cz> + + * config/i386/i386-features.h (class general_scalar_chain): Add + final override for a method. + (class timode_scalar_chain): Likewise. + +2022-08-16 Richard Biener <rguenther@suse.de> + + * doc/invoke.texi (max-jump-thread-paths): Adjust. + +2022-08-16 Martin Liska <mliska@suse.cz> + + * opts-common.cc (jobserver_info::connect): Open fifo + in non-blocking mode. + +2022-08-16 Kewen.Lin <linkw@gcc.gnu.org> + + PR target/103353 + * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition + check to preparation statements and add handlings for !TARGET_MMA. + (define_expand movxo): Likewise. + +2022-08-16 Kewen Lin <linkw@linux.ibm.com> + + PR tree-optimization/106322 + * tree-vect-stmts.cc (vectorizable_call): Don't allow + vect_emulated_vector_p type for both vectype_in and vectype_out. + +2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * common/config/xtensa/xtensa-common.cc + (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early + for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior. + +2022-08-15 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106621 + * value-range.cc (irange::set): Check for POLY_INT_CST early. + +2022-08-15 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-features.cc + (timode_scalar_chain::compute_convert_gain): Provide costs for + shifts and rotates. + (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT + and ROTATE just like existing ASHIFT and LSHIFTRT cases. + (timode_scalar_to_vector_candidate_p): Handle all shifts and + rotates by integer constants between 0 and 127. + +2022-08-15 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-features.cc + (timode_scalar_chain::compute_convert_gain): Provide gains for + comparisons against 0/-1, including "*testti" patterns. + +2022-08-15 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/64992 + PR tree-optimization/98956 + * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X + when X is zero_one_valued_p and the shift constant C is valid. + (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X + when X is zero_one_valued_p and the shift constant C is valid. + +2022-08-15 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + PR tree-optimization/71343 + * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the + expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators. + (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C) + to (X^Y)>>C for binary logical operators, AND, IOR and XOR. + +2022-08-15 Richard Biener <rguenther@suse.de> + + * gimple-range-path.cc (range_on_path_entry): Just + call range_on_entry. + +2022-08-15 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/106590 + * ifcvt.cc (check_for_cc_cmp_clobbers): New function. + (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs + mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any + further conditional moves. + +2022-08-15 konglin1 <lingling.kong@intel.com> + + * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type. + * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend. + (ix86_register_bf16_builtin_type): New function. + (ix86_bf16_type_node): New. + (ix86_bf16_ptr_type_node): Ditto. + (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call. + * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode. + (ADJUST_FLOAT_FORMAT): Ditto. + * config/i386/i386.cc (classify_argument): Handle BFmode. + (construct_container): Ditto. + (function_value_32): Return __bf16 by %xmm0. + (function_value_64): Return __bf16 by SSE register. + (ix86_output_ssemov): Handle BFmode. + (ix86_legitimate_constant_p): Disable BFmode constant double. + (ix86_secondary_reload): Require gpr as intermediate register + to store __bf16 from sse register when sse4 is not available. + (ix86_scalar_mode_supported_p): Enable __bf16 under sse2. + (ix86_mangle_type): Add manlging for __bf16 type. + (ix86_invalid_conversion): New function for target hook. + (ix86_invalid_unary_op): Ditto. + (ix86_invalid_binary_op): Ditto. + (TARGET_INVALID_CONVERSION): New define for target hook. + (TARGET_INVALID_UNARY_OP): Ditto. + (TARGET_INVALID_BINARY_OP): Ditto. + * config/i386/i386.h (host_detect_local_cpu): Add BFmode. + * config/i386/i386.md ("mode"): Add BFmode. + (MODE_SIZE): Ditto. + (X87MODEFH): Ditto. + (HFBF): Add new define_mode_iterator. + (*pushhf_rex64): Change for BFmode. + (*push<mode>_rex64): Ditto. + (*pushhf): Ditto. + (*push<mode>): Ditto. + (MODESH): Ditto. + (hfbfconstf): Add new define_mode_attr. + (*mov<mode>_internal): Add BFmode. + +2022-08-13 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/predicates.md (const_0_to_255_not_mul_8_operand): + New predicate for values between 0/1 and 255, not multiples of 8. + * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left + shifts by constant bit counts. + (*ashlvti3_internal): New define_insn_and_split that lowers + logical left shifts by constant bit counts, that aren't multiples + of 8, before reload. + (lshrv1ti3): Delay lowering of logical right shifts by constant. + (*lshrv1ti3_internal): New define_insn_and_split that lowers + logical right shifts by constant bit counts, that aren't multiples + of 8, before reload. + (ashrv1ti3):: Delay lowering of arithmetic right shifts by + constant bit counts. + (*ashrv1ti3_internal): New define_insn_and_split that lowers + arithmetic right shifts by constant bit counts before reload. + (rotlv1ti3): Delay lowering of rotate left by constant. + (*rotlv1ti3_internal): New define_insn_and_split that lowers + rotate left by constant bits counts before reload. + (rotrv1ti3): Delay lowering of rotate right by constant. + (*rotrv1ti3_internal): New define_insn_and_split that lowers + rotate right by constant bits counts before reload. + +2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com> + + * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options. + +2022-08-12 Jan Hubicka <hubicka@ucw.cz> + + PR middle-end/106057 + * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New + function. + (possible_polymorphic_call_targets): Use it. + +2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com> + + * tree-ssa-loop.h: Improve comment + +2022-08-12 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/106506 + * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for + is_cast or orig_use_lhs cases if phi_bb has 3 predecessors. + +2022-08-12 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106593 + * tree-ssa-threadbackward.cc (back_threader::find_paths): + If the imports from the conditional do not satisfy + gimple_range_ssa_p don't try to thread anything. + +2022-08-12 Tamar Christina <tamar.christina@arm.com> + + PR target/106524 + * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine, + *fcmuo<mode>_bic_combine): Don't accept comparisons against zero. + +2022-08-12 Tim Lange <mail@tim-lange.me> + + PR analyzer/106000 + * doc/invoke.texi: Add Wanalyzer-out-of-bounds. + +2022-08-12 Andrew Pinski <apinski@marvell.com> + + * config/aarch64/aarch64.md: Remove comment + about MD_INCLUDES as it is out of date and not needed. + +2022-08-11 Richard Biener <rguenther@suse.de> + + * gimple-range-path.cc (path_range_query::compute_imports): + Restrict walking SSA defs to blocks inside the path. Track + the same operands as range_def_chain::get_def_chain does. + +2022-08-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106514 + * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): + Compute and unwind both m_imports and interesting on the fly during + path discovery. + (back_threader::find_paths): Compute the original m_imports + from just the SSA uses of the exit conditional. Drop + handling single_succ_to_potentially_threadable_block. + * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle + constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE. + +2022-08-11 Richard Biener <rguenther@suse.de> + + * gimple-range-path.h (path_range_query::compute_imports): + Take path as argument, not the exit block. + * gimple-range-path.cc (path_range_query::compute_imports): + Likewise, and adjust, avoiding possibly stale m_path. + (path_range_query::compute_outgoing_relations): Register + relations for all conditionals. + * tree-ssa-threadbackward.cc (back_threader::find_paths): + Adjust. + +2022-08-11 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the + oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported. + (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported. + +2022-08-11 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p): + Remove function declaration. + +2022-08-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106513 + * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t + for head_marker. + +2022-08-10 Martin Liska <mliska@suse.cz> + + PR lto/106328 + * opts-jobserver.h (struct jobserver_info): Add pipefd. + (jobserver_info::connect): New. + (jobserver_info::disconnect): Likewise. + (jobserver_info::get_token): Likewise. + (jobserver_info::return_token): Likewise. + * opts-common.cc: Implement the new functions. + +2022-08-10 Martin Liska <mliska@suse.cz> + + * opts-jobserver.h: Add one member. + * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO + format of --jobserver-auth. + +2022-08-10 Martin Liska <mliska@suse.cz> + + * gcc.cc (driver::detect_jobserver): Remove and move to + jobserver.h. + * lto-wrapper.cc (jobserver_active_p): Likewise. + (run_gcc): Likewise. + * opts-jobserver.h: New file. + * opts-common.cc (jobserver_info::jobserver_info): New function. + +2022-08-09 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-features.cc (scalar_chain::convert_compare): + Create new pseudos only when/if needed. Add support for TEST, + i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST. + When broadcasting V2DImode and V4SImode use new pseudo register. + (timode_scalar_chain::convert_op): Do nothing if operand is + already V1TImode. Avoid generating useless SUBREG conversions, + i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT + in addition to CONST_INT by using CONST_SCALAR_INT_P. + (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both + CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword + pattern as an STV candidate. + (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P + operands in binary logic operations. + * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs + for UNSPEC_PTEST; a PTEST that performs an AND has the same cost + as regular PTEST, i.e. cost->sse_op. + * config/i386/i386.md (*testti_doubleword): New pre-reload + define_insn_and_split that recognizes comparison of TI mode AND + against zero. + * config/i386/sse.md (*ptest<mode>_and): New pre-reload + define_insn_and_split that recognizes UNSPEC_PTEST of identical + AND operands. + +2022-08-09 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + PR middle-end/21137 + PR tree-optimization/98954 + * fold-const.cc (fold_binary_loc): Remove optimizations to + optimize ((X >> C1) & C2) ==/!= 0. + * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz + check, and handle all values of INTEGER_CSTs @2 and @3. + (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz + checks, and handle all values of INTEGER_CSTs @2 and @3. + +2022-08-09 David Malcolm <dmalcolm@redhat.com> + + * doc/invoke.texi (Static Analyzer Options): Add notes on which + functions the analyzer has hardcoded knowledge of. + +2022-08-09 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn.cc (gcn_function_value): Allow vector return values. + (num_arg_regs): Allow vector arguments. + (gcn_function_arg): Likewise. + (gcn_function_arg_advance): Likewise. + (gcn_arg_partial_bytes): Likewise. + (gcn_return_in_memory): Likewise. + (gcn_expand_epilogue): Get return value from v8. + * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8. + (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity. + (FIRST_VPARM_REG): New. + (FUNCTION_ARG_REGNO_P): Allow vector parameters. + (struct gcn_args): Add vnum field. + (LIBCALL_VALUE): All vector return values. + * config/gcn/gcn.md (gcn_call_value): Add vector constraints. + (gcn_call_value_indirect): Likewise. + +2022-08-09 Richard Biener <rguenther@suse.de> + + * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE + directly. Avoid update_ssa when in SSA form. + (expand_omp_atomic_store): Likewise. + (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA + form. + (expand_omp_atomic_pipeline): Likewise. + (expand_omp_atomic_mutex): Likewise. + * tree-parloops.cc (gen_parallel_loop): Use + TODO_update_ssa_no_phi after loop_version. + +2022-08-09 Richard Biener <rguenther@suse.de> + + * doc/invoke.texi (max-fsm-thread-length): Remove. + * params.opt (max-fsm-thread-length): Likewise. + * tree-ssa-threadbackward.cc + (back_threader_profitability::profitable_path_p): Do not + check max-fsm-thread-length. + +2022-08-09 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106514 + * params.opt (max-jump-thread-paths): New. + * doc/invoke.texi (max-jump-thread-paths): Document. + * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): + Honor max-jump-thread-paths, take overall_path argument. + (back_threader::find_paths): Pass 1 as initial overall_path. + +2022-08-09 Tobias Burnus <tobias@codesourcery.com> + + PR middle-end/106492 + * omp-low.cc (lower_rec_input_clauses): Add missing folding + to data type of linear-clause list item. + +2022-08-08 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106556 + * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the + type of the cond_expr operands being evaluted. + +2022-08-08 Tom Honermann <tom@honermann.net> + + * ginclude/stdatomic.h (atomic_char8_t, + ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro. + +2022-08-08 Andrew Pinski <apinski@marvell.com> + + PR middle-end/103645 + * gimplify.cc (gimplify_init_constructor): Don't build/add + gimple assignment of an empty type. + +2022-08-08 Richard Biener <rguenther@suse.de> + + PR lto/106540 + PR lto/106334 + * dwarf2out.cc (dwarf2out_register_external_die): Restore + original assert. + * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1 + to input DECL_INITIAL, avoiding to commit drefs. + +2022-08-07 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate + for x86_64_hilo_general_operand to general operand. Call + force_reg on parts that are not x86_64_immediate_operand. + +2022-08-05 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/105947 + * doc/invoke.texi: Add -Wanalyzer-jump-through-null. + +2022-08-05 Roger Sayle <roger@nextmovesoftware.com> + + * expmed.cc (emit_store_flag_1): Move code to expand double word + equality and inequality against zero or -1, using word operations, + to after trying to use the backend's cstore<mode>4 optab/expander. + +2022-08-05 Tamar Christina <tamar.christina@arm.com> + + PR middle-end/106534 + * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the + value_replacement and store_elim from diamonds. + +2022-08-05 Richard Biener <rguenther@suse.de> + + * tree-ssa-threadbackward.cc (back_threader::maybe_register_path): + Check whether the registry register_path rejected the path. + (back_threader_registry::register_path): Return whether + register_jump_thread succeeded. + +2022-08-05 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/106514 + * value-range.cc (unsupported_range::unsupported_range): Move... + * value-range.h (unsupported_range::unsupported_range): ...here. + (unsupported_range::set_undefined): New. + +2022-08-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106533 + * tree-loop-distribution.cc (loop_distribution::execute): Continue + analyzing the inner loops when find_seed_stmts_for_distribution + fails. + +2022-08-05 Andrew Pinski <apinski@marvell.com> + + * config/riscv/predicates.md (splittable_const_int_operand): + Remove the check for TARGET_64BIT for single bit const values. + +2022-08-04 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106514 + * gimple-range-path.cc (path_range_query::compute_ranges_in_block): + Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps. + +2022-08-04 Tamar Christina <tamar.christina@arm.com> + + * match.pd: New bit_not rule. + +2022-08-04 Tamar Christina <tamar.christina@arm.com> + + PR middle-end/106519 + * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for + diamond shapes. + +2022-08-04 Sam Feifer <sfeifer@redhat.com> + + PR tree-optimization/106243 + * match.pd (-x & 1): New simplification. + +2022-08-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106521 + * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform + CFG cleanup manually before rewriting into LC SSA. + +2022-08-04 Richard Biener <rguenther@suse.de> + + * tree-ssa-threadbackward.cc (populate_worklist): Remove. + (back_threader::resolve_phi): Likewise. + (back_threader::find_paths_to_names): Rewrite greedy search. + +2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com> + + * config/s390/vector.md (V_HW_FT): New iterator. + * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead + of V_HW. + +2022-08-03 Michael Meissner <meissner@linux.ibm.com> + + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code + setting -mblock-ops-vector-pair. + +2022-08-03 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106514 + * value-relation.cc (path_oracle::killing_def) Do not walk the + equivalence set clearing bits. + +2022-08-03 Tamar Christina <tamar.christina@arm.com> + + * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi + sequence of a three-way conditional. + (replace_phi_edge_with_variable): Support diamonds. + (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way + min/max. + (strip_bit_not, invert_minmax_code): New. + +2022-08-03 Richard Earnshaw <rearnsha@arm.com> + + PR rtl-optimization/106187 + * alias.h (mems_same_for_tbaa_p): Declare. + * alias.cc (mems_same_for_tbaa_p): New function. + * dse.cc (record_store): Use it instead of open-coding + alias check. + * cselib.h (cselib_redundant_set_p): Declare. + * cselib.cc: Include alias.h + (cselib_redundant_set_p): New function. + * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead + of rtx_equal_for_cselib_p. + * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p. + (reload_cse_noop_set_p): Delete. + +2022-08-03 Martin Liska <mliska@suse.cz> + + * doc/gcov-dump.texi: Document the new option. + * gcov-dump.cc (main): Parse the new option. + (print_usage): Show the option. + (tag_counters): Sort key:value pairs of TOP N counter. + +2022-08-03 Martin Liska <mliska@suse.cz> + + * profile.cc (compute_branch_probabilities): Do not collect + stats unless TDF_DETAILS. + +2022-08-03 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + PR target/47949 + * config/i386/i386.md (peephole2): New peephole2 to convert + SWI48 moves to/from %rax/%eax where the src is dead to xchg, + when optimizing for minimal size with -Oz. + +2022-08-03 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case + to split comparisons against -1 using AND and CMP -1 instructions. + +2022-08-03 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-features.cc (compute_convert_gain): Add gain + for converting suitable TImode shift to a V1TImode shift. + (timode_scalar_chain::convert_insn): Add support for converting + suitable ASHIFT and LSHIFTRT. + (timode_scalar_to_vector_candidate_p): Consider logical shifts + by integer constants that are multiples of 8 to be candidates. + +2022-08-03 Roger Sayle <roger@nextmovesoftware.com> + Segher Boessenkool <segher@kernel.crashing.org> + Richard Sandiford <richard.sandiford@arm.com> + + * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add + optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT + that are all positive to complement the existing FFS and + idempotent ABS simplifications. + <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when + val_signbit_known_clear_p is true of the operand. + Simplify sign extensions of SUBREG truncations of operands + that are already suitably (zero) extended. + <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations + of operands that are already suitably zero extended. + +2022-08-02 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106510 + * gimple-range-fold.cc (fur_source::register_outgoing_edges): + Check for unsupported statements early. + +2022-08-02 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106474 + * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query + range of equivalences that may contribute to the range. + +2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com> + + * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR + encoding bit in BTF. + +2022-08-02 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove + irange check. + (tree_lower_bound): New. + (tree_upper_bound): New. + (fold_using_range::range_of_ssa_name_with_loop_info): Convert to + vrange. + * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change + argument to vrange. + +2022-08-02 Richard Biener <rguenther@suse.de> + + * tree-ssa-threadbackward.cc + (back_threader_profitability::profitable_path_p): Apply + size constraints to all paths again. + +2022-08-02 Aldy Hernandez <aldyh@redhat.com> + + * range-op-float.cc (finite_operands_p): New. + (frelop_early_resolve): New. + (default_frelop_fold_range): New. + (class foperator_equal): New. + (class foperator_not_equal): New. + (class foperator_lt): New. + (class foperator_le): New. + (class foperator_gt): New. + (class foperator_ge): New. + (class foperator_unordered): New. + (class foperator_ordered): New. + (class foperator_relop_unknown): New. + (floating_op_table::floating_op_table): Add above classes to + floating op table. + * value-range.h (frange::supports_p): Enable. + +2022-08-02 Aldy Hernandez <aldyh@redhat.com> + + * tree-core.h (struct tree_ssa_name): Add frange_info and + reshuffle the rest. + * value-range-storage.cc (vrange_storage::alloc_slot): Add case + for frange. + (vrange_storage::set_vrange): Same. + (vrange_storage::get_vrange): Same. + (vrange_storage::fits_p): Same. + (frange_storage_slot::alloc_slot): New. + (frange_storage_slot::set_frange): New. + (frange_storage_slot::get_frange): New. + (frange_storage_slot::fits_p): New. + * value-range-storage.h (class frange_storage_slot): New. + +2022-08-02 Aldy Hernandez <aldyh@redhat.com> + + * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger + query to integrals. + +2022-08-02 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (frange::set): Initialize m_props and cleanup. + +2022-08-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106497 + * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg): + Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK. + +2022-08-02 Martin Liska <mliska@suse.cz> + + * profile.cc (compute_branch_probabilities): Dump details only + if TDF_DETAILS. + * symtab.cc (symtab_node::dump_base): Do not dump pointer unless + TDF_ADDRESS is used, it makes comparison harder. + +2022-08-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106498 + * omp-expand.cc (expand_omp_taskreg): Do not perform virtual + SSA update here. + (expand_omp_for): Or here. + (execute_expand_omp): Instead schedule it here together + with CFG cleanup via TODO. + +2022-08-02 Richard Biener <rguenther@suse.de> + + PR lto/106334 + * dwarf2out.cc (dwarf2out_register_external_die): Adjust + assert. + +2022-08-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106495 + * tree-ssa-threadbackward.cc + (back_threader_profitability::profitable_path_p): If known_edge + is probably never executed avoid threading. + +2022-08-01 David Malcolm <dmalcolm@redhat.com> + + * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste + error. + +2022-08-01 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + PR target/106481 + * config/i386/i386-features.cc (timode_scalar_chain::convert_insn): + Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode + CONST_VECTOR. + +2022-08-01 H.J. Lu <hjl.tools@gmail.com> + + PR target/83782 + * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New. + (TARGET_IFUNC_REF_LOCAL_OK): Use it. + +2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com> + + PR debug/106263 + * ctfc.h (struct ctf_dtdef): Add field linkage. + * ctfc.cc (ctf_add_function): Set ctti_linkage. + * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for + function types and subprograms. + * btfout.cc (btf_asm_func_type): Emit linkage information for the + function. + (btf_dtd_emit_preprocess_cb): Propagate the linkage information + for functions. + +2022-08-01 Andrew Stubbs <ams@codesourcery.com> + Jakub Jelinek <jakub@redhat.com> + + * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match + the mask type. + +2022-08-01 Sam Feifer <sfeifer@redhat.com> + + PR tree-optimization/104992 + * match.pd (x / y * y == x): New simplification. + +2022-08-01 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (tree_compare): New. + (frange::set): Make more general. + (frange::normalize_kind): Cleanup and return bool. + (frange::union_): Use normalize_kind return value. + (frange::intersect): Same. + (frange::verify_range): Remove unnecessary else. + * value-range.h (vrp_val_max): Move before frange class. + (vrp_val_min): Same. + (frange::frange): Remove set to m_type. + +2022-08-01 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (vrange::supports_type_p): Use const_tree. + (irange::supports_type_p): Same. + (frange::supports_type_p): Same. + * value-range.h (Value_Range::supports_type_p): Same. + (irange::supports_p): Same. + +2022-08-01 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc (fold_using_range::range_of_phi): Only + query SCEV for integers. + (fold_using_range::range_of_ssa_name_with_loop_info): Remove + irange check. + +2022-07-31 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (define_expand <any_rotate>ti3): For + rotations by 64 bits use new rot[lr]64ti2_doubleword pattern. + (rot[lr]64ti2_doubleword): New post-reload splitter. + +2022-07-31 Roger Sayle <roger@nextmovesoftware.com> + H.J. Lu <hjl.tools@gmail.com> + + PR target/106450 + * config/i386/i386-features.cc (timode_check_non_convertible_regs): + Do nothing if REGNO is set in the REGS bitmap, or is a hard reg. + (timode_remove_non_convertible_regs): Update comment. + Call timode_check_non_convertible_reg on all TImode register + DEFs and USEs in each instruction. + +2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md: Change hard register number used in + the split patterns for indirect sibling call fixups from 10 to 11, + the last free one for the CALL0 ABI. + +2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_rtx_costs): + Add new case for IF_THEN_ELSE. + +2022-07-29 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn-valu.md (V_INT_noHI): New iterator. + (<expander><mode>3<exec>): Use V_INT_noHI. + (v<expander><mode>3<exec>): Likewise. + +2022-07-29 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn.md (one_cmpldi2): New. + +2022-07-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105679 + * tree-ssa-threadbackward.cc + (back_threader_profitability::profitable_path_p): Avoid threading + when the entry edge is probably never executed. + +2022-07-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106422 + * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg): + Check whether we can copy thread blocks and cancel the thread if not. + +2022-07-29 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/106449 + * omp-expand.cc (expand_omp_simd): Fix up handling of pointer + iterators in non-rectangular simd loops. Unshare fd->loops[i].n2 + or n2 before regimplifying it inside of a condition. + +2022-07-29 Jakub Jelinek <jakub@redhat.com> + + * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars, + extract_omp_for_update_vars, expand_omp_for_ordered_loops, + expand_omp_simd): Don't fold_convert second argument to + fold_build_pointer_plus to sizetype. + +2022-07-29 Lulu Cheng <chenglulu@loongson.cn> + + * config.in: Regenerate. + * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT): + Select the value of the macro definition according to whether + HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined. + * configure: Regenerate. + * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test. + +2022-07-29 Richard Biener <rguenther@suse.de> + + * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset): + Use CONVERT_EXPR_CODE_P. + +2022-07-29 Richard Biener <rguenther@suse.de> + + * tree-vect-patterns.cc (vect_recog_bool_pattern): Use + get_vectype_for_scalar_type instead of + vect_get_vector_types_for_stmt. + +2022-07-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/105893 + * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var. + +2022-07-28 David Malcolm <dmalcolm@redhat.com> + + * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than + url. + (Static Analyzer Options): Likewise. Add urefs for all of the + warnings that have associated CWE identifiers. + +2022-07-28 Maciej W. Rozycki <macro@embecosm.com> + + * doc/implement-c.texi (Floating point implementation): Mention + `-fno-trapping-math' in the context of FENV_ACCESS pragma. + * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma + implication in the descriptions of `-fno-trapping-math' and + `-frounding-math'. + +2022-07-28 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant. + (QUIET_PATTERN): New int attribute. + (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended + RTL insns entirely within the preparation statements. + (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default) + (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove + insns. + (*riscv_fsnvsnan<mode>2): New insn. + +2022-07-28 Richard Biener <rguenther@suse.de> + + PR middle-end/106457 + * tree.cc (array_at_struct_end_p): Handle array objects + specially. + +2022-07-28 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/106099 + * internal-fn.def (TRAP): New internal fn. + * internal-fn.h (expand_TRAP): Declare. + * internal-fn.cc (expand_TRAP): Define. + * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP, + use internal fn rather than builtin. + +2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com> + + * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead. + +2022-07-27 WANG Xuerui <i@xen0n.name> + + * doc/invoke.texi: Document -m[no-]explicit-relocs for + LoongArch. + +2022-07-27 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.md (stack_protect_set_<mode>): Remove + duplicate backslashes. + +2022-07-27 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New + case. + +2022-07-27 Jakub Jelinek <jakub@redhat.com> + + PR debug/106261 + * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't + output asm thunks for -dx. + +2022-07-27 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/106332 + * opts-common.cc (candidates_list_and_hint): Add gcc_assert + that candidates is not an empty vector. + +2022-07-27 Xi Ruoyao <xry111@xry111.site> + + * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the + assembler supports explicit relocation for LoongArch. + * configure: Regenerate. + * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS): + Define to 0 if not defined. + * config/loongarch/genopts/loongarch.opt.in + (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS. + * config/loongarch/loongarch.opt: Regenerate. + +2022-07-26 Peter Bergner <bergner@linux.ibm.com> + + PR c/106016 + * expr.cc (count_type_elements): Handle OPAQUE_TYPE. + +2022-07-26 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch-opts.cc: Modify the output message string + of the warning. + +2022-07-26 Martin Liska <mliska@suse.cz> + + * doc/tm.texi.in: Fix placement of defmac. + * doc/tm.texi: Copy. + +2022-07-26 Martin Liska <mliska@suse.cz> + + * doc/tm.texi.in: Fix cross @defmac and @hook. + * doc/tm.texi: Copy. + +2022-07-26 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/106444 + * value-range-pretty-print.cc (vrange_printer::visit): Handle + legacy ranges. + (vrange_printer::print_irange_bound): Work on wide_int's. + * value-range-pretty-print.h (print_irange_bound): Same. + * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges. + +2022-07-26 Richard Biener <rguenther@suse.de> + + * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1 + points to a constant continue checking ptr2. + +2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com> + + * config/aarch64/aarch64-builtins.cc + (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8) + (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16) + (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64) + (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8) + (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16) + (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64) + (MODE_q_p128): Define macro to map to corresponding mode name. + (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16) + (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64) + (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to + corresponding qualifier name. + (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix. + (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro + functions for the above mappings + (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS) + (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1) + (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN) + (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions + for all vreinterpret intrinsics + (enum aarch64_builtins): Add vreinterpret function codes + (aarch64_init_simd_intrinsics): New + (handle_arm_neon_h): Improved comment. + (aarch64_general_fold_builtin): Fold vreinterpret calls + * config/aarch64/arm_neon.h + (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8) + (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64) + (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16) + (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16) + (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8) + (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64) + (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8) + (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64) + (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128) + (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8) + (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64) + (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16) + (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8) + (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8) + (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64) + (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8) + (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64) + (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128) + (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8) + (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64) + (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16) + (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8) + (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8) + (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64) + (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128) + (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16) + (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8) + (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16) + (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64) + (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16) + (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16) + (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8) + (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64) + (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16) + (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8) + (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64) + (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32) + (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8) + (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64) + (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16) + (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64) + (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32) + (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16) + (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8) + (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16) + (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16) + (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8) + (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64) + (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64) + (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32) + (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64) + (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32) + (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16) + (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16) + (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16) + (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16) + (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8) + (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64) + (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8) + (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32) + (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32) + (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16) + (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8) + (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16) + (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16) + (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8) + (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128) + (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8) + (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64) + (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16) + (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16) + (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8) + (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64) + (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8) + (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8) + (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128) + (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16) + (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32) + (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32) + (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16) + (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16) + (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16) + (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16) + (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8) + (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128) + (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8) + (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32) + (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32) + (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16) + (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8) + (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16) + (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16) + (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8) + (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128) + (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8) + (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32) + (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32) + (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16) + (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8) + (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16) + (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16) + (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8) + (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128) + (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8) + (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64) + (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32) + (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16) + (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8) + (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64) + (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16) + (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8) + (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128) + (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8) + (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64) + (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32) + (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16) + (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8) + (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64) + (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8) + (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8) + (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128) + (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8) + (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64) + (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16) + (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16) + (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8) + (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64) + (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8) + (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8) + (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128) + (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8) + (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64) + (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32) + (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16) + (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32) + (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16) + (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8) + (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64) + (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64) + (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16) + (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16) + (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16) + (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16) + (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16) + (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16) + (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16) + (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16) + (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16) + (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16) + (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16) + (vreinterpretq_p128_bf16): Delete + +2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com> + + * config/aarch64/aarch64-builtins.cc + (aarch64_simd_builtin_std_type): Rename to... + (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers. + (aarch64_lookup_simd_builtin_type): Rename to... + (aarch64_simd_builtin_type): ...this. Add const/pointer + support, and extract table lookup to... + (aarch64_lookup_simd_type_in_table): ...this function. + (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type. + (aarch64_init_fcmla_laneq_builtins): Ditto. + (aarch64_init_simd_builtin_functions): Ditto. + +2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com> + + * config/aarch64/aarch64-builtins.cc + (aarch64_general_gimple_fold_builtin): Add combine. + +2022-07-26 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106189 + * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): + Divide using offset_ints. + +2022-07-26 Lulu Cheng <chenglulu@loongson.cn> + + * common/config/loongarch/loongarch-common.cc: + Enable '-fsection-anchors' when O1 and more advanced optimization. + * config/loongarch/genopts/loongarch.opt.in: Add new option + '-mexplicit-relocs', and enable by default. + * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p): + Delete function declaration. + (loongarch_split_move_insn): Delete function declaration. + (loongarch_split_symbol_type): Add function declaration. + * config/loongarch/loongarch.cc (enum loongarch_address_type): + Add new address type 'ADDRESS_LO_SUM'. + (loongarch_classify_symbolic_expression): New function definitions. + Classify the base of symbolic expression X, given that X appears in + context CONTEXT. + (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS. + (loongarch_split_symbol_type): New function definitions. + Determines whether the symbol load should be split into two instructions. + (loongarch_valid_lo_sum_p): New function definitions. + Return true if a LO_SUM can address a value of mode MODE when the LO_SUM + symbol has type SYMBOL_TYPE. + (loongarch_classify_address): Add handling of 'LO_SUM'. + (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'. + (loongarch_signed_immediate_p): Sort code. + (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM. + (loongarch_const_insns): Add handling of 'HIGH'. + (loongarch_split_move_insn_p): Add the static attribute to the function. + (loongarch_emit_set): New function definitions. + (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS. + (loongarch_legitimize_tls_address): Add symbol handling when defining the + TARGET_EXPLICIT_RELOCS macro. + (loongarch_split_symbol): New function definitions. Split symbol. + (loongarch_legitimize_address): Add codes see if the address can split into a high part + and a LO_SUM. + (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into + high and low. + (loongarch_split_move_insn): Delete function definitions. + (loongarch_output_move): Add support for HIGH and LO_SUM. + (loongarch_print_operand_reloc): New function definitions. + Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT. + (loongarch_memmodel_needs_release_fence): Sort code. + (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH + and LOW output. + (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'. + (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2. + (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1. + * config/loongarch/loongarch.md (movti): Delete the template. + (*movti): Delete the template. + (movtf): Delete the template. + (*movtf): Delete the template. + (*low<mode>): New template of normal symbol low address. + (@tls_low<mode>): New template of tls symbol low address. + (@ld_from_got<mode>): New template load address from got table. + (@ori_l_lo12<mode>): New template. + * config/loongarch/loongarch.opt: Update from loongarch.opt.in. + * config/loongarch/predicates.md: Add support for symbol_type HIGH. + +2022-07-26 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/constraints.md (a): Delete the constraint. + (b): A constant call not local address. + (h): Delete the constraint. + (t): Delete the constraint. + * config/loongarch/loongarch-opts.cc (loongarch_config_target): + Remove cModel type support other than normal. + * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type): + Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'. + (loongarch_split_symbol): Delete useless function declarations. + (loongarch_split_symbol_type): Delete useless function declarations. + * config/loongarch/loongarch.cc (enum loongarch_address_type): + Delete unnecessary comment information. + (loongarch_symbol_binds_local_p): Modified the judgment order of label + and symbol. + (loongarch_classify_symbol): Return symbol type. If symbol is a label, + or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol, + return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP. + (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE' + 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'. + (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE' + and 'SYMBOL_PCREL'. + (loongarch_address_insns): Sort code. + (loongarch_12bit_offset_address_p): Sort code. + (loongarch_14bit_shifted_offset_address_p): Sort code. + (loongarch_call_tls_get_addr): Sort code. + (loongarch_legitimize_tls_address): Sort code. + (loongarch_output_move): Remove schema support for cmodel other than normal. + (loongarch_memmodel_needs_release_fence): Sort code. + (loongarch_print_operand): Sort code. + * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P): + Rename to LARCH_12BIT_OFFSET_P. + (LARCH_12BIT_OFFSET_P): New macro. + * config/loongarch/loongarch.md: Reimplement the function call. Remove schema + support for cmodel other than normal. + * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate. + (is_const_call_plt_symbol): Delete this predicate. + (is_const_call_global_noplt_symbol): Delete this predicate. + (is_const_call_no_local_symbol): New predicate, determines whether it is a local + symbol or label. + +2022-07-26 Kewen Lin <linkw@linux.ibm.com> + + PR target/106091 + * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy + REG_EH_REGION when replacing one store insn having it. + (replace_swapped_aligned_load): Likewise. + +2022-07-25 Aldy Hernandez <aldyh@redhat.com> + + * Makefile.in (OBJS): Add range-op-float.o. + * range-op.cc (get_float_handler): New. + (range_op_handler::range_op_handler): Save code and type for + delayed querying. + (range_op_handler::oeprator bool): Move from header file, and + add support for floats. + (range_op_handler::fold_range): Add support for floats. + (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. + * range-op.h (class range_operator_float): New. + (class floating_op_table): New. + * value-query.cc (range_query::get_tree_range): Add case for + REAL_CST. + * range-op-float.cc: New file. + +2022-07-25 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + PR target/91681 + * config/i386/i386-expand.cc (split_double_concat): A new helper + function for setting a double word value from two word values. + * config/i386/i386-protos.h (split_double_concat): Prototype here. + * config/i386/i386.md (zero_extendditi2): New define_insn_and_split. + (*add<dwi>3_doubleword_zext): New define_insn_and_split. + (*sub<dwi>3_doubleword_zext): New define_insn_and_split. + (*concat<mode><dwi>3_1): New define_insn_and_split replacing + previous define_split for implementing DST = (HI<<32)|LO as + pair of move instructions, setting lopart and hipart. + (*concat<mode><dwi>3_2): Likewise. + (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended. + (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended. + +2022-07-25 Aldy Hernandez <aldyh@redhat.com> + + PR middle-end/106432 + * gimple-range.cc (gimple_ranger::range_on_edge): Return false + when the result range type is unsupported. + +2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef. + +2022-07-25 Richard Biener <rguenther@suse.de> + + PR middle-end/106414 + * match.pd (~(x ^ y) -> x == y): Restrict to single bit + precision types. + +2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64.md (rbit<mode>2): Rename this ... + (@aarch64_rbit<mode>): ... to this and change it in... + (ffs<mode>2,ctz<mode>2): ... here. + (@aarch64_rev16<mode>): New. + * config/aarch64/aarch64-builtins.cc: (aarch64_builtins): + Define the following enum AARCH64_REV16, AARCH64_REV16L, + AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL. + (aarch64_init_data_intrinsics): New. + (aarch64_general_init_builtins): Add call to + aarch64_init_data_intrinsics. + (aarch64_expand_builtin_data_intrinsic): New. + (aarch64_general_expand_builtin): Add call to + aarch64_expand_builtin_data_intrinsic. + * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl, + __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16, + __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New. + +2022-07-25 Martin Liska <mliska@suse.cz> + + * doc/extend.texi: Remove trailing whitespaces. + * doc/invoke.texi: Likewise. + +2022-07-25 Aldy Hernandez <aldyh@redhat.com> + + * value-range-pretty-print.cc (vrange_printer::visit): New. + (vrange_printer::print_frange_prop): New. + * value-range-pretty-print.h (class vrange_printer): Add visit and + print_frange_prop. + * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange. + (vrange_allocator::alloc_frange): New. + * value-range.cc (vrange::operator=): Handle frange. + (vrange::operator==): Same. + (frange::accept): New. + (frange::set): New. + (frange::normalize_kind): New. + (frange::union_): New. + (frange::intersect): New. + (frange::operator=): New. + (frange::operator==): New. + (frange::supports_type_p): New. + (frange::verify_range): New. + * value-range.h (enum value_range_discriminator): Handle frange. + (class fp_prop): New. + (FP_PROP_ACCESSOR): New. + (class frange_props): New. + (FRANGE_PROP_ACCESSOR): New. + (class frange): New. + (Value_Range::init): Handle frange. + (Value_Range::operator=): Same. + (Value_Range::supports_type_p): Same. + (frange_props::operator==): New. + (frange_props::union_): New. + (frange_props::intersect): New + (frange::frange): New. + (frange::type): New. + (frange::set_varying): New. + (frange::set_undefined): New. + +2022-07-25 Peter Bergner <bergner@linux.ibm.com> + Kewen Lin <linkw@linux.ibm.com> + + PR testsuite/106345 + * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu + to filter out all -mtune options. + +2022-07-24 Aldy Hernandez <aldyh@redhat.com> + + * value-query.cc (range_query::get_value_range): Add assert. + * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE + on unsupported types in vr_values. + (simplify_using_ranges::simplify): Same. + +2022-07-24 Aldy Hernandez <aldyh@redhat.com> + + * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported + types. + * value-query.cc (get_ssa_name_range_info): Remove precision check. + +2022-07-24 Aldy Hernandez <aldyh@redhat.com> + + * value-relation.cc (value_relation::set_relation): Remove assert. + (path_oracle::register_relation): Exit when trying to register + same SSA name relations. + +2022-07-24 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange. + (ranger_cache::range_from_dom): Same. + * tree-ssa-dom.cc + (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same. + +2022-07-24 Roger Sayle <roger@nextmovesoftware.com> + H.J. Lu <hjl.tools@gmail.com> + + PR target/106303 + PR target/106347 + * config/i386/i386-features.cc (make_vector_copies): Move from + general_scalar_chain to scalar_chain. + (convert_reg): Likewise. + (convert_insn_common): New scalar_chain method split out from + general_scalar_chain convert_insn. + (convert_registers): Move from general_scalar_chain to + scalar_chain. + (scalar_chain::convert): Call convert_insn_common before calling + convert_insn. + (timode_remove_non_convertible_regs): Iterate until there are + no further changes to the candidates. + * config/i386/i386-features.h (scalar_chain::hash_map): Move + from general_scalar_chain. + (scalar_chain::convert_reg): Likewise. + (scalar_chain::convert_insn_common): New shared method. + (scalar_chain::make_vector_copies): Move from general_scalar_chain. + (scalar_chain::convert_registers): Likewise. No longer virtual. + (general_scalar_chain::hash_map): Delete. Moved to scalar_chain. + (general_scalar_chain::convert_reg): Likewise. + (general_scalar_chain::make_vector_copies): Likewise. + (general_scalar_chain::convert_registers): Delete virtual method. + (timode_scalar_chain::convert_registers): Likewise. + +2022-07-23 Immad Mir <mirimmad@outlook.com> + + * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under + "Common Function Attributes" section. + * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch, + -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these + warnings may be emitted through usage of three function attributes used + for static analysis of file descriptors namely fd_arg, fd_arg_read and + fd_arg_write. + +2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (*masktrue_const_bitcmpl): + Add a new insn_and_split pattern, and a few split patterns for + spacial cases. + +2022-07-22 Richard Sandiford <richard.sandiford@arm.com> + + * graphds.cc (graphds_scc): Fix algorithm attribution. + +2022-07-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106403 + * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored + value valueization after check for IFN_MASKED_STORE or + IFN_LEN_STORE. + +2022-07-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106397 + * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do + not update SSA form here. + (mark_nontemporal_stores): Return whether we marked any + non-temporal stores and inserted mfence. + (loop_prefetch_arrays): Note when we need to update SSA. + (tree_ssa_prefetch_arrays): Perform required (LC) SSA update + at the end of the pass. + +2022-07-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106387 + * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name + if ptr is not an SSA name. + +2022-07-22 liuhongt <hongtao.liu@intel.com> + + PR target/106038 + * config/i386/mmx.md (<code><mode>3): New define_expand, it's + original "<code><mode>3". + (*<code><mode>3): New define_insn, it's original + "<code><mode>3" be extended to handle memory and immediate + operand with ix86_binary_operator_ok. Also adjust define_split + after it. + (mmxinsnmode): New mode attribute. + (*mov<mode>_imm): Refactor with mmxinsnmode. + * config/i386/predicates.md + (register_or_x86_64_const_vector_operand): New predicate. + +2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/altivec.md: + (vstrir_code_<mode>): Rename to... + (vstrir_direct_<mode>): ... this. + (vstrir_p_code_<mode>): Rename to... + (vstrir_p_direct_<mode>): ... this. + (vstril_code_<mode>): Rename to... + (vstril_direct_<mode>): ... this. + (vstril_p_code_<mode>): Rename to... + (vstril_p_direct_<mode>): ... this. + +2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/rs6000-c.cc: Update comments. + (rs6000_target_modify_macros): Remove bu_mask references. + (rs6000_define_or_undefine_macro): Replace bu_mask reference + with a rs6000_cpu value check. + (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate() + parameter from call to rs6000_target_modify_macros. + * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros, + rs6000_target_modify_macros_ptr): Remove parameter from extern + for the prototype. + * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove + parameter from prototype, update calls to this function. + (rs6000_print_builtin_options): Remove prototype, call and function. + (rs6000_builtin_mask_calculate): Remove function. + (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options. + (rs6000_option_override_internal): Remove rs6000_builtin_mask var + and builtin_mask debug output. + (rs6000_builtin_mask_names): Remove. + (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask, + diff_bumask references; Update calls to rs6000_target_modify_ptr. + * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove. + +2022-07-21 Sam Feifer <sfeifer@redhat.com> + + PR tree-optimization/94920 + * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification. + (x <= 0 ? -x : 0): New simplification. + +2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + Revert: + 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type + instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR. + +2022-07-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106379 + * match.pd (~(a ^ b) -> a == b): New pattern. + +2022-07-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106378 + * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle + LEN_STORE, add mode to initialize a may-def and handle + MASK_STORE that way. + (dse_optimize_stmt): Query may-defs. Handle internal + functions LEN_STORE and MASK_STORE similar to how + we handle memory builtins but without byte tracking. + +2022-07-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106365 + * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining + the offset to start encoding of RHS from. + (vn_walk_cb_data::vn_walk_cb_data): Initialize it. + (vn_walk_cb_data::push_partial_def): Allow the first partial + definition to be fully providing the def. Offset RHS + before encoding if requested. + (vn_reference_lookup_3): Initialize def_rhs everywhere. + Add support for .MASK_STORE and .LEN_STORE (partial) definitions. + +2022-07-21 Richard Biener <rguenther@suse.de> + + * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case + store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD + and IFN_MASK_LOAD_LANES. + (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE, + IFN_LEN_STORE and IFN_MASK_STORE_LANES. + +2022-07-20 Alexander Monakov <amonakov@ispras.ru> + + PR rtl-optimization/101347 + * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move + population of nonlocal_goto_handler_labels from here ... + (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here. + * rtlanal.cc (remove_node_from_insn_list): Verify that a + duplicate is not present in the remainder of the list. + +2022-07-20 Alexander Monakov <amonakov@ispras.ru> + + * rtl.h (remove_node_from_expr_list): Remove declaration. + * rtlanal.cc (remove_node_from_expr_list): Remove (no uses). + +2022-07-20 Richard Biener <rguenther@suse.de> + + * tree-vect-data-refs.cc (bump_vector_ptr): Return an + invariant updated address when the input was invariant. + +2022-07-20 liuhongt <hongtao.liu@intel.com> + + * passes.def: (Split pass_cse_sincos to pass_expand_powcabs + and pass_cse_sincos, and move pass_cse_sincos after vectorizer). + * timevar.def (TV_TREE_POWCABS): New timevar. + * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos. + * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto. + (class pass_expand_powcabs): Ditto. + (pass_expand_powcabs::execute): Ditto. + (make_pass_expand_powcabs): Ditto. + (pass_cse_sincos::execute): Remove pow/cabs expand part. + (make_pass_cse_sincos): Ditto. + +2022-07-20 Richard Biener <richard.guenther@gmail.com> + Hongtao Liu <hongtao.liu@intel.com> + + PR tree-optimization/106010 + * tree-complex.cc (init_dont_simulate_again): Lower complex + type move. + (expand_complex_move): Also expand COMPLEX_CST for rhs. + +2022-07-19 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::range_from_dom): Check + for incoming ranges on join nodes and add to worklist. + +2022-07-19 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::resolve_dom): New. + (ranger_cache::range_from_dom): Put all nodes to be calculated + in the worklist and resolve after the dom walk. + * gimple-range-cache.h (resolve_dom): New prototype. + +2022-07-19 Alexander Monakov <amonakov@ispras.ru> + + * tree-cfg.cc (gimple_verify_flow_info): Check placement of + returns_twice calls. + +2022-07-19 Alexander Monakov <amonakov@ispras.ru> + + * cfghooks.cc (duplicate_block): Expand comment. + * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with + calls that may return twice. + +2022-07-19 Alexander Monakov <amonakov@ispras.ru> + + * tree-ssa-sink.cc (select_best_block): Punt if selected block + has incoming abnormal edges. + +2022-07-19 Martin Liska <mliska@suse.cz> + + * doc/extend.texi: Remove trailing :. + +2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type + instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR. + +2022-07-19 Richard Biener <rguenther@suse.de> + + PR middle-end/106331 + * builtins.cc (get_memory_rtx): Compute alignment from + the original address and set MEM_OFFSET to unknown when + we create a MEM_EXPR from the base object of the address. + +2022-07-19 Richard Biener <rguenther@suse.de> + + PR lto/106334 + * dwarf2out.cc (dwarf2out_register_external_die): Allow + map entry re-use during WPA. + +2022-07-19 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + PR c/106264 + * builtins.cc (fold_builtin_frexp): Call suppress_warning on + COMPOUND_EXPR to silence spurious warning if result isn't used. + (fold_builtin_modf): Likewise. + (do_mpfr_remquo): Likewise. + +2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_rtx_costs): + Change the relative cost of '(set (reg) (const_int N))' where + N fits into signed 12-bit from 4 to 0 if optimizing for size. + And use the appropriate macro instead of the bare number 4. + +2022-07-18 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106280 + * value-relation.cc (dom_oracle::register_relation): Register + transitives only when it is possible for there to be one. + (dom_oracle::set_one_relation): Return NULL if this is an + existing relation. + +2022-07-18 Maciej W. Rozycki <macro@embecosm.com> + + * doc/invoke.texi (RISC-V Options): Add index references for + `mrelax' and `mriscv-attribute'. + +2022-07-18 Maciej W. Rozycki <macro@embecosm.com> + + * doc/invoke.texi (Option Summary): Add missing second space + around `-mstack-protector-guard-reg='. + +2022-07-18 Maciej W. Rozycki <macro@embecosm.com> + + * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'. + (RISC-V Options): Likewise, and `-mriscv-attribute'. + +2022-07-18 Claudiu Zissulescu <claziss@gmail.com> + + * config/arc/arc-arch.h (arc_tune_attr): Add + ARC_TUNE_ARCHS4X_REL31A variant. + * config/arc/arc.cc (arc_override_options): Tune options for + release 310a. + (arc_sched_issue_rate): Use correct enum. + (arc600_corereg_hazard): Textual change. + (arc_hazard): Add release 310a tunning. + * config/arc/arc.md (tune): Update and take into consideration new + tune option. + (tune_dspmpy): Likewise. + (tune_store): New attribute. + * config/arc/arc.opt (mtune): New tune option. + * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units. + (hs4x_brcc_op): New instruction rezervation. + (hs4x_data_store_1_op): Likewise. + * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant. + * config/arc/arc-tables.opt: Regenerate. + * config/arc/t-multilib: Likewise. + * doc/invoke.texi (ARC): Update mcpu and tune sections. + +2022-07-18 Richard Biener <rguenther@suse.de> + + * tree-loop-distribution.cc (loop_distribution::distribute_loop): + When computing cost-based merging do not disregard builtin + classified partitions in some cases. + +2022-07-18 Richard Sandiford <richard.sandiford@arm.com> + + PR target/106253 + * config/arm/arm-builtins.cc (arm_builtin_vectorized_function): + Delete. + * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete. + * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): + Delete. + * config/arm/arm_neon_builtins.def (copysignf): Delete. + * config/arm/iterators.md (nvrint_pattern): New attribute. + * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2): + New pattern. + (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2): + Likewise. + (neon_copysignf<mode>): Rename to... + (copysign<mode>3): ...this. + +2022-07-18 Claudiu Zissulescu <claziss@gmail.com> + + * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame + pointer first when in interrupts. + +2022-07-18 Richard Biener <rguenther@suse.de> + + * tree-loop-distribution.cc (copy_loop_before): Add + the ability to replace the original LC PHI defs. + (generate_loops_for_partition): Pass through a flag + whether to redirect original LC PHI defs. + (generate_code_for_partition): Likewise. + (loop_distribution::distribute_loop): Compute the partition + that should provide the LC PHI defs for common reductions + and pass that down. + +2022-07-18 Richard Ball <richard.ball@arm.com> + + * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap. + (aarch64_evpc_uzp): Likewise. + (aarch64_evpc_zip): Likewise. + +2022-07-18 Roger Sayle <roger@nextmovesoftware.com> + + PR target/106231 + * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split + to recognize any_extend:DI of ctz:SI which is implicitly extended. + (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode + extended ctz:SI that has preceding xor to break false dependency. + +2022-07-18 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/predicates.md (x86_64_const_vector_operand): + Check the operand's mode matches the specified mode argument. + +2022-07-18 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec. + (kunpcksi): Likewise, add UNSPEC_MASKOP unspec. + (kunpckdi): Likewise, add UNSPEC_MASKOP unspec. + (vec_pack_trunc_qi): Update to specify the now required + UNSPEC_MASKOP unspec. + (vec_pack_trunc_<mode>): Likewise. + +2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md + (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2, + *masktrue_const_shifted_mask): If the immediate for bitwise AND is + represented as '-(1 << N)', decrease the lower bound of N from 12 + to 1. And the other immediate for conditional branch is now no + longer limited to zero, but also one of some positive integers. + Finally, remove the checks of some conditions, because the comparison + expressions that don't satisfy such checks are determined as + compile-time constants and thus will be optimized away before + RTL expansion. + +2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove. + (xtensa_constantsynth_2insn): Change to try all three synthetic + methods and to use the one that fits the immediate value of + the seed into a Narrow Move Immediate instruction "MOVI.N" + when the Code Density Option is configured. + +2022-07-15 H.J. Lu <hjl.tools@gmail.com> + + PR target/85620 + * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return + false if callee has indirect_return attribute and caller + doesn't. + +2022-07-15 Roger Sayle <roger@nextmovesoftware.com> + + PR target/106273 + * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the + constraints to reflect the output is earlyclobber, unless it is + the same register (pair) as one of the operands. + +2022-07-15 David Malcolm <dmalcolm@redhat.com> + + * doc/invoke.texi (Static Analyzer Options): Add the new fd + warnings to the initial gccoptlist, and to the list of those + disabled by -fanalyzer-checker=taint. + +2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com> + + * config/aarch64/aarch64-builtins.cc + (enum aarch64_type_qualifiers): Remove qualifier_internal. + (aarch64_init_simd_builtin_functions): Remove qualifier_internal check. + +2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com> + + * config/aarch64/aarch64-builtins.cc + (v1di_UP): Add V1DI mode to _UP macros. + * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode. + * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode. + * config/aarch64/aarch64-simd.md + (vec_extractv2dfv1df): Replace with... + (vec_extract<mode><V1half>): ...this. + * config/aarch64/aarch64.cc + (aarch64_classify_vector_mode): Add V1DI mode. + * config/aarch64/iterators.md + (VQ_2E, V1HALF, V1half): New. + (nunits): Add V1DI mode. + +2022-07-15 Roger Sayle <roger@nextmovesoftware.com> + + PR target/106278 + * config/i386/i386-features.cc (general_scalar_chain::convert_insn): + Fix indentation whitespace. + (timode_scalar_chain::fix_debug_reg_uses): Likewise. + (timode_scalar_chain::convert_insn): Delete dead code. + Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI. + Fix indentation whitespace. + (convertible_comparison_p): Likewise. + (timode_scalar_to_vector_candidate_p): Likewise. + +2022-07-15 Aldy Hernandez <aldyh@redhat.com> + + * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange. + +2022-07-15 Aldy Hernandez <aldyh@redhat.com> + + * Makefile.in (OBJS): Add value-range-pretty-print.o. + * pretty-print.h (pp_vrange): New. + * value-range.cc (vrange::dump): Call pp version. + (unsupported_range::dump): Move to its own file. + (dump_bound_with_infinite_markers): Same. + (irange::dump): Same. + (irange::dump_bitmasks): Same. + (vrange::debug): Remove. + * value-range.h: Remove virtual designation for dump methods. + Remove dump_bitmasks method. + * value-range-pretty-print.cc: New file. + * value-range-pretty-print.h: New file. + +2022-07-15 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::accept): New. + (unsupported_range::accept): New. + * value-range.h (class vrange_visitor): New. + (class vrange): Add accept method. + (class unsupported_range): Same. + (class Value_Range): Same. + +2022-07-15 Jonathan Wakely <jwakely@redhat.com> + + * diagnostic-format-json.cc (json_from_location_range): Adjust + to new label_text API. + * diagnostic-format-sarif.cc (sarif_builder::make_location_object): + Likewise. + * diagnostic-show-locus.cc (struct pod_label_text): Likewise. + (layout::print_any_labels): Likewise. + * tree-diagnostic-path.cc (class path_label): Likewise. + (struct event_range): Likewise. + (default_tree_diagnostic_path_printer): Likewise. + (default_tree_make_json_for_path): Likewise. + +2022-07-15 konglin1 <lingling.kong@intel.com> + + PR target/106113 + * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd} + comparison due to intrinsics changed over time. + * config/i386/i386-expand.cc (ix86_ssecom_setcc): + Add unordered check and mode for sse comi codegen. + (ix86_expand_sse_comi): Add unordered check and check a different + CCmode. + (ix86_expand_sse_comi_round):Extract unordered check and mode part + in ix86_ssecom_setcc. + +2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use + op_mode instead of vmode in calls to force_reg for op0 and op1. + +2022-07-14 H.J. Lu <hjl.tools@gmail.com> + + PR tree-optimization/103798 + * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h". + (simplify_builtin_call): Inline memchr with constant strings of + no more than the bytes of a word. + * tree-ssa-strlen.cc (use_in_zero_equality): Make it global. + * tree-ssa-strlen.h (use_in_zero_equality): New. + +2022-07-14 Eric Botcazou <ebotcazou@adacore.com> + + * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter + and set DECL_NOT_GIMPLE_REG_P on the variable according to it. + (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and + pass it in the call to lookup_tmp_var. + (get_formal_tmp_var): Pass false in the call to lookup_tmp_var. + (get_initialized_tmp_var): Likewise. + (prepare_gimple_addressable): Call internal_get_tmp_var instead of + get_initialized_tmp_var with NOT_GIMPLE_REG set to true. + +2022-07-14 Martin Liska <mliska@suse.cz> + + * doc/gimple.texi: Close properly a deftypefn. + +2022-07-14 Martin Liska <mliska@suse.cz> + + * doc/gimple.texi: Close properly a deftypefn. + +2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md: + In FP constant synthesis split pattern, subcontract to + avoid_constant_pool_reference() as in the case of integer, + because it can handle well too. And cast to int32_t before + calling xtensa_constantsynth() in order to ignore upper 32-bit. + +2022-07-13 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (operator_lt::fold_range): Use nonzero bits. + +2022-07-13 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::copy_to_legacy): Set nonzero mask. + (irange::legacy_intersect): Clear nonzero mask. + (irange::legacy_union): Same. + (irange::invert): Same. + +2022-07-13 Richard Biener <rguenther@suse.de> + + * tree-ssa-dom.h (record_temporary_equivalences): Remove. + * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New. + (dom_jt_state::get_blocks_on_stack): Likewise. + (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state. + (back_propagate_equivalences): Remove dominator bitmap + compute and instead use passed in m_blocks_on_stack. + (record_temporary_equivalences): Likewise. + (record_equivalences_from_incoming_edge): Likewise. + (dom_opt_dom_walker::before_dom_children): Maintain and + pass down blocks on stack. + (dom_opt_dom_walker::after_dom_children): Likewise. + +2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com> + + * config/aarch64/aarch64-builtins.cc + (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE. + +2022-07-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106249 + * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): + Only verify LC SSA of the new_loop if we created it. + Use TODO_update_ssa_nophi for the SSA update after versioning + the loop. + +2022-07-12 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (unsigned_singleton_p): Remove. + (operator_bitwise_and::remove_impossible_ranges): Remove. + (operator_bitwise_and::fold_range): Set nonzero bits. * + * value-range.cc (irange::get_nonzero_bits): Remove + legacy_mode_p assert. + (irange::dump_bitmasks): Remove legacy_mode_p check. + +2022-07-12 Richard Sandiford <richard.sandiford@arm.com> + + PR target/106253 + * predict.h (insn_optimization_type): Declare. + * predict.cc (insn_optimization_type): New function. + * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND) + (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL) + (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions. + * internal-fn.cc (unary_convert_direct): New macro. + (expand_convert_optab_fn): New function. + (expand_unary_convert_optab_fn): New macro. + (direct_unary_convert_optab_supported_p): Likewise. + * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to + convert_optab_handler. + * config/aarch64/aarch64-protos.h + (aarch64_builtin_vectorized_function): Delete. + * config/aarch64/aarch64-builtins.cc + (aarch64_builtin_vectorized_function): Delete. + * config/aarch64/aarch64.cc + (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete. + * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab. + * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove + optimize_insn_for_size_p test. + +2022-07-12 Richard Biener <rguenther@suse.de> + + * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi): + Remove. + (vect_do_peeling): Do not call it, adjust comment. + +2022-07-12 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-builtins.cc + (aarch64_builtin_vectorized_function): Remove handling of + floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz. + +2022-07-11 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106234 + * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator + cache value before recursively resolving it. + +2022-07-11 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-features.h (scalar_chain): Add fields + insns_conv, n_sse_to_integer and n_integer_to_sse to this + parent class, moved from general_scalar_chain. + (scalar_chain::convert_compare): Protected method moved + from general_scalar_chain. + (mark_dual_mode_def): Make protected, not private virtual. + (scalar_chain:convert_op): New private virtual method. + (general_scalar_chain::general_scalar_chain): Simplify constructor. + (general_scalar_chain::~general_scalar_chain): Delete destructor. + (general_scalar_chain): Move insns_conv, n_sse_to_integer and + n_integer_to_sse fields to parent class, scalar_chain. + (general_scalar_chain::mark_dual_mode_def): Delete prototype. + (general_scalar_chain::convert_compare): Delete prototype. + (timode_scalar_chain::compute_convert_gain): Remove simplistic + implementation, convert to a method prototype. + (timode_scalar_chain::mark_dual_mode_def): Delete prototype. + (timode_scalar_chain::convert_op): Prototype new virtual method. + * config/i386/i386-features.cc (scalar_chain::scalar_chain): + Allocate insns_conv and initialize n_sse_to_integer and + n_integer_to_sse fields in constructor. + (scalar_chain::scalar_chain): Free insns_conv in destructor. + (general_scalar_chain::general_scalar_chain): Delete + constructor, now defined in the class declaration. + (general_scalar_chain::~general_scalar_chain): Delete destructor. + (scalar_chain::mark_dual_mode_def): Renamed from + general_scalar_chain::mark_dual_mode_def. + (timode_scalar_chain::mark_dual_mode_def): Delete. + (scalar_chain::convert_compare): Renamed from + general_scalar_chain::convert_compare. + (timode_scalar_chain::compute_convert_gain): New method to + determine the gain from converting a TImode chain to V1TImode. + (timode_scalar_chain::convert_op): New method to convert an + operand from TImode to V1TImode. + (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE + on REG_EQUAL notes that were originally TImode (not CONST_INT). + Handle AND, ANDN, XOR, IOR, NOT and COMPARE. + (timode_mem_p): Helper predicate to check where operand is + memory reference with sufficient alignment for TImode STV. + (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p + to check whether COMPARE is convertible. Handle SET_DESTs that + that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT, + CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT. + +2022-07-11 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/106250 + * tree-vect-loop.cc (vectorizable_reduction): Reinstate final + argument to directly_supported_p. + +2022-07-11 Richard Biener <rguenther@suse.de> + + * tree-into-ssa.cc (update_ssa): Do not forcefully + re-compute dominance fast queries for TODO_update_ssa_no_phi. + +2022-07-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106228 + * tree-vect-data-refs.cc (vect_setup_realignment): Adjust + VUSE compute for the non-loop case. + +2022-07-11 Richard Biener <rguenther@suse.de> + + * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New. + (rewrite_update_dom_walker::rewrite_update_dom_walker): Update. + (rewrite_update_dom_walker::m_in_region_flag): New. + (rewrite_update_dom_walker::before_dom_children): If the region + to update is marked, STOP at exits. + (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region + to be updated. + (dump_update_ssa): Use bitmap_empty_p. + (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when + TODO_update_ssa_no_phi. + * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account + pending update_ssa to the caller. + +2022-07-11 Richard Biener <rguenthert@suse.de> + + PR target/105459 + * config/i386/i386-options.cc (ix86_set_current_function): + Rebuild the target optimization node whenever necessary, + not only when the optimization node didn't change. + +2022-07-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106228 + * tree-vect-data-refs.cc (vect_setup_realignment): Properly + set a VUSE operand on the emitted load. + +2022-07-11 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range.cc (gimple_ranger::export_global_ranges): Remove + verification against legacy value_range. + (gimple_ranger::register_inferred_ranges): Same. + (gimple_ranger::export_global_ranges): Rename update_global_range + to set_range_info. + * tree-core.h (struct range_info_def): Remove. + (struct irange_storage_slot): New. + (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation. + (struct tree_ssa_name): Add vrange_storage support. + * tree-ssanames.cc (range_info_p): New. + (range_info_fits_p): New. + (range_info_alloc): New. + (range_info_free): New. + (range_info_get_range): New. + (range_info_set_range): New. + (set_range_info_raw): Remove. + (set_range_info): Adjust to use vrange_storage. + (set_nonzero_bits): Same. + (get_nonzero_bits): Same. + (duplicate_ssa_name_range_info): Remove overload taking + value_range_kind. + Rewrite tree overload to use vrange_storage. + (duplicate_ssa_name_fn): Adjust to use vrange_storage. + * tree-ssanames.h (struct range_info_def): Remove. + (set_range_info): Adjust prototype to take vrange. + * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call + duplicate_ssa_name_range_info. + * tree.h (SSA_NAME_ANTI_RANGE_P): Remove. + (SSA_NAME_RANGE_TYPE): Remove. + * value-query.cc (get_ssa_name_range_info): Adjust to use + vrange_storage. + (update_global_range): Remove. + (get_range_global): Remove as_a<irange>. + * value-query.h (update_global_range): Remove. + * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): + Rename update_global_range to set_range_info. + * value-range-storage.cc (vrange_storage::alloc_slot): Remove + gcc_unreachable. + +2022-07-10 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::operator=): Call verify_range. + (irange::irange_set): Normalize kind after everything else has + been set. + (irange::irange_set_anti_range): Same. + (irange::set): Same. + (irange::verify_range): Disallow nonzero masks for VARYING. + (irange::irange_union): Call verify_range. + Handle nonzero masks better. + (irange::irange_intersect): Same. + (irange::set_nonzero_bits): Calculate mask if either range has an + explicit mask. + (irange::intersect_nonzero_bits): Same. + (irange::union_nonzero_bits): Same. + (range_tests_nonzero_bits): New. + (range_tests): Call range_tests_nonzero_bits. + * value-range.h (class irange): Remove set_nonzero_bits method + with trees. + (irange::varying_compatible_p): Set nonzero mask. + +2022-07-10 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (<any_div>di3_fake): Describe + the sign-extend of result in the RTL template. + (<any_div><mode>3): Adjust for <any_div>di3_fake change. + +2022-07-10 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.cc (loongarch_check_zero_div_p): + Remove static, for use in the machine description file. + * config/loongarch/loongarch-protos.h: + (loongarch_check_zero_div_p): Add prototype. + * config/loongarch/loongarch.md (enabled): New attr. + (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for + idiv. Conditionally enable the alternatives using + loongarch_check_zero_div_p. + (<optab>di3_fake): Likewise. + +2022-07-10 Xi Ruoyao <xry111@xry111.site> + + * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w + instead of mul.d. + +2022-07-09 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (irange::irange_single_pair_union): Set + VR_VARYING when appropriate. + +2022-07-09 Vit Kabele <vit.kabele@sysgo.com> + + * stor-layout.cc (finalize_record_size): Extend warning message. + +2022-07-09 Sam Feifer <sfeifer@redhat.com> + + PR tree-optimization/98304 + * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification. + +2022-07-09 Jeff Law <jeffreyalaw@gmail.com> + + * expr.cc (store_expr): Identify trailing NULs in a STRING_CST + initializer and use clear_storage rather than copying the + NULs to the destination array. + +2022-07-09 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (define_peephole2): Use match_operand of + flags_reg_operand to capture and preserve the mode of FLAGS_REG. + (define_peephole2): Likewise. + (define_peephole2): Likewise... + +2022-07-09 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-features.cc (convert_compare): Add support + for *testdi_not_doubleword pattern, "(compare (and (not ...)))" + by generating a pandn followed by ptest. + (convertible_comparison_p): Recognize both *cmpdi_doubleword and + recent *testdi_not_doubleword comparison patterns. + +2022-07-09 Tamar Christina <tamar.christina@arm.com> + + * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to + indicate that the value is not undefined. + +2022-07-09 Andrew Pinski <apinski@marvell.com> + + PR tree-optimization/106087 + * tree-ssa-dce.cc (simple_dce_from_worklist): Check + to make sure the statement is only defining one operand. + +2022-07-08 Lewis Hyatt <lhyatt@gmail.com> + + PR preprocessor/91733 + * input.cc (find_end_of_line): New helper function. + (file_cache_slot::get_next_line): Recognize \r as a line ending. + * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest + since \r will now be interpreted as a line-ending. + +2022-07-08 Martin Liska <mliska@suse.cz> + + PR sanitizer/106132 + * opts.cc (finish_options): Use 2 calls to + report_conflicting_sanitizer_options. + +2022-07-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106226 + * tree-vect-loop-manip.cc (vect_do_peeling): Assert that + no SSA update is needed. Move virtual SSA update ... + * tree-vectorizer.cc (pass_vectorize::execute): ... here, + via forced virtual renaming when TODO_update_ssa_only_virtuals + is queued. + (vect_transform_loops): Return TODO_update_ssa_only_virtuals + when virtual SSA update is required. + (try_vectorize_loop_1): Adjust. + * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow + virtual renaming if the ABI forces an aggregate return + but the original call did not have a virtual definition. + +2022-07-08 Martin Liska <mliska@suse.cz> + + * toplev.cc (init_asm_output): Do not init asm_out_file. + +2022-07-08 Tamar Christina <tamar.christina@arm.com> + + PR tree-optimization/106063 + * match.pd: Do not apply pattern after veclower is not supported. + +2022-07-08 Thomas Schwinge <thomas@codesourcery.com> + + * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct + 'fn2' computation. + +2022-07-08 Tamar Christina <tamar.christina@arm.com> + + * expmed.cc (store_bit_field_1): Add parameter that indicates if value is + still undefined and if so emit a subreg move instead. + (store_integral_bit_field): Likewise. + (store_bit_field): Likewise. + * expr.h (write_complex_part): Likewise. + * expmed.h (store_bit_field): Add new parameter. + * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new + parameter. + (expand_ifn_atomic_compare_exchange): Likewise. + * calls.cc (store_unaligned_arguments_into_pseudos): Likewise. + * emit-rtl.cc (validate_subreg): Likewise. + * expr.cc (emit_group_store): Likewise. + (copy_blkmode_from_reg): Likewise. + (copy_blkmode_to_reg): Likewise. + (clear_storage_hints): Likewise. + (write_complex_part): Likewise. + (emit_move_complex_parts): Likewise. + (expand_assignment): Likewise. + (store_expr): Likewise. + (store_field): Likewise. + (expand_expr_real_2): Likewise. + * ifcvt.cc (noce_emit_move_insn): Likewise. + * internal-fn.cc (expand_arith_set_overflow): Likewise. + (expand_arith_overflow_result_store): Likewise. + (expand_addsub_overflow): Likewise. + (expand_neg_overflow): Likewise. + (expand_mul_overflow): Likewise. + (expand_arith_overflow): Likewise. + +2022-07-08 Haochen Jiang <haochen.jiang@intel.com> + + PR target/106180 + * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1): + Rename from *sse2_cvtps2pd<mask_name>_1. + (vec_unpacks_lo_v4sf): Add handler for memory operand. + +2022-07-08 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch.cc (loongarch_compute_frame_info): + Modify fp_sp_offset and gp_sp_offset's calculation method, + when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD + or UNITS_PER_FP_REG. + +2022-07-07 David Malcolm <dmalcolm@redhat.com> + + * diagnostic-format-json.cc (json_from_location_range): Update for + removal of label_text::maybe_free in favor of automatic memory + management. + * diagnostic-format-sarif.cc + (sarif_builder::make_location_object): Likewise. + * diagnostic-show-locus.cc (struct pod_label_text): New. + (class line_label): Convert m_text from label_text to pod_label_text. + (layout::print_any_labels): Move "text" to the line_label. + * tree-diagnostic-path.cc (path_label::get_text): Update for + removal of label_text::maybe_free in favor of automatic memory + management. + (event_range::print): Likewise. + (default_tree_diagnostic_path_printer): Likewise. + (default_tree_make_json_for_path): Likewise. + +2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * statistics.cc (get_function_name): Add check to see if fn is not NULL. + +2022-07-07 Richard Biener <rguenther@suse.de> + + * tree-into-ssa.cc (iterating_old_ssa_names): New. + (add_new_name_mapping): Grow {new,old}_ssa_names separately + and only when actually needed. Assert we are not growing + the old_ssa_names set when iterating over it. + (update_ssa): Remove old_ssa_names copying and empty_p + query, note we are iterating over it and expect no set changes. + +2022-07-07 Thomas Schwinge <thomas@codesourcery.com> + + * config/i386/intelmic-mkoffload.cc (generate_host_descr_file) + (prepare_target_image, main): Handle OpenMP 'requires'. + (generate_host_descr_file): Switch to 'GOMP_offload_register_ver', + 'GOMP_offload_unregister_ver'. + +2022-07-07 Richard Biener <rguenther@suse.de> + + PR target/106219 + * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly + set DECL_PURE_P. + +2022-07-07 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the + number of LC PHIs inserted. + (add_exit_phis): Return whether any variable required + multiple LC PHI nodes. + (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi + when possible. + +2022-07-07 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take + the def loop exit block bitmap as argument instead of + re-computing it here. + (add_exit_phis_var): Adjust. + (loop_name_cmp): New function. + (add_exit_phis): Sort variables to insert LC PHI nodes + after definition loop, for each definition loop compute + the exit block bitmap once. + (get_loops_exit): Remove. + (rewrite_into_loop_closed_ssa_1): Do not pre-record + all loop exit blocks into bitmaps. Record loop exits + if required. + +2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com> + + * config/mips/mips.cc (mips_asan_shadow_offset): Reformat + to handle the N32 ABI. + * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove + the macro, as it is not needed anymore. + +2022-07-06 Thomas Schwinge <thomas@codesourcery.com> + + * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' -> + '[...]_data'. + * config/nvptx/mkoffload.cc (process): Likewise. + +2022-07-06 Thomas Schwinge <thomas@codesourcery.com> + + * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'. + +2022-07-05 Andrew MacLeod <amacleod@redhat.com> + + * value-relation.cc (relation_to_code): New vector. + (relation_oracle::validate_relation): New. + (set_relation): Allow ssa1 == ssa2 to be registered. + * value-relation.h (validate_relation): New prototype. + (query_relation): Make internal variant protected. + +2022-07-05 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs + for double word comparisons and tests (comparisons against zero). + * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI + and;cmp into andn;cmp $0 as a pre-reload splitter. + (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name. + (*<any_or><dwi>3_doubleword): Likewise. + +2022-07-05 Roger Sayle <roger@nextmovesoftware.com> + Hongtao Liu <hongtao.liu@intel.com> + + * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change + CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti. + * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode + and gen_ssse3_palignv1ti instead of TImode. + * config/i386/sse.md (SSESCALARMODE): Delete. + (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode. + (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode + iterator instead of SSESCALARMODE. + (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64, + using a single move instruction (if required). + +2022-07-05 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + PR rtl-optimization/96692 + * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D + as (X & ~Y) ^ Z on target BMI when either C or D is A or B. + +2022-07-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106198 + * tree-cfgcleanup.cc (repair_loop_structures): Always do a + full LC SSA rewrite but only if any blocks changed loop + depth. + +2022-07-05 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove. + (find_uses_to_rename_in_loop): Likewise. + (rewrite_into_loop_closed_ssa_1): Remove loop parameter and + uses. + (rewrite_into_loop_closed_ssa): Adjust. + +2022-07-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106186 + * tree-ssa-propagate.cc (clean_up_loop_closed_phi): + Properly handle virtual PHI nodes. + +2022-07-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106196 + * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly + handle aggregate returns of calls for VDEF updates. + +2022-07-05 Richard Biener <rguenther@suse.de> + + * tree-vect-loop-manip.cc (vect_set_loop_condition_normal): + Maintain LC SSA. + +2022-07-05 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-patterns.cc (vect_convert_input): Expect the input + type to be signed for optab_vector_mixed_sign. Update the vectype + at the same time as type. + (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't + available, try sdot instead. + * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function. + (vect_model_reduction_cost): Model the cost of implementing usdot + using sdot. + (vectorizable_reduction): Likewise. Skip target support test + for lane reductions. + (vect_emulate_mixed_dot_prod): New function. + (vect_transform_reduction): Use it to emulate usdot via sdot. + +2022-07-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106182 + * loop-init.cc (fix_loop_structure): Return the number + of newly discovered plus the number of deleted loops. + * tree-cfgcleanup.cc (repair_loop_structures): Adjust + variable name. + +2022-07-04 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc + (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the + call to SCEV for irange supported types. + (fold_using_range::range_of_builtin_int_call): Convert to vrange. + * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same. + * tree-ssa-dom.cc (cprop_operand): Same. + +2022-07-04 Roger Sayle <roger@nextmovesoftware.com> + + PR target/104489 + * calls.cc (precompute_register_parameters): Allow promotion + of floating point values to be passed in wider integer modes + by calling new convert_float_to_wider_int. + (expand_call): Allow floating point results to be returned in + wider integer modes by calling new convert wider_int_to_float. + * cfgexpand.cc (expand_value_return): Allow backends to promote + a scalar floating point return value to a wider integer mode + by calling new convert_float_to_wider_int. + * expr.cc (convert_float_to_wider_int): New function. + (convert_wider_int_to_float): Likewise. + (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote + scalar FP PARM_DECLs to wider integer modes, by calling new + convert_wider_int_to_float. + * expr.h (convert_modes): Name arguments for improved documentation. + (convert_float_to_wider_int): Prototype new function here. + (convert_wider_int_to_float): Likewise. + * function.cc (assign_parm_setup_stack): Allow floating point + values to be passed on the stack as wider integer modes by + calling new convert_wider_int_to_float. + +2022-07-04 Martin Jambor <mjambor@suse.cz> + + PR tree-optimization/105860 + * tree-sra.cc (build_reconstructed_reference): Start expr + traversal only just below the outermost union. + +2022-07-04 Richard Biener <rguenther@suse.de> + + * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert + and update virtual SSA form again. Assert we do so for + a known set of transforms only. + * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New. + * tree-vect-stmts.cc (vectorizable_load): When vectorizing + using load-lanes allow virtual SSA update. + +2022-07-04 Tobias Burnus <tobias@codesourcery.com> + Chung-Lin Tang <cltang@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + + * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'. + (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver. + (main): Ask lto1 to obtain omp_requires_mask and pass it on. + * config/nvptx/mkoffload.cc (process, main): Likewise. + * lto-cgraph.cc (omp_requires_to_name): New. + (input_offload_tables): Save omp_requires_mask. + (output_offload_tables): Read it, check for consistency, + save value for mkoffload. + * omp-low.cc (lower_omp_target): Force output_offloadtables + call for OMP_REQUIRES_TARGET_USED. + +2022-07-04 Richard Biener <rguenther@suse.de> + + * tree-vect-loop-manip.cc (vect_do_peeling): Assert that + no SSA update is needed instead of updating virtual SSA + form. + * tree-vect-stmts.cc (vectorizable_load): For hoisted + invariant load use the loop entry virtual use. + For emulated gather loads use the virtual use of the + original stmt like vect_finish_stmt_generation would do. + +2022-07-04 Eric Botcazou <ebotcazou@adacore.com> + + * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard + for direct circularity. + +2022-07-04 Eric Botcazou <ebotcazou@adacore.com> + + * dwarf2out.cc (gen_array_type_die): Use the default lower bound of + the language for vector types. + +2022-07-04 Aldy Hernandez <aldyh@redhat.com> + + * value-range-storage.cc (irange_storage_slot::set_irange): Set + nonzero bits in irange. + (irange_storage_slot::get_irange): Get nonzero bits from irange. + * value-range.cc (irange::operator=): Set nonzero bits. + (irange::irange_set): Same. + (irange::irange_set_anti_range): Same. + (irange::set): Same. + (irange::verify_range): Same. + (irange::legacy_equal_p): Check nonzero bits. + (irange::equal_p): Same. + (irange::contains_p): Handle nonzero bits. + (irange::irange_union): Same. + (irange::irange_intersect): Same. + (irange::dump): Same. + (irange::set_nonzero_bits): New. + (irange::get_nonzero_bits): New. + (irange::intersect_nonzero_bits): New. + (irange::union_nonzero_bits): New. + (irange::dump_bitmasks): New. + * value-range.h (class irange): Add m_nonzero_mask. + (gt_ggc_mx): Handle nonzero bits. + (gt_pch_nx): Same. + (irange::set_undefined): Set nonzero bits. + (irange::set_varying): Same. + (irange::normalize_kind): Call set_undefined. + +2022-07-04 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-manip.h + (rewrite_virtuals_into_loop_closed_ssa): Remove. + (rewrite_into_loop_closed_ssa_1): Likewise. + * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1): + Make static. + (rewrite_into_loop_closed_ssa): Remove loop overload, + always rewrite virtuals into LC SSA. + (check_loop_closed_ssa_bb): Also check virtuals. + * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual + LC PHIs when in LC SSA. + * gimple-loop-jam.cc (fuse_loops): Do not rewrite into + loop-closed SSA here, but ... + (tree_loop_unroll_and_jam): ... here once. + * tree-if-conv.cc (version_loop_for_if_conversion): Use + the cheaper TODO_update_ssa_no_phi. + * tree-loop-distribution.cc (version_loop_by_alias_check): + Likewise. + * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop): + Likewise. + * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise. + (tree_unswitch_outer_loop): Do not rewrite virtuals into + LC ssa. + * tree-parloops.cc (transform_to_exit_first_loop_alt): + Likewise. + (pass_parallelize_loops::execute): After finishing rewrite + into LC SSA again because we do not maintain it properly. + +2022-07-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106055 + * graphite.cc (canonicalize_loop_closed_ssa): Check whether + we can propagate. + +2022-07-04 Haochen Jiang <haochen.jiang@intel.com> + + PR target/43618 + * config/i386/sse.md (extendv2sfv2df2): New define_expand. + (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1]. + (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2. + +2022-07-04 Aldy Hernandez <aldyh@redhat.com> + + * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=. + * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same. + * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set + with two arguments. + (find_unswitching_predicates_for_bb): Same. + * tree-vrp.cc (range_fold_unary_symbolics_p): Same. + * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==. + * value-range.cc (irange::equal_p): Rename to... + (irange::operator==): ...this. + * value-range.h (irange::set): Remove. + (irange::operator==): Remove. + (irange::set_zero): Use set with two arguments. + * vr-values.cc (vr_values::extract_range_from_binary_expr): Same. + (vr_values::extract_range_from_unary_expr): Same. + (check_for_binary_op_overflow): Same. + (bounds_of_var_in_loop): Same. + +2022-07-03 H.J. Lu <hjl.tools@gmail.com> + + PR target/106022 + * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer): + New. + * config/i386/i386.cc (ix86_convert_const_vector_to_integer): + New. + * config/i386/mmx.md (V_16_32_64): New. + (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit + and 64-bit constant vector. + * config/i386/predicates.md (x86_64_const_vector_operand): New. + +2022-07-03 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-cache.cc: Include value-range-storage.h. + * gimple-range-cache.h (class block_range_cache): Add "class" to + m_range_allocator. + * gimple-range-edge.cc + (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator. + (gimple_outgoing_range::~gimple_outgoing_range): Free allocator. + (gimple_outgoing_range::calc_switch_ranges): Dereference allocator. + * gimple-range-edge.h: Add "class" to m_range_allocator. + * gimple-range-infer.cc + (infer_range_manager::infer_range_manager): Allocate allocator. + (infer_range_manager::~infer_range_manager): Free allocator. + (infer_range_manager::get_nonzero): Dereference allocator. + (infer_range_manager::add_range): Same. + * gimple-range-infer.h (class vrange_allocator): Add "class" to + m_range_allocator. + * value-range-storage.h (class vrange_allocator): Move from + value-range.h. + (class obstack_vrange_allocator): Same. + (class ggc_vrange_allocator): Same. + (vrange_allocator::alloc_vrange): Same. + (vrange_allocator::alloc_irange): Same. + * value-range.h (class vrange_allocator): Move to value-range-storage.h. + (class obstack_vrange_allocator): Same. + (class ggc_vrange_allocator): Same. + +2022-07-03 Aldy Hernandez <aldyh@redhat.com> + + * Makefile.in (OBJS): Add value-range-storage.o. + (GTFILES): Add value-range-storage.h. + * gengtype.cc (open_base_files): Add value-range-storage.h. + * value-range-storage.cc: New file. + * value-range-storage.h: New file. + +2022-07-03 Xi Ruoyao <xry111@xry111.site> + Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch.cc (loongarch_check_zero_div_p): + New static function. + (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead + of TARGET_CHECK_ZERO_DIV. + (loongarch_output_division): Likewise. + * common/config/loongarch/loongarch-common.cc + (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook. + * doc/invoke.texi: Update to match the new behavior. + +2022-07-03 Ian Lance Taylor <iant@golang.org> + + * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping + statement if -fdelete-dead-exceptions. + +2022-07-02 Tim Lange <mail@tim-lange.me> + + PR analyzer/105900 + * doc/invoke.texi: Added Wanalyzer-allocation-size. + +2022-07-02 Immad Mir <mirimmad17@gmail.com> + + PR analyzer/106003 + * Makefile.in (ANALYZER_OBJS): Add sm-fd.o. + * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak, + -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check, + -Wanalyzer-fd-use-after-close. + +2022-07-01 Aldy Hernandez <aldyh@redhat.com> + + * wide-int.h (struct trailing_wide_ints): Add m_num_elements. + (trailing_wide_ints::set_precision): Add num_elements argument. + (trailing_wide_ints::extra_size): Same. + +2022-07-01 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (*andn<mode>3_doubleword_bmi): + Use "r" constraint for operand 1. + +2022-07-01 Richard Biener <rguenther@suse.de> + + * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children): + Do not look at interesting_blocks which is a copy of + blocks_to_update. + (update_ssa): Do not initialize it. + (pass_build_ssa::execute): Set interesting_blocks to NULL + after releasing it. + +2022-07-01 Richard Biener <rguenther@suse.de> + + * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert + back to using maybe_ne (off, -1). + +2022-07-01 Richard Biener <rguenther@suse.de> + + * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make + checking dominance check conditional on flag_checking. + +2022-07-01 Tobias Burnus <tobias@codesourcery.com> + + * config/gcn/gcn-protos.h (print_operand_address): Remove register + keyword on 'rtx addr' argument. + +2022-07-01 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints + to post-reload define_insn_and_split. + +2022-07-01 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/106144 + * wide-int.cc (wi::shifted_mask): If end >= prec, return right after + emitting element for shift or if shift is 0 first element after start. + (wide_int_cc_tests): Add tests for equivalency of wi::mask and + wi::shifted_mask with 0 start. + +2022-07-01 Roger Sayle <roger@nextmovesoftware.com> + + PR target/106122 + * config/i386/i386.md (peephole2): Avoid generating pop %esp + when optimizing for size. + +2022-07-01 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (general_szext_operand): Add TImode + support using x86_64_hilo_general_operand predicate. + (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate. + (*add<dwi>3_doubleword): Improved optimization of zero addition. + (and<mode>3): Use SDWIM mode iterator to add support for double + word bit-wise AND in TImode. Use force_reg when double word + immediate operand isn't x86_64_hilo_general_operand. + (and<dwi>3_doubleword): Generalized from anddi3_doubleword and + converted into a post-reload splitter. + (*andndi3_doubleword): Previous define_insn deleted. + (*andn<mode>3_doubleword_bmi): New define_insn_and_split for + TARGET_BMI that splits post-reload. + (*andn<mode>3_doubleword): New define_insn_and_split for + !TARGET_BMI, that lowers/splits before reload. + (<any_or><mode>3): Use SDWIM mode iterator to add suppport for + double word bit-wise XOR and bit-wise IOR in TImode. Use + force_reg when double word immediate operand isn't + x86_64_hilo_general_operand. + (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword. + (one_cmpl<mode>2): Use SDWIM mode iterator to add support for + double word bit-wise NOT in TImode. + (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword + and converted into a post-reload splitter. + +2022-07-01 Eric Botcazou <ebotcazou@adacore.com> + + PR middle-end/105874 + * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force + EXPAND_MEMORY for the expansion of the inner reference only + in the usual cases where a memory reference is required. + +2022-07-01 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106131 + * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set + zero when offsetting the read looking through an aggregate + copy. + +2022-07-01 Martin Liska <mliska@suse.cz> + + PR tree-optimization/106126 + * gimple-if-to-switch.cc (struct condition_info): Save + has_side_effect. + (find_conditions): Parse all BBs. + (pass_if_to_switch::execute): Allow only side effects for first + BB. + +2022-07-01 Haochen Jiang <haochen.jiang@intel.com> + + * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET): + Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove + OPTION_MASK_ISA2_AVX512BF16_UNSET and + OPTION_MASK_ISA2_AVX512FP16_UNSET. + +2022-06-30 Joseph Myers <joseph@codesourcery.com> + + PR lto/106129 + * lto-wrapper.cc (find_option): Add argument start. + (merge_and_complain): Loop over existing_opt_index and + existing_opt2_index for Xassembler check. Update calls to + find_option. + (find_and_merge_options): Add argument first to determine whether + to merge options with those passed in *opts. + (run_gcc): Update calls to find_and_merge_options. + +2022-06-30 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-cache.cc (block_range_cache::block_range_cache): + Rename vrange_allocator to obstack_vrange_allocator. + (ssa_global_cache::ssa_global_cache): Same. + * gimple-range-edge.h (class gimple_outgoing_range): Same. + * gimple-range-infer.h (class infer_range_manager): Same. + * value-range.h (class vrange_allocator): Make abstract. + (class obstack_vrange_allocator): Inherit from vrange_allocator. + (class ggc_vrange_allocator): New. + +2022-06-30 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (swap_mode): Rename from *swap<mode> to + provide gen_swapsi. + (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits + via new gen_<insn>32di2_doubleword below. + (<anyrotate>32di2_doubleword): New define_insn_and_split + that splits after reload as either a pair of move instructions + or an xchgl (using gen_swapsi). + +2022-06-30 Richard Biener <rguenther@suse.de> + + * domwalk.h (dom_walker::dom_walker): Update comment to + reflect reality and new special argument value for + bb_index_to_rpo. + * domwalk.cc (dom_walker::dom_walker): Recognize -1 + bb_index_to_rpo. + * tree-into-ssa.cc + (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell + dom_walker to not use RPO. + +2022-06-30 Martin Liska <mliska@suse.cz> + + * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as + it is unused. + +2022-06-30 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/106114 + * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check + statement operands instead of GORI cache. + +2022-06-30 Antoni Boucher <bouanto@zoho.com> + + PR target/106095 + * config/i386/sse.md: Fix asm generation. + +2022-06-29 Sergei Trofimovich <siarheit@google.com> + + PR c++/106102 + * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>. + +2022-06-29 Joseph Myers <joseph@codesourcery.com> + + * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM + not gen_const_mem for UNSPEC_PIC_CALL_SYM. + +2022-06-29 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/106082 + * combine.cc (distribute_notes): Preserve notes when + they indicate a call doesn't perform a non-local goto. + +2022-06-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/106112 + * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend + a constant operand according to its type. + +2022-06-29 Martin Liska <mliska@suse.cz> + + * doc/invoke.texi: Remove removed evrp-mode. + +2022-06-29 Lulu Cheng <chenglulu@loongson.cn> + + PR target/106097 + * config/loongarch/loongarch.cc (loongarch_build_integer): + Remove undefined behavior from code. + +2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu> + + * doc/sourcebuild.texi: Document new no_alignment_constraints + effective target check. + +2022-06-28 Aldy Hernandez <aldyh@redhat.com> + + * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o. + * flag-types.h (enum evrp_mode): Remove. + * params.opt: Remove --param=evrp-mode. + * tree-vrp.cc (make_pass_early_vrp): New. + (pass_vrp::execute): Call early VRP instance. + * gimple-ssa-evrp-analyze.cc: Removed. + * gimple-ssa-evrp-analyze.h: Removed. + * gimple-ssa-evrp.cc: Removed. + +2022-06-28 Alexandre Oliva <oliva@adacore.com> + + * Makefile.in (TFLAGS): New. + (GCC_FOR_TARGET): Add TFLAGS. + (FLAGS_TO_PASS): Pass TFLAGS down. + +2022-06-28 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not + call update_ssa. + +2022-06-28 Richard Biener <rguenther@suse.de> + + * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use + mark_block_for_update. + (update_ssa): Adjust. + +2022-06-28 Xi Ruoyao <xry111@xry111.site> + + PR target/106096 + * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude + $r13 from SIBCALL_REGS. + * config/loongarch/loongarch.cc (loongarch_regno_to_class): + Change $r13 to JIRL_REGS. + +2022-06-28 Aldy Hernandez <aldyh@redhat.com> + + * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove + irange::supports_p. + +2022-06-28 Richard Biener <rguenther@suse.de> + + PR middle-end/106053 + * match.pd ((T)a == (T)b): Avoid folding away sign + changes in a comparison if we'd truncate to a boolean. + +2022-06-28 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode + iterator GPR with SImode, adjust the condition and output template, + rename to ... + (*rotlsi3_insert_4): ... this. + +2022-06-27 David Malcolm <dmalcolm@redhat.com> + + * genmatch.cc: Add "final" and "override" to various vfunc + implementations, removing redundant "virtual" as appropriate. + * gensupport.cc: Likewise. + * gimple-range-cache.h: Likewise. + * ipa-icf-gimple.h: Likewise. + * ipa-icf.h: Likewise. + * read-md.h: Likewise. + * read-rtl-function.cc: Likewise. + * tree-ssa-loop-ch.cc: Likewise. + * tree-ssa-sccvn.cc: Likewise. + +2022-06-27 David Malcolm <dmalcolm@redhat.com> + + * config/i386/i386-features.h: Add "final" and "override" to + scalar_chain vfunc implementations as appropriate. + +2022-06-27 David Malcolm <dmalcolm@redhat.com> + + * tree-switch-conversion.h: Add "final" and "override" to cluster + vfunc implementations as appropriate. + +2022-06-27 David Malcolm <dmalcolm@redhat.com> + + * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc + implementations as appropriate. + +2022-06-27 David Malcolm <dmalcolm@redhat.com> + + * compare-elim.cc: Add "final" and "override" to dom_walker vfunc + implementations, removing redundant "virtual" as appropriate. + * gimple-ssa-strength-reduction.cc: Likewise. + * ipa-prop.cc: Likewise. + * rtl-ssa/blocks.cc: Likewise. + * tree-into-ssa.cc: Likewise. + * tree-ssa-dom.cc: Likewise. + * tree-ssa-math-opts.cc: Likewise. + * tree-ssa-phiopt.cc: Likewise. + * tree-ssa-propagate.cc: Likewise. + * tree-ssa-sccvn.cc: Likewise. + * tree-ssa-strlen.cc: Likewise. + * tree-ssa-uncprop.cc: Likewise. + +2022-06-27 David Malcolm <dmalcolm@redhat.com> + + * adjust-alignment.cc: Add "final" and "override" to opt_pass + vfunc implementations, removing redundant "virtual" as + appropriate. + * asan.cc: Likewise. + * auto-inc-dec.cc: Likewise. + * auto-profile.cc: Likewise. + * bb-reorder.cc: Likewise. + * cfgcleanup.cc: Likewise. + * cfgexpand.cc: Likewise. + * cfgrtl.cc: Likewise. + * cgraphbuild.cc: Likewise. + * combine-stack-adj.cc: Likewise. + * combine.cc: Likewise. + * compare-elim.cc: Likewise. + * config/i386/i386-features.cc: Likewise. + * coroutine-passes.cc: Likewise. + * cprop.cc: Likewise. + * cse.cc: Likewise. + * dce.cc: Likewise. + * df-core.cc: Likewise. + * dse.cc: Likewise. + * dwarf2cfi.cc: Likewise. + * early-remat.cc: Likewise. + * except.cc: Likewise. + * final.cc: Likewise. + * function.cc: Likewise. + * fwprop.cc: Likewise. + * gcse.cc: Likewise. + * gimple-harden-conditionals.cc: Likewise. + * gimple-if-to-switch.cc: Likewise. + * gimple-isel.cc: Likewise. + * gimple-laddress.cc: Likewise. + * gimple-loop-interchange.cc: Likewise. + * gimple-loop-jam.cc: Likewise. + * gimple-loop-versioning.cc: Likewise. + * gimple-low.cc: Likewise. + * gimple-ssa-backprop.cc: Likewise. + * gimple-ssa-evrp.cc: Likewise. + * gimple-ssa-isolate-paths.cc: Likewise. + * gimple-ssa-nonnull-compare.cc: Likewise. + * gimple-ssa-split-paths.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-warn-recursion.cc: Likewise. + * graphite.cc: Likewise. + * ifcvt.cc: Likewise. + * init-regs.cc: Likewise. + * ipa-comdats.cc: Likewise. + * ipa-cp.cc: Likewise. + * ipa-devirt.cc: Likewise. + * ipa-fnsummary.cc: Likewise. + * ipa-free-lang-data.cc: Likewise. + * ipa-icf.cc: Likewise. + * ipa-inline.cc: Likewise. + * ipa-modref.cc: Likewise. + * ipa-profile.cc: Likewise. + * ipa-pure-const.cc: Likewise. + * ipa-reference.cc: Likewise. + * ipa-split.cc: Likewise. + * ipa-sra.cc: Likewise. + * ipa-visibility.cc: Likewise. + * ipa.cc: Likewise. + * ira.cc: Likewise. + * jump.cc: Likewise. + * loop-init.cc: Likewise. + * lower-subreg.cc: Likewise. + * mode-switching.cc: Likewise. + * modulo-sched.cc: Likewise. + * multiple_target.cc: Likewise. + * omp-expand.cc: Likewise. + * omp-low.cc: Likewise. + * omp-oacc-kernels-decompose.cc: Likewise. + * omp-oacc-neuter-broadcast.cc: Likewise. + * omp-offload.cc: Likewise. + * omp-simd-clone.cc: Likewise. + * passes.cc: Likewise. + * postreload-gcse.cc: Likewise. + * postreload.cc: Likewise. + * predict.cc: Likewise. + * recog.cc: Likewise. + * ree.cc: Likewise. + * reg-stack.cc: Likewise. + * regcprop.cc: Likewise. + * reginfo.cc: Likewise. + * regrename.cc: Likewise. + * reorg.cc: Likewise. + * sancov.cc: Likewise. + * sanopt.cc: Likewise. + * sched-rgn.cc: Likewise. + * stack-ptr-mod.cc: Likewise. + * store-motion.cc: Likewise. + * tracer.cc: Likewise. + * trans-mem.cc: Likewise. + * tree-call-cdce.cc: Likewise. + * tree-cfg.cc: Likewise. + * tree-cfgcleanup.cc: Likewise. + * tree-complex.cc: Likewise. + * tree-eh.cc: Likewise. + * tree-emutls.cc: Likewise. + * tree-if-conv.cc: Likewise. + * tree-into-ssa.cc: Likewise. + * tree-loop-distribution.cc: Likewise. + * tree-nrv.cc: Likewise. + * tree-object-size.cc: Likewise. + * tree-parloops.cc: Likewise. + * tree-predcom.cc: Likewise. + * tree-profile.cc: Likewise. + * tree-sra.cc: Likewise. + * tree-ssa-ccp.cc: Likewise. + * tree-ssa-copy.cc: Likewise. + * tree-ssa-dce.cc: Likewise. + * tree-ssa-dom.cc: Likewise. + * tree-ssa-dse.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-ivcanon.cc: Likewise. + * tree-ssa-loop-prefetch.cc: Likewise. + * tree-ssa-loop-split.cc: Likewise. + * tree-ssa-loop-unswitch.cc: Likewise. + * tree-ssa-loop.cc: Likewise. + * tree-ssa-math-opts.cc: Likewise. + * tree-ssa-phiopt.cc: Likewise. + * tree-ssa-phiprop.cc: Likewise. + * tree-ssa-pre.cc: Likewise. + * tree-ssa-reassoc.cc: Likewise. + * tree-ssa-sccvn.cc: Likewise. + * tree-ssa-sink.cc: Likewise. + * tree-ssa-strlen.cc: Likewise. + * tree-ssa-structalias.cc: Likewise. + * tree-ssa-uncprop.cc: Likewise. + * tree-ssa-uninit.cc: Likewise. + * tree-ssanames.cc: Likewise. + * tree-stdarg.cc: Likewise. + * tree-switch-conversion.cc: Likewise. + * tree-tailcall.cc: Likewise. + * tree-vect-generic.cc: Likewise. + * tree-vectorizer.cc: Likewise. + * tree-vrp.cc: Likewise. + * tsan.cc: Likewise. + * ubsan.cc: Likewise. + * var-tracking.cc: Likewise. + * vtable-verify.cc: Likewise. + * web.cc: Likewise. + +2022-06-27 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds. + (jump): Likewise. + (movdi_symbol_save_scc): Likewise. + +2022-06-27 Roger Sayle <roger@nextmovesoftware.com> + + PR rtl-optimization/7061 + * config/i386/i386.md (*highpartdisi2): New define_insn_and_split. + +2022-06-27 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/94026 + * match.pd (((X << C1) & C2) eq/ne C3): New simplification. + (((X >> C1) & C2) eq/ne C3): Likewise. + +2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * statistics.cc: Include tree.h. + (get_function_name): New function. + (statistics_fini_pass_2): Call get_function_name instead of + current_function_name. + (statistics_counter_event): Call get_function_name instead of + function_name. + (statistics_histogram_event): Likewise. + +2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md: + Suppress unnecessary emitting nop insn in the split patterns for + integer/FP constant synthesis, and add new peephole2 pattern that + folds such synthesized additions. + +2022-06-25 Aldy Hernandez <aldyh@redhat.com> + + * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor + instead of evrp. + (dom_jt_state::push): Remove m_evrp. + (dom_jt_state::pop): Same. + (dom_jt_state::record_ranges_from_stmt): Remove. + (dom_jt_state::register_equiv): Remove updating of evrp ranges. + (class dom_jt_simplifier): Pass ranger to constructor. + Inherit from hybrid_jt_simplifier. + (dom_jt_simplifier::simplify): Convert to ranger. + (pass_dominator::execute): Same. + (all_uses_feed_or_dominated_by_stmt): New. + (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New. + (dom_opt_dom_walker::before_dom_children): Call + set_global_ranges_from_unreachable_edges. + Do not call record_ranges_from_stmt. + (dom_opt_dom_walker::after_dom_children): Remove evrp use. + (cprop_operand): Use int_range<> instead of value_range. + (dom_opt_dom_walker::fold_cond): New. + (dom_opt_dom_walker::optimize_stmt): Pass ranger to + cprop_into_stmt. + Use fold_cond() instead of vrp_visit_cond_stmt(). + * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not + pass state to simplifier. + * vr-values.h (class vr_values): Make fold_cond public. + +2022-06-25 Jeff Law <jeffreyalaw@gmail.com> + + * common/config/tilegx/tilegx-common.cc: Removed. + * common/config/tilepro/tilepro-common.cc: Removed. + * config.gcc: Remove tilegx and tilepro entries. + * config/tilegx/constraints.md: Removed. + * config/tilegx/feedback.h: Removed. + * config/tilegx/linux.h: Removed. + * config/tilegx/mul-tables.cc: Removed. + * config/tilegx/predicates.md: Removed. + * config/tilegx/sync.md: Removed. + * config/tilegx/t-tilegx: Removed. + * config/tilegx/tilegx-builtins.h: Removed. + * config/tilegx/tilegx-c.cc: Removed. + * config/tilegx/tilegx-generic.md: Removed. + * config/tilegx/tilegx-modes.def: Removed. + * config/tilegx/tilegx-multiply.h: Removed. + * config/tilegx/tilegx-opts.h: Removed. + * config/tilegx/tilegx-protos.h: Removed. + * config/tilegx/tilegx.cc: Removed. + * config/tilegx/tilegx.h: Removed. + * config/tilegx/tilegx.md: Removed. + * config/tilegx/tilegx.opt: Removed. + * config/tilepro/constraints.md: Removed. + * config/tilepro/feedback.h: Removed. + * config/tilepro/gen-mul-tables.cc: Removed. + * config/tilepro/linux.h: Removed. + * config/tilepro/mul-tables.cc: Removed. + * config/tilepro/predicates.md: Removed. + * config/tilepro/t-tilepro: Removed. + * config/tilepro/tilepro-builtins.h: Removed. + * config/tilepro/tilepro-c.cc: Removed. + * config/tilepro/tilepro-generic.md: Removed. + * config/tilepro/tilepro-modes.def: Removed. + * config/tilepro/tilepro-multiply.h: Removed. + * config/tilepro/tilepro-protos.h: Removed. + * config/tilepro/tilepro.cc: Removed. + * config/tilepro/tilepro.h: Removed. + * config/tilepro/tilepro.md: Removed. + * config/tilepro/tilepro.opt: Removed. + * configure.ac: Remove tilegx and tilepro entries. + * configure: Rebuilt. + * doc/extend.texi: Remove tilegx and tilepro entries. + * doc/install.texi: Remove tilegx and tilepro entries. + * doc/invoke.texi: Remove tilegx and tilepro entries. + * doc/md.texi: Remove tilegx and tilepro entries. + +2022-06-25 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + * regcprop.cc (pass_cprop_hardreg::execute): Perform a third + iteration over each basic block that was updated by the second + iteration. + +2022-06-24 Jason Merrill <jason@redhat.com> + + PR c++/87729 + PR c++/20423 + * doc/invoke.texi: Document changes. + +2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org> + + * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop + condition to avoid overflow. + +2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with + OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT. + * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with + OPTION_MASK_PPC_GFXOPT. + * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same. + * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with + OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT. + * config/rs6000/rs6000-c.cc: Update comment. + * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls. + * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace + MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT. + (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB + with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB. + * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR, + MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT, + MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT, + MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete. + +2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with + OPTION_MASK_MFCRF. + * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with + OPTION_MASK_MULTIPLE. + * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same. + * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with + OPTION_MASK_MFCRF. + * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with + OPTION_MASK_EABI. + * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same. + * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace + MASK_ALTIVEC with OPTION_MASK_ALTIVEC. + * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB, + MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, + MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND, + MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF, + MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE): + Replace with + OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO, + OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB, + OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD, + OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION, + OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL, + OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW, + OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE. + * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace + MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC. + * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE + with OPTION_MASK_MULTIPLE. + (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP, + MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD, + MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT, + MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW, + MASK_MULTIPLE, MASK_NO_UPDATE): Delete. + * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI + with OPTION_MASK_EABI. + +2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB, + RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR, + RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO, + RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC, + OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB, + OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC, + OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM. + * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC, + RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR, + RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO, + RS6000_BTM_HTM, RS6000_BTM_FRE): Remove. + +2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/rs6000-c.cc: Update comments. + * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE, + RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL, + RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP, + RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128, + RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace + with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT, + OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD, + OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64, + OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE, + OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW, + OPTION_MASK_MMA, OPTION_MASK_POWER10. + * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE, + RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL, + RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128, + RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128, + RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete. + +2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS, + MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE, + OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove. + +2022-06-24 Richard Biener <rguenther@suse.de> + + PR middle-end/106070 + * match.pd (a != b ? a : b): Fix translation of + operand_equal_for_comparison_p. + +2022-06-24 Jan Hubicka <jh@suse.cz> + + PR ipa/106057 + * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw. + +2022-06-24 Martin Liska <mliska@suse.cz> + + PR middle-end/106059 + * profile-count.h: *= and /= operators need to modify this + object. + +2022-06-24 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + PR target/105930 + * config/i386/i386.md (*<any_or>di3_doubleword): Split after + reload. Use rtx_equal_p to avoid creating memory-to-memory moves, + and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0). + +2022-06-24 Alexandre Oliva <oliva@adacore.com> + + * common.opt (nostdlib++): New. + * doc/invoke.texi (-nostdlib++): Document it. + +2022-06-24 Alexandre Oliva <oliva@adacore.com> + + * doc/sourcebuild.texi (Environment attributes): Document + two_plus_gigs. + +2022-06-23 David Malcolm <dmalcolm@redhat.com> + + * common.opt (fdiagnostics-show-rules): New option. + * diagnostic-format-json.cc (diagnostic_output_format_init_json): + Fix up context->show_rules. + * diagnostic-format-sarif.cc + (diagnostic_output_format_init_sarif): Likewise. + * diagnostic-metadata.h (diagnostic_metadata::rule): New class. + (diagnostic_metadata::precanned_rule): New class. + (diagnostic_metadata::add_rule): New. + (diagnostic_metadata::get_num_rules): New. + (diagnostic_metadata::get_rule): New. + (diagnostic_metadata::m_rules): New field. + * diagnostic.cc (diagnostic_initialize): Initialize show_rules. + (print_any_rules): New. + (diagnostic_report_diagnostic): Call it. + * diagnostic.h (diagnostic_context::show_rules): New field. + * doc/invoke.texi (-fno-diagnostics-show-rules): New option. + * opts.cc (common_handle_option): Handle + OPT_fdiagnostics_show_rules. + * toplev.cc (general_init): Set up global_dc->show_rules. + +2022-06-23 Martin Liska <mliska@suse.cz> + + PR c++/106062 + * ubsan.cc (sanitize_unreachable_fn): Change order of calls + in order to initialize UBSAN built-ins. + +2022-06-23 Martin Liska <mliska@suse.cz> + + PR ipa/105600 + * ipa-icf.cc (sem_item_optimizer::filter_removed_items): + Skip variables with body_removed. + +2022-06-23 liuhongt <hongtao.liu@intel.com> + + * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with + reg_or_subregno. + (sse4_2_pcmpistr): Ditto. + +2022-06-23 Xionghu Luo <xionghuluo@tencent.com> + + * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix + typo. + * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise. + * tree-switch-conversion.h: Likewise. + +2022-06-22 Jason Merrill <jason@redhat.com> + + PR c++/104642 + * common.opt: Add -funreachable-traps. + * doc/invoke.texi (-funreachable-traps): Document it. + * opts.cc (finish_options): Enable at -O0 or -Og. + * tree.cc (build_common_builtin_nodes): Add __builtin_trap. + (builtin_decl_unreachable, build_builtin_unreachable): New. + * tree.h: Declare them. + * ubsan.cc (sanitize_unreachable_fn): Factor out. + (ubsan_instrument_unreachable): Use + gimple_build_builtin_unreachable. + * ubsan.h (sanitize_unreachable_fn): Declare. + * gimple.cc (gimple_build_builtin_unreachable): New. + * gimple.h: Declare it. + * builtins.cc (expand_builtin_unreachable): Add assert. + (fold_builtin_0): Call build_builtin_unreachable. + * sanopt.cc: Don't run for just SANITIZE_RETURN + or SANITIZE_UNREACHABLE when trapping. + * cgraphunit.cc (walk_polymorphic_call_targets): Use new + unreachable functions. + * gimple-fold.cc (gimple_fold_call) + (gimple_get_virt_method_for_vtable) + * ipa-fnsummary.cc (redirect_to_unreachable) + * ipa-prop.cc (ipa_make_edge_direct_to_target) + (ipa_impossible_devirt_target) + * ipa.cc (walk_polymorphic_call_targets) + * tree-cfg.cc (pass_warn_function_return::execute) + (execute_fixup_cfg) + * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts) + (unloop_loops) + * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): + Likewise. + +2022-06-22 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/106019 + * tree-data-ref.cc (dr_may_alias_p): Try using the + innermost_loop_behavior to disambiguate non-loop queries. + +2022-06-22 Palmer Dabbelt <palmer@rivosinc.com> + + * doc/invoke.texi (RISC-V): Document -mtune=thead-c906. + +2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (bswapsi2_internal): + Enlarge the buffer that is obviously smaller than the template + string given to sprintf(). + +2022-06-21 Roger Sayle <roger@nextmovesoftware.com> + Marek Polacek <polacek@redhat.com> + Segher Boessenkool <segher@kernel.crashing.org> + Kewen Lin <linkw@linux.ibm.com> + + PR target/105991 + * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that + exact_log2 doesn't return -1 (or zero). + (plus_xor): New code iterator. + (*rotl<mode>3_insert_3_<code>): New define_insn_and_split. + +2022-06-21 Nathan Sidwell <nathan@acm.org> + + * doc/invoke.texi (C++ Modules): Remove language-linkage + as missing feature. + +2022-06-21 Arjun Shankar <arjun@redhat.com> + + PR tree-optimization/94899 + * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is + 0x80000000): New simplification. + +2022-06-21 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/106032 + * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and + t may_trap_or_fault_p, even if it is cheap. + +2022-06-21 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/106030 + * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of + temp to expand_operands if mode has been promoted. + +2022-06-21 Xionghu Luo <xionghuluo@tencent.com> + + PR target/105740 + * gimple-if-to-switch.cc (find_conditions): Don't skip the first + condition bb. + +2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR tree-optimization/105736 + * tree-object-size.cc (addr_object_size): Return size_unknown + when object offset computation returns an error. + +2022-06-20 H.J. Lu <hjl.tools@gmail.com> + + PR target/105960 + * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return + false if PIC register is used when calling ifunc functions. + +2022-06-20 Richard Biener <rguenther@suse.de> + + PR middle-end/106027 + * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the + type of the prevailing comparison for the new comparison type. + (fold_binary_loc): Use proper types for the A < X && A + 1 > Y + to A < X && A >= Y folding. + +2022-06-20 Kewen Lin <linkw@linux.ibm.com> + + PR tree-optimization/105940 + * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter + slp_done_for_suggested_uf and adjust with it accordingly. + (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf, + pass it down to vect_analyze_loop_2 for the initial analysis and + applying suggested unroll factor. + (vect_is_simple_reduction): Add parameter slp and adjust with it. + (vect_analyze_scalar_cycles_1): Add parameter slp and pass down. + (vect_analyze_scalar_cycles): Likewise. + +2022-06-20 Martin Liska <mliska@suse.cz> + + * bb-reorder.cc (find_traces_1_round): Add operators / and * and + use them. + (better_edge_p): Likewise. + * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise. + * cfgloopmanip.cc (scale_loop_profile): Likewise. + * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise. + * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise. + * config/sh/sh.cc (expand_cbranchdi4): Likewise. + * dojump.cc (do_compare_rtx_and_jump): Likewise. + * final.cc (compute_alignments): Likewise. + * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise. + (decide_about_value): Likewise. + * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise. + * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise. + * modulo-sched.cc (sms_schedule): Likewise. + * omp-expand.cc (extract_omp_for_update_vars): Likewise. + (expand_omp_ordered_sink): Likewise. + (expand_omp_for_ordered_loops): Likewise. + (expand_omp_for_static_nochunk): Likewise. + * predict.cc (maybe_hot_count_p): Likewise. + (probably_never_executed): Likewise. + (set_even_probabilities): Likewise. + (handle_missing_profiles): Likewise. + (expensive_function_p): Likewise. + * profile-count.h: Likewise. + * profile.cc (compute_branch_probabilities): Likewise. + * stmt.cc (emit_case_dispatch_table): Likewise. + * symtab-thunks.cc (expand_thunk): Likewise. + * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise. + * tree-ssa-sink.cc (select_best_block): Likewise. + * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise. + (switch_decision_tree::balance_case_nodes): Likewise. + (switch_decision_tree::emit_case_nodes): Likewise. + * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise. + +2022-06-20 yulong <shiyulong@iscas.ac.cn> + + * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New. + * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE + of RISCV_BUILTIN. + * config/riscv/riscv-ftypes.def (0): Remove unused. + (1): New. + +2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p): + Consider relaxed MOVI instructions as L32R. + +2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_emit_move_sequence): + Use can_create_pseudo_p(), instead of using individual + reload_in_progress and reload_completed. + (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(), + the existing predicate function. + (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall): + Use the standard RTX code predicate macros such as MEM_P, + SYMBOL_REF_P and/or CONST_INT_P. + * config/xtensa/xtensa.md: Avoid using numeric literals to determine + if callee-saved register, at the split patterns for indirect sibcall + fixups. + +2022-06-18 Jakub Jelinek <jakub@redhat.com> + + * common.opt (flag_sanitize_trap): New variable. + (fsanitize-trap=, fsanitize-trap): New options. + (fsanitize-undefined-trap-on-error): Change into deprecated alias + for -fsanitize-trap=all. + * opts.h (struct sanitizer_opts_s): Add can_trap member. + * opts.cc (finish_options): Complain about unsupported + -fsanitize-trap= options. + (sanitizer_opts): Add can_trap values to all entries. + (get_closest_sanitizer_option): Ignore -fsanitize-trap= + options which have can_trap false. + (parse_sanitizer_options): Add support for -fsanitize-trap=. + For -fsanitize-trap=all, enable + SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow + -fsanitize-trap=vptr here. + (common_handle_option): Handle OPT_fsanitize_trap_ and + OPT_fsanitize_trap. + * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check + flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of + flag_sanitize_undefined_trap_on_error. + * gcc.cc (sanitize_spec_function): Use + flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize + and drop use of flag_sanitize_undefined_trap_on_error in + "undefined" handling. + * ubsan.cc (ubsan_instrument_unreachable): Use + flag_sanitize_trap & SANITIZE_??? instead of + flag_sanitize_undefined_trap_on_error. + (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn, + ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn, + ubsan_build_overflow_builtin, instrument_bool_enum_load, + ubsan_instrument_float_cast, instrument_nonnull_arg, + instrument_nonnull_return, instrument_builtin): Likewise. + * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document. + (-fsanitize-undefined-trap-on-error): Document as deprecated + alias of -fsanitize-trap. + +2022-06-18 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/105998 + * varasm.cc (narrowing_initializer_constant_valid_p): Check + SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on + ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type. + +2022-06-18 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/105835 + * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)): + Narrow integer multiplication by a zero_one_valued_p operand. + (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer + conversions inside COND_EXPR where both data operands are + integer constants. + +2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/constraints.md (Y): + Change to include integer constants until reload begins. + * config/xtensa/predicates.md (move_operand): Ditto. + * config/xtensa/xtensa.cc (xtensa_emit_move_sequence): + Change to allow storing integer constants into litpool only after + reload begins. + +2022-06-17 Uroš Bizjak <ubizjak@gmail.com> + + PR target/105209 + * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New. + * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function. + (alpha_store_data_bypass_p_1): Ditto. + * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead + of generic store_data_bypass_p. + (ev4_ist_c): Remove insn reservation. + +2022-06-17 Uroš Bizjak <ubizjak@gmail.com> + + PR target/105970 + * config/i386/i386.cc (ix86_function_arg): Assert that + the mode of pointer argumet is equal to ptr_mode, not Pmode. + +2022-06-17 Uroš Bizjak <ubizjak@gmail.com> + + PR target/105993 + * config/i386/sse.md (vpmov splitter): Use (match_dup ...) + instead of REGNO comparisons in combine splitter. + +2022-06-17 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some + types. + +2022-06-17 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/bitmanip.md: Supress warning. + +2022-06-17 Richard Earnshaw <rearnsha@arm.com> + + PR target/106004 + * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL. + Clear bits in the mask above bit 31. + +2022-06-17 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/mve.md (*mve_mov<mode>): Re-order constraints + to avoid spilling trivial literals to the constant pool. + +2022-06-16 David Malcolm <dmalcolm@redhat.com> + + * gimple-ssa-warn-access.cc (warn_string_no_nul): Add + auto_diagnostic_group to group any warning with its note. + (maybe_warn_for_bound): Likewise. + (check_access): Likewise. + (warn_dealloc_offset): Likewise. + (pass_waccess::maybe_warn_memmodel): Likewise. + (pass_waccess::maybe_check_dealloc_call): Likewise. + (pass_waccess::warn_invalid_pointer): Likewise. + (pass_waccess::check_dangling_stores): Likewise. + +2022-06-16 Jason Merrill <jason@redhat.com> + + * opts.cc (common_handle_option) [OPT_fsanitize_]: Set + opts_set->x_flag_sanitize. + +2022-06-16 Jason Merrill <jason@redhat.com> + + * flags.h (issue_strict_overflow_warning): Comment #endif. + +2022-06-16 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name + was invaraint before, clear the invariant bit. + * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag. + * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype. + +2022-06-16 Andrew MacLeod <amacleod@redhat.com> + + * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt. + +2022-06-16 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105983 + * match.pd (y == XXX_MIN || x < y -> x <= y - 1, + y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s + on non-equality comparisons. + +2022-06-16 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105984 + * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) -> + x > stype_max / cst || x < stype_min / cst): fold_convert @1 + to TREE_TYPE (@0) just once and test for negative divisor + also on that folded constant instead of on @1. + +2022-06-16 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/105951 + * tree-ssa-ccp.cc (optimize_atomic_bit_test_and, + optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call) + as last argument to the internal functions. + * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the + extra call argument to ifns. If expand_atomic_fetch_op fails for the + lhs == NULL_TREE case, fall through into the optab code with + gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op + fails, construct a CALL_EXPR and expand that. + (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument + to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and + expand that. + +2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org> + + PR target/103316 + * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable + gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET, + RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT, + RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI. + * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support + for new Power10 V1TI instructions. + (vec_cmp<mode><mode>): Set mode iterator to VEC_IC. + (vec_cmpu<mode><mode>): Likewise. + (vector_nlt<mode>): Set mode iterator to VEC_IC. + (vector_nltv1ti): Remove. + (vector_gtu<mode>): Set mode iterator to VEC_IC. + (vector_gtuv1ti): Remove. + (vector_nltu<mode>): Set mode iterator to VEC_IC. + (vector_nltuv1ti): Remove. + (vector_geu<mode>): Set mode iterator to VEC_IC. + (vector_ngt<mode>): Likewise. + (vector_ngtv1ti): Remove. + (vector_ngtu<mode>): Set mode iterator to VEC_IC. + (vector_ngtuv1ti): Remove. + (vector_gtu_<mode>_p): Set mode iterator to VEC_IC. + (vector_gtu_v1ti_p): Remove. + (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI. + (vrotlv1ti3): Remove. + (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI. + (vashrv1ti3): Remove. + +2022-06-16 Martin Liska <mliska@suse.cz> + + * gengtype-state.cc (read_a_state_token): Do not skip extra + character after escaped sequence. + +2022-06-16 Martin Liska <mliska@suse.cz> + + PR driver/105564 + * spellcheck.cc (test_find_closest_string): Add new test. + * spellcheck.h (class best_match): Prefer a difference in + trailing sign symbol. + +2022-06-16 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/53533 + * match.pd: Simplify (B * v + C) * D -> BD * v + CD and + (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST, + and there's no overflow or !TYPE_OVERFLOW_UNDEFINED. + +2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator. + +2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/predicates.md (reload_operand): + New predicate. + * config/xtensa/xtensa.md: New peephole2 pattern. + +2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (*round_up_to_even): + New insn-and-split pattern. + (*signed_ge_zero): Ditto. + +2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call, + xtensa_emit_sibcall): New prototypes. + (xtensa_expand_epilogue): Add new argument that specifies whether + or not sibling call. + * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL): + New macro definition. + (xtensa_prepare_expand_call): New function in order to share + the common code. + (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall): + New functions. + (xtensa_expand_epilogue): Add new argument sibcall_p and use it + for sibling call handling. + * config/xtensa/xtensa.md (call, call_value): + Use xtensa_prepare_expand_call. + (call_internal, call_value_internal): + Add the condition in order to be disabled if sibling call. + (sibcall, sibcall_value, sibcall_epilogue): New expansions. + (sibcall_internal, sibcall_value_internal): New insn patterns, + and split ones in order to take care of the indirect sibcalls. + +2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * doc/invoke.texi: Document -mextra-l32r-costs= option. + +2022-06-15 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/105962 + * doc/invoke.texi: Add -fno-analyzer-undo-inlining. + * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer): + Extend -fdiagnostics-path-format=separate-events so that with + -fdiagnostics-show-path-depths it prints fndecls as well as stack + depths. + +2022-06-15 David Malcolm <dmalcolm@redhat.com> + + * value-relation.h: Add "final" and "override" to relation_oracle + vfunc implementations as appropriate. + +2022-06-15 Richard Sandiford <richard.sandiford@arm.com> + + PR middle-end/105975 + Revert everything apart from the expand_fn_using_insn and + expand_direct_optab_fn changes from: + * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro. + (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE) + (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY) + (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it. + * internal-fn.h (direct_internal_fn_info::directly_mapped): New + member variable. + (direct_internal_fn_info::vectorizable): Reduce to 1 bit. + (direct_internal_fn_p): Also return true for internal functions + that map directly to instructions defined target-insns.def. + (direct_internal_fn): Adjust comment accordingly. + * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1) + (vectorizable_optab2): New local macros. + (not_direct): Initialize directly_mapped. + (mask_load_direct, load_lanes_direct, mask_load_lanes_direct) + (gather_load_direct, len_load_direct, mask_store_direct) + (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct) + (vec_cond_direct, scatter_store_direct, len_store_direct) + (vec_set_direct, unary_direct, binary_direct, ternary_direct) + (cond_unary_direct, cond_binary_direct, cond_ternary_direct) + (while_direct, fold_extract_direct, fold_left_direct) + (mask_fold_left_direct, check_ptrs_direct): Use the macros above. + (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete + (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise; + (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise. + (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise. + (direct_internal_fn_types): Handle functions that map to instructions + defined in target-insns.def. + (direct_internal_fn_types): Likewise. + (direct_internal_fn_supported_p): Likewise. + (internal_fn_expanders): Likewise. + (expand_fn_using_insn): New function, + split out and adapted from... + (expand_direct_optab_fn): ...here. + (expand_GOMP_SIMT_ENTER_ALLOC): Use it. + (expand_GOMP_SIMT_EXIT): Likewise. + (expand_GOMP_SIMT_LANE): 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. + +2022-06-15 Richard Earnshaw <rearnsha@arm.com> + + PR target/105981 + * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg + to first_reg and second_reg respectively. Initialize them correctly + when generating big-endian code. + +2022-06-15 Richard Earnshaw <rearnsha@arm.com> + + PR target/105974 + * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT. + +2022-06-15 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105971 + * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for + FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation + to leak less surprising alias results. + +2022-06-15 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105969 + * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division + by zero in overflow check. + +2022-06-15 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/105254 + PR tree-optimization/105940 + Revert: + * config/aarch64/aarch64.cc + (aarch64_vector_costs::determine_suggested_unroll_factor): Take a + loop_vec_info as argument. Restrict the unroll factor to values + that divide the VF. + (aarch64_vector_costs::finish_cost): Update call accordingly. + +2022-06-15 Richard Sandiford <richard.sandiford@arm.com> + + * read-rtl.cc (find_int): Substitute symbolic constants + before converting the string to an integer. + +2022-06-15 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer + left shifts by a constant when the result is truncated, and the + shift constant is well-defined. + * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add + support for rotations of signed integer types, by lowering + using unsigned vector shifts. + +2022-06-15 liuhongt <hongtao.liu@intel.com> + + PR target/105953 + * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg + operands[3]. + +2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com> + + PR rtl-optimization/105041 + * regrename.cc (check_new_reg_p): Use nregs value from du chain. + +2022-06-14 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/vsx.md (VS_scalar): Delete. + (rest of file): Adjust. + +2022-06-14 Jan Hubicka <hubicka@ucw.cz> + + PR ipa/105739 + * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads. + +2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/bitmanip.md: Add split to handle opportunities + for slli + sh[123]add.uw + +2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/predicates.md (consecutive_bits_operand): + Implement new predicate. + +2022-06-14 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105946 + * tree-ssa-uninit.cc (maybe_warn_pass_by_reference): + Do not look at arguments not specified in the function call. + +2022-06-14 Richard Biener <rguenther@suse.de> + + PR middle-end/105965 + * match.pd (view_convert CONSTRUCTOR): Handle single-element + CTOR case. + +2022-06-14 Eric Botcazou <ebotcazou@adacore.com> + + * warning-control.cc (copy_warning) [generic version]: Do not erase + the warning data of the destination location when the no-warning + bit is not set on the source. + (copy_warning) [tree version]: Return early if TO is equal to FROM. + (copy_warning) [gimple version]: Likewise. + +2022-06-14 Kewen Lin <linkw@linux.ibm.com> + + PR tree-optimization/105940 + * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of + applying suggested_unroll_factor after start_over. + +2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/predicates.md (shifted_mask_operand): + New predicate. + * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one): + New insn-and-split pattern. + (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask, + *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2, + *masktrue_const_shifted_mask): Ditto. + +2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern. + +2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa-protos.h (xtensa_emit_branch): + Remove the first argument. + (xtensa_emit_bit_branch): Remove it because now called only from the + output statement of *bittrue insn pattern. + * config/xtensa/xtensa.cc (gen_int_relational): Remove the last + argument 'p_invert', and make so that the condition is reversed by + itself as needed. + (xtensa_expand_conditional_branch): Share the common path, and remove + condition inversion code. + (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the + "false side" pattern. + (xtensa_emit_bit_branch): Remove it because of the abovementioned + reason, and move the function body to *bittrue insn pattern. + * config/xtensa/xtensa.md (*bittrue): Transplant the output + statement from removed xtensa_emit_bit_branch(). + (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side" + insn patterns. + +2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/predicates.md (logical_shift_operator, + xtensa_shift_per_byte_operator): New predicates. + * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction): + New prototype. + * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction): + New helper function for funnel shift patterns. + * config/xtensa/xtensa.md (ior_op): New code iterator. + (*ashlsi3_1): Replace with new split pattern. + (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x. + (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1): + New insn-and-split patterns that redirect to *xtensa_shift_per_byte, + in order to omit unnecessary bitwise AND operation. + (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>, + *shlrd_per_byte_<code>_omit_AND): + New insn patterns for funnel shifts. + +2022-06-13 Jason Merrill <jason@redhat.com> + + * tree-cfg.cc (pass_warn_function_return::execute): Also check + BUILT_IN_TRAP. + +2022-06-13 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.md (length): Remove the explicit setting + for "fcmp". + +2022-06-13 H.J. Lu <hjl.tools@gmail.com> + + * common/config/i386/cpuinfo.h (get_available_features): Require + AVX for F16C and VAES. + +2022-06-13 Uroš Bizjak <ubizjak@gmail.com> + + PR target/105927 + * config/i386/predicates.md (register_no_elim_operand): + Return true for subreg of a memory operand. + +2022-06-13 Richard Sandiford <richard.sandiford@arm.com> + + * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro. + (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE) + (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY) + (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it. + * internal-fn.h (direct_internal_fn_info::directly_mapped): New + member variable. + (direct_internal_fn_info::vectorizable): Reduce to 1 bit. + (direct_internal_fn_p): Also return true for internal functions + that map directly to instructions defined target-insns.def. + (direct_internal_fn): Adjust comment accordingly. + * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1) + (vectorizable_optab2): New local macros. + (not_direct): Initialize directly_mapped. + (mask_load_direct, load_lanes_direct, mask_load_lanes_direct) + (gather_load_direct, len_load_direct, mask_store_direct) + (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct) + (vec_cond_direct, scatter_store_direct, len_store_direct) + (vec_set_direct, unary_direct, binary_direct, ternary_direct) + (cond_unary_direct, cond_binary_direct, cond_ternary_direct) + (while_direct, fold_extract_direct, fold_left_direct) + (mask_fold_left_direct, check_ptrs_direct): Use the macros above. + (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete + (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise; + (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise. + (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise. + (direct_internal_fn_types): Handle functions that map to instructions + defined in target-insns.def. + (direct_internal_fn_types): Likewise. + (direct_internal_fn_supported_p): Likewise. + (internal_fn_expanders): Likewise. + +2022-06-13 Richard Sandiford <richard.sandiford@arm.com> + + * internal-fn.cc (expand_fn_using_insn): New function, + split out and adapted from... + (expand_direct_optab_fn): ...here. + (expand_GOMP_SIMT_ENTER_ALLOC): Use it. + (expand_GOMP_SIMT_EXIT): Likewise. + (expand_GOMP_SIMT_LANE): 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. + +2022-06-13 Jakub Jelinek <jakub@redhat.com> + + * omp-expand.cc (expand_omp_target): Remap user provided + device clause arguments, -1 to -2 and -2 to -3, either + at compile time if constant, or at runtime. + +2022-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * common.opt (finstrument-functions): Set explicit value. + (-finstrument-functions-once): New option. + * doc/invoke.texi (Program Instrumentation Options): Document it. + * gimplify.cc (build_instrumentation_call): New static function. + (gimplify_function_tree): Call it to emit the instrumentation calls + if -finstrument-functions[-once] is specified. + +2022-06-13 Eric Botcazou <ebotcazou@adacore.com> + + * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr. + * gimple.h (gimple_set_location): Do not copy warning data from + the previous location when it is UNKNOWN_LOCATION. + * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}. + +2022-06-13 Jakub Jelinek <jakub@redhat.com> + + PR target/105911 + * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, + *<insn><dwi>3_doubleword_mask): Use operands[3] masked with + (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of + operands[3] unmodified. + +2022-06-12 Simon Wright <simon@pushface.org> + + PR target/104871 + * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS + version is darwin20 (macOS 11) or greater, truncate the version to the + major number. + +2022-06-12 Mark Mentovai <mark@mentovai.com> + + * config/darwin-c.cc: Make -mmacosx-version-min more future-proof. + +2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + PR target/96463 + * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h. + (svld1rq_impl::fold): Define. + * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members + op_mode and op_vec_flags. + (aarch64_evpc_reencode): Initialize newd.op_mode and + newd.op_vec_flags. + (aarch64_evpc_sve_dup): New function. + (aarch64_expand_vec_perm_const_1): Gate existing calls to + aarch64_evpc_* functions under d->vmode == d->op_mode, + and call aarch64_evpc_sve_dup. + (aarch64_vectorize_vec_perm_const): Remove assert + d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags. + * tree-cfg.cc (verify_gimple_assign_ternary): Allow different + vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is + constant. + +2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa-protos.h (xtensa_constantsynth): + New prototype. + * config/xtensa/xtensa.cc (xtensa_emit_constantsynth, + xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI, + xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth): + New backend functions that process the abovementioned logic. + (xtensa_emit_move_sequence): Revert the previous changes. + * config/xtensa/xtensa.md: New split patterns for integer + and floating-point, as the frontend part. + +2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case + for ABS and NEG, add missing case for BSWAP and CLRSB, and + double the costs for integer divisions using libfuncs if + optimizing for speed, in order to take advantage of fast constant + division by multiplication. + (TARGET_INSN_COST): New macro definition. + (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for + calculating relative costs of a RTL insns, for both of speed and + size. + * config/xtensa/xtensa.md (return, nop, trap): Correct values of + the attribute "length" that depends on TARGET_DENSITY. + (define_asm_attributes, blockage, frame_blockage): Add missing + attributes. + * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine- + dependent option, however, preparatory work for now. + +2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop): + Pass through the block length / loop count conditions if + zero-overhead looping is configured and active, + +2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (mulsidi3, umulsidi3): + Split into individual signedness, in order to use libcall + "__umulsidi3" but not the other. + (<u>mulhisi3): Merge into one by using code iterator. + (<u>mulsidi3, mulhisi3, umulhisi3): Remove. + +2022-06-11 Michael Meissner <meissner@linux.ibm.com> + + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do + not generate block copies with vector pair instructions if we are + tuning for power10. + +2022-06-10 Roger Sayle <roger@nextmovesoftware.com> + + PR rtl-optimization/7061 + * expr.cc (emit_group_store): For groups that consist of a single + scalar integer register that hold a complex mode value, use + gen_lowpart to generate a SUBREG to "view_convert" to the complex + mode. For modes of different sizes, first convert to an integer + mode of the appropriate size. + +2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (clrsbsi2): New insn pattern. + +2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (*andsi3_bitcmpl): + New insn_and_split pattern. + +2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (one_cmplsi2): + Rearrange as an insn_and_split pattern. + +2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (bswaphi2): New insn pattern. + +2022-06-09 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000.md (FP_ISA3): Delete. + (float<QHI:mode><FP_ISA3:mode>2): Rename to... + (float<QHI:mode><SFDF:mode>2): ... this. Adjust. + (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to... + (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust. + (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to... + (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust. + (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to... + (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust. + +2022-06-09 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.md + (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default) + (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab + rather than space with FSFLAGS. + +2022-06-09 Tobias Burnus <tobias@codesourcery.com> + + * omp-offload.cc (omp_discover_declare_target_tgt_fn_r, + omp_discover_declare_target_fn_r): Don't walk reverse-offload + target regions. + +2022-06-09 Jakub Jelinek <jakub@redhat.com> + + * doc/invoke.texi (-Waddress): Fix a typo in small example. + Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t. + +2022-06-09 Cui,Lili <lili.cui@intel.com> + + PR target/105493 + * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost + from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and + unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}. + (icelake_cost): Ditto. + (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads, + stores and unaligned stores cost from {6, 6, 6, 10, 15} to + {8, 8, 8, 10, 15}. + +2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org> + + * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift + and ior insns to one rotate and mask insn. + (define_split for bswapdi register): Likewise. + +2022-06-08 Roger Sayle <roger@nextmovesoftware.com> + + PR middle-end/105874 + * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local + variable tem_modifier for calculating the expand_modifier enum to + use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY. + +2022-06-08 Max Filippov <jcmvbkbc@gmail.com> + + PR target/105879 + * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second' + to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and + 'gen_highpart' bitwise semantics and fix order of highpart and + lowpart depending on target endianness. + +2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com> + + * config/arm/arm-cpus.in (star-mc1): New cpu. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Regenerate. + * doc/invoke.texi: Update docs. + +2022-06-08 liuhongt <hongtao.liu@intel.com> + + PR target/105513 + PR target/105504 + * config/i386/i386.md (*movsi_internal): Change alternative + from *v to ?v. + (*movdi_internal): Ditto. + * config/i386/sse.md (vec_set<mode>_0): Change alternative *r + to ?r. + (*vec_extractv4sf_mem): Ditto. + (*vec_extracthf): Ditto. + +2022-06-07 Richard Earnshaw <rearnsha@arm.com> + + PR target/105090 + * config/arm/arm.cc (arm_bfi_1_p): New function. + (arm_bfi_p): New function. + (arm_rtx_costs_internal): Add costs for BFI idioms. + (arm_print_operand [case 'V']): Format output for BFI/BFC masks. + * config/arm/constraints.md (Dj): New constraint. + * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC. + (insv_zero): Convert to an insn with a split. + (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns. + +2022-06-07 liuhongt <hongtao.liu@intel.com> + + PR target/105854 + * config/i386/sse.md (ssse3_palignrdi): Change alternative 2 + from Yv to Yw. + +2022-06-07 Roger Sayle <roger@nextmovesoftware.com> + + PR middle-end/105853 + PR target/105856 + * calls.cc (load_register_parameters): Call store_constructor + and int_expr_size directly instead of expanding via expand_expr. + * expr.cc (static void store_constructor): Don't prototype here. + (static HOST_WIDE_INT int_expr_size): Likewise. + (store_constructor): No longer static. + (int_expr_size): Likewise, no longer static. + * expr.h (store_constructor): Prototype here. + (int_expr_size): Prototype here. + +2022-06-07 Jan Beulich <jbeulich@suse.com> + + Revert: + 2022-06-03 Jan Beulich <jbeulich@suse.com> + + * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New. + * configure.ac: Check for objcopy, producing + ORIGINAL_OBJCOPY_FOR_TARGET. + * configure: Update accordingly. + * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New. + Handle objcopy. + +2022-06-07 Jakub Jelinek <jakub@redhat.com> + + * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define. + * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>: + Adjust clause printing style depending on + OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER. + +2022-06-07 Jan Beulich <jbeulich@suse.com> + + * config/i386/i386-builtin.def (__builtin_ia32_psadbw256): + Change type. + * config/i386/i386-builtin-types.def: New function type + (V4DI, V32QI, V32QI). + * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle + V4DI_FTYPE_V32QI_V32QI. + +2022-06-07 Jan Beulich <jbeulich@suse.com> + + * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B + into account for reg-only insns. + +2022-06-07 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.cc (ix86_rtx_costs): Add a new case for + IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and + TARGET_CMOVE's (scalar integer) conditional moves. + * config/i386/sse.md (define_split): Recognize XOP's vpcmov + from its equivalent (canonical) pxor;pand;pxor sequence. + +2022-06-07 Kewen Lin <linkw@linux.ibm.com> + + * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for + parameter ORDER. + +2022-06-06 Andrew Stubbs <ams@codesourcery.com> + + * config.in: Regenerate. + * configure: Regenerate. + * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test. + +2022-06-04 Roger Sayle <roger@nextmovesoftware.com> + + PR middle-end/95126 + * calls.cc (load_register_parameters): When loading a suitable + immediate_const_ctor_p VAR_DECL into a single word_mode register, + construct it directly in a pseudo rather than read it (by parts) + from memory. + * expr.cc (int_expr_size): Make tree argument a const_tree. + (immediate_const_ctor_p): Helper predicate. Return true for + simple constructors that may be materialized in a register. + (expand_expr_real_1) [VAR_DECL]: When expanding a constant + VAR_DECL with a suitable immediate_const_ctor_p constructor + use store_constructor to materialize it directly in a pseudo. + * expr.h (immediate_const_ctor_p): Prototype here. + * varasm.cc (initializer_constant_valid_for_bitfield_p): Change + VALUE argument from tree to const_tree. + * varasm.h (initializer_constant_valid_for_bitfield_p): Update + prototype. + +2022-06-04 Jakub Jelinek <jakub@redhat.com> + + PR target/105825 + * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, + *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower + bits of mask aren't all set, use operands[2] mode for the AND + operation instead of always SImode. + +2022-06-03 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/30314 + PR middle-end/105777 + * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) -> + x > stype_max / cst || x < stype_min / cst): New simplification. + +2022-06-03 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-cache.cc (ranger_cache::range_from_dom): Use + Value_Range. + * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same. + * value-range.h (Value_Range::Value_Range): Implement copy + constructor for Value_Range. + +2022-06-03 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (struct vrange_traits): Remove. + (is_a): Rewrite without vrange_traits. + (as_a): Same. + +2022-06-03 Aldy Hernandez <aldyh@redhat.com> + + * value-range.cc (vrange::contains_p): Implement. + (vrange::type): Return void. + (vrange::supports_type_p): Implement. + (irange::fits_p): Same. + (vrange::set_undefined): Same. + (irange::set_nonnegative): Same. + (vrange::set_varying): Same. + (vrange::union_): Same. + (unsupported_range::set): Move to vrange. + (unsupported_range::type): Move to vrange. + (vrange::intersect): Implement for varying and undefined. + (vrange::zero_p): Implement. + (unsupported_range::supports_type_p): Move to vrange. + (vrange::nonzero_p): Implement. + (unsupported_range::set_undefined): Move to vrange. + (unsupported_range::set_varying): Same. + (unsupported_range::dump): Same. + (unsupported_range::union_): Same. Implement for varying and + undefined. + (unsupported_range::intersect): Move to vrange. + (unsupported_range::zero_p): Same. + (unsupported_range::nonzero_p): Same. + (unsupported_range::set_nonzero): Same. + (unsupported_range::set_zero): Same. + (unsupported_range::set_nonnegative): Same. + (unsupported_range::fits_p): Same. + * value-range.h (class vrange): Remove abstract markers for most + methods. + (class unsupported_range): Remove most methods as they will now be + inherited from vrange. + +2022-06-03 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for + an object level supports_type_p for irange and a static + Value_Range::supports_type_p. + * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same. + (fold_using_range::range_of_address): Same. + (fold_using_range::range_of_builtin_call): Same. + * gimple-range-fold.h (gimple_range_type): Same. + (gimple_range_ssa_p): Same. + * gimple-range-path.cc (path_range_query::internal_range_of_expr): + Same. + (path_range_query::range_of_stmt): Same. + (path_range_query::add_to_imports): Same. + * gimple-range.cc (gimple_ranger::range_on_edge): Same. + (gimple_ranger::export_global_ranges): Same. + * gimple-ssa-evrp-analyze.cc + (evrp_range_analyzer::record_ranges_from_phis): Same. + * range-op.cc (range_operator::wi_fold): Same. + (range_operator::fold_range): Same. + * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same. + * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same. + (evaluate_control_stmt_using_entry_checks): Same. + * tree-ssa-threadedge.cc + (hybrid_jt_simplifier::compute_ranges_from_state): Same. + * tree-vrp.cc (supported_types_p): Same. + * value-query.cc (range_query::value_of_expr): Same. + (range_query::value_on_edge): Same. + (range_query::value_of_stmt): Same. + (range_query::get_tree_range): Same. + (get_range_global): Same. + (global_range_query::range_of_expr): Same. + * value-range-equiv.h (class value_range_equiv): Same. + * value-range.cc (irange::supports_type_p): Same. + (unsupported_range::supports_type_p): Same. + * value-range.h (enum value_range_discriminator): Same. + (Value_Range::init): Same. + (Value_Range::supports_type_p): Same. + (irange::supports_type_p): Same. + (irange::supports_p): Same. + (vrange::supports_type_p): Same. + (vrange_allocator::alloc_vrange): Same. + +2022-06-03 Jan Beulich <jbeulich@suse.com> + + * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New. + * configure.ac: Check for objcopy, producing + ORIGINAL_OBJCOPY_FOR_TARGET. + * configure: Update accordingly. + * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New. + Handle objcopy. + +2022-06-03 Jan Beulich <jbeulich@suse.com> + + * config/i386/mmx.md (mmx_psadbw): Convert to expander. + (*mmx_psadbw): New. Mark as commutative. + * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander. + (*<sse2_avx2>_psadbw): New. Mark as commutative. + +2022-06-03 Alexandre Oliva <oliva@adacore.com> + + PR tree-optimization/105665 + PR tree-optimization/100810 + * tree-ssa-loop-ivopts.cc + (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New. + (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New. + (find_ssa_undef): Check precomputed flag and intervening uses. + (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs. + +2022-06-02 David Malcolm <dmalcolm@redhat.com> + + * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and + tree-logical-location.o. + (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder. + (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME. + * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file. + (sarif-stderr, sarif-file): New enum values. + * diagnostic-client-data-hooks.h: New file. + * diagnostic-format-sarif.cc: New file. + * diagnostic-path.h (enum diagnostic_event::verb): New enum. + (enum diagnostic_event::noun): New enum. + (enum diagnostic_event::property): New enum. + (struct diagnostic_event::meaning): New struct. + (diagnostic_event::get_logical_location): New vfunc. + (diagnostic_event::get_meaning): New vfunc. + (simple_diagnostic_event::get_logical_location): New vfunc impl. + (simple_diagnostic_event::get_meaning): New vfunc impl. + * diagnostic.cc: Include "diagnostic-client-data-hooks.h". + (diagnostic_initialize): Initialize m_client_data_hooks. + (diagnostic_finish): Clean up m_client_data_hooks. + (diagnostic_event::meaning::dump_to_pp): New. + (diagnostic_event::meaning::maybe_get_verb_str): New. + (diagnostic_event::meaning::maybe_get_noun_str): New. + (diagnostic_event::meaning::maybe_get_property_str): New. + (get_cwe_url): Make non-static. + (diagnostic_output_format_init): Handle + DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and + DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE. + * diagnostic.h (enum diagnostics_output_format): Add + DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and + DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE. + (class diagnostic_client_data_hooks): New forward decl. + (class logical_location): New forward decl. + (diagnostic_context::m_client_data_hooks): New field. + (diagnostic_output_format_init_sarif_stderr): New decl. + (diagnostic_output_format_init_sarif_file): New decl. + (get_cwe_url): New decl. + * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and + sarif-file. + * doc/sourcebuild.texi (Scan a particular file): Add + scan-sarif-file and scan-sarif-file-not. + * langhooks-def.h (lhd_get_sarif_source_language): New decl. + (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro. + (LANG_HOOKS_INITIALIZER): Add + LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE. + * langhooks.cc (lhd_get_sarif_source_language): New. + * langhooks.h (lang_hooks::get_sarif_source_language): New field. + * logical-location.h: New file. + * plugin.cc (struct for_each_plugin_closure): New. + (for_each_plugin_cb): New. + (for_each_plugin): New. + * plugin.h (for_each_plugin): New decl. + * tree-diagnostic-client-data-hooks.cc: New file. + * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h". + (tree_diagnostics_defaults): Populate m_client_data_hooks. + * tree-logical-location.cc: New file. + * tree-logical-location.h: New file. + +2022-06-02 David Malcolm <dmalcolm@redhat.com> + + * common.opt (fdiagnostics-format=): Add json-stderr and json-file + to description. + (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to... + (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this. + (diagnostics_output_format): Add json-stderr and json-file. + * diagnostic-format-json.cc (json_flush_to_file): New. + (json_final_cb): Convert to... + (json_flush_to_file): ...this, ... + (json_stderr_final_cb): ...this, and... + (json_file_final_cb): ...this. + (diagnostic_output_format_init): Move to diagnostic.cc. + (json_output_base_file_name): New. + (diagnostic_output_format_init_json): New. + (diagnostic_output_format_init_json_stderr): New. + (diagnostic_output_format_init_json_file): New. + * diagnostic.cc (diagnostic_output_format_init): Move here from + diagnostic-format-json.cc; update for changes to enum. + * diagnostic.h (enum diagnostics_output_format): Rename + DIAGNOSTICS_OUTPUT_FORMAT_JSON to + DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add + DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE. + (diagnostic_output_format_init): Add base_file_name param. + (diagnostic_output_format_init_json_stderr): New decl. + (diagnostic_output_format_init_json_file): New dec. + * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and + "json-file". Rewrite so that the existing "json" is a synonym of + "json-stderr". + * gcc.cc (driver_handle_option): Pass dump_base_name to + diagnostic_output_format_init. + * opts.cc (common_handle_option): Likewise. + +2022-06-02 David Malcolm <dmalcolm@redhat.com> + + * json.cc (string::print): Fix escaping of '\'. + +2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu> + + * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as + (-1 << 31) for the single-bit case, when operating on (1 << 31) + in SImode. + * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for + any single-bit value, moving the special case for (1 << 31) to + riscv_build_integer_1 (in riscv.c). + +2022-06-02 Roger Sayle <roger@nextmovesoftware.com> + + PR target/105791 + * config/i386/sse.md (V_128_256):Add V1TI and V2TI. + (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI. + +2022-06-02 Jakub Jelinek <jakub@redhat.com> + + PR target/105778 + * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI + from AND and its operands and just verify operands[2] has HImode, + SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask + with all low 6 (64-bit) or 5 (32-bit) bits set and in that case + just throw away the masking. Use force_reg before calling + gen_lowpart. + (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask + with all low 6 (64-bit) or 5 (32-bit) bits set and in that case + just throw away the masking. + (*ashl<mode>3_doubleword): Rename to ... + (ashl<mode>3_doubleword): ... this. + (*ashl<mode>3_mask): Remove :SI from AND and its operands and just + verify operands[2] has HImode, SImode or for TARGET_64BIT DImode. + Use force_reg before calling gen_lowpart. + (*<insn><mode>3_mask): Likewise. + (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be + a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that + case just throw away the masking. Use force_reg before calling + gen_lowpart. + (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask + with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just + throw away the masking. + (*<insn><mode>3_doubleword): Rename to ... + (<insn><mode>3_doubleword): ... this. + (*<insn><mode>3_mask): Remove :SI from AND and its operands and just + verify operands[2] has HImode, SImode or for TARGET_64BIT DImode. + Use force_reg before calling gen_lowpart. + (splitter after it): Remove :SI from AND and its operands and just + verify operands[2] has HImode, SImode or for TARGET_64BIT DImode. + (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its + operands and just verify operands[1] has HImode, SImode or for + TARGET_64BIT DImode. Use force_reg before calling gen_lowpart. + (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern. + * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with + ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND. + +2022-06-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/101668 + * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs + for vector types with compatible lane types. + (vect_build_slp_tree_2): Deal with this. + (vect_add_slp_permutation): Adjust. Emit lowpart/concat + special cases without VEC_PERM. + (vectorizable_slp_permutation): Select the operand vector + type and relax requirements. Handle identity permutes + with mismatching operand types. + * optabs-query.cc (can_vec_perm_const_p): Only allow variable + permutes for op_mode == mode. + +2022-06-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105802 + * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): + Make sure to also compute the range in the type of the switch index. + +2022-06-01 David Seifert <soap@gentoo.org> + + PR plugins/95648 + * configure: Regenerate. + +2022-06-01 H.J. Lu <hjl.tools@gmail.com> + + PR rtl-optimization/105638 + * df-core.cc (df_find_single_def_src): Moved and renamed from + find_single_def_src in loop-iv.cc. Change the argument to rtx + and use rtx_equal_p. Return null for partial or conditional + defs. + * df.h (df_find_single_def_src): New prototype. + * dse.cc (record_store): Use the constant source if the source + register is set only once. + * loop-iv.cc (find_single_def_src): Moved to df-core.cc. + (replace_single_def_regs): Replace find_single_def_src with + df_find_single_def_src. + +2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com> + + * config/aarch64/aarch64.opt (explicit_tune_core): Rename to + selected_tune. + (explicit_arch): Rename to selected_arch. + (x_aarch64_override_tune_string): Remove. + (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored. + (aarch64_override_tune_string): Add Save so it gets saved/restored. + * config/aarch64/aarch64.h (aarch64_architecture_version): Remove. + * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove. + (processor): Remove archtecture_version field. + (selected_arch): Remove global. + (selected_cpu): Remove global. + (selected_tune): Remove global. + (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved. + (aarch64_override_options_internal): Use aarch64_get_tune_cpu. + (aarch64_override_options): Further simplify code to only set + selected_arch and selected_tune globals. + (aarch64_option_save): Remove now that target options are saved. + (aarch64_option_restore): Remove redundant target option restores. + * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use + AARCH64_ISA_V9. + * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from... + * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove. + (aarch64_ra_sign_key): Remove. + +2022-06-01 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/30314 + * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) -> + x > ~(utype)0 / cst): New simplification. + +2022-06-01 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105786 + * tree-loop-distribution.cc + (loop_distribution::transform_reduction_loop): Only do strlen + replacement for integer type reductions. + +2022-06-01 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105770 + * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast + CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx. + +2022-06-01 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange. + (sbr_vector::sbr_vector): Same. + (sbr_vector::grow): Same. + (sbr_vector::set_bb_range): Same. + (sbr_vector::get_bb_range): Same. + (sbr_sparse_bitmap::sbr_sparse_bitmap): Same. + (sbr_sparse_bitmap::set_bb_range): Same. + (sbr_sparse_bitmap::get_bb_range): Same. + (block_range_cache::set_bb_range): Same. + (block_range_cache::get_bb_range): Same. + (block_range_cache::dump): Same. + (ssa_global_cache::get_global_range): Same. + (ssa_global_cache::set_global_range): Same. + (ssa_global_cache::clear): Same. + (ssa_global_cache::dump): Same. + (ranger_cache::get_global_range): Same. + (ranger_cache::set_global_range): Same. + (ranger_cache::range_of_def): Same. + (ranger_cache::entry_range): Same. + (ranger_cache::exit_range): Same. + (ranger_cache::edge_range): Same. + (ranger_cache::range_of_expr): Same. + (ranger_cache::range_on_edge): Same. + (ranger_cache::block_range): Same. + (ranger_cache::propagate_cache): Same. + (ranger_cache::fill_block_cache): Same. + (ranger_cache::range_from_dom): Same. + * gimple-range-cache.h: Same. + * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range): + Same. + (gimple_outgoing_range::switch_edge_range): Same. + (gimple_outgoing_range::edge_range_p): Same. + * gimple-range-edge.h: Same. + * gimple-range-fold.cc (fur_source::get_operand): Same. + (fur_source::get_phi_operand): Same. + (fur_edge::get_operand): Same. + (fur_edge::get_phi_operand): Same. + (fur_stmt::get_operand): Same. + (fur_stmt::get_phi_operand): Same. + (fur_list::fur_list): Same. + (fur_list::get_operand): Same. + (fur_list::get_phi_operand): Same. + (fold_range): Same. + (adjust_imagpart_expr): Same. + (adjust_realpart_expr): Same. + (gimple_range_adjustment): Same. + (fold_using_range::fold_stmt): Same. + (fold_using_range::range_of_range_op): Same. + (fold_using_range::range_of_address): Same. + (fold_using_range::range_of_phi): Same. + (fold_using_range::range_of_call): Same. + (fold_using_range::range_of_builtin_call): Same. + (fold_using_range::range_of_builtin_int_call): Same. + (fold_using_range::range_of_cond_expr): Same. + (fur_source::register_outgoing_edges): Same. + * gimple-range-fold.h (fold_range): Same. + (gimple_range_type): Same. + (gimple_range_ssa_p): Same. + * gimple-range-gori.cc (gimple_range_calc_op1): Same. + (gimple_range_calc_op2): Same. + (gori_compute::compute_operand_range_switch): Same. + (gori_compute::compute_operand_range): Same. + (gori_compute::logical_combine): Same. + (gori_compute::compute_logical_operands): Same. + (gori_compute::compute_operand1_range): Same. + (gori_compute::compute_operand2_range): Same. + (gori_compute::compute_operand1_and_operand2_range): Same. + (gori_compute::outgoing_edge_range_p): Same. + (gori_compute::condexpr_adjust): Same. + * gimple-range-gori.h (gimple_range_calc_op1): Same. + (gimple_range_calc_op2): Same. + * gimple-range-path.cc (path_range_query::get_cache): Same. + (path_range_query::set_cache): Same. + (path_range_query::range_on_path_entry): Same. + (path_range_query::internal_range_of_expr): Same. + (path_range_query::range_of_expr): Same. + (path_range_query::ssa_range_in_phi): Same. + (path_range_query::range_defined_in_block): Same. + (path_range_query::compute_ranges_in_phis): Same. + (path_range_query::compute_ranges_in_block): Same. + (path_range_query::add_to_imports): Same. + (path_range_query::range_of_stmt): Same. + * gimple-range-path.h: Same. + * gimple-range-infer.cc (gimple_infer_range::add_range): Same. + (gimple_infer_range::~side_effect_manager): Same. + (gimple_infer_range::get_nonzero): Same. + (gimple_infer_range::maybe_adjust_range): Same. + (gimple_infer_range::add_range): Same. + * gimple-range-infer.h: Same. + * gimple-range-tests.cc: Same. + * gimple-range-trace.cc (range_tracer::trailer): Same. + (debug_seed_ranger): Same. + * gimple-range-trace.h: Same. + * gimple-range.cc (gimple_ranger::range_of_expr): Same. + (gimple_ranger::range_on_entry): Same. + (gimple_ranger::range_on_exit): Same. + (gimple_ranger::range_on_edge): Same. + (gimple_ranger::fold_range_internal): Same. + (gimple_ranger::range_of_stmt): Same. + (gimple_ranger::prefill_name): Same. + (gimple_ranger::prefill_stmt_dependencies): Same. + (gimple_ranger::export_global_ranges): Same. + (gimple_ranger::dump_bb): Same. + * gimple-range.h: Same. + * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same. + (memmodel_to_uhwi): Same. + * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same. + (determine_value_range): Same. + (record_nonwrapping_iv): Same. + (infer_loop_bounds_from_signedness): Same. + (scev_var_range_cant_overflow): Same. + * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same. + * value-query.cc (range_query::range_on_edge): Same. + (range_query::range_of_stmt): Same. + (range_query::value_of_expr): Same. + (range_query::value_on_edge): Same. + (range_query::value_of_stmt): Same. + (range_query::get_tree_range): Same. + (update_global_range): Same. + (get_range_global): Same. + (gimple_range_global): Same. + (global_range_query::range_of_expr): Same. + (range_query::query_relation): Same. + * value-query.h (gimple_range_global): Same. + (update_global_range): Same. + * vr-values.cc (vr_values::range_of_expr): Same. + (bounds_of_var_in_loop): Same. + (simplify_using_ranges::vrp_visit_cond_stmt): Same. + * vr-values.h (class vr_values): Same. + * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same. + +2022-06-01 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for + vrange allocator. + (sbr_vector::grow): Same. + (sbr_vector::set_bb_range): Same. + (sbr_sparse_bitmap::sbr_sparse_bitmap): Same. + (sbr_sparse_bitmap::set_bb_range): Same. + (block_range_cache::~block_range_cache): Same. + (block_range_cache::set_bb_range): Same. + (ssa_global_cache::ssa_global_cache): Same. + (ssa_global_cache::~ssa_global_cache): Same. + (ssa_global_cache::set_global_range): Same. + * gimple-range-cache.h (block_range_cache): Same. + (ssa_global_cache): Same. + * gimple-range-edge.cc + (gimple_outgoing_range::calc_switch_ranges): Same. + * gimple-range-edge.h (gimple_outgoing_range): Same. + * gimple-range-infer.cc (infer_range_manager::get_nonzero): + Same. + (infer_range_manager::add_range): Same. + * gimple-range-infer.h (class infer_range_manager): Same. + * value-range.h (class irange_allocator): Rename to... + (class vrange_allocator): ...this. + (irange_allocator::irange_allocator): New. + (vrange_allocator::vrange_allocator): New. + (irange_allocator::~irange_allocator): New. + (vrange_allocator::~vrange_allocator): New. + (irange_allocator::get_memory): Rename to... + (vrange_allocator::alloc): ...this. + (vrange_allocator::alloc_vrange): Rename from... + (irange_allocator::allocate): ...this. + (vrange_allocator::alloc_irange): New. + +2022-06-01 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for + vrange and convert range_op_handler function calls to use the + identically named object. + * gimple-range-fold.cc (gimple_range_operand1): Same. + (gimple_range_operand2): Same. + (fold_using_range::fold_stmt): Same. + (fold_using_range::range_of_range_op): Same. + (fold_using_range::range_of_builtin_ubsan_call): Same. + (fold_using_range::relation_fold_and_or): Same. + (fur_source::register_outgoing_edges): Same. + * gimple-range-fold.h (gimple_range_handler): Remove. + * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange. + (gimple_range_calc_op2): Same. + (range_def_chain::get_def_chain): Same. + (gori_compute::compute_operand_range): Same. + (gori_compute::condexpr_adjust): Same. + * gimple-range.cc (gimple_ranger::prefill_name): Same. + (gimple_ranger::prefill_stmt_dependencies): Same. + * range-op.cc (get_bool_state): Same. + (class operator_equal): Add using clause. + (class operator_not_equal): Same. + (class operator_lt): Same. + (class operator_le): Same. + (class operator_gt): Same. + (class operator_ge): Same. + (class operator_plus): Same. + (class operator_minus): Same. + (class operator_mult): Same. + (class operator_exact_divide): Same. + (class operator_lshift): Same. + (class operator_rshift): Same. + (class operator_cast): Same. + (class operator_logical_and): Same. + (class operator_bitwise_and): Same. + (class operator_logical_or): Same. + (class operator_bitwise_or): Same. + (class operator_bitwise_xor): Same. + (class operator_trunc_mod): Same. + (class operator_logical_not): Same. + (class operator_bitwise_not): Same. + (class operator_cst): Same. + (class operator_identity): Same. + (class operator_unknown): Same. + (class operator_abs): Same. + (class operator_negate): Same. + (class operator_addr_expr): Same. + (class pointer_or_operator): Same. + (operator_plus::op1_range): Adjust for vrange. + (operator_minus::op1_range): Same. + (operator_mult::op1_range): Same. + (operator_cast::op1_range): Same. + (operator_bitwise_not::fold_range): Same. + (operator_negate::fold_range): Same. + (range_op_handler): Rename to... + (get_handler): ...this. + (range_op_handler::range_op_handler): New. + (range_op_handler::fold_range): New. + (range_op_handler::op1_range): New. + (range_op_handler::op2_range): New. + (range_op_handler::lhs_op1_relation): New. + (range_op_handler::lhs_op2_relation): New. + (range_op_handler::op1_op2_relation): New. + (range_cast): Adjust for vrange. + * range-op.h (range_op_handler): Remove function. + (range_cast): Adjust for vrange. + (class range_op_handler): New. + (get_bool_state): Adjust for vrange. + (empty_range_varying): Same. + (relop_early_resolve): Same. + * tree-data-ref.cc (compute_distributive_range): Same. + * tree-vrp.cc (get_range_op_handler): Remove. + (range_fold_binary_symbolics_p): Use range_op_handler class + instead of get_range_op_handler. + (range_fold_unary_symbolics_p): Same. + (range_fold_binary_expr): Same. + (range_fold_unary_expr): Same. + * value-query.cc (range_query::get_tree_range): Adjust for vrange. + +2022-06-01 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.h (gimple_range_type): Check type before + calling supports_type_p. + * gimple-range-path.cc (path_range_query::range_of_stmt): Same. + * value-query.cc (range_query::get_tree_range): Same. + * value-range.cc (Value_Range::lower_bound): New. + (Value_Range::upper_bound): New. + (Value_Range::dump): New. + * value-range.h (class Value_Range): New. + (irange::supports_type_p): Do not check if type is non-zero. + +2022-06-01 Aldy Hernandez <aldyh@redhat.com> + + * value-range-equiv.cc (value_range_equiv::set): New. + * value-range-equiv.h (class value_range_equiv): Make set method + virtual. + Remove default bitmap argument from set method. + * value-range.cc (vrange::contains_p): New. + (vrange::singleton_p): New. + (vrange::operator=): New. + (vrange::operator==): New. + (irange::fits_p): Move to .cc file. + (irange::set_nonnegative): New. + (unsupported_range::unsupported_range): New. + (unsupported_range::set): New. + (unsupported_range::type): New. + (unsupported_range::set_undefined): New. + (unsupported_range::set_varying): New. + (unsupported_range::dump): New. + (unsupported_range::union_): New. + (unsupported_range::intersect): New. + (unsupported_range::zero_p): New. + (unsupported_range::nonzero_p): New. + (unsupported_range::set_nonzero): New. + (unsupported_range::set_zero): New. + (unsupported_range::set_nonnegative): New. + (unsupported_range::fits_p): New. + (irange::set): Call irange::set_undefined. + (irange::verify_range): Check discriminator field. + (irange::dump): Dump [irange] marker. + (irange::debug): Move to... + (vrange::debug): ...here. + (dump_value_range): Accept vrange. + (debug): Same. + * value-range.h (enum value_range_discriminator): New. + (class vrange): New. + (class unsupported_range): New. + (struct vrange_traits): New. + (is_a): New. + (as_a): New. + (class irange): Inherit from vrange. + (dump_value_range): Adjust for vrange. + (irange::kind): Rename to... + (vrange::kind): ...this. + (irange::varying_p): Rename to... + (vrange::varying_p): ...this. + (irange::undefined_p): Rename to... + (vrange::undefined_p): ...this. + (irange::irange): Set discriminator. + (irange::union_): Convert to irange before passing to irange + method. + (irange::intersect): Same. + (vrange::supports_type_p): New. + * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass + NULL bitmap argument to value_range_equiv::set. + (vr_values::extract_range_basic): Same. + +2022-06-01 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105763 + * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): + Check gimple_range_ssa_p. + +2022-05-31 Jason Merrill <jason@redhat.com> + + * Makefile.in (TAGS): Look at libcpp/*.cc. + +2022-05-31 Christophe Lyon <christophe.lyon@arm.com> + + * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): + Prefix mode names with E_. + +2022-05-31 Alan Modra <amodra@gmail.com> + + * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct + spelling of DW_AT_namelist_item. + +2022-05-31 Jakub Jelinek <jakub@redhat.com> + + * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE + allow var to be private in the outer context. + (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument + to build_outer_var_ref. + +2022-05-30 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be + tieable with DImode on TARGET_64BIT, and SCmode tieable with + V2SFmode, and DCmode with V2DFmode. + +2022-05-30 Roger Sayle <roger@nextmovesoftware.com> + + PR rtl-optimization/101617 + * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a + special case (indicated by negate_cc_compare_p) to generate a + -1/0 mask using neg;sbb. + * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand + to generate an *x86_neg<mode>_ccc instruction. + (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to + generate a *x86_mov<mode>cc_0_m1_neg instruction. + +2022-05-30 Roger Sayle <roger@nextmovesoftware.com> + + * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT, + SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT. + <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV. + +2022-05-30 Roger Sayle <roger@nextmovesoftware.com> + + PR target/70321 + * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose + DI mode equality/inequality using XOR here. Instead generate a + COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode). + * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use + gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode. + (general_scalar_chain::convert_compare): New function to convert + scalar equality/inequality comparison into vector operations. + (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call + new convert_compare helper method. + (convertible_comparion_p): Update to match doubleword COMPARE + of two register, memory or integer constant operands. + * config/i386/i386-features.h (general_scalar_chain::convert_compare): + Prototype/declare member function here. + * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but + only allow new doubleword modes for EQ and NE operators. + (*cmp<dwi>_doubleword): New define_insn_and_split, to split a + doubleword comparison into a pair of XORs followed by an IOR to + set the (zero) flags register, optimizing the XORs if possible. + * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode + iterator; V_AVX is (currently) only used by ptest. + (sse4_1 mode attribute): Update to support V1TI and V2TI. + +2022-05-30 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md: Remove constraints when used with + const_int_operand, const0_operand, const_1_operand, constm1_operand, + const8_operand, const128_operand, const248_operand, const123_operand, + const2367_operand, const1248_operand, const359_operand, + const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand, + const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand, + const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand, + const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand, + const_0_to_255_mul_8_operand, const_1_to_31_operand, + const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand, + const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand, + const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand, + const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand, + const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand, + const_24_to_27_operand and const_28_to_31_operand. + * config/i386/mmx.md: Ditto. + * config/i386/sse.md: Ditto. + * config/i386/subst.md: Ditto. + * config/i386/sync.md: Ditto. + +2022-05-30 Jan Beulich <jbeulich@suse.com> + + * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P() + arguments. + +2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype. + +2022-05-29 Iain Sandoe <iain@sandoe.co.uk> + + PR target/105599 + * config/darwin.h: Move versions-specific handling of multiply_defined + from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC. + +2022-05-29 Eric Gallager <egallager@gcc.gnu.org> + + PR other/82383 + * doc/sourcebuild.texi: Add entries for the c++tools, + gotools, libbacktrace, libcc1, libcody, liboffloadmic, + and libsanitizer directories. Remove entry for boehm-gc. + Fix alphabetization for libquadmath. + +2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com> + + * config/avr/avr-mcus.def: Add device definitions. + * doc/avr-mmcu.texi: Corresponding changes. + * config/avr/gen-avr-mmcu-texi.cc: Added support for avr + device prefix. + * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags + from leaking into cc1. + +2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org> + + PR target/103722 + * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which + is special) for various scenarios. + +2022-05-28 Iain Sandoe <iain@sandoe.co.uk> + + * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block + describing this macro. + +2022-05-27 Richard Biener <rguenther@suse.de> + + * tree-dfa.cc (get_ref_base_and_extent): Avoid shift. + +2022-05-27 Martin Jambor <mjambor@suse.cz> + + PR ipa/105639 + * ipa-prop.cc (propagate_controlled_uses): Check type of the + constant before adding a LOAD reference. + +2022-05-27 Jakub Jelinek <jakub@redhat.com> + + * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE + to OMP_CLAUSE_ENTER. + * tree.h (OMP_CLAUSE_ENTER_TO): Define. + * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename + OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER. + * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER + instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print + "to" instead of "enter". + * tree-nested.cc (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of + OMP_CLAUSE_TO_DECLARE. + +2022-05-27 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105726 + * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset): + Constrain array-of-flexarray case more. + +2022-05-27 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/105729 + * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w) + to (X &) z + w if -fsanitize=null during GENERIC folding. + +2022-05-27 Roger Sayle <roger@nextmovesoftware.com> + + * match.pd (match_zero_one_valued_p): New predicate. + (mult @0 @1): Use zero_one_valued_p for optimization to the + expression "bit_and @0 @1". + (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR. + (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform. + (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise. + (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise. + Remove three redundant transforms obsoleted by the three above. + +2022-05-27 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (*test<mode>_not): New define_insn_and_split + to split a combined "and;cmp" sequence into "not;test". + +2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (bswapsi2): New expansion pattern. + (bswapsi2_internal): Revise the template and condition, and add + detection code for preceding the same insn in order to omit a + "SSAI 8" instruction of the latter. + (bswapdi2): Suppress built-in insn expansion with the corresponding + library call when optimizing for size. + +2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa-protos.h + (xtensa_expand_block_set_unrolled_loop, + xtensa_expand_block_set_small_loop): New prototypes. + * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI, + xtensa_expand_block_set_unrolled_loop, + xtensa_expand_block_set_small_loop): New functions. + * config/xtensa/xtensa.md (setmemsi): New expansion pattern. + * config/xtensa/xtensa.opt (mlongcalls): Add target mask. + +2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.cc (xtensa_expand_block_move): + Make instruction counting more accurate, and simplify emitting insns. + +2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/constraints.md (M, O): Use the macro. + * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand, + sext_fldsz_operand): Ditto. + * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256, + xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, + xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg, + xtensa_expand_prologue): Ditto. + * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto. + +2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/predicates.md (extui_fldsz_operand): Simplify. + * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand): + Ditto. + +2022-05-25 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc: Adjust comments. + * gimple-range-infer.cc: Adjust comments. + * gimple-range-infer.h: Adjust comments. + * gimple-range.cc: Adjust comments. + +2022-05-25 Andrew MacLeod <amacleod@redhat.com> + + * Makefile.in (OBJS): Use gimple-range-infer.o. + * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg. + (ranger_cache::range_from_dom): Rename var side_effect to infer. + (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects. + * gimple-range-cache.h: Include gimple-range-infer.h. + (class ranger_cache): Adjust prototypes, use infer_range_manager. + * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc. + (gimple_infer_range::*): Rename from stmt_side_effects. + (infer_range_manager::*): Rename from side_effect_manager. + * gimple-range-side-effect.cc: Rename. + * gimple-range-side-effect.h: Rename. + * gimple-range-infer.h: Rename from gimple-range-side-effects.h. + (class gimple_infer_range): Rename from stmt_side_effects. + (class infer_range_manager): Rename from side_effect_manager. + * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename + from register_side_effects. + * gimple-range.h (register_inferred_ranges): Adjust prototype. + * range-op.h: Adjust comment. + * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges. + (rvrp_folder::post_fold_bb): Use register_inferred_ranges. + +2022-05-25 Simon Cook <simon.cook@embecosm.com> + + * config/riscv/arch-canonicalize: Only add mafd extension if + base was rv32/rv64g. + +2022-05-25 Tobias Burnus <tobias@codesourcery.com> + + * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a. + +2022-05-25 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/105714 + * asan.cc (has_stmt_been_instrumented_p): For assignments which + are both stores and loads, return true only if both destination + and source have been instrumented. + +2022-05-25 Martin Liska <mliska@suse.cz> + Richard Biener <rguenther@suse.de> + + * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter. + * params.opt (max-unswitch-level): Remove. + * doc/invoke.texi (max-unswitch-level): Likewise. + * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not + gimplified expressions. + * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New. + (tree_may_unswitch_on): Rename to ... + (find_unswitching_predicates_for_bb): ... this and handle + switch statements. + (get_predicates_for_bb): Likewise. + (set_predicates_for_bb): Likewise. + (init_loop_unswitch_info): Likewise. + (tree_ssa_unswitch_loops): Prepare stuff before calling + tree_unswitch_single_loop. + (tree_unswitch_single_loop): Rework the function using + pre-computed predicates and with a per original loop cost model. + (merge_last): New. + (add_predicate_to_path): Likewise. + (find_range_for_lhs): Likewise. + (simplify_using_entry_checks): Rename to ... + (evaluate_control_stmt_using_entry_checks): ... this, handle + switch statements and improve simplifications using ranger. + (simplify_loop_version): Rework using + evaluate_control_stmt_using_entry_checks. + (evaluate_bbs): New. + (evaluate_loop_insns_for_predicate): Likewise. + (tree_unswitch_loop): Adjust to allow switch statements and + pass in the edge to unswitch. + (clean_up_after_unswitching): New. + (pass_tree_unswitch::execute): Pass down fun. + +2022-05-24 Eugene Rozenfeld <erozen@microsoft.com> + + * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile + counts for the epilog loop. + +2022-05-24 Martin Sebor <msebor@redhat.com> + Richard Biener <rguenther@suse.de> + + PR middle-end/105604 + * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments. + (get_origin_and_offset_r): Remove null handling. Handle variable array + sizes. + (get_origin_and_offset): Handle null argument here. Simplify. + (alias_offset): Update comment. + * pointer-query.cc (field_at_offset): Update comment. Handle members + of variable-length types. + +2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> + + * target.def (vec_perm_const): Define new parameter op_mode and + update doc. + * doc/tm.texi: Regenerate. + * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust + vec_perm_const hook to add new parameter op_mode and return false + if result and operand modes do not match. + * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise. + * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise. + * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise. + * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise. + * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise + * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise. + * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise. + * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise. + * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust + prototype. + * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook. + (ashrv2di3): Likewise. + * optabs.cc (expand_vec_perm_const): Likewise. + * optabs-query.h (can_vec_perm_const_p): Adjust prototype. + * optabs-query.cc (can_vec_perm_const_p): Define new parameter + op_mode and pass it to vec_perm_const hook. + (can_mult_highpart_p): Adjust call to can_vec_perm_const_p. + * match.pd (vec_perm X Y CST): Likewise. + * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise. + * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise. + (vect_grouped_load_supported): Likewise. + (vect_shift_permute_load_chain): Likewise. + * tree-vect-generic.cc (lower_vec_perm): Likewise. + * tree-vect-loop-manip.cc (interleave_supported_p): Likewise. + * tree-vect-loop.cc (have_whole_vector_shift): Likewise. + * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise. + * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise. + (vect_transform_slp_perm_load): Likewise. + (vectorizable_slp_permutation): Likewise. + * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise. + (vectorizable_bswap): Likewise. + (scan_store_can_perm_p): Likewise. + (vect_gen_perm_mask_checked): Likewise. + +2022-05-24 H.J. Lu <hjl.tools@gmail.com> + + PR target/104816 + * config/i386/i386.opt: Remove Undocumented. + * doc/invoke.texi: Document -mcet-switch. + +2022-05-24 Andrew Stubbs <ams@codesourcery.com> + + * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a. + * config/gcn/gcn-opts.h (enum gcn_isa): New. + (TARGET_GCN3): Use enum gcn_isa. + (TARGET_GCN3_PLUS): Likewise. + (TARGET_GCN5): Likewise. + (TARGET_GCN5_PLUS): Likewise. + (TARGET_CDNA1): New. + (TARGET_CDNA1_PLUS): New. + (TARGET_CDNA2): New. + (TARGET_CDNA2_PLUS): New. + (TARGET_M0_LDS_LIMIT): New. + (TARGET_PACKED_WORK_ITEMS): New. + * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa. + (gcn_option_override): Recognise CDNA ISA variants. + (gcn_omp_device_kind_arch_isa): Support gfx90a. + (gcn_expand_prologue): Make m0 init optional. + Add support for packed work items. + (output_file_start): Support gfx90a. + (gcn_hsa_declare_function_name): Support gfx90a metadata. + * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and + __CDNA2__. + * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS. + (<su>mulsi3_highpart_imm): Likewise. + (<su>mulsidi3): Likewise. + (<su>mulsidi3_imm): Likewise. + * config/gcn/gcn.opt (gpu_type): Add gfx90a. + * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New. + (main): Support gfx90a. + * config/gcn/t-gcn-hsa: Add gfx90a multilib. + * config/gcn/t-omp-device: Add gfx90a isa. + +2022-05-24 Andrew Stubbs <ams@codesourcery.com> + + * config.in: Regenerate. + * config/gcn/gcn-hsa.h (X_FIJI): Delete. + (X_900): Delete. + (X_906): Delete. + (X_908): Delete. + (S_FIJI): Delete. + (S_900): Delete. + (S_906): Delete. + (S_908): Delete. + (NO_XNACK): New macro. + (NO_SRAM_ECC): New macro. + (SRAMOPT): Keep only v4 variant. + (HSACO3_SELECT_OPT): Delete. + (DRIVER_SELF_SPECS): Delete. + (ASM_SPEC): Remove LLVM 9 support. + * config/gcn/gcn-valu.md + (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround. + (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. + * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support. + (print_operand_address): Remove assembler bug workaround. + * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete. + (EF_AMDGPU_SRAM_ECC_V3): Delete. + (SET_XNACK_ON): Delete v3 variants. + (SET_XNACK_OFF): Delete v3 variants. + (TEST_XNACK): Delete v3 variants. + (SET_SRAM_ECC_ON): Delete v3 variants. + (SET_SRAM_ECC_ANY): Delete v3 variants. + (SET_SRAM_ECC_OFF): Delete v3 variants. + (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants. + (TEST_SRAM_ECC_ANY): Delete v3 variants. + (TEST_SRAM_ECC_ON): Delete v3 variants. + (copy_early_debug_info): Remove v3 support. + (main): Remove v3 support. + * configure: Regenerate. + * configure.ac: Replace all GCN feature checks with a version check. + +2022-05-24 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg, + i.e. a double word negation of a zero extended operand, to + neg;sbb. + +2022-05-24 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/105668 + * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support + V1TImode, just like V2DImode. + * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>): + Use VI_128 mode iterator instead of VI124_128 to include V2DI. + (vcond_mask_v2div2di): Delete. + (vcond_mask_v1tiv1ti): New define_expand. + +2022-05-24 Roger Sayle <roger@nextmovesoftware.com> + + * genpreds.cc (write_lookup_constraint_1): Avoid generating a call + to strncmp for strings of length one. + +2022-05-24 ShiYulong <shiyulong@iscas.ac.cn> + + * config/riscv/predicates.md (imm5_operand): Add a new operand type for + prefetch instructions. + * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA + Extensions. + (RISCV_ATYPE_SI): New. + (RISCV_ATYPE_DI): New. + * config/riscv/riscv-ftypes.def (0): New. + (1): New. + * config/riscv/riscv.md (riscv_clean_<mode>): New. + (riscv_flush_<mode>): New. + (riscv_inval_<mode>): New. + (riscv_zero_<mode>): New. + (prefetch): New. + (riscv_prefetchi_<mode>): New. + * config/riscv/riscv-cmo.def: New file. + +2022-05-24 ShiYulong <shiyulong@iscas.ac.cn> + + * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions. + * config/riscv/riscv-opts.h (MASK_ZICBOZ): New. + (MASK_ZICBOM): New. + (MASK_ZICBOP): New. + (TARGET_ZICBOZ): New. + (TARGET_ZICBOM): New. + (TARGET_ZICBOP): New. + * config/riscv/riscv.opt (riscv_zicmo_subext): New. + +2022-05-24 David Malcolm <dmalcolm@redhat.com> + + * tree-vect-slp-patterns.cc: Add "final" and "override" to + vect_pattern::build impls as appropriate. + +2022-05-24 David Malcolm <dmalcolm@redhat.com> + + * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc + implementations, removing redundant "virtual" as appropriate. + * ipa-fnsummary.h: Likewise. + * ipa-modref.cc: Likewise. + * ipa-param-manipulation.cc: Likewise. + * ipa-profile.cc: Likewise. + * ipa-prop.h: Likewise. + * ipa-pure-const.cc: Likewise. + * ipa-reference.cc: Likewise. + * ipa-sra.cc: Likewise. + * symbol-summary.h: Likewise. + * symtab-thunks.cc: Likewise. + +2022-05-24 Martin Liska <mliska@suse.cz> + + Revert: + 2022-05-24 Martin Liska <mliska@suse.cz> + + * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized + warning. + +2022-05-24 Martin Liska <mliska@suse.cz> + + * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized + warning. + +2022-05-24 Bruno Haible <bruno@clisp.org> + + PR other/105527 + * doc/install.texi (Configuration): Add more details about --with-zstd. + Document --with-zstd-include and --with-zstd-lib + +2022-05-24 Richard Biener <rguenther@suse.de> + + PR middle-end/105711 + * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter + and use it. + (extract_bit_field_1): Pass down the mode of op0 to + extract_bit_field_as_subreg. + +2022-05-24 Vineet Gupta <vineetg@rivosinc.com> + + * config/riscv/riscv.cc: (struct riscv_tune_param): Add + fmv_cost. + (rocket_tune_info): Add default fmv_cost 8. + (sifive_7_tune_info): Ditto. + (thead_c906_tune_info): Ditto. + (optimize_size_tune_info): Ditto. + (riscv_register_move_cost): Use fmv_cost for int<->fp moves. + +2022-05-24 Jakub Jelinek <jakub@redhat.com> + + PR c/105378 + * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New + builtin. + * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait + clause but no depend clauses. + * omp-expand.cc (expand_taskwait_call): Use + BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than + BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present. + +2022-05-24 Richard Biener <rguenther@suse.de> + + PR tree-optimization/100221 + * tree-ssa-dse.cc (contains_phi_arg): New function. + (dse_classify_store): Postpone PHI defs that feed another PHI in defs. + +2022-05-24 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105629 + * tree-ssa-phiopt.cc (spaceship_replacement): Allow + a sign-extending conversion. + +2022-05-24 Kewen Lin <linkw@linux.ibm.com> + + PR target/105627 + * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't + be a debug insn. + (union_uses): Skip debug use_insn. + +2022-05-23 Vineet Gupta <vineetg@rivosinc.com> + + * config/riscv/predicates.md (const_0_operand): Remove + const_double. + * config/riscv/riscv.cc (riscv_rtx_costs): Add check for + CONST_DOUBLE. + * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define. + +2022-05-23 Mayshao <mayshao-oc@zhaoxin.com> + + * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect + the specific type of Zhaoxin CPU, and return Zhaoxin CPU name. + (cpu_indicator_init): Handle Zhaoxin processors. + * common/config/i386/i386-common.cc: Add lujiazui. + * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add + VENDOR_ZHAOXIN. + (enum processor_types): Add ZHAOXIN_FAM7H. + (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI. + * config.gcc: Add lujiazui. + * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add + Signatures for zhaoxin + (signature_SHANGHAI_ecx): Ditto. + (signature_SHANGHAI_edx): Ditto. + * config/i386/driver-i386.cc (host_detect_local_cpu): Let + -march=native recognize lujiazui processors. + * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui. + * config/i386/i386-options.cc (m_LUJIAZUI): New_definition. + * config/i386/i386.h (enum processor_type): Ditto. + * config/i386/i386.md: Add lujiazui. + * config/i386/x86-tune-costs.h (struct processor_costs): Add + lujiazui costs. + * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui. + (ix86_adjust_cost): Ditto. + * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings. + (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto. + (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto. + (X86_TUNE_MOVX): Ditto. + (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto. + (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto. + (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto. + (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto. + (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto. + (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto. + (X86_TUNE_USE_LEAVE): Ditto. + (X86_TUNE_PUSH_MEMORY): Ditto. + (X86_TUNE_LCP_STALL): Ditto. + (X86_TUNE_USE_INCDEC): Ditto. + (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto. + (X86_TUNE_OPT_AGU): Ditto. + (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto. + (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto. + (X86_TUNE_USE_SAHF): Ditto. + (X86_TUNE_USE_BT): Ditto. + (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto. + (X86_TUNE_ONE_IF_CONV_INSN): Ditto. + (X86_TUNE_AVOID_MFENCE): Ditto. + (X86_TUNE_EXPAND_ABS): Ditto. + (X86_TUNE_USE_SIMODE_FIOP): Ditto. + (X86_TUNE_USE_FFREEP): Ditto. + (X86_TUNE_EXT_80387_CONSTANTS): Ditto. + (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto. + (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto. + (X86_TUNE_SSE_TYPELESS_STORES): Ditto. + (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto. + * doc/extend.texi: Add details about lujiazui. + * doc/invoke.texi: Add details about lujiazui. + * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file. + +2022-05-23 Martin Liska <mliska@suse.cz> + + * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro. + +2022-05-23 Richard Biener <rguenther@suse.de> + + * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove. + (pass_forwprop::execute): Do not propagate into COND_EXPR conditions. + +2022-05-23 Richard Biener <rguenther@suse.de> + + * gimple-expr.cc (is_gimple_condexpr): Remove. + * gimple-expr.h (is_gimple_condexpr): Likewise. + * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage. + * tree-if-conv.cc (set_bb_predicate): Likewie. + (add_to_predicate_list): Likewise. + (gen_phi_arg_condition): Likewise. + (predicate_scalar_phi): Likewise. + (predicate_statements): Likewise. + +2022-05-23 Richard Biener <rguenther@suse.de> + + * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val. + * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition + as is_gimple_val. + * gimple-fold.cc (valid_gimple_rhs_p): Simplify. + * tree-cfg.cc (verify_gimple_assign_ternary): Likewise. + * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction): + Build the condition of the COND_EXPR separately. + * tree-ssa-loop-im.cc (move_computations_worker): Likewise. + * tree-vect-generic.cc (expand_vector_condition): Likewise. + * tree-vect-loop.cc (vect_create_epilog_for_reduction): + Likewise. + * vr-values.cc (simplify_using_ranges::simplify): Likewise. + * tree-vect-patterns.cc: Add comment indicating we are + building invalid COND_EXPRs and why. + * omp-expand.cc (expand_omp_simd): Gimplify the condition + to the COND_EXPR separately. + (expand_omp_atomic_cas): Note part that should be unreachable + now. + * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust + condition for valid replacements. + * tree-if-conv.cc (predicate_bbs): Simulate previous + re-folding of the condition in folded COND_EXPRs which + is necessary because of unfolded GIMPLE_CONDs in the IL + as in for example gcc.dg/fold-bopcond-1.c. + * gimple-range-gori.cc (gori_compute::condexpr_adjust): + Handle that the comparison is now in the def stmt of + the select operand. Required by gcc.dg/pr104526.c. + +2022-05-23 Tobias Burnus <tobias@codesourcery.com> + + PR fortran/104949 + * langhooks-def.h (lhd_omp_array_size): New. + (LANG_HOOKS_OMP_ARRAY_SIZE): Define. + (LANG_HOOKS_DECLS): Add it. + * langhooks.cc (lhd_omp_array_size): New. + * langhooks.h (struct lang_hooks_for_decls): Add hook. + * omp-low.cc (scan_sharing_clauses, lower_omp_target): + Handle GOMP_MAP_FIRSTPRIVATE for array descriptors. + +2022-05-23 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from + XOR/IOR case. Account for two instructions for double-word + operations. In case of vector pandn, account for single + instruction. Likewise for integer andn with TARGET_BMI. + <case NOT>: Vector NOT requires more than 1 instruction (pxor). + <case NEG>: Double-word negation requires 3 instructions. + +2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com> + + * common/config/riscv/riscv-common.cc (riscv_supported_std_ext): + Fix "K" extension prefix to be placed before "J". + * config/riscv/arch-canonicalize: Likewise. + +2022-05-23 liuhongt <hongtao.liu@intel.com> + + * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr + <-> mask cost from 5 to 6. + (icelake_cost): Ditto. + +2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com> + + * config/aarch64/aarch64.md + (and_<SHIFT:optab><mode>3_compare0): Support rotate left. + (and_<SHIFT:optab>si3_compare0_uxtw): Likewise. + (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise. + (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise. + (one_cmpl_<optab><mode>2): Likewise. + (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise. + (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern. + (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left. + (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise. + (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise. + (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise. + (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise. + (and_<SHIFT:optab><mode>3nr_compare0): Likewise. + (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate. + (rolsi3_insn_uxtw): New pattern. + * config/aarch64/iterators.md (SHIFT): Add rotate left. + (SHIFT_no_rotate): Add new iterator. + (SHIFT:shift): Print rotate left as ror. + (is_rotl): Add test for left rotate. + +2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com> + + * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch + processing. Add support for architectural extensions. + * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove + AARCH64_CPU_DEFAULT_FLAGS. + (TARGET_CPU_NBITS): Remove. + (TARGET_CPU_MASK): Remove. + * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define. + (get_tune_cpu): Assert CPU is always valid. + (get_arch): Assert architecture is always valid. + (aarch64_override_options): Cleanup CPU selection code and simplify logic. + (aarch64_option_restore): Remove unnecessary checks on tune. + +2022-05-20 David Malcolm <dmalcolm@redhat.com> + + * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of + "FINAL" and "OVERRIDE" with "final" and "override". + * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. + * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise. + * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. + * diagnostic-path.h: Likewise. + * digraph.cc: Likewise. + * gcc-rich-location.h: Likewise. + * gimple-array-bounds.cc: Likewise. + * gimple-loop-versioning.cc: Likewise. + * gimple-range-cache.cc: Likewise. + * gimple-range-cache.h: Likewise. + * gimple-range-fold.cc: Likewise. + * gimple-range-fold.h: Likewise. + * gimple-range-tests.cc: Likewise. + * gimple-range.h: Likewise. + * gimple-ssa-evrp.cc: Likewise. + * input.cc: Likewise. + * json.h: Likewise. + * read-rtl-function.cc: Likewise. + * tree-complex.cc: Likewise. + * tree-diagnostic-path.cc: Likewise. + * tree-ssa-ccp.cc: Likewise. + * tree-ssa-copy.cc: Likewise. + * tree-vrp.cc: Likewise. + * value-query.h: Likewise. + * vr-values.h: Likewise. + +2022-05-20 Marcel Vollweiler <marcel@codesourcery.com> + + * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and + target_memcpy_rect_async to omp_runtime_apis array. + +2022-05-20 Christophe Lyon <christophe.lyon@arm.com> + + * doc/sourcebuild.texi (Decimal floating point attributes): Document + dfp_bid effective-target. + +2022-05-20 Christophe Lyon <christophe.lyon@arm.com> + + * config/aarch64/aarch64.cc + (aarch64_split_128bit_move): Handle DFP modes. + (aarch64_mode_valid_for_sched_fusion_p): Likewise. + (aarch64_classify_address): Likewise. + (aarch64_legitimize_address_displacement): Likewise. + (aarch64_reinterpret_float_as_int): Likewise. + (aarch64_float_const_zero_rtx_p): Likewise. + (aarch64_can_const_movi_rtx_p): Likewise. + (aarch64_anchor_offset): Likewise. + (aarch64_secondary_reload): Likewise. + (aarch64_rtx_costs): Likewise. + (aarch64_legitimate_constant_p): Likewise. + (aarch64_gimplify_va_arg_expr): Likewise. + (aapcs_vfp_sub_candidate): Likewise. + (aarch64_vfp_is_call_or_return_candidate): Likewise. + (aarch64_output_scalar_simd_mov_immediate): Likewise. + (aarch64_gen_adjusted_ldpstp): Likewise. + (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled. + * config/aarch64/aarch64.md + (movsf_aarch64): Use SFD iterator and rename into + mov<mode>_aarch64. + (movdf_aarch64): Use DFD iterator and rename into + mov<mode>_aarch64. + (movtf_aarch64): Use TFD iterator and rename into + mov<mode>_aarch64. + (split pattern for move TF mode): Use TFD iterator. + * config/aarch64/iterators.md + (GPF_TF_F16_MOV): Add DFP modes. + (SFD, DFD, TFD): New iterators. + (GPF_TF): Add DFP modes. + (TX, DX, DX2): Likewise. + +2022-05-20 Christophe Lyon <christophe.lyon@arm.com> + + * configure: Regenerate. + +2022-05-19 Roger Sayle <roger@nextmovesoftware.com> + + PR middle-end/98865 + * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y + when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and + likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits. + +2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com> + + * config/rs6000/rs6000-builtins.def: Rephrase + to remove RS6000_BTC_SPECIAL from comment. + * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY, + RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY, + RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK, + RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS, + RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC, + RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP, + RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR, + RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID, + RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE, + RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT, + RS6000_BTM_ALWAYS): Delete. + +2022-05-19 Richard Biener <rguenther@suse.de> + + * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut + computation of the new value. + +2022-05-19 Richard Biener <rguenther@suse.de> + + * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove. + (add_to_value): Use get_expression_id. + (bitmap_insert_into_set): Likewise. + (bitmap_value_insert_into_set): Likewise. + +2022-05-19 David Malcolm <dmalcolm@redhat.com> + + * doc/invoke.texi (-fanalyzer-checker=): Add + -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to + the list of analyzer warnings disabled by + -fanalyzer-checker=taint. + +2022-05-19 Jakub Jelinek <jakub@redhat.com> + + PR debug/105630 + * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for + global vars without symtab node even when they have DECL_RTL + set. + +2022-05-19 Jakub Jelinek <jakub@redhat.com> + + PR c/105635 + * pointer-query.cc (gimple_parm_array_size): Return NULL if var + doesn't have pointer or reference type. + +2022-05-18 Marek Polacek <polacek@redhat.com> + + PR c/105131 + * doc/invoke.texi: Document -Wenum-int-mismatch. + +2022-05-18 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/gnu-user-common.h (defined): Only define + TARGET_CAN_SPLIT_STACK for glibc targets. + * config/i386/gnu.h (defined): Ditto. + +2022-05-18 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size + is wider than word_mode, a multiplication costs three word_mode + multiplications and two word_mode additions. + +2022-05-18 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (define_split): Split *andsi_1 + and *andn_si_ccno after reload with -Oz. + +2022-05-18 Frederik Harwath <frederik@codesourcery.com> + + * graphite-scop-detection.cc (scop_detection::can_represent_loop): + Output reason for failure to dump file. + (scop_detection::harmful_loop_in_region): Likewise. + (scop_detection::graphite_can_represent_expr): Likewise. + (scop_detection::stmt_has_simple_data_refs_p): Likewise. + (scop_detection::stmt_simple_for_scop_p): Likewise. + (print_sese_loop_numbers): New function. + (scop_detection::add_scop): Use from here. + +2022-05-18 liuhongt <hongtao.liu@intel.com> + + PR middle-end/103462 + * match.pd (bitwise_induction_p): New match. + * tree-scalar-evolution.cc (gimple_bitwise_induction_p): + Declare. + (analyze_and_compute_bitwise_induction_effect): New function. + (enum bit_op_kind): New enum. + (final_value_replacement_loop): Enhanced to handle bitwise + induction. + +2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org> + + PR target/95737 + * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New. + +2022-05-18 liuhongt <hongtao.liu@intel.com> + + PR target/104375 + * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New + define_insn. + +2022-05-18 liuhongt <hongtao.liu@intel.com> + + PR target/104610 + * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest + for QImode when code is EQ or NE. + * config/i386/i386.md (cbranchoi4): New expander. + +2022-05-18 Peter Bergner <bergner@linux.ibm.com> + Segher Boessenkool <segher@kernel.crashing.org> + + PR target/105556 + * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>, + mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>, + mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>, + mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa". + Update other operands accordingly. + +2022-05-17 Marek Polacek <polacek@redhat.com> + + * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE. + +2022-05-17 Pat Haugen <pthaugen@linux.ibm.com> + + PR target/99685 + * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump + register count when not splitting IEEE 128-bit Complex. + +2022-05-17 Tobias Burnus <tobias@codesourcery.com> + + * omp-low.cc (check_omp_nesting_restrictions): Skip warning for + target inside target if inner is reverse offload. + +2022-05-17 Tobias Burnus <tobias@codesourcery.com> + + * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE. + * config/nvptx/mkoffload.cc (process): Likewise. + +2022-05-17 Andrew MacLeod <amacleod@redhat.com> + + * Makefile.in (OBJS): Add gimple-range-side-effect.o. + * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete. + (non_null_ref::~non_null_ref): Delete. + (non_null_ref::set_nonnull): Delete. + (non_null_ref::non_null_deref_p): Delete. + (non_null_ref::process_name): Delete. + (ranger_cache::ranger_cache): Initialize m_exit object. + (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull. + (ranger_cache::range_from_dom): Use side_effect class and m_exit object. + (ranger_cache::update_to_nonnull): Delete. + (non_null_loadstore): Delete. + (ranger_cache::block_apply_nonnull): Delete. + (ranger_cache::apply_side_effects): New. + * gimple-range-cache.h (class non_null_ref): Delete. + (non_null_ref::adjust_range): Delete. + (class ranger_cache): Adjust prototypes, add side effect manager. + * gimple-range-path.cc (path_range_query::range_defined_in_block): Use + side effect manager for queries. + (path_range_query::adjust_for_non_null_uses): Ditto. + * gimple-range-path.h (class path_range_query): Delete non_null_ref. + * gimple-range-side-effect.cc: New. + * gimple-range-side-effect.h: New. + * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor. + (gimple_ranger::range_of_expr): Check def block for override value. + (gimple_ranger::range_on_entry): Don't scan dominators for non-null. + (gimple_ranger::range_on_edge): Check for outgoing side-effects. + (gimple_ranger::register_side_effects): Call apply_side_effects. + (enable_ranger): Update contructor. + * gimple-range.h (class gimple_ranger): Update prototype. + (enable_ranger): Update prototype. + * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag. + +2022-05-17 Giuliano Belinassi <gbelinassi@suse.de> + + PR c++/105169 + * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case. + * varasm.cc (switch_to_comdat_section): New + (handle_vtv_comdat_section): Call switch_to_comdat_section. + * varasm.h: Declare switch_to_comdat_section. + +2022-05-17 Richard Biener <rguenther@suse.de> + + * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do + not clear bb->aux of the copied blocks. + +2022-05-17 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/105458 + * value-relation.cc (path_oracle::register_relation): Merge, then check + for equivalence. + +2022-05-17 Uroš Bizjak <ubizjak@gmail.com> + + PR target/105624 + Revert: + * config/i386/i386.md: Remove constraints when used with + const_int_operand, const0_operand, const_1_operand, constm1_operand, + const8_operand, const128_operand, const248_operand, const123_operand, + const2367_operand, const1248_operand, const359_operand, + const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand, + const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand, + const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand, + const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand, + const_0_to_255_mul_8_operand, const_1_to_31_operand, + const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand, + const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand, + const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand, + const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand, + const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand, + const_24_to_27_operand and const_28_to_31_operand. + * config/i386/mmx.md: Ditto. + * config/i386/sse.md: Ditto. + * config/i386/subst.md: Ditto. + * config/i386/sync.md: Ditto. + +2022-05-17 Thomas Schwinge <thomas@codesourcery.com> + + * diagnostic.cc: Don't advise to call 'abort' instead of + 'internal_error'. + * system.h: Advise to call 'internal_error' instead of 'abort' or + 'fancy_abort'. + +2022-05-17 Frederik Harwath <frederik@codesourcery.com> + + * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and + a reference to a variable which does not exist. + * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo + in comment. + +2022-05-17 Frederik Harwath <frederik@codesourcery.com> + + * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ... + (isl_id_for_parameter): ... this new function name. + (build_scop_context): Adjust function use. + +2022-05-17 Tobias Burnus <tobias@codesourcery.com> + + PR target/105602 + * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'. + * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise. + +2022-05-17 Jakub Jelinek <jakub@redhat.com> + + * tree-core.h (enum omp_clause_depend_kind): Add + OMP_CLAUSE_DEPEND_INOUTSET. + * tree-pretty-print.cc (dump_omp_clause): Handle + OMP_CLAUSE_DEPEND_INOUTSET. + * gimplify.cc (gimplify_omp_depend): Likewise. + * omp-low.cc (lower_depend_clauses): Likewise. + +2022-05-17 Jakub Jelinek <jakub@redhat.com> + + PR target/105613 + * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use + andv4si3 only for EQ, for NE use iorv4si3 instead. + +2022-05-17 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105618 + * tree-ssa-sink.cc (statement_sink_location): For virtual + PHI uses ignore those defining the used virtual operand. + +2022-05-17 Jakub Jelinek <jakub@redhat.com> + + * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix: + hanlde -> handle. Fix up comment formatting. + +2022-05-17 liuhongt <hongtao.liu@intel.com> + + PR target/105033 + * config/i386/sse.md (*vec_concatv4si): Extend to .. + (*vec_concat<mode>): .. V16QI and V8HImode. + (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split. + (*vec_concatv8hi_permt2): Ditto. + +2022-05-17 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/105591 + * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp + vec_perm_expr index. + +2022-05-16 Jason Merrill <jason@redhat.com> + + PR c/105492 + * attribs.cc (decl_attributes): Fix broken typedefs here. + +2022-05-16 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/105103 + * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o. + * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch, + -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and + -Wanalyzer-va-list-use-after-va-end. + +2022-05-16 Richard Biener <rguenther@suse.de> + + * gimple-match.h (gimple_build): Move code_helper overloads ... + * gimple-fold.h (gimple_build): ... here. + (gimple_build): Transition to new worker API. Provide + overloads from sequence-based API. + (gimple_convert): Likewise. + (gimple_convert_to_ptrofftype): Likewise. + (gimple_build_vector_from_val): Likewise. + (gimple_build_vector): Likewise. + (gimple_build_round_up): Likewise. + * gimple-fold.cc (gimple_build_insert_seq): New helper. + (gimple_build): Use it. Transition combined_fn and code_helper + API parts. + (gimple_convert): Transition to new worker API. + (gimple_convert_to_ptrofftype): Likewise. + (gimple_build_vector_from_val): Likewise. + (gimple_build_vector): Likewise. + (gimple_build_round_up): Likewise. + +2022-05-16 Richard Biener <rguenther@suse.de> + + * gimple-match.h (code_helper): Move class ... + * tree.h (code_helper): ... here. + +2022-05-16 Martin Liska <mliska@suse.cz> + + * opts-global.cc (write_langs): Add comment. + +2022-05-16 Eric Botcazou <ebotcazou@adacore.com> + + * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical + instead of a bitwise negation. + <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR. + +2022-05-16 Martin Liska <mliska@suse.cz> + + * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE. + (decls_mismatched_attributes): Likewise. + * builtins.cc (c_strlen): Likewise. + * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise. + * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise. + * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise. + (aarch64_init_simd_builtin_types): Likewise. + (aarch64_init_builtin_rsqrt): Likewise. + * config/aarch64/aarch64.cc (is_madd_op): Likewise. + * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise. + (arm_init_simd_builtin_types): Likewise. + * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise. + (c_prefix): Likewise. + (main): Likewise. + * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise. + * config/darwin-c.cc (darwin_register_frameworks): Likewise. + * config/gcn/mkoffload.cc (process_obj): Likewise. + * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise. + (fold_builtin_cpu): Likewise. + * config/m32c/m32c.cc (PUSHM_N): Likewise. + * config/nvptx/mkoffload.cc (process): Likewise. + * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise. + * config/s390/s390.cc (NR_C_MODES): Likewise. + * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise. + (create_insn_code_compression_table): Likewise. + * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise. + * diagnostic-format-json.cc (json_from_expanded_location): Likewise. + * dwarf2out.cc (ARRAY_SIZE): Likewise. + * genhooks.cc (emit_documentation): Likewise. + (emit_init_macros): Likewise. + * gimple-ssa-sprintf.cc (format_floating): Likewise. + * gimple-ssa-warn-access.cc (memmodel_name): Likewise. + * godump.cc (keyword_hash_init): Likewise. + * hash-table.cc (hash_table_higher_prime_index): Likewise. + * input.cc (for_each_line_table_case): Likewise. + * ipa-free-lang-data.cc (free_lang_data): Likewise. + * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise. + * optc-save-gen.awk: Likewise. + * spellcheck.cc (test_metric_conditions): Likewise. + * tree-vect-slp-patterns.cc (sizeof): Likewise. + (ARRAY_SIZE): Likewise. + * tree.cc (build_common_tree_nodes): Likewise. + +2022-05-16 Martin Liska <mliska@suse.cz> + + * opts-global.cc (write_langs): Allocate at least one byte. + +2022-05-16 Richard Biener <rguenther@suse.de> + + * match.pd (A cmp B ? A : B -> min/max): New patterns + carried over from fold_cond_expr_with_comparison. + +2022-05-16 liuhongt <hongtao.liu@intel.com> + + PR target/105587 + * config/i386/i386-expand.cc + (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] == + d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1. + +2022-05-15 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md: Remove constraints when used with + const_int_operand, const0_operand, const_1_operand, constm1_operand, + const8_operand, const128_operand, const248_operand, const123_operand, + const2367_operand, const1248_operand, const359_operand, + const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand, + const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand, + const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand, + const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand, + const_0_to_255_mul_8_operand, const_1_to_31_operand, + const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand, + const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand, + const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand, + const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand, + const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand, + const_24_to_27_operand and const_28_to_31_operand. + * config/i386/mmx.md: Ditto. + * config/i386/sse.md: Ditto. + * config/i386/subst.md: Ditto. + * config/i386/sync.md: Ditto. + +2022-05-13 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2. + For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed + by a pshufd and pand. + (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode + vector equality as a V2DImode vector comparison (see above), + followed by a pshufd and pand. + +2022-05-13 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/83907 + * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo + for memset with an constant char value. + (handle_store): Improved handling of stores with a first byte + of zero, but not storing_all_zeros_p. + +2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu> + Manolis Tsamis <manolis.tsamis@vrull.eu> + + * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement. + (CTZ_DEFINED_VALUE_AT_ZERO): Same. + * doc/sourcebuild.texi: add documentation for RISC-V specific + test target keywords + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/105597 + * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead + of the lhs and make sure it is not undefined. + +2022-05-13 Sebastian Pop <spop@amazon.com> + + PR target/105162 + * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension + of str array. + * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call + memmodel_from_int and handle MEMMODEL_SYNC_*. + (DEF0): Add __aarch64_*_sync functions. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_* + enumerated values. + * gimple-range-path.cc (maybe_register_phi_relation): Ditto. + * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use + new VREL enumerated values. + (*::lhs_op2_relation): Ditto. + (*::op1_op2_relation): Ditto. + (*::fold_range): Use new VREL enumerated values. + (minus_op1_op2_relation_effect): Ditto. + (range_relational_tests): Ditto. + * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING. + (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return + relation_kind. + (*_op1_op2_relation): Return relation_kind. + (relop_early_resolve): Use VREL_UNDEFINED. + * value-query.cc (range_query::query_relation): Use VREL_VARYING. + * value-relation.cc (VREL_LAST): Change enumerated value. + (vrel_range_assert): Delete. + (print_relation): Remove range assert. + (rr_negate_table): Adjust table to use new enumerated values.. + (relation_negate): Remove range assert. + (rr_swap_table): Adjust. + (relation_swap): Remove range assert. + (rr_intersect_table): Adjust. + (relation_intersect): Remove range assert. + (rr_union_table): Adjust. + (relation_union): Remove range assert. + (rr_transitive_table): Adjust. + (relation_transitive): Remove range assert. + (equiv_oracle::query_relation): Use new VREL enumerated values. + (equiv_oracle::register_relation): Ditto. + (relation_oracle::register_stmt): Ditto. + (dom_oracle::set_one_relation): Ditto. + (dom_oracle::register_transitives): Ditto. + (dom_oracle::query_relation): Ditto. + (path_oracle::register_relation): Ditto. + (path_oracle::query_relation): Ditto. + * value-relation.h (enum relation_kind_t): New relation_kind. + (*_op1_op2_relation): Adjust prototypes. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-edge.cc (calc_switch_ranges): Check union return value. + * value-range.cc (irange::legacy_verbose_union_): Add return value. + (irange::irange_single_pair_union): New. + (irange::irange_union): Add return value. + * value-range.h (class irange): Adjust prototypes. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + * value-range.cc (irange::legacy_verbose_intersect): Add return value. + (irange::irange_contains_p): New. + (irange::irange_intersect): Add return value. + * value-range.h (class irange): Adjust prototypes. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::get_global_range): Return the + had_global value instead. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/104547 + * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add + the op1/op2 relation to the relation call. + * range-op.cc (*::lhs_op1_relation): Add param. + (*::lhs_op2_relation): Ditto. + (operator_minus::lhs_op1_relation): New. + (range_relational_tests): Add relation param. + * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range.cc (gimple_ranger::register_side_effects): First check + if the DEF should be exported as a global. + * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects, + which will export globals. + (execute_ranger_vrp): Remove call to export_global_ranges. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + * value-relation.cc (path_oracle::reset_path): Clear killing_defs. + +2022-05-13 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with + worlist truncated. + (ranger_cache::entry_range): Add rfd_mode parameter. + (ranger_cache::exit_range): Ditto. + (ranger_cache::edge_range): New. Incorporate from range_on_edge. + (ranger_cache::range_of_expr): Adjust call to entry_range. + (ranger_cache::range_on_edge): Split to edge_range and call. + (ranger_cache::fill_block_cache): Always invoke range_from_dom. + (ranger_cache::range_from_dom): Make reentrant, add search mode, handle + mutiple predecessors. + (ranger_cache::update_to_nonnull): Adjust call to exit_range. + * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust + prototypes. + +2022-05-13 Alexandre Oliva <oliva@adacore.com> + + * gimple-harden-conditionals.cc: Include sbitmap.h. + (pass_harden_conditional_branches::execute): Skip new blocks. + (pass_harden_compares::execute): Likewise. + +2022-05-13 Richard Earnshaw <rearnsha@arm.com> + + PR target/105463 + * config/arm/mve.md (*movmisalign<mode>_mve_store): Use + mve_memory_operand. + (*movmisalign<mode>_mve_load): Likewise. + * config/arm/vec-common.md (movmisalign<mode>): Convert to generator + form... + (@movmisalign<mode>): ... thus. Use generic predicates and then + rework operands if they are not valid. For MVE rework to a + narrower element size if the alignment is not high enough. + +2022-05-13 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM + when there is no write-back. Fix use when strict is true. + +2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro + definition. + +2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> + + * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi, + extzvsi_internal): Rename from extv, extv_internal, extzv and + extzv_internal, respectively. + +2022-05-13 Eric Botcazou <ebotcazou@adacore.com> + + * tree-sra.cc (sra_modify_assign): Check that scalar storage order + is the same on the LHS and RHS before rewriting one with the model + of the other. + +2022-05-13 Richard Biener <rguenther@suse.de> + + * gimple-fold.cc (gimple_build): Adjust for new + main API. + * gimple-fold.h (gimple_build): New main APIs with + iterator, insert direction and iterator update. + (gimple_build): New forwarder template. + (clear_padding_type_may_have_padding_p): Remove. + (clear_type_padding_in_mask): Likewise. + (arith_overflowed_p): Likewise. + * fold-const.h (clear_padding_type_may_have_padding_p): Declare. + (clear_type_padding_in_mask): Likewise. + (arith_overflowed_p): Likewise. + * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API. + (gimplify_build2): Likewise. + (gimplify_build1): Likewise. + * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra + compare stmt. + * gengtype.cc (open_base_files): Re-order includes. + * builtins.cc: Re-order gimple-fold.h include. + * calls.cc: Likewise. + * cgraphbuild.cc: Likewise. + * cgraphunit.cc: Likewise. + * config/rs6000/rs6000-builtin.cc: Likewise. + * config/rs6000/rs6000-call.cc: Likewise. + * config/rs6000/rs6000.cc: Likewise. + * config/s390/s390.cc: Likewise. + * expr.cc: Likewise. + * fold-const.cc: Likewise. + * function-tests.cc: Likewise. + * gimple-match-head.cc: Likewise. + * gimple-range-fold.cc: Likewise. + * gimple-ssa-evrp-analyze.cc: Likewise. + * gimple-ssa-evrp.cc: Likewise. + * gimple-ssa-sprintf.cc: Likewise. + * gimple-ssa-warn-access.cc: Likewise. + * gimplify.cc: Likewise. + * graphite-isl-ast-to-gimple.cc: Likewise. + * ipa-cp.cc: Likewise. + * ipa-devirt.cc: Likewise. + * ipa-prop.cc: Likewise. + * omp-low.cc: Likewise. + * pointer-query.cc: Likewise. + * range-op.cc: Likewise. + * tree-cfg.cc: Likewise. + * tree-if-conv.cc: Likewise. + * tree-inline.cc: Likewise. + * tree-object-size.cc: Likewise. + * tree-ssa-ccp.cc: Likewise. + * tree-ssa-dom.cc: Likewise. + * tree-ssa-forwprop.cc: Likewise. + * tree-ssa-ifcombine.cc: Likewise. + * tree-ssa-loop-ivcanon.cc: Likewise. + * tree-ssa-math-opts.cc: Likewise. + * tree-ssa-pre.cc: Likewise. + * tree-ssa-propagate.cc: Likewise. + * tree-ssa-reassoc.cc: Likewise. + * tree-ssa-sccvn.cc: Likewise. + * tree-ssa-strlen.cc: Likewise. + * tree-ssa.cc: Likewise. + * value-pointer-equiv.cc: Likewise. + * vr-values.cc: Likewise. + +2022-05-13 Alexandre Oliva <oliva@adacore.com> + + PR rtl-optimization/105455 + * gimple-harden-conditionals.cc (insert_check_and_trap): Set + probabilities for newly-conditional edges. + +2022-05-13 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/102583 + * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a + contiguous stride in the VEC_PERM_EXPR. + +2022-05-12 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/105577 + * dse.cc (rest_of_handle_dse): Make sure to purge dead EH + edges before running fast DCE via df_analyze. + +2022-05-12 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105562 + * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate + against all CLOBBER defs if there's not an obvious must-alias + and we are not doing redundant store elimination. + (vn_walk_cb_data::redundant_store_removal_p): New field. + (vn_reference_lookup_pieces): Initialize it. + (vn_reference_lookup): Add argument to specify if we are + doing redundant store removal. + (eliminate_dom_walker::eliminate_stmt): Specify we do. + * tree-ssa-sccvn.h (vn_reference_lookup): Adjust. + +2022-05-12 Haochen Jiang <haochen.jiang@intel.com> + + PR target/104371 + * config/i386/sse.md (vi1avx2const): New define_mode_attr. + (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter): + New define_split pattern. + +2022-05-12 Jakub Jelinek <jakub@redhat.com> + + * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr + if null_pointer_node. + (gimplify_scan_omp_clauses): Likewise. + * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node + as omp_all_memory. + +2022-05-11 Patrick Palka <ppalka@redhat.com> + + * tree.h (TREE_VEC_BEGIN): Define. + (TREE_VEC_END): Correct 'length' member access. + (class tree_vec_range): Define. + +2022-05-11 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000.md: Use wa instead of <Fv>. + +2022-05-11 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000.md: Use d instead of <Ff>. + +2022-05-11 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/constraints.md (register_constraint "f"): Use + RS6000_CONSTRAINT_d. + * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle + RS6000_CONSTRAINT_f. + (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit. + * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete + RS6000_CONSTRAINT_d. + +2022-05-11 Richard Biener <rguenther@suse.de> + + * gimple-fold.h (gimple_build): Use variadic template + functions for the gimple_build API forwarders without + location_t argument. + +2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR middle-end/70090 + * asan.cc (initialize_sanitizer_builtins): Register + __builtin_dynamic_object_size if necessary. + +2022-05-11 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/105559 + * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END + for non-debug insns. + +2022-05-11 Richard Biener <rguenther@suse.de> + + * generic-match-head.cc: Include tree-eh.h. + * match.pd ((cond ...) cmp X): New simplification inspired + by fold_binary_op_with_conditional_arg. + (eq/ne (cmp ...) true/false): Likewise. + +2022-05-11 Thomas Schwinge <thomas@codesourcery.com> + + * doc/install.texi: Don't document '--with-hsa-runtime', + '--with-hsa-runtime-include', '--with-hsa-runtime-lib'. + +2022-05-11 Martin Liska <mliska@suse.cz> + + PR other/105527 + * doc/install.texi: Document the configure option --with-zstd. + +2022-05-11 Martin Liska <mliska@suse.cz> + + * common/config/i386/cpuinfo.h (has_cpu_feature): Directly + compute index in cpu_features2. + (set_cpu_feature): Likewise. + * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove + loop for cpu_features2 and use NOP_EXPRs. + +2022-05-11 Richard Biener <rguenther@suse.de> + + PR bootstrap/105551 + * opts.cc (finish_options): Also disable var-tracking if + !DWARF2_DEBUGGING_INFO. + +2022-05-11 liuhongt <hongtao.liu@intel.com> + + PR target/104915 + * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New + pre_reload define_insn_and_split. + (*vec_setv2di_0_zero_extendhi_1): Ditto. + (*vec_set<mode>_0_zero_extendsi): Ditto. + (*vec_setv2di_0_zero_extendsi_1): Ditto. + (ssewvecmode): New mode attr. + (ssewvecmodelower): Ditto. + (ssepackmodelower): Ditto. + +2022-05-11 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/constraints.md (register constraint v): Use + rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS. + +2022-05-11 Martin Liska <mliska@suse.cz> + + PR target/105355 + * config/riscv/riscv.opt: Remove Separate from + -msmall-data-limit=. + * optc-gen.awk: Report error for the described situation. + * gcc.cc: Use Separate syntax. + * opts.cc (gen_command_line_string): Change option name. + +2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org> + + PR target/105414 + * match.pd (minmax): Skip constant folding for fmin/fmax when both + arguments are sNaN or one is sNaN and another is NaN. + +2022-05-10 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105528 + * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove + set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment. + +2022-05-10 Segher Boessenkool <segher@kernel.crashing.org> + + * doc/md.texi (Defining Mode Iterators): Correct example replacement + text. + +2022-05-10 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New + constants. + (fmin<mode>3, fmax<mode>3): New insns. + +2022-05-10 Richard Biener <rguenther@suse.de> + + * tree-if-conv.cc (fold_build_cond_expr): Use + match-and-simplify to simplify the condition. + (ifcvt_follow_ssa_use_edges): Remove. + (predicate_scalar_phi): Use follow_all_ssa_edges. + +2022-05-10 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100400 + * omp-oacc-kernels-decompose.cc + (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly + call 'internal_error'. + +2022-05-10 Richard Biener <rguenther@suse.de> + + PR middle-end/105537 + * toplev.cc (process_options): Move flag_var_tracking + handling ... + * opts.cc (finish_options): ... here. + +2022-05-10 Martin Liska <mliska@suse.cz> + + * basic-block.h (struct basic_block_d): Use void * + instead PTR. + * cfgloop.h: Likewise. + * cgraph.h: Likewise. + * gengtype-state.cc (state_ident_by_name): Likewise. + (record_type): Likewise. + (read_state_already_seen_type): Likewise. + * gengtype.cc (dump_type): Likewise. + (input_file_by_name): Likewise. + (main): Likewise. + * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise. + * ipa-utils.h (struct ipa_dfs_info): Likewise. + * plugin.cc (htab_hash_plugin): Likewise. + +2022-05-10 Richard Biener <rguenther@suse.de> + + * flags.h (dwarf_debuginfo_p): Add opts argument, guard + API with !GENERATOR_FILE. + * opts.cc (global_options): Poison. + (global_options_set): Likewise. + (finish_options): Refer to options via opts. + +2022-05-10 Uroš Bizjak <ubizjak@gmail.com> + Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode + alternative when optimizing for size and the immediate operand is + const_0_to_127_operand. + (*andqi_2_maybe_si): Likewise. + * config/i386/predicates.md (const_0_to_127_operand): New predicate. + +2022-05-10 Roger Sayle <roger@nextmovesoftware.com> + + * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec + "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1, + can't be negative. + +2022-05-10 Eric Botcazou <ebotcazou@adacore.com> + + PR target/105292 + * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return + true only for 8-byte vector modes. + +2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR middle-end/70090 + * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE. + (instrument_object_size): Get dynamic object size expression. + +2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com> + + PR preprocessor/101168 + * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand): + Avoid empty identifier. + +2022-05-09 Qing Zhao <qing.zhao@oracle.com> + + PR target/101891 + * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode + as a generic MMX mode instead of V4HImode. + (zero_all_mm_registers): Use SET to zero instead of MOV for + zeroing scratch registers. + (ix86_zero_call_used_regs): Likewise. + +2022-05-09 liuhongt <hongtao.liu@intel.com> + + PR target/105354 + * config/i386/i386-expand.cc + (expand_vec_perm_pslldq_psrldq_por): New function. + (ix86_expand_vec_perm_const_1): Try + expand_vec_perm_pslldq_psrldq_por for both 3-instruction and + 4/5-instruction sequence. + +2022-05-09 Martin Liška <mliska@suse.cz> + + * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT. + * system.h (STATIC_ASSERT): Define as static_assert for C++ + and fallback to array index in C. + +2022-05-09 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105517 + * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated + offset can be represented in the POINTER_PLUS_EXPR IL. + (vn_reference_insert): Likewise. + * poly-int.h (sext_hwi): Add poly version of sext_hwi. + +2022-05-09 Richard Biener <rguenther@suse.de> + + * match.pd: Remove #if GIMPLE guards around ! using patterns. + +2022-05-09 liuhongt <hongtao.liu@intel.com> + + PR target/105072 + * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1): + New define_insn. + (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload + define_insn_and_split. + +2022-05-09 Alex Coplan <alex.coplan@arm.com> + + * cgraph.cc (cgraph_node::get_create): Don't dump if the current + symtab state is PARSING. + +2022-05-09 Martin Liska <mliska@suse.cz> + + * system.h (LIKELY): Define. + (UNLIKELY): Likewise. + * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY + macros. + * dse.cc (set_position_unneeded): Likewise. + (set_all_positions_unneeded): Likewise. + (any_positions_needed_p): Likewise. + (all_positions_needed_p): Likewise. + * expmed.cc (flip_storage_order): Likewise. + * genmatch.cc (dt_simplify::gen_1): Likewise. + * ggc-common.cc (gt_pch_save): Likewise. + * print-rtl.cc: Likewise. + * rtl-iter.h (T>::array_type::~array_type): Likewise. + (T>::next): Likewise. + * rtl-ssa/internals.inl: Likewise. + * rtl-ssa/member-fns.inl: Likewise. + * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise. + (rtx_properties::try_to_add_dest): Likewise. + * rtlanal.h (growing_rtx_properties::repeat): Likewise. + (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise. + * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise. + * sort.cc (likely): Likewise. + (mergesort): Likewise. + * wide-int.h (wi::eq_p): Likewise. + (wi::ltu_p): Likewise. + (wi::cmpu): Likewise. + (wi::bit_and): Likewise. + (wi::bit_and_not): Likewise. + (wi::bit_or): Likewise. + (wi::bit_or_not): Likewise. + (wi::bit_xor): Likewise. + (wi::add): Likewise. + (wi::sub): Likewise. + +2022-05-09 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/arch-canonicalize: Handle g correctly. + +2022-05-07 Marek Polacek <polacek@redhat.com> + + PR c++/101833 + PR c++/47634 + * tree-core.h (struct attribute_spec): Update comment for HANDLER. + +2022-05-06 Jason Merrill <jason@redhat.com> + + * diagnostic-color.cc: Add fnname and targs color entries. + * doc/invoke.texi: Document them. + +2022-05-06 Jason Merrill <jason@redhat.com> + + * vec.h (vec::iterate): Fix comment. + +2022-05-06 Michael Meissner <meissner@linux.ibm.com> + + PR target/102059 + * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion + and -mpower10-fusion options for inlining purposes. + +2022-05-06 Christophe Lyon <christophe.lyon@arm.com> + + * config/aarch64/iterators.md (GPF_TF_F16): Delete. + +2022-05-06 Marcel Vollweiler <marcel@codesourcery.com> + + * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to + omp_runtime_apis array. + +2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com> + + * omp-low.cc (omp_maybe_offloaded_ctx): New prototype. + (scan_sharing_clauses): Check a restriction on allocate clause. + +2022-05-05 Sandra Loosemore <sandra@codesourcery.com> + + * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED + and ORDERED clause conflict errors. Add check for GRAINSIZE and + NUM_TASKS on TASKLOOP. + +2022-05-05 Martin Liska <mliska@suse.cz> + + * genautomata.cc (create_composed_state): Remove dead code. + * graphite-poly.cc (print_pdrs): Likewise. + * lto-wrapper.cc (run_gcc): Likewise. + * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes): + Likewise. + +2022-05-05 Martin Liska <mliska@suse.cz> + + * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with + PROF_*. + (gimple_gen_time_profiler): Likewise. + +2022-05-05 Martin Liska <mliska@suse.cz> + + * value-prof.cc (stream_out_histogram_value): Remove sanity + checking. + +2022-05-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104162 + * tree-ssa-sccvn.cc (vn_reference_lookup): Handle + &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset + becomes invariant. + (vn_reference_insert): Likewise. + +2022-05-05 Richard Biener <rguenther@suse.de> + + * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer + to real_value field. + (tree_real_cst::value): Add real_value field. + * tree.h (TREE_REAL_CST_PTR): Adjust. + * tree.cc (build_real): Remove separate allocation. + * tree-streamer-in.cc (unpack_ts_real_cst_value_fields): + Likewise. + +2022-05-05 Richard Biener <rguenther@suse.de> + + * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing + divisions with undefined overflow unconditionally. + (pass_tree_ifcombine::execute): Rewrite stmts with undefined + overflow to defined. + +2022-05-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105484 + * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return + whether the CFG changed. + (gimple_expand_vec_exprs): When the CFG changed, clean it up. + +2022-05-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104595 + * tree-vect-patterns.cc (vect_recog_bool_pattern): For + COND_EXPR do not fail if check_bool_pattern returns false. + +2022-05-04 Tobias Burnus <tobias@codesourcery.com> + + * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list + item that is in an outer data-sharing clause. + +2022-05-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104658 + * tree-vect-slp.cc (vect_slp_convert_to_external): Do not + create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector + type on nodes we promote. + (vectorizable_bb_reduc_epilogue): Deal with externalized + root. + * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do + not allow VECTOR_BOOLEAN_TYPE_P extern defs. + +2022-05-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103116 + * tree-vect-stmts.cc (get_group_load_store_type): Handle the + case we need peeling for gaps even though GROUP_GAP is zero. + +2022-05-04 Martin Liska <mliska@suse.cz> + + * gengtype-state.cc (read_a_state_token): Remove dead code. + * ipa-profile.cc (ipa_profile_read_summary_section): Likewise. + +2022-05-04 Richard Biener <rguenther@suse.de> + + * gimplify.cc (gimplify_init_constructor): First gimplify, + then simplify the result to a VECTOR_CST. + +2022-05-04 Jakub Jelinek <jakub@redhat.com> + + * genconditions.cc (write_conditions): Append a { nullptr, -1 } + element at the end of insn_conditions. + (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of + ARRAY_SIZE (insn_conditions). + +2022-05-04 Christophe Lyon <christophe.lyon@arm.com> + + PR target/104662 + * config/arm/arm.cc (simd_valid_immediate): Exit when input is a + vector of booleans and MVE is not enabled. + +2022-05-04 Richard Biener <rguenther@suse.de> + + PR debug/105158 + * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder): + Move debug stmts to the predecessor if moving to the + destination is not possible. + (remove_forwarder_block): Adjust. + (remove_forwarder_block_with_phi): Likewise. + +2022-05-03 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/102950 + * range-op.cc (wi_optimize_signed_bitwise_op): New function to + determine bounds of bitwise operations on signed types. + (operator_bitwise_and::wi_fold): Call the above function. + (operator_bitwise_or::wi_fold): Likewise. + (operator_bitwise_xor::wi_fold): Likewise. Additionally, the + result can't be zero if the operands can't be equal. + +2022-05-03 Iain Sandoe <iain@sandoe.co.uk> + + * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make + protocol class methods linker-visible. + +2022-05-03 Uroš Bizjak <ubizjak@gmail.com> + + PR target/105079 + * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload + define_insn_and_split pattern. + +2022-05-03 Richard Biener <rguenther@suse.de> + + PR middle-end/105083 + * tree-scalar-evolution.cc (scev_initialize): Verify we + have appropriate loop state. + * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and + loop init and finalization. + +2022-05-03 Richard Biener <rguenther@suse.de> + + PR middle-end/105461 + * opts.cc (finish_options): Match the condition to + disable flag_var_tracking to that of process_options. + +2022-05-03 Richard Biener <rguenther@suse.de> + + * opts.cc: #undef OPTIONS_SET_P. + (finish_options): Use opts_set instead of OPTIONS_SET_P. + +2022-05-03 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105394 + * tree-vect-generic.cc (expand_vector_condition): Adjust + comp_width for non-integer mode masks as well. + +2022-05-03 Marcel Vollweiler <marcel@codesourcery.com> + + * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to + omp_runtime_apis array. + +2022-05-02 Richard Biener <rguenther@suse.de> + + * tree-scalar-evolution.cc (expression_expensive_p): + Never consider mismatched calls as cheap. + +2022-05-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104240 + * tree-vect-slp.cc (op1_op0_map): New. + (vect_get_operand_map): Handle compares. + (vect_build_slp_tree_1): Support swapped operands for + tcc_comparison. + +2022-05-02 Jakub Jelinek <jakub@redhat.com> + + PR debug/105415 + * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug + if there is no symtab node for the VAR_DECL. + +2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-io.cc (gcov_rewrite): Clear the file error status. + +2022-05-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105437 + * tree-vect-slp.cc (vect_schedule_slp_node): Handle the + case where last_stmt alters control flow. + +2022-05-02 Richard Biener <rguenther@suse.de> + + * dojump.cc (do_jump): Use CASE_CONVERT. + * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise. + +2022-05-02 Jakub Jelinek <jakub@redhat.com> + + * system.h: Include initializer_list. + +2022-05-01 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/constraints.md (Y constraint): Fix comment. + +2022-05-01 Aldy Hernandez <aldyh@redhat.com> + + * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to + VR_RANGE before passing a piecewise range to set_range_info_raw. + +2022-04-30 Patrick Palka <ppalka@redhat.com> + + * gengtype.cc (adjust_field_tree_exp): Remove. + (adjust_field_type): Don't handle the "tree_exp" special attribute. + * tree-core.h (struct tree_exp): Remove "special" and "desc" + attributes. Add "length" attribute. + +2022-04-29 Martin Jambor <mjambor@suse.cz> + + PR ipa/100413 + * cgraph.cc (cgraph_node::remove): Release body of the node this + is clone_of if appropriate. + +2022-04-29 Uroš Bizjak <ubizjak@gmail.com> + + PR target/51954 + * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2. + +2022-04-29 Richard Biener <rguenther@suse.de> + + * gimple-expr.cc (is_gimple_condexpr): Adjust comment. + (canonicalize_cond_expr_cond): Move here from gimple.cc, + allow both COND_EXPR and GIMPLE_COND forms. + * gimple-expr.h (canonicalize_cond_expr_cond): Declare. + * gimple.cc (canonicalize_cond_expr_cond): Remove here. + * gimple.h (canonicalize_cond_expr_cond): Likewise. + * gimple-loop-versioning.cc (loop_versioning::version_loop): + Use is_gimple_condexpr_for_cond. + * tree-parloops.cc (gen_parallel_loop): Likewise. + * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for + a proper cond expr after canonicalize_cond_expr_cond. + Use is_gimple_condexpr_for_cond where appropriate. + * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise. + * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise. + +2022-04-29 Richard Biener <rguenther@suse.de> + + * gimple-iterator.h (gsi_after_labels): Add overload for + gimple_seq. + (gsi_start_1): Rename to gsi_start and take a reference. + (gsi_last_1): Likewise. + * gimple-iterator.cc (gsi_for_stmt): Use gsi_start. + * omp-low.cc (lower_rec_input_clauses): Likewise. + (lower_omp_scan): Likewise. + +2022-04-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105431 + * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned. + (powi_as_mults): Use absu_hwi. + (gimple_expand_builtin_powi): Remove now pointless n != -n + check. + +2022-04-29 Aldy Hernandez <aldyh@redhat.com> + + * range-op.cc (empty_range_varying): Move to range-op.h. + (range_true): Move to range.h. + (range_false): Same. + (range_true_and_false): Same. + (enum bool_range_state): Move to range-op.h. + (relop_early_resolve): Same. + (operator_equal::op1_op2_relation): Abstract code to... + (equal_op1_op2_relation): ...here. + (operator_not_equal::op1_op2_relation): Abstract code to... + (not_equal_op1_op2_relation): ...here. + (operator_lt::op1_op2_relation): Abstract code to... + (lt_op1_op2_relation): ...here. + (operator_le::op1_op2_relation): Abstract code to... + (le_op1_op2_relation): ...here. + (operator_gt::op1_op2_relation): Abstract code to... + (gt_op1_op2_relation): ...here. + (operator_ge::op1_op2_relation): Abstract code to... + (ge_op1_op2_relation): ...here. + (class range_op_table): Move to range-op.h. + * range-op.h (equal_op1_op2_relation): Moved from range-op.cc. + (not_equal_op1_op2_relation): Same. + (lt_op1_op2_relation): Same. + (le_op1_op2_relation): Same. + (gt_op1_op2_relation): Same. + (ge_op1_op2_relation): Same. + (enum bool_range_state): Same. + (get_bool_state): Same. + (empty_range_varying): Same. + (relop_early_resolve): Same. + (class range_op_table): Same. + * range.h (range_true): Same. + (range_false): Same. + (range_true_and_false): Same. + +2022-04-29 Aldy Hernandez <aldyh@redhat.com> + + * gimple-fold.cc (size_must_be_zero_p): Use reference + instead of pointer + * gimple-ssa-evrp-analyze.cc + (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename + intersect to legacy_verbose_intersect. + * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead + of pointer. + * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range + instead of value_range_equiv. + * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference + instead of pointer. + (find_case_label_range): Same. + * value-range-equiv.cc (value_range_equiv::intersect): Rename to... + (value_range_equiv::legacy_verbose_intersect): ...this. + (value_range_equiv::union_): Rename to... + (value_range_equiv::legacy_verbose_union_): ...this. + * value-range-equiv.h (class value_range_equiv): Rename union and + intersect to legacy_verbose_{intersect,union}. + * value-range.cc (irange::union_): Rename to... + (irange::legacy_verbose_union_): ...this. + (irange::intersect): Rename to... + (irange::legacy_verbose_intersect): ...this. + * value-range.h (irange::union_): Rename union_ to + legacy_verbose_union. + (irange::intersect): Rename intersect to legacy_verbose_intersect. + * vr-values.cc (vr_values::update_value_range): Same. + (vr_values::extract_range_for_var_from_comparison_expr): Same. + (vr_values::extract_range_from_cond_expr): Rename union_ to + legacy_verbose_union. + (vr_values::extract_range_from_phi_node): Same. + +2022-04-29 Aldy Hernandez <aldyh@redhat.com> + + * gimple-ssa-evrp-analyze.cc + (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods + that take a range. + * gimple-ssa-sprintf.cc (try_substitute_return_value): Same. + * ipa-prop.cc (ipcp_update_vr): Same. + * tree-inline.cc (remap_ssa_name): Same. + * tree-ssa-copy.cc (fini_copy_prop): Same. + * tree-ssa-math-opts.cc (optimize_spaceship): Same. + * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same. + * tree-ssa-pre.cc (insert_into_preds_of_block): Same. + * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same. + * tree-ssa-strlen.cc (set_strlen_range): Same. + (strlen_pass::handle_builtin_string_cmp): Same. + * tree-ssanames.cc (set_range_info): Make static. + (duplicate_ssa_name_range_info): Make static and add a new variant + calling the static. + * tree-ssanames.h (set_range_info): Remove version taking wide ints. + (duplicate_ssa_name_range_info): Remove version taking a + range_info_def and replace with a version taking SSA names. + * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods + that take a range. + (vect_do_peeling): Same. + * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same. + * vr-values.cc (simplify_truth_ops_using_ranges): Same. + +2022-04-29 Aldy Hernandez <aldyh@redhat.com> + + * value-range.h (irange::irange): Use set_undefined. + +2022-04-29 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-cache.h (non_null_ref::adjust_range): Do not use + irange::intersect (wide_int, wide_int). + * gimple-range-fold.cc (adjust_pointer_diff_expr): Same. + (adjust_imagpart_expr): Same. + * value-range.h (irange::intersect (wide_int, wide_int)): Make + private. + +2022-04-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104322 + * tree-vect-loop.cc (vectorizable_reduction): Remove dead code. + +2022-04-29 Richard Biener <rguenther@suse.de> + + PR middle-end/105376 + * tree.cc (build_real): Special case dconst* arguments + for decimal floating point types. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * doc/gcov.texi (Profiling and Test Coverage in Freestanding + Environments): New section. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * doc/gcov-tool.texi: Document merge-stream subcommand. + * doc/invoke.texi (fprofile-info-section): Mention merge-stream + subcommand of gcov-tool. + * gcov-tool.cc (gcov_profile_merge_stream): Declare. + (print_merge_stream_usage_message): New. + (merge_stream_usage): Likewise. + (do_merge_stream): Likewise. + (print_usage): Call print_merge_stream_usage_message(). + (main): Call do_merge_stream() to execute merge-stream subcommand. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-io.cc (gcov_file_error): New enum. + (gcov_var): Use gcov_file_error enum for the error member. + (gcov_open): Use GCOV_FILE_NO_ERROR. + (gcov_close): Use GCOV_FILE_WRITE_ERROR. + (gcov_write): Likewise. + (gcov_write_unsigned): Likewise. + (gcov_write_string): Likewise. + (gcov_read_bytes): Set error code if EOF is reached. + (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-io.cc (GCOV_MODE_STDIN): Define. + (gcov_position): For gcov-tool, return calculated position if file is + stdin. + (gcov_open): For gcov-tool, use stdin if filename is NULL. + (gcov_close): For gcov-tool, do not close stdin. + (gcov_read_bytes): For gcov-tool, update position if file is stdin. + (gcov_sync): For gcov-tool, discard input if file is stdin. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * doc/invoke.texi (fprofile-info-section): Mention + __gcov_filename_to_gcfn(). Use "freestanding" to match with C11 + standard language. Fix minor example code issues. + * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-io.cc (gcov_seek): Make it static. + * gcov-io.h (struct gcov_summary): Do not mention gcov_seek(). + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-tool.cc (gcov_do_dump): Add mode parameter. + (gcov_output_files): Open files for reading and writing. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-io.cc (gcov_open): Always use the mode parameter. + * gcov-io.h (gcov_open): Declare it unconditionally. + +2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-tool.cc (gcov_profile_merge): Adjust return type. + (profile_merge): Allow merging of directories which contain no profile + files. + +2022-04-28 David Malcolm <dmalcolm@redhat.com> + + * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the + fpath.txt output. + +2022-04-28 Jakub Jelinek <jakub@redhat.com> + + * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a + temporary only if out overlaps compare_op, not when it overlaps + op0 or op1. + +2022-04-28 Jakub Jelinek <jakub@redhat.com> + + PR lto/105399 + * cgraph.cc (cgraph_node::verify_node): Don't verify + semantic_interposition flag against + opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1. + +2022-04-28 Jakub Jelinek <jakub@redhat.com> + + PR target/105331 + * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp + temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR + of it. + +2022-04-28 Jonathan Wakely <jwakely@redhat.com> + + * doc/install.texi (Configuration): Remove misleading text + around LE PowerPC Linux multilibs. + +2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR d/103528 + * doc/install.texi (Tools/packages necessary for building GCC) + (GDC): Document libphobos requirement. + (Host/target specific installation notes for GCC, *-*-solaris2*): + Document libphobos and GDC specifics. + +2022-04-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105219 + * tree-vect-loop.cc (vect_transform_loop): Disable + special code narrowing the vectorized epilogue max + iterations when peeling for alignment or gaps was in effect. + +2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang> + + * config/loongarch/loongarch.cc + (loongarch_flatten_aggregate_field): Ignore empty fields for + RECORD_TYPE. + +2022-04-27 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch.md: Add fdiv define_expand template, + then generate floating-point division and floating-point reciprocal + instructions. + +2022-04-27 Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))' + to PLV instruction templates. + +2022-04-27 Richard Biener <rguenther@suse.de> + + PR middle-end/104492 + * gimple-ssa-warn-access.cc + (pass_waccess::warn_invalid_pointer): Exclude equality compare + diagnostics for all kind of invalidations. + (pass_waccess::check_dangling_uses): Fix post-dominator query. + (pass_waccess::check_pointer_uses): Likewise. + +2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com> + + PR target/102024 + * config/s390/s390-protos.h (s390_function_arg_vector): Remove + prototype. + * config/s390/s390.cc (s390_single_field_struct_p): New function. + (s390_function_arg_vector): Invoke s390_single_field_struct_p. + (s390_function_arg_float): Likewise. + +2022-04-27 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/105396 + * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case + where offset is bigger than off but smaller than m_prev_offset + 32 + bits by pushing one or more 0 bytes. Sink the + m_shadow_bytes.safe_push (value); flush_if_full (); statements from + all cases to the end of the function. + +2022-04-27 Kewen Lin <linkw@linux.ibm.com> + + PR target/105271 + * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector] + stanza. + +2022-04-26 Thomas Schwinge <thomas@codesourcery.com> + + * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private + data-share memory exhausted" error more verbose. + +2022-04-26 Martin Liska <mliska@suse.cz> + + PR lto/105364 + * lto-wrapper.cc (print_lto_docs_link): Use global_dc. + (run_gcc): Parse OPT_fdiagnostics_urls_. + (main): Initialize global_dc. + +2022-04-26 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/105314 + * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero + operand is equal to if_info->x, instead use the non-zero operand + as one of the operands of AND with if_info->x as target. + +2022-04-26 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105374 + * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if + !fold_convertible_p rather than assuming fold_convert must succeed. + +2022-04-26 Jakub Jelinek <jakub@redhat.com> + + PR target/105367 + * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass + el_mode == DFmode ? double_type_node : float_type_node instead of + TREE_TYPE (type_in) as first arguments to mathfn_built_in. + +2022-04-25 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/104308 + * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set + the location of new_stmt in all places that don't already set it, + whether explicitly, or via a call to gsi_replace. + +2022-04-25 Paul A. Clarke <pc@us.ibm.com> + + * doc/extend.texi (Other Builtins): Correct reference to 'modff'. + +2022-04-25 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/105276 + * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include + existing global range with calculated value. + +2022-04-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105368 + * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi. + +2022-04-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/100810 + * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag. + (find_ssa_undef): New function. + (add_candidate_1): Avoid adding derived candidates with + undefined SSA names and mark the original ones. + (determine_group_iv_cost_generic): Reject rewriting + uses with a different IV when that involves undefined SSA names. + +2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org> + + PR target/89125 + * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be + bsd_libc_has_function. + * targhooks.cc (bsd_libc_has_function): New function. + Expand the supported math functions to inclue C99 libm. + * targhooks.h (bsd_libc_has_function): New Prototype. + +2022-04-25 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/105231 + * combine.cc (distribute_notes): Assert that a REG_EH_REGION + with landing pad > 0 is from i3. Put any REG_EH_REGION note + on i3 or drop it if the insn can not trap. + (try_combine): Ensure that we can merge REG_EH_REGION notes + with non-call exceptions. Ensure we are not splitting a + trapping part of an insn with non-call exceptions when there + is any REG_EH_REGION note to preserve. + +2022-04-25 Hongyu Wang <hongyu.wang@intel.com> + + PR target/105339 + * config/i386/avx512fintrin.h (_mm512_scalef_round_pd): + Add parentheses for parameters and djust format. + (_mm512_mask_scalef_round_pd): Ditto. + (_mm512_maskz_scalef_round_pd): Ditto. + (_mm512_scalef_round_ps): Ditto. + (_mm512_mask_scalef_round_ps): Ditto. + (_mm512_maskz_scalef_round_ps): Ditto. + (_mm_scalef_round_sd): Use _mm_undefined_pd. + (_mm_scalef_round_ss): Use _mm_undefined_ps. + (_mm_mask_scalef_round_sd): New macro. + (_mm_mask_scalef_round_ss): Ditto. + (_mm_maskz_scalef_round_sd): Ditto. + (_mm_maskz_scalef_round_ss): Ditto. + +2022-04-23 Jakub Jelinek <jakub@redhat.com> + + PR target/105338 + * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle + op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov + cases. + +2022-04-22 Segher Boessenkool <segher@kernel.crashing.org> + + PR target/105334 + * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander. + (pack<mode> for FMOVE128): Rename and split the insn_and_split to... + (pack<mode>_hard for FMOVE128): ... this... + (pack<mode>_soft for FMOVE128): ... and this. + +2022-04-22 Paul A. Clarke <pc@us.ibm.com> + + * doc/extend.texi: Correct "This" to "These". + +2022-04-22 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/105333 + * rtlanal.cc (replace_rtx): Use simplify_subreg or + simplify_unary_operation if CONST_SCALAR_INT_P rather than just + CONST_INT_P. + +2022-04-21 Segher Boessenkool <segher@kernel.crashing.org> + + PR target/103197 + PR target/102146 + * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage + the "Z" alternatives in {l,st}{f,xs}iwzx. + (zero_extendhi<mode>2 for EXTHI): Ditto. + (zero_extendsi<mode>2 for EXTSI): Ditto. + (*movsi_internal1): Ditto. + (*mov<mode>_internal1 for QHI): Ditto. + (movsd_hardfloat): Ditto. + +2022-04-21 Martin Liska <mliska@suse.cz> + + * configure.ac: Enable compressed debug sections for mold + linker. + * configure: Regenerate. + +2022-04-21 Jakub Jelinek <jakub@redhat.com> + + PR debug/105203 + * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label + on DEBUG_INSNs. + +2022-04-20 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104912 + * tree-vect-loop-manip.cc (vect_loop_versioning): Split + the cost model check to a separate BB to make sure it is + checked first and not combined with other version checks. + +2022-04-20 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105312 + * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both + VCOND and VCONDU for EQ and NE. + +2022-04-20 Jan Hubicka <hubicka@ucw.cz> + + PR ipa/103818 + * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use + poly_offset_int to avoid overflow. + (modref_access_node::update2): likewise. + +2022-04-20 Jakub Jelinek <jakub@redhat.com> + + PR ipa/105306 + * cgraph.cc (cgraph_node::create): Set node->semantic_interposition + to opt_for_fn (decl, flag_semantic_interposition). + * cgraphclones.cc (cgraph_node::create_clone): Copy over + semantic_interposition flag. + +2022-04-19 Sergei Trofimovich <siarheit@google.com> + + PR gcov-profile/105282 + * value-prof.cc (stream_out_histogram_value): Allow negative counts + on HIST_TYPE_INDIR_CALL. + +2022-04-19 Jakub Jelinek <jakub@redhat.com> + + PR target/105257 + * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO, + use gen_raw_REG instead of gen_rtx_REG and copy over also + ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */. + +2022-04-19 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104010 + PR tree-optimization/103941 + * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When + we run into stmts in patterns continue walking those + for uses outside of the vectorized region instead of + marking the lane live. + +2022-04-18 Hans-Peter Nilsson <hp@axis.com> + + * doc/install.texi <CRIS>: Remove references to removed websites and + adjust for cris-*-elf being the only remaining toolchain. + +2022-04-18 Hans-Peter Nilsson <hp@axis.com> + + * doc/invoke.texi <CRIS>: Remove references to options for removed + subtarget cris-axis-linux-gnu and tweak wording accordingly. + +2022-04-16 Gerald Pfeifer <gerald@pfeifer.com> + + * doc/install.texi (Specific): Adjust mingw-w64 download link. + +2022-04-15 Hongyu Wang <hongyu.wang@intel.com> + + * config/i386/smmintrin.h: Correct target pragma from sse4.1 + and sse4.2 to crc32 for crc32 intrinsics. + +2022-04-14 Indu Bhagat <indu.bhagat@oracle.com> + + PR debug/105089 + * ctfc.cc (ctf_dvd_ignore_insert): New function. + (ctf_dvd_ignore_lookup): Likewise. + (ctf_add_variable): Keep track of non-defining decl DIEs. + (new_ctf_container): Initialize the new hash-table. + (ctfc_delete_container): Empty hash-table. + * ctfc.h (struct ctf_container): Add new hash-table. + (ctf_dvd_ignore_lookup): New declaration. + (ctf_add_variable): Add additional argument. + * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable + record for non-defining decl for which a defining decl exists + in the same TU. + (ctf_preprocess): Defer updating the number of global objts + until here. + (output_ctf_header): Use ctfc_vars_list_count as some CTF + variables may not make it to the final output. + (output_ctf_vars): Likewise. + * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable + if this is known to be a non-defining decl DIE. + +2022-04-14 Indu Bhagat <indu.bhagat@oracle.com> + + * ctfc.h (struct ctf_container): Introduce a new member. + * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static + variable. + +2022-04-14 Jakub Jelinek <jakub@redhat.com> + + PR target/105247 + * simplify-rtx.cc (simplify_const_binary_operation): For shifts + or rotates by VOIDmode constant integer shift count use word_mode + for the operand if int_mode is narrower than word. + +2022-04-14 Robin Dapp <rdapp@linux.ibm.com> + + * config/s390/s390.cc (s390_get_sched_attrmask): Add z16. + (s390_get_unit_mask): Likewise. + (s390_is_fpd): Likewise. + (s390_is_fxd): Likewise. + * config/s390/s390.h (s390_tune_attr): Set max tune level to z16. + * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15): + Add z16. + (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16): + Likewise. + * config/s390/3931.md: New file. + +2022-04-13 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/105254 + * config/aarch64/aarch64.cc + (aarch64_vector_costs::determine_suggested_unroll_factor): Take a + loop_vec_info as argument. Restrict the unroll factor to values + that divide the VF. + (aarch64_vector_costs::finish_cost): Update call accordingly. + +2022-04-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105263 + * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume + negates in multiplication chains with DFP. + +2022-04-13 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/105253 + * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple, + use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT + comparisons or tree_nop_conversion_p checks. + +2022-04-13 Hongyu Wang <hongyu.wang@intel.com> + + PR target/103069 + * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): + Add missing set to target_val at pause label. + +2022-04-13 Jakub Jelinek <jakub@redhat.com> + + PR target/105234 + * attribs.cc (decl_attributes): Don't set + DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is + NULL. + +2022-04-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105250 + * fold-const.cc (fold_convertible_p): Revert + r12-7979-geaaf77dd85c333, instead check for size equality + of the vector types involved. + +2022-04-13 Richard Biener <rguenther@suse.de> + + Revert: + 2022-04-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104912 + * tree-vect-loop-manip.cc (vect_loop_versioning): Split + the cost model check to a separate BB to make sure it is + checked first and not combined with other version checks. + +2022-04-13 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104912 + * tree-vect-loop-manip.cc (vect_loop_versioning): Split + the cost model check to a separate BB to make sure it is + checked first and not combined with other version checks. + +2022-04-13 Jakub Jelinek <jakub@redhat.com> + + * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo. + +2022-04-12 Antoni Boucher <bouanto@zoho.com> + + PR jit/104072 + * reginfo.cc: New functions (clear_global_regs_cache, + reginfo_cc_finalize) to avoid an issue where compiling the same + code multiple times gives an error about assigning the same + register to 2 global variables. + * rtl.h: New function (reginfo_cc_finalize). + * toplev.cc: Call it. + +2022-04-12 Antoni Boucher <bouanto@zoho.com> + + PR jit/104071 + * toplev.cc: Call the new function tree_cc_finalize in + toplev::finalize. + * tree.cc: New functions (clear_nonstandard_integer_type_cache + and tree_cc_finalize) to clear the cache of non-standard integer + types to avoid having issues with some optimizations of + bitcast where the SSA_NAME will have a size of a cached + integer type that should have been invalidated, causing a + comparison of integer constant to fail. + * tree.h: New function (tree_cc_finalize). + +2022-04-12 Thomas Schwinge <thomas@codesourcery.com> + + PR target/97348 + * config/nvptx/nvptx.h (ASM_SPEC): Don't set. + * config/nvptx/nvptx.opt (misa): Adjust comment. + +2022-04-12 Thomas Schwinge <thomas@codesourcery.com> + + Revert: + 2022-03-03 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}. + +2022-04-12 Thomas Schwinge <thomas@codesourcery.com> + + Revert: + 2022-03-31 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30. + +2022-04-12 Richard Biener <rguenther@suse.de> + + PR ipa/104303 + * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not + include local escaped memory as obviously necessary stores. + +2022-04-12 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105235 + * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and + return whether the CFG changed. + (execute_cse_sincos_1): Adjust. + +2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com> + + PR target/104144 + * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options. + (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories. + (MULTILIB_REQUIRED): Don't require Armv9-a libraries. + (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a. + (MULTILIB_REUSE): Remove remap rules for Armv9-a. + * config/arm/t-multilib (v9_a_nosimd_variants): Delete. + (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants. + +2022-04-12 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105232 + * tree.cc (component_ref_size): Bail out for too large + or non-constant sizes. + +2022-04-12 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105226 + * tree-vect-loop-manip.cc (vect_loop_versioning): Verify + we can split the exit of an outer loop we choose to version. + +2022-04-12 Jakub Jelinek <jakub@redhat.com> + + * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh, + ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh, + ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round, + ix86_emit_swdivsf, ix86_emit_swsqrtsf, + ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop): + Formatting fix. + * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise. + +2022-04-12 Jakub Jelinek <jakub@redhat.com> + + PR target/105214 + * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call + do_pending_stack_adjust. + +2022-04-12 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/105211 + * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1 + fails for TREE_TYPE (arg), retry it with + TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that + fails, emit call normally. + +2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com> + + * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16. + * config.gcc: Add z16 as march/mtune switch. + * config/s390/driver-native.cc (s390_host_detect_local_cpu): + Recognize z16 with -march=native. + * config/s390/s390-opts.h (enum processor_type): Rename + PROCESSOR_ARCH14 to PROCESSOR_3931_Z16. + * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ... + (PROCESSOR_3931_Z16): ... throughout the file. + (s390_processor processor_table): Add z16 as cpu string. + * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to + PF_Z16. + (TARGET_CPU_ARCH14): Rename to ... + (TARGET_CPU_Z16): ... this. + (TARGET_CPU_ARCH14_P): Rename to ... + (TARGET_CPU_Z16_P): ... this. + (TARGET_ARCH14): Rename to ... + (TARGET_Z16): ... this. + (TARGET_ARCH14_P): Rename to ... + (TARGET_Z16_P): ... this. + * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and + check TARGET_Z16 instead of TARGET_ARCH14. + * config/s390/s390.opt: Add z16 to processor_type. + * doc/invoke.texi: Document z16 and arch14. + +2022-04-12 chenglulu <chenglulu@loongson.cn> + + * config/loongarch/loongarch.cc: Fix bug for + tmpdir-g++.dg-struct-layout-1/t033. + +2022-04-11 Peter Bergner <bergner@linux.ibm.com> + + PR target/104894 + * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls + to longcall functions. + +2022-04-11 Jason Merrill <jason@redhat.com> + + * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos. + +2022-04-11 Segher Boessenkool <segher@kernel.crashing.org> + + PR target/105213 + PR target/103623 + * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative. + +2022-04-11 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105218 + * tree-ssa-phiopt.cc (value_replacement): If middle_bb has + more than one predecessor or phi's bb more than 2 predecessors, + reset phi result uses instead of adding a debug temp. + +2022-04-11 Kito Cheng <kito.cheng@sifive.com> + + PR target/104853 + * config.gcc: Pass -misa-spec to arch-canonicalize and + multilib-generator. + * config/riscv/arch-canonicalize: Adding -misa-spec option. + (SUPPORTED_ISA_SPEC): New. + (arch_canonicalize): New argument `isa_spec`. + Handle multiple ISA spec versions. + * config/riscv/multilib-generator: Adding -misa-spec option. + +2022-04-11 Kito Cheng <kito.cheng@sifive.com> + + * config/riscv/arch-canonicalize: Add TODO item. + (IMPLIED_EXT): Sync. + (arch_canonicalize): Checking until no change. + +2022-04-11 Tamar Christina <tamar.christina@arm.com> + + PR target/105197 + * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when + not masked. + +2022-04-11 Jason Merrill <jason@redhat.com> + + PR c++/100370 + * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require + deref == -1. + +2022-04-11 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104639 + * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h. + (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3 + into x != cst3. + +2022-04-11 Jeff Law <jeffreyalaw@gmail.com> + + * config/bfin/bfin.md (rol_one): Fix pattern to indicate the + sign bit of the source ends up in CC. + +2022-04-09 Jan Hubicka <hubicka@ucw.cz> + + PR ipa/103376 + * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition + flag. + +2022-04-09 Jan Hubicka <hubicka@ucw.cz> + + * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate + nondeterministic and side_effects flags. + +2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR target/105157 + * config.gcc: Shift ext_mask by TARGET_CPU_NBITS. + * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro. + (TARGET_CPU_MASK): Likewise. + (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS. + * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK. + (aarch64_get_arch): Likewise. + (aarch64_override_options): Use TARGET_CPU_NBITS. + +2022-04-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105198 + * tree-predcom.cc (find_looparound_phi): Check whether + the found memory location of the entry value is clobbered + inbetween the value we want to use and loop entry. + +2022-04-08 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105189 + * fold-const.cc (make_range_step): Fix up handling of + (unsigned) x +[low, -] ranges for signed x if low fits into + typeof (x). + +2022-04-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105175 + * tree-vect-stmts.cc (vectorizable_operation): Suppress + -Wvector-operation-performance if using emulated vectors. + * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose + -Wvector-operation-performance when suppressed. + (expand_vector_parallel): Likewise. + (expand_vector_comparison): Likewise. + (expand_vector_condition): Likewise. + (lower_vec_perm): Likewise. + (expand_vector_conversion): Likewise. + +2022-04-07 Tamar Christina <tamar.christina@arm.com> + + PR target/104409 + * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New. + (aarch64_general_init_builtins): Move LS64 code. + * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support + arm_acle.h + * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New. + * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h". + +2022-04-07 Richard Biener <rguenther@suse.de> + Jan Hubicka <hubicka@ucw.cz> + + PR ipa/104303 + * tree-ssa-alias.h (ptr_deref_may_alias_global_p, + ref_may_alias_global_p, ref_may_alias_global_p, + stmt_may_clobber_global_p, pt_solution_includes_global): Add + bool parameters indicating whether escaped locals should be + considered global. + * tree-ssa-structalias.cc (pt_solution_includes_global): + When the new escaped_nonlocal_p flag is true also consider + pt->vars_contains_escaped. + * tree-ssa-alias.cc (ptr_deref_may_alias_global_p): + Pass down new escaped_nonlocal_p flag. + (ref_may_alias_global_p): Likewise. + (stmt_may_clobber_global_p): Likewise. + (ref_may_alias_global_p_1): Likewise. For decls also + query the escaped solution if true. + (ref_may_access_global_memory_p): Remove. + (modref_may_conflict): Use ref_may_alias_global_p with + escaped locals considered global. + (ref_maybe_used_by_stmt_p): Adjust. + * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p): + Likewise. + * tree-ssa-dse.cc (dse_classify_store): Likewise. + * trans-mem.cc (thread_private_new_memory): Likewise, but + consider escaped locals global. + * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise. + +2022-04-07 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105185 + * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify + modref query again. + +2022-04-07 Tamar Christina <tamar.christina@arm.com> + + PR target/104049 + * config/aarch64/aarch64-simd.md + (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to... + (reduc_plus_scal_<mode>): ... This. + (reduc_plus_scal_v4sf): Moved. + (aarch64_reduc_plus_internalv2si): Fix RTL and rename to... + (reduc_plus_scal_v2si): ... This. + +2022-04-07 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/102586 + * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base + langhook. + * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. + * gimple-fold.cc (clear_padding_type): Use ftype instead of + TREE_TYPE (field) some more. For artificial FIELD_DECLs without + name try the lang_hooks.types.classtype_as_base langhook and + if it returns non-NULL, use that instead of ftype for recursive call. + +2022-04-07 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105150 + * tree.cc (tree_builtin_call_types_compatible_p): New function. + (get_call_combined_fn): Use it. + +2022-04-07 Richard Biener <rguenther@suse.de> + + PR middle-end/105165 + * tree-complex.cc (expand_complex_asm): Sorry for asm goto + _Complex outputs. + +2022-04-07 liuhongt <hongtao.liu@intel.com> + + * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask): + Removed. + (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns + for mask_applied. + (<code><mode>3<mask_name>): Ditto. + (*<code><mode>3<mask_name>): Ditto. + (VFB_128_256): Adjust condition of V8HF/V16HFmode according to + real instruction. + (VFB_512): Ditto. + (VFB): Ditto. + +2022-04-06 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/104985 + * combine.cc (struct undo): Add where.regno member. + (do_SUBST_MODE): Rename to ... + (subst_mode): ... this. Change first argument from rtx * into int, + operate on regno_reg_rtx[regno] and save regno into where.regno. + (SUBST_MODE): Remove. + (try_combine): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use + regno_reg_rtx[undo->where.regno] instead of *undo->where.r. + (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno] + instead of *undo->where.r. + (simplify_set): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. + +2022-04-06 Jakub Jelinek <jakub@redhat.com> + + PR target/105069 + * config/sh/sh.opt (mdiv=): Add Save. + +2022-04-06 Martin Liska <mliska@suse.cz> + + PR driver/105096 + * common.opt: Document properly based on what it does. + * gcc.cc (display_help): Unify with what we have in common.opt. + * opts.cc (common_handle_option): Do not print undocumented + options. + +2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang> + + * config/mips/mips.cc (mips_fpr_return_fields): Ignore + cxx17_empty_base_field_p fields and set an indicator. + (mips_return_in_msb): Adjust for mips_fpr_return_fields change. + (mips_function_value_1): Inform psABI change about C++17 empty + bases. + +2022-04-06 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105150 + * gimple.cc (gimple_builtin_call_types_compatible_p): Use + builtin_decl_explicit here... + (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than + here. + +2022-04-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105173 + * tree-ssa-reassoc.cc (find_insert_point): Get extra + insert_before output argument and compute it. + (insert_stmt_before_use): Adjust. + (rewrite_expr_tree): Likewise. + +2022-04-06 Richard Biener <rguenther@suse.de> + + PR ipa/105166 + * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail + out for non-pointer arguments. + +2022-04-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105163 + * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating + negated abnormals. + +2022-04-06 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105150 + * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn): + For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p + preferrably on builtin_decl_explicit decl rather than fndecl. + * tree-ssa-strlen.cc (valid_builtin_call): Don't call + gimple_builtin_call_types_compatible_p here. + +2022-04-06 Richard Sandiford <richard.sandiford@arm.com> + + PR tree-optimization/103761 + * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace + the ncopies parameter with an slp_node parameter. Calculate the + number of vectors based on it and vectype. Rename lambda to + group_memory_nvectors. + (vectorizable_store, vectorizable_load): Update calls accordingly. + +2022-04-06 Martin Liska <mliska@suse.cz> + + * doc/invoke.texi: Document it. + +2022-04-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105148 + * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands + 2 and 3 of ARRAY_REFs. + +2022-04-06 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI. + (*andnottf3): Replace with... + (*andnot<mode>3): New define_insn using ANDNOT_MODE. + +2022-04-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105142 + * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted + basic-block parameter. + (maybe_fold_or_comparisons): Likewise. + * gimple-fold.cc (follow_outer_ssa_edges): New. + (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges + when an outer condition basic-block is specified. + (and_comparisons_1, and_var_with_comparison, + and_var_with_comparison_1, or_comparisons_1, + or_var_with_comparison, or_var_with_comparison_1): Receive and pass + down the outer condition basic-block. + * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the + basic-block of the outer condition. + +2022-04-06 Kewen Lin <linkw@linux.ibm.com> + + PR target/105002 + * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more + comparison codes UNLT/UNLE/UNGT/UNGE. + +2022-04-05 David Malcolm <dmalcolm@redhat.com> + + * doc/extend.texi (Common Function Attributes): Document that + 'access' does not imply 'nonnull'. + +2022-04-05 Uroš Bizjak <ubizjak@gmail.com> + + PR target/105139 + * config/i386/mmx.md (*movv2qi_internal): + Change insn mode of alternative 5 to HF for TARGET_AVX512FP16. + +2022-04-05 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a + define_expand and turn operands 0 and 1 from REGs to MEMs. + (*aarch64_cpymemdi): New pattern. + (aarch64_setmemdi): Turn into a define_expand and turn operand 0 + from a REG to a MEM. + (*aarch64_setmemdi): New pattern. + * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use + copy_to_mode_reg on all three registers. Replace the original + MEM addresses rather than creating wild reads and writes. + (aarch64_expand_setmem_mops): Likewise for the size and for the + destination memory and address. + +2022-04-05 Richard Sandiford <richard.sandiford@arm.com> + + PR target/103147 + * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class. + * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit + from aarch64_simd_switcher. + * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes): + New variable. + (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE. + (register_tuple_type): Add more asserts. Expect the alignment + of the structure to be subject to flag_pack_struct and + maximum_field_alignment. Set aarch64_simd_tuple_modes. + (aarch64_simd_switcher::aarch64_simd_switcher): New function. + (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise. + (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout. + (aarch64_general_init_builtins): Hold an aarch64_simd_switcher + while calling aarch64_init_simd_builtins. + * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher) + (sve_switcher::~sve_switcher): Remove code now performed by + aarch64_simd_switcher. + +2022-04-05 Richard Sandiford <richard.sandiford@arm.com> + + PR target/104897 + * config/aarch64/aarch64-sve-builtins.cc + (function_resolver::infer_vector_or_tuple_type): Use error_n + for "%d vectors" messages. + +2022-04-05 Chung-Lin Tang <cltang@codesourcery.com> + + * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as + argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from + current clause. + +2022-04-05 Richard Biener <rguenther@suse.de> + + PR c/105151 + * passes.def (pass_walloca): Move early instance into + pass_build_ssa_passes to make SSA form available. + +2022-04-05 liuhongt <hongtao.liu@intel.com> + + PR target/101908 + * config/i386/i386.cc (ix86_split_stlf_stall_load): New + function + (ix86_reorg): Call ix86_split_stlf_stall_load. + * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New + param. + +2022-04-05 Alexandre Oliva <oliva@adacore.com> + + * targhooks.cc (default_zero_call_used_regs): Attempt to group + regs that the target refuses to use in their natural modes. + (zcur_select_mode_rtx): New. + * regs.h (struct target_regs): Add x_hard_regno_max_nregs. + (hard_regno_max_nregs): Define. + * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs. + +2022-04-04 Alex Coplan <alex.coplan@arm.com> + + * doc/match-and-simplify.texi: Fix typos. + +2022-04-04 Jakub Jelinek <jakub@redhat.com> + + PR target/105144 + * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change + only if configured with --enable-maintainer-mode, otherwise compare + tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and + if they differ, emit a message and fail. + +2022-04-04 Jakub Jelinek <jakub@redhat.com> + + PR target/105144 + * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md. + * config/aarch64/aarch64-tune.md: Regenerated. + +2022-04-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105132 + * tree-vect-stmts.cc (vectorizable_operation): Check that + the input vectors have the same number of elements. + +2022-04-04 Richard Biener <rguenther@suse.de> + + PR middle-end/105140 + * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg. + +2022-04-03 Jeff Law <jeffreyalaw@gmail.com> + + PR target/104987 + * config/iq2000/iq2000.md (bbi): New attribute, default to no. + (delay slot descripts): Use different delay slot description when + the insn as the "bbi" attribute. + (bbi, bbin patterns): Set the bbi attribute to yes. + +2022-04-03 Jakub Jelinek <jakub@redhat.com> + + PR target/105123 + * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid + using word as target for expand_simple_binop when doing ASHIFT and + IOR. + +2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang> + + * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is + NULL before dereferencing it. + +2022-04-01 Qing Zhao <qing.zhao@oracle.com> + + * config/i386/i386.cc (zero_all_st_registers): Return the value of + num_of_st. + (ix86_zero_call_used_regs): Update zeroed_hardregs set according to + the return value of zero_all_st_registers. + * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS. + * function.cc (gen_call_used_regs_seq): Add an assertion. + * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS. + +2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang> + + PR target/102024 + * config/mips/mips.cc (mips_function_arg): Ignore zero-width + fields, and inform if it causes a psABI change. + +2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang> + + PR target/102024 + * config/mips/mips.cc (mips_fpr_return_fields): Detect C++ + zero-width bit-fields and set up an indicator. + (mips_return_in_msb): Adapt for mips_fpr_return_fields change. + (mips_function_value_1): Diagnose when the presense of a C++ + zero-width bit-field changes function returning in GCC 12. + +2022-04-01 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104645 + * tree-ssa-phiopt.cc (value_replacement): If assign has + CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation + statement with constant evaluation. + +2022-04-01 YunQiang Su <yunqiang.su@cipunited.com> + + * config/mips/mips.cc (mips_expand_prologue): + IPL is 8bit for MCU ASE. + +2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com> + + PR target/104004 + * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft. + (MTFSB0): Likewise. + (MTFSB1): Likewise. + (SET_FPSCR_RN): Likewise. + (SET_FPSCR_DRN): Mark nosoft and no32bit. + +2022-03-31 Thomas Schwinge <thomas@codesourcery.com> + + * doc/options.texi (Option file format): Clarifications around + option definition records' help texts. + +2022-03-31 Thomas Schwinge <thomas@codesourcery.com> + + * optc-gen.awk <END>: Fix "Multiple different help strings" error + diagnostic. + +2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64.cc (aarch64_vector_costs): Define + determine_suggested_unroll_factor and m_has_avg. + (determine_suggested_unroll_factor): New function. + (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern + to set m_nosve_pattern. + (aarch64_vector_costs::finish_costs): Use + determine_suggested_unroll_factor. + * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New. + * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option. + +2022-03-31 Martin Jambor <mjambor@suse.cz> + + PR ipa/103083 + * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null; + (ipa_get_jf_ancestor_keep_null): New function. + * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the + ancestor function. + (compute_complex_assign_jump_func): Pass false to keep_null + parameter of ipa_set_ancestor_jf. + (compute_complex_ancestor_jump_func): Pass true to keep_null + parameter of ipa_set_ancestor_jf. + (update_jump_functions_after_inlining): Carry over keep_null from the + original ancestor jump-function or merge them. + (ipa_write_jump_function): Stream keep_null flag. + (ipa_read_jump_function): Likewise. + (ipa_print_node_jump_functions_for_edge): Print the new flag. + * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New + member function known_nonzero_p. + (ipcp_bits_lattice::known_nonzero_p): New. + (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones, + observe it. + (ipcp_bits_lattice::meet_with): Likewise. + (propagate_bits_across_jump_function): Simplify. Pass true in + drop_all_ones when it is necessary. + (propagate_aggs_across_jump_function): Take care of keep_null + flag. + (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null + jump functions. + +2022-03-31 Martin Jambor <mjambor@suse.cz> + + PR ipa/102513 + * ipa-cp.cc (decide_whether_version_node): Skip scalar values + which do not fit the known value_range. + +2022-03-31 Martin Jambor <mjambor@suse.cz> + + PR ipa/103171 + * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference + always when an ADDR_EXPR constant is known to reach a load because + of inlining, not just when removing an ADDR reference. + +2022-03-31 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105109 + * tree-ssa.cc (execute_update_addresses_taken): Suppress + diagnostics on the load of the other complex component. + +2022-03-31 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30. + +2022-03-31 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/105091 + * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF + bases. + +2022-03-31 Richard Biener <rguenther@suse.de> + + Revert: + 2021-09-13 Richard Earnshaw <rearnsha@arm.com> + + PR target/102125 + * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding + memcpy if the size is not more than MOVE_MAX * MOVE_RATIO. + +2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * gcov-io.cc (gcov_read_string): Reword documentation comment. + +2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com> + + * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec] + stanza. + (NEG_V4SF): Likewise. + (NEG_V4SI): Likewise. + (NEG_V8HI): Likewise. + (NEG_V2DF): Move to [vsx] stanza. + (NEG_V2DI): Likewise. + +2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com> + + PR middle-end/105032 + * lra-assigns.cc (find_reload_regno_insns): Modify loop condition. + +2022-03-30 Tom de Vries <tdevries@suse.de> + Tobias Burnus <tobias@codesourcery.com> + + * doc/invoke.texi (march): Document __PTX_SM__. + (mptx): Document __PTX_ISA_VERSION_MAJOR__ and + __PTX_ISA_VERSION_MINOR__. + +2022-03-30 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/105093 + * ubsan.cc (instrument_object_size): If t is equal to inner and + is a decl other than global var, punt. When emitting call to + UBSAN_OBJECT_SIZE ifn, make sure base is addressable. + +2022-03-30 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105094 + * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if + bitsize <= 0 rather than just == 0. + +2022-03-30 Tom de Vries <tdevries@suse.de> + + * doc/invoke.texi (misa, mptx): Update. + (march, march-map): Add. + +2022-03-30 Thomas Schwinge <thomas@codesourcery.com> + + * opt-functions.awk (n_args): New function. + (lang_enabled_by): Merge function into... + * optc-gen.awk <END>: ... sole user here. + Improve diagnostics. + +2022-03-29 Marek Polacek <polacek@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + PR middle-end/103597 + * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps + into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P. + (gimplify_cond_expr): Set UNUSED_LABEL_P. + * tree.h (UNUSED_LABEL_P): New. + +2022-03-29 Michael Meissner <meissner@linux.ibm.com> + + * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to + be any VSX register. + +2022-03-29 Richard Earnshaw <rearnsha@arm.com> + + PR target/102024 + * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle + zero-sized bit-fields. Detect cases where a warning may be needed. + (aarch64_vfp_is_call_or_return_candidate): Emit a note if a + zero-sized bit-field has caused parameter passing to change. + +2022-03-29 Richard Earnshaw <rearnsha@arm.com> + + PR target/102024 + * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized + bit-fields. Detect cases where a warning may be needed. + (aapcs_vfp_is_call_or_return_candidate): Emit a note if + a zero-sized bit-field has caused parameter passing to change. + +2022-03-29 Richard Earnshaw <rearnsha@arm.com> + + PR target/96882 + * config/arm/arm.cc (arm_get_pcs_model): Disable selection of + ARM_PCS_AAPCS_LOCAL. + +2022-03-29 Tom de Vries <tdevries@suse.de> + + PR target/104857 + * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit + __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__. + * config/nvptx/nvptx.cc (ptx_version_to_number): New function. + * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare. + +2022-03-29 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.opt (m64): Update help text to reflect that it + is ignored. + +2022-03-29 Tom de Vries <tdevries@suse.de> + + PR target/104714 + * config/nvptx/nvptx.opt (march-map=*): Add aliases. + +2022-03-29 Jan Hubicka <hubicka@ucw.cz> + + * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test + TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS. + * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro. + (TARGET_USE_GATHER_4PARTS): New macro. + * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune + (X86_TUNE_USE_GATHER_4PARTS): New tune + +2022-03-29 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.opt (march): Add alias of misa. + +2022-03-29 Chenghua Xu <xuchenghua@loongson.cn> + Lulu Cheng <chenglulu@loongson.cn> + + * doc/install.texi: Add LoongArch options section. + * doc/invoke.texi: Add LoongArch options section. + * doc/md.texi: Add LoongArch options section. + +2022-03-29 Chenghua Xu <xuchenghua@loongson.cn> + Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/loongarch-c.cc + +2022-03-29 Chenghua Xu <xuchenghua@loongson.cn> + Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/larchintrin.h: New file. + * config/loongarch/loongarch-builtins.cc: New file. + +2022-03-29 Chenghua Xu <xuchenghua@loongson.cn> + Lulu Cheng <chenglulu@loongson.cn> + + * config/host-linux.cc: Add LoongArch support. + * config/loongarch/loongarch-protos.h: New file. + * config/loongarch/loongarch-tune.h: Likewise. + * config/loongarch/loongarch.cc: Likewise. + * config/loongarch/loongarch.h: Likewise. + +2022-03-29 Chenghua Xu <xuchenghua@loongson.cn> + Lulu Cheng <chenglulu@loongson.cn> + + * config/loongarch/constraints.md: New file. + * config/loongarch/generic.md: New file. + * config/loongarch/la464.md: New file. + * config/loongarch/loongarch-ftypes.def: New file. + * config/loongarch/loongarch-modes.def: New file. + * config/loongarch/loongarch.md: New file. + * config/loongarch/predicates.md: New file. + * config/loongarch/sync.md: New file. + +2022-03-29 Chenghua Xu <xuchenghua@loongson.cn> + Lulu Cheng <chenglulu@loongson.cn> + + * configure: Regenerate file. + +2022-03-29 Chenghua Xu <xuchenghua@loongson.cn> + Lulu Cheng <chenglulu@loongson.cn> + + * common/config/loongarch/loongarch-common.cc: New file. + * config/loongarch/genopts/genstr.sh: New file. + * config/loongarch/genopts/loongarch-strings: New file. + * config/loongarch/genopts/loongarch.opt.in: New file. + * config/loongarch/loongarch-str.h: New file. + * config/loongarch/gnu-user.h: New file. + * config/loongarch/linux.h: New file. + * config/loongarch/loongarch-cpu.cc: New file. + * config/loongarch/loongarch-cpu.h: New file. + * config/loongarch/loongarch-def.c: New file. + * config/loongarch/loongarch-def.h: New file. + * config/loongarch/loongarch-driver.cc: New file. + * config/loongarch/loongarch-driver.h: New file. + * config/loongarch/loongarch-opts.cc: New file. + * config/loongarch/loongarch-opts.h: New file. + * config/loongarch/loongarch.opt: New file. + * config/loongarch/t-linux: New file. + * config/loongarch/t-loongarch: New file. + * config.gcc: Add LoongArch support. + * configure.ac: Add LoongArch support. + +2022-03-29 Thomas Schwinge <thomas@codesourcery.com> + + * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs' + typo. + +2022-03-29 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105080 + * tree-ssa-strlen.cc (printf_strlen_execute): Always init + loops and SCEV. + +2022-03-28 Indu Bhagat <indu.bhagat@oracle.com> + + * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead. + (output_ctf_vars): Likewise. + +2022-03-28 Jason Merrill <jason@redhat.com> + + PR c++/59426 + * doc/extend.texi: Refer to __is_trivial instead of __is_pod. + +2022-03-28 H.J. Lu <hjl.tools@gmail.com> + + PR target/105068 + * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with + "Yw" in clobber. + +2022-03-28 Tom de Vries <tdevries@suse.de> + + PR target/104818 + * config/nvptx/gen-opt.sh (ptx_isa): Improve help text. + * config/nvptx/nvptx-gen.opt: Regenerate. + * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text. + * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on + gen-opt.sh. + +2022-03-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/104308 + * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing + to loads then stores, set the location of the new load stmt. + +2022-03-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105070 + * tree-switch-conversion.h + (bit_test_cluster::hoist_edge_and_branch_if_true): Add location + argument. + * tree-switch-conversion.cc + (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate + cond with location. + (bit_test_cluster::emit): Annotate all generated expressions + with location. + +2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry. + +2022-03-28 liuhongt <hongtao.liu@intel.com> + + PR target/105066 + * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of + alternative 4 from sse4_noavx to noavx. + +2022-03-28 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/105056 + * tree-predcom.cc (component::component): Initialize also comp_step. + +2022-03-27 H.J. Lu <hjl.tools@gmail.com> + + PR target/105068 + * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with + "Yw". + +2022-03-26 Roger Sayle <roger@nextmovesoftware.com> + + PR middle-end/104885 + * calls.cc (mark_stack_region_used): Check that the region + is within the allocated size of stack_usage_map. + +2022-03-26 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/103775 + * recog.cc (check_invalid_inc_dec): New function. + (insn_invalid_p): Return 1 if REG_INC operand overlaps + any stored REGs. + +2022-03-26 H.J. Lu <hjl.tools@gmail.com> + + PR target/105058 + * config/i386/sse.md (loadiwkey): Replace "v" with "x". + (aes<aesklvariant>u8): Likewise. + +2022-03-26 H.J. Lu <hjl.tools@gmail.com> + + PR target/105052 + * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3): + Replace "Yv" with "x". + (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise. + (ssse3_psign<mode>3): Likewise. + +2022-03-26 Hans-Peter Nilsson <hp@axis.com> + + * reload.cc (find_reloads): Align comment with code where + considering the intersection of register classes then tweaking the + regclass for the current alternative or rejecting it. + +2022-03-25 Christophe Lyon <christohe.lyon@arm.com> + + PR target/104882 + Revert + 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org> + + * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete. + (mve_vec_unpack<US>_hi_<mode>): Delete. + (@mve_vec_pack_trunc_lo_<mode>): Delete. + (mve_vmovntq_<supf><mode>): Remove '@' prefix. + * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back + from vec-common.md. + (vec_unpack<US>_lo_<mode>): Likewise. + (vec_pack_trunc_<mode>): Rename from + neon_quad_vec_pack_trunc_<mode>. + * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete. + (vec_unpack<US>_lo_<mode>): Delete. + (vec_pack_trunc_<mode>): Delete. + +2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com> + + PR middle-end/104971 + * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard + regs to clear remove_p flag. + +2022-03-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105053 + * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick + the correct live-out stmt for a reduction chain. + +2022-03-25 Richard Biener <rguenther@suse.de> + + PR middle-end/105049 + * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or + CONSTRUCTOR first elements. + +2022-03-25 Tobias Burnus <tobias@codesourcery.com> + + PR analyzer/103533 + * doc/invoke.texi (Static Analyzer Options): Move + @ignore block after @gccoptlist's '}' for 'make pdf'. + +2022-03-25 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/104954 + * doc/invoke.texi (Static Analyzer Options): Add + -fdump-analyzer-untracked. + +2022-03-25 Avinash Sonawane <rootkea@gmail.com> + + PR analyzer/103533 + * doc/invoke.texi: Document that enabling taint analyzer + checker disables some warnings from `-fanalyzer`. + +2022-03-24 Alexandre Oliva <oliva@adacore.com> + + PR debug/104564 + * gimple-harden-conditionals.cc (detach_value): Keep temps + anonymous. + +2022-03-24 Alexandre Oliva <oliva@adacore.com> + + PR middle-end/104975 + * gimple-harden-conditionals.cc + (pass_harden_compares::execute): Force split in case of + multiple edges. + +2022-03-24 Jakub Jelinek <jakub@redhat.com> + + PR c++/105035 + * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either + field0 or field1 is not a FIELD_DECL, return false. + +2022-03-24 Richard Biener <rguenther@suse.de> + + * tree-predcom.cc (chain::chain): Add CTOR. + (component::component): Likewise. + (pcom_worker::release_chain): Use delete. + (release_components): Likewise. + (pcom_worker::filter_suitable_components): Likewise. + (pcom_worker::split_data_refs_to_components): Use new. + (make_invariant_chain): Likewise. + (make_rooted_chain): Likewise. + (pcom_worker::combine_chains): Likewise. + * tree-vect-loop.cc (vect_create_epilog_for_reduction): + Make sure to release previously constructed scalar_results. + * tree-vect-stmts.cc (vectorizable_load): Use auto_vec + for vec_offsets. + * vr-values.cc (simplify_using_ranges::~simplify_using_ranges): + Release m_flag_set_edges. + +2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR tree-optimization/104970 + * tree-object-size.cc (parm_object_size): Restrict size + computation scenarios to explicit access attributes. + +2022-03-24 Kewen Lin <linkw@linux.ibm.com> + + PR target/104967 + * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null + function types. + +2022-03-23 Richard Biener <rguenther@suse.de> + + PR target/102125 + * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the + use of movmisalign when either the source or destination + decl is properly aligned. + +2022-03-23 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/105028 + * ira-color.cc (form_threads_from_copies): Remove unnecessary + copying of the sorted_copies tail. + +2022-03-23 Martin Liska <mliska@suse.cz> + + * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): + Use %qs in format. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): + Reword the error message. + +2022-03-23 liuhongt <hongtao.liu@intel.com> + + PR target/104976 + * config/i386/sse.md (ssePSmodelower): New. + (*avx_cmp<mode>3_ltint_not): Force_reg operand before + lowpart_subreg to avoid NULL_RTX. + (<avx512>_fmaddc_<mode>_mask1<round_expand_name>, + <avx512>_fcmaddc_<mode>_mask1<round_expand_name>, + fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst, + <avx512>_<complexopname>_<mode>_mask<round_name>, + avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>, + avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>, + avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>, + avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>, + float<floatunssuffix><mode>v4hf2, + float<floatunssuffix>v2div2hf2, + fix<fixunssuffix>_truncv4hf<mode>2, + fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2, + extendv2hfv2df2, + trunc<mode>v4hf2,truncv2dfv2hf2, + *avx512bw_permvar_truncv16siv16hi_1, + *avx512bw_permvar_truncv16siv16hi_1_hf, + *avx512f_permvar_truncv8siv8hi_1, + *avx512f_permvar_truncv8siv8hi_1_hf, + *avx512f_vpermvar_truncv8div8si_1, + *avx512f_permvar_truncv32hiv32qi_1, + *avx512f_permvar_truncv16hiv16qi_1, + *avx512f_permvar_truncv4div4si_1, + *avx512f_pshufb_truncv8hiv8qi_1, + *avx512f_pshufb_truncv4siv4hi_1, + *avx512f_pshufd_truncv2div2si_1, + sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1, + ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto. + +2022-03-22 Tom de Vries <tdevries@suse.de> + + PR target/104925 + * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"): + Use % as register prefix. + +2022-03-22 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p) + (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for + mexperimental. + +2022-03-22 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.opt (mexperimental): New option. + +2022-03-22 Tom de Vries <tdevries@suse.de> + + PR target/104957 + * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare. + * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker + for alias. + (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def. + (nvptx_asm_output_def_from_decls): New function. + * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to + gcc_unreachable (). + (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to + nvptx_asm_output_def_from_decls. + * config/nvptx/nvptx.opt (malias): New opt. + +2022-03-22 Tom de Vries <tdevries@suse.de> + + PR target/104916 + PR target/104783 + * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp + sync (or uniform warp check for mptx < 6.0). + +2022-03-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/105012 + * tree-if-conv.cc (ifcvt_local_dce): Only call + dse_classify_store when we have a VDEF. + +2022-03-22 Martin Liska <mliska@suse.cz> + + PR target/104902 + * config/nvptx/nvptx.cc (handle_ptx_version_option): + Fix option wrapping in an error message. + +2022-03-22 Martin Liska <mliska@suse.cz> + + PR target/104903 + * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): + Wrap const keyword. + +2022-03-22 Martin Liska <mliska@suse.cz> + + * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma + name. + +2022-03-22 Martin Liska <mliska@suse.cz> + + PR target/104898 + * config/rs6000/rs6000.cc (rs6000_option_override_internal): + Use %qs instead of (%qs). + +2022-03-22 Martin Liska <mliska@suse.cz> + + PR target/104898 + * config/i386/i386-options.cc (ix86_option_override_internal): + Use '%qs' instead of '(%qs)'. + +2022-03-22 Martin Liska <mliska@suse.cz> + + PR target/104898 + * config/aarch64/aarch64.cc (aarch64_handle_attr_arch): + Use 'qs' and remove usage '(%qs)'. + (aarch64_handle_attr_cpu): Likewise. + (aarch64_handle_attr_tune): Likewise. + (aarch64_handle_attr_isa_flags): Likewise. + +2022-03-22 Tamar Christina <tamar.christina@arm.com> + Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning + struct. + (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int + cost. + (neoverse512tvb_tunings): Likewise. + +2022-03-22 Tamar Christina <tamar.christina@arm.com> + Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64.cc (demeter_addrcost_table, + demeter_regmove_cost, demeter_advsimd_vector_cost, + demeter_sve_vector_cost, demeter_scalar_issue_info, + demeter_advsimd_issue_info, demeter_sve_issue_info, + demeter_vec_issue_info, demeter_vector_cost, + demeter_tunings): New tuning structs. + (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter + tuning. + * config/aarch64/aarch64-cores.def: Add entry for demeter. + * config/aarch64/aarch64-tune.md (tune): Add demeter to list. + +2022-03-22 Tamar Christina <tamar.christina@arm.com> + Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct. + (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost. + * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all + tunings to use cpu_memmov_cost struct. + +2022-03-22 Tamar Christina <tamar.christina@arm.com> + Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64.cc (neoversen2_addrcost_table, + neoversen2_regmove_cost, neoversen2_advsimd_vector_cost, + neoversen2_sve_vector_cost, neoversen2_scalar_issue_info, + neoversen2_advsimd_issue_info, neoversen2_sve_issue_info, + neoversen2_vec_issue_info, neoversen2_tunings): New structs. + (neoversen2_tunings): Use new structs and update tuning flags. + (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2 + tuning. + +2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature + bit. + +2022-03-22 liuhongt <hongtao.liu@intel.com> + + PR target/104982 + * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the + following splitter to reversed condition. + +2022-03-22 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/104989 + * calls.cc (expand_call): Don't set ECF_NORETURN in flags after + sorry for passing too large argument, instead set sibcall_failure + for pass == 0, or a new normal_failure flag otherwise. If + normal_failure is set, don't assert all stack has been deallocated + at the end and throw away the whole insn sequence. + +2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com> + + * print-tree.cc: Change array length + +2022-03-22 Hongyu Wang <hongyu.wang@intel.com> + + PR target/104978 + * config/i386/sse.md + (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name): + Use avx512f_movsf_mask instead of vmovaps or vblend, and + force_reg before lowpart_subreg. + (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise. + +2022-03-21 H.J. Lu <hjl.tools@gmail.com> + + PR target/105000 + * common/config/i386/i386-common.cc + (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace + OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET. + +2022-03-21 H.J. Lu <hjl.tools@gmail.com> + + PR target/104998 + * common/config/i386/cpuinfo.h (get_available_features): Pass + 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if + bit_AESKLE is set. + +2022-03-21 Richard Sandiford <richard.sandiford@arm.com> + + PR middle-end/104869 + * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare. + (clobber_group::next_clobber): Likewise. + (def_lookup::prev_def): Rename to... + (def_lookup::last_def_of_prev_group): ...this. + (def_lookup::next_def): Rename to... + (def_lookup::first_def_of_next_group): ...this. + (def_lookup::matching_or_prev_def): Rename to... + (def_lookup::matching_set_or_last_def_of_prev_group): ...this. + (def_lookup::matching_or_next_def): Rename to... + (def_lookup::matching_set_or_first_def_of_next_group): ...this. + (def_lookup::prev_def): New function, taking the lookup insn as + argument. + (def_lookup::next_def): Likewise. + * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to... + (def_lookup::last_def_of_prev_group): ...this. + (def_lookup::next_def): Rename to... + (def_lookup::first_def_of_next_group): ...this. + (def_lookup::matching_or_prev_def): Rename to... + (def_lookup::matching_set_or_last_def_of_prev_group): ...this. + (def_lookup::matching_or_next_def): Rename to... + (def_lookup::matching_set_or_first_def_of_next_group): ...this. + * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after + above renaming. + * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function. + (clobber_group::next_clobber): Likewise. + (def_lookup::prev_def): Likewise. + (def_lookup::next_def): Likewise. + (function_info::make_use_available): Pass the lookup insn to + def_lookup::prev_def and def_lookup::next_def. + +2022-03-21 Martin Liska <mliska@suse.cz> + + * doc/invoke.texi: Document min-pagesize parameter. + +2022-03-21 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump + we are estimating niter of loop. + +2022-03-21 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc (riscv_ext_flag_table): + Update flag name and mask name. + * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define + misc macro for vector extensions. + * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ... + (MASK_VECTOR_ELEN_32): ... this. + (MASK_VECTOR_EEW_64): Rename to ... + (MASK_VECTOR_ELEN_64): ... this. + (MASK_VECTOR_EEW_FP_32): Rename to ... + (MASK_VECTOR_ELEN_FP_32): ... this. + (MASK_VECTOR_EEW_FP_64): Rename to ... + (MASK_VECTOR_ELEN_FP_64): ... this. + (TARGET_VECTOR_ELEN_32): New. + (TARGET_VECTOR_ELEN_64): Ditto. + (TARGET_VECTOR_ELEN_FP_32): Ditto. + (TARGET_VECTOR_ELEN_FP_64): Ditto. + (TARGET_MIN_VLEN): Ditto. + * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ... + (riscv_vector_elen_flags): ... this. + +2022-03-21 Hongyu Wang <hongyu.wang@intel.com> + + PR target/104977 + * config/i386/sse.md + (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>): + Correct round operand for intel dialect. + +2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com> + + * diagnostic.cc (diagnostic_cc_tests): Rename to... + (c_diagnostic_cc_tests): ...this. + * opt-problem.cc (opt_problem_cc_tests): Rename to... + (c_opt_problem_cc_tests): ...this. + * selftest-run-tests.cc (selftest::run_tests): No longer run + opt_problem_cc_tests or diagnostic_cc_tests. + * selftest.h (diagnostic_cc_tests): Remove declaration. + (opt_problem_cc_tests): Likewise. + +2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de> + + PR jit/63854 + * hash-traits.h (struct typed_const_free_remove): New. + (struct free_string_hash): New. + * pass_manager.h: Use free_string_hash. + * passes.cc (pass_manager::register_pass_name): Use free_string_hash. + (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map. + +2022-03-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104971 + * config/i386/i386-expand.cc + (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore, + don't push/pop anything and just return const0_rtx. + +2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com> + + PR rtl-optimization/104961 + * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber. + +2022-03-18 Jason Merrill <jason@redhat.com> + + * tree.h (IDENTIFIER_LENGTH): Add comment. + +2022-03-18 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/99578 + PR middle-end/100680 + PR tree-optimization/100834 + * params.opt (--param=min-pagesize=): New parameter. + * pointer-query.cc + (compute_objsize_r) <case ARRAY_REF>: Formatting fix. + (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead + of zero for pointer constants equal or larger than min-pagesize. + +2022-03-18 Tom de Vries <tdevries@suse.de> + + * gimplify.cc (gimplify_omp_for): Set location using 'input_location'. + Set gfor location only when dealing with a OMP_TASKLOOP. + +2022-03-18 Tom de Vries <tdevries@suse.de> + + * gimplify.cc (gimplify_omp_for): Set taskloop location. + +2022-03-18 Tom de Vries <tdevries@suse.de> + + PR target/104952 + * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY + is executed unconditionally. + +2022-03-18 liuhongt <hongtao.liu@intel.com> + + PR target/104974 + * config/i386/i386.md (*movhi_internal): Set attr type from HI + to HF for alternative 12 under TARGET_AVX512FP16. + +2022-03-18 Cui,Lili <lili.cui@intel.com> + + PR target/104963 + * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX. + * doc/invoke.texi: Update documents for Intel sapphirerapids. + +2022-03-17 Roger Sayle <roger@nextmovesoftware.com> + + PR target/86722 + PR tree-optimization/90356 + * config/i386/i386.md (*movtf_internal): Don't guard + standard_sse_constant_p clause by optimize_function_for_size_p. + (*movdf_internal): Likewise. + (*movsf_internal): Likewise. + +2022-03-17 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/102943 + * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via + dominators and apply intermediary outgoing edge ranges. + +2022-03-17 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104960 + * passes.def: Add pass parameter to pass_sink_code, mark + last one to unsplit edges. + * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New. + (pass_sink_code::execute): Always execute TODO_cleanup_cfg + when we need to unsplit edges. + +2022-03-17 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/103984 + * gimplify.cc (gimplify_target_expr): Gimplify type sizes and + TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers + and asan unpoisioning, then append the temporary sequence and + finally the TARGET_EXPR_CLEANUP clobbers. + +2022-03-16 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/sse.md: Delete corrupt character/typo. + +2022-03-16 Roger Sayle <roger@nextmovesoftware.com> + + PR target/94680 + * config/i386/sse.md (sse2_movq128): New define_expand to + preserve previous named instruction. + (*sse2_movq128_<mode>): Renamed from sse2_movq128, and + generalized to VI8F_128 (both V2DI and V2DF). + +2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR tree-optimization/104941 + * tree-object-size.cc (size_for_offset): Make useless conversion + check lighter and assign result of fold_convert to OFFSET. + +2022-03-16 H.J. Lu <hjl.tools@gmail.com> + + PR target/104890 + * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before + pushing target("general-regs-only"). + +2022-03-16 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc (riscv_ext_version_table): + Add version info for zk, zks and zkn. + +2022-03-16 LiaoShihua <shihua@iscas.ac.cn> + + * common/config/riscv/riscv-common.cc + (riscv_combine_info): New. + (riscv_subset_list::handle_combine_ext): Combine back into zk to + maintain the canonical order in isa strings. + (riscv_subset_list::parse): Ditto. + * config/riscv/riscv-subset.h (handle_combine_ext): New. + +2022-03-16 Richard Biener <rguenther@suse.de> + + PR tree-optimization/102008 + * passes.def: Move the added code sinking pass before the + preceeding phiopt pass. + +2022-03-16 Patrick Palka <ppalka@redhat.com> + + PR c++/96780 + * doc/invoke.texi (C++ Dialect Options): Document + -ffold-simple-inlines. + +2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR tree-optimization/104942 + * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS. + +2022-03-16 Jakub Jelinek <jakub@redhat.com> + + PR target/104910 + * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy + imm rtx. + +2022-03-16 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + * gimple-match-head.cc (single_use): Implement inline using a + single loop. + +2022-03-16 Roger Sayle <roger@nextmovesoftware.com> + + * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p + instead of HONOR_NANS. + (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as + this can't trap/signal. + +2022-03-16 liuhongt <hongtao.liu@intel.com> + + PR target/104946 + * config/i386/i386-builtin.def (BDESC): Add + CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD. + * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold + __builtin_ia32_blendvpd w/o sse4.2 + +2022-03-15 Peter Bergner <bergner@linux.ibm.com> + + PR target/104923 + * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict + acceptable MEM addresses. + +2022-03-15 Jakub Jelinek <jakub@redhat.com> + + PR target/91229 + * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p, + riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0 + to warning calls. + +2022-03-15 Jakub Jelinek <jakub@redhat.com> + + PR target/104890 + * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse + instead of general-regs-only. + +2022-03-15 Roger Sayle <roger@nextmovesoftware.com> + Marc Glisse <marc.glisse@inria.fr> + Richard Biener <rguenther@suse.de> + + PR tree-optimization/101895 + * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def. + (plus (vec_perm (mult ...) ...) ...): New reordering simplification. + +2022-03-15 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/104814 + * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't + end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL. + +2022-03-15 Martin Sebor <msebor@redhat.com> + + PR middle-end/104436 + * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores): + Check for warning suppression. Avoid by-value arguments transformed + into by-transparent-reference. + +2022-03-14 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable + transformation when *zero_extend<mode>si2 is not available. + +2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang> + + * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define. + * config/mips/mips.cc (mips_option_override): Make + -fsanitize=address imply -fasynchronous-unwind-tables. This is + needed by libasan for stack backtrace on MIPS. + (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET. + +2022-03-14 Jakub Jelinek <jakub@redhat.com> + + PR debug/104778 + * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify + SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive + call simplified the first operand into VOIDmode constant. + +2022-03-14 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/102586 + * doc/extend.texi (__builtin_clear_padding): Clearify that for C++ + argument type should be pointer to trivially-copyable type unless it + is address of a variable or parameter. + +2022-03-14 Jakub Jelinek <jakub@redhat.com> + + PR target/99754 + * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into + first rather than last element of the vector, use __m32_u to do + a really unaligned load, use just 0 instead of (int)0. + (_mm_loadu_si16): Put loaded value into first rather than last + element of the vector, use __m16_u to do a really unaligned load, + use just 0 instead of (short)0. + +2022-03-14 Jakub Jelinek <jakub@redhat.com> + + PR other/104899 + * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo + in diagnostic message - cannott -> cannot. Use %< and %> around + names of attribute. Avoid too long line. + * range-op.cc (operator_logical_and::op1_range): Fix up a typo + in comment - cannott -> cannot. Use 2 spaces after . instead of one. + +2022-03-14 liuhongt <hongtao.liu@intel.com> + + PR target/104666 + * config/i386/i386-expand.cc + (ix86_check_builtin_isa_match): New func. + (ix86_expand_builtin): Move code to + ix86_check_builtin_isa_match and call it. + * config/i386/i386-protos.h + (ix86_check_builtin_isa_match): Declare. + * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold + builtin into gimple when isa mismatches. + +2022-03-13 Tobias Burnus <tobias@codesourcery.com> + + * doc/invoke.texi: Fix typos. + * doc/tm.texi.in: Remove duplicated word. + * doc/tm.texi: Regenerate. + +2022-03-12 Segher Boessenkool <segher@kernel.crashing.org> + + PR target/104829 + * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output + "ppc" and "ppc64" based on rs6000_cpu. + +2022-03-12 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100280 + PR middle-end/104892 + * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1): + Remove special handling of 'GOMP_MAP_FORCE_TOFROM'. + +2022-03-12 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100280 + PR middle-end/104086 + * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1): + Mark variables used in 'present' clauses as addressable. + * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully + handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'. + +2022-03-12 Thomas Schwinge <thomas@codesourcery.com> + + PR other/65095 + * tree-core.h (user_omp_claus_code_name): Declare function. + * tree.cc (user_omp_clause_code_name): New function. + +2022-03-12 Roger Sayle <roger@nextmovesoftware.com> + + PR middle-end/98420 + * match.pd (minus @0 @0): Additional checks for -fno-rounding-math + (the defaut) or -fno-signed-zeros. + +2022-03-12 Michael Meissner <meissner@linux.ibm.com> + + PR target/104868 + * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when + moving from a GPR register to an Altivec register. + +2022-03-11 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/98335 + * config/i386/i386.md (peephole2): Eliminate redundant insv. + Combine movl followed by movb. Transform xorl followed by + a suitable movb or movw into the equivalent movz[bw]l. + +2022-03-11 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + PR tree-optimization/98335 + * builtins.cc (get_object_alignment_2): Export. + * builtins.h (get_object_alignment_2): Likewise. + * tree-ssa-alias.cc (ao_ref_alignment): New. + * tree-ssa-alias.h (ao_ref_alignment): Declare. + * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether + to align head/tail, writing more bytes but using fewer store insns. + +2022-03-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104880 + * tree-ssa.cc (execute_update_address_taken): Remember if we + optimistically made something not addressable and + prepare to undo it. + +2022-03-11 Richard Biener <rguenther@suse.de> + + PR target/104762 + * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not + cost the first lane of SSE pieces as inserts for vec_construct. + +2022-03-10 Roger Sayle <roger@nextmovesoftware.com> + + PR c++/84964 + * calls.cc (expand_call): Ignore stack adjustments after sorry. + +2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com> + + PR target/103074 + * lra-constraints.cc (split_reg): Set up + check_and_force_assignment_correctness_p when splitting hard + register live range. + +2022-03-10 Martin Jambor <mjambor@suse.cz> + + PR ipa/104813 + * ipa-cp.cc (create_specialized_node): Move removal of + self-recursive calls from callers vector before refrence + adjustments. + +2022-03-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/102943 + * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec): + Make a bitmap_head. + (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch + to tree view. + (sbr_sparse_bitmap::set_bb_range): Adjust. + (sbr_sparse_bitmap::get_bb_range): Likewise. + +2022-03-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/102943 + * tree-ssa-dom.cc (back_propagate_equivalences): Only + populate the dominance bitmap if fast queries are not + available. Use a tree view bitmap. + (record_temporary_equivalences): Cache the dominance bitmap + across all equivalences on the edge. + +2022-03-10 Tom de Vries <tdevries@suse.de> + + PR target/104840 + * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead + of false,true. + +2022-03-10 Tom de Vries <tdevries@suse.de> + + PR target/104783 + * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate) + (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate. + (nvptx_get_unisimt_outside_simt_predicate): New function. + (predicate_insn): New function, factored out of ... + (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns. + * config/nvptx/nvptx.h (struct machine_function): Add + unisimt_outside_simt_predicate field. + * config/nvptx/nvptx.md (define_insn "nvptx_warpsync") + (define_insn "nvptx_uniform_warp_check"): Make predicable. + +2022-03-10 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused + result. + +2022-03-10 Tom de Vries <tdevries@suse.de> + + PR target/104815 + * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand + modifier. + * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns. + +2022-03-10 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"): + Emit atom.and.b64 instead of atom.b64.and. + +2022-03-10 Tom de Vries <tdevries@suse.de> + + * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ... + (MULTILIB_OPTIONS): ... here. + +2022-03-10 Tom de Vries <tdevries@suse.de> + + PR target/104758 + * config/nvptx/nvptx.opt (misa): Set default to sm_30. + * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30. + +2022-03-10 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/90115 + PR middle-end/102330 + PR middle-end/104774 + * omp-low.cc (oacc_privatization_candidate_p) + (oacc_privatization_scan_clause_chain) + (oacc_privatization_scan_decl_chain, lower_oacc_private_marker): + Analyze 'lookup_decl'-translated DECL. + +2022-03-10 Jakub Jelinek <jakub@redhat.com> + + PR target/99708 + * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove + RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float. + (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove. + * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return + "**NULL**" if type_node is NULL first. Handle + ieee128_float_type_node. + (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node + and ptr_ibm128_float_type_node. Set ibm128_float_type_node and + ieee128_float_type_node to NULL rather than long_double_type_node if + they aren't supported. Do support __ibm128 even if + !TARGET_FLOAT128_TYPE when long double is double double. + (rs6000_expand_builtin): Error if bif_is_ibm128 and + !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to + RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check + for it. + * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define + __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined. + (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here. + Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL. + Formatting fix. + * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute. + (struct attrinfo): Add isibm128 member. + (TYPE_MAP_SIZE): Remove. + (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use + ibm128_float_type_node only if it is non-NULL, otherwise fall back + to long_double_type_node. Remove "pif" entry. + (parse_bif_attrs): Handle ibm128 attribute and print it for debugging. + (write_decls): Output bif_ibm128_bit and bif_is_ibm128. + (write_type_node): Use sizeof type_map / sizeof type_map[0] + instead of TYPE_MAP_SIZE. + (write_bif_static_init): Handle isibm128. + * config/rs6000/rs6000-builtins.def: Document ibm128 attribute. + (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128 + attribute. + +2022-03-09 Richard Biener <rguenther@suse.de> + + * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF + with non-decl operand, avoiding a copy. + +2022-03-09 Jakub Jelinek <jakub@redhat.com> + + PR target/104781 + * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32. + +2022-03-09 Richard Biener <rguenther@suse.de> + + PR middle-end/104786 + * cfgexpand.cc (expand_asm_stmt): Do not generate a copy + for VLAs without an upper size bound. + +2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang> + + PR tree-optimization/104851 + * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one + error. + +2022-03-09 Jakub Jelinek <jakub@redhat.com> + + PR c/104711 + * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value + is enabled by it only for C++11 to C++17 rather than for C++03 or + later. + (-Wshift-negative-value): Similarly (except here we stated + that it is enabled for C++11 or later). + +2022-03-09 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/104839 + * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>: + Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET. + (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED + instead of incorrect 0 in SUBREG_PROMOTED_SET. + +2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang> + + PR target/104842 + * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned + value before adding an offset. + +2022-03-08 Christophe Lyon <christophe.lyon@arm.com> + + * config/arm/arm-builtins.cc + (arm_binop_none_none_unone_qualifiers): Delete. + (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete. + +2022-03-08 Iain Sandoe <iain@sandoe.co.uk> + + PR translation/104552 + * config/host-darwin.cc (darwin_gt_pch_get_address): Amend + the PCH out of memory error message punctuation and wording. + +2022-03-08 Marek Polacek <polacek@redhat.com> + + PR rtl-optimization/104777 + * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if + ASM_OPERANDS_LABEL_VEC has at least one element. + +2022-03-08 H.J. Lu <hjl.tools@gmail.com> + + PR target/104781 + * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is + stack realignment or regparm nested function with EH return. + +2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR target/104790 + * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO. + * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base + register for non widening loads or narrowing stores. + +2022-03-08 Eric Gallager <egallager@gcc.gnu.org> + + PR translation/104552 + * params.opt: Fix typo. + +2022-03-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/84201 + * params.opt (-param=vect-induction-float): Add. + * doc/invoke.texi (vect-induction-float): Document. + * tree-vect-loop.cc (vectorizable_induction): Honor + param_vect_induction_float. + +2022-03-08 Martin Jambor <mjambor@suse.cz> + + PR translation/104552 + * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word + "that" in the description. + +2022-03-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104825 + * tree-ssa-sccvn.cc (visit_reference_op_call): Properly + guard modref get_ao_ref on a pointer typed argument. + +2022-03-08 liuhongt <hongtao.liu@intel.com> + + * config/i386/sse.md (*vec_dupv4si): Disable memory operand + for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed. + +2022-03-07 Jonathan Wakely <jwakely@redhat.com> + + * doc/invoke.texi (C++ Modules): Remove anachronism. + +2022-03-07 Martin Liska <mliska@suse.cz> + + PR middle-end/104381 + * opts.cc (finish_options): If debug info is disabled + (debug_info_level) and -fvar-tracking is unset, disable it. + +2022-03-07 Jakub Jelinek <jakub@redhat.com> + + * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment. + * config/riscv/riscv.cc: Likewise. + * config/darwin.h: Likewise. + * config/i386/i386.cc: Likewise. + * config/aarch64/thunderx3t110.md: Likewise. + * config/aarch64/fractional-cost.h: Likewise. + * config/vax/vax.cc: Likewise. + * config/rs6000/pcrel-opt.md: Likewise. + * config/rs6000/predicates.md: Likewise. + * ctfc.h: Likewise. + * tree-ssa-uninit.cc: Likewise. + * value-relation.h: Likewise. + * gimple-range-gori.cc: Likewise. + * ipa-polymorphic-call.cc: Likewise. + * pointer-query.cc: Likewise. + * ipa-sra.cc: Likewise. + * internal-fn.cc: Likewise. + * varasm.cc: Likewise. + * gimple-ssa-warn-access.cc: Likewise. + +2022-03-07 Martin Liska <mliska@suse.cz> + + PR target/104794 + * config/arm/arm.cc (arm_option_override_internal): Add missing + space. + +2022-03-07 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104782 + * tree-vect-slp.cc (vectorize_slp_instance_root_stmt): + Re-instantiate r10-5979 fix, add comment. + +2022-03-07 Martin Liska <mliska@suse.cz> + + PR target/104797 + * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove + parenthesis from built-in name. + +2022-03-07 Martin Liska <mliska@suse.cz> + + PR target/104794 + * config/arm/arm.cc (arm_option_override_internal): Fix quoting + of options in error messages. + (arm_option_reconfigure_globals): Likewise. + +2022-03-07 Martin Liska <mliska@suse.cz> + + PR target/104794 + * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error + message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can + have only range [0,32]. + +2022-03-07 Jakub Jelinek <jakub@redhat.com> + + PR target/104775 + * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use + S constraint instead of T in the last alternative. + +2022-03-07 Martin Liska <mliska@suse.cz> + + * plugin.cc (default_plugin_dir_name): Remove <dir> from error + message. + +2022-03-07 Martin Liska <mliska@suse.cz> + + PR translation/90148 + * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put + quote to a proper place. + * plugin.cc (default_plugin_dir_name): Likewise. + +2022-03-07 Martin Liska <mliska@suse.cz> + + PR target/99297 + * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation + string. + +2022-03-07 Jakub Jelinek <jakub@redhat.com> + + PR target/104779 + * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New + define_expand pattern. Rename define_insn to ... + (*avx512dq_mul<mode>3<mask_name>): ... this. + (<code><mode>3_mask): New any_logic define_expand pattern. + (<mask_codefor><code><mode>3<mask_name>): Rename to ... + (*<code><mode>3<mask_name>): ... this. + +2022-03-05 Jakub Jelinek <jakub@redhat.com> + + * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove + visited bitmap and its use. Also punt on EDGE_ABNORMAL edges. + +2022-03-05 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + PR testsuite/104732 + * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s. + Include DI mode unconditionally. + (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition, + i.e. always split on !TARGET_64BIT. + (*<any_or>di3_doubleword): Likewise. + (*one_cmpldi2_doubleword): Likewise. + (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s. + (<any_or><mode>3 expander): Likewise. + (one_cmpl<mode>2 expander): Likewise. + +2022-03-05 Michael Meissner <meissner@linux.ibm.com> + + PR target/104698 + * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete. + (mtvsrdd_diti_w1): Delete. + (extendditi2): Convert from define_expand to + define_insn_and_split. Replace with code to deal with both GPR + registers and with altivec registers. + +2022-03-04 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a + bit. Handle most older CPUs. + +2022-03-04 Iain Sandoe <iain@sandoe.co.uk> + + * config/darwin.cc (darwin_fold_builtin): Make fcode an int to + avoid a mismatch with DECL_MD_FUNCTION_CODE(). + +2022-03-04 Iain Sandoe <iain@sandoe.co.uk> + + PR target/104117 + * config/rs6000/darwin.md (@machopic_high_<mode>): New. + (@machopic_low_<mode>): New. + * config/rs6000/predicates.md (macho_pic_address): New. + * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not + apply the TLS processing to Darwin. + * lra-constraints.cc (process_address_1): Revert the changes + in r12-7209. + +2022-03-04 Peter Bergner <bergner@linux.ibm.com> + + PR target/87496 + PR target/104208 + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the + ISA 2.06 requirement for -mabi=ieeelongdouble conditional on + -mlong-double-128. + Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking + from here... + * common/config/rs6000/rs6000-common.cc (rs6000_handle_option): + ... to here. + +2022-03-04 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104529 + * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY + on automatic objects which will be runtime initialized. + +2022-03-04 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100280 + PR middle-end/104132 + PR middle-end/104133 + * omp-low.cc (task_shared_vars): Rename to + 'make_addressable_vars'. Adjust all users. + (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for + 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too. + +2022-03-04 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100280 + * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New. + * tree-core.h: Document it. + * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle + 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'. + * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region): + Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of + 'TREE_ADDRESSABLE'. + +2022-03-04 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100280 + * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region): + Add diagnostic: "note: OpenACC 'kernels' decomposition: variable + '[...]' declared in block made addressable". + +2022-03-04 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100400 + PR middle-end/103836 + PR middle-end/104061 + * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body): + Catch 'GIMPLE_DEBUG'. + +2022-03-04 Jakub Jelinek <jakub@redhat.com> + + PR c/104627 + * tree.cc (warn_deprecated_use): For types prefer to use node + and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is + NULL. + +2022-03-04 H.J. Lu <hjl.tools@gmail.com> + + PR target/104704 + * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return + a pseudo register. + +2022-03-03 Martin Sebor <msebor@redhat.com> + + PR middle-end/104761 + * gimple-ssa-warn-access.cc (pass_waccess::execute): Call + mark_dfs_back_edges. + +2022-03-03 Martin Liska <mliska@suse.cz> + + * configure.ac: Use linker plug-in by default. + * configure: Regenerate. + +2022-03-03 Martin Liska <mliska@suse.cz> + + * configure.ac: Now ld.mold support LTO plugin API, use it. + * configure: Regenerate. + +2022-03-03 Tom de Vries <tdevries@suse.de> + + * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1. + +2022-03-03 Tom de Vries <tdevries@suse.de> + + PR target/104758 + * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30. + +2022-03-03 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}. + +2022-03-03 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104757 + * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than + gimplify_omp_for. + (gimplify_expr) <case OMP_SIMD>: Temporarily disable + gimplify_ctxp->into_ssa around call to gimplify_omp_for. + +2022-03-03 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104558 + * calls.cc (store_one_arg): When not calling emit_push_insn + because size_rtx is const0_rtx, call at least anti_adjust_stack + on arg->locate.alignment_pad if !argblock and the alignment might + be non-zero. + +2022-03-02 Alexandre Oliva <oliva@adacore.com> + + * lra-constraints.cc (undo_optional_reloads): Recognize and + drop insns of multi-word move sequences, tolerate removal + iteration on an already-removed clobber, and refuse to + substitute original pseudos into clobbers. + +2022-03-02 Qing Zhao <qing.zhao@oracle.com> + + PR middle-end/102276 + * common.opt (-Wtrivial-auto-var-init): New option. + * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option. + (-ftrivial-auto-var-init): Update option; + * gimplify.cc (emit_warn_switch_unreachable): New function. + (warn_switch_unreachable_r): Rename to ... + (warn_switch_unreachable_and_auto_init_r): This. + (maybe_warn_switch_unreachable): Rename to ... + (maybe_warn_switch_unreachable_and_auto_init): This. + (gimplify_switch_expr): Update calls to renamed function. + +2022-03-02 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/104686 + * ira-color.cc (object_conflicts_with_allocno_p): New function + using a bitvector test instead of iterating when possible. + (allocnos_conflict_p): Choose the best allocno to iterate over + object conflicts. + (update_conflict_hard_regno_costs): Do allocnos_conflict_p test + last. + +2022-03-02 Jakub Jelinek <jakub@redhat.com> + + * cfg.cc (dump_edge_info): Dump goto_locus if present. + +2022-03-02 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/104589 + * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct + INSN_LOCATION comparison with goto_locus. + +2022-03-02 Jakub Jelinek <jakub@redhat.com> + + * tree-ssa-strlen.cc (strlen_pass::handle_assign, + strlen_pass::before_dom_children): Comment spelling fixes. + +2022-03-02 Jakub Jelinek <jakub@redhat.com> + + * ipa-modref-tree.cc (modref_access_node::contains, + modref_access_node::closer_pair_p, modref_access_node::insert, + modref_access_node::insert_kill): Comment spelling fixes. + * ipa-modref.cc: Likewise. + (modref_summary::finalize, ignore_nondeterminism_p, + class modref_access_analysis, + modref_access_analysis::set_side_effects, + modref_access_analysis::set_nondeterministic, + modref_access_analysis::record_global_memory_load, + modref_access_analysis::propagate, modref_access_analysis::analyze, + struct escape_point, class modref_lattice, modref_lattice::merge, + modref_lattice::merge_deref, class modref_eaf_analysis, + modref_eaf_analysis::merge_call_lhs_flags, + modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate, + modref_eaf_analysis::record_escape_points, remap_kills, + update_escape_summary, remove_useless_summaries, + ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute): + Likewise. + * ipa-modref.h (struct modref_summary, interposable_eaf_flags): + Likewise. + * ipa-modref-tree.h (enum modref_special_parms, + struct modref_access_node): Likewise. + +2022-03-01 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104715 + * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't + unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs + of a call if gimple_call_return_arg is equal to ptr, not just when it + is non-NULL. + +2022-03-01 Jakub Jelinek <jakub@redhat.com> + + * gimple-ssa-warn-access.cc (warn_string_no_nul, + maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p, + matching_alloc_calls_p, maybe_warn_alloc_args_overflow, + pass_waccess::check_alloca, pass_waccess::check_strcat, + memmodel_to_uhwi, fntype_argno_type, + pass_waccess::maybe_check_access_sizes, + pass_waccess::check_call_access, + pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt): + Comment spelling fixes. + +2022-03-01 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104716 + * tree-loop-distribution.cc (find_seed_stmts_for_distribution): + Check if we can copy the loop. + +2022-03-01 H.J. Lu <hjl.tools@gmail.com> + + PR middle-end/104721 + * cfgexpand.cc (expand_gimple_basic_block): Clear + currently_expanding_gimple_stmt when returning inside the loop. + +2022-03-01 Martin Liska <mliska@suse.cz> + + PR ipa/104533 + * multiple_target.cc (get_attr_len): Move to tree.c. + (expand_target_clones): Remove single value checking. + * tree.cc (get_target_clone_attr_len): New fn. + * tree.h (get_target_clone_attr_len): Likewise. + +2022-03-01 Martin Liska <mliska@suse.cz> + + PR gcov-profile/104677 + * doc/invoke.texi: Document more .gcda file name generation. + +2022-03-01 Tom de Vries <tdevries@suse.de> + + PR target/102429 + * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode. + * config/nvptx/nvptx.md + (define_predicate "nvptx_register_or_complex_di_df_register_operand"): + New predicate. + (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"): + Use nvptx_register_or_complex_di_df_register_operand. + +2022-03-01 Tom de Vries <tdevries@suse.de> + + * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options. + * config/nvptx/gen-copyright.sh: New file. + * config/nvptx/gen-h.sh: New file. + * config/nvptx/gen-opt.sh: New file. + * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70) + (TARGET_SM75, TARGET_SM80): Move ... + * config/nvptx/nvptx-gen.h: ... here. New file, generate. + * config/nvptx/nvptx.opt (Enum ptx_isa): Move ... + * config/nvptx/nvptx-gen.opt: ... here. New file, generate. + * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h) + ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target. + +2022-03-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/gen-omp-device-properties.sh: New file. + * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh. + +2022-03-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx-sm.def: New file. + * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def. + * config/nvptx/nvptx-opts.h (enum ptx_isa): Same. + * config/nvptx/nvptx.cc (sm_version_to_string) + (nvptx_omp_device_kind_arch_isa): Same. + +2022-03-01 Robin Dapp <rdapp@linux.ibm.com> + + PR rtl-optimization/104154 + * config/arc/arc.cc (gen_compare_reg): Return the CC-mode + comparison ifcvt passed us. + +2022-03-01 Hongyu Wang <hongyu.wang@intel.com> + + PR target/104664 + * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate): + Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg. + +2022-02-28 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/91384 + * config/i386/i386.md (peephole2): Eliminate final testl insn + from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by + transforming using *negsi_2 for the negation. + +2022-02-28 Roger Sayle <roger@nextmovesoftware.com> + Eric Botcazou <ebotcazou@adacore.com> + + PR middle-end/80270 + * expmed.cc (extract_integral_bit_field): If OP0 is a hard + register, copy it to a pseudo before calling simplify_gen_subreg. + +2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com> + + PR rtl-optimization/104637 + * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many + as possible on one subpass. + +2022-02-28 Qing Zhao <qing.zhao@oracle.com> + + PR middle-end/104550 + * gimple-fold.cc (clear_padding_flush): Suppress warnings for new + created uses. + +2022-02-28 Martin Liska <mliska@suse.cz> + + PR ipa/104648 + * main.cc (main): Use flag_checking instead of CHECKING_P + and run toplev::finalize only if there is not error seen. + +2022-02-28 Richard Biener <rguenther@suse.de> + + * tree-ssa-pre.cc (compute_avail): Revert part of last change. + +2022-02-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104700 + * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline + into ... + (find_or_generate_expression): ... here, simplifying code. + +2022-02-28 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx-opts.h (enum ptx_version): Add + PTX_VERSION_default. + * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle + PTX_VERSION_default. + * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default. + +2022-02-28 Richard Biener <rguenther@suse.de> + + PR rtl-optimization/104686 + * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop + skipping bits that are zero. + (ira_object_conflict_iter_cond): Likewise. + +2022-02-28 Hongyu Wang <hongyu.wang@intel.com> + + * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum. + (_mm512_ternarylogic_epi64): Truncate imm to unsigned + char to avoid error when using ~enum as parameter. + (_mm512_mask_ternarylogic_epi64): Likewise. + (_mm512_maskz_ternarylogic_epi64): Likewise. + (_mm512_ternarylogic_epi32): Likewise. + (_mm512_mask_ternarylogic_epi32): Likewise. + (_mm512_maskz_ternarylogic_epi32): Likewise. + * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64): + Adjust imm param type to unsigned char. + (_mm256_mask_ternarylogic_epi64): Likewise. + (_mm256_maskz_ternarylogic_epi64): Likewise. + (_mm256_ternarylogic_epi32): Likewise. + (_mm256_mask_ternarylogic_epi32): Likewise. + (_mm256_maskz_ternarylogic_epi32): Likewise. + (_mm_ternarylogic_epi64): Likewise. + (_mm_mask_ternarylogic_epi64): Likewise. + (_mm_maskz_ternarylogic_epi64): Likewise. + (_mm_ternarylogic_epi32): Likewise. + (_mm_mask_ternarylogic_epi32): Likewise. + (_mm_maskz_ternarylogic_epi32): Likewise. + +2022-02-25 Jakub Jelinek <jakub@redhat.com> + Marc Glisse <marc.glisse@inria.fr> + + PR tree-optimization/104675 + * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1): + Restrict simplifications to INTEGRAL_TYPE_P. + +2022-02-25 Jakub Jelinek <jakub@redhat.com> + + PR target/104681 + * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move. + +2022-02-25 Claudiu Zissulescu <claziss@synopsys.com> + + * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the + comparison is not valid. + * config/arc/arc.md (movsicc): Fail if comparison is not valid. + (movdicc): Likewise. + (movsfcc): Likewise. + (movdfcc): Likewise. + +2022-02-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103037 + * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare. + (vn_nary_length_from_stmt): Likewise. + (init_vn_nary_op_from_stmt): Likewise. + (vn_nary_op_compute_hash): Likewise. + * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export. + (vn_nary_length_from_stmt): Likewise. + (init_vn_nary_op_from_stmt): Likewise. + (vn_nary_op_compute_hash): Likewise. + * tree-ssa-pre.cc (pre_expr_obstack): New obstack. + (get_or_alloc_expr_for_nary): Pass in the value-id to use, + (re-)compute the hash value and if the expression is not + found allocate it from pre_expr_obstack. + (phi_translate_1): Do not insert the NARY found in the + VN tables but build a PRE expression from the valueized + NARY with the value-id we eventually found. + (find_or_generate_expression): Assert we have an entry + for constant values. + (compute_avail): Insert not valueized expressions into + EXP_GEN using the value-id from the VN tables. + (init_pre): Allocate pre_expr_obstack. + (fini_pre): Free pre_expr_obstack. + +2022-02-25 Jakub Jelinek <jakub@redhat.com> + + PR target/104674 + * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387. + * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use + SLOT_FLOATxFDI_387 rather than SLOT_TEMP. + +2022-02-25 Jakub Jelinek <jakub@redhat.com> + + * warning-control.cc (get_nowarn_spec): Comment spelling fix. + +2022-02-25 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104679 + * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust. + +2022-02-25 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104675 + * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for + COMPLEX_TYPE. + +2022-02-25 Alexandre Oliva <oliva@adacore.com> + + PR target/104121 + PR target/103302 + * expr.cc (emit_move_multi_word): Restore clobbers during LRA. + +2022-02-25 Alexandre Oliva <oliva@adacore.com> + + PR middle-end/104540 + * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL + dw_cfi_cfa_loc. + +2022-02-25 Alexandre Oliva <oliva@adacore.com> + + PR tree-optimization/103856 + * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the + eh edge to be requested through an extra parameter. + (pass_harden_compares::execute): Copy PHI args in the EH dest + block for the new EH edge added for the inverted compare. + +2022-02-24 Palmer Dabbelt <palmer@rivosinc.com> + + * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree + of position independence that -mcmodel=medany affords. + +2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com> + + PR target/104656 + * configure.ac: --disable-gcov if targetting bpf-*. + * configure: Regenerate. + +2022-02-24 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104676 + * tree-loop-distribution.cc (loop_distribution::execute): + Do a full scev_reset. + +2022-02-24 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104601 + * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with + non-SSA_NAME lhs value number vdef to itself instead of e.g. the + vuse value number. + +2022-02-24 Tom de Vries <tdevries@suse.de> + Tobias Burnus <tobias@codesourcery.com> + + * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle + sm_70, sm_75 and sm_80. + * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80. + +2022-02-24 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn + "rotrsi3"): New define_insn. + +2022-02-24 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (gen_comment): Use + DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus. + +2022-02-24 liuhongt <hongtao.liu@intel.com> + + * config/i386/sse.md (<code>v1ti3): Add suffix and replace + isa attr of alternative 2 from avx to avx512vl. + +2022-02-23 Richard Biener <rguenther@suse.de> + Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104644 + * doc/match-and-simplify.texi: Amend ! documentation. + * genmatch.cc (expr::gen_transform): Code-generate ! support + for GENERIC. + (parser::parse_expr): Allow ! for GENERIC. + * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on + bswap. + +2022-02-23 Richard Biener <rguenther@suse.de> + + PR tree-optimization/101636 + * tree-vect-slp.cc (vect_print_slp_tree): Dump the + vector type of the node. + (vect_slp_analyze_operations): Make sure the CTOR + is vectorized with an expected type. + (vectorize_slp_instance_root_stmt): Revert r10-5979 fix. + +2022-02-23 Jakub Jelinek <jakub@redhat.com> + + PR c/104633 + * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit): + Don't warn about calls to corresponding builtin from extern inline + gnu_inline wrappers. + +2022-02-23 Roger Sayle <roger@nextmovesoftware.com> + + PR target/104489 + * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute. + +2022-02-23 Christophe Lyon <christophe.lyon@arm.com> + + PR target/100757 + PR target/101325 + * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix + typo. + +2022-02-23 Cui,Lili <lili.cui@intel.com> + + * doc/invoke.texi: Update documents for Intel architectures. + +2022-02-22 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore + bootstrap. + +2022-02-22 Thomas Schwinge <thomas@codesourcery.com> + + * omp-low.cc (omp_build_component_ref): Move function... + * omp-general.cc (omp_build_component_ref): ... here. Remove + 'static'. + * omp-general.h (omp_build_component_ref): Declare function. + * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove + function. + (build_receiver_ref, build_sender_ref): Call + 'omp_build_component_ref' instead. + +2022-02-22 Thomas Schwinge <thomas@codesourcery.com> + + * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further + simplify. Adjust all users. + +2022-02-22 Segher Boessenkool <segher@kernel.crashing.org> + + PR target/88134 + * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl, + atomic_update_decl): Add GTY markup. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + PR target/100757 + PR target/101325 + * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use + predicate. + (CX_BINARY_UNONE_QUALIFIERS): Likewise. + (CX_TERNARY_UNONE_QUALIFIERS): Likewise. + (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete. + (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete. + (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete. + * config/arm/arm_mve_builtins.def: Use predicated qualifiers. + * config/arm/mve.md: Use VxBI instead of HI. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + PR target/100757 + PR target/101325 + * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate + qualifier. + (STRSBU_P_QUALIFIERS): Likewise. + (LDRGBS_Z_QUALIFIERS): Likewise. + (LDRGBU_Z_QUALIFIERS): Likewise. + (LDRGBWBXU_Z_QUALIFIERS): Likewise. + (LDRGBWBS_Z_QUALIFIERS): Likewise. + (LDRGBWBU_Z_QUALIFIERS): Likewise. + (STRSBWBS_P_QUALIFIERS): Likewise. + (STRSBWBU_P_QUALIFIERS): Likewise. + * config/arm/mve.md: Use VxBI instead of HI. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + PR target/100757 + PR target/101325 + * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ... + (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this. + (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ... + (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this. + (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ... + (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this. + (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ... + (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this. + (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ... + (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this. + (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New. + (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ... + (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this. + (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New. + (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ... + (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this. + (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ... + (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this. + (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ... + (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this. + (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ... + (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this. + (STRS_P_QUALIFIERS): Use predicate qualifier. + (STRU_P_QUALIFIERS): Likewise. + (STRSU_P_QUALIFIERS): Likewise. + (STRSS_P_QUALIFIERS): Likewise. + (LDRGS_Z_QUALIFIERS): Likewise. + (LDRGU_Z_QUALIFIERS): Likewise. + (LDRS_Z_QUALIFIERS): Likewise. + (LDRU_Z_QUALIFIERS): Likewise. + (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ... + (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this. + (BINOP_NONE_NONE_PRED_QUALIFIERS): New. + (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New. + * config/arm/arm_mve_builtins.def: Use new predicated qualifiers. + * config/arm/mve.md: Use MVE_VPRED instead of HI. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + PR target/100757 + PR target/101325 + * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS): + Delete. + (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ... + (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this. + (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New. + * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new + predicated qualifiers. + * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>) + (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + PR target/100757 + * config/arm/arm-protos.h (arm_get_mask_mode): New prototype. + (arm_expand_vector_compare): Update prototype. + * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New. + (arm_vector_mode_supported_p): Add support for VxBI modes. + (arm_expand_vector_compare): Remove useless generation of vpsel. + (arm_expand_vcond): Fix select operands. + (arm_get_mask_mode): New. + * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New. + (vec_cmpu<mode><MVE_vpred>): New. + (vcond_mask_<mode><MVE_vpred>): New. + * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>) + (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ... + * config/arm/neon.md (vec_cmp<mode><v_cmp_result>) + (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here + and disable for MVE. + * doc/sourcebuild.texi (arm_mve): Document new effective-target. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + PR target/100757 + PR target/101325 + * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS) + (BINOP_PRED_NONE_NONE_QUALIFIERS) + (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS) + (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New. + * config/arm/arm-protos.h (mve_bool_vec_to_const): New. + * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI + modes. + (arm_mode_to_pred_mode): New. + (arm_expand_vector_compare): Use the right VxBI mode instead of + HI. + (arm_expand_vcond): Likewise. + (simd_valid_immediate): Handle MODE_VECTOR_BOOL. + (mve_bool_vec_to_const): New. + (neon_make_constant): Call mve_bool_vec_to_const when needed. + * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_) + (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f) + (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u) + (vpselq_s, vpselq_f): Use new predicated qualifiers. + * config/arm/constraints.md (DB): New. + * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators. + (MVE_VPRED, MVE_vpred): New attribute iterators. + * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>) + (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>) + (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI. + (@mve_vpselq_<supf>v2di): Define separately. + (mov<mode>): New expander for VxBI modes. + * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use + MVE_7_HI iterator and add support for DB constraint. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + Richard Sandiford <richard.sandiford@arm.com> + + PR target/100757 + PR target/101325 + * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI, + VNx2BI): Update definition. + * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new + simd types. + (arm_init_builtin): Map predicate vectors arguments to HImode. + (arm_expand_builtin_args): Move HImode predicate arguments to VxBI + rtx. Move return value to HImode rtx. + * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate. + * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes. + * config/arm/arm-simd-builtin-types.def (Pred1x16_t, + Pred2x8_t,Pred4x4_t): New. + * emit-rtl.cc (init_emit_once): Handle all boolean modes. + * genmodes.cc (mode_data): Add boolean field. + (blank_mode): Initialize it. + (make_complex_modes): Fix handling of boolean modes. + (make_vector_modes): Likewise. + (VECTOR_BOOL_MODE): Use new COMPONENT parameter. + (make_vector_bool_mode): Likewise. + (BOOL_MODE): New. + (make_bool_mode): New. + (emit_insn_modes_h): Fix generation of boolean modes. + (emit_class_narrowest_mode): Likewise. + * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT + parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to + define BImode. + * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value): + Fix handling of constm1_rtx for VECTOR_BOOL. + * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL. + (native_decode_vector_rtx): Likewise. + (test_vector_ops_duplicate): Skip vec_merge test + with vectors of booleans. + * varasm.cc (output_constant_pool_2): Likewise. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode + for operand 1. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG. + +2022-02-22 Christophe Lyon <christophe.lyon@arm.com> + + * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (CLASS_MAX_NREGS): Handle VPR. + * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR. + +2022-02-22 Tobias Burnus <tobias@codesourcery.com> + Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70. + * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): + Likewise. + * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70. + +2022-02-22 Tobias Burnus <tobias@codesourcery.com> + Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0. + * doc/invoke.texi (-mptx): Update for new values and defaults. + +2022-02-22 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (gen_comment): New function. + (workaround_uninit_method_1, workaround_uninit_method_2) + (workaround_uninit_method_3): : Use gen_comment. + * config/nvptx/nvptx.opt (mptx-comment): New option. + +2022-02-22 Richard Biener <rguenther@suse.de> + + * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used + for a splat. + +2022-02-22 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + * fold-const.cc (ctor_single_nonzero_element): New function to + return the single non-zero element of a (vector) constructor. + * fold-const.h (ctor_single_nonzero_element): Prototype here. + * match.pd (reduc (constructor@0)): Simplify reductions of a + constructor containing a single non-zero element. + (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify + reductions of vector operations of the same operator with + constant vector operands. + +2022-02-22 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104604 + * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr): + Only check if gimple_assign_rhs1 is COMPLEX_CST if + gimple_assign_rhs_code is COMPLEX_CST. + +2022-02-22 Jakub Jelinek <jakub@redhat.com> + + PR target/104612 + * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg + on input operands before calling lowpart_subreg on it. For output + operand, use a vmode pseudo as destination and then move its lowpart + subreg into operands[0] if lowpart_subreg fails on dest. + (ix86_expand_xorsign): Likewise. + +2022-02-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104582 + PR target/99881 + * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): + Cost GPR to vector register moves for integer vector construction. + +2022-02-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104582 + * tree-vectorizer.h (stmt_info_for_cost::node): New field. + (vector_costs::add_stmt_cost): Add SLP node parameter. + (dump_stmt_cost): Likewise. + (add_stmt_cost): Likewise, new overload and adjust. + (add_stmt_costs): Adjust. + (record_stmt_cost): New overload. + * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node. + (vector_costs::add_stmt_cost): Adjust. + * tree-vect-loop.cc (vect_estimate_min_profitable_iters): + Adjust. + * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record + the SLP node for costing. + (vectorizable_slp_permutation): Likewise. + * tree-vect-stmts.cc (record_stmt_cost): Adjust and add + new overloads. + * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): + Adjust. + * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): + Adjust. + * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost): + Adjust. + (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise. + +2022-02-22 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104582 + * tree-vectorizer.h (add_stmt_cost): New overload. + (record_stmt_cost): Likewise. + * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost): + Use add_stmt_costs. + (vect_get_known_peeling_cost): Use new overloads. + (vect_estimate_min_profitable_iters): Likewise. Consistently + use scalar_stmt for costing versioning checks. + * tree-vect-stmts.cc (record_stmt_cost): New overload. + +2022-02-22 Hongyu Wang <hongyu.wang@intel.com> + + PR target/103069 + * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop): + Split atomic fetch and loop part. + (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop. + * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New + prototype. + * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new + expander under TARGET_RELAX_CMPXCHG_LOOP. + (atomic_compare_and_swap<mode>): Likewise for doubleword modes. + +2022-02-21 Dan Li <ashimida@linux.alibaba.com> + + * config/aarch64/aarch64.cc (SLOT_REQUIRED): + Change wb_candidate[12] to wb_push_candidate[12]. + (aarch64_layout_frame): Likewise, and + change callee_adjust when scs is enabled. + (aarch64_save_callee_saves): + Change wb_candidate[12] to wb_push_candidate[12]. + (aarch64_restore_callee_saves): + Change wb_candidate[12] to wb_pop_candidate[12]. + (aarch64_get_separate_components): + Change wb_candidate[12] to wb_push_candidate[12]. + (aarch64_expand_prologue): Push x30 onto SCS before it's + pushed onto stack. + (aarch64_expand_epilogue): Pop x30 frome SCS, while + preventing it from being popped from the regular stack again. + (aarch64_override_options_internal): Add SCS compile option check. + (TARGET_HAVE_SHADOW_CALL_STACK): New hook. + * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled, + wb_pop_candidate[12], and rename wb_candidate[12] to + wb_push_candidate[12]. + * config/aarch64/aarch64.md (scs_push): New template. + (scs_pop): Likewise. + * doc/invoke.texi: Document -fsanitize=shadow-call-stack. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in: Add hook have_shadow_call_stack. + * flag-types.h (enum sanitize_code): + Add SANITIZE_SHADOW_CALL_STACK. + * opts.cc (parse_sanitizer_options): Add shadow-call-stack + and exclude SANITIZE_SHADOW_CALL_STACK. + * target.def: New hook. + * toplev.cc (process_options): Add SCS compile option check. + * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion. + +2022-02-21 Tom de Vries <tdevries@suse.de> + + PR target/104440 + * config/nvptx/nvptx.cc (workaround_uninit_method_1) + (workaround_uninit_method_2, workaround_uninit_method_3) + (workaround_uninit): New function. + (nvptx_reorg): Use workaround_uninit. + * config/nvptx/nvptx.opt (minit-regs): New option. + +2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR rtl-optimization/104498 + * alias.cc (compare_base_symbol_refs): Correct distance computation + when swapping x and y. + +2022-02-21 Andrew Pinski <apinski@marvell.com> + + PR c/104506 + * tree-ssa.cc (tree_ssa_useless_type_conversion): + Check the inner type before calling useless_type_conversion_p. + +2022-02-19 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn. + * config/nvptx/nvptx.md + (define_insn "nvptx_atomic_store<mode>"): Rename to ... + (define_insn "nvptx_atomic_store_sm70<mode>"): This. + (define_insn "nvptx_atomic_store<mode>"): New define_insn. + (define_expand "atomic_store<mode>"): Handle rename. Use + nvptx_atomic_store instead of atomic_exchange. + +2022-02-19 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all + insns with atomic attribute. Assert that all handled insns are + PARALLELs. + * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): + Set atomic attribute to false. + +2022-02-19 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return + type to bool. + (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or + nvptx_warpsync, if necessary. + +2022-02-19 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/102656 + * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is + known to be within bounds, treat it like automatic variables. + If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from + current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark + it addressable. + +2022-02-18 Pat Haugen <pthaugen@linux.ibm.com> + + * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented. + (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical, + mpower10-fusion-logical-add, mpower10-fusion-add-logical, + mpower10-fusion-2add, mpower10-fusion-2store): Remove. + * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER, + OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options. + * config/rs6000/rs6000.cc (rs6000_option_override_internal, + power10_sched_reorder): Likewise. + * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf, + gen_addadd): Likewise + * config/rs6000/fusion.md: Regenerate. + +2022-02-18 Jakub Jelinek <jakub@redhat.com> + + PR target/104257 + PR target/104598 + * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign + rather than __posix_memalign. + +2022-02-18 Richard Biener <rguenther@suse.de> + + PR target/104581 + * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove. + (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead + of calling ix86_avx_u128_mode_source which would eventually + have returned AVX_U128_ANY in some very special case. + +2022-02-18 Richard Biener <rguenther@suse.de> + + PR tree-optimization/96881 + * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment + CLOBBER handling. + (control_parents_preserved_p): New function. + (eliminate_unnecessary_stmts): Check that we preserved control + parents before retaining a CLOBBER. + (perform_tree_ssa_dce): Pass down aggressive flag + to eliminate_unnecessary_stmts. + +2022-02-17 Jason Merrill <jason@redhat.com> + + * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL + on TYPE_MAIN_VARIANT. + +2022-02-17 Paul A. Clarke <pc@us.ibm.com> + + PR target/104257 + * config/rs6000/bmi2intrin.h: Uglify local variables. + * config/rs6000/emmintrin.h: Likewise. + * config/rs6000/mm_malloc.h: Likewise. + * config/rs6000/mmintrin.h: Likewise. + * config/rs6000/pmmintrin.h: Likewise. + * config/rs6000/smmintrin.h: Likewise. + * config/rs6000/tmmintrin.h: Likewise. + * config/rs6000/xmmintrin.h: Likewise. + +2022-02-17 Robin Dapp <rdapp@linux.ibm.com> + + PR target/104335 + * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false + if the expected comparison's first operand is of mode MODE_CC. + +2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com> + + PR rtl-optimization/104447 + * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore + hard reg set by lra_no_alloc_regs. + +2022-02-17 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/104551 + PR tree-optimization/103771 + * match.pd (cond_expr_convert_p): Add types_match check when + convert is extension. + * tree-vect-patterns.cc + (gimple_cond_expr_convert_p): Adjust comments. + (vect_recog_cond_expr_convert_pattern): Ditto. + +2022-02-17 Jakub Jelinek <jakub@redhat.com> + + PR debug/104557 + * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG + if expr has VOIDmode. + +2022-02-17 liuhongt <hongtao.liu@intel.com> + + * config/i386/cpuid.h (bit_MPX): Removed. + (bit_BNDREGS): Ditto. + (bit_BNDCSR): Ditto. + +2022-02-17 Michael Meissner <meissner@the-meissners.org> + + PR target/99708 + * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define + __SIZEOF_IBM128__ if the IBM 128-bit long double type is created. + Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type + is created. + +2022-02-16 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use + range_compatible_p instead of direct type comparison. + +2022-02-16 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/104544 + * combine.cc (try_combine): When looking for insn whose links + should be updated from i3 to i2, don't stop on debug insns, instead + skip over them. + +2022-02-16 Richard Sandiford <richard.sandiford@arm.com> + + PR target/100056 + * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator. + * config/aarch64/aarch64.md: Extend the PR100056 patterns + to handle plus in the same way as ior, if the operands have + no set bits in common. + +2022-02-15 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/104526 + * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call + new routine. + * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build + of dependency chain if there isn't one. + (gori_compute::condexpr_adjust): New. + * gimple-range-gori.h (class gori_compute): New prototype. + +2022-02-15 Richard Sandiford <richard.sandiford@arm.com> + + PR target/100874 + * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const): + Declare. + * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function. + * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern. + +2022-02-15 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vectorizer.h (vect_scalar_ops_slice): New struct. + (vect_scalar_ops_slice_hash): Likewise. + (vect_scalar_ops_slice::op): New function. + * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function. + (vect_scalar_ops_slice_hash::hash): Likewise. + (vect_scalar_ops_slice_hash::equal): Likewise. + (vect_prologue_cost_for_slp): Check for duplicate vectors. + * config/aarch64/aarch64.cc + (aarch64_vector_costs::m_stp_sequence_cost): New member variable. + (aarch64_aligned_constant_offset_p): New function. + (aarch64_stp_sequence_cost): Likewise. + (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic. + (aarch64_vector_costs::finish_cost): Likewise. + +2022-02-15 Richard Sandiford <richard.sandiford@arm.com> + + * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix + use after free. + +2022-02-15 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104543 + * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits + come after the inner loop. + +2022-02-15 Jakub Jelinek <jakub@redhat.com> + + PR target/104536 + * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use + cannot instead of can%'t in diagnostics. Formatting fixes. + +2022-02-15 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104522 + * fold-const.h (native_interpret_real): Declare. + * fold-const.cc (native_interpret_real): No longer static. Don't + perform MODE_COMPOSITE_P verification here. + (native_interpret_expr) <case REAL_TYPE>: But perform it here instead + for all modes. + * gimple-fold.cc (clear_padding_type): Call native_interpret_real + instead of native_interpret_expr. + * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx + and comparison verification for all FLOAT_MODE_P modes, not just + MODE_COMPOSITE_P. + +2022-02-15 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104519 + * fold-const.cc (multiple_of_p): Remove never true condition. + * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use + the appropriate types for determining whether the difference + of final and base is a multiple of the step. + +2022-02-15 Jakub Jelinek <jakub@redhat.com> + + PR debug/104517 + * omp-low.cc (task_cpyfns): New variable. + (delete_omp_context): Don't call finalize_task_copyfn from here. + (create_task_copyfn): Push task_stmt into task_cpyfns. + (execute_lower_omp): Call finalize_task_copyfn here on entries from + task_cpyfns vector and release the vector. + +2022-02-14 Martin Sebor <msebor@redhat.com> + + PR middle-end/104355 + * doc/invoke.texi (-Warray-bounds): Update documentation. + +2022-02-14 Michael Meissner <meissner@the-meissners.org> + + PR target/104253 + * config/rs6000/rs6000.cc (init_float128_ibm): Update the + conversion functions used to convert IFmode types. + +2022-02-14 Andrew Stubbs <ams@codesourcery.com> + + * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg. + +2022-02-14 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104528 + * tree-ssa.h (find_released_ssa_name): Declare. + * tree-ssa.cc (find_released_ssa_name): Export. + * cfgloop.cc (verify_loop_structure): Look for released + SSA names in loops nb_iterations. + * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration + estimates. + +2022-02-14 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104511 + * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid + touching DFP <-> FP conversions. + +2022-02-14 Richard Biener <rguenther@suse.de> + + PR middle-end/104497 + * gimplify.cc (gimplify_compound_lval): Make sure the + base is a non-register if needed and possible. + +2022-02-13 liuhongt <hongtao.liu@intel.com> + + PR target/103771 + * match.pd (cond_expr_convert_p): New match. + * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare. + (vect_recog_cond_expr_convert_pattern): New. + +2022-02-12 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/104449 + * asan.cc: Include tree-eh.h. + (handle_builtin_alloca): Handle the case when __builtin_alloca or + __builtin_alloca_with_align can throw. + +2022-02-12 Jakub Jelinek <jakub@redhat.com> + + PR target/104502 + * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+ + and AVX512VL isn't available, move operands[1] to operands[0] first. + +2022-02-12 Uroš Bizjak <ubizjak@gmail.com> + + PR target/79754 + * config/i386/i386.cc (type_natural_mode): + Skip decimal float vector modes. + +2022-02-11 Iain Sandoe <iain@sandoe.co.uk> + Vladimir Makarov <vmakarov@redhat.com> + + PR target/104117 + * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p): + Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when + emitting PIC code. + (legitimate_lo_sum_address_p): Likewise. + * lra-constraints.cc (process_address_1): Do not attempt to emit a reg + load from an invalid lo_sum address. + +2022-02-11 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104499 + * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead + of convert. + +2022-02-11 Jakub Jelinek <jakub@redhat.com> + + * tree.cc (build_common_builtin_nodes): Fix up formatting in + __builtin_clear_padding decl creation. + * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode + for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING + argument rather than in 3rd argument. + (gimplify_call_expr): Likewise. Fix up comment formatting. + * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect + 2 arguments instead of 3, take for_auto_init from the value + of 2nd argument. + +2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com> + + PR rtl-optimization/104400 + * lra-constraints.cc (process_alt_operands): Don't make union of + this_alternative_exclude_start_hard_regs when reg class in insn + alternative covers other reg classes in the same alternative. + +2022-02-11 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104446 + * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC + operands. + +2022-02-11 Richard Biener <rguenther@suse.de> + + PR middle-end/104496 + * internal-fn.cc (vectorized_internal_fn_supported_p): + Bail out for integer mode vector types. + +2022-02-11 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/104459 + * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when + moving DEBUG_INSNs between bbs. + +2022-02-11 liuhongt <hongtao.liu@intel.com> + + PR tree-optimization/104479 + * match.pd (uncond_op + vec_cond -> cond_op): Add single_use + for the dest of uncond_op. + +2022-02-11 Tom de Vries <tdevries@suse.de> + + PR target/104456 + * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm + insn. + +2022-02-10 Qing Zhao <qing.zhao@oracle.com> + + PR middle-end/100775 + * function.cc (gen_call_used_regs_seq): Call + df_update_exit_block_uses when updating df. + +2022-02-10 Uroš Bizjak <ubizjak@gmail.com> + + PR target/104469 + * config/i386/sse.md (vec_unpacks_float_lo_v4si): + Change operand 1 constraint to register_operand. + +2022-02-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104373 + * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the + walk kind. + * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default + walk kind as argument. + (run_rpo_vn): Adjust. + (pass_fre::execute): Likewise. + * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip + blocks not reachable. + (execute_late_warn_uninitialized): Mark all edges as + executable. + (execute_early_warn_uninitialized): Use VN to compute + executable edges. + (pass_data_early_warn_uninitialized): Enable a dump file, + change dump name to warn_uninit. + +2022-02-10 Richard Biener <rguenther@suse.de> + + PR middle-end/104467 + * match.pd (vector extract simplification): Multiply the + number of CTOR elements with the number of element elements. + +2022-02-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104466 + * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2 + for the MR_DEPENDENCE checks as intended. + +2022-02-10 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New + define_insn. + (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for + TARGET_SM70. + (define_c_enum "unspecv"): Add UNSPECV_ST. + +2022-02-10 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare. + * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function. + (nvptx_mem_maybe_shared_p): New function. + * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New + define_expand. + +2022-02-10 Tom de Vries <tdevries@suse.de> + + PR target/97005 + * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround + driver JIT bug by using sub.s16 instead of sub.u16. + +2022-02-10 Roger Sayle <roger@nextmovesoftware.com> + + * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate + floating point constants as operands 1 and/or 2. + +2022-02-10 Roger Sayle <roger@nextmovesoftware.com> + + PR target/104345 + * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation. + (sel_false<mode>): Likewise. + (define_code_iterator eqne): New code iterator for EQ and NE. + (*selp<mode>_neg_<code>): New define_insn_and_split to optimize + the negation of a selp instruction. + (*selp<mode>_not_<code>): New define_insn_and_split to optimize + the bitwise not of a selp instruction. + (*setcc_int<mode>): Use set instruction for neg:SI of a selp. + +2022-02-10 Roger Sayle <roger@nextmovesoftware.com> + + * config/nvptx/nvptx.md (any_logic): Move code iterator earlier + in machine description. + (logic): Move code attribute earlier in machine description. + (ilogic): New code attribute, like logic but "ior" for IOR. + (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with... + (<ilogic><mode>3): New define_insn for HSDIM logic operations. + (<ilogic>bi3): New define_insn for BI mode logic operations. + (define_split): Lower logic operations from integer modes to + BI mode predicate operations. + +2022-02-10 Roger Sayle <roger@nextmovesoftware.com> + + * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC. + (one_cmplbi2): New define_insn for not.pred. + (mulditi3): New define_expand for signed widening multiply. + (umulditi3): New define_expand for unsigned widening multiply. + (smul<mode>3_highpart): New define_insn for signed highpart mult. + (umul<mode>3_highpart): New define_insn for unsigned highpart mult. + (*smulhi3_highpart_2): Renamed from smulhi3_highpart. + (*smulsi3_highpart_2): Renamed from smulsi3_highpart. + (*umulhi3_highpart_2): Renamed from umulhi3_highpart. + (*umulsi3_highpart_2): Renamed from umulsi3_highpart. + (*setcc<mode>_from_not_bi): New define_insn. + (*setcc_isinf<mode>): New define_insn for testp.infinite. + (isinf<mode>2): New define_expand. + +2022-02-10 Roger Sayle <roger@nextmovesoftware.com> + + * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>. + (setcc<mode>_from_bi): Additionally support QImode. + (extendbi<mode>2): Additionally support QImode. + (zero_extendbi<mode>2): Additionally support QImode. + (any_sbinary, any_ubinary, any_sunary, any_uunary): New code + iterators for signed and unsigned, binary and unary operations. + (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New + expanders to perform QImode operations using SImode instructions. + (cstoreqi4): New define_expand. + (*ext_truncsi2_qi): New define_insn. + (*zext_truncsi2_qi): New define_insn. + +2022-02-10 Roger Sayle <roger@nextmovesoftware.com> + + * config/nvptx/nvptx.md (*cmpf): New define_insn. + (cstorehf4): New define_expand. + (fmahf4): New define_insn. + (neghf2): New define_insn. + (abshf2): New define_insn. + +2022-02-10 Gerald Pfeifer <gerald@pfeifer.com> + + * doc/install.texi (Specific): Change the www.bitwizard.nl + reference to use https. + +2022-02-10 Marcel Vollweiler <marcel@codesourcery.com> + + * gimplify.cc (gimplify_scan_omp_clauses): Added cases for + OMP_CLAUSE_HAS_DEVICE_ADDR + and handle array sections. + (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case. + * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR. + (lower_omp_target): Same. + * tree-core.h (enum omp_clause_code): Same. + * tree-nested.cc (convert_nonlocal_omp_clauses): Same. + (convert_local_omp_clauses): Same. + * tree-pretty-print.cc (dump_omp_clause): Same. + * tree.cc: Same. + +2022-02-10 Eugene Rozenfeld <erozen@microsoft.com> + + * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls + that will result in direct recursive calls. + +2022-02-10 Andrew Pinski <apinski@marvell.com> + + PR target/104474 + * config/aarch64/aarch64.cc + (aarch64_sve_expand_vector_init_handle_trailing_constants): + Use CONST0_RTX instead of const0_rtx for the non-constant elements. + +2022-02-09 Uroš Bizjak <ubizjak@gmail.com> + + PR target/104462 + * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET): + Also include OPTION_MASK_ISA2_AVX2_UNSET. + +2022-02-09 Uroš Bizjak <ubizjak@gmail.com> + + PR target/104458 + * config/i386/i386-expand.cc (ix86_split_idivmod): + Force operands[2] and operands[3] into a register.. + +2022-02-09 Jeff Law <jeffreyalaw@gmail.com> + + PR target/97040 + * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4. + (*v850_fnmssf4): Renamed from fnmssf4 + +2022-02-09 Ian Lance Taylor <iant@golang.org> + + * godump.cc (go_force_record_alignment): Really name the alignment + field "_" (complete 2021-12-29 change). + +2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com> + + * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change + function prototype. + (VREPLACE_UN_UV4SI): Likewise. + (VREPLACE_UN_V2DF): Likewise. + (VREPLACE_UN_V2DI): Likewise. + (VREPLACE_UN_V4SF): Likewise. + (VREPLACE_UN_V4SI): Likewise. + * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all + function prototypes. + * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand. + (vreplace_un_<mode>): New define_insn. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/iterators.md (VDCSIF): New mode iterator. + (VDBL): Handle SF. + (single_wx, single_type, single_dtype, dblq): New mode attributes. + * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend + from VDC to VDCSIF. + (store_pair_lanes<mode>): Likewise. + (*aarch64_combine_internal<mode>): Likewise. + (*aarch64_combine_internal_be<mode>): Likewise. + (*aarch64_combinez<mode>): Likewise. + (*aarch64_combinez_be<mode>): Likewise. + * config/aarch64/aarch64.cc (aarch64_classify_address): Handle + 8-byte modes for ADDR_QUERY_LDP_STP_N. + (aarch64_print_operand): Likewise for %y. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>): + Use aarch64_combine instead of move_lo/hi_quad. Tabify. + (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete. + (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete. + (vec_pack_trunc_<mode>): Take general_operand elements and use + aarch64_combine rather than move_lo/hi_quad to combine them. + (vec_pack_trunc_df): Likewise. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): + Delete. + * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename + to... + (*aarch64_combinez<mode>): ...this. + (@aarch64_combinez_be<mode>): Rename to... + (*aarch64_combinez_be<mode>): ...this. + (@aarch64_vec_concat<mode>): New expander. + (aarch64_combine<mode>): Use it. + (@aarch64_simd_combine<mode>): Delete. + * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete. + (aarch64_expand_vector_init): Use aarch64_vec_concat. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand): + New predicate. + * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>) + (*aarch64_combine_internal_be<mode>): New patterns. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>) + (move_lo_quad_internal_be_<mode>): Delete. + (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p): + Declare. + * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use + aarch64_mergeable_load_pair_p instead of inline check. + * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise. + (aarch64_check_consecutive_mems): Allow the reversed parameter + to be null. + (aarch64_mergeable_load_pair_p): New function. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the + element to be an aarch64_simd_nonimmediate_operand. + +2022-02-09 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use + aarch64_simd_nonimmediate_operand instead of + aarch64_simd_general_operand. + (@aarch64_combinez<mode>): Use nonimmediate_operand instead of + general_operand. + (@aarch64_combinez_be<mode>): Likewise. + +2022-02-09 Richard Biener <rguenther@suse.de> + + PR middle-end/104464 + * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone + throwing check to after unproblematic replacement. + +2022-02-09 Roger Sayle <roger@nextmovesoftware.com> + + PR tree-optimization/104420 + * match.pd (mult @0 real_zerop): Tweak conditions for constant + folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate. + +2022-02-09 Jakub Jelinek <jakub@redhat.com> + + PR debug/104407 + * dwarf2out.cc (mangle_referenced_decls): New function. + (tree_add_const_value_attribute): Don't call rtl_for_decl_init if + early_dwarf. Instead walk the initializer and try to mangle vars or + functions referenced from it. + +2022-02-09 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/104288 + * gimple-range-cache.cc (non_null_ref::set_nonnull): New. + (non_null_ref::adjust_range): Move to header. + (ranger_cache::range_of_def): Don't check non-null. + (ranger_cache::entry_range): Don't check non-null. + (ranger_cache::range_on_edge): Check for nonnull on normal edges. + (ranger_cache::update_to_nonnull): New. + (non_null_loadstore): New. + (ranger_cache::block_apply_nonnull): New. + * gimple-range-cache.h (class non_null_ref): Update prototypes. + (non_null_ref::adjust_range): Move to here and inline. + (class ranger_cache): Update prototypes. + * gimple-range-path.cc (path_range_query::range_defined_in_block): Do + not search dominators. + (path_range_query::adjust_for_non_null_uses): Ditto. + * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for + def overrides. Do not check nonnull. + (gimple_ranger::range_on_entry): Check dominators for nonnull. + (gimple_ranger::range_on_edge): Check for nonnull on normal edges.. + (gimple_ranger::register_side_effects): New. + * gimple-range.h (gimple_ranger::register_side_effects): New. + * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects. + +2022-02-09 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104445 + PR tree-optimization/102832 + * optabs-query.h (can_vec_extract): New. + * optabs-query.cc (can_vec_extract): Likewise. + * tree-vect-loop.cc (vect_find_reusable_accumulator): Check + we can extract a hi/lo part from the larger vector, rework + check iteration from larger to smaller sizes. + +2022-02-09 H.J. Lu <hjl.tools@gmail.com> + + PR target/35513 + PR target/100593 + * config/i386/gnu-property.cc: Include "i386-protos.h". + (file_end_indicate_exec_stack_and_gnu_property): Generate + a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or + nodirect_extern_access attribute. + * config/i386/i386-options.cc + (handle_nodirect_extern_access_attribute): New function. + (ix86_attribute_table): Add nodirect_extern_access attribute. + * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a + bool argument. + (ix86_has_no_direct_extern_access): New. + * config/i386/i386.cc (ix86_has_no_direct_extern_access): New. + (ix86_force_load_from_GOT_p): Add a bool argument to indicate + call operand. Force non-call load from GOT for + -mno-direct-extern-access or nodirect_extern_access attribute. + (legitimate_pic_address_disp_p): Avoid copy relocation in PIE + for -mno-direct-extern-access or nodirect_extern_access attribute. + (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p + for call operand. + (asm_preferred_eh_data_format): Use PC-relative format for + -mno-direct-extern-access to avoid copy relocation. Check + ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4. + (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to + true for -mno-direct-extern-access or nodirect_extern_access + attribute. Don't treat protected data as extern and avoid copy + relocation on common symbol with -mno-direct-extern-access or + nodirect_extern_access attribute. + (ix86_reloc_rw_mask): New to avoid copy relocation for + -mno-direct-extern-access. + (TARGET_ASM_RELOC_RW_MASK): New. + * config/i386/i386.opt: Add -mdirect-extern-access. + * doc/extend.texi: Document nodirect_extern_access attribute. + * doc/invoke.texi: Document -m[no-]direct-extern-access. + +2022-02-09 H.J. Lu <hjl.tools@gmail.com> + + PR target/104441 + * config/i386/i386.cc (ix86_avx_u128_mode_source): New function. + (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN. + Call ix86_avx_u128_mode_source to check mode for each component + of source operand. + +2022-02-09 liuhongt <hongtao.liu@intel.com> + + PR target/104451 + * config/i386/sse.md (<insn><mode>3): lowpart_subreg + operands[2] from SImode to QImode. + +2022-02-09 Richard Biener <rguenther@suse.de> + + PR middle-end/104450 + * gimple-isel.cc: Pass cfun around. + (+gimple_expand_vec_cond_expr): Do not combine a throwing + comparison with the select. + +2022-02-09 Richard Biener <rguenther@suse.de> + + PR target/104453 + * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift + folding for NULL LHS. + +2022-02-08 Robin Dapp <rdapp@linux.ibm.com> + + PR rtl-optimization/104198 + PR rtl-optimization/104153 + * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of + using it directly. Rework comparison handling and always + perform a second pass. + +2022-02-08 Jakub Jelinek <jakub@redhat.com> + + PR target/102140 + * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if + split1 pass has finished already. + +2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com> + + * config/rs6000/rs6000-builtins.def (VMSUMCUD): New. + * config/rs6000/rs6000-overload.def (VEC_MSUMC): New. + * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant. + (vmsumcud): New define_insn. + +2022-02-08 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70. + * config/nvptx/nvptx.h (TARGET_SM70): Define. + +2022-02-08 Robin Dapp <rdapp@linux.ibm.com> + + * config/s390/s390.cc (s390_rtx_costs): Increase costs for load + on condition. + * config/s390/s390.md: Use paradoxical subreg. + +2022-02-08 Robin Dapp <rdapp@linux.ibm.com> + + * combine.cc (reg_subword_p): Check for paradoxical subreg. + +2022-02-08 Tom de Vries <tdevries@suse.de> + + PR target/104283 + * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0 + and PTX_VERSION_4_2. + * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm) + (default_ptx_version_option, ptx_version_to_string) + (sm_version_to_string, handle_ptx_version_option): New function. + (nvptx_option_override): Call handle_ptx_version_option. + (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string. + * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>") + (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0. + * config/nvptx/nvptx.opt (mptx): Remove 'Init'. + +2022-02-08 Maciej W. Rozycki <macro@embecosm.com> + + * doc/install.texi (Configuration): Document `--with-isa-spec=' + RISC-V option. + * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V + option. + (RISC-V Options): Document it. + +2022-02-08 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency. + +2022-02-08 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'. + +2022-02-08 Tom de Vries <tdevries@suse.de> + + PR target/104364 + * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare. + * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that + change is validated. + (nvptx_mem_local_p): New function. + * config/nvptx/nvptx.md: Use nvptx_mem_local_p. + (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL. + (define_insn "atomic_compare_and_swap<mode>_1_local"): New + non-atomic, non-predicable define_insn, factored out of ... + (define_insn "atomic_compare_and_swap<mode>_1"): ... here. + Make predicable again. + (define_expand "atomic_compare_and_swap<mode>"): Use + atomic_compare_and_swap<mode>_1_local. + +2022-02-08 liuhongt <hongtao.liu@intel.com> + + PR rtl-optimization/104059 + * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate + for a more expensive reg-reg move. + +2022-02-07 Tamar Christina <tamar.christina@arm.com> + + * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32, + vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New + * config/arm/arm_neon_builtins.def (usdot): Add V16QI. + (usdot_laneq, sudot_laneq): New. + * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New. + (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code. + +2022-02-07 Tamar Christina <tamar.christina@arm.com> + + * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32, + vdot_laneq_s32, vdotq_laneq_s32): New. + * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New. + * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New. + (<sup>dot_prod<vsi2qi>): Re-order rtl. + (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes. + (neon_<sup>dot_laneq<vsi2qi>): New. + +2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com> + + PR target/104327 + * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags + if always_inline is set. Don't inline when tune differs without + always_inline. + +2022-02-07 Richard Biener <rguenther@suse.de> + + PR middle-end/104402 + * gimple-expr.cc (is_gimple_condexpr): _Complex typed + compares are not valid. + * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR + check is_gimple_condexpr. + +2022-02-07 Kewen Lin <linkw@linux.ibm.com> + + PR target/103627 + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the + hunk affecting VSX and ALTIVEC to appropriate place. + +2022-02-07 Kewen Lin <linkw@linux.ibm.com> + + PR target/103627 + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable + MMA if !TARGET_VSX. + +2022-02-06 Jakub Jelinek <jakub@redhat.com> + + PR c++/89074 + PR c++/104033 + * fold-const.h (folding_initializer): Adjust comment. + (folding_cxx_constexpr): Declare. + * fold-const.cc (folding_initializer): Adjust comment. + (folding_cxx_constexpr): New variable. + (address_compare): Restrict the decl vs. STRING_CST + or vice versa or STRING_CST vs. STRING_CST or + is_global_var != is_global_var optimizations to !folding_cxx_constexpr. + Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer, + assume non-aliased functions have non-zero size and have different + addresses. For folding_cxx_constexpr, punt on comparisons of start + of some object and end of another one, regardless whether it is a decl + or string literal. Also punt for folding_cxx_constexpr on + STRING_CST vs. STRING_CST comparisons if the two literals could be + overlapping. + +2022-02-05 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104389 + * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are + honored. + +2022-02-05 Kito Cheng <kito.cheng@sifive.com> + + * configure.ac: Fix detection for zifencei support. + * configure: Regenerate. + +2022-02-05 Kito Cheng <kito.cheng@sifive.com> + + PR target/104219 + * config.gcc (riscv*-*-*): Normalize the with_isa_spec value. + (all_defaults): Add isa_spec. + * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec. + +2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com> + + * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types + parameters instead of arglist and nargs. Simplify accordingly. Remove + unnecessary test for argument count mismatch. + (resolve_vec_cmpne): Likewise. + (resolve_vec_adde_sube): Likewise. + (resolve_vec_addec_subec): Likewise. + (altivec_resolve_overloaded_builtin): Move overload special handling + after the gathering of arguments into args[] and types[] and the test + for correct number of arguments. Don't perform the test for correct + number of arguments for certain special cases. Call the other special + cases with args and types instead of arglist and nargs. + +2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com> + + PR target/100808 + * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA + 3.1): Provide consistent type names. Remove unnecessary semicolons. + Fix bad line breaks. + +2022-02-04 Jakub Jelinek <jakub@redhat.com> + + PR target/104380 + * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also + adjust mangling of __builtin*printf_chk. + +2022-02-04 Jonathan Wakely <jwakely@redhat.com> + + * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20. + +2022-02-04 Richard Biener <rguenther@suse.de> + Bin Cheng <bin.cheng@linux.alibaba.com> + + PR tree-optimization/100499 + * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted + to true. + * fold-const.cc (multiple_of_p): Likewise. Honor it for + MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along, + switching to false for conversions. + * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not + claim the outermost expression does not wrap when calling + multiple_of_p. Refactor the check done to check the + original IV, avoiding a bias that might wrap. + +2022-02-04 Richard Biener <rguenther@suse.de> + + * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR + handling. + +2022-02-04 Eric Botcazou <ebotcazou@adacore.com> + + PR debug/104366 + * dwarf2out.cc (dwarf2out_finish): Empty base_types. + (dwarf2out_early_finish): Likewise. + +2022-02-04 Eric Botcazou <ebotcazou@adacore.com> + + PR tree-optimization/104356 + * match.pd (X / bool_range_Y is X): Add guard. + (X / X is one): Likewise. + (X / abs (X) is X < 0 ? -1 : 1): Likewise. + (X / -X is -1): Likewise. + (1 / X -> X == 1): Likewise. + +2022-02-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103641 + * tree-vect-patterns.cc (vect_synth_mult_by_constant): + Pass the vector mode to choose_mult_variant. + +2022-02-04 Roger Sayle <roger@nextmovesoftware.com> + + PR rtl-optimization/101885 + * combine.cc (try_combine): When splitting a parallel into two + sequential sets, check not only that the first doesn't clobber + the second but also that the second doesn't clobber the first. + +2022-02-04 Richard Biener <rguenther@suse.de> + + PR middle-end/90348 + PR middle-end/104092 + * tree-core.h (clobber_kind): New enum. + (tree_base::u::bits::address_space): Document use in CONSTRUCTORs. + * tree.h (CLOBBER_KIND): Add. + (build_clobber): Add clobber kind argument, defaulted to + CLOBBER_UNDEF. + * tree.cc (build_clobber): Likewise. + * gimple.h (gimple_clobber_p): New overload with specified kind. + * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream + CLOBBER_KIND. + * tree-streamer-out.cc (streamer_write_tree_bitfields): + Likewise. + * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs. + * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers + with CLOBBER_EOL. + (gimplify_target_expr): Likewise. + * tree-inline.cc (expand_call_inline): Likewise. + * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise. + * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat + CLOBBER_EOL clobbers as ending lifetime of storage. + +2022-02-04 Martin Sebor <msebor@redhat.com> + + * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto + cleanup. + +2022-02-03 Martin Sebor <msebor@redhat.com> + + PR middle-end/104260 + * passes.def (pass_warn_access): Adjust pass placement. + +2022-02-03 Uroš Bizjak <ubizjak@gmail.com> + + PR target/104362 + * config/i386/i386.cc (find_drap_reg): For 32bit targets + return DI_REG if function uses __builtin_eh_return. + +2022-02-03 Martin Sebor <msebor@redhat.com> + + * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor. + (pass_wrestrict::m_ptr_qry): New member. + (wrestrict_walk): Rename... + (pass_wrestrict::check_block): ...to this. + (pass_wrestrict::execute): Set up and tear down pointer_query and + ranger. + (builtin_memref::builtin_memref): Change ctor argument. Simplify. + (builtin_access::builtin_access): Same. + (builtin_access::m_ptr_qry): New member. + (check_call): Rename... + (pass_wrestrict::check_call): ...to this. + (check_bounds_or_overlap): Change argument. + * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same. + +2022-02-03 Martin Sebor <msebor@redhat.com> + + * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker): + Define ctor. + (array_bounds_checker::get_value_range): Use new member. + (array_bounds_checker::check_mem_ref): Same. + * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker): + Outline ctor. + (array_bounds_checker::m_ptr_query): New member. + +2022-02-03 Martin Sebor <msebor@redhat.com> + + * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove + pointer_query cache. + * pointer-query.cc (pointer_query::pointer_query): Remove cache + argument. Zero-initialize new cache member. + (pointer_query::get_ref): Replace cache pointer with direct access. + (pointer_query::put_ref): Same. + (pointer_query::flush_cache): Same. + (pointer_query::dump): Same. + * pointer-query.h (class pointer_query): Remove cache argument from + ctor. Change cache pointer to cache subobject member. + * tree-ssa-strlen.cc: Remove pointer_query cache. + +2022-02-03 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/104119 + * gimple-ssa-sprintf.cc (struct directive): Change argument type. + (format_none): Same. + (format_percent): Same. + (format_integer): Same. + (format_floating): Same. + (get_string_length): Same. + (format_character): Same. + (format_string): Same. + (format_plain): Same. + (format_directive): Same. + (compute_format_length): Same. + (handle_printf_call): Same. + * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call + get_maxbound. + (get_range_strlen_phi): Same. + (get_maxbound): New function. + (strlen_pass::get_len_or_size): Adjust to parameter change. + * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type. + +2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com> + + PR target/103686 + * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove + test for !rs6000_fold_gimple. + * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise. + * config/rs6000/rs6000.opt (mfold-gimple): Remove. + +2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com> + + PR target/95082 + * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle + endianness for vclzlsbb and vctzlsbb. + * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change + default pattern and indicate a different pattern will be used for + big endian. + (VCLZLSBB_V4SI): Likewise. + (VCLZLSBB_V8HI): Likewise. + (VCTZLSBB_V16QI): Likewise. + (VCTZLSBB_V4SI): Likewise. + (VCTZLSBB_V8HI): Likewise. + +2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com> + + * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs. + * config/rs6000/rs6000-builtin.cc: New file, containing code moved + from other files. + * config/rs6000/rs6000-call.cc (cpu_is_info): Move to + rs6000-builtin.cc. + (cpu_supports_info): Likewise. + (rs6000_type_string): Likewise. + (altivec_expand_predicate_builtin): Likewise. + (rs6000_htm_spr_icode): Likewise. + (altivec_expand_vec_init_builtin): Likewise. + (get_element_number): Likewise. + (altivec_expand_vec_set_builtin): Likewise. + (altivec_expand_vec_ext_builtin): Likewise. + (rs6000_invalid_builtin): Likewise. + (rs6000_fold_builtin): Likewise. + (fold_build_vec_cmp): Likewise. + (fold_compare_helper): Likewise. + (map_to_integral_tree_type): Likewise. + (fold_mergehl_helper): Likewise. + (fold_mergeeo_helper): Likewise. + (rs6000_builtin_valid_without_lhs): Likewise. + (rs6000_builtin_is_supported): Likewise. + (rs6000_gimple_fold_mma_builtin): Likewise. + (rs6000_gimple_fold_builtin): Likewise. + (rs6000_expand_ldst_mask): Likewise. + (cpu_expand_builtin): Likewise. + (elemrev_icode): Likewise. + (ldv_expand_builtin): Likewise. + (lxvrse_expand_builtin): Likewise. + (lxvrze_expand_builtin): Likewise. + (stv_expand_builtin): Likewise. + (mma_expand_builtin): Likewise. + (htm_spr_num): Likewise. + (htm_expand_builtin): Likewise. + (rs6000_expand_builtin): Likewise. + (rs6000_vector_type): Likewise. + (rs6000_init_builtins): Likewise. Remove initialization of + builtin_mode_to_type entries. + (rs6000_builtin_decl): Move to rs6000-builtin.cc. + * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New + external declaration. + (rs6000_builtin_md_vectorized_function): Likewise. + (rs6000_builtin_reciprocal): Likewise. + (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc. + (rs6000_builtin_types): Likewise. + (builtin_mode_to_type): Remove. + (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove + static qualifier. + (rs6000_builtin_md_vectorized_function): Likewise. + (rs6000_builtin_reciprocal): Likewise. + * config/rs6000/rs6000.h (builtin_mode_to_type): Remove. + * config/rs6000/t-rs6000 (rs6000-builtin.o): New target. + +2022-02-03 Richard Biener <rguenther@suse.de> + + PR debug/104337 + * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found + together via DECL_ABSTRACT_ORIGIN. + +2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com> + + * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error + message for RES_BITS case. + +2022-02-03 Aldy Hernandez <aldyh@redhat.com> + + * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly. + +2022-02-03 Jakub Jelinek <jakub@redhat.com> + + * config/arm/arm.opt (mfix-cortex-a57-aes-1742098, + mfix-cortex-a72-aes-1655431): Ensure description ends with full stop. + +2022-02-03 Aldy Hernandez <aldyh@redhat.com> + + * cfganal.cc (verify_marked_backedges): New. + * cfganal.h (verify_marked_backedges): New. + * gimple-range-path.cc (path_range_query::path_range_query): + Verify freshness of back edges. + * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call + mark_dfs_back_edges. + * tree-ssa-threadbackward.cc (back_threader::back_threader): Move + path_range_query construction after backedges have been + updated. + +2022-02-03 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from + VALL to VALL_F16. + +2022-02-03 Richard Sandiford <richard.sandiford@arm.com> + + * config/aarch64/iterators.md (VALL_F16MOV): Delete. + * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead + of VALL_F16MOV. + +2022-02-03 Martin Liska <mliska@suse.cz> + + * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): + Change subject and object in the error message. + * config/s390/s390.cc (s390_valid_target_attribute_inner_p): + Likewise. + +2022-02-03 Martin Liska <mliska@suse.cz> + + * config/s390/s390.cc (s390_valid_target_attribute_inner_p): + Use the error message for i386 target. + +2022-02-03 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104334 + * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range + and rh_range type to widest_int and subtract in widest_int. Remove + ov_rh, ov_lh and sign vars, always perform comparisons as signed + and use >, < and == operators for it. + +2022-02-03 Martin Sebor <msebor@redhat.com> + + * common.opt (-Wuse-after-free): Correct typos. + +2022-02-02 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/104270 + * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to + -Wanalyzer-use-of-uninitialized-value to paragraph documenting that + -ftrivial-auto-var-init= doesn't suppress warnings. + +2022-02-02 Martin Liska <mliska@suse.cz> + + * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro. + +2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de> + + PR target/94372 + * config/or1k/linux.h (CPP_SPEC): Define. + +2022-02-02 Tamar Christina <tamar.christina@arm.com> + + PR tree-optimization/102819 + PR tree-optimization/103169 + * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use + canonical order. + +2022-02-02 Tamar Christina <tamar.christina@arm.com> + + PR tree-optimization/102819 + PR tree-optimization/103169 + * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use + canonical order. + * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise. + +2022-02-02 Tamar Christina <tamar.christina@arm.com> + + PR tree-optimization/102819 + PR tree-optimization/103169 + * doc/md.texi: Update docs for cfms, cfma. + * tree-data-ref.h (same_data_refs): Accept optional offset. + * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating + patterns. + (vect_normalize_conj_loc): Remove. + (is_eq_or_top): Change to take two nodes. + (enum _conj_status, compatible_complex_nodes_p, + vect_validate_multiplication): New. + (class complex_add_pattern, complex_add_pattern::matches, + complex_add_pattern::recognize, class complex_mul_pattern, + complex_mul_pattern::recognize, class complex_fms_pattern, + complex_fms_pattern::recognize, class complex_operations_pattern, + complex_operations_pattern::recognize, addsub_pattern::recognize): Pass + new cache. + (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new + cache and use new validation code. + * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns, + vect_analyze_slp): Pass along cache. + (compatible_calls_p): Expose. + * tree-vectorizer.h (compatible_calls_p, slp_node_hash, + slp_compat_nodes_map_t): New. + (class vect_pattern): Update signatures include new cache. + +2022-02-02 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/cris.cc (cris_preferred_reload_class): Reject + "eliminated" registers and small-enough constants unless + reloaded into a class that is a subset of GENERAL_REGS. + * config/cris/cris.md (attribute "cpu_variant"): New. + (attribute "enabled"): Conditionalize on a matching attribute + cpu_variant, if specified. + ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from + memory, add cpu-variant-enabled variants for "r" alternatives on + the far side of the "x" alternatives, preferring the "x" ones + only for variants where MOF is present (in addition to SRP). + +2022-02-02 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira + extra cost for ALL_REGS. + +2022-02-02 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/constraints.md (define_register_constraint "b"): Now + GENERAL_REGS. + * config/cris/cris.md (CRIS_ACR_REGNUM): Remove. + * config/cris/cris.h: (reg_class, REG_CLASS_NAMES) + (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS, + and SPEC_GENNONACR_REGS. + * config/cris/cris.cc (cris_preferred_reload_class): Don't mention + ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS. + +2022-02-02 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"): + Conditionalize on (sub-)register operands or operand 1 being 0. + +2022-02-02 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG. + (MUL_BUG_ASM_DEFAULT): New macro. + (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT. + * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust + accordingly. + +2022-02-01 Eugene Rozenfeld <erozen@microsoft.com> + + * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations + to 10 for AutoFDO. + +2022-02-01 Eugene Rozenfeld <erozen@microsoft.com> + + * auto-profile.cc (auto_profile): Hard-code the number of iterations (10). + +2022-02-01 Andrew Pinski <apinski@marvell.com> + + * doc/install.texi: + +2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com> + + * config/s390/s390.cc (s390_code_end): Do not switch back to + code section. + +2022-02-01 Jakub Jelinek <jakub@redhat.com> + + PR target/104323 + * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h + rather than $(srcdir)/config/rs6000/rs6000-builtins.def. + * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use + GTY((user)) for struct bifdata and struct ovlddata. Instead add + GTY((skip(""))) to members with pointer and enum types that don't need + to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info + declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations. + (write_extern_fntype, write_fntype): Remove. + (write_fntype_init): Emit the fntype vars as automatic vars instead + of file scope ones. + (write_header_file): Don't iterate with write_extern_fntype. + (write_init_file): Don't iterate with write_fntype. Don't emit + gt_ggc_mx and gt_pch_nx definitions. + +2022-02-01 Jason Merrill <jason@redhat.com> + + * tree.h (struct tree_vec_map_cache_hasher): Move from... + * tree.cc (struct tree_vec_map_cache_hasher): ...here. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check. + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add + UNSPECV_UNIFORM_WARP_CHECK. + (define_insn "nvptx_uniform_warp_check"): New define_insn. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync. + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add + UNSPECV_WARPSYNC. + (define_insn "nvptx_warpsync"): New define_insn. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0. + * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro. + * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier + insn for TARGET_PTX_6_0. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + PR target/100428 + * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop + insn. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1") + (define_insn "atomic_exchange<mode>") + (define_insn "atomic_fetch_add<mode>") + (define_insn "atomic_fetch_addsf") + (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version + if memory operands is frame-relative. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + * config/nvptx/nvptx.cc (enum nvptx_builtins): Add + NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA. + (VOID): New macro. + (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA. + (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and + NVPTX_BUILTIN_MEMBAR_CTA. + (nvptx_lockfull_update): Add level parameter. Emit barriers. + (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to + nvptx_lockfull_update. + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add + UNSPECV_MEMBAR_GL. + (define_expand "nvptx_membar_gl"): New expand. + (define_insn "*nvptx_membar_gl"): New insn. + +2022-02-01 Martin Liska <mliska@suse.cz> + + * doc/install.texi: Remove option for GCC < 4.8. + +2022-02-01 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104307 + * tree-vect-generic.cc (expand_vector_comparison): Don't push debug + stmts to uses vector, just set vec_cond_expr_only to false for + non-VEC_COND_EXPRs instead of pushing them into uses. Treat + VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too + like non-VEC_COND_EXPRs. + +2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com> + + * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token. + (VEC_BLENDV): Likewise. + (VEC_BPERM): Likewise. + (VEC_CFUGE): Likewise. + (VEC_CIPHER_BE): Likewise. + (VEC_CIPHERLAST_BE): Likewise. + (VEC_CLRL): Likewise. + (VEC_CLRR): Likewise. + (VEC_CMPNEZ): Likewise. + (VEC_CNTLZ): Likewise. + (VEC_CNTLZM): Likewise. + (VEC_CNTTZM): Likewise. + (VEC_CNTLZ_LSBB): Likewise. + (VEC_CNTM): Likewise. + (VEC_CNTTZ): Likewise. + (VEC_CNTTZ_LSBB): Likewise. + (VEC_CONVERT_4F32_8F16): Likewise. + (VEC_DIV): Likewise. + (VEC_DIVE): Likewise. + (VEC_EQV): Likewise. + (VEC_EXPANDM): Likewise. + (VEC_EXTRACT_FP_FROM_SHORTH): Likewise. + (VEC_EXTRACT_FP_FROM_SHORTL): Likewise. + (VEC_EXTRACTH): Likewise. + (VEC_EXTRACTL): Likewise. + (VEC_EXTRACTM): Likewise. + (VEC_EXTRACT4B): Likewise. + (VEC_EXTULX): Likewise. + (VEC_EXTURX): Likewise. + (VEC_FIRSTMATCHINDEX): Likewise. + (VEC_FIRSTMACHOREOSINDEX): Likewise. + (VEC_FIRSTMISMATCHINDEX): Likewise. + (VEC_FIRSTMISMATCHOREOSINDEX): Likewise. + (VEC_GB): Likewise. + (VEC_GENBM): Likewise. + (VEC_GENHM): Likewise. + (VEC_GENWM): Likewise. + (VEC_GENDM): Likewise. + (VEC_GENQM): Likewise. + (VEC_GENPCVM): Likewise. + (VEC_GNB): Likewise. + (VEC_INSERTH): Likewise. + (VEC_INSERTL): Likewise. + (VEC_INSERT4B): Likewise. + (VEC_LXVL): Likewise. + (VEC_MERGEE): Likewise. + (VEC_MERGEO): Likewise. + (VEC_MOD): Likewise. + (VEC_MSUB): Likewise. + (VEC_MULH): Likewise. + (VEC_NAND): Likewise. + (VEC_NCIPHER_BE): Likewise. + (VEC_NCIPHERLAST_BE): Likewise. + (VEC_NEARBYINT): Likewise. + (VEC_NMADD): Likewise. + (VEC_ORC): Likewise. + (VEC_PDEP): Likewise. + (VEC_PERMX): Likewise. + (VEC_PEXT): Likewise. + (VEC_POPCNT): Likewise. + (VEC_PARITY_LSBB): Likewise. + (VEC_REPLACE_ELT): Likewise. + (VEC_REPLACE_UN): Likewise. + (VEC_REVB): Likewise. + (VEC_RINT): Likewise. + (VEC_RLMI): Likewise. + (VEC_RLNM): Likewise. + (VEC_SBOX_BE): Likewise. + (VEC_SIGNEXTI): Likewise. + (VEC_SIGNEXTLL): Likewise. + (VEC_SIGNEXTQ): Likewise. + (VEC_SLDB): Likewise. + (VEC_SLV): Likewise. + (VEC_SPLATI): Likewise. + (VEC_SPLATID): Likewise. + (VEC_SPLATI_INS): Likewise. + (VEC_SQRT): Likewise. + (VEC_SRDB): Likewise. + (VEC_SRV): Likewise. + (VEC_STRIL): Likewise. + (VEC_STRIL_P): Likewise. + (VEC_STRIR): Likewise. + (VEC_STRIR_P): Likewise. + (VEC_STXVL): Likewise. + (VEC_TERNARYLOGIC): Likewise. + (VEC_TEST_LSBB_ALL_ONES): Likewise. + (VEC_TEST_LSBB_ALL_ZEROS): Likewise. + (VEC_VEE): Likewise. + (VEC_VES): Likewise. + (VEC_VIE): Likewise. + (VEC_VPRTYB): Likewise. + (VEC_VSCEEQ): Likewise. + (VEC_VSCEGT): Likewise. + (VEC_VSCELT): Likewise. + (VEC_VSCEUO): Likewise. + (VEC_VSEE): Likewise. + (VEC_VSES): Likewise. + (VEC_VSIE): Likewise. + (VEC_VSTDC): Likewise. + (VEC_VSTDCN): Likewise. + (VEC_VTDC): Likewise. + (VEC_XL): Likewise. + (VEC_XL_BE): Likewise. + (VEC_XL_LEN_R): Likewise. + (VEC_XL_SEXT): Likewise. + (VEC_XL_ZEXT): Likewise. + (VEC_XST): Likewise. + (VEC_XST_BE): Likewise. + (VEC_XST_LEN_R): Likewise. + (VEC_XST_TRUNC): Likewise. + (VEC_XXPERMDI): Likewise. + (VEC_XXSLDWI): Likewise. + (VEC_TSTSFI_EQ_DD): Likewise. + (VEC_TSTSFI_EQ_TD): Likewise. + (VEC_TSTSFI_GT_DD): Likewise. + (VEC_TSTSFI_GT_TD): Likewise. + (VEC_TSTSFI_LT_DD): Likewise. + (VEC_TSTSFI_LT_TD): Likewise. + (VEC_TSTSFI_OV_DD): Likewise. + (VEC_TSTSFI_OV_TD): Likewise. + (VEC_VADDCUQ): Likewise. + (VEC_VADDECUQ): Likewise. + (VEC_VADDEUQM): Likewise. + (VEC_VADDUDM): Likewise. + (VEC_VADDUQM): Likewise. + (VEC_VBPERMQ): Likewise. + (VEC_VCLZB): Likewise. + (VEC_VCLZD): Likewise. + (VEC_VCLZH): Likewise. + (VEC_VCLZW): Likewise. + (VEC_VCTZB): Likewise. + (VEC_VCTZD): Likewise. + (VEC_VCTZH): Likewise. + (VEC_VCTZW): Likewise. + (VEC_VEEDP): Likewise. + (VEC_VEESP): Likewise. + (VEC_VESDP): Likewise. + (VEC_VESSP): Likewise. + (VEC_VIEDP): Likewise. + (VEC_VIESP): Likewise. + (VEC_VPKSDSS): Likewise. + (VEC_VPKSDUS): Likewise. + (VEC_VPKUDUM): Likewise. + (VEC_VPKUDUS): Likewise. + (VEC_VPOPCNT): Likewise. + (VEC_VPOPCNTB): Likewise. + (VEC_VPOPCNTD): Likewise. + (VEC_VPOPCNTH): Likewise. + (VEC_VPOPCNTW): Likewise. + (VEC_VPRTYBD): Likewise. + (VEC_VPRTYBQ): Likewise. + (VEC_VPRTYBW): Likewise. + (VEC_VRLD): Likewise. + (VEC_VSLD): Likewise. + (VEC_VSRAD): Likewise. + (VEC_VSRD): Likewise. + (VEC_VSTDCDP): Likewise. + (VEC_VSTDCNDP): Likewise. + (VEC_VSTDCNQP): Likewise. + (VEC_VSTDCNSP): Likewise. + (VEC_VSTDCQP): Likewise. + (VEC_VSTDCSP): Likewise. + (VEC_VSUBECUQ): Likewise. + (VEC_VSUBEUQM): Likewise. + (VEC_VSUBUDM): Likewise. + (VEC_VSUBUQM): Likewise. + (VEC_VTDCDP): Likewise. + (VEC_VTDCSP): Likewise. + (VEC_VUPKHSW): Likewise. + (VEC_VUPKLSW): Likewise. + +2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com> + + PR rtl-optimization/101260 + * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for + copy_regno. + +2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang> + + PR middle-end/95115 + * fold-const.cc (const_binop): Do not fold NaN result from + non-NaN operands. + +2022-02-01 Tom de Vries <tdevries@suse.de> + + * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for + -ftree-loop-distribute-patterns. + (loop_distribution::execute): Don't call transform_reduction_loop for + -fno-tree-loop-distribute-patterns. + +2022-01-31 Andrew Pinski <apinski@marvell.com> + + * fold-const.h (operand_compare::operand_equal_p): + Fix comment about OEP_* flags. + +2022-01-31 Jakub Jelinek <jakub@redhat.com> + + PR target/104298 + * config/rs6000/aix.h (OPTION_GLIBC): Remove. + * config/rs6000/darwin.h (OPTION_GLIBC): Likewise. + * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0 + if not already defined. + +2022-01-31 Martin Sebor <msebor@redhat.com> + + PR middle-end/104232 + * gimple-ssa-warn-access.cc (pointers_related_p): Add argument. + Handle PHIs. Add a synonymous overload. + (pass_waccess::check_pointer_uses): Call pointers_related_p. + +2022-01-31 Richard Biener <rguenther@suse.de> + + PR tree-optimization/100499 + * fold-const.cc (multiple_of_p): Pass the correct type of + the expression to the recursive invocation of multiple_of_p + for conversions and use CASE_CONVERT. + +2022-01-31 Eric Botcazou <ebotcazou@adacore.com> + + PR target/104189 + * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS. + +2022-01-31 Richard Biener <rguenther@suse.de> + + PR tree-optimization/100499 + * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p + on poly-ints instead of multiple_of_p. + * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise. + (non_rewritable_mem_ref_base): Likewise. + (non_rewritable_lvalue_p): Likewise. + (execute_update_addresses_taken): Likewise. + +2022-01-29 Jakub Jelinek <jakub@redhat.com> + Andrew Pinski <apinski@marvell.com> + + PR tree-optimization/104279 + PR tree-optimization/104280 + PR tree-optimization/104281 + * match.pd (1 / X -> X == 1 for unsigned X): Build eq with + boolean_type_node and convert to type. Formatting fixes. + +2022-01-28 Yoshinori Sato <yo-satoh@sios.com> + + * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a. + +2022-01-28 Navid Rahimi <navidrahimi@microsoft.com> + + PR tree-optimization/103514 + * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization. + (a & b) == (a ^ b) -> !(a | b): New optimization. + +2022-01-28 Marek Polacek <polacek@redhat.com> + + * doc/invoke.texi: Update -Wbidi-chars documentation. + +2022-01-28 Iain Sandoe <iain@sandoe.co.uk> + + * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0. + +2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com> + + PR tree-optimization/95424 + * match.pd: Simplify 1 / X where X is an integer. + +2022-01-28 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104263 + * gimple-ssa-store-merging.cc (get_status_for_store_merging): For + cfun->can_throw_non_call_exceptions && cfun->eh test whether + last non-debug stmt in the bb is store_valid_for_store_merging_p + rather than last stmt. + +2022-01-28 Martin Liska <mliska@suse.cz> + + * diagnostic.cc (diagnostic_action_after_output): Remove extra + newline. + +2022-01-28 Martin Liska <mliska@suse.cz> + + * config/rs6000/host-darwin.cc (segv_crash_handler): + Do not use leading capital letter. + (segv_handler): Likewise. + * ipa-sra.cc (verify_splitting_accesses): Likewise. + * varasm.cc (get_section): Likewise. + +2022-01-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104267 + * tree-vect-stmts.cc (vectorizable_call): Properly use the + per-argument determined vector type for externals and + invariants. + +2022-01-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104263 + * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges): + Purge edges also when !cfun->has_nonlocal_label + and !cfun->calls_setjmp. + +2022-01-28 Maciej W. Rozycki <macro@embecosm.com> + + * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type' + attributes. + +2022-01-28 Jakub Jelinek <jakub@redhat.com> + + PR lto/104237 + * cfgrtl.cc (loc_equal): New function. + (unique_locus_on_edge_between_p): Use it. + +2022-01-28 Richard Biener <rguenther@suse.de> + + * cfganal.h (mark_dfs_back_edges): Provide API with struct + function argument. + * cfganal.cc (mark_dfs_back_edges): Take a struct function + to work on, add a wrapper passing cfun. + * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun + uses with fun which is already passed. + (draw_cfg_edges): Likewise. + (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop + for fun != cfun. + +2022-01-27 Patrick Palka <ppalka@redhat.com> + + PR c++/99895 + * tree.cc (build_call_vec): Add const to second parameter. + * tree.h (build_call_vec): Likewise. + +2022-01-27 Martin Liska <mliska@suse.cz> + + PR web/104254 + * diagnostic.cc (diagnostic_initialize): + Initialize report_bug flag. + (diagnostic_action_after_output): + Explain that -freport-bug option can be used for pre-processed + file creation. Make the message shorter. + (error_recursion): Rename Internal to internal. + * diagnostic.h (struct diagnostic_context): New field. + * opts.cc (common_handle_option): Init the field here. + +2022-01-27 Kewen Lin <linkw@linux.ibm.com> + + PR target/103702 + * config/rs6000/rs6000.cc + (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong + assertion with early return. + +2022-01-27 Chung-Lin Tang <cltang@codesourcery.com> + + PR middle-end/103642 + * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling + for non-pointer or non-reference-to-pointer cases. + +2022-01-27 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/104196 + * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument. + * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true, + return NULL and emit needed stmts before and after stmt. + * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt + pick as operand_entry that will hold the merged test the one feeding + earliest condition, ensure that by swapping range->idx with some + other range's idx if needed. If seq is non-NULL, don't actually swap + it but instead rewrite stmts with undefined overflow in between + the two locations. + (maybe_optimize_range_tests): Set ops[]->id to bb->index with the + corresponding condition even if they have non-NULL ops[]->op. + Formatting fix. + +2022-01-26 Jakub Jelinek <jakub@redhat.com> + + PR target/104239 + * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of + asm. + * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator + before for loop instead of for init clause. + * config/rs6000/bmi2intrin.h (_pext_u64): Likewise. + +2022-01-26 Jakub Jelinek <jakub@redhat.com> + + PR target/104239 + * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of + _X86INTRIN_H_INCLUDED and adjust #error wording. + * config/rs6000/bmi2intrin.h: Likewise. + +2022-01-26 Jakub Jelinek <jakub@redhat.com> + + PR debug/104194 + * dwarf2out.cc (long_double_as_float128): New function. + (modified_type_die): For powerpc64le IEEE 754 quad long double + and complex long double emit those as DW_TAG_typedef to + _Float128 or complex _Float128 base type. + +2022-01-26 Marek Polacek <polacek@redhat.com> + + PR target/104213 + * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't + warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free. + +2022-01-26 Martin Liska <mliska@suse.cz> + + * ipa-modref-tree.cc (modref_access_node::update): + Remove "--param param=foo" with "--param foo". + (modref_access_node::insert): Likewise. + (modref_access_node::insert_kill): Likewise. + * ipa-modref-tree.h (struct modref_ref_node): Likewise. + (struct modref_base_node): Likewise. + (struct modref_tree): Likewise. + +2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com> + + PR target/94193 + * builtins.cc (expand_builtin_feclear_feraise_except): Add op0 + predicate check. + +2022-01-25 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/104203 + * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use + TV_WARN_ACCESS. + * pointer-query.cc (access_ref::merge_ref): Change return type. + Convert failure to a conservative success. + (access_ref::get_ref): Adjust to the change above. Short-circuit + PHI evaluation after first failure turned into conservative success. + * pointer-query.h (access_ref::merge_ref): Change return type. + * timevar.def (TV_WARN_ACCESS): New timer variable. + +2022-01-25 David Edelsohn <dje.gcc@gmail.com> + + * config/rs6000/aix.h (OPTION_GLIBC): Define as 0. + +2022-01-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104214 + * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use + stronger guarantees for relational pointer compares when + rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as + BASE0 + STEP0 - STEP1 cmp BASE1. + +2022-01-25 Jakub Jelinek <jakub@redhat.com> + + PR target/104172 + * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't + declare. + * config/rs6000/rs6000.cc (rs6000_passes_ieee128, + ieee128_mangling_gcc_8_1): Remove. + (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine. + (rs6000_mangle_type): Return "u9__ieee128" instead of + ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128". + (rs6000_globalize_decl_name): Remove. + * config/rs6000/rs6000-call.cc (init_cumulative_args, + rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128. + +2022-01-24 Martin Sebor <msebor@redhat.com> + + * pointer-query.cc (pointer_query::dump): Remove duplicate + block. + +2022-01-24 Marek Polacek <polacek@redhat.com> + + PR preprocessor/104030 + * doc/invoke.texi: Update documentation for -Wbidi-chars. + +2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com> + + PR target/94193 + * builtins.cc (expand_builtin_fegetround): New function. + (expand_builtin_feclear_feraise_except): New function. + (expand_builtin): Add cases for BUILT_IN_FEGETROUND, + BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT. + * config/rs6000/rs6000.md (fegetroundsi): New pattern. + (feclearexceptsi): New Pattern. + (feraiseexceptsi): New Pattern. + * doc/extend.texi: Add a new introductory paragraph about the + new builtins. + * doc/md.texi: (fegetround@var{m}): Document new optab. + (feclearexcept@var{m}): Document new optab. + (feraiseexcept@var{m}): Document new optab. + * optabs.def (fegetround_optab): New optab. + (feclearexcept_optab): New optab. + (feraiseexcept_optab): New optab. + +2022-01-24 Richard Biener <rguenther@suse.de> + Jiufu Guo <guojiufu@linux.ibm.com> + + PR tree-optimization/100740 + PR tree-optimization/101508 + PR tree-optimization/101972 + PR tree-optimization/102131 + * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly + constrain BASE0 + STEP0 cmp BASE1 + STEP1 to + BASE0 + STEP0 - STEP1 cmp BASE1 transform. + +2022-01-24 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/104158 + * opt-functions.awk (var_set): Handle EnumBitSet property. + * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is + specified. + * opts.h (enum cl_enum_var_value): New type. + * opts-common.cc (decode_cmdline_option): Use CLEV_* values. + Handle CLEV_BITSET. + (cmdline_handle_error): Handle CLEV_BITSET. + * opts.cc (test_enum_sets): Also test EnumBitSet requirements. + * doc/options.texi (EnumBitSet): Document. + * common.opt (fsanitize-coverage=): Use EnumBitSet instead of + EnumSet. + (trace-pc, trace-cmp): Drop Set properties. + +2022-01-24 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/104158 + * common.opt (flag_sanitize_coverage): Remove Variable entry. + (fsanitize-coverage=): Remove RejectNegative property, add + Var(flag_sanitize_coverage) and EnumSet properties. + (trace-pc): Add Set(1) property. + (trace-cmp): Add Set(2) property. + * opts.cc (common_handle_option): Don't handle + OPT_fsanitize_coverage_. + +2022-01-24 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/104158 + * opt-functions.awk (var_set): Handle EnumSet property. + * optc-gen.awk: Don't disallow RejectNegative if EnumSet is + specified. + * opt-read.awk: Handle Set property. + * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define. + (struct cl_decoded_option): Mention enum in value description. + Add mask member. + (set_option): Add mask argument defaulted to 0. + * opts.cc (test_enum_sets): New function. + (opts_cc_tests): Call it. + * opts-common.cc (enum_arg_to_value): Change return argument + from bool to int, on success return index into the cl_enum_arg + array, on failure -1. Add len argument, if non-0, use strncmp + instead of strcmp. + (opt_enum_arg_to_value): Adjust caller. + (decode_cmdline_option): Handle EnumSet represented as + CLVC_ENUM with non-zero var_value. Initialize decoded->mask. + (decode_cmdline_options_to_array): CLear opt_array[0].mask. + (handle_option): Pass decoded->mask to set_options last argument. + (generate_option): Clear decoded->mask. + (generate_option_input_file): Likewise. + (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG. + (set_option): Add mask argument, use it for CLVC_ENUM. + (control_warning_option): Adjust enum_arg_to_value caller. + * doc/options.texi: Document Set and EnumSet properties. + +2022-01-24 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/104170 + * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P, + OPTION_BIONIC_P, OPTION_MUSL_P): Define. + (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine + using OPTION_*_P macros. + * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P, + OPTION_BIONIC_P, OPTION_MUSL_P): Define. + (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine + using OPTION_*_P macros. + * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P, + OPTION_BIONIC_P, OPTION_MUSL_P): Define. + (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine + using OPTION_*_P macros. + * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P, + OPTION_BIONIC_P, OPTION_MUSL_P): Define. + (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine + using OPTION_*_P macros. + * config/fuchsia.h (OPTION_MUSL_P): Redefine. + * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined. + * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add + ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use + OPTION_GLIBC_P (opts) as condition, otherwise assume if (false). + * common/config/i386/i386-common.cc (ix86_supports_split_stack): If + OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition, + otherwise assume if (true). + +2022-01-24 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string): + Skip zicsr and zifencei if I-ext is 2.0. + +2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn> + + * config.gcc: Modify default isa_spec version. + +2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com> + + PR tree-optimization/102087 + * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap): + Correct PLUS result type. + +2022-01-24 H.J. Lu <hjl.tools@gmail.com> + + PR target/104188 + * config/i386/predicates.md (bcst_mem_operand): Also check mode + of memory broadcast. + +2022-01-23 Andrew Pinski <apinski@marvell.com> + + PR target/64821 + * config/aarch64/aarch64-builtins.cc + (aarch64_general_gimple_fold_builtin): Handle + __builtin_aarch64_sqrt* and simplify into SQRT internal + function. + +2022-01-22 Jakub Jelinek <jakub@redhat.com> + + PR other/104176 + * opts-global.cc (handle_common_deferred_options): Quote + --enable-plugin in diagnostics to avoid -Werror=format-diag. + +2022-01-21 Michael Meissner <meissner@the-meissners.org> + + PR target/104136 + * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete. + * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete. + * config/rs6000/rs6000.md (prefixed attribute): Delete section + that sets the prefixed attribute for xxspltiw, xxspltidp, and + xxsplti32dx instructions. + (movsf_hardfloat): Explicitly set the prefixed attribute + when xxspltiw and xxspltidp instructions are generated. + (mov<mode>_hardfloat32): Likewise. + (mov<mode>_hardfloat64): Likewise. + * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the + prefixed attribute for xxspltiw and xxspltidp instructions. + (vsx_mov<mode>_32bit): Likewise. + +2022-01-21 H.J. Lu <hjl.tools@gmail.com> + + PR bootstrap/104170 + * common/config/i386/i386-common.cc (ix86_supports_split_stack): + Return true only on glibc. + * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): + Revert commit c163647ffbc. + * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise. + +2022-01-21 Sören Tempel <soeren@soeren-tempel.net> + + * common/config/s390/s390-common.cc (s390_supports_split_stack): + Only support split-stack on glibc targets. + * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto. + * config/i386/gnu.h (defined): Ditto. + +2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com> + + * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for + vector float and vector double. + +2022-01-21 Bill Seurer <seurer@gcc.gnu.org> + + * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher): + Fix mention of ifunc in string. + +2022-01-21 Roger Sayle <roger@nextmovesoftware.com> + + PR middle-end/104140 + * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the + operands of the widening multiplication are either both signed or + both unsigned, and abort the conversion if mismatched. + * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node. + (MULT_HIGHPART_EXPR): Clarify that operands must have the same + signedness. + * tree.def (MULT_HIGHPART_EXPR): Document both operands must have + integer types with the same precision and signedness. + (WIDEN_MULT_EXPR): Document that operands must have integer types + with the same precision, but possibly differing signedness. + * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against + riscv_current_subset_list returning a NULL pointer (empty list). + +2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com> + + PR target/103676 + * ira.h (struct target_ira): Add member + x_ira_exclude_class_mode_regs. + (ira_exclude_class_mode_regs): New macro. + * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and + move from here ... + * lra-int.h: ... to here. + (lra_create_new_reg_with_unique_value): Add arg + exclude_start_hard_regs. + (class lra_reg): Add member exclude_start_hard_regs. + * lra-assigns.cc (find_hard_regno_for_1): Setup + impossible_start_hard_regs from exclude_start_hard_regs. + * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass + it lra_create_new_reg[_with_unique_value]. + (match_reload): Ditto. + (check_and_process_move): Pass NULL + exclude_start_hard_regs to lra_create_new_reg_with_unique_value. + (goal_alt_exclude_start_hard_regs): New static variable. + (process_addr_reg, simplify_operand_subreg): Pass NULL + exclude_start_hard_regs to lra_create_new_reg_with_unique_value + and get_reload_reg. + (process_alt_operands): Setup goal_alt_exclude_start_hard_regs. + Use this_alternative_exclude_start_hard_regs additionally to find + winning operand alternative. + (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL + exclude_start_hard_regs to lra_create_new_reg. + (process_address_1, emit_inc): Ditto. + (curr_insn_transform): Pass exclude_start_hard_regs value to + lra_create_new_reg, get_reload_reg, match_reload. + (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs + to lra_create_new_reg. + (process_invariant_for_inheritance): Ditto. + * lra-remat.cc (update_scratch_ops): Ditto. + * lra.cc (lra_create_new_reg_with_unique_value): Add arg + exclude_start_hard_regs. Setup the corresponding member of + lra reg info. + (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it + to lra_create_new_reg_with_unique_value. + (initialize_lra_reg_info_element): Initialize member + exclude_start_hard_regs. + (get_scratch_reg): Pass NULL to lra_create_new_reg. + * ira.cc (setup_prohibited_class_mode_regs): Rename to + setup_prohibited_and_exclude_class_mode_regs and calculate + ira_exclude_class_mode_regs. + +2022-01-21 Martin Liska <mliska@suse.cz> + + * configure.ac: Detect ld_is_mold and use it for + comdat_group=yes and gcc_cv_ld_hidden=yes. + * configure: Regenerate. + +2022-01-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/100089 + * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization + of if-converted loops with unvectorized COND_EXPRs for + all but the unlimited cost models. + +2022-01-21 Ard Biesheuvel <ardb@kernel.org> + + * config/arm/arm-opts.h (enum stack_protector_guard): New. + * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem): + New. + * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define. + (arm_option_override_internal): Handle and put in error checks. + for stack protector guard options. + (arm_option_reconfigure_globals): Likewise. + (arm_stack_protect_tls_canary_mem): New. + (arm_stack_protect_guard): New. + * config/arm/arm.md (stack_protect_set): New. + (stack_protect_set_tls): Likewise. + (stack_protect_test): Likewise. + (stack_protect_test_tls): Likewise. + (reload_tp_hard): Likewise. + * config/arm/arm.opt (-mstack-protector-guard): New + (-mstack-protector-guard-offset): New. + * doc/invoke.texi: Document new options. + +2022-01-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104156 + * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop): + Collect and reset debug stmts with out-of-loop uses when + hoisting guards. + (find_loop_guard): Adjust. + (empty_bb_without_guard_p): Likewise. Ignore debug stmts. + (used_outside_loop_p): Push debug uses to a vector of + debug stmts to reset. + (hoist_guard): Adjust -fopt-info category. + +2022-01-21 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104152 + * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing + can_duplicate_and_interleave_p check. + +2022-01-21 Jakub Jelinek <jakub@redhat.com> + + * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): + Avoid passing var to warning_at when the format string doesn't + refer to it. + +2022-01-21 Aldy Hernandez <aldyh@redhat.com> + + PR tree-optimization/103721 + * gimple-range-path.cc + (path_range_query::relations_may_be_invalidated): New. + (path_range_query::compute_ranges_in_block): Reset relations if + they may be invalidated. + (path_range_query::maybe_register_phi_relation): Exit if relations + may be invalidated on incoming edge. + (path_range_query::compute_phi_relations): Pass incoming PHI edge + to maybe_register_phi_relation. + * gimple-range-path.h (relations_may_be_invalidated): New. + (maybe_register_phi_relation): Pass edge instead of tree. + * tree-ssa-threadbackward.cc (back_threader::back_threader): + Mark DFS edges. + * value-relation.cc (path_oracle::path_oracle): Call + mark_dfs_back_edges. + (path_oracle::register_relation): Add SSA names to m_registered + bitmap. + (path_oracle::reset_path): Clear m_registered bitmap. + * value-relation.h (path_oracle::set_root_oracle): New. + +2022-01-21 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/102478 + * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't + force_reg constants and for -fnon-call-exceptions fail if copy_to_reg + would be needed. + +2022-01-20 Richard Biener <rguenther@suse.de> + + PR middle-end/100786 + * gimple-fold.cc (get_symbol_constant_value): Only return + values of compatible type to the symbol. + +2022-01-20 Andrew MacLeod <amacleod@redhat.com> + + * value-relation.cc (relation_oracle::valid_equivs): Query and add + if valid members of a set. + (equiv_oracle::register_equiv): Call valid_equivs rather than + bitmap direct operations. + (path_oracle::register_equiv): Ditto. + * value-relation.h (relation_oracle::valid_equivs): New prototype. + +2022-01-20 Richard Biener <rguenther@suse.de> + + PR target/100784 + * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for + LHS before folding __builtin_ia32_shufpd and friends. + +2022-01-20 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/crypto.md (aes_op_protect): Allow moves from core + registers and from memory. + (aes_op_protect_misalign_load): New pattern. + (aes_op_protect_neon_vld1v16qi): New pattern. + +2022-01-20 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected): + New pattern. + (aarch32_crypto_aese_fused_protected): Likewise. + (aarch32_crypto_aesd_fused_protected): Likewise. + +2022-01-20 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert + to define_expand. Add mitigation for the Cortex-A AES erratum + when enabled. + (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based + on original crypto_<CRYPTO_AES:crypto_pattern> insn. + (aes_op_protect): New pattern. + * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT. + +2022-01-20 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature + (ALL_QUIRKS): Add it. + (cortex-a57, cortex-a72): Enable it. + (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise. + * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line + option. + (mfix-cortex-a72-aes-1655431): New option alias. + * config/arm/arm.cc (arm_option_override): Handle default settings + for AES erratum switch. + * doc/invoke.texi (Arm Options): Document new options. + +2022-01-20 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use + <crypto_mode> rather than hard-coding the mode. + (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space. + (crypto_<CRYPTO_AES:crypto_pattern>): Likewise. + (*aarch32_crypto_aese_fused): Likewise. + (*aarch32_crypto_aesd_fused): Likewise. + (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise. + (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise. + (crypto_sha1h_lb): Likewise. + (crypto_vmullp64): Likewise. + (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise. + (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise. + +2022-01-20 Richard Earnshaw <rearnsha@arm.com> + + * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add + iterator to pattern name to disambiguate. + (crypto_<CRYPTO_AES:crypto_pattern>): Likewise. + (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise. + (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise. + (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise. + (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise. + +2022-01-20 Martin Liska <mliska@suse.cz> + + PR bootstrap/104135 + * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings. + * rtl.cc: Partially disable -Wformat-diag for RTL checking + error messages. + +2022-01-20 Jakub Jelinek <jakub@redhat.com> + + PR debug/103874 + * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and + block_num > 0, index entry even if !have_multiple_function_sections. + +2022-01-20 liuhongt <hongtao.liu@intel.com> + + PR target/103771 + * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance + integral mode mask pack by multi steps which takes + vec_pack_sbool_trunc_optab as start when elements number is + less than BITS_PER_UNITS. + +2022-01-20 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104114 + * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose + single element vector decomposition. + +2022-01-19 Robin Dapp <rdapp@linux.ibm.com> + + * ifcvt.cc (noce_convert_multiple_sets_1): New function. + (noce_convert_multiple_sets): Call function a second time if we can + improve the first try. + +2022-01-19 Robin Dapp <rdapp@linux.ibm.com> + + * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the + reversed comparison. + (try_emit_cmove_seq): New function to facilitate creating a cmov + sequence. + (noce_convert_multiple_sets): Create two sequences and use the less + expensive one. + +2022-01-19 Robin Dapp <rdapp@linux.ibm.com> + + * rtl.h (struct rtx_comparison): New struct that holds an rtx + comparison. + * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of + single parameters. + (rs6000_emit_swsqrt): Likewise. + * expmed.cc (expand_sdiv_pow2): Likewise. + (emit_store_flag): Likewise. + * expr.cc (expand_cond_expr_using_cmove): Likewise. + (expand_expr_real_2): Likewise. + * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare + parameters. + * optabs.cc (emit_conditional_move_1): New function. + (expand_doubleword_shift_condmove): Use struct. + (emit_conditional_move): Use struct and allow to call directly + without going through preparation steps. + * optabs.h (emit_conditional_move): Use struct. + +2022-01-19 Robin Dapp <rdapp@linux.ibm.com> + + * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs. + (noce_process_if_block): Use potential costs. + +2022-01-19 Robin Dapp <rdapp@linux.ibm.com> + + * ifcvt.cc (noce_convert_multiple_sets): Allow constants. + (bb_ok_for_noce_convert_multiple_sets): Likewise. + +2022-01-19 Robin Dapp <rdapp@linux.ibm.com> + + * ifcvt.cc (need_cmov_or_rewire): New function. + (noce_convert_multiple_sets): Call it. + +2022-01-19 David Malcolm <dmalcolm@redhat.com> + + * attribs.cc (attribute_c_tests): Rename to... + (attribs_cc_tests): ...this. + * bitmap.cc (bitmap_c_tests): Rename to... + (bitmap_cc_tests): ...this. + * cgraph.cc (cgraph_c_finalize): Rename to... + (cgraph_cc_finalize): ...this. + (cgraph_c_tests): Rename to... + (cgraph_cc_tests): ...this. + * cgraph.h (cgraph_c_finalize): Rename to... + (cgraph_cc_finalize): ...this. + (cgraphunit_c_finalize): Rename to... + (cgraphunit_cc_finalize): ...this. + * cgraphunit.cc (cgraphunit_c_finalize): Rename to... + (cgraphunit_cc_finalize): ...this. + * convert.cc (convert_c_tests): Rename to... + (convert_cc_tests): ...this. + * dbgcnt.cc (dbgcnt_c_tests): Rename to... + (dbgcnt_cc_tests): ...this. + * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to... + (diagnostic_show_locus_cc_tests): ...this. + * diagnostic.cc (diagnostic_c_tests): Rename to... + (diagnostic_cc_tests): ...this. + * dumpfile.cc (dumpfile_c_tests): Rename to... + (dumpfile_cc_tests): ...this. + * dwarf2out.cc (dwarf2out_c_finalize): Rename to... + (dwarf2out_cc_finalize): ...this. + * dwarf2out.h (dwarf2out_c_finalize): Rename to... + (dwarf2out_cc_finalize): ...this. + * edit-context.cc (edit_context_c_tests): Rename to... + (edit_context_cc_tests): ...this. + * et-forest.cc (et_forest_c_tests): Rename to... + (et_forest_cc_tests): ...this. + * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to... + (fibonacci_heap_cc_tests): ...this. + * fold-const.cc (fold_const_c_tests): Rename to... + (fold_const_cc_tests): ...this. + * function-tests.cc (function_tests_c_tests): Rename to... + (function_tests_cc_tests): ...this. + * gcse.cc (gcse_c_finalize): Rename to... + (gcse_cc_finalize): ...this. + * gcse.h (gcse_c_finalize): Rename to... + (gcse_cc_finalize): ...this. + * ggc-tests.cc (ggc_tests_c_tests): Rename to... + (ggc_tests_cc_tests): ...this. + * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to... + (store_merging_cc_tests): ...this. + * gimple.cc (gimple_c_tests): Rename to... + (gimple_cc_tests): ...this. + * hash-map-tests.cc (hash_map_tests_c_tests): Rename to... + (hash_map_tests_cc_tests): ...this. + * hash-set-tests.cc (hash_set_tests_c_tests): Rename to... + (hash_set_tests_cc_tests): ...this. + * input.cc (input_c_tests): Rename to... + (input_cc_tests): ...this. + * ipa-cp.cc (ipa_cp_c_finalize): Rename to... + (ipa_cp_cc_finalize): ...this. + * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to... + (ipa_fnsummary_cc_finalize): ...this. + * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to... + (ipa_fnsummary_cc_finalize): ...this. + * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to... + (ipa_modref_tree_cc_tests): ...this. + * ipa-modref-tree.h (modref_c_tests): Delete bogus decl. + * ipa-modref.cc (ipa_modref_c_finalize): Rename to... + (ipa_modref_cc_finalize): ...this. + * ipa-modref.h (ipa_modref_c_finalize): Rename to... + (ipa_modref_cc_finalize): ...this. + * ipa-prop.h (ipa_cp_c_finalize): Rename to... + (ipa_cp_cc_finalize): ...this. + * ipa-reference.cc (ipa_reference_c_finalize): Rename to... + (ipa_reference_cc_finalize): ...this. + * ipa-reference.h (ipa_reference_c_finalize): Rename to... + (ipa_reference_cc_finalize): ...this. + * ira-costs.cc (ira_costs_c_finalize): Rename to... + (ira_costs_cc_finalize): ...this. + * ira.h (ira_costs_c_finalize): Rename to... + (ira_costs_cc_finalize): ...this. + * opt-suggestions.cc (opt_proposer_c_tests): Rename to... + (opt_suggestions_cc_tests): ...this. + * opts.cc (opts_c_tests): Rename to... + (opts_cc_tests): ...this. + * predict.cc (predict_c_tests): Rename to... + (predict_cc_tests): ...this. + * pretty-print.cc (pretty_print_c_tests): Rename to... + (pretty_print_cc_tests): ...this. + * read-rtl-function.cc (read_rtl_function_c_tests): Rename to... + (read_rtl_function_cc_tests): ...this. + * rtl-tests.cc (rtl_tests_c_tests): Rename to... + (rtl_tests_cc_tests): ...this. + * sbitmap.cc (sbitmap_c_tests): Rename to... + (sbitmap_cc_tests): ...this. + * selftest-run-tests.cc (selftest::run_tests): Update calls for + _c_ to _cc_ function renamings; fix names of attribs and + opt-suggestions tests. + * selftest.cc (selftest_c_tests): Rename to... + (selftest_cc_tests): ...this. + * selftest.h (attribute_c_tests): Rename to... + (attribs_cc_tests): ...this. + (bitmap_c_tests): Rename to... + (bitmap_cc_tests): ...this. + (cgraph_c_tests): Rename to... + (cgraph_cc_tests): ...this. + (convert_c_tests): Rename to... + (convert_cc_tests): ...this. + (diagnostic_c_tests): Rename to... + (diagnostic_cc_tests): ...this. + (diagnostic_show_locus_c_tests): Rename to... + (diagnostic_show_locus_cc_tests): ...this. + (dumpfile_c_tests): Rename to... + (dumpfile_cc_tests): ...this. + (edit_context_c_tests): Rename to... + (edit_context_cc_tests): ...this. + (et_forest_c_tests): Rename to... + (et_forest_cc_tests): ...this. + (fibonacci_heap_c_tests): Rename to... + (fibonacci_heap_cc_tests): ...this. + (fold_const_c_tests): Rename to... + (fold_const_cc_tests): ...this. + (function_tests_c_tests): Rename to... + (function_tests_cc_tests): ...this. + (ggc_tests_c_tests): Rename to... + (ggc_tests_cc_tests): ...this. + (gimple_c_tests): Rename to... + (gimple_cc_tests): ...this. + (hash_map_tests_c_tests): Rename to... + (hash_map_tests_cc_tests): ...this. + (hash_set_tests_c_tests): Rename to... + (hash_set_tests_cc_tests): ...this. + (input_c_tests): Rename to... + (input_cc_tests): ...this. + (opts_c_tests): Rename to... + (opts_cc_tests): ...this. + (predict_c_tests): Rename to... + (predict_cc_tests): ...this. + (pretty_print_c_tests): Rename to... + (pretty_print_cc_tests): ...this. + (read_rtl_function_c_tests): Rename to... + (read_rtl_function_cc_tests): ...this. + (rtl_tests_c_tests): Rename to... + (rtl_tests_cc_tests): ...this. + (sbitmap_c_tests): Rename to... + (sbitmap_cc_tests): ...this. + (selftest_c_tests): Rename to... + (selftest_cc_tests): ...this. + (simplify_rtx_c_tests): Rename to... + (simplify_rtx_cc_tests): ...this. + (spellcheck_c_tests): Rename to... + (spellcheck_cc_tests): ...this. + (spellcheck_tree_c_tests): Rename to... + (spellcheck_tree_cc_tests): ...this. + (sreal_c_tests): Rename to... + (sreal_cc_tests): ...this. + (store_merging_c_tests): Rename to... + (store_merging_cc_tests): ...this. + (tree_c_tests): Rename to... + (tree_cc_tests): ...this. + (tree_cfg_c_tests): Rename to... + (tree_cfg_cc_tests): ...this. + (typed_splay_tree_c_tests): Rename to... + (typed_splay_tree_cc_tests): ...this. + (vec_c_tests): Rename to... + (vec_cc_tests): ...this. + (vec_perm_indices_c_tests): Rename to... + (vec_perm_indices_cc_tests): ..this. + (opt_proposer_c_tests): Rename to... + (opt_suggestions_cc_tests): ...this. + (dbgcnt_c_tests): Rename to... + (dbgcnt_cc_tests): ...this. + (ipa_modref_tree_c_tests): Rename to... + (ipa_modref_tree_cc_tests): ...this. + * simplify-rtx.cc (simplify_rtx_c_tests): Rename to... + (simplify_rtx_cc_tests): ...this. + * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to... + (spellcheck_tree_cc_tests): ...this. + * spellcheck.cc (spellcheck_c_tests): Rename to... + (spellcheck_cc_tests): ...this. + * sreal.cc (sreal_c_tests): Rename to... + (sreal_cc_tests): ...this. + * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_ + function renamings. + * tree-cfg.cc (tree_cfg_c_tests): Rename to... + (tree_cfg_cc_tests): ...this. + * tree.cc (tree_c_tests): Rename to... + (tree_cc_tests): ...this. + * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to... + (typed_splay_tree_cc_tests): ...this. + * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to... + (vec_perm_indices_cc_tests): ...this. + * vec.cc (vec_c_tests): Rename to... + (vec_cc_tests): ...this. + +2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com> + + PR tree-optimization/103997 + * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue + vectorization. + +2022-01-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/102860 + * match.pd (x %[fl] y -> x % y): New simplification for + unsigned integral types. + * optabs-tree.cc (optab_for_tree_code): Return unknown_optab + for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE. + +2022-01-19 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104112 + * tree-vect-loop.cc (vect_find_reusable_accumulator): Check + for required intermediate vector types. + +2022-01-19 Jakub Jelinek <jakub@redhat.com> + + * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:. + +2022-01-19 Martin Liska <mliska@suse.cz> + + * configure.ac: Remove -Wno-error=format-diag. + * configure: Regenerate. + +2022-01-19 Martin Liska <mliska@suse.cz> + + * config/riscv/riscv.cc (riscv_handle_type_attribute): + Update one -Wformat-diag string in warning message. + +2022-01-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/104103 + * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check + .ASAN_MARK calls. + +2022-01-19 Jakub Jelinek <jakub@redhat.com> + + PR c++/89074 + * fold-const.cc (address_compare): Consider different STRING_CSTs + with the same lengths that memcmp the same as equal, not different. + +2022-01-19 Jakub Jelinek <jakub@redhat.com> + + * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of + {%0}. + +2022-01-19 Martin Liska <mliska@suse.cz> + Thomas Schwinge <thomas@codesourcery.com> + + * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update + warning messages. + +2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de> + + PR target/104090 + * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also + rs6000_cpu. + +2022-01-19 Jakub Jelinek <jakub@redhat.com> + + PR target/104104 + * config/i386/sse.md + (<avx512>_<complexopname>_<mode><maskc_name><round_name>, + avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>, + avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>, + avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>, + avx512dq_rangep<mode><mask_name><round_saeonly_name>, + avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>, + <avx512>_getmant<mode><mask_name><round_saeonly_name>, + avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): + Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}. + +2022-01-19 Martin Sebor <msebor@redhat.com> + + PR middle-end/104069 + * gimple-ssa-warn-access.cc (pointers_related_p): Return false for + an unknown result as documented. + +2022-01-18 Andrew Pinski <apinski@marvell.com> + + * ipa-split.cc (visit_bb): Fix comment before the + warning/error attribute checking code. + +2022-01-18 David Faust <david.faust@oracle.com> + + * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account + for base strtab offset yet as it may change. + (output_asm_btfext_core_reloc): Do so here instead. + (output_btfext_core_sections): Likewise. + +2022-01-18 David Faust <david.faust@oracle.com> + + * config/bpf/coreout.cc (output_btfext_header): Account for + 4-byte record size in core_relo_len. + (output_btfext_core_sections): Only write record size once. + * config/bpf/coreout.h (btf_ext_section_header): Delete unused + member. + +2022-01-18 Maciej W. Rozycki <macro@embecosm.com> + + * common/config/riscv/riscv-common.cc + (riscv_subset_list::parse_multiletter_ext): Move pointer + arithmetic ahead of `free'. + +2022-01-18 Jason Merrill <jason@redhat.com> + + PR c++/104007 + * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional + context. + +2022-01-18 Sandra Loosemore <sandra@codesourcery.com> + + PR middle-end/103163 + * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here... + (init_emit_once): ...not here. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * collect2.cc (scan_libraries): Fix -Wformat-diag issues. + * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise. + * config/arc/arc.md: Likewise. + * config/avr/avr.cc (avr_section_type_flags): Likewise. + * config/bfin/bfin.cc (bfin_option_override): Likewise. + (bfin_handle_longcall_attribute): Likewise. + * config/cris/cris.h (FUNCTION_PROFILER): Likewise. + * config/frv/frv.cc (frv_expand_builtin): Likewise. + * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise. + * config/iq2000/iq2000.cc (save_restore_insns): Likewise. + (iq2000_print_operand_address): Likewise. + (iq2000_print_operand): Likewise. + * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise. + (m32c_pragma_address): Likewise. + * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise. + * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise. + (mips_set_compression_mode): Likewise. + * config/mmix/mmix.cc (mmix_function_profiler): Likewise. + (mmix_print_operand): Likewise. + (mmix_output_shiftvalue_op_from_str): Likewise. + (mmix_output_shifted_value): Likewise. + * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise. + * config/msp430/msp430.cc (msp430_option_override): Likewise. + (msp430_attr): Likewise. + (msp430_expand_delay_cycles): Likewise. + (msp430_expand_builtin): Likewise. + * config/rs6000/aix73.h: Likewise. + * config/rs6000/rtems.h (INVALID_64BIT): Likewise. + * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise. + (valid_psw_flag): Likewise. + * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise. + * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise. + (xstormy16_expand_builtin_va_start): Likewise. + (xstormy16_handle_below100_attribute): Likewise. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag + warning. + (vms_pragma_standard): Likewise. + (vms_pragma_extern_prefix): Likewise. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/xtensa/xtensa.cc (print_operand): Fix warnings. + (print_operand_address): Likewise. + (xtensa_multibss_section_type_flags): Likewise. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change + wording of an error message. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag + warning. + (ghs_pragma_section): Likewise. + (ghs_pragma_interrupt): Likewise. + (ghs_pragma_starttda): Likewise. + (ghs_pragma_startsda): Likewise. + (ghs_pragma_startzda): Likewise. + (ghs_pragma_endtda): Likewise. + (ghs_pragma_endsda): Likewise. + (ghs_pragma_endzda): Likewise. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl): + Fix warnings. + * config/nds32/nds32-intrinsic.md: Likewise. + * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise. + * config/nds32/nds32.cc (nds32_print_operand): Likewise. + (nds32_insert_attributes): Likewise. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap + keyword. + * config/nvptx/nvptx.md: Remove trailing dot. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * common/config/riscv/riscv-common.cc (riscv_subset_list::add): + Wrap keywords with quotes and remove trailing dots. + (riscv_subset_list::parsing_subset_version): Likewise. + (riscv_subset_list::parse_std_ext): Likewise. + (riscv_subset_list::parse_multiletter_ext): Likewise. + * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise. + +2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new + argument suggested_unroll_factor. + (vect_analyze_loop_costing): Likewise. + (_loop_vec_info::_loop_vec_info): Initialize new member + suggested_unroll_factor. + (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled + main loop use partial vectors. + (vect_analyze_loop_2): Pass and use new argument + suggested_unroll_factor. + (vect_analyze_loop_1): Change to intialize local + suggested_unroll_factor and use it. + (vectorizable_reduction): Don't use single_defuse_cycle when unrolling. + * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member + suggested_unroll_factor. + (vector_costs::vector_costs): Add new member m_suggested_unroll_factor. + (vector_costs::suggested_unroll_factor): New getter function. + (finish_cost): Set return argument suggested_unroll_factor. + +2022-01-18 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/104038 + * doc/invoke.texi (relation-block-limit): New. + * params.opt (relation-block-limit): New. + * value-relation.cc (dom_oracle::register_relation): Check for NULL + record before invoking transitive registery. + (dom_oracle::set_one_relation): Check limit before creating record. + (dom_oracle::register_transitives): Stop when no record created. + * value-relation.h (relation_chain_head::m_num_relations): New. + +2022-01-18 Richard Biener <rguenther@suse.de> + + PR ipa/103989 + * ipa-inline.cc (inline_small_functions): Do not enqueue call + edges originating in functions compiled with -Og. + +2022-01-18 Richard Biener <rguenther@suse.de> + + PR ipa/103989 + * passes.def (pass_all_optimizations_g): Remove pass_modref + and pass_local_pure_const. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/s390/s390.cc: Fix -Wformat-diag warnings. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap + keyword in quotes. + (s390_resolve_overloaded_builtin): Remove trailing dot. + * config/s390/s390.cc (s390_const_operand_ok): Use - for range. + (s390_expand_builtin): Remove trailing dot. + (s390_emit_prologue): Likewise, use semicolon. + (s390_option_override_internal): Update keyword. + * varasm.cc (do_assemble_alias): Wrap keyword in quotes. + +2022-01-18 Martin Liska <mliska@suse.cz> + + * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap + keywords and use %qs instead of %<%s%>. + +2022-01-18 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103987 + * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref + query with a pointer check. + +2022-01-18 Richard Sandiford <richard.sandiford@arm.com> + + PR target/104005 + * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems): + When using MEM_EXPR, require the base to be a decl. + +2022-01-18 Richard Biener <rguenther@suse.de> + + * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to + avoid padding. + * function.h (struct function): Likewise. + +2022-01-18 Arnaud Charlet <charlet@adacore.com> + + * doc/install.texi: Update prerequisites for GNAT + +2022-01-18 Andrew Pinski <apinski@marvell.com> + + PR tree-optimization/101941 + * ipa-split.cc (visit_bb): Disallow function calls where + the function has either error or warning attribute. + +2022-01-18 Richard Biener <rguenther@suse.de> + + PR tree-optimization/104064 + * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check + DR_INIT fits in a signed HWI, represent the difference from the + first DR in unsigned. + +2022-01-17 Martin Liska <mliska@suse.cz> + + * Makefile.in: Rename .c names to .cc. + * config.gcc: Likewise. + * configure: Regenerate. Likewise. + * configure.ac: Likewise. + * gengtype.cc (set_gc_used): Likewise. + (source_dot_c_frul): Likewise. + (source_dot_cc_frul): Likewise. + (struct file_rule_st): Likewise. + (close_output_files): Likewise. + * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD. + +2022-01-17 Martin Liska <mliska@suse.cz> + + * Makefile.in: Rename .c names to .cc. + * alias.h: Likewise. + * asan.cc: Likewise. + * auto-profile.h: Likewise. + * basic-block.h (struct basic_block_d): Likewise. + * btfout.cc: Likewise. + * builtins.cc (expand_builtin_longjmp): Likewise. + (validate_arg): Likewise. + (access_ref::offset_bounded): Likewise. + * caller-save.cc (reg_restore_code): Likewise. + (setup_save_areas): Likewise. + * calls.cc (initialize_argument_information): Likewise. + (expand_call): Likewise. + (emit_library_call_value_1): Likewise. + * cfg-flags.def (RTL): Likewise. + (SIBCALL): Likewise. + (CAN_FALLTHRU): Likewise. + * cfganal.cc (post_order_compute): Likewise. + * cfgcleanup.cc (try_simplify_condjump): Likewise. + (merge_blocks_move_predecessor_nojumps): Likewise. + (merge_blocks_move_successor_nojumps): Likewise. + (merge_blocks_move): Likewise. + (old_insns_match_p): Likewise. + (try_crossjump_bb): Likewise. + * cfgexpand.cc (expand_gimple_stmt): Likewise. + * cfghooks.cc (split_block_before_cond_jump): Likewise. + (profile_record_check_consistency): Likewise. + * cfghooks.h: Likewise. + * cfgrtl.cc (pass_free_cfg::execute): Likewise. + (rtl_can_merge_blocks): Likewise. + (try_redirect_by_replacing_jump): Likewise. + (make_pass_outof_cfg_layout_mode): Likewise. + (cfg_layout_can_merge_blocks_p): Likewise. + * cgraph.cc (release_function_body): Likewise. + (cgraph_node::get_fun): Likewise. + * cgraph.h (struct cgraph_node): Likewise. + (asmname_hasher::equal): Likewise. + (cgraph_inline_failed_type): Likewise. + (thunk_adjust): Likewise. + (dump_callgraph_transformation): Likewise. + (record_references_in_initializer): Likewise. + (ipa_discover_variable_flags): Likewise. + * cgraphclones.cc (GTY): Likewise. + * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise. + * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise. + * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise. + * collect2.cc (maybe_run_lto_and_relink): Likewise. + * combine-stack-adj.cc: Likewise. + * combine.cc (setup_incoming_promotions): Likewise. + (combine_simplify_rtx): Likewise. + (count_rtxs): Likewise. + * common.opt: Likewise. + * common/config/aarch64/aarch64-common.cc: Likewise. + * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise. + * common/config/avr/avr-common.cc: Likewise. + * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise. + * conditions.h: Likewise. + * config.gcc: Likewise. + * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise. + * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise. + (aarch64_get_extension_string_for_isa_flags): Likewise. + * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise. + * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise. + (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise. + (aarch64_option_valid_attribute_p): Likewise. + (aarch64_short_vector_p): Likewise. + (aarch64_float_const_representable_p): Likewise. + * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise. + (ASM_OUTPUT_POOL_EPILOGUE): Likewise. + (GTY): Likewise. + * config/aarch64/cortex-a57-fma-steering.cc: Likewise. + * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise. + * config/aarch64/t-aarch64: Likewise. + * config/aarch64/x-aarch64: Likewise. + * config/aarch64/x-darwin: Likewise. + * config/alpha/alpha-protos.h: Likewise. + * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise. + * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise. + (enum reg_class): Likewise. + * config/alpha/alpha.md: Likewise. + * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise. + * config/alpha/x-alpha: Likewise. + * config/arc/arc-protos.h (arc_eh_uses): Likewise. + * config/arc/arc.cc (ARC_OPT): Likewise. + (arc_ccfsm_advance): Likewise. + (arc_arg_partial_bytes): Likewise. + (conditionalize_nonjump): Likewise. + * config/arc/arc.md: Likewise. + * config/arc/builtins.def: Likewise. + * config/arc/t-arc: Likewise. + * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise. + (arm_pragma_target_parse): Likewise. + * config/arm/arm-protos.h (save_restore_target_globals): Likewise. + (arm_cpu_cpp_builtins): Likewise. + * config/arm/arm.cc (vfp3_const_double_index): Likewise. + (shift_op): Likewise. + (thumb2_final_prescan_insn): Likewise. + (arm_final_prescan_insn): Likewise. + (arm_asm_output_labelref): Likewise. + (arm_small_register_classes_for_mode_p): Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/driver-arm.cc: Likewise. + * config/arm/symbian.h: Likewise. + * config/arm/t-arm: Likewise. + * config/arm/thumb1.md: Likewise. + * config/arm/x-arm: Likewise. + * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise. + * config/avr/avr-fixed.md: Likewise. + * config/avr/avr-log.cc (avr_log_vadump): Likewise. + * config/avr/avr-mcus.def: Likewise. + * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise. + * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise. + * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise. + * config/avr/avr.cc (avr_option_override): Likewise. + (avr_build_builtin_va_list): Likewise. + (avr_mode_dependent_address_p): Likewise. + (avr_function_arg_advance): Likewise. + (avr_asm_output_aligned_decl_common): Likewise. + * config/avr/avr.h (RETURN_ADDR_RTX): Likewise. + (SUPPORTS_INIT_PRIORITY): Likewise. + * config/avr/avr.md: Likewise. + * config/avr/builtins.def: Likewise. + * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise. + * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise. + (main): Likewise. + * config/avr/t-avr: Likewise. + * config/bfin/bfin.cc (frame_related_constant_load): Likewise. + * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise. + * config/bpf/bpf.h (enum reg_class): Likewise. + * config/bpf/t-bpf: Likewise. + * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise. + * config/cr16/cr16-protos.h: Likewise. + * config/cris/cris.cc (cris_address_cost): Likewise. + (cris_side_effect_mode_ok): Likewise. + (cris_init_machine_status): Likewise. + (cris_emit_movem_store): Likewise. + * config/cris/cris.h (INDEX_REG_CLASS): Likewise. + (enum reg_class): Likewise. + (struct cum_args): Likewise. + * config/cris/cris.opt: Likewise. + * config/cris/sync.md: Likewise. + * config/csky/csky.cc (csky_expand_prologue): Likewise. + * config/darwin-c.cc: Likewise. + * config/darwin-f.cc: Likewise. + * config/darwin-sections.def (zobj_const_section): Likewise. + * config/darwin.cc (output_objc_section_asm_op): Likewise. + (fprintf): Likewise. + * config/darwin.h (GTY): Likewise. + * config/elfos.h: Likewise. + * config/epiphany/epiphany-sched.md: Likewise. + * config/epiphany/epiphany.cc (epiphany_function_value): Likewise. + * config/epiphany/epiphany.h (GTY): Likewise. + (NO_FUNCTION_CSE): Likewise. + * config/epiphany/mode-switch-use.cc: Likewise. + * config/epiphany/predicates.md: Likewise. + * config/epiphany/t-epiphany: Likewise. + * config/fr30/fr30-protos.h: Likewise. + * config/frv/frv-protos.h: Likewise. + * config/frv/frv.cc (TLS_BIAS): Likewise. + * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. + * config/ft32/ft32-protos.h: Likewise. + * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise. + * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise. + * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise. + * config/gcn/t-gcn-hsa: Likewise. + * config/gcn/t-omp-device: Likewise. + * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise. + (same_cmp_following_p): Likewise. + * config/h8300/h8300.cc (F): Likewise. + * config/h8300/h8300.h (struct cum_arg): Likewise. + (BRANCH_COST): Likewise. + * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise. + * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise. + * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise. + * config/i386/driver-i386.cc (detect_caches_intel): Likewise. + * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise. + * config/i386/i386-c.cc (ix86_target_macros): Likewise. + * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise. + * config/i386/i386-options.cc (ix86_set_func_type): Likewise. + * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise. + (ix86_register_pragmas): Likewise. + (ix86_d_has_stdcall_convention): Likewise. + (i386_pe_seh_init_sections): Likewise. + * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise. + (ix86_function_value_regno_p): Likewise. + (ix86_compute_frame_layout): Likewise. + (legitimize_pe_coff_symbol): Likewise. + (output_pic_addr_const): Likewise. + * config/i386/i386.h (defined): Likewise. + (host_detect_local_cpu): Likewise. + (CONSTANT_ADDRESS_P): Likewise. + (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise. + (struct machine_frame_state): Likewise. + * config/i386/i386.md: Likewise. + * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise. + * config/i386/mmx.md: Likewise. + * config/i386/sse.md: Likewise. + * config/i386/t-cygming: Likewise. + * config/i386/t-djgpp: Likewise. + * config/i386/t-gnu-property: Likewise. + * config/i386/t-i386: Likewise. + * config/i386/t-intelmic: Likewise. + * config/i386/t-omp-device: Likewise. + * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise. + (i386_pe_adjust_class_at_definition): Likewise. + * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise. + (i386_pe_mangle_decl_assembler_name): Likewise. + (i386_pe_encode_section_info): Likewise. + * config/i386/x-cygwin: Likewise. + * config/i386/x-darwin: Likewise. + * config/i386/x-i386: Likewise. + * config/i386/x-mingw32: Likewise. + * config/i386/x86-tune-sched-core.cc: Likewise. + * config/i386/x86-tune.def: Likewise. + * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise. + * config/ia64/freebsd.h: Likewise. + * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise. + * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise. + * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise. + (ia64_secondary_reload_class): Likewise. + (bundling): Likewise. + * config/ia64/ia64.h: Likewise. + * config/ia64/ia64.md: Likewise. + * config/ia64/predicates.md: Likewise. + * config/ia64/sysv4.h: Likewise. + * config/ia64/t-ia64: Likewise. + * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise. + * config/iq2000/iq2000.md: Likewise. + * config/linux.h (TARGET_HAS_BIONIC): Likewise. + (if): Likewise. + * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise. + * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise. + * config/m32c/t-m32c: Likewise. + * config/m32r/m32r-protos.h: Likewise. + * config/m32r/m32r.cc (m32r_print_operand): Likewise. + * config/m32r/m32r.h: Likewise. + * config/m32r/m32r.md: Likewise. + * config/m68k/m68k-isas.def: Likewise. + * config/m68k/m68k-microarchs.def: Likewise. + * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise. + (m68k_epilogue_uses): Likewise. + * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise. + (m68k_sched_adjust_cost): Likewise. + (m68k_sched_md_init): Likewise. + * config/m68k/m68k.h (__transfer_from_trampoline): Likewise. + (enum m68k_function_kind): Likewise. + * config/m68k/m68k.md: Likewise. + * config/m68k/m68kemb.h: Likewise. + * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise. + * config/mcore/mcore-protos.h: Likewise. + * config/mcore/mcore.cc (mcore_expand_insv): Likewise. + (mcore_expand_prolog): Likewise. + * config/mcore/mcore.h (TARGET_MCORE): Likewise. + * config/mcore/mcore.md: Likewise. + * config/microblaze/microblaze-protos.h: Likewise. + * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise. + (microblaze_function_prologue): Likewise. + (microblaze_function_epilogue): Likewise. + (microblaze_select_section): Likewise. + (microblaze_asm_output_mi_thunk): Likewise. + (microblaze_eh_return): Likewise. + * config/microblaze/microblaze.h: Likewise. + * config/microblaze/microblaze.md: Likewise. + * config/microblaze/t-microblaze: Likewise. + * config/mips/driver-native.cc: Likewise. + * config/mips/loongson2ef.md: Likewise. + * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise. + * config/mips/mips.cc (mips_rtx_costs): Likewise. + (mips_output_filename): Likewise. + (mips_output_function_prologue): Likewise. + (mips_output_function_epilogue): Likewise. + (mips_output_mi_thunk): Likewise. + * config/mips/mips.h: Likewise. + * config/mips/mips.md: Likewise. + * config/mips/t-mips: Likewise. + * config/mips/x-native: Likewise. + * config/mmix/mmix-protos.h: Likewise. + * config/mmix/mmix.cc (mmix_option_override): Likewise. + (mmix_dbx_register_number): Likewise. + (mmix_expand_prologue): Likewise. + * config/mmix/mmix.h: Likewise. + * config/mmix/mmix.md: Likewise. + * config/mmix/predicates.md: Likewise. + * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise. + (mn10300_legitimate_pic_operand_p): Likewise. + * config/mn10300/mn10300.h (enum reg_class): Likewise. + (NO_FUNCTION_CSE): Likewise. + * config/moxie/moxie-protos.h: Likewise. + * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise. + * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise. + * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise. + (msp430_incoming_return_addr_rtx): Likewise. + * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise. + * config/msp430/t-msp430: Likewise. + * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise. + (nds32_rtx_costs_size_prefer): Likewise. + (nds32_init_rtx_costs): Likewise. + * config/nds32/nds32-doubleword.md: Likewise. + * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise. + (nds32_builtin_decl): Likewise. + * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise. + (enum nds32_isr_nested_type): Likewise. + (enum reg_class): Likewise. + * config/nds32/predicates.md: Likewise. + * config/nds32/t-nds32: Likewise. + * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise. + * config/nvptx/nvptx-protos.h: Likewise. + * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise. + * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise. + * config/nvptx/t-nvptx: Likewise. + * config/nvptx/t-omp-device: Likewise. + * config/pa/elf.h: Likewise. + * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise. + * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise. + * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise. + * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise. + (pa_legitimize_reload_address): Likewise. + (pa_can_use_return_insn): Likewise. + * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise. + (som_output_text_section_asm_op): Likewise. + * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise. + * config/pa/pa.md: Likewise. + * config/pa/som.h: Likewise. + * config/pa/t-pa: Likewise. + * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise. + * config/pdp11/pdp11.h: Likewise. + * config/pdp11/pdp11.md: Likewise. + * config/pdp11/t-pdp11: Likewise. + * config/pru/pru.md: Likewise. + * config/pru/t-pru: Likewise. + * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise. + (riscv_gpr_save_operation_p): Likewise. + (riscv_d_register_target_info): Likewise. + (riscv_init_builtins): Likewise. + * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise. + * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise. + * config/riscv/t-riscv: Likewise. + * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise. + * config/rl78/t-rl78: Likewise. + * config/rs6000/aix.h: Likewise. + * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise. + * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise. + * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise. + * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise. + * config/rs6000/driver-rs6000.cc: Likewise. + * config/rs6000/freebsd.h: Likewise. + * config/rs6000/freebsd64.h: Likewise. + * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise. + * config/rs6000/rbtree.cc: Likewise. + * config/rs6000/rbtree.h: Likewise. + * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise. + * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise. + (rs6000_expand_builtin): Likewise. + (rs6000_init_builtins): Likewise. + * config/rs6000/rs6000-cpus.def: Likewise. + * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise. + * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise. + (quad_address_offset_p): Likewise. + * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise. + (rs6000_emit_epilogue): Likewise. + * config/rs6000/rs6000-overload.def: Likewise. + * config/rs6000/rs6000-p8swap.cc: Likewise. + * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise. + (rs6000_const_f32_to_i32): Likewise. + * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise. + (rs6000_debug_legitimize_address): Likewise. + (rs6000_mode_dependent_address): Likewise. + (rs6000_adjust_priority): Likewise. + (rs6000_c_mode_for_suffix): Likewise. + * config/rs6000/rs6000.h (defined): Likewise. + (LONG_DOUBLE_TYPE_SIZE): Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/rs6000/t-linux: Likewise. + * config/rs6000/t-linux64: Likewise. + * config/rs6000/t-rs6000: Likewise. + * config/rs6000/x-darwin: Likewise. + * config/rs6000/x-darwin64: Likewise. + * config/rs6000/x-rs6000: Likewise. + * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise. + * config/rx/rx.cc (rx_expand_builtin): Likewise. + * config/s390/constraints.md: Likewise. + * config/s390/driver-native.cc: Likewise. + * config/s390/htmxlintrin.h: Likewise. + * config/s390/s390-builtins.def (B_DEF): Likewise. + (OB_DEF_VAR): Likewise. + * config/s390/s390-builtins.h: Likewise. + * config/s390/s390-c.cc: Likewise. + * config/s390/s390-opts.h: Likewise. + * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise. + (s390_register_target_pragmas): Likewise. + * config/s390/s390.cc (s390_init_builtins): Likewise. + (s390_expand_plus_operand): Likewise. + (s390_expand_atomic): Likewise. + (s390_valid_target_attribute_inner_p): Likewise. + * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise. + * config/s390/s390.md: Likewise. + * config/s390/t-s390: Likewise. + * config/s390/vx-builtins.md: Likewise. + * config/s390/x-native: Likewise. + * config/sh/divtab-sh4-300.cc (main): Likewise. + * config/sh/divtab-sh4.cc (main): Likewise. + * config/sh/divtab.cc (main): Likewise. + * config/sh/elf.h: Likewise. + * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise. + * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise. + (sh_struct_value_rtx): Likewise. + (sh_remove_reg_dead_or_unused_notes): Likewise. + * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise. + * config/sh/t-sh: Likewise. + * config/sol2-protos.h (solaris_override_options): Likewise. + * config/sol2.h: Likewise. + * config/sparc/driver-sparc.cc: Likewise. + * config/sparc/freebsd.h: Likewise. + * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise. + * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise. + (sparc_asan_shadow_offset): Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sparc.md: Likewise. + * config/sparc/t-sparc: Likewise. + * config/sparc/x-sparc: Likewise. + * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise. + * config/t-darwin: Likewise. + * config/t-dragonfly: Likewise. + * config/t-freebsd: Likewise. + * config/t-glibc: Likewise. + * config/t-linux: Likewise. + * config/t-netbsd: Likewise. + * config/t-openbsd: Likewise. + * config/t-pnt16-warn: Likewise. + * config/t-sol2: Likewise. + * config/t-vxworks: Likewise. + * config/t-winnt: Likewise. + * config/tilegx/t-tilegx: Likewise. + * config/tilegx/tilegx-c.cc: Likewise. + * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise. + * config/tilegx/tilegx.md: Likewise. + * config/tilepro/t-tilepro: Likewise. + * config/tilepro/tilepro-c.cc: Likewise. + * config/v850/t-v850: Likewise. + * config/v850/v850-protos.h: Likewise. + * config/v850/v850.cc (F): Likewise. + * config/v850/v850.h (enum reg_class): Likewise. + (SLOW_BYTE_ACCESS): Likewise. + * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise. + * config/vax/vax.h (enum reg_class): Likewise. + * config/vax/vax.md: Likewise. + * config/visium/visium.cc (visium_legitimate_address_p): Likewise. + * config/visium/visium.h: Likewise. + * config/vms/t-vms: Likewise. + * config/vms/vms-crtlmap.map: Likewise. + * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise. + * config/vx-common.h: Likewise. + * config/x-darwin: Likewise. + * config/x-hpux: Likewise. + * config/x-linux: Likewise. + * config/x-netbsd: Likewise. + * config/x-openbsd: Likewise. + * config/x-solaris: Likewise. + * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise. + * config/xtensa/xtensa.cc (xtensa_option_override): Likewise. + * config/xtensa/xtensa.h: Likewise. + * configure.ac: Likewise. + * context.cc: Likewise. + * convert.h: Likewise. + * coretypes.h: Likewise. + * coverage.cc: Likewise. + * coverage.h: Likewise. + * cppdefault.h (struct default_include): Likewise. + * cprop.cc (local_cprop_pass): Likewise. + (one_cprop_pass): Likewise. + * cse.cc (hash_rtx_cb): Likewise. + (fold_rtx): Likewise. + * ctfc.h (ctfc_get_num_vlen_bytes): Likewise. + * data-streamer.h (bp_unpack_var_len_int): Likewise. + (streamer_write_widest_int): Likewise. + * dbgcnt.def: Likewise. + * dbxout.cc (dbxout_early_global_decl): Likewise. + (dbxout_common_check): Likewise. + * dbxout.h: Likewise. + * debug.h (struct gcc_debug_hooks): Likewise. + (dump_go_spec_init): Likewise. + * df-core.cc: Likewise. + * df-scan.cc (df_insn_info_delete): Likewise. + (df_insn_delete): Likewise. + * df.h (debug_df_chain): Likewise. + (can_move_insns_across): Likewise. + * dfp.cc (decimal_from_binary): Likewise. + * diagnostic-color.cc: Likewise. + * diagnostic-event-id.h: Likewise. + * diagnostic-show-locus.cc (test_one_liner_labels): Likewise. + * diagnostic.cc (bt_callback): Likewise. + (num_digits): Likewise. + * doc/avr-mmcu.texi: Likewise. + * doc/cfg.texi: Likewise. + * doc/contrib.texi: Likewise. + * doc/cppinternals.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/generic.texi: Likewise. + * doc/gimple.texi: Likewise. + * doc/gty.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/loop.texi: Likewise. + * doc/lto.texi: Likewise. + * doc/match-and-simplify.texi: Likewise. + * doc/md.texi: Likewise. + * doc/optinfo.texi: Likewise. + * doc/options.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/plugins.texi: Likewise. + * doc/rtl.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/tm.texi: Likewise. + * doc/tm.texi.in: Likewise. + * doc/tree-ssa.texi: Likewise. + * dojump.cc (do_jump): Likewise. + * dojump.h: Likewise. + * dumpfile.cc (test_impl_location): Likewise. + (test_capture_of_dump_calls): Likewise. + * dumpfile.h (enum dump_kind): Likewise. + (class dump_location_t): Likewise. + (dump_enabled_p): Likewise. + (enable_rtl_dump_file): Likewise. + (dump_combine_total_stats): Likewise. + * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise. + * dwarf2ctf.h (ctf_debug_finish): Likewise. + * dwarf2out.cc (dwarf2out_begin_prologue): Likewise. + (struct loc_descr_context): Likewise. + (rtl_for_decl_location): Likewise. + (gen_subprogram_die): Likewise. + (gen_label_die): Likewise. + (is_trivial_indirect_ref): Likewise. + (dwarf2out_late_global_decl): Likewise. + (dwarf_file_hasher::hash): Likewise. + (dwarf2out_end_source_file): Likewise. + (dwarf2out_define): Likewise. + (dwarf2out_early_finish): Likewise. + * dwarf2out.h (struct dw_fde_node): Likewise. + (struct dw_discr_list_node): Likewise. + (output_loc_sequence_raw): Likewise. + * emit-rtl.cc (gen_raw_REG): Likewise. + (maybe_set_max_label_num): Likewise. + * emit-rtl.h (struct rtl_data): Likewise. + * errors.cc (internal_error): Likewise. + (trim_filename): Likewise. + * et-forest.cc: Likewise. + * except.cc (init_eh_for_function): Likewise. + * explow.cc (promote_ssa_mode): Likewise. + (get_dynamic_stack_size): Likewise. + * explow.h: Likewise. + * expmed.h: Likewise. + * expr.cc (safe_from_p): Likewise. + (expand_expr_real_2): Likewise. + (expand_expr_real_1): Likewise. + * file-prefix-map.cc (remap_filename): Likewise. + * final.cc (app_enable): Likewise. + (make_pass_compute_alignments): Likewise. + (final_scan_insn_1): Likewise. + (final_scan_insn): Likewise. + * fixed-value.h (fixed_from_string): Likewise. + * flag-types.h (NO_DEBUG): Likewise. + (DWARF2_DEBUG): Likewise. + (VMS_DEBUG): Likewise. + (BTF_DEBUG): Likewise. + (enum ctf_debug_info_levels): Likewise. + * fold-const.cc (const_binop): Likewise. + (fold_binary_loc): Likewise. + (fold_checksum_tree): Likewise. + * fp-test.cc: Likewise. + * function.cc (expand_function_end): Likewise. + * function.h (struct function): Likewise. + * fwprop.cc (should_replace_address): Likewise. + * gcc-main.cc: Likewise. + * gcc-rich-location.h (class gcc_rich_location): Likewise. + * gcc-symtab.h: Likewise. + * gcc.cc (MIN_FATAL_STATUS): Likewise. + (driver_handle_option): Likewise. + (quote_spec_arg): Likewise. + (driver::finalize): Likewise. + * gcc.h (set_input): Likewise. + * gcov-dump.cc: Likewise. + * gcov.cc (solve_flow_graph): Likewise. + * gcse-common.cc: Likewise. + * gcse.cc (make_pass_rtl_hoist): Likewise. + * genattr-common.cc: Likewise. + * genattrtab.cc (min_fn): Likewise. + (write_const_num_delay_slots): Likewise. + * genautomata.cc: Likewise. + * genconditions.cc (write_one_condition): Likewise. + * genconstants.cc: Likewise. + * genemit.cc (gen_exp): Likewise. + * generic-match-head.cc: Likewise. + * genextract.cc: Likewise. + * gengenrtl.cc (always_void_p): Likewise. + * gengtype-parse.cc (gtymarker_opt): Likewise. + * gengtype-state.cc (state_writer::state_writer): Likewise. + (write_state_trailer): Likewise. + (equals_type_number): Likewise. + (read_state): Likewise. + * gengtype.cc (open_base_files): Likewise. + (struct file_rule_st): Likewise. + (header_dot_h_frul): Likewise. + * gengtype.h: Likewise. + * genmatch.cc (main): Likewise. + * genmddeps.cc: Likewise. + * genmodes.cc (emit_mode_inner): Likewise. + (emit_mode_unit_size): Likewise. + * genpeep.cc (gen_peephole): Likewise. + * genpreds.cc (write_tm_preds_h): Likewise. + * genrecog.cc (validate_pattern): Likewise. + (write_header): Likewise. + (main): Likewise. + * gensupport.cc (change_subst_attribute): Likewise. + (traverse_c_tests): Likewise. + (add_predicate): Likewise. + (init_predicate_table): Likewise. + * gensupport.h (struct optab_pattern): Likewise. + (get_num_insn_codes): Likewise. + (maybe_eval_c_test): Likewise. + (struct pred_data): Likewise. + * ggc-internal.h: Likewise. + * gimple-fold.cc (maybe_fold_reference): Likewise. + (get_range_strlen_tree): Likewise. + * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise. + * gimple-low.cc: Likewise. + * gimple-match-head.cc (directly_supported_p): Likewise. + * gimple-pretty-print.h: Likewise. + * gimple-ssa-sprintf.cc (format_percent): Likewise. + (adjust_range_for_overflow): Likewise. + * gimple-streamer.h: Likewise. + * gimple.h (struct GTY): Likewise. + (is_gimple_resx): Likewise. + * gimplify.cc (gimplify_expr): Likewise. + (gimplify_init_constructor): Likewise. + (omp_construct_selector_matches): Likewise. + (gimplify_omp_target_update): Likewise. + (gimplify_omp_ordered): Likewise. + (gimplify_va_arg_expr): Likewise. + * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise. + * haifa-sched.cc (increase_insn_priority): Likewise. + (try_ready): Likewise. + (sched_create_recovery_edges): Likewise. + * ifcvt.cc (find_if_case_1): Likewise. + (find_if_case_2): Likewise. + * inchash.h: Likewise. + * incpath.cc (add_env_var_paths): Likewise. + * input.cc (dump_location_info): Likewise. + (assert_loceq): Likewise. + (test_lexer_string_locations_concatenation_1): Likewise. + (test_lexer_string_locations_concatenation_2): Likewise. + (test_lexer_string_locations_concatenation_3): Likewise. + * input.h (BUILTINS_LOCATION): Likewise. + (class string_concat_db): Likewise. + * internal-fn.cc (expand_MUL_OVERFLOW): Likewise. + (expand_LOOP_VECTORIZED): Likewise. + * ipa-cp.cc (make_pass_ipa_cp): Likewise. + * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise. + (ipa_fn_summary_t::duplicate): Likewise. + (make_pass_ipa_fn_summary): Likewise. + * ipa-fnsummary.h (enum ipa_hints_vals): Likewise. + * ipa-free-lang-data.cc (fld_simplified_type): Likewise. + (free_lang_data_in_decl): Likewise. + * ipa-inline.cc (compute_inlined_call_time): Likewise. + (inline_always_inline_functions): Likewise. + * ipa-inline.h (free_growth_caches): Likewise. + (inline_account_function_p): Likewise. + * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise. + (modref_eaf_analysis::analyze_ssa_name): Likewise. + * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise. + (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise. + * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise. + * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise. + (unadjusted_ptr_and_unit_offset): Likewise. + * ipa-reference.cc (make_pass_ipa_reference): Likewise. + * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise. + * ipa-split.cc (consider_split): Likewise. + * ipa-sra.cc (isra_read_node_info): Likewise. + * ipa-utils.h (struct ipa_dfs_info): Likewise. + (recursive_call_p): Likewise. + (ipa_make_function_pure): Likewise. + * ira-build.cc (ira_create_allocno): Likewise. + (ira_flattening): Likewise. + * ira-color.cc (do_coloring): Likewise. + (update_curr_costs): Likewise. + * ira-conflicts.cc (process_regs_for_copy): Likewise. + * ira-int.h (struct ira_emit_data): Likewise. + (ira_prohibited_mode_move_regs): Likewise. + (ira_get_dup_out_num): Likewise. + (ira_destroy): Likewise. + (ira_tune_allocno_costs): Likewise. + (ira_implicitly_set_insn_hard_regs): Likewise. + (ira_build_conflicts): Likewise. + (ira_color): Likewise. + * ira-lives.cc (process_bb_node_lives): Likewise. + * ira.cc (class ira_spilled_reg_stack_slot): Likewise. + (setup_uniform_class_p): Likewise. + (def_dominates_uses): Likewise. + * ira.h (ira_nullify_asm_goto): Likewise. + * langhooks.cc (lhd_post_options): Likewise. + * langhooks.h (class substring_loc): Likewise. + (struct lang_hooks_for_tree_inlining): Likewise. + (struct lang_hooks_for_types): Likewise. + (struct lang_hooks): Likewise. + * libfuncs.h (synchronize_libfunc): Likewise. + * loop-doloop.cc (doloop_condition_get): Likewise. + * loop-init.cc (fix_loop_structure): Likewise. + * loop-invariant.cc: Likewise. + * lower-subreg.h: Likewise. + * lra-constraints.cc (curr_insn_transform): Likewise. + * lra-int.h (struct lra_insn_reg): Likewise. + (lra_undo_inheritance): Likewise. + (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise. + (lra_split_hard_reg_for): Likewise. + (lra_coalesce): Likewise. + (lra_final_code_change): Likewise. + * lra-spills.cc (lra_final_code_change): Likewise. + * lra.cc (lra_process_new_insns): Likewise. + * lto-compress.h (struct lto_compression_stream): Likewise. + * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise. + (write_symbol): Likewise. + * lto-streamer.h (enum LTO_tags): Likewise. + (lto_value_range_error): Likewise. + (lto_append_block): Likewise. + (lto_streamer_hooks_init): Likewise. + (stream_read_tree_ref): Likewise. + (lto_prepare_function_for_streaming): Likewise. + (select_what_to_stream): Likewise. + (omp_lto_input_declare_variant_alt): Likewise. + (cl_optimization_stream_in): Likewise. + * lto-wrapper.cc (append_compiler_options): Likewise. + * machmode.def: Likewise. + * machmode.h (struct int_n_data_t): Likewise. + * main.cc (main): Likewise. + * match.pd: Likewise. + * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise. + (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise. + * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise. + (make_pass_expand_omp_ssa): Likewise. + * omp-low.cc (struct omp_context): Likewise. + (struct omp_taskcopy_context): Likewise. + (lower_omp): Likewise. + * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise. + (mask_name): Likewise. + (omp_sese_dump_pars): Likewise. + (worker_single_simple): Likewise. + * omp-offload.cc (omp_finish_file): Likewise. + (execute_oacc_loop_designation): Likewise. + * optabs-query.cc (lshift_cheap_p): Likewise. + * optc-gen.awk: Likewise. + * optc-save-gen.awk: Likewise. + * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise. + * opts-common.cc: Likewise. + * output.h (app_enable): Likewise. + (output_operand_lossage): Likewise. + (insn_current_reference_address): Likewise. + (get_insn_template): Likewise. + (output_quoted_string): Likewise. + * pass_manager.h (struct register_pass_info): Likewise. + * plugin.cc: Likewise. + * plugin.def (PLUGIN_ANALYZER_INIT): Likewise. + * plugin.h (invoke_plugin_callbacks): Likewise. + * pointer-query.cc (handle_mem_ref): Likewise. + * postreload-gcse.cc (alloc_mem): Likewise. + * predict.h (enum prediction): Likewise. + (add_reg_br_prob_note): Likewise. + * prefix.h: Likewise. + * profile.h (get_working_sets): Likewise. + * read-md.cc: Likewise. + * read-md.h (struct mapping): Likewise. + (class md_reader): Likewise. + (class noop_reader): Likewise. + * read-rtl-function.cc (function_reader::create_function): Likewise. + (function_reader::extra_parsing_for_operand_code_0): Likewise. + * read-rtl.cc (initialize_iterators): Likewise. + * real.cc: Likewise. + * real.h (struct real_value): Likewise. + (format_helper::format_helper): Likewise. + (real_hash): Likewise. + (real_can_shorten_arithmetic): Likewise. + * recog.cc (struct target_recog): Likewise. + (offsettable_nonstrict_memref_p): Likewise. + (constrain_operands): Likewise. + * recog.h (MAX_RECOG_ALTERNATIVES): Likewise. + (which_op_alt): Likewise. + (struct insn_gen_fn): Likewise. + * reg-notes.def (REG_NOTE): Likewise. + * reg-stack.cc: Likewise. + * regs.h (reg_is_parm_p): Likewise. + * regset.h: Likewise. + * reload.cc (push_reload): Likewise. + (find_reloads): Likewise. + (find_reloads_address_1): Likewise. + (find_replacement): Likewise. + (refers_to_regno_for_reload_p): Likewise. + (refers_to_mem_for_reload_p): Likewise. + * reload.h (push_reload): Likewise. + (deallocate_reload_reg): Likewise. + * reload1.cc (emit_input_reload_insns): Likewise. + * reorg.cc (relax_delay_slots): Likewise. + * rtl.def (UNKNOWN): Likewise. + (SEQUENCE): Likewise. + (BARRIER): Likewise. + (ASM_OPERANDS): Likewise. + (EQ_ATTR_ALT): Likewise. + * rtl.h (struct GTY): Likewise. + (LABEL_NAME): Likewise. + (LABEL_ALT_ENTRY_P): Likewise. + (SUBREG_BYTE): Likewise. + (get_stack_check_protect): Likewise. + (dump_rtx_statistics): Likewise. + (unwrap_const_vec_duplicate): Likewise. + (subreg_promoted_mode): Likewise. + (gen_lowpart_common): Likewise. + (operand_subword): Likewise. + (immed_wide_int_const): Likewise. + (decide_function_section): Likewise. + (active_insn_p): Likewise. + (delete_related_insns): Likewise. + (try_split): Likewise. + (val_signbit_known_clear_p): Likewise. + (simplifiable_subregs): Likewise. + (set_insn_deleted): Likewise. + (subreg_get_info): Likewise. + (remove_free_EXPR_LIST_node): Likewise. + (finish_subregs_of_mode): Likewise. + (get_mem_attrs): Likewise. + (lookup_constant_def): Likewise. + (rtx_to_tree_code): Likewise. + (hash_rtx): Likewise. + (condjump_in_parallel_p): Likewise. + (validate_subreg): Likewise. + (make_compound_operation): Likewise. + (schedule_ebbs): Likewise. + (print_inline_rtx): Likewise. + (fixup_args_size_notes): Likewise. + (expand_dec): Likewise. + (prepare_copy_insn): Likewise. + (mark_elimination): Likewise. + (valid_mode_changes_for_regno): Likewise. + (make_debug_expr_from_rtl): Likewise. + (delete_vta_debug_insns): Likewise. + (simplify_using_condition): Likewise. + (set_insn_locations): Likewise. + (fatal_insn_not_found): Likewise. + (word_register_operation_p): Likewise. + * rtlanal.cc (get_call_fndecl): Likewise. + (side_effects_p): Likewise. + (subreg_nregs): Likewise. + (rtx_cost): Likewise. + (canonicalize_condition): Likewise. + * rtlanal.h (rtx_properties::try_to_add_note): Likewise. + * run-rtl-passes.cc (run_rtl_passes): Likewise. + * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise. + * sched-deps.cc (add_dependence_1): Likewise. + * sched-ebb.cc (begin_move_insn): Likewise. + (add_deps_for_risky_insns): Likewise. + (advance_target_bb): Likewise. + * sched-int.h (reemit_notes): Likewise. + (struct _haifa_insn_data): Likewise. + (HID): Likewise. + (DEP_CANCELLED): Likewise. + (debug_ds): Likewise. + (number_in_ready): Likewise. + (schedule_ebbs_finish): Likewise. + (find_modifiable_mems): Likewise. + * sched-rgn.cc (debug_rgn_dependencies): Likewise. + * sel-sched-dump.cc (dump_lv_set): Likewise. + * sel-sched-dump.h: Likewise. + * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise. + (setup_id_reg_sets): Likewise. + (has_dependence_p): Likewise. + (sel_num_cfg_preds_gt_1): Likewise. + (bb_ends_ebb_p): Likewise. + * sel-sched-ir.h (struct _list_node): Likewise. + (struct idata_def): Likewise. + (bb_next_bb): Likewise. + * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise. + (choose_best_pseudo_reg): Likewise. + (verify_target_availability): Likewise. + (can_speculate_dep_p): Likewise. + (sel_rank_for_schedule): Likewise. + * selftest-run-tests.cc (selftest::run_tests): Likewise. + * selftest.h (class auto_fix_quotes): Likewise. + * shrink-wrap.cc (handle_simple_exit): Likewise. + * shrink-wrap.h: Likewise. + * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise. + (simplify_context::simplify_gen_vec_select): Likewise. + * spellcheck-tree.h: Likewise. + * spellcheck.h: Likewise. + * statistics.h (struct function): Likewise. + * stmt.cc (conditional_probability): Likewise. + * stmt.h: Likewise. + * stor-layout.h: Likewise. + * streamer-hooks.h: Likewise. + * stringpool.h: Likewise. + * symtab.cc (symbol_table::change_decl_assembler_name): Likewise. + * target.def (HOOK_VECTOR_END): Likewise. + (type.): Likewise. + * target.h (union cumulative_args_t): Likewise. + (by_pieces_ninsns): Likewise. + (class predefined_function_abi): Likewise. + * targhooks.cc (default_translate_mode_attribute): Likewise. + * timevar.def: Likewise. + * timevar.h (class timer): Likewise. + * toplev.h (enable_rtl_dump_file): Likewise. + * trans-mem.cc (collect_bb2reg): Likewise. + * tree-call-cdce.cc (gen_conditions_for_pow): Likewise. + * tree-cfg.cc (remove_bb): Likewise. + (verify_gimple_debug): Likewise. + (remove_edge_and_dominated_blocks): Likewise. + (push_fndecl): Likewise. + * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise. + * tree-complex.cc (expand_complex_multiplication): Likewise. + (expand_complex_div_straight): Likewise. + * tree-core.h (enum tree_index): Likewise. + (enum operand_equal_flag): Likewise. + * tree-eh.cc (honor_protect_cleanup_actions): Likewise. + * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise. + * tree-inline.cc (initialize_inlined_parameters): Likewise. + * tree-inline.h (force_value_to_type): Likewise. + * tree-nested.cc (get_chain_decl): Likewise. + (walk_all_functions): Likewise. + * tree-object-size.h: Likewise. + * tree-outof-ssa.cc: Likewise. + * tree-parloops.cc (create_parallel_loop): Likewise. + * tree-pretty-print.cc (print_generic_expr_to_str): Likewise. + (dump_generic_node): Likewise. + * tree-profile.cc (tree_profiling): Likewise. + * tree-sra.cc (maybe_add_sra_candidate): Likewise. + * tree-ssa-address.cc: Likewise. + * tree-ssa-alias.cc: Likewise. + * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise. + (dump_alias_stats): Likewise. + * tree-ssa-ccp.cc: Likewise. + * tree-ssa-coalesce.h: Likewise. + * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise. + * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise. + * tree-ssa-loop-unswitch.cc: Likewise. + * tree-ssa-math-opts.cc: Likewise. + * tree-ssa-operands.cc (class operands_scanner): Likewise. + * tree-ssa-pre.cc: Likewise. + * tree-ssa-reassoc.cc (optimize_ops_list): Likewise. + (debug_range_entry): Likewise. + * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise. + * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise. + * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise. + (equal_mem_array_ref_p): Likewise. + * tree-ssa-strlen.cc (is_strlen_related_p): Likewise. + * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise. + * tree-ssa-tail-merge.cc (stmt_local_def): Likewise. + * tree-ssa-ter.h: Likewise. + * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise. + * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise. + * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise. + (write_ts_block_tree_pointers): Likewise. + * tree-streamer.h (struct streamer_tree_cache_d): Likewise. + (streamer_read_tree_bitfields): Likewise. + (streamer_write_integer_cst): Likewise. + * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise. + (vect_synth_mult_by_constant): Likewise. + * tree-vect-stmts.cc (vectorizable_operation): Likewise. + * tree-vectorizer.cc: Likewise. + * tree-vectorizer.h (class auto_purge_vect_location): Likewise. + (vect_update_inits_of_drs): Likewise. + (vect_get_mask_type_for_stmt): Likewise. + (vect_rgroup_iv_might_wrap_p): Likewise. + (cse_and_gimplify_to_preheader): Likewise. + (vect_free_slp_tree): Likewise. + (vect_pattern_recog): Likewise. + (vect_stmt_dominates_stmt_p): Likewise. + * tree.cc (initialize_tree_contains_struct): Likewise. + (need_assembler_name_p): Likewise. + (type_with_interoperable_signedness): Likewise. + * tree.def (SWITCH_EXPR): Likewise. + * tree.h (TYPE_SYMTAB_ADDRESS): Likewise. + (poly_int_tree_p): Likewise. + (inlined_function_outer_scope_p): Likewise. + (tree_code_for_canonical_type_merging): Likewise. + * value-prof.cc: Likewise. + * value-prof.h (get_nth_most_common_value): Likewise. + (find_func_by_profile_id): Likewise. + * value-range.cc (vrp_operand_equal_p): Likewise. + * value-range.h: Likewise. + * var-tracking.cc: Likewise. + * varasm.cc (default_function_section): Likewise. + (function_section_1): Likewise. + (assemble_variable): Likewise. + (handle_vtv_comdat_section): Likewise. + * vec.h (struct vec_prefix): Likewise. + * vmsdbgout.cc (full_name): Likewise. + * vtable-verify.cc: Likewise. + * vtable-verify.h (struct vtv_graph_node): Likewise. + * xcoffout.cc: Likewise. + * xcoffout.h (DEBUG_SYMS_TEXT): Likewise. + +2022-01-17 Martin Liska <mliska@suse.cz> + + * adjust-alignment.c: Moved to... + * adjust-alignment.cc: ...here. + * alias.c: Moved to... + * alias.cc: ...here. + * alloc-pool.c: Moved to... + * alloc-pool.cc: ...here. + * asan.c: Moved to... + * asan.cc: ...here. + * attribs.c: Moved to... + * attribs.cc: ...here. + * auto-inc-dec.c: Moved to... + * auto-inc-dec.cc: ...here. + * auto-profile.c: Moved to... + * auto-profile.cc: ...here. + * bb-reorder.c: Moved to... + * bb-reorder.cc: ...here. + * bitmap.c: Moved to... + * bitmap.cc: ...here. + * btfout.c: Moved to... + * btfout.cc: ...here. + * builtins.c: Moved to... + * builtins.cc: ...here. + * caller-save.c: Moved to... + * caller-save.cc: ...here. + * calls.c: Moved to... + * calls.cc: ...here. + * ccmp.c: Moved to... + * ccmp.cc: ...here. + * cfg.c: Moved to... + * cfg.cc: ...here. + * cfganal.c: Moved to... + * cfganal.cc: ...here. + * cfgbuild.c: Moved to... + * cfgbuild.cc: ...here. + * cfgcleanup.c: Moved to... + * cfgcleanup.cc: ...here. + * cfgexpand.c: Moved to... + * cfgexpand.cc: ...here. + * cfghooks.c: Moved to... + * cfghooks.cc: ...here. + * cfgloop.c: Moved to... + * cfgloop.cc: ...here. + * cfgloopanal.c: Moved to... + * cfgloopanal.cc: ...here. + * cfgloopmanip.c: Moved to... + * cfgloopmanip.cc: ...here. + * cfgrtl.c: Moved to... + * cfgrtl.cc: ...here. + * cgraph.c: Moved to... + * cgraph.cc: ...here. + * cgraphbuild.c: Moved to... + * cgraphbuild.cc: ...here. + * cgraphclones.c: Moved to... + * cgraphclones.cc: ...here. + * cgraphunit.c: Moved to... + * cgraphunit.cc: ...here. + * collect-utils.c: Moved to... + * collect-utils.cc: ...here. + * collect2-aix.c: Moved to... + * collect2-aix.cc: ...here. + * collect2.c: Moved to... + * collect2.cc: ...here. + * combine-stack-adj.c: Moved to... + * combine-stack-adj.cc: ...here. + * combine.c: Moved to... + * combine.cc: ...here. + * common/common-targhooks.c: Moved to... + * common/common-targhooks.cc: ...here. + * common/config/aarch64/aarch64-common.c: Moved to... + * common/config/aarch64/aarch64-common.cc: ...here. + * common/config/alpha/alpha-common.c: Moved to... + * common/config/alpha/alpha-common.cc: ...here. + * common/config/arc/arc-common.c: Moved to... + * common/config/arc/arc-common.cc: ...here. + * common/config/arm/arm-common.c: Moved to... + * common/config/arm/arm-common.cc: ...here. + * common/config/avr/avr-common.c: Moved to... + * common/config/avr/avr-common.cc: ...here. + * common/config/bfin/bfin-common.c: Moved to... + * common/config/bfin/bfin-common.cc: ...here. + * common/config/bpf/bpf-common.c: Moved to... + * common/config/bpf/bpf-common.cc: ...here. + * common/config/c6x/c6x-common.c: Moved to... + * common/config/c6x/c6x-common.cc: ...here. + * common/config/cr16/cr16-common.c: Moved to... + * common/config/cr16/cr16-common.cc: ...here. + * common/config/cris/cris-common.c: Moved to... + * common/config/cris/cris-common.cc: ...here. + * common/config/csky/csky-common.c: Moved to... + * common/config/csky/csky-common.cc: ...here. + * common/config/default-common.c: Moved to... + * common/config/default-common.cc: ...here. + * common/config/epiphany/epiphany-common.c: Moved to... + * common/config/epiphany/epiphany-common.cc: ...here. + * common/config/fr30/fr30-common.c: Moved to... + * common/config/fr30/fr30-common.cc: ...here. + * common/config/frv/frv-common.c: Moved to... + * common/config/frv/frv-common.cc: ...here. + * common/config/gcn/gcn-common.c: Moved to... + * common/config/gcn/gcn-common.cc: ...here. + * common/config/h8300/h8300-common.c: Moved to... + * common/config/h8300/h8300-common.cc: ...here. + * common/config/i386/i386-common.c: Moved to... + * common/config/i386/i386-common.cc: ...here. + * common/config/ia64/ia64-common.c: Moved to... + * common/config/ia64/ia64-common.cc: ...here. + * common/config/iq2000/iq2000-common.c: Moved to... + * common/config/iq2000/iq2000-common.cc: ...here. + * common/config/lm32/lm32-common.c: Moved to... + * common/config/lm32/lm32-common.cc: ...here. + * common/config/m32r/m32r-common.c: Moved to... + * common/config/m32r/m32r-common.cc: ...here. + * common/config/m68k/m68k-common.c: Moved to... + * common/config/m68k/m68k-common.cc: ...here. + * common/config/mcore/mcore-common.c: Moved to... + * common/config/mcore/mcore-common.cc: ...here. + * common/config/microblaze/microblaze-common.c: Moved to... + * common/config/microblaze/microblaze-common.cc: ...here. + * common/config/mips/mips-common.c: Moved to... + * common/config/mips/mips-common.cc: ...here. + * common/config/mmix/mmix-common.c: Moved to... + * common/config/mmix/mmix-common.cc: ...here. + * common/config/mn10300/mn10300-common.c: Moved to... + * common/config/mn10300/mn10300-common.cc: ...here. + * common/config/msp430/msp430-common.c: Moved to... + * common/config/msp430/msp430-common.cc: ...here. + * common/config/nds32/nds32-common.c: Moved to... + * common/config/nds32/nds32-common.cc: ...here. + * common/config/nios2/nios2-common.c: Moved to... + * common/config/nios2/nios2-common.cc: ...here. + * common/config/nvptx/nvptx-common.c: Moved to... + * common/config/nvptx/nvptx-common.cc: ...here. + * common/config/or1k/or1k-common.c: Moved to... + * common/config/or1k/or1k-common.cc: ...here. + * common/config/pa/pa-common.c: Moved to... + * common/config/pa/pa-common.cc: ...here. + * common/config/pdp11/pdp11-common.c: Moved to... + * common/config/pdp11/pdp11-common.cc: ...here. + * common/config/pru/pru-common.c: Moved to... + * common/config/pru/pru-common.cc: ...here. + * common/config/riscv/riscv-common.c: Moved to... + * common/config/riscv/riscv-common.cc: ...here. + * common/config/rs6000/rs6000-common.c: Moved to... + * common/config/rs6000/rs6000-common.cc: ...here. + * common/config/rx/rx-common.c: Moved to... + * common/config/rx/rx-common.cc: ...here. + * common/config/s390/s390-common.c: Moved to... + * common/config/s390/s390-common.cc: ...here. + * common/config/sh/sh-common.c: Moved to... + * common/config/sh/sh-common.cc: ...here. + * common/config/sparc/sparc-common.c: Moved to... + * common/config/sparc/sparc-common.cc: ...here. + * common/config/tilegx/tilegx-common.c: Moved to... + * common/config/tilegx/tilegx-common.cc: ...here. + * common/config/tilepro/tilepro-common.c: Moved to... + * common/config/tilepro/tilepro-common.cc: ...here. + * common/config/v850/v850-common.c: Moved to... + * common/config/v850/v850-common.cc: ...here. + * common/config/vax/vax-common.c: Moved to... + * common/config/vax/vax-common.cc: ...here. + * common/config/visium/visium-common.c: Moved to... + * common/config/visium/visium-common.cc: ...here. + * common/config/xstormy16/xstormy16-common.c: Moved to... + * common/config/xstormy16/xstormy16-common.cc: ...here. + * common/config/xtensa/xtensa-common.c: Moved to... + * common/config/xtensa/xtensa-common.cc: ...here. + * compare-elim.c: Moved to... + * compare-elim.cc: ...here. + * config/aarch64/aarch64-bti-insert.c: Moved to... + * config/aarch64/aarch64-bti-insert.cc: ...here. + * config/aarch64/aarch64-builtins.c: Moved to... + * config/aarch64/aarch64-builtins.cc: ...here. + * config/aarch64/aarch64-c.c: Moved to... + * config/aarch64/aarch64-c.cc: ...here. + * config/aarch64/aarch64-d.c: Moved to... + * config/aarch64/aarch64-d.cc: ...here. + * config/aarch64/aarch64.c: Moved to... + * config/aarch64/aarch64.cc: ...here. + * config/aarch64/cortex-a57-fma-steering.c: Moved to... + * config/aarch64/cortex-a57-fma-steering.cc: ...here. + * config/aarch64/driver-aarch64.c: Moved to... + * config/aarch64/driver-aarch64.cc: ...here. + * config/aarch64/falkor-tag-collision-avoidance.c: Moved to... + * config/aarch64/falkor-tag-collision-avoidance.cc: ...here. + * config/aarch64/host-aarch64-darwin.c: Moved to... + * config/aarch64/host-aarch64-darwin.cc: ...here. + * config/alpha/alpha.c: Moved to... + * config/alpha/alpha.cc: ...here. + * config/alpha/driver-alpha.c: Moved to... + * config/alpha/driver-alpha.cc: ...here. + * config/arc/arc-c.c: Moved to... + * config/arc/arc-c.cc: ...here. + * config/arc/arc.c: Moved to... + * config/arc/arc.cc: ...here. + * config/arc/driver-arc.c: Moved to... + * config/arc/driver-arc.cc: ...here. + * config/arm/aarch-common.c: Moved to... + * config/arm/aarch-common.cc: ...here. + * config/arm/arm-builtins.c: Moved to... + * config/arm/arm-builtins.cc: ...here. + * config/arm/arm-c.c: Moved to... + * config/arm/arm-c.cc: ...here. + * config/arm/arm-d.c: Moved to... + * config/arm/arm-d.cc: ...here. + * config/arm/arm.c: Moved to... + * config/arm/arm.cc: ...here. + * config/arm/driver-arm.c: Moved to... + * config/arm/driver-arm.cc: ...here. + * config/avr/avr-c.c: Moved to... + * config/avr/avr-c.cc: ...here. + * config/avr/avr-devices.c: Moved to... + * config/avr/avr-devices.cc: ...here. + * config/avr/avr-log.c: Moved to... + * config/avr/avr-log.cc: ...here. + * config/avr/avr.c: Moved to... + * config/avr/avr.cc: ...here. + * config/avr/driver-avr.c: Moved to... + * config/avr/driver-avr.cc: ...here. + * config/avr/gen-avr-mmcu-specs.c: Moved to... + * config/avr/gen-avr-mmcu-specs.cc: ...here. + * config/avr/gen-avr-mmcu-texi.c: Moved to... + * config/avr/gen-avr-mmcu-texi.cc: ...here. + * config/bfin/bfin.c: Moved to... + * config/bfin/bfin.cc: ...here. + * config/bpf/bpf.c: Moved to... + * config/bpf/bpf.cc: ...here. + * config/bpf/coreout.c: Moved to... + * config/bpf/coreout.cc: ...here. + * config/c6x/c6x.c: Moved to... + * config/c6x/c6x.cc: ...here. + * config/cr16/cr16.c: Moved to... + * config/cr16/cr16.cc: ...here. + * config/cris/cris.c: Moved to... + * config/cris/cris.cc: ...here. + * config/csky/csky.c: Moved to... + * config/csky/csky.cc: ...here. + * config/darwin-c.c: Moved to... + * config/darwin-c.cc: ...here. + * config/darwin-d.c: Moved to... + * config/darwin-d.cc: ...here. + * config/darwin-driver.c: Moved to... + * config/darwin-driver.cc: ...here. + * config/darwin-f.c: Moved to... + * config/darwin-f.cc: ...here. + * config/darwin.c: Moved to... + * config/darwin.cc: ...here. + * config/default-c.c: Moved to... + * config/default-c.cc: ...here. + * config/default-d.c: Moved to... + * config/default-d.cc: ...here. + * config/dragonfly-d.c: Moved to... + * config/dragonfly-d.cc: ...here. + * config/epiphany/epiphany.c: Moved to... + * config/epiphany/epiphany.cc: ...here. + * config/epiphany/mode-switch-use.c: Moved to... + * config/epiphany/mode-switch-use.cc: ...here. + * config/epiphany/resolve-sw-modes.c: Moved to... + * config/epiphany/resolve-sw-modes.cc: ...here. + * config/fr30/fr30.c: Moved to... + * config/fr30/fr30.cc: ...here. + * config/freebsd-d.c: Moved to... + * config/freebsd-d.cc: ...here. + * config/frv/frv.c: Moved to... + * config/frv/frv.cc: ...here. + * config/ft32/ft32.c: Moved to... + * config/ft32/ft32.cc: ...here. + * config/gcn/driver-gcn.c: Moved to... + * config/gcn/driver-gcn.cc: ...here. + * config/gcn/gcn-run.c: Moved to... + * config/gcn/gcn-run.cc: ...here. + * config/gcn/gcn-tree.c: Moved to... + * config/gcn/gcn-tree.cc: ...here. + * config/gcn/gcn.c: Moved to... + * config/gcn/gcn.cc: ...here. + * config/gcn/mkoffload.c: Moved to... + * config/gcn/mkoffload.cc: ...here. + * config/glibc-c.c: Moved to... + * config/glibc-c.cc: ...here. + * config/glibc-d.c: Moved to... + * config/glibc-d.cc: ...here. + * config/h8300/h8300.c: Moved to... + * config/h8300/h8300.cc: ...here. + * config/host-darwin.c: Moved to... + * config/host-darwin.cc: ...here. + * config/host-hpux.c: Moved to... + * config/host-hpux.cc: ...here. + * config/host-linux.c: Moved to... + * config/host-linux.cc: ...here. + * config/host-netbsd.c: Moved to... + * config/host-netbsd.cc: ...here. + * config/host-openbsd.c: Moved to... + * config/host-openbsd.cc: ...here. + * config/host-solaris.c: Moved to... + * config/host-solaris.cc: ...here. + * config/i386/djgpp.c: Moved to... + * config/i386/djgpp.cc: ...here. + * config/i386/driver-i386.c: Moved to... + * config/i386/driver-i386.cc: ...here. + * config/i386/driver-mingw32.c: Moved to... + * config/i386/driver-mingw32.cc: ...here. + * config/i386/gnu-property.c: Moved to... + * config/i386/gnu-property.cc: ...here. + * config/i386/host-cygwin.c: Moved to... + * config/i386/host-cygwin.cc: ...here. + * config/i386/host-i386-darwin.c: Moved to... + * config/i386/host-i386-darwin.cc: ...here. + * config/i386/host-mingw32.c: Moved to... + * config/i386/host-mingw32.cc: ...here. + * config/i386/i386-builtins.c: Moved to... + * config/i386/i386-builtins.cc: ...here. + * config/i386/i386-c.c: Moved to... + * config/i386/i386-c.cc: ...here. + * config/i386/i386-d.c: Moved to... + * config/i386/i386-d.cc: ...here. + * config/i386/i386-expand.c: Moved to... + * config/i386/i386-expand.cc: ...here. + * config/i386/i386-features.c: Moved to... + * config/i386/i386-features.cc: ...here. + * config/i386/i386-options.c: Moved to... + * config/i386/i386-options.cc: ...here. + * config/i386/i386.c: Moved to... + * config/i386/i386.cc: ...here. + * config/i386/intelmic-mkoffload.c: Moved to... + * config/i386/intelmic-mkoffload.cc: ...here. + * config/i386/msformat-c.c: Moved to... + * config/i386/msformat-c.cc: ...here. + * config/i386/winnt-cxx.c: Moved to... + * config/i386/winnt-cxx.cc: ...here. + * config/i386/winnt-d.c: Moved to... + * config/i386/winnt-d.cc: ...here. + * config/i386/winnt-stubs.c: Moved to... + * config/i386/winnt-stubs.cc: ...here. + * config/i386/winnt.c: Moved to... + * config/i386/winnt.cc: ...here. + * config/i386/x86-tune-sched-atom.c: Moved to... + * config/i386/x86-tune-sched-atom.cc: ...here. + * config/i386/x86-tune-sched-bd.c: Moved to... + * config/i386/x86-tune-sched-bd.cc: ...here. + * config/i386/x86-tune-sched-core.c: Moved to... + * config/i386/x86-tune-sched-core.cc: ...here. + * config/i386/x86-tune-sched.c: Moved to... + * config/i386/x86-tune-sched.cc: ...here. + * config/ia64/ia64-c.c: Moved to... + * config/ia64/ia64-c.cc: ...here. + * config/ia64/ia64.c: Moved to... + * config/ia64/ia64.cc: ...here. + * config/iq2000/iq2000.c: Moved to... + * config/iq2000/iq2000.cc: ...here. + * config/linux.c: Moved to... + * config/linux.cc: ...here. + * config/lm32/lm32.c: Moved to... + * config/lm32/lm32.cc: ...here. + * config/m32c/m32c-pragma.c: Moved to... + * config/m32c/m32c-pragma.cc: ...here. + * config/m32c/m32c.c: Moved to... + * config/m32c/m32c.cc: ...here. + * config/m32r/m32r.c: Moved to... + * config/m32r/m32r.cc: ...here. + * config/m68k/m68k.c: Moved to... + * config/m68k/m68k.cc: ...here. + * config/mcore/mcore.c: Moved to... + * config/mcore/mcore.cc: ...here. + * config/microblaze/microblaze-c.c: Moved to... + * config/microblaze/microblaze-c.cc: ...here. + * config/microblaze/microblaze.c: Moved to... + * config/microblaze/microblaze.cc: ...here. + * config/mips/driver-native.c: Moved to... + * config/mips/driver-native.cc: ...here. + * config/mips/frame-header-opt.c: Moved to... + * config/mips/frame-header-opt.cc: ...here. + * config/mips/mips-d.c: Moved to... + * config/mips/mips-d.cc: ...here. + * config/mips/mips.c: Moved to... + * config/mips/mips.cc: ...here. + * config/mmix/mmix.c: Moved to... + * config/mmix/mmix.cc: ...here. + * config/mn10300/mn10300.c: Moved to... + * config/mn10300/mn10300.cc: ...here. + * config/moxie/moxie.c: Moved to... + * config/moxie/moxie.cc: ...here. + * config/msp430/driver-msp430.c: Moved to... + * config/msp430/driver-msp430.cc: ...here. + * config/msp430/msp430-c.c: Moved to... + * config/msp430/msp430-c.cc: ...here. + * config/msp430/msp430-devices.c: Moved to... + * config/msp430/msp430-devices.cc: ...here. + * config/msp430/msp430.c: Moved to... + * config/msp430/msp430.cc: ...here. + * config/nds32/nds32-cost.c: Moved to... + * config/nds32/nds32-cost.cc: ...here. + * config/nds32/nds32-fp-as-gp.c: Moved to... + * config/nds32/nds32-fp-as-gp.cc: ...here. + * config/nds32/nds32-intrinsic.c: Moved to... + * config/nds32/nds32-intrinsic.cc: ...here. + * config/nds32/nds32-isr.c: Moved to... + * config/nds32/nds32-isr.cc: ...here. + * config/nds32/nds32-md-auxiliary.c: Moved to... + * config/nds32/nds32-md-auxiliary.cc: ...here. + * config/nds32/nds32-memory-manipulation.c: Moved to... + * config/nds32/nds32-memory-manipulation.cc: ...here. + * config/nds32/nds32-pipelines-auxiliary.c: Moved to... + * config/nds32/nds32-pipelines-auxiliary.cc: ...here. + * config/nds32/nds32-predicates.c: Moved to... + * config/nds32/nds32-predicates.cc: ...here. + * config/nds32/nds32-relax-opt.c: Moved to... + * config/nds32/nds32-relax-opt.cc: ...here. + * config/nds32/nds32-utils.c: Moved to... + * config/nds32/nds32-utils.cc: ...here. + * config/nds32/nds32.c: Moved to... + * config/nds32/nds32.cc: ...here. + * config/netbsd-d.c: Moved to... + * config/netbsd-d.cc: ...here. + * config/netbsd.c: Moved to... + * config/netbsd.cc: ...here. + * config/nios2/nios2.c: Moved to... + * config/nios2/nios2.cc: ...here. + * config/nvptx/mkoffload.c: Moved to... + * config/nvptx/mkoffload.cc: ...here. + * config/nvptx/nvptx-c.c: Moved to... + * config/nvptx/nvptx-c.cc: ...here. + * config/nvptx/nvptx.c: Moved to... + * config/nvptx/nvptx.cc: ...here. + * config/openbsd-d.c: Moved to... + * config/openbsd-d.cc: ...here. + * config/or1k/or1k.c: Moved to... + * config/or1k/or1k.cc: ...here. + * config/pa/pa-d.c: Moved to... + * config/pa/pa-d.cc: ...here. + * config/pa/pa.c: Moved to... + * config/pa/pa.cc: ...here. + * config/pdp11/pdp11.c: Moved to... + * config/pdp11/pdp11.cc: ...here. + * config/pru/pru-passes.c: Moved to... + * config/pru/pru-passes.cc: ...here. + * config/pru/pru-pragma.c: Moved to... + * config/pru/pru-pragma.cc: ...here. + * config/pru/pru.c: Moved to... + * config/pru/pru.cc: ...here. + * config/riscv/riscv-builtins.c: Moved to... + * config/riscv/riscv-builtins.cc: ...here. + * config/riscv/riscv-c.c: Moved to... + * config/riscv/riscv-c.cc: ...here. + * config/riscv/riscv-d.c: Moved to... + * config/riscv/riscv-d.cc: ...here. + * config/riscv/riscv-shorten-memrefs.c: Moved to... + * config/riscv/riscv-shorten-memrefs.cc: ...here. + * config/riscv/riscv-sr.c: Moved to... + * config/riscv/riscv-sr.cc: ...here. + * config/riscv/riscv.c: Moved to... + * config/riscv/riscv.cc: ...here. + * config/rl78/rl78-c.c: Moved to... + * config/rl78/rl78-c.cc: ...here. + * config/rl78/rl78.c: Moved to... + * config/rl78/rl78.cc: ...here. + * config/rs6000/driver-rs6000.c: Moved to... + * config/rs6000/driver-rs6000.cc: ...here. + * config/rs6000/host-darwin.c: Moved to... + * config/rs6000/host-darwin.cc: ...here. + * config/rs6000/host-ppc64-darwin.c: Moved to... + * config/rs6000/host-ppc64-darwin.cc: ...here. + * config/rs6000/rbtree.c: Moved to... + * config/rs6000/rbtree.cc: ...here. + * config/rs6000/rs6000-c.c: Moved to... + * config/rs6000/rs6000-c.cc: ...here. + * config/rs6000/rs6000-call.c: Moved to... + * config/rs6000/rs6000-call.cc: ...here. + * config/rs6000/rs6000-d.c: Moved to... + * config/rs6000/rs6000-d.cc: ...here. + * config/rs6000/rs6000-gen-builtins.c: Moved to... + * config/rs6000/rs6000-gen-builtins.cc: ...here. + * config/rs6000/rs6000-linux.c: Moved to... + * config/rs6000/rs6000-linux.cc: ...here. + * config/rs6000/rs6000-logue.c: Moved to... + * config/rs6000/rs6000-logue.cc: ...here. + * config/rs6000/rs6000-p8swap.c: Moved to... + * config/rs6000/rs6000-p8swap.cc: ...here. + * config/rs6000/rs6000-pcrel-opt.c: Moved to... + * config/rs6000/rs6000-pcrel-opt.cc: ...here. + * config/rs6000/rs6000-string.c: Moved to... + * config/rs6000/rs6000-string.cc: ...here. + * config/rs6000/rs6000.c: Moved to... + * config/rs6000/rs6000.cc: ...here. + * config/rx/rx.c: Moved to... + * config/rx/rx.cc: ...here. + * config/s390/driver-native.c: Moved to... + * config/s390/driver-native.cc: ...here. + * config/s390/s390-c.c: Moved to... + * config/s390/s390-c.cc: ...here. + * config/s390/s390-d.c: Moved to... + * config/s390/s390-d.cc: ...here. + * config/s390/s390.c: Moved to... + * config/s390/s390.cc: ...here. + * config/sh/divtab-sh4-300.c: Moved to... + * config/sh/divtab-sh4-300.cc: ...here. + * config/sh/divtab-sh4.c: Moved to... + * config/sh/divtab-sh4.cc: ...here. + * config/sh/divtab.c: Moved to... + * config/sh/divtab.cc: ...here. + * config/sh/sh-c.c: Moved to... + * config/sh/sh-c.cc: ...here. + * config/sh/sh.c: Moved to... + * config/sh/sh.cc: ...here. + * config/sol2-c.c: Moved to... + * config/sol2-c.cc: ...here. + * config/sol2-cxx.c: Moved to... + * config/sol2-cxx.cc: ...here. + * config/sol2-d.c: Moved to... + * config/sol2-d.cc: ...here. + * config/sol2-stubs.c: Moved to... + * config/sol2-stubs.cc: ...here. + * config/sol2.c: Moved to... + * config/sol2.cc: ...here. + * config/sparc/driver-sparc.c: Moved to... + * config/sparc/driver-sparc.cc: ...here. + * config/sparc/sparc-c.c: Moved to... + * config/sparc/sparc-c.cc: ...here. + * config/sparc/sparc-d.c: Moved to... + * config/sparc/sparc-d.cc: ...here. + * config/sparc/sparc.c: Moved to... + * config/sparc/sparc.cc: ...here. + * config/stormy16/stormy16.c: Moved to... + * config/stormy16/stormy16.cc: ...here. + * config/tilegx/mul-tables.c: Moved to... + * config/tilegx/mul-tables.cc: ...here. + * config/tilegx/tilegx-c.c: Moved to... + * config/tilegx/tilegx-c.cc: ...here. + * config/tilegx/tilegx.c: Moved to... + * config/tilegx/tilegx.cc: ...here. + * config/tilepro/mul-tables.c: Moved to... + * config/tilepro/mul-tables.cc: ...here. + * config/tilepro/tilepro-c.c: Moved to... + * config/tilepro/tilepro-c.cc: ...here. + * config/tilepro/tilepro.c: Moved to... + * config/tilepro/tilepro.cc: ...here. + * config/v850/v850-c.c: Moved to... + * config/v850/v850-c.cc: ...here. + * config/v850/v850.c: Moved to... + * config/v850/v850.cc: ...here. + * config/vax/vax.c: Moved to... + * config/vax/vax.cc: ...here. + * config/visium/visium.c: Moved to... + * config/visium/visium.cc: ...here. + * config/vms/vms-c.c: Moved to... + * config/vms/vms-c.cc: ...here. + * config/vms/vms-f.c: Moved to... + * config/vms/vms-f.cc: ...here. + * config/vms/vms.c: Moved to... + * config/vms/vms.cc: ...here. + * config/vxworks-c.c: Moved to... + * config/vxworks-c.cc: ...here. + * config/vxworks.c: Moved to... + * config/vxworks.cc: ...here. + * config/winnt-c.c: Moved to... + * config/winnt-c.cc: ...here. + * config/xtensa/xtensa.c: Moved to... + * config/xtensa/xtensa.cc: ...here. + * context.c: Moved to... + * context.cc: ...here. + * convert.c: Moved to... + * convert.cc: ...here. + * coverage.c: Moved to... + * coverage.cc: ...here. + * cppbuiltin.c: Moved to... + * cppbuiltin.cc: ...here. + * cppdefault.c: Moved to... + * cppdefault.cc: ...here. + * cprop.c: Moved to... + * cprop.cc: ...here. + * cse.c: Moved to... + * cse.cc: ...here. + * cselib.c: Moved to... + * cselib.cc: ...here. + * ctfc.c: Moved to... + * ctfc.cc: ...here. + * ctfout.c: Moved to... + * ctfout.cc: ...here. + * data-streamer-in.c: Moved to... + * data-streamer-in.cc: ...here. + * data-streamer-out.c: Moved to... + * data-streamer-out.cc: ...here. + * data-streamer.c: Moved to... + * data-streamer.cc: ...here. + * dbgcnt.c: Moved to... + * dbgcnt.cc: ...here. + * dbxout.c: Moved to... + * dbxout.cc: ...here. + * dce.c: Moved to... + * dce.cc: ...here. + * ddg.c: Moved to... + * ddg.cc: ...here. + * debug.c: Moved to... + * debug.cc: ...here. + * df-core.c: Moved to... + * df-core.cc: ...here. + * df-problems.c: Moved to... + * df-problems.cc: ...here. + * df-scan.c: Moved to... + * df-scan.cc: ...here. + * dfp.c: Moved to... + * dfp.cc: ...here. + * diagnostic-color.c: Moved to... + * diagnostic-color.cc: ...here. + * diagnostic-show-locus.c: Moved to... + * diagnostic-show-locus.cc: ...here. + * diagnostic-spec.c: Moved to... + * diagnostic-spec.cc: ...here. + * diagnostic.c: Moved to... + * diagnostic.cc: ...here. + * dojump.c: Moved to... + * dojump.cc: ...here. + * dominance.c: Moved to... + * dominance.cc: ...here. + * domwalk.c: Moved to... + * domwalk.cc: ...here. + * double-int.c: Moved to... + * double-int.cc: ...here. + * dse.c: Moved to... + * dse.cc: ...here. + * dumpfile.c: Moved to... + * dumpfile.cc: ...here. + * dwarf2asm.c: Moved to... + * dwarf2asm.cc: ...here. + * dwarf2cfi.c: Moved to... + * dwarf2cfi.cc: ...here. + * dwarf2ctf.c: Moved to... + * dwarf2ctf.cc: ...here. + * dwarf2out.c: Moved to... + * dwarf2out.cc: ...here. + * early-remat.c: Moved to... + * early-remat.cc: ...here. + * edit-context.c: Moved to... + * edit-context.cc: ...here. + * emit-rtl.c: Moved to... + * emit-rtl.cc: ...here. + * errors.c: Moved to... + * errors.cc: ...here. + * et-forest.c: Moved to... + * et-forest.cc: ...here. + * except.c: Moved to... + * except.cc: ...here. + * explow.c: Moved to... + * explow.cc: ...here. + * expmed.c: Moved to... + * expmed.cc: ...here. + * expr.c: Moved to... + * expr.cc: ...here. + * fibonacci_heap.c: Moved to... + * fibonacci_heap.cc: ...here. + * file-find.c: Moved to... + * file-find.cc: ...here. + * file-prefix-map.c: Moved to... + * file-prefix-map.cc: ...here. + * final.c: Moved to... + * final.cc: ...here. + * fixed-value.c: Moved to... + * fixed-value.cc: ...here. + * fold-const-call.c: Moved to... + * fold-const-call.cc: ...here. + * fold-const.c: Moved to... + * fold-const.cc: ...here. + * fp-test.c: Moved to... + * fp-test.cc: ...here. + * function-tests.c: Moved to... + * function-tests.cc: ...here. + * function.c: Moved to... + * function.cc: ...here. + * fwprop.c: Moved to... + * fwprop.cc: ...here. + * gcc-ar.c: Moved to... + * gcc-ar.cc: ...here. + * gcc-main.c: Moved to... + * gcc-main.cc: ...here. + * gcc-rich-location.c: Moved to... + * gcc-rich-location.cc: ...here. + * gcc.c: Moved to... + * gcc.cc: ...here. + * gcov-dump.c: Moved to... + * gcov-dump.cc: ...here. + * gcov-io.c: Moved to... + * gcov-io.cc: ...here. + * gcov-tool.c: Moved to... + * gcov-tool.cc: ...here. + * gcov.c: Moved to... + * gcov.cc: ...here. + * gcse-common.c: Moved to... + * gcse-common.cc: ...here. + * gcse.c: Moved to... + * gcse.cc: ...here. + * genattr-common.c: Moved to... + * genattr-common.cc: ...here. + * genattr.c: Moved to... + * genattr.cc: ...here. + * genattrtab.c: Moved to... + * genattrtab.cc: ...here. + * genautomata.c: Moved to... + * genautomata.cc: ...here. + * gencfn-macros.c: Moved to... + * gencfn-macros.cc: ...here. + * gencheck.c: Moved to... + * gencheck.cc: ...here. + * genchecksum.c: Moved to... + * genchecksum.cc: ...here. + * gencodes.c: Moved to... + * gencodes.cc: ...here. + * genconditions.c: Moved to... + * genconditions.cc: ...here. + * genconfig.c: Moved to... + * genconfig.cc: ...here. + * genconstants.c: Moved to... + * genconstants.cc: ...here. + * genemit.c: Moved to... + * genemit.cc: ...here. + * genenums.c: Moved to... + * genenums.cc: ...here. + * generic-match-head.c: Moved to... + * generic-match-head.cc: ...here. + * genextract.c: Moved to... + * genextract.cc: ...here. + * genflags.c: Moved to... + * genflags.cc: ...here. + * gengenrtl.c: Moved to... + * gengenrtl.cc: ...here. + * gengtype-parse.c: Moved to... + * gengtype-parse.cc: ...here. + * gengtype-state.c: Moved to... + * gengtype-state.cc: ...here. + * gengtype.c: Moved to... + * gengtype.cc: ...here. + * genhooks.c: Moved to... + * genhooks.cc: ...here. + * genmatch.c: Moved to... + * genmatch.cc: ...here. + * genmddeps.c: Moved to... + * genmddeps.cc: ...here. + * genmddump.c: Moved to... + * genmddump.cc: ...here. + * genmodes.c: Moved to... + * genmodes.cc: ...here. + * genopinit.c: Moved to... + * genopinit.cc: ...here. + * genoutput.c: Moved to... + * genoutput.cc: ...here. + * genpeep.c: Moved to... + * genpeep.cc: ...here. + * genpreds.c: Moved to... + * genpreds.cc: ...here. + * genrecog.c: Moved to... + * genrecog.cc: ...here. + * gensupport.c: Moved to... + * gensupport.cc: ...here. + * gentarget-def.c: Moved to... + * gentarget-def.cc: ...here. + * genversion.c: Moved to... + * genversion.cc: ...here. + * ggc-common.c: Moved to... + * ggc-common.cc: ...here. + * ggc-none.c: Moved to... + * ggc-none.cc: ...here. + * ggc-page.c: Moved to... + * ggc-page.cc: ...here. + * ggc-tests.c: Moved to... + * ggc-tests.cc: ...here. + * gimple-builder.c: Moved to... + * gimple-builder.cc: ...here. + * gimple-expr.c: Moved to... + * gimple-expr.cc: ...here. + * gimple-fold.c: Moved to... + * gimple-fold.cc: ...here. + * gimple-iterator.c: Moved to... + * gimple-iterator.cc: ...here. + * gimple-laddress.c: Moved to... + * gimple-laddress.cc: ...here. + * gimple-loop-jam.c: Moved to... + * gimple-loop-jam.cc: ...here. + * gimple-low.c: Moved to... + * gimple-low.cc: ...here. + * gimple-match-head.c: Moved to... + * gimple-match-head.cc: ...here. + * gimple-pretty-print.c: Moved to... + * gimple-pretty-print.cc: ...here. + * gimple-ssa-backprop.c: Moved to... + * gimple-ssa-backprop.cc: ...here. + * gimple-ssa-evrp-analyze.c: Moved to... + * gimple-ssa-evrp-analyze.cc: ...here. + * gimple-ssa-evrp.c: Moved to... + * gimple-ssa-evrp.cc: ...here. + * gimple-ssa-isolate-paths.c: Moved to... + * gimple-ssa-isolate-paths.cc: ...here. + * gimple-ssa-nonnull-compare.c: Moved to... + * gimple-ssa-nonnull-compare.cc: ...here. + * gimple-ssa-split-paths.c: Moved to... + * gimple-ssa-split-paths.cc: ...here. + * gimple-ssa-sprintf.c: Moved to... + * gimple-ssa-sprintf.cc: ...here. + * gimple-ssa-store-merging.c: Moved to... + * gimple-ssa-store-merging.cc: ...here. + * gimple-ssa-strength-reduction.c: Moved to... + * gimple-ssa-strength-reduction.cc: ...here. + * gimple-ssa-warn-alloca.c: Moved to... + * gimple-ssa-warn-alloca.cc: ...here. + * gimple-ssa-warn-restrict.c: Moved to... + * gimple-ssa-warn-restrict.cc: ...here. + * gimple-streamer-in.c: Moved to... + * gimple-streamer-in.cc: ...here. + * gimple-streamer-out.c: Moved to... + * gimple-streamer-out.cc: ...here. + * gimple-walk.c: Moved to... + * gimple-walk.cc: ...here. + * gimple-warn-recursion.c: Moved to... + * gimple-warn-recursion.cc: ...here. + * gimple.c: Moved to... + * gimple.cc: ...here. + * gimplify-me.c: Moved to... + * gimplify-me.cc: ...here. + * gimplify.c: Moved to... + * gimplify.cc: ...here. + * godump.c: Moved to... + * godump.cc: ...here. + * graph.c: Moved to... + * graph.cc: ...here. + * graphds.c: Moved to... + * graphds.cc: ...here. + * graphite-dependences.c: Moved to... + * graphite-dependences.cc: ...here. + * graphite-isl-ast-to-gimple.c: Moved to... + * graphite-isl-ast-to-gimple.cc: ...here. + * graphite-optimize-isl.c: Moved to... + * graphite-optimize-isl.cc: ...here. + * graphite-poly.c: Moved to... + * graphite-poly.cc: ...here. + * graphite-scop-detection.c: Moved to... + * graphite-scop-detection.cc: ...here. + * graphite-sese-to-poly.c: Moved to... + * graphite-sese-to-poly.cc: ...here. + * graphite.c: Moved to... + * graphite.cc: ...here. + * haifa-sched.c: Moved to... + * haifa-sched.cc: ...here. + * hash-map-tests.c: Moved to... + * hash-map-tests.cc: ...here. + * hash-set-tests.c: Moved to... + * hash-set-tests.cc: ...here. + * hash-table.c: Moved to... + * hash-table.cc: ...here. + * hooks.c: Moved to... + * hooks.cc: ...here. + * host-default.c: Moved to... + * host-default.cc: ...here. + * hw-doloop.c: Moved to... + * hw-doloop.cc: ...here. + * hwint.c: Moved to... + * hwint.cc: ...here. + * ifcvt.c: Moved to... + * ifcvt.cc: ...here. + * inchash.c: Moved to... + * inchash.cc: ...here. + * incpath.c: Moved to... + * incpath.cc: ...here. + * init-regs.c: Moved to... + * init-regs.cc: ...here. + * input.c: Moved to... + * input.cc: ...here. + * internal-fn.c: Moved to... + * internal-fn.cc: ...here. + * intl.c: Moved to... + * intl.cc: ...here. + * ipa-comdats.c: Moved to... + * ipa-comdats.cc: ...here. + * ipa-cp.c: Moved to... + * ipa-cp.cc: ...here. + * ipa-devirt.c: Moved to... + * ipa-devirt.cc: ...here. + * ipa-fnsummary.c: Moved to... + * ipa-fnsummary.cc: ...here. + * ipa-icf-gimple.c: Moved to... + * ipa-icf-gimple.cc: ...here. + * ipa-icf.c: Moved to... + * ipa-icf.cc: ...here. + * ipa-inline-analysis.c: Moved to... + * ipa-inline-analysis.cc: ...here. + * ipa-inline-transform.c: Moved to... + * ipa-inline-transform.cc: ...here. + * ipa-inline.c: Moved to... + * ipa-inline.cc: ...here. + * ipa-modref-tree.c: Moved to... + * ipa-modref-tree.cc: ...here. + * ipa-modref.c: Moved to... + * ipa-modref.cc: ...here. + * ipa-param-manipulation.c: Moved to... + * ipa-param-manipulation.cc: ...here. + * ipa-polymorphic-call.c: Moved to... + * ipa-polymorphic-call.cc: ...here. + * ipa-predicate.c: Moved to... + * ipa-predicate.cc: ...here. + * ipa-profile.c: Moved to... + * ipa-profile.cc: ...here. + * ipa-prop.c: Moved to... + * ipa-prop.cc: ...here. + * ipa-pure-const.c: Moved to... + * ipa-pure-const.cc: ...here. + * ipa-ref.c: Moved to... + * ipa-ref.cc: ...here. + * ipa-reference.c: Moved to... + * ipa-reference.cc: ...here. + * ipa-split.c: Moved to... + * ipa-split.cc: ...here. + * ipa-sra.c: Moved to... + * ipa-sra.cc: ...here. + * ipa-utils.c: Moved to... + * ipa-utils.cc: ...here. + * ipa-visibility.c: Moved to... + * ipa-visibility.cc: ...here. + * ipa.c: Moved to... + * ipa.cc: ...here. + * ira-build.c: Moved to... + * ira-build.cc: ...here. + * ira-color.c: Moved to... + * ira-color.cc: ...here. + * ira-conflicts.c: Moved to... + * ira-conflicts.cc: ...here. + * ira-costs.c: Moved to... + * ira-costs.cc: ...here. + * ira-emit.c: Moved to... + * ira-emit.cc: ...here. + * ira-lives.c: Moved to... + * ira-lives.cc: ...here. + * ira.c: Moved to... + * ira.cc: ...here. + * jump.c: Moved to... + * jump.cc: ...here. + * langhooks.c: Moved to... + * langhooks.cc: ...here. + * lcm.c: Moved to... + * lcm.cc: ...here. + * lists.c: Moved to... + * lists.cc: ...here. + * loop-doloop.c: Moved to... + * loop-doloop.cc: ...here. + * loop-init.c: Moved to... + * loop-init.cc: ...here. + * loop-invariant.c: Moved to... + * loop-invariant.cc: ...here. + * loop-iv.c: Moved to... + * loop-iv.cc: ...here. + * loop-unroll.c: Moved to... + * loop-unroll.cc: ...here. + * lower-subreg.c: Moved to... + * lower-subreg.cc: ...here. + * lra-assigns.c: Moved to... + * lra-assigns.cc: ...here. + * lra-coalesce.c: Moved to... + * lra-coalesce.cc: ...here. + * lra-constraints.c: Moved to... + * lra-constraints.cc: ...here. + * lra-eliminations.c: Moved to... + * lra-eliminations.cc: ...here. + * lra-lives.c: Moved to... + * lra-lives.cc: ...here. + * lra-remat.c: Moved to... + * lra-remat.cc: ...here. + * lra-spills.c: Moved to... + * lra-spills.cc: ...here. + * lra.c: Moved to... + * lra.cc: ...here. + * lto-cgraph.c: Moved to... + * lto-cgraph.cc: ...here. + * lto-compress.c: Moved to... + * lto-compress.cc: ...here. + * lto-opts.c: Moved to... + * lto-opts.cc: ...here. + * lto-section-in.c: Moved to... + * lto-section-in.cc: ...here. + * lto-section-out.c: Moved to... + * lto-section-out.cc: ...here. + * lto-streamer-in.c: Moved to... + * lto-streamer-in.cc: ...here. + * lto-streamer-out.c: Moved to... + * lto-streamer-out.cc: ...here. + * lto-streamer.c: Moved to... + * lto-streamer.cc: ...here. + * lto-wrapper.c: Moved to... + * lto-wrapper.cc: ...here. + * main.c: Moved to... + * main.cc: ...here. + * mcf.c: Moved to... + * mcf.cc: ...here. + * mode-switching.c: Moved to... + * mode-switching.cc: ...here. + * modulo-sched.c: Moved to... + * modulo-sched.cc: ...here. + * multiple_target.c: Moved to... + * multiple_target.cc: ...here. + * omp-expand.c: Moved to... + * omp-expand.cc: ...here. + * omp-general.c: Moved to... + * omp-general.cc: ...here. + * omp-low.c: Moved to... + * omp-low.cc: ...here. + * omp-offload.c: Moved to... + * omp-offload.cc: ...here. + * omp-simd-clone.c: Moved to... + * omp-simd-clone.cc: ...here. + * opt-suggestions.c: Moved to... + * opt-suggestions.cc: ...here. + * optabs-libfuncs.c: Moved to... + * optabs-libfuncs.cc: ...here. + * optabs-query.c: Moved to... + * optabs-query.cc: ...here. + * optabs-tree.c: Moved to... + * optabs-tree.cc: ...here. + * optabs.c: Moved to... + * optabs.cc: ...here. + * opts-common.c: Moved to... + * opts-common.cc: ...here. + * opts-global.c: Moved to... + * opts-global.cc: ...here. + * opts.c: Moved to... + * opts.cc: ...here. + * passes.c: Moved to... + * passes.cc: ...here. + * plugin.c: Moved to... + * plugin.cc: ...here. + * postreload-gcse.c: Moved to... + * postreload-gcse.cc: ...here. + * postreload.c: Moved to... + * postreload.cc: ...here. + * predict.c: Moved to... + * predict.cc: ...here. + * prefix.c: Moved to... + * prefix.cc: ...here. + * pretty-print.c: Moved to... + * pretty-print.cc: ...here. + * print-rtl-function.c: Moved to... + * print-rtl-function.cc: ...here. + * print-rtl.c: Moved to... + * print-rtl.cc: ...here. + * print-tree.c: Moved to... + * print-tree.cc: ...here. + * profile-count.c: Moved to... + * profile-count.cc: ...here. + * profile.c: Moved to... + * profile.cc: ...here. + * read-md.c: Moved to... + * read-md.cc: ...here. + * read-rtl-function.c: Moved to... + * read-rtl-function.cc: ...here. + * read-rtl.c: Moved to... + * read-rtl.cc: ...here. + * real.c: Moved to... + * real.cc: ...here. + * realmpfr.c: Moved to... + * realmpfr.cc: ...here. + * recog.c: Moved to... + * recog.cc: ...here. + * ree.c: Moved to... + * ree.cc: ...here. + * reg-stack.c: Moved to... + * reg-stack.cc: ...here. + * regcprop.c: Moved to... + * regcprop.cc: ...here. + * reginfo.c: Moved to... + * reginfo.cc: ...here. + * regrename.c: Moved to... + * regrename.cc: ...here. + * regstat.c: Moved to... + * regstat.cc: ...here. + * reload.c: Moved to... + * reload.cc: ...here. + * reload1.c: Moved to... + * reload1.cc: ...here. + * reorg.c: Moved to... + * reorg.cc: ...here. + * resource.c: Moved to... + * resource.cc: ...here. + * rtl-error.c: Moved to... + * rtl-error.cc: ...here. + * rtl-tests.c: Moved to... + * rtl-tests.cc: ...here. + * rtl.c: Moved to... + * rtl.cc: ...here. + * rtlanal.c: Moved to... + * rtlanal.cc: ...here. + * rtlhash.c: Moved to... + * rtlhash.cc: ...here. + * rtlhooks.c: Moved to... + * rtlhooks.cc: ...here. + * rtx-vector-builder.c: Moved to... + * rtx-vector-builder.cc: ...here. + * run-rtl-passes.c: Moved to... + * run-rtl-passes.cc: ...here. + * sancov.c: Moved to... + * sancov.cc: ...here. + * sanopt.c: Moved to... + * sanopt.cc: ...here. + * sbitmap.c: Moved to... + * sbitmap.cc: ...here. + * sched-deps.c: Moved to... + * sched-deps.cc: ...here. + * sched-ebb.c: Moved to... + * sched-ebb.cc: ...here. + * sched-rgn.c: Moved to... + * sched-rgn.cc: ...here. + * sel-sched-dump.c: Moved to... + * sel-sched-dump.cc: ...here. + * sel-sched-ir.c: Moved to... + * sel-sched-ir.cc: ...here. + * sel-sched.c: Moved to... + * sel-sched.cc: ...here. + * selftest-diagnostic.c: Moved to... + * selftest-diagnostic.cc: ...here. + * selftest-rtl.c: Moved to... + * selftest-rtl.cc: ...here. + * selftest-run-tests.c: Moved to... + * selftest-run-tests.cc: ...here. + * selftest.c: Moved to... + * selftest.cc: ...here. + * sese.c: Moved to... + * sese.cc: ...here. + * shrink-wrap.c: Moved to... + * shrink-wrap.cc: ...here. + * simplify-rtx.c: Moved to... + * simplify-rtx.cc: ...here. + * sparseset.c: Moved to... + * sparseset.cc: ...here. + * spellcheck-tree.c: Moved to... + * spellcheck-tree.cc: ...here. + * spellcheck.c: Moved to... + * spellcheck.cc: ...here. + * sreal.c: Moved to... + * sreal.cc: ...here. + * stack-ptr-mod.c: Moved to... + * stack-ptr-mod.cc: ...here. + * statistics.c: Moved to... + * statistics.cc: ...here. + * stmt.c: Moved to... + * stmt.cc: ...here. + * stor-layout.c: Moved to... + * stor-layout.cc: ...here. + * store-motion.c: Moved to... + * store-motion.cc: ...here. + * streamer-hooks.c: Moved to... + * streamer-hooks.cc: ...here. + * stringpool.c: Moved to... + * stringpool.cc: ...here. + * substring-locations.c: Moved to... + * substring-locations.cc: ...here. + * symtab.c: Moved to... + * symtab.cc: ...here. + * target-globals.c: Moved to... + * target-globals.cc: ...here. + * targhooks.c: Moved to... + * targhooks.cc: ...here. + * timevar.c: Moved to... + * timevar.cc: ...here. + * toplev.c: Moved to... + * toplev.cc: ...here. + * tracer.c: Moved to... + * tracer.cc: ...here. + * trans-mem.c: Moved to... + * trans-mem.cc: ...here. + * tree-affine.c: Moved to... + * tree-affine.cc: ...here. + * tree-call-cdce.c: Moved to... + * tree-call-cdce.cc: ...here. + * tree-cfg.c: Moved to... + * tree-cfg.cc: ...here. + * tree-cfgcleanup.c: Moved to... + * tree-cfgcleanup.cc: ...here. + * tree-chrec.c: Moved to... + * tree-chrec.cc: ...here. + * tree-complex.c: Moved to... + * tree-complex.cc: ...here. + * tree-data-ref.c: Moved to... + * tree-data-ref.cc: ...here. + * tree-dfa.c: Moved to... + * tree-dfa.cc: ...here. + * tree-diagnostic.c: Moved to... + * tree-diagnostic.cc: ...here. + * tree-dump.c: Moved to... + * tree-dump.cc: ...here. + * tree-eh.c: Moved to... + * tree-eh.cc: ...here. + * tree-emutls.c: Moved to... + * tree-emutls.cc: ...here. + * tree-if-conv.c: Moved to... + * tree-if-conv.cc: ...here. + * tree-inline.c: Moved to... + * tree-inline.cc: ...here. + * tree-into-ssa.c: Moved to... + * tree-into-ssa.cc: ...here. + * tree-iterator.c: Moved to... + * tree-iterator.cc: ...here. + * tree-loop-distribution.c: Moved to... + * tree-loop-distribution.cc: ...here. + * tree-nested.c: Moved to... + * tree-nested.cc: ...here. + * tree-nrv.c: Moved to... + * tree-nrv.cc: ...here. + * tree-object-size.c: Moved to... + * tree-object-size.cc: ...here. + * tree-outof-ssa.c: Moved to... + * tree-outof-ssa.cc: ...here. + * tree-parloops.c: Moved to... + * tree-parloops.cc: ...here. + * tree-phinodes.c: Moved to... + * tree-phinodes.cc: ...here. + * tree-predcom.c: Moved to... + * tree-predcom.cc: ...here. + * tree-pretty-print.c: Moved to... + * tree-pretty-print.cc: ...here. + * tree-profile.c: Moved to... + * tree-profile.cc: ...here. + * tree-scalar-evolution.c: Moved to... + * tree-scalar-evolution.cc: ...here. + * tree-sra.c: Moved to... + * tree-sra.cc: ...here. + * tree-ssa-address.c: Moved to... + * tree-ssa-address.cc: ...here. + * tree-ssa-alias.c: Moved to... + * tree-ssa-alias.cc: ...here. + * tree-ssa-ccp.c: Moved to... + * tree-ssa-ccp.cc: ...here. + * tree-ssa-coalesce.c: Moved to... + * tree-ssa-coalesce.cc: ...here. + * tree-ssa-copy.c: Moved to... + * tree-ssa-copy.cc: ...here. + * tree-ssa-dce.c: Moved to... + * tree-ssa-dce.cc: ...here. + * tree-ssa-dom.c: Moved to... + * tree-ssa-dom.cc: ...here. + * tree-ssa-dse.c: Moved to... + * tree-ssa-dse.cc: ...here. + * tree-ssa-forwprop.c: Moved to... + * tree-ssa-forwprop.cc: ...here. + * tree-ssa-ifcombine.c: Moved to... + * tree-ssa-ifcombine.cc: ...here. + * tree-ssa-live.c: Moved to... + * tree-ssa-live.cc: ...here. + * tree-ssa-loop-ch.c: Moved to... + * tree-ssa-loop-ch.cc: ...here. + * tree-ssa-loop-im.c: Moved to... + * tree-ssa-loop-im.cc: ...here. + * tree-ssa-loop-ivcanon.c: Moved to... + * tree-ssa-loop-ivcanon.cc: ...here. + * tree-ssa-loop-ivopts.c: Moved to... + * tree-ssa-loop-ivopts.cc: ...here. + * tree-ssa-loop-manip.c: Moved to... + * tree-ssa-loop-manip.cc: ...here. + * tree-ssa-loop-niter.c: Moved to... + * tree-ssa-loop-niter.cc: ...here. + * tree-ssa-loop-prefetch.c: Moved to... + * tree-ssa-loop-prefetch.cc: ...here. + * tree-ssa-loop-split.c: Moved to... + * tree-ssa-loop-split.cc: ...here. + * tree-ssa-loop-unswitch.c: Moved to... + * tree-ssa-loop-unswitch.cc: ...here. + * tree-ssa-loop.c: Moved to... + * tree-ssa-loop.cc: ...here. + * tree-ssa-math-opts.c: Moved to... + * tree-ssa-math-opts.cc: ...here. + * tree-ssa-operands.c: Moved to... + * tree-ssa-operands.cc: ...here. + * tree-ssa-phiopt.c: Moved to... + * tree-ssa-phiopt.cc: ...here. + * tree-ssa-phiprop.c: Moved to... + * tree-ssa-phiprop.cc: ...here. + * tree-ssa-pre.c: Moved to... + * tree-ssa-pre.cc: ...here. + * tree-ssa-propagate.c: Moved to... + * tree-ssa-propagate.cc: ...here. + * tree-ssa-reassoc.c: Moved to... + * tree-ssa-reassoc.cc: ...here. + * tree-ssa-sccvn.c: Moved to... + * tree-ssa-sccvn.cc: ...here. + * tree-ssa-scopedtables.c: Moved to... + * tree-ssa-scopedtables.cc: ...here. + * tree-ssa-sink.c: Moved to... + * tree-ssa-sink.cc: ...here. + * tree-ssa-strlen.c: Moved to... + * tree-ssa-strlen.cc: ...here. + * tree-ssa-structalias.c: Moved to... + * tree-ssa-structalias.cc: ...here. + * tree-ssa-tail-merge.c: Moved to... + * tree-ssa-tail-merge.cc: ...here. + * tree-ssa-ter.c: Moved to... + * tree-ssa-ter.cc: ...here. + * tree-ssa-threadbackward.c: Moved to... + * tree-ssa-threadbackward.cc: ...here. + * tree-ssa-threadedge.c: Moved to... + * tree-ssa-threadedge.cc: ...here. + * tree-ssa-threadupdate.c: Moved to... + * tree-ssa-threadupdate.cc: ...here. + * tree-ssa-uncprop.c: Moved to... + * tree-ssa-uncprop.cc: ...here. + * tree-ssa-uninit.c: Moved to... + * tree-ssa-uninit.cc: ...here. + * tree-ssa.c: Moved to... + * tree-ssa.cc: ...here. + * tree-ssanames.c: Moved to... + * tree-ssanames.cc: ...here. + * tree-stdarg.c: Moved to... + * tree-stdarg.cc: ...here. + * tree-streamer-in.c: Moved to... + * tree-streamer-in.cc: ...here. + * tree-streamer-out.c: Moved to... + * tree-streamer-out.cc: ...here. + * tree-streamer.c: Moved to... + * tree-streamer.cc: ...here. + * tree-switch-conversion.c: Moved to... + * tree-switch-conversion.cc: ...here. + * tree-tailcall.c: Moved to... + * tree-tailcall.cc: ...here. + * tree-vect-data-refs.c: Moved to... + * tree-vect-data-refs.cc: ...here. + * tree-vect-generic.c: Moved to... + * tree-vect-generic.cc: ...here. + * tree-vect-loop-manip.c: Moved to... + * tree-vect-loop-manip.cc: ...here. + * tree-vect-loop.c: Moved to... + * tree-vect-loop.cc: ...here. + * tree-vect-patterns.c: Moved to... + * tree-vect-patterns.cc: ...here. + * tree-vect-slp-patterns.c: Moved to... + * tree-vect-slp-patterns.cc: ...here. + * tree-vect-slp.c: Moved to... + * tree-vect-slp.cc: ...here. + * tree-vect-stmts.c: Moved to... + * tree-vect-stmts.cc: ...here. + * tree-vector-builder.c: Moved to... + * tree-vector-builder.cc: ...here. + * tree-vectorizer.c: Moved to... + * tree-vectorizer.cc: ...here. + * tree-vrp.c: Moved to... + * tree-vrp.cc: ...here. + * tree.c: Moved to... + * tree.cc: ...here. + * tsan.c: Moved to... + * tsan.cc: ...here. + * typed-splay-tree.c: Moved to... + * typed-splay-tree.cc: ...here. + * ubsan.c: Moved to... + * ubsan.cc: ...here. + * valtrack.c: Moved to... + * valtrack.cc: ...here. + * value-prof.c: Moved to... + * value-prof.cc: ...here. + * var-tracking.c: Moved to... + * var-tracking.cc: ...here. + * varasm.c: Moved to... + * varasm.cc: ...here. + * varpool.c: Moved to... + * varpool.cc: ...here. + * vec-perm-indices.c: Moved to... + * vec-perm-indices.cc: ...here. + * vec.c: Moved to... + * vec.cc: ...here. + * vmsdbgout.c: Moved to... + * vmsdbgout.cc: ...here. + * vr-values.c: Moved to... + * vr-values.cc: ...here. + * vtable-verify.c: Moved to... + * vtable-verify.cc: ...here. + * web.c: Moved to... + * web.cc: ...here. + * xcoffout.c: Moved to... + * xcoffout.cc: ...here. + +2022-01-17 qing zhao <qing.zhao@oracle.com> + + * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle + .DEFERRED_INIT call with an anonymous SSA_NAME specially. + (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME + specially. + (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit. + (warn_uninitialized_vars): Likewise. + (warn_uninitialized_phi): Likewise. + +2022-01-17 Jason Merrill <jason@redhat.com> + + * diagnostic.h (struct diagnostic_context): Add includes_seen. + * diagnostic.c (diagnostic_initialize): Initialize it. + (diagnostic_finish): Clean it up. + (includes_seen): New function. + (diagnostic_report_current_module): Use it. + +2022-01-17 Richard Biener <rguenther@suse.de> + + PR middle-end/101292 + * diagnostic-spec.c (copy_warning): Make sure to not + reference old hashtable content on possible resize. + * warning-control.cc (copy_warning): Likewise. + +2022-01-17 Jakub Jelinek <jakub@redhat.com> + + PR target/103973 + * tree-cfg.h (cond_only_block_p): Declare. + * tree-ssa-phiopt.c (cond_only_block_p): Move function to ... + * tree-cfg.c (cond_only_block_p): ... here. No longer static. + * optabs.def (spaceship_optab): New optab. + * internal-fn.def (SPACESHIP): New internal function. + * internal-fn.h (expand_SPACESHIP): Declare. + * internal-fn.c (expand_PHI): Formatting fix. + (expand_SPACESHIP): New function. + * tree-ssa-math-opts.c (optimize_spaceship): New function. + (math_opts_dom_walker::after_dom_children): Use it. + * config/i386/i386.md (spaceship<mode>3): New define_expand. + * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare. + * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function. + * doc/md.texi (spaceship@var{m}3): Document. + +2022-01-17 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/altivec.md (altivec_vreveti2): Remove. + * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df, + *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use + known constant values to simplify code. + +2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org> + + PR target/103124 + * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined. + +2022-01-16 wwwhhhyyy <hongyu.wang@intel.com> + + * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro. + * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>): + Insert zero-idiom in output template when attr enabled, set new attribute to + true for non-mask/maskz insn. + (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>): + Likewise. + (avx512dq_mul<mode>3<mask_name>): Likewise. + (<avx2_avx512>_permvar<mode><mask_name>): Likewise. + (avx2_perm<mode>_1<mask_name>): Likewise. + (avx512f_perm<mode>_1<mask_name>): Likewise. + (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise. + (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): + Likewise. + (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise. + (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): + Likewise. + * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New + subst_attr. + (mask4_dest_false_dep_for_glc_cond): Likewise. + (mask6_dest_false_dep_for_glc_cond): Likewise. + (mask10_dest_false_dep_for_glc_cond): Likewise. + (maskc_dest_false_dep_for_glc_cond): Likewise. + (mask_scalar4_dest_false_dep_for_glc_cond): Likewise. + (mask_scalarc_dest_false_dep_for_glc_cond): Likewise. + * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New + DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE + +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR c/63272 + * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle + -Wdangling-pointer. + * doc/invoke.texi (-Wdangling-pointer): Document new option. + * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member. + (pass_waccess::check_pointer_uses): New function. + (pass_waccess::gimple_call_return_arg): New function. + (pass_waccess::gimple_call_return_arg_ref): New function. + (pass_waccess::check_call_dangling): New function. + (pass_waccess::check_dangling_uses): New function overloads. + (pass_waccess::check_dangling_stores): New function. + (pass_waccess::check_dangling_stores): New function. + (pass_waccess::m_clobbers): New data member. + (pass_waccess::m_func): New data member. + (pass_waccess::m_run_number): New data member. + (pass_waccess::m_check_dangling_p): New data member. + (pass_waccess::check_alloca): Check m_early_checks_p. + (pass_waccess::check_alloc_size_call): Same. + (pass_waccess::check_strcat): Same. + (pass_waccess::check_strncat): Same. + (pass_waccess::check_stxcpy): Same. + (pass_waccess::check_stxncpy): Same. + (pass_waccess::check_strncmp): Same. + (pass_waccess::check_memop_access): Same. + (pass_waccess::check_read_access): Same. + (pass_waccess::check_builtin): Call check_pointer_uses. + (pass_waccess::warn_invalid_pointer): Add arguments. + (is_auto_decl): New function. + (pass_waccess::check_stmt): New function. + (pass_waccess::check_block): Call check_stmt. + (pass_waccess::execute): Call check_dangling_uses, + check_dangling_stores. Empty m_clobbers. + * passes.def (pass_warn_access): Invoke pass two more times. + +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/80532 + * common.opt (-Wuse-after-free): New options. + * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle + OPT_Wreturn_local_addr and OPT_Wuse_after_free_. + * diagnostic-spec.h (NW_DANGLING): New enumerator. + * doc/invoke.texi (-Wuse-after-free): Document new option. + * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename... + (pass_waccess::check_call_access): ...to this. + (pass_waccess::check): Rename... + (pass_waccess::check_block): ...to this. + (pass_waccess::check_pointer_uses): New function. + (pass_waccess::gimple_call_return_arg): New function. + (pass_waccess::warn_invalid_pointer): New function. + (pass_waccess::check_builtin): Handle free and realloc. + (gimple_use_after_inval_p): New function. + (get_realloc_lhs): New function. + (maybe_warn_mismatched_realloc): New function. + (pointers_related_p): New function. + (pass_waccess::check_call): Call check_pointer_uses. + (pass_waccess::execute): Compute and free dominance info. + +2022-01-15 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use + expand_simple_unop and expand_simple_binop instead of manually + constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand + consistently. Eliminate common subexpressions and simplify code. + * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander. + (<any_logic:code><MODEF:mode>3): Make public. + +2022-01-14 Eric Botcazou <ebotcazou@adacore.com> + + * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump + reverse flag as "reverse" for the sake of consistency. + * ipa-sra.c: Fix copyright year. + (ipa_sra_function_summaries::duplicate): Copy the reverse flag. + (dump_isra_access): Tweak dump line. + (isra_write_node_summary): Write the reverse flag. + (isra_read_node_info): Read it. + (pull_accesses_from_callee): Test its consistency and copy it. + +2022-01-14 Richard Sandiford <richard.sandiford@arm.com> + + PR middle-end/104026 + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize + partial_load_store_bias. + +2022-01-14 Martin Sebor <msebor@redhat.com> + + PR middle-end/101475 + * pointer-query.cc (handle_component_ref): Use the size of + the enclosing object if it's smaller than the member. + +2022-01-14 Martin Liska <mliska@suse.cz> + + * configure: Regenerate. + +2022-01-14 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (*add<mode>_1_slp"): + Mark alternative 1 output operand earlyclobbered. + (*sub<mode>_1_slp): Ditto. + (*and<mode>_1_slp): Ditto. + (*<code><mode>_1_slp): Ditto. + (*neg<mode>_1_slp): Ditto. + (*one_cmpl<mode>_1_slp): Ditto. + (*ashl<mode>3_1_slp): Ditto. + (*<insn><mode>3_1_slp): Ditto. + (*<insn><mode>3_1_slp): Ditto. + +2022-01-14 Kewen Lin <linkw@linux.ibm.com> + + PR tree-optimization/104015 + * tree-vect-loop.c (vect_analyze_loop): Check + param_vect_partial_vector_usage for supports_partial_vectors. + +2022-01-14 Jakub Jelinek <jakub@redhat.com> + + PR c++/89074 + * fold-const.c (address_compare): Punt on comparison of address of + one object with address of end of another object if + folding_initializer. + +2022-01-14 Jakub Jelinek <jakub@redhat.com> + + PR target/98737 + * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize + __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y) + and __atomic_op_fetch (p, x, y) iop x into + __atomic_fetch_op (p, x, y). + +2022-01-14 Claudiu Zissulescu <claziss@synopsys.com> + + * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition. + (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro. + (INCOMING_RETURN_ADDR_RTX): Likewise. + (DWARF_ALT_FRAME_RETURN_COLUMN): Define. + +2022-01-14 Claudiu Zissulescu <claziss@synopsys.com> + + * config/arc/arc.c (arc_compute_frame_size): Remove condition when + computin checking accumulator regs. + (arc_expand_prologue): Update comments. + (arc_expand_epilogue): Likewise. + +2022-01-14 Roger Sayle <roger@nextmovesoftware.com> + Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg. + (ix86_expand_ti_to_v1ti): Use force_reg. + (ix86_expand_v1ti_shift): Use force_reg. + (ix86_expand_v1ti_rotate): Use force_reg. + (ix86_expand_v1ti_ashiftrt): Provide new three operation + implementations for shifts by 111..126 bits. Use force_reg. + +2022-01-14 Martin Liska <mliska@suse.cz> + + * common/config/arm/arm-common.c (arm_target_mode): Fix + warning: unterminated quoting directive [-Wformat=]. + +2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR tree-optimization/104009 + * tree-object-size.c (compute_builtin_object_size): Bail out on + negative offset. + (plus_stmt_object_size): Return maximum of wholesize and minimum + of 0 for negative offset. + +2022-01-14 liuhongt <hongtao.liu@intel.com> + + PR target/104001 + PR target/94790 + PR target/104014 + * config/i386/i386.md (*xor2andn): Refine predicate of + operands[0] from nonimmediate_operand to + register_operand, remove TARGET_AVX512BW from condition. + +2022-01-14 David Malcolm <dmalcolm@redhat.com> + + * doc/extend.texi (Function Attributes): Note that "tainted_args" can + be used on field decls. + (Common Function Attributes): Add entry on "tainted_args" attribute. + +2022-01-13 Anthony Sharp <anthonysharp15@gmail.com> + Jason Merrill <jason@redhat.com> + + PR c++/70417 + * doc/invoke.texi: Documentation for Wmissing-template-keyword. + +2022-01-13 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103861 + * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern. + (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto. + * config/i386/mmx.md (<any_shift:insn>v2qi): + New insn_and_split pattern. + +2022-01-13 Robin Dapp <rdapp@linux.ibm.com> + + * internal-fn.c (expand_partial_load_optab_fn): Add bias. + (expand_partial_store_optab_fn): Likewise. + (internal_len_load_store_bias): New function. + * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define. + (internal_len_load_store_bias): New function. + * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias. + (vect_set_loop_condition_partial_vectors): Add header_seq parameter. + * tree-vect-loop.c (vect_verify_loop_lens): Verify bias. + (vect_estimate_min_profitable_iters): Account for bias. + (vect_get_loop_len): Add bias-adjusted length. + * tree-vect-stmts.c (vectorizable_store): Use. + (vectorizable_load): Use. + * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length. + (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro. + * config/rs6000/vsx.md: Use const0 bias predicate. + * doc/md.texi: Document bias value. + +2022-01-13 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/83072 + PR tree-optimization/83073 + PR tree-optimization/97909 + * fold-const.c (expr_not_equal_to): Use a multi-range class. + +2022-01-13 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/96707 + * range-op.cc (operator_rshift::lhs_op1_relation): New. + +2022-01-13 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit. + Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size. + (negv2qi splitters): Use lowpart_subreg instead of + gen_lowpart to create subreg. + (<plusminus:insn>v2qi3): Disparage GPR alternative a bit. + Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size. + (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of + gen_lowpart to create subreg. + * config/i386/i386.md (*subqi_ext<mode>_2): Move. + +2022-01-13 Uroš Bizjak <ubizjak@gmail.com> + + PR target/104003 + * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator. + +2022-01-13 Martin Liska <mliska@suse.cz> + + * common/config/arm/arm-common.c (arm_target_mode): Wrap + keywords with %<, %> and remove trailing punctuation char. + (arm_canon_arch_option_1): Likewise. + (arm_asm_auto_mfpu): Likewise. + * config/arm/arm-builtins.c (arm_expand_builtin): Likewise. + * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise. + (use_vfp_abi): Likewise. + (aapcs_vfp_is_call_or_return_candidate): Likewise. + (arm_handle_cmse_nonsecure_entry): Likewise. + (arm_handle_cmse_nonsecure_call): Likewise. + (thumb1_md_asm_adjust): Likewise. + +2022-01-13 Paul A. Clarke <pc@us.ibm.com> + + * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps, + _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT, + _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF, + _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC, + _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC, + _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New. + (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd, + _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to + macro. + +2022-01-13 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/103989 + * tree-inline.c (setup_one_parameter): Don't copy parms with + empty type. + +2022-01-13 Thomas Schwinge <thomas@codesourcery.com> + + * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack + 'TYPE_ADDR_SPACE' for offloading. + * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack + 'TYPE_ADDR_SPACE' for offloading. + +2022-01-13 Julian Brown <julian@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + + * omp-oacc-kernels-decompose.cc (add_wait): New function, split out + of... + (add_async_clauses_and_wait): ...here. Call new outlined function. + (decompose_kernels_region_body): Add wait at the end of + explicitly-asynchronous kernels regions. + +2022-01-13 Thomas Schwinge <thomas@codesourcery.com> + + PR middle-end/100280 + * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region): + Mark variables used in synthesized data clauses as addressable. + +2022-01-13 Martin Liska <mliska@suse.cz> + + * config/epiphany/epiphany.c (epiphany_mode_priority): + Use gcc_unreachable for not handled cases. + +2022-01-13 Martin Liska <mliska@suse.cz> + + * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute): + Use %qs format specifier. + (epiphany_override_options): Wrap keyword in %<, %>. + +2022-01-13 Haochen Jiang <haochen.jiang@intel.com> + + PR target/94790 + * config/i386/i386.md (*xor2andn): New define_insn_and_split. + +2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com> + + * config/rs6000/altivec.md (sldoi_to_mov<mode>): New. + +2022-01-12 Uroš Bizjak <ubizjak@gmail.com> + + PR target/100637 + PR target/103861 + * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function. + (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X + when constructing vector logic RTXes. + (expand_vec_perm_pshufb2): Ditto. + * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit. + (<plusminus:insn>v2qi3): Ditto. + (vcond<mode><mode>): Re-enable for TARGET_SSE2. + (vcondu<mode><mode>): Ditto. + (vcond_mask_<mode><mode>): Ditto. + (one_cmpl<VI_32:mode>2): Remove expander. + (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi. + Use VI_16_32 mode iterator. + (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator. + Use lowpart_subreg instead of gen_lowpart to create subreg. + (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and + "*andnotv2qi3" insn patterns using VI_16_32 mode iterator. + Disparage GPR alternative a bit. Add CC clobber. + (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator. + Use lowpart_subreg instead of gen_lowpart to create subreg. + (*<any_logic:code><VI_16_32:mode>3): Merge from + "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns + using VI_16_32 mode iterator. Disparage GPR alternative a bit. + Add CC clobber. + (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode + iterator. Use lowpart_subreg instead of gen_lowpart to create subreg. + +2022-01-12 Clément Chigot <clement.chigot@atos.net> + + * configure.ac: Check sizeof ino_t and dev_t. + (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat + syscall being able to handle 64bit inodes. + * config.in: Regenerate. + * configure: Regenerate. + * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define. + (remove_duplicates): Use it. + +2022-01-12 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/103551 + * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE. + +2022-01-12 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103990 + * tree-pass.h (tail_merge_optimize): Drop unused argument. + * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. + * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg + and adjust call to tail_merge_optimize. + +2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target + does not add autovectorize_vector_modes. + +2022-01-12 Martin Liska <mliska@suse.cz> + + * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use + %qs where possible. + (aarch64_parse_sve_width_string): Likewise. + (aarch64_override_options_internal): Likewise. + (aarch64_print_hint_for_extensions): Likewise. + (aarch64_validate_sls_mitigation): Likewise. + (aarch64_handle_attr_arch): Likewise. + (aarch64_handle_attr_cpu): Likewise. + (aarch64_handle_attr_tune): Likewise. + (aarch64_handle_attr_isa_flags): Likewise. + +2022-01-12 Martin Liska <mliska@suse.cz> + + * config.gcc: Include elfos.h before ${tm_file}. + +2022-01-12 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/cris.c: Quote identifiers in parameters to error + and internal_error, and remove extraneous spaces with punctuation. + * config/cris/cris.h (CRIS_ASSERT): When passing on stringified + expression to internal_error, pass it as a parameter instead of + appending it to the format part. + +2022-01-12 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize + parameter to as_a. + +2022-01-11 qing zhao <qing.zhao@oracle.com> + + * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument. + Change the 3rd argument of function .DEFERRED_INIT to the name of the + decl. + (gimplify_decl_expr): Delete the 3rd argument when call + gimple_add_init_for_auto_var. + * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect + the 3rd argument change of function .DEFERRED_INIT. + * tree-cfg.c (verify_gimple_call): Update comments and verification + to reflect the 3rd argument change of function .DEFERRED_INIT. + * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument. + (sra_modify_deferred_init): Change the 3rd argument of function + .DEFERRED_INIT to the name of the decl. + +2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org> + + * flag-types.h (enum gfc_convert): Add flags for + conversion. + +2022-01-11 Michael Meissner <meissner@the-meissners.org> + + * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove + checks for only C/C++ front ends before allowing the long double + format to change without a warning. + +2022-01-11 Richard Sandiford <richard.sandiford@arm.com> + + PR rtl-optimization/103974 + * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an + extra argument, default true, that says whether old-reload + targets should be excluded. + * ira-color.c (color_pass): Pass false. + +2022-01-11 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103861 + * config/i386/mmx.md (vcond<mode><mode>): + Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1. + (vcondu<mode><mode>): Ditto. + (vcond_mask_<mode><mode>): Ditto. + (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64. + (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32. + Use VI_16_32 mode iterator. + * config/i386/i386-expand.c (ix86_expand_sse_movcc): + Update for rename. Handle V2QImode. + (expand_vec_perm_blend): Update for rename. + +2022-01-11 Jakub Jelinek <jakub@redhat.com> + + PR c++/101597 + * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN. + +2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR middle-end/70090 + * tree-object-size.c (size_valid_p): New function. + (size_for_offset): Remove OFFSET constness assertion. + (addr_object_size): Build dynamic expressions for object + sizes and use size_valid_p to decide if it is valid for the + given OBJECT_SIZE_TYPE. + (compute_builtin_object_size): Allow dynamic offsets when + computing size at O0. + (call_object_size): Call size_valid_p. + (plus_stmt_object_size): Allow non-constant offset and use + size_valid_p to decide if it is valid for the given + OBJECT_SIZE_TYPE. + +2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR middle-end/70090 + * tree-object-size.c (alloc_object_size): Make and return + non-constant size expression. + (call_object_size): Return expression or unknown based on + whether dynamic object size is requested. + +2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR middle-end/70090 + * tree-object-size.c: Include tree-dfa.h. + (parm_object_size): New function. + (collect_object_sizes_for): Call it. + +2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org> + + PR middle-end/70090 + * builtins.c (fold_builtin_object_size): Adjust for dynamic size + expressions. + * tree-object-size.c: Include gimplify-me.h. + (struct object_size_info): New member UNKNOWNS. + (size_initval_p, size_usable_p, object_sizes_get_raw): New + functions. + (object_sizes_get): Return suitable gimple variable for + object size. + (bundle_sizes): New function. + (object_sizes_set): Use it and handle dynamic object size + expressions. + (object_sizes_set_temp): New function. + (size_for_offset): Adjust for dynamic size expressions. + (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions): + New functions. + (compute_builtin_object_size): Call gimplify_size_expressions + for OST_DYNAMIC. + (dynamic_object_size): New function. + (cond_expr_object_size): Use it. + (phi_dynamic_object_size): New function. + (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to + accommodate dynamic object sizes. + +2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org> + Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/103961 + * tree-object-size.c (plus_stmt_object_size): Always avoid + computing offset for -1 size. + +2022-01-11 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/103821 + * range-op.cc (range_operator::fold_range): Only do precise ranges + when there are not too many subranges. + +2022-01-11 Richard Sandiford <richard.sandiford@arm.com> + + * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass + definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code. + +2022-01-11 Roger Sayle <roger@nextmovesoftware.com> + Richard Biener <rguenther@suse.de> + + * tree-ssa-math-opts.c (struct widen_mul_stats): Add a + highpart_mults_inserted field. + (convert_mult_to_highpart): New function to convert right shift + of a widening multiply into a MULT_HIGHPART_EXPR. + (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]: + Call new convert_mult_to_highpart function. + (pass_optimize_widening_mul::execute): Add a statistics counter + for tracking "highpart multiplications inserted" events. + +2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com> + + PR target/102239 + * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New + declare. + * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New + function. + * config/rs6000/rs6000.md (*branch_anddi3_dot): New. + +2022-01-11 Olivier Hainque <hainque@adacore.com> + + * gcc.c (driver_handle_option): State --sysroot as + validated. + +2022-01-11 Kewen Lin <linkw@linux.ibm.com> + + * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove + useless related to option -mno-power10. + +2022-01-11 Haochen Jiang <haochen.jiang@intel.com> + + PR target/53652 + * config/i386/sse.md (*andnot<mode>3): Extend predicate of + operands[1] from register_operand to vector_operand. + +2022-01-10 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103861 + * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): + Handle V2QImode. + * config/i386/mmx.md (<sat_plusminus:insn><mode>3): + Use VI1_16_32 mode iterator. + (*eq<mode>3): Ditto. + (*gt<mode>3): Ditto. + (*xop_maskcmp<mode>3): Ditto. + (*xop_maskcmp_uns<mode>3): Ditto. + (vec_cmp<mode><mode>): Ditto. + (vec_cmpu<mode><mode>): Ditto. + +2022-01-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103948 + * tree-vect-generic.c (expand_vector_condition): Return true if + all ones vector is returned for true, all zeros vector for false + and the target defines corresponding vec_cmp{,u}MN named RTX pattern. + +2022-01-10 Paul A. Clarke <pc@us.ibm.com> + + * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv + when _ARCH_PWR10. Use signed types. + (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10. + (_mm_blendv_pd): Likewise. + +2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com> + + * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for + epilogue costing. + * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for + epilogues, unless we are guaranteed that we can't have partial vectors. + * genopinit.c: (partial_vectors_supported): Generate new function. + +2022-01-10 Jakub Jelinek <jakub@redhat.com> + + PR target/102024 + * config/i386/i386.c (classify_argument): Add zero_width_bitfields + argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields, + always ignore them, when seeing other zero sized bitfields, either + set zero_width_bitfields to 1 and ignore it or if equal to 2 process + it. Pass it to recursive calls. Add wrapper + with old arguments and diagnose ABI differences for C structures + with zero width bitfields. Formatting fixes. + +2022-01-10 Richard Sandiford <richard.sandiford@arm.com> + + PR rtl-optimization/98782 + * ira-int.h (ira_soft_conflict): Declare. + * ira-color.c (max_soft_conflict_loop_depth): New constant. + (ira_soft_conflict): New function. + (spill_soft_conflicts): Likewise. + (assign_hard_reg): Use them to handle the case described by + the comment above ira_soft_conflict. + (improve_allocation): Likewise. + * ira.c (check_allocation): Allow allocnos with "soft" conflicts + to share the same register. + +2022-01-10 Richard Sandiford <richard.sandiford@arm.com> + + PR rtl-optimization/98782 + * ira-int.h (ira_caller_save_cost): New function. + (ira_caller_save_loop_spill_p): Likewise. + * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is + cheaper to spill a call-clobbered register throughout a loop rather + than spill it around each individual call. If so, treat all + call-clobbered registers as conflicts and... + (propagate_allocno_info): ...do not propagate call information + from the child to the parent. + * ira-color.c (move_spill_restore): Update accordingly. + * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost. + +2022-01-10 Richard Sandiford <richard.sandiford@arm.com> + + PR rtl-optimization/98782 + * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field. + (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro. + (ira_single_region_allocno_p): New function. + (ira_total_conflict_hard_regs): Likewise. + * ira-build.c (ira_create_allocno): Initialize + ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P. + (ira_propagate_hard_reg_costs): New function. + (propagate_allocno_info): Use it. Try to avoid propagating + hard register conflicts to parent allocnos if we can handle + the conflicts by spilling instead. Limit the propagated + register costs to the cost of spilling throughout the child loop. + * ira-color.c (color_pass): Use ira_single_region_allocno_p to + test whether a child and parent allocno can share the same + register. + (move_spill_restore): Adjust for the new behavior of + propagate_allocno_info. + +2022-01-10 Richard Sandiford <richard.sandiford@arm.com> + + PR rtl-optimization/98782 + * ira-int.h (ira_subloop_allocnos_can_differ_p): New function, + extracted from... + * ira-color.c (color_pass): ...here. + +2022-01-10 Richard Sandiford <richard.sandiford@arm.com> + + PR rtl-optimization/98782 + * ira-color.c (color_pass): Add comments to describe the spill costs. + (move_spill_restore): Likewise. Fix reversed calculation. + +2022-01-10 Richard Sandiford <richard.sandiford@arm.com> + + PR rtl-optimization/98782 + * ira-int.h (ira_loop_border_costs): New class. + * ira-color.c (ira_loop_border_costs::ira_loop_border_costs): + New constructor. + (calculate_allocno_spill_cost): Use ira_loop_border_costs. + (color_pass): Likewise. + (move_spill_restore): Likewise. + +2022-01-10 Eric Botcazou <ebotcazou@adacore.com> + + PR target/103465 + * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET. + +2022-01-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/100359 + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): + Allow non-growing peeling with !allow_peel and UL_ALL. + +2022-01-08 Roger Sayle <roger@nextmovesoftware.com> + + * config/i386/i386-expand.c (ix86_expand_vector_move): Add + special case for TImode to V1TImode moves, going via V2DImode. + +2022-01-08 Jakub Jelinek <jakub@redhat.com> + + PR c++/89074 + * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC + simplification. + +2022-01-08 David Malcolm <dmalcolm@redhat.com> + + * doc/analyzer.texi + (Special Functions for Debugging the Analyzer): Document + __analyzer_dump_escaped. + +2022-01-08 David Malcolm <dmalcolm@redhat.com> + + * doc/analyzer.texi (Other Debugging Techniques): Document + region::is_named_decl_p. + +2022-01-07 Andrew Pinski <apinski@marvell.com> + + PR target/102941 + * config/arm/aarch-common.c (arm_md_asm_adjust): + Use a temp if !REG_P. + +2022-01-07 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute. + (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5. + +2022-01-07 liuhongt <hongtao.liu@intel.com> + + PR rtl-optimization/103750 + * fwprop.c (forward_propagate_into): Allow propagations from + inner loop to outer loop. + +2022-01-07 Roger Sayle <roger@nextmovesoftware.com> + + * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn. + +2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org> + + * config/rs6000/rs6000.md (rs6000_mffscrni): Define. + (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI. + Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand. + +2022-01-07 liuhongt <hongtao.liu@intel.com> + + * config/i386/sse.md + (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to + UNSPEC_PCMP_UNSIGNED. + +2022-01-07 liuhongt <hongtao.liu@intel.com> + + PR target/103753 + * config/i386/i386-expand.c (ix86_expand_vector_set): Not use + gen_avx2_pblendph_1 when elt == 0. + * config/i386/sse.md (avx2_pblendph): Rename to .. + (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI. + (*avx2_pblendw): Rename to .. + (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF. + (avx2_pblendw): Rename to .. + (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF. + (blendsuf): Removed. + (sse4_1_pblend<blendsuf>): Renamed to .. + (sse4_1_pblend<ssemodesuffix>): .. this. + +2022-01-06 H.J. Lu <hjl.tools@gmail.com> + + PR target/103925 + * config/i386/i386.c (ix86_output_indirect_function_return): + Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp. + +2022-01-06 H.J. Lu <hjl.tools@gmail.com> + + PR target/102952 + * config/i386/i386-opts.h (harden_sls): Replace + harden_sls_indirect_branch with harden_sls_indirect_jmp. + * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): + Likewise. + (ix86_output_indirect_jmp): Likewise. + (ix86_output_call_insn): Likewise. + * config/i386/i386.opt: Replace indirect-branch with + indirect-jmp. Replace harden_sls_indirect_branch with + harden_sls_indirect_jmp. + * doc/invoke.texi (-harden-sls=): Replace indirect-branch with + indirect-jmp. + +2022-01-06 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>: + Add %q modifier for operands in general registers. + <MODE_SI>: Add %q modifier for operands in general registers. + * config/i386/i386.md (*movhi_internal): Change type attribute of + xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute + to SImode for non-avx512fp16 targets. + (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8. + * config/i386/mmx.md (*movv2qi_internal): + Ditto for xmm-gpr interunit alternatives 8,9. + +2022-01-06 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.c (riscv_implied_info): Add + vector extensions. + (riscv_ext_version_table): Add version info for vector extensions. + (riscv_ext_flag_table): Add option mask for vector extensions. + * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New. + (MASK_VECTOR_EEW_64): New. + (MASK_VECTOR_EEW_FP_32): New. + (MASK_VECTOR_EEW_FP_64): New. + (MASK_ZVL32B): New. + (MASK_ZVL64B): New. + (MASK_ZVL128B): New. + (MASK_ZVL256B): New. + (MASK_ZVL512B): New. + (MASK_ZVL1024B): New. + (MASK_ZVL2048B): New. + (MASK_ZVL4096B): New. + (MASK_ZVL8192B): New. + (MASK_ZVL16384B): New. + (MASK_ZVL32768B): New. + (MASK_ZVL65536B): New. + (TARGET_ZVL32B): New. + (TARGET_ZVL64B): New. + (TARGET_ZVL128B): New. + (TARGET_ZVL256B): New. + (TARGET_ZVL512B): New. + (TARGET_ZVL1024B): New. + (TARGET_ZVL2048B): New. + (TARGET_ZVL4096B): New. + (TARGET_ZVL8192B): New. + (TARGET_ZVL16384B): New. + (TARGET_ZVL32768B): New. + (TARGET_ZVL65536B): New. + * config/riscv/riscv.opt (Mask(VECTOR)): New. + (riscv_vector_eew_flags): New. + (riscv_zvl_flags): New. + +2022-01-06 Kito Cheng <kito.cheng@sifive.com> + + * common/config/riscv/riscv-common.c + (riscv_subset_list::parse_multiletter_ext): Allow ext. name has + digit. + +2022-01-06 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/103899 + * expr.c (expand_expr_real_1): Add a workaround for bogus uninit + warning by moving context variable to the only spot where it is used + and moving gcc_assert into if body. + +2022-01-06 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/103908 + * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with + asm goto. + +2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com> + + PR target/103622 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + Skip over instances with undefined function types. + +2022-01-05 Andrew Pinski <apinski@marvell.com> + + PR target/103910 + * config/i386/i386.h (x86_mfence): Mark with GTY. + +2022-01-05 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103861 + * config/i386/mmx.md (VI_16_32): New mode iterator. + (VI1_16_32): Ditto. + (mmxvecsize): Handle V2QI mode. + (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3. + Use VI1_16_32 mode iterator. + (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3. + Use VI1_16_32 mode iterator. + (abs<mode>2): Use VI_16_32 mode iterator. + (uavgv2qi3_ceil): New insn pattern. + +2022-01-05 Martin Sebor <msebor@redhat.com> + + * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use + %qs to avoid -Wformat-diag. + +2022-01-05 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103915 + * config/i386/mmx.md (one_cmplv2qi2): Change + alternatives 1,2 type from sselog to sselog1. + +2022-01-05 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103905 + * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of + narrow mode remapped elements for !one_operand_p case. + +2022-01-05 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103816 + * tree-vect-data-refs.c (vect_analyze_group_access_1): Also + check DR_GROUP_GAP compute for overflow and representability. + +2022-01-05 Jakub Jelinek <jakub@redhat.com> + + PR fortran/103691 + * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference + for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value, + it can do unwanted rhs folding like &a[0] into &2.0 etc. + +2022-01-05 Kewen Lin <linkw@linux.ibm.com> + + PR ipa/102059 + * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro. + (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise. + (rs6000_need_ipa_fn_target_info): New function. + (rs6000_update_ipa_fn_target_info): Likewise. + (rs6000_can_inline_p): Adjust for ipa function summary target info. + * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro. + * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function + summary target info. + (analyze_function_body): Adjust for ipa function summary target info + and call hook rs6000_need_ipa_fn_target_info and + rs6000_update_ipa_fn_target_info. + (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary + target info. + (inline_read_section): Likewise. + (ipa_fn_summary_write): Likewise. + * ipa-fnsummary.h (ipa_fn_summary::target_info): New member. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook. + (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise. + * target.def (update_ipa_fn_target_info): New hook. + (need_ipa_fn_target_info): Likewise. + * targhooks.c (default_need_ipa_fn_target_info): New function. + (default_update_ipa_fn_target_info): Likewise. + * targhooks.h (default_update_ipa_fn_target_info): New declare. + (default_need_ipa_fn_target_info): Likewise. + +2022-01-04 Martin Sebor <msebor@redhat.com> + + PR middle-end/99612 + * builtins.c (get_memmodel): Move warning code to + gimple-ssa-warn-access.cc. + (expand_builtin_atomic_compare_exchange): Same. + (expand_ifn_atomic_compare_exchange): Same. + (expand_builtin_atomic_load): Same. + (expand_builtin_atomic_store): Same. + (expand_builtin_atomic_clear): Same. + * doc/extend.texi (__atomic_exchange_n): Update valid memory + models. + * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function. + (struct memmodel_pair): New struct. + (memmodel_name): New function. + (pass_waccess::maybe_warn_memmodel): New function. + (pass_waccess::check_atomic_memmodel): New function. + (pass_waccess::check_atomic_builtin): Handle memory model. + * input.c (expansion_point_location_if_in_system_header): Return + original location if expansion location is in a system header. + +2022-01-04 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103861 + * config/i386/mmx.md (one_cmplv2qi3): New insn pattern. + (one_cmplv2qi3 splitters): New post-reload splitters. + (*andnotv2qi3): New insn pattern. + (andnotv2qi3 splitters): New post-reload splitters. + (<any_logic:code>v2qi3): New insn pattern. + (<any_logic:insn>v2qi3 splitters): New post-reload splitters. + +2022-01-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103800 + * tree-vect-loop.c (vectorizable_phi): Remove assert and + expand comment. + +2022-01-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103690 + * tree-pass.h (tail_merge_optimize): Adjust. + * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether + to re-split critical edges, move CFG cleanup ... + * tree-ssa-pre.c (pass_pre::execute): ... here, before + simple_dce_from_worklist and delay freeing inserted_exprs from + ... + (fini_pre): .. here. + +2022-01-04 Roger Sayle <roger@nextmovesoftware.com> + + * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1. + * config/nvptx/nvptx.md (movbi): Use P1 constraint for true. + (setcc_from_bi): Remove SImode specific pattern. + (setcc<mode>_from_bi): Provide more general HSDIM pattern. + (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions + for sign- and zero-extending BImode predicates to integers. + (setcc_int<mode>): Remove previous (-1-based) instructions. + (cstorebi4): Remove BImode to SImode specific expander. + (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi. + (cstore<mode>4): For both integer and floating point modes. + +2022-01-04 Olivier Hainque <hainque@adacore.com> + + * gcc.c (driver_handle_option): do_save --sysroot. + +2022-01-04 Richard Biener <rguenther@suse.de> + + PR tree-optimization/103864 + PR tree-optimization/103544 + * tree-vect-slp.c (vect_analyze_slp_instance): Exclude + reductions wrapped in conversions from SLP handling. + (vect_analyze_slp): Revert PR103544 change. + +2022-01-04 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/103860 + * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue + uselessly for blocks for which it has been called already. + +2022-01-04 Cui,Lili <lili.cui@intel.com> + + * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values + to Alderlake and Rocketlake. + +2022-01-04 Chung-Lin Tang <cltang@codesourcery.com> + + PR middle-end/103643 + * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire + OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue' + +2022-01-04 liuhongt <hongtao.liu@intel.com> + + PR target/103895 + * config/i386/sse.md (*bit_and_float_vector_all_ones): + Force_reg operand 1 to avoid ICE. + +2022-01-04 Jason Merrill <jason@redhat.com> + + * tree-pretty-print.c (do_niy): Add spc parameter. + (NIY): Pass it. + (print_call_name): Add spc local variable. + +2022-01-03 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103894 + * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint. + (mov<V_32:mode>_internal): Ditto. + (*push<V_32:mode>_rex64): Ditto. + (movmisalign<V_32:mode>): Ditto. + (*push<V_32:mode>_rex64 splitter): Enable for + TARGET_64BIT && TARGET_SSE. + (*push<V_32:mode>2): Remove insn pattern. + +2022-01-03 Andrew Pinski <apinski@marvell.com> + + PR c/33193 + * doc/extend.texi: Extend the documentation about Complex + types for casting and also rewrite the __real__/__imag__ + expression portion to use tables. + Move __builtin_complex to the Complex type section. + +2022-01-03 Jakub Jelinek <jakub@redhat.com> + + PR target/98737 + * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0, + ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0): + New internal fns. + * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE, + ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE, + ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators. + * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0, + expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0, + expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New + functions. + * optabs.def (atomic_add_fetch_cmp_0_optab, + atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab, + atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New + direct optabs. + * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare. + * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function. + * tree-ssa-ccp.c: Include internal-fn.h. + (optimize_atomic_bit_test_and): Add . before internal fn call + in function comment. Change return type from void to bool and + return true only if successfully replaced. + (optimize_atomic_op_fetch_cmp_0): New function. + (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0 + for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and + BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16}, + for *XOR* ones only if optimize_atomic_bit_test_and failed. + * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>, + atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns. + (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1, + atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns. + * doc/md.texi (atomic_add_fetch_cmp_0<mode>, + atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>, + atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document + new named patterns. + +2022-01-03 Richard Biener <rguenther@suse.de> + + PR middle-end/103851 + * tree-cfg.c (move_sese_region_to_fn): Always release SSA names. + +2022-01-03 Jakub Jelinek <jakub@redhat.com> + + PR c++/94716 + * symtab.c: Include fold-const.h. + (symtab_node::equal_address_to): If folding_initializer is true, + handle it like memory_accessed. Simplify. + +2022-01-03 Martin Liska <mliska@suse.cz> + + * doc/extend.texi: Use ; for function declarations. + +2022-01-03 Jakub Jelinek <jakub@redhat.com> + + PR c++/103600 + * symtab.c (symtab_node::equal_address_to): Return 0 if one of + VAR_DECLs has "non overlapping" attribute and rs1 != rs2. + +2022-01-03 Jakub Jelinek <jakub@redhat.com> + + * gcc.c (process_command): Update copyright notice dates. + * gcov-dump.c (print_version): Ditto. + * gcov.c (print_version): Ditto. + * gcov-tool.c (print_version): Ditto. + * gengtype.c (create_file): Ditto. + * doc/cpp.texi: Bump @copying's copyright year. + * doc/cppinternals.texi: Ditto. + * doc/gcc.texi: Ditto. + * doc/gccint.texi: Ditto. + * doc/gcov.texi: Ditto. + * doc/install.texi: Ditto. + * doc/invoke.texi: Ditto. + +2022-01-02 Uroš Bizjak <ubizjak@gmail.com> + + PR target/103861 + * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode. + (VALID_INT_MODE_P): Ditto. + * config/i386/i386.c (ix86_secondary_reload): Handle + V2QImode reloads from SSE register to memory. + (vector_mode_supported_p): Always return true for V2QImode. + * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern. + (*negqi_ext<mode>_2): Ditto. + * config/i386/mmx.md (movv2qi): New expander. + (movmisalignv2qi): Ditto. + (*movv2qi_internal): New insn pattern. + (*pushv2qi2): Ditto. + (negv2qi2 and splitters): Ditto. + (<plusminus:insn>v2qi3 and splitters): Ditto. + +2022-01-02 John David Anglin <danglin@gcc.gnu.org> + + * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access + sync_lock_test_and_set libfunc. Call convert_memory_address to + convert memory address to Pmode. + (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. + + +Copyright (C) 2022 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. |