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.