blob: 9d14da72dff004ac9fba4aa83167c5e5f470d9ac [file] [log] [blame]
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.