platform/upstream/gcc.git
20 months agodoc: Format region pragmas as separate items
Jonathan Wakely [Mon, 14 Nov 2022 09:19:13 +0000 (09:19 +0000)]
doc: Format region pragmas as separate items

This seems consistent with how other paired pragmas are documented in
texinfo, e.g. push_options and pop_options.

gcc/ChangeLog:

* doc/cpp.texi (Pragmas): Use @item and @itemx for region
pragmas.

20 months agoira: Remove duplicate `memset' over `full_costs' from `assign_hard_reg'
Maciej W. Rozycki [Tue, 15 Nov 2022 11:23:02 +0000 (11:23 +0000)]
ira: Remove duplicate `memset' over `full_costs' from `assign_hard_reg'

Remove duplicate clearing of `full_costs' made in `assign_hard_reg',
which has been there since the beginning, i.e. commit 058e97ecf33a
("IRA has been merged into trunk"),
<https://gcc.gnu.org/ml/gcc-patches/2008-08/msg01932.html>.

gcc/
* ira-color.cc (assign_hard_reg): Remove duplicate `memset' over
`full_costs'.

20 months agoaarch64: Add support for widening LDAPR instructions
Andre Vieira [Tue, 15 Nov 2022 09:50:46 +0000 (09:50 +0000)]
aarch64: Add support for widening LDAPR instructions

gcc/ChangeLog:

* config/aarch64/atomics.md
(*aarch64_atomic_load<ALLX:mode>_rcpc_zext): New pattern.
(*aarch64_atomic_load<ALLX:mode>_rcpc_sext): New pattern.

gcc/testsuite/ChangeLog:
* gcc.target/aarch64/ldapr-ext.c: New test.

20 months agoaarch64: Enable the use of LDAPR for load-acquire semantics
Andre Vieira [Tue, 15 Nov 2022 09:50:39 +0000 (09:50 +0000)]
aarch64: Enable the use of LDAPR for load-acquire semantics

This patch enables the use of LDAPR for load-acquire semantics.

2022-11-15  Andre Vieira  <andre.simoesdiasvieira@arm.com>
    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

gcc/ChangeLog:

* 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.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/ldapr.c: New test.

20 months agogcc-changelog: revert temporary rule relaxation
Martin Liska [Tue, 15 Nov 2022 08:34:50 +0000 (09:34 +0100)]
gcc-changelog: revert temporary rule relaxation

contrib/ChangeLog:

* gcc-changelog/git_commit.py: Revert temporary rule
relaxation.

20 months agoDaily bump.
GCC Administrator [Tue, 15 Nov 2022 08:32:29 +0000 (08:32 +0000)]
Daily bump.

20 months agoc++: Fix a typo in function name
Jakub Jelinek [Tue, 15 Nov 2022 07:17:11 +0000 (08:17 +0100)]
c++: Fix a typo in function name

I've noticed I've made a typo in the name of the function.
Fixed thusly.

2022-11-15  Jakub Jelinek  <jakub@redhat.com>

* cp-tree.h (next_common_initial_seqence): Rename to ...
(next_common_initial_sequence): ... this.
* typeck.cc (next_common_initial_seqence): Rename to ...
(next_common_initial_sequence): ... this.
(layout_compatible_type_p): Call next_common_initial_sequence
rather than next_common_initial_seqence.
* semantics.cc (is_corresponding_member_aggr): Likewise.

20 months agolibatomic: Handle AVX+CX16 AMD like Intel for 16b atomics [PR104688]
Jakub Jelinek [Tue, 15 Nov 2022 07:14:45 +0000 (08:14 +0100)]
libatomic: Handle AVX+CX16 AMD like Intel for 16b atomics [PR104688]

We got a response from AMD in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104688#c10
so the following patch starts treating AMD with AVX and CMPXCHG16B
ISAs like Intel by using vmovdqa for atomic load/store in libatomic.
We still don't have confirmation from Zhaoxin and VIA (anything else
with CPUs featuring AVX and CX16?).

2022-11-15  Jakub Jelinek  <jakub@redhat.com>

PR target/104688
* config/x86/init.c (__libat_feat1_init): Don't clear
bit_AVX on AMD CPUs.

20 months agoc++: Add testcase for DR 2392
Jakub Jelinek [Tue, 15 Nov 2022 07:13:06 +0000 (08:13 +0100)]
c++: Add testcase for DR 2392

The testcase from DR 2392 passes, so I assume we don't need to do
anything further for the DR.

2022-11-15  Jakub Jelinek  <jakub@redhat.com>

* g++.dg/DRs/dr2392.C: Add testcase for DR 2392.

20 months agoc++: Implement C++23 P2589R1 - - static operator[]
Jakub Jelinek [Tue, 15 Nov 2022 07:00:21 +0000 (08:00 +0100)]
c++: Implement C++23 P2589R1 - - static operator[]

Here is a patch that implements the static operator[] paper.
One thing that doesn't work properly is the same problem as I've filed
yesterday for static operator() - PR107624 - that side-effects of
the postfix-expression on which the call or subscript operator are
applied are thrown away, I assume we have to add them into COMPOUND_EXPR
somewhere after we find out that the we've chosen a static member function
operator.

2022-11-15  Jakub Jelinek  <jakub@redhat.com>

gcc/c-family/
* c-cppbuiltin.cc (c_cpp_builtins): Bump C++23
__cpp_multidimensional_subscript macro value to 202211L.
gcc/cp/
* decl.cc (grok_op_properties): Implement C++23 P2589R1
- static operator[].  Handle operator[] similarly to operator()
- allow static member functions, but pedwarn on it for C++20 and
older.  Unlike operator(), perform rest of checks on it though for
C++20.
* call.cc (add_operator_candidates): For operator[] with class
typed first parameter, pass that parameter as first_arg and
an adjusted arglist without that parameter.
gcc/testsuite/
* g++.dg/cpp23/subscript9.C: New test.
* g++.dg/cpp23/feat-cxx2b.C: Expect a newer
__cpp_multidimensional_subscript value.
* g++.old-deja/g++.bugs/900210_10.C: Don't expect an error
for C++23 or later.

20 months agoc++: Add testcase for DR 2604
Jakub Jelinek [Tue, 15 Nov 2022 06:57:42 +0000 (07:57 +0100)]
c++: Add testcase for DR 2604

As the following testcase shows, I think we don't inherit template's
attributes into specializations.

2022-11-15  Jakub Jelinek  <jakub@redhat.com>

* g++.dg/DRs/dr2604.C: New test.

20 months agoOptimize VEC_PERM_EXPR with same permutation index and operation
Hongyu Wang [Mon, 17 Jan 2022 05:01:51 +0000 (13:01 +0800)]
Optimize VEC_PERM_EXPR with same permutation index and operation

The sequence
     c1 = VEC_PERM_EXPR (a, a, mask)
     c2 = VEC_PERM_EXPR (b, b, mask)
     c3 = c1 op c2
can be optimized to
     c = a op b
     c3 = VEC_PERM_EXPR (c, c, mask)
for all integer vector operation, and float operation with
full permutation.

gcc/ChangeLog:

PR target/98167
* match.pd: New perm + vector op patterns for int and fp vector.

gcc/testsuite/ChangeLog:

PR target/98167
* gcc.target/i386/pr98167.c: New test.

20 months agoRemove Score documentation
Andrew Pinski [Tue, 15 Nov 2022 04:59:51 +0000 (04:59 +0000)]
Remove Score documentation

Score target support was removed in r5-3909-g3daa7bbf791203
but it looks like some of the documentation was missed.
This removes it.

Committed as obvious after a "make html".

Thanks,
Andrew

gcc/ChangeLog:

* doc/invoke.texi: Remove Score option section.

20 months agoRemove the picoChip documentation
Andrew Pinski [Tue, 15 Nov 2022 04:42:20 +0000 (04:42 +0000)]
Remove the picoChip documentation

PicoChip support was removed in r5-3431-g157e859ffe3b5d but the
documentation was missed it seems.

Committed as obvious after running "make html" to make sure the
building of the documentation still works.

Thanks,
Andrew Pinski

gcc/ChangeLog:

* doc/extend.texi: Remove picoChip builtin section.
* doc/invoke.texi: Remove picoChip option section.

20 months agoRemove documentation for MeP
Andrew Pinski [Tue, 15 Nov 2022 04:35:57 +0000 (04:35 +0000)]
Remove documentation for MeP

MeP support was removed in r7-1614-g0609abdad81e26
but it looks like the documentation for the target
was missed.

Committed as obvious after doing "make html" to
make sure the documentation is fine.

Thanks,
Andrew Pinski

gcc/ChangeLog:

* doc/extend.texi: Remove MeP documentation.
* doc/invoke.texi: Remove MeP Options documentation.

20 months agoFix @opindex for mcall-aixdesc and mcall-openbsd
Andrew Pinski [Tue, 15 Nov 2022 04:16:57 +0000 (04:16 +0000)]
Fix @opindex for mcall-aixdesc and mcall-openbsd

For mcall-aixdesc, the opindex was just m which was wrong.
For mcall-openbsd, the opindex was mcall-netbsd which was wrong.
This two have been broken since the options were added to the documentation
back in r0-92913-g244609a618b094 .

Committed as obvious after a "make html" and checking the options index.

Thanks,
Andrew

gcc/ChangeLog:

* doc/invoke.texi: Fix opindex for mcall-aixdesc and mcall-openbsd.

20 months agoc++: init_priority and SUPPORTS_INIT_PRIORITY [PR107638]
Patrick Palka [Tue, 15 Nov 2022 02:28:58 +0000 (21:28 -0500)]
c++: init_priority and SUPPORTS_INIT_PRIORITY [PR107638]

The commit r13-3706-gd0a492faa6478c for fixing the result of
__has_attribute(init_priority) causes a bootstrap failure on hppa64-hpux
due to assuming the macro SUPPORTS_INIT_PRIORITY expands to a simple
constant, but on this target the macro is defined as

  #define SUPPORTS_INIT_PRIORITY (TARGET_GNU_LD ? 1 : 0)

(where TARGET_GNU_LD expands to something in terms of global_options)
which means we can't use the macro to conditionally exclude the entry
for init_priority when defining the cxx_attribute_table.

So instead of trying to exclude init_priority from the attribute table,
this patch just makes __has_attribute handle init_priority specially.

PR c++/107638

gcc/c-family/ChangeLog:

* c-lex.cc (c_common_has_attribute): Return 1 for init_priority
iff SUPPORTS_INIT_PRIORITY.

gcc/cp/ChangeLog:

* tree.cc (cxx_attribute_table): Don't conditionally exclude
the init_priority entry.
(handle_init_priority_attribute): Remove ATTRIBUTE_UNUSED.
Return error_mark_node if !SUPPORTS_INIT_PRIORITY.

20 months agoc++: Disable -Wdangling-reference when initing T&
Marek Polacek [Fri, 11 Nov 2022 17:01:54 +0000 (12:01 -0500)]
c++: Disable -Wdangling-reference when initing T&

Non-const lvalue references can't bind to a temporary, so the
warning should not be emitted if we're initializing something of that
type.  I'm not disabling the warning when the function itself returns
a non-const lvalue reference, that would regress at least

  const int &r = std::any_cast<int&>(std::any());

in Wdangling-reference2.C where the any_cast returns an int&.

Unfortunately, this patch means we'll stop diagnosing

  int& fn(int&& x) { return static_cast<int&>(x); }
  void test ()
  {
    int &r = fn(4);
  }

where there's a genuine dangling reference.  OTOH, the patch
should suppress false positives with iterators, like:

  auto &candidate = *candidates.begin ();

and arguably that's more important than detecting some relatively
obscure cases.  It's probably not worth it making the warning more
complicated by, for instance, not warning when a fn returns 'int&'
but takes 'const int&' (because then it can't return its argument).

gcc/cp/ChangeLog:

* call.cc (maybe_warn_dangling_reference): Don't warn when initializing
a non-const lvalue reference.

gcc/testsuite/ChangeLog:

* g++.dg/cpp23/elision4.C: Remove dg-warning.
* g++.dg/warn/Wdangling-reference1.C: Turn dg-warning into dg-bogus.
* g++.dg/warn/Wdangling-reference7.C: New test.

20 months agoRevert "RISC-V: Add basic support for the Ventana-VT1 core"
Philipp Tomsich [Mon, 14 Nov 2022 23:50:49 +0000 (00:50 +0100)]
Revert "RISC-V: Add basic support for the Ventana-VT1 core"

This reverts commit b4fca4fc70dc76cf18406fd2b046c834d976aa90.

20 months agoRevert "RISC-V: Add instruction fusion (for ventana-vt1)"
Philipp Tomsich [Mon, 14 Nov 2022 23:50:44 +0000 (00:50 +0100)]
Revert "RISC-V: Add instruction fusion (for ventana-vt1)"

This reverts commit 991cfe5b30cb06611aa03d8c67860552785faba8.

20 months agoc++: only declare satisfied friends
Jason Merrill [Fri, 11 Nov 2022 10:45:02 +0000 (00:45 -1000)]
c++: only declare satisfied friends

A friend declaration can only have constraints if it is defined.  If
multiple instantiations of a class template define the same friend function
signature, it's an error, but that shouldn't happen if it's constrained to
only be declared in one instantiation.

Currently we don't mangle requirements, so the foos all mangle the same and
actually instantiating #1 will break, but for now we can test that they're
considered distinct.

gcc/cp/ChangeLog:

* pt.cc (tsubst_friend_function): Check satisfaction.

gcc/testsuite/ChangeLog:

* g++.dg/cpp2a/concepts-friend11.C: New test.

20 months agoira: Fix `create_insn_allocnos' `outer' parameter documentation
Maciej W. Rozycki [Mon, 14 Nov 2022 22:02:11 +0000 (22:02 +0000)]
ira: Fix `create_insn_allocnos' `outer' parameter documentation

The parameter of `create_insn_allocnos' for any parent expression of `x'
has always been called `outer' rather than `parent', just as added by
commit d1bb282efbf9 ("Fix for "FAIL: tmpdir-gcc.dg-struct-layout-1/t028
c_compat_x_tst.o compile, (internal compiler error)""),
<https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02611.html>.  Correct
inline documentation accordingly.

gcc/
* ira-build.cc (create_insn_allocnos): Fix documentation.

20 months agomiddle-end: Fix addsub patch removing return statements
Tamar Christina [Mon, 14 Nov 2022 20:09:07 +0000 (20:09 +0000)]
middle-end: Fix addsub patch removing return statements

My recent patch had return statements in the match.pd expressions
which were recently outlawed.. Unfornately I didn't rebase this
patch before committing so this broke the build.

I've just reflowed the conditions to avoid the returns.

gcc/ChangeLog:

* match.pd: Remove returns.

20 months agoriscv: bitmanip: add orc.b as an unspec
Philipp Tomsich [Thu, 27 May 2021 15:20:05 +0000 (17:20 +0200)]
riscv: bitmanip: add orc.b as an unspec

As a basis for optimized string functions (e.g., the by-pieces
implementations), we need orc.b available.  This adds orc.b as an
unspec, so we can expand to it.

gcc/ChangeLog:

* config/riscv/bitmanip.md (orcb<mode>2): Add orc.b as an
  unspec.
* config/riscv/riscv.md: Add UNSPEC_ORC_B.

Signed-off-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
20 months agomiddle-end: Fix can_special_div_by_const doc.
Tamar Christina [Mon, 14 Nov 2022 18:50:39 +0000 (18:50 +0000)]
middle-end: Fix can_special_div_by_const doc.

This commits the typo fix so it matches the tm.texi file and fix the bootstrap.

gcc/ChangeLog:

* target.def: Fix typo.

20 months agoRISC-V: Add instruction fusion (for ventana-vt1)
Philipp Tomsich [Sun, 14 Nov 2021 21:56:19 +0000 (22:56 +0100)]
RISC-V: Add instruction fusion (for ventana-vt1)

The Ventana VT1 core supports quad-issue and instruction fusion.
This implemented TARGET_SCHED_MACRO_FUSION_P to keep fusible sequences
together and adds idiom matcheing for the supported fusion cases.

gcc/ChangeLog:

* 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.

20 months agoRISC-V: Add basic support for the Ventana-VT1 core
Philipp Tomsich [Sun, 14 Nov 2021 21:56:11 +0000 (22:56 +0100)]
RISC-V: Add basic support for the Ventana-VT1 core

The Ventana-VT1 core is compatible with rv64gc, Zb[abcs], Zifenci and
XVentanaCondOps.
This introduces a placeholder -mcpu=ventana-vt1, so tooling and
scripts don't need to change once full support (pipeline, tuning,
etc.) will become public later.

gcc/ChangeLog:

* 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.

20 months agoaarch64: Add support for +cssc
Kyrylo Tkachov [Mon, 14 Nov 2022 18:05:26 +0000 (18:05 +0000)]
aarch64: Add support for +cssc

This patch adds codegen for FEAT_CSSC from the 2022 Architecture extensions.
It fits various existing optabs in GCC quite well.
There are instructions for scalar signed/unsigned min/max, abs, ctz, popcount.
We have expanders for these already, so they are wired up to emit single-insn
patterns for the new TARGET_CSSC.

These instructions are enabled by the +cssc command-line extension.
Bootstrapped and tested on aarch64-none-linux-gnu.

gcc/ChangeLog:

* 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.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/cssc_1.c: New test.
* gcc.target/aarch64/cssc_2.c: New test.
* gcc.target/aarch64/cssc_3.c: New test.
* gcc.target/aarch64/cssc_4.c: New test.
* gcc.target/aarch64/cssc_5.c: New test.

20 months agoAArch64: Add SVE2 implementation for pow2 bitmask division
Tamar Christina [Mon, 14 Nov 2022 15:53:42 +0000 (15:53 +0000)]
AArch64: Add SVE2 implementation for pow2 bitmask division

In plenty of image and video processing code it's common to modify pixel values
by a widening operation and then scale them back into range by dividing by 255.

This patch adds an named function to allow us to emit an optimized sequence
when doing an unsigned division that is equivalent to:

   x = y / (2 ^ (bitsize (y)/2)-1)

For SVE2 this means we generate for:

void draw_bitmap1(uint8_t* restrict pixel, uint8_t level, int n)
{
  for (int i = 0; i < (n & -16); i+=1)
    pixel[i] = (pixel[i] * level) / 0xff;
}

the following:

        mov     z3.b, #1
.L3:
        ld1b    z0.h, p0/z, [x0, x3]
        mul     z0.h, p1/m, z0.h, z2.h
        addhnb  z1.b, z0.h, z3.h
        addhnb  z0.b, z0.h, z1.h
        st1b    z0.h, p0, [x0, x3]
        inch    x3
        whilelo p0.h, w3, w2
        b.any   .L3

instead of:

.L3:
        ld1b    z0.h, p1/z, [x0, x3]
        mul     z0.h, p0/m, z0.h, z1.h
        umulh   z0.h, p0/m, z0.h, z2.h
        lsr     z0.h, z0.h, #7
        st1b    z0.h, p1, [x0, x3]
        inch    x3
        whilelo p1.h, w3, w2
        b.any   .L3

Which results in significantly faster code.

gcc/ChangeLog:

* config/aarch64/aarch64-sve2.md (@aarch64_bitmask_udiv<mode>3): New.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/sve2/div-by-bitmask_1.c: New test.

20 months agoAArch64: Add implementation for pow2 bitmask division.
Tamar Christina [Mon, 14 Nov 2022 15:52:26 +0000 (15:52 +0000)]
AArch64: Add implementation for pow2 bitmask division.

This adds an implementation for the new optab for unsigned pow2 bitmask for
AArch64.

The implementation rewrites:

   x = y / (2 ^ (sizeof (y)/2)-1

into e.g. (for bytes)

   (x + ((x + 257) >> 8)) >> 8

where it's required that the additions be done in double the precision of x
such that we don't lose any bits during an overflow.

Essentially the sequence decomposes the division into doing two smaller
divisions, one for the top and bottom parts of the number and adding the results
back together.

To account for the fact that shift by 8 would be division by 256 we add 1 to
both parts of x such that when 255 we still get 1 as the answer.

Because the amount we shift are half the original datatype we can use the
halfing instructions the ISA provides to do the operation instead of using
actual shifts.

For AArch64 this means we generate for:

void draw_bitmap1(uint8_t* restrict pixel, uint8_t level, int n)
{
  for (int i = 0; i < (n & -16); i+=1)
    pixel[i] = (pixel[i] * level) / 0xff;
}

the following:

movi    v3.16b, 0x1
umull2  v1.8h, v0.16b, v2.16b
umull   v0.8h, v0.8b, v2.8b
addhn   v5.8b, v1.8h, v3.8h
addhn   v4.8b, v0.8h, v3.8h
uaddw   v1.8h, v1.8h, v5.8b
uaddw   v0.8h, v0.8h, v4.8b
uzp2    v0.16b, v0.16b, v1.16b

instead of:

umull   v2.8h, v1.8b, v5.8b
umull2  v1.8h, v1.16b, v5.16b
umull   v0.4s, v2.4h, v3.4h
umull2  v2.4s, v2.8h, v3.8h
umull   v4.4s, v1.4h, v3.4h
umull2  v1.4s, v1.8h, v3.8h
uzp2    v0.8h, v0.8h, v2.8h
uzp2    v1.8h, v4.8h, v1.8h
shrn    v0.8b, v0.8h, 7
shrn2   v0.16b, v1.8h, 7

Which results in significantly faster code.

Thanks for Wilco for the concept.

gcc/ChangeLog:

* config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): New.
* config/aarch64/aarch64.cc (aarch64_vectorize_can_special_div_by_constant): New.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/div-by-bitmask.c: New test.

20 months agomiddle-end: Support not decomposing specific divisions during vectorization.
Tamar Christina [Mon, 14 Nov 2022 15:43:48 +0000 (15:43 +0000)]
middle-end: Support not decomposing specific divisions during vectorization.

In plenty of image and video processing code it's common to modify pixel values
by a widening operation and then scale them back into range by dividing by 255.

e.g.:

   x = y / (2 ^ (bitsize (y)/2)-1

This patch adds a new target hook can_special_div_by_const, similar to
can_vec_perm which can be called to check if a target will handle a particular
division in a special way in the back-end.

The vectorizer will then vectorize the division using the standard tree code
and at expansion time the hook is called again to generate the code for the
division.

Alot of the changes in the patch are to pass down the tree operands in all paths
that can lead to the divmod expansion so that the target hook always has the
type of the expression you're expanding since the types can change the
expansion.

gcc/ChangeLog:

* 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.

gcc/testsuite/ChangeLog:

* gcc.dg/vect/vect-div-bitmask-1.c: New test.
* gcc.dg/vect/vect-div-bitmask-2.c: New test.
* gcc.dg/vect/vect-div-bitmask-3.c: New test.
* gcc.dg/vect/vect-div-bitmask.h: New file.

20 months agomiddle-end: Add optimized float addsub without needing VEC_PERM_EXPR.
Tamar Christina [Mon, 14 Nov 2022 15:42:42 +0000 (15:42 +0000)]
middle-end: Add optimized float addsub without needing VEC_PERM_EXPR.

For IEEE 754 floating point formats we can replace a sequence of alternative
+/- with fneg of a wider type followed by an fadd.  This eliminated the need for
using a permutation.  This patch adds a math.pd rule to recognize and do this
rewriting.

For

void f (float *restrict a, float *restrict b, float *res, int n)
{
   for (int i = 0; i < (n & -4); i+=2)
    {
      res[i+0] = a[i+0] + b[i+0];
      res[i+1] = a[i+1] - b[i+1];
    }
}

we generate:

.L3:
        ldr     q1, [x1, x3]
        ldr     q0, [x0, x3]
        fneg    v1.2d, v1.2d
        fadd    v0.4s, v0.4s, v1.4s
        str     q0, [x2, x3]
        add     x3, x3, 16
        cmp     x3, x4
        bne     .L3

now instead of:

.L3:
        ldr     q1, [x0, x3]
        ldr     q2, [x1, x3]
        fadd    v0.4s, v1.4s, v2.4s
        fsub    v1.4s, v1.4s, v2.4s
        tbl     v0.16b, {v0.16b - v1.16b}, v3.16b
        str     q0, [x2, x3]
        add     x3, x3, 16
        cmp     x3, x4
        bne     .L3

Thanks to George Steed for the idea.

gcc/ChangeLog:

* generic-match-head.cc: Include langooks.
* gimple-match-head.cc: Likewise.
* match.pd: Add fneg/fadd rule.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/simd/addsub_1.c: New test.
* gcc.target/aarch64/sve/addsub_1.c: New test.

20 months agolibstdc++: Fix installation of python files for debug lib
Jonathan Wakely [Mon, 14 Nov 2022 10:37:58 +0000 (10:37 +0000)]
libstdc++: Fix installation of python files for debug lib

libstdc++-v3/ChangeLog:

* python/Makefile.am (install-data-local): Use mkdirs_p for debug
libdir.
* python/Makefile.in: Regenerate.

20 months agoarm: Add support for Cortex-X1C CPU.
Srinath Parvathaneni [Mon, 14 Nov 2022 15:45:59 +0000 (15:45 +0000)]
arm: Add support for Cortex-X1C CPU.

This patch adds the -mcpu support for the Arm Cortex-X1C CPU.

gcc/ChangeLog:

2022-11-09  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.

gcc/testsuite/ChangeLog:

2022-11-09  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

* gcc.target/arm/multilib.exp: Add tests for Cortex-X1C.

20 months agoaarch64: Add support for Cortex-X3 CPU.
Srinath Parvathaneni [Mon, 14 Nov 2022 15:18:26 +0000 (15:18 +0000)]
aarch64: Add support for Cortex-X3 CPU.

This patch adds support for Cortex-X3 CPU.

gcc/ChangeLog:

2022-11-09  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.

20 months agoFix @opindex for m80387
Andrew Pinski [Mon, 14 Nov 2022 15:21:36 +0000 (15:21 +0000)]
Fix @opindex for m80387

I noticed that the opindex for -m80387
option was wrong. It was just 80387 which
was not consistent with the rest of the options.
This fixes that and uses "@opindex m80387".

Committed as obvious after  "make html" and checking
the option index page.

gcc/ChangeLog:

* doc/invoke.texi: Fix @opindex
for m80387 option.

20 months agoFix some @opindex with - in the front
Andrew Pinski [Mon, 14 Nov 2022 15:02:10 +0000 (15:02 +0000)]
Fix some @opindex with - in the front

I noticed this during the conversion of the docs
to sphinx that some options in the option index had a -
in the front of it for the texinfo docs. When the sphinx
conversion was reverted, I thought I would fix the texinfo
documentation for these options.

Committed as obvious after doing "make html" to check
the resulting option index page.

gcc/ChangeLog:

* doc/invoke.texi: Remove the front - from
some @opindex.

20 months agoaarch64: Add support for Ampere-1A (-mcpu=ampere1a) CPU
Philipp Tomsich [Mon, 7 Nov 2022 13:22:21 +0000 (14:22 +0100)]
aarch64: Add support for Ampere-1A (-mcpu=ampere1a) CPU

This patch adds support for Ampere-1A CPU:
 - recognize the name of the core and provide detection for -mcpu=native,
 - updated extra_costs,
 - adds a new fusion pair for (A+B+1 and A-B-1).

Ampere-1A and Ampere-1 have more timing difference than the extra
costs indicate, but these don't propagate through to the headline
items in our extra costs (e.g. the change in latency for scalar sqrt
doesn't have a corresponding table entry).

gcc/ChangeLog:

* 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.

20 months agoada: Silence CodePeer false positive
Boris Yakobowski [Wed, 9 Nov 2022 13:02:00 +0000 (14:02 +0100)]
ada: Silence CodePeer false positive

gcc/ada/

* sem_case.adb: silence false positive warning emitted by CodePeer
on predefined equality for type Choice_Range_Info.

20 months agoada: Remove incorrect comments about initialization
Bob Duff [Mon, 7 Nov 2022 14:25:31 +0000 (09:25 -0500)]
ada: Remove incorrect comments about initialization

Cleanup only; no change in behavior.

This patch removes and rewrites some comments regarding initialization.
These initializions are needed, so there's no need to apologize for
initializing these variables.

Note that -gnatVa is not relevant; reads of uninitialized variables
are wrong, whether or not we get caught.

gcc/ada/

* atree.ads: Remove some comments.
* err_vars.ads: Likewise.
* scans.ads: Likewise.
* sinput.ads: Likewise.
* checks.ads: Likewise. Also add a "???" comment indicating an
obsolete comment that is too difficult to correct at this time.
* sem_attr.adb: Minor comment rewrite.

20 months agoada: Flag unsupported dispatching constructor calls
Javier Miranda [Mon, 7 Nov 2022 09:28:56 +0000 (09:28 +0000)]
ada: Flag unsupported dispatching constructor calls

gcc/ada/

* exp_intr.adb
(Expand_Dispatching_Constructor_Call): Improve warning message.
* freeze.adb
(Check_No_Parts_Violations): Improve error message.

20 months agoada: hardcfr docs: add optional checkpoints
Alexandre Oliva [Thu, 6 Oct 2022 05:23:48 +0000 (02:23 -0300)]
ada: hardcfr docs: add optional checkpoints

Previously, control flow redundancy only checked the visited bitmap
against the control flow graph at return points and before mandatory
tail calls, missing various other possibilities of exiting a
subprogram, such as by raising or propagating exceptions, and calling
noreturn functions.  The checks inserted before returns also prevented
potential tail-call optimizations.

This incremental change introduces options to control checking at each
of these previously-missed checkpoints.  Unless disabled, a cleanup is
introduced to check when an exceptions escapes a subprogram.  To avoid
disrupting sibcall optimizations, when they are enabled, checks are
introduced before calls whose results are immediately returned,
whether or not they are ultimately optimized.  If enabled, checks are
introduced before noreturn calls and exception raises, or only before
nothrow noreturn calls.

Add examples of code transformations to the GNAT RM.

gcc/ada/

* doc/gnat_rm/security_hardening_features.rst: Document optional
hardcfr checkpoints.
* gnat_rm.texi: Regenerate.
* gnat_ugn.texi: Regenerate.

20 months agoada: Crash on applying 'Pos to expression of a type derived from a formal type
Gary Dismukes [Wed, 2 Nov 2022 23:02:34 +0000 (19:02 -0400)]
ada: Crash on applying 'Pos to expression of a type derived from a formal type

The compiler crashes when trying to do a static check for a range violation
in a type conversion of a Pos attribute applied to a prefix of a type derived
from a generic formal discrete type. This optimization was suppressed in the
case of formal types, because the upper bound may not be known, but it also
needs to be suppressed for types derived from formal types.

gcc/ada/

* checks.adb
(Apply_Type_Conversion_Checks): Apply Root_Type to the type of the
prefix of a Pos attribute when checking whether the type is a
formal discrete type.

20 months agoada: Fix non-capturing parentheses handling
Ronan Desplanques [Mon, 31 Oct 2022 17:08:37 +0000 (18:08 +0100)]
ada: Fix non-capturing parentheses handling

Before this patch, non-capturingly parenthesized expressions with more
than one branch were processed incorrectly when part of a branch
followed by another branch. This patch fixes this by aligning the
handling of non-capturing parentheses with the handling of regular
parentheses.

gcc/ada/

* libgnat/s-regpat.adb
(Parse): Fix handling of non-capturing parentheses.

20 months agoada: Fix error on SPARK_Mode on library-level separate body
Yannick Moy [Mon, 31 Oct 2022 10:33:12 +0000 (11:33 +0100)]
ada: Fix error on SPARK_Mode on library-level separate body

When applying explicitly SPARK_Mode on a separate library-level spec
and body for which a contract needs to be checked, compilation with
-gnata was failing on a spurious error related to SPARK_Mode
placement. Now fixed.

gcc/ada/

* sem_prag.adb (Analyze_Pragma): Add special case for the special
local subprogram created for contracts.

20 months agoada: Adjust locations in aspects on generic formal subprograms
Piotr Trojanek [Fri, 28 Oct 2022 20:15:53 +0000 (22:15 +0200)]
ada: Adjust locations in aspects on generic formal subprograms

When instantiating a generic that has formal subprogram parameter with
contracts, e.g.:

  generic
    with procedure P with Pre => ..., Post => ...;
  ...

we create a wrapper that executes Pre/Post contracts before/after
calling the actual subprogram. Errors emitted for these contracts
will now have locations of the instance and not just of the generic.

gcc/ada/

* sem_ch12.adb (Build_Subprogram_Wrappers): Adjust slocs of the
copied aspects, just like we do in Build_Class_Wide_Expression for
inherited class-wide contracts.

20 months agoada: Fix style in code for generic formal subprograms with contracts
Piotr Trojanek [Fri, 28 Oct 2022 20:10:25 +0000 (22:10 +0200)]
ada: Fix style in code for generic formal subprograms with contracts

Code cleanup related to expansion generic formal subprograms with
contracts for GNATprove.

gcc/ada/

* inline.adb (Replace_Formal): Tune whitespace.
* sem_ch12.adb (Check_Overloaded_Formal_Subprogram): Refine type
of a formal parameter and local variable; this routine operates on
nodes and not entities.
* sem_ch12.ads: Tune whitespace.

20 months agoada: Expand generic formal subprograms with contracts for GNATprove
Piotr Trojanek [Fri, 28 Oct 2022 18:28:45 +0000 (20:28 +0200)]
ada: Expand generic formal subprograms with contracts for GNATprove

In GNATprove mode generic formal subprograms with Pre/Post contracts are
now expanded into wrappers, just like in ordinary compilation.

gcc/ada/

* sem_ch12.adb (Analyze_Associations): Expand wrappers for
GNATprove.

20 months agoada: Enable Support_Atomic_Primitives on QNX and RTEMS
Patrick Bernardi [Fri, 28 Oct 2022 21:11:16 +0000 (17:11 -0400)]
ada: Enable Support_Atomic_Primitives on QNX and RTEMS

QNX and RTEMS support 64-bit atomic primitives.

gcc/ada/

* libgnat/system-qnx-arm.ads: Set Support_Atomic_Primitives to
True.
* libgnat/system-rtems.ads: Add Support_Atomic_Primitives.

20 months agoada: Improve location of error messages in instantiations
Yannick Moy [Thu, 27 Oct 2022 10:54:22 +0000 (12:54 +0200)]
ada: Improve location of error messages in instantiations

When flag -gnatdF is used, source code lines are displayed to point
the location of errors. The code of the instantiation was displayed
in case of errors inside generic instances, which was not precise.
Now the code inside the generic is displayed.

gcc/ada/

* errout.adb (Error_Msg_Internal): Store span for Optr field, and
adapt to new type of Optr.
(Finalize. Output_JSON_Message, Remove_Warning_Messages): Adapt to
new type of Optr.
(Output_Messages): Use Optr instead of Sptr to display code
snippet closer to error.
* erroutc.adb (dmsg): Adapt to new type of Optr.
* erroutc.ads (Error_Msg_Object): Make Optr a span like Sptr.
* errutil.adb (Error_Msg): Likewise.

20 months agoada: Remove gnatcheck reference
Arnaud Charlet [Thu, 27 Oct 2022 09:27:52 +0000 (09:27 +0000)]
ada: Remove gnatcheck reference

Since gnatcheck is no longer bundled with gnat

gcc/ada/

* doc/gnat_ugn/gnat_utility_programs.rst: Remove gnatcheck
reference.

20 months agoremove duplicate match.pd patterns
Richard Biener [Mon, 14 Nov 2022 13:33:43 +0000 (14:33 +0100)]
remove duplicate match.pd patterns

The following merges match.pd patterns that cause genmatch complaints
about duplicates when in-order isn't enforced (you have to edit
genmatch.cc to do a full duplicate check).

* match.pd: Remove duplicates.

20 months agoFortran: fix treatment of character, value, optional dummy arguments [PR107444]
Harald Anlauf [Sun, 13 Nov 2022 20:53:58 +0000 (21:53 +0100)]
Fortran: fix treatment of character, value, optional dummy arguments [PR107444]

gcc/fortran/ChangeLog:

PR fortran/107444
* trans-openmp.cc (gfc_omp_check_optional_argument): Adjust to change
of prefix of internal symbol for presence status to '.'.

20 months agolibstdc++: Fix install-debug makefile target
Bernhard Reutner-Fischer [Mon, 14 Nov 2022 10:13:47 +0000 (10:13 +0000)]
libstdc++: Fix install-debug makefile target

This target should have been changed by r13-3918-gba7551485bc576 and now
fails.

libstdc++-v3/ChangeLog:

* src/Makefile.am (install-debug): Remove use of $(debugdir).
* src/Makefile.in: Regenerate.

20 months agodoc: port new documentation from Sphinx
Martin Liska [Mon, 14 Nov 2022 02:20:25 +0000 (03:20 +0100)]
doc: port new documentation from Sphinx

gcc/ChangeLog:

* doc/contrib.texi: Port from Sphinx.
* doc/cpp.texi: Likewise.
* doc/install.texi: Likewise.
* doc/invoke.texi: Likewise.

gcc/fortran/ChangeLog:

* gfortran.texi: Port from Sphinx.

20 months agoRevert "sphinx: copy files from texi2rst-generated repository"
Martin Liska [Sun, 13 Nov 2022 21:03:35 +0000 (22:03 +0100)]
Revert "sphinx: copy files from texi2rst-generated repository"

This reverts commit c63539ffe4c0e327337a1a51f638d9c8c958cb26.

20 months agoPartially revert 7e3ce73849fef8b50efb427ec96f317e88c0e6cf
Martin Liska [Sun, 13 Nov 2022 21:01:20 +0000 (22:01 +0100)]
Partially revert 7e3ce73849fef8b50efb427ec96f317e88c0e6cf

gcc/ChangeLog:

* doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: Revert.

20 months agoRevert "sphinx: update baseconf.py file"
Martin Liska [Sun, 13 Nov 2022 20:59:59 +0000 (21:59 +0100)]
Revert "sphinx: update baseconf.py file"

This reverts commit 8dc319eb495d6fa742a265dfa12dc75bf3576d07.

20 months agoRevert "sphinx: port .def files to RST"
Martin Liska [Sun, 13 Nov 2022 20:59:57 +0000 (21:59 +0100)]
Revert "sphinx: port .def files to RST"

This reverts commit c8874c5e8a7cee2933923c40f4933602da2022fb.

20 months agoRevert "sphinx: use tm.rst.in file in target macros"
Martin Liska [Sun, 13 Nov 2022 20:59:48 +0000 (21:59 +0100)]
Revert "sphinx: use tm.rst.in file in target macros"

This reverts commit 8f2b513c28ae24f0204b3b438747bbd1cfebba0a.

20 months agoRevert "sphinx: support Sphinx in build system"
Martin Liska [Sun, 13 Nov 2022 20:59:42 +0000 (21:59 +0100)]
Revert "sphinx: support Sphinx in build system"

This reverts commit 41a45cba0021f597dbfdec1f782026215ea21726.

20 months agoRevert "sphinx: add tm.rst.in"
Martin Liska [Sun, 13 Nov 2022 20:59:37 +0000 (21:59 +0100)]
Revert "sphinx: add tm.rst.in"

This reverts commit 564a805f9f08b4346a854ab8dca2e5b561a7a28e.

20 months agoRevert "sphinx: remove texinfo files"
Martin Liska [Sun, 13 Nov 2022 20:59:29 +0000 (21:59 +0100)]
Revert "sphinx: remove texinfo files"

This reverts commit 54ca4eef58661a7d7a511e2bbbe309bde1732abf.

20 months agoRevert "sphinx: jit: port libgccjit to shared Sphinx"
Martin Liska [Sun, 13 Nov 2022 20:59:20 +0000 (21:59 +0100)]
Revert "sphinx: jit: port libgccjit to shared Sphinx"

This reverts commit 94246daa3efba88d4ae6619f24d737c01ba3dc89.

20 months agoRevert "sphinx: ada: port to Sphinx"
Martin Liska [Sun, 13 Nov 2022 20:59:18 +0000 (21:59 +0100)]
Revert "sphinx: ada: port to Sphinx"

This reverts commit 0a543515957ff47feba739e6f71062fb2fb99125.

20 months agoRevert "sphinx: use proper lexers for target macros"
Martin Liska [Sun, 13 Nov 2022 20:59:12 +0000 (21:59 +0100)]
Revert "sphinx: use proper lexers for target macros"

This reverts commit c0eb1a3b7c944dd7cd5a4056a817a25aa8ce2569.

20 months agoRevert "sphinx: add --with-sphinx-build"
Martin Liska [Sun, 13 Nov 2022 20:59:03 +0000 (21:59 +0100)]
Revert "sphinx: add --with-sphinx-build"

This reverts commit 1f5a932e89b0c2c4a7af7f849ca2e2e3dbf329e0.

20 months agoRevert "sphinx: fix cross manual references"
Martin Liska [Sun, 13 Nov 2022 20:59:01 +0000 (21:59 +0100)]
Revert "sphinx: fix cross manual references"

This reverts commit 72318642439703bba8c83423d4706e06444254d6.

20 months agoRevert "sphinx: do not use tm.rst.in with empty content"
Martin Liska [Sun, 13 Nov 2022 20:58:54 +0000 (21:58 +0100)]
Revert "sphinx: do not use tm.rst.in with empty content"

This reverts commit 66f55038a4238ce5fb1f198feb552653eb472d61.

20 months agoRevert "sphinx: sync latest changes"
Martin Liska [Sun, 13 Nov 2022 20:58:45 +0000 (21:58 +0100)]
Revert "sphinx: sync latest changes"

This reverts commit 8857a1e350cf34c4ac06429ec4cb97228489dd07.

20 months agoRevert "sphinx: support installation if sphinx-build is missing"
Martin Liska [Sun, 13 Nov 2022 20:58:39 +0000 (21:58 +0100)]
Revert "sphinx: support installation if sphinx-build is missing"

This reverts commit e5821d3f62b5bf532db1be661459b7553a956fa2.

20 months agoRevert "sphinx: add update_web_docs_git.py script"
Martin Liska [Sun, 13 Nov 2022 20:58:31 +0000 (21:58 +0100)]
Revert "sphinx: add update_web_docs_git.py script"

This reverts commit 6373b1fdf75ea0908dfaebdbfc54d8b55b08d409.

20 months agoRevert "sphinx: fix building if sphinx-build is missing"
Martin Liska [Sun, 13 Nov 2022 20:58:22 +0000 (21:58 +0100)]
Revert "sphinx: fix building if sphinx-build is missing"

This reverts commit 1f9c79367e136e0ca5b775562e6111e1a0d0046f.

20 months agoRevert "avr: sphinx: port gen-avr-mmcu to RST"
Martin Liska [Sun, 13 Nov 2022 20:58:13 +0000 (21:58 +0100)]
Revert "avr: sphinx: port gen-avr-mmcu to RST"

This reverts commit 79f1313608b468fd6a0f329d2e265fa67bba7cc1.

20 months agoRevert "sphinx: simplify default in baseconf.py."
Martin Liska [Sun, 13 Nov 2022 20:58:06 +0000 (21:58 +0100)]
Revert "sphinx: simplify default in baseconf.py."

This reverts commit 8d7a55b7f4ce37ecc869bd31cadc3f9e059e2f44.

20 months agoRevert "sphinx: update crontab with new script"
Martin Liska [Sun, 13 Nov 2022 20:57:56 +0000 (21:57 +0100)]
Revert "sphinx: update crontab with new script"

This reverts commit d05a423c1e7b81021a1b6bee93db31a903d87667.

20 months agoRevert "sphinx: update diagnostics URLs"
Martin Liska [Sun, 13 Nov 2022 20:57:36 +0000 (21:57 +0100)]
Revert "sphinx: update diagnostics URLs"

This reverts commit 9c3bc557995463fe1dcc37ec503af780a6c1a341.

20 months agoRevert "docs: fix: WARNING: Parsing of expression failed. Using fallback parser."
Martin Liska [Sun, 13 Nov 2022 20:57:31 +0000 (21:57 +0100)]
Revert "docs: fix: WARNING: Parsing of expression failed. Using fallback parser."

This reverts commit a305ac87b46e263a3bc0c886f9dfddf2664f6af8.

20 months agoRevert "sphinx: add missing trailing newline"
Martin Liska [Sun, 13 Nov 2022 20:57:11 +0000 (21:57 +0100)]
Revert "sphinx: add missing trailing newline"

This reverts commit 3ed1b4ce7c9bdf8c777d12da0f5fe4cae8ba7c8e.

20 months agoRevert "docs: fix links pointing to gcc.gnu.org/install"
Martin Liska [Sun, 13 Nov 2022 20:57:03 +0000 (21:57 +0100)]
Revert "docs: fix links pointing to gcc.gnu.org/install"

This reverts commit 0b3d926d796050468b8a844e5fb8c20bda741c26.

20 months agoRevert "docs: create sources tarball"
Martin Liska [Sun, 13 Nov 2022 20:56:51 +0000 (21:56 +0100)]
Revert "docs: create sources tarball"

This reverts commit 52eedc1fa3d211f29196eed60e11e6a8738329c2.

20 months agoRevert "sphinx: add missing HAS_SPHINX_BUILD"
Martin Liska [Sun, 13 Nov 2022 20:56:44 +0000 (21:56 +0100)]
Revert "sphinx: add missing HAS_SPHINX_BUILD"

This reverts commit 8f5aa130fa61637baec476119e72849f7e3f8c67.

20 months agoRevert "docs: Add missing variable name in example"
Martin Liska [Sun, 13 Nov 2022 20:56:34 +0000 (21:56 +0100)]
Revert "docs: Add missing variable name in example"

This reverts commit d8c105810285ad97e8af31a328c8a75d4adc5a19.

20 months agoRevert "doc: Use a separate directory for new modules we add to PATH"
Martin Liska [Sun, 13 Nov 2022 20:56:21 +0000 (21:56 +0100)]
Revert "doc: Use a separate directory for new modules we add to PATH"

This reverts commit 70f1c41061b2b55ed4cdc2e83c7cf326c7ebe7a4.

20 months agoRevert "doc: Modernize baseconf.py."
Martin Liska [Sun, 13 Nov 2022 20:56:06 +0000 (21:56 +0100)]
Revert "doc: Modernize baseconf.py."

This reverts commit dd31c6923fbe8352f7efa830c47c6d0ab31cfce8.

20 months agoRevert "maintainer-scripts: fix superfluous 'sh' for Python script"
Martin Liska [Sun, 13 Nov 2022 20:55:58 +0000 (21:55 +0100)]
Revert "maintainer-scripts: fix superfluous 'sh' for Python script"

This reverts commit 9072763f4f17e600a980ff510b2baf8ad8ada1b5.

20 months agoRevert "sphinx: add missing newline for conf.py files."
Martin Liska [Sun, 13 Nov 2022 20:55:45 +0000 (21:55 +0100)]
Revert "sphinx: add missing newline for conf.py files."

This reverts commit bd044dae51caea3c641f86ec5cb0ebccf7e06de7.

20 months agoRevert "docs: move label directly before title"
Martin Liska [Sun, 13 Nov 2022 20:55:34 +0000 (21:55 +0100)]
Revert "docs: move label directly before title"

This reverts commit 740cf7d6ab266cf4249fc5c247187622cb6a2c8f.

20 months agoPartially revert 5c6546ca7d8cab1f1c129f5b55f709e2ceee0f94
Martin Liska [Sun, 13 Nov 2022 20:55:18 +0000 (21:55 +0100)]
Partially revert 5c6546ca7d8cab1f1c129f5b55f709e2ceee0f94

gcc/ChangeLog:

* doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
Revert.

20 months agoPartially revert d3fe767c16e7c528e4fc71c8a68ac14b4573d880.
Martin Liska [Sun, 13 Nov 2022 20:54:44 +0000 (21:54 +0100)]
Partially revert d3fe767c16e7c528e4fc71c8a68ac14b4573d880.

gcc/ChangeLog:

* doc/cpp/pragmas.rst: Revert.

20 months agoRevert "sphinx: stop using parallel mode"
Martin Liska [Sun, 13 Nov 2022 20:54:09 +0000 (21:54 +0100)]
Revert "sphinx: stop using parallel mode"

This reverts commit 08fd14f9589b6e0e3155ba728a5e7031b9250f91.

20 months agoRevert "doc: update sphinx-build -j auto comment"
Martin Liska [Sun, 13 Nov 2022 20:54:03 +0000 (21:54 +0100)]
Revert "doc: update sphinx-build -j auto comment"

This reverts commit 02698e21de26c7d4217f856ee64436148e0aede7.

20 months agoRevert "jit: doc: Use shared Indices and tables"
Martin Liska [Sun, 13 Nov 2022 20:53:54 +0000 (21:53 +0100)]
Revert "jit: doc: Use shared Indices and tables"

This reverts commit 3b54cc9d04c2efb2c8f9a0b515e638917636630c.

20 months agoPartially revert cd9eedb8ac2e904880da8d1e3c87a3557c38a04f
Martin Liska [Sun, 13 Nov 2022 20:53:34 +0000 (21:53 +0100)]
Partially revert cd9eedb8ac2e904880da8d1e3c87a3557c38a04f

gcc/ChangeLog:

* doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert.

20 months agoPartially revert ca1db2725a3232b2e15eaa1bd7fbe33927843476
Martin Liska [Sun, 13 Nov 2022 20:53:09 +0000 (21:53 +0100)]
Partially revert ca1db2725a3232b2e15eaa1bd7fbe33927843476

gcc/ChangeLog:

* doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert.

20 months agoPartially revert 12c583a2a3da798e82737c2d0e11fd686636cfeb
Martin Liska [Sun, 13 Nov 2022 20:52:28 +0000 (21:52 +0100)]
Partially revert 12c583a2a3da798e82737c2d0e11fd686636cfeb

gcc/ChangeLog:

* 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.

20 months agoPartially revert 59a63247992eb13153b82c4902aadf111460eac2.
Martin Liska [Sun, 13 Nov 2022 20:50:14 +0000 (21:50 +0100)]
Partially revert 59a63247992eb13153b82c4902aadf111460eac2.

gcc/fortran/ChangeLog:

* doc/gfortran/naming-and-argument-passing-conventions.rst:
Revert.

20 months agoRevert "doc: Remove outdated reference to "core" and front-end downloads"
Martin Liska [Sun, 13 Nov 2022 20:48:34 +0000 (21:48 +0100)]
Revert "doc: Remove outdated reference to "core" and front-end downloads"

This reverts commit 05432288d4e560556ee0455562639b715d8f8b7d.

20 months agoRevert "configure: always set SPHINX_BUILD"
Martin Liska [Sun, 13 Nov 2022 20:48:24 +0000 (21:48 +0100)]
Revert "configure: always set SPHINX_BUILD"

This reverts commit 5e749ee3019d7917184af30dab8d09c933c0a4a1.

20 months agoRevert "sphinx: include todolist only if INCLUDE_TODO env. set"
Martin Liska [Sun, 13 Nov 2022 20:48:17 +0000 (21:48 +0100)]
Revert "sphinx: include todolist only if INCLUDE_TODO env. set"

This reverts commit c64fd69420fd153f9fb16a603ff0a711fbde8335.