Today is my last working day at Arm, so this patch switches my
MAINTAINERS entries to my personal email address. (It turns out
that I never updated some of the later entries...oops)
In order to avoid setting false expectations, and to try to avoid
getting in the way, I'm also standing down as an
From: Luc Grosheintz
This commit implements and tests the function is_sufficiently_aligned
from P2897R7.
PR libstdc++/120994
libstdc++-v3/ChangeLog:
* include/bits/align.h (is_sufficiently_aligned): New function.
* include/bits/version.def (is_sufficiently_aligned): Add
Committed as r16-3308.
Thanks, Jerry.
Paul
On Wed, 20 Aug 2025 at 19:27, Jerry D wrote:
> On 8/20/25 8:54 AM, Paul Richard Thomas wrote:
> > Hi Jerry,
> >
> > The attached patch fixes both pr84122 and pr85942. Beyond the more
> > elaborate chunk in parse.cc, a new chunk was required in
> > si
Previously, atomic>::wait (and the weak_ptr version) was
equivalent to waiting directly on _M_val, which corresponds to the pointer to
the control block (_M_pi). Consequently, wakeups were not triggered if the
stored
pointer value was changed to a pointer that uses the same control block but
store
On Thu, Aug 21, 2025 at 3:46 AM H.J. Lu wrote:
>
> For a basic block with only a label:
>
> (code_label 78 11 77 3 14 (nil) [1 uses])
> (note 77 78 54 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
>
> emit the TLS call after NOTE_INSN_BASIC_BLOCK, instead of before
> NOTE_INSN_BASIC_BLOCK, to avoid
>
> x.c: In
The old C-style was cumbersome make making one responsible for manually
create and pass a closure (separate function and *_info class for
closed-over variables).
I would have liked to redo this with C++ lambdas, so we could:
- derive environment types implicitly
- have fewer stray static function
From: John Ericson
This time use no classes, virtual methods. Just use higher order
functions using templates.
Now it's even shorter than before --- which is also shorter than the
no-lambda, pure OOP original --- but at the cost of some overkill
template specialization. Here are the stats:
just
> -Original Message-
> From: Richard Sandiford
> Sent: Wednesday, August 20, 2025 11:13 PM
> To: Tamar Christina
> Cc: gcc-patches@gcc.gnu.org; nd ; Richard Earnshaw
> ; ktkac...@gcc.gnu.org; Alex Coplan
> ; andrew.pin...@oss.qualcomm.com;
> rguent...@suse.de
> Subject: Re: [PATCH 1/2]AAr
A follow-up from "driver: Rework for_each_path using C++"
These types are, for all intents and purposes, single-use closure
environment types. It is much more ergonomic to juse use lambdas for
this.
On IRC there was concern about static dispatch and compile times with
lambdas, but I have kept the
Sorry for the linking error. That wasn't me doing optimization or anything, but
just not testing the latest rebase of my patch enough --- my dev environment
was a big busted, and I was compiling the file not but linking. I haven't fixed
that yet, but I just did a full from scratch build and that
David Guillen Fandos 于2025年8月10日周日 03:02写道:
>
> The MIPS Allegrex CPU is based on MIPS2 with some additional MIPS32r2
> instructions and a few novel ones. Support for this CPU was added as of
> binutils 2.41.
>
> gcc/ChangeLog:
>
> * config/mips/mips-cpus.def (MIPS_CPU): Added a new CPU.
>
On 8/13/25 2:48 PM, John Ericson wrote:
A follow-up from "driver: Rework for_each_path using C++"
These types are, for all intents and purposes, single-use closure
environment types. It is much more ergonomic to just use lambdas for
this.
On IRC there was concern about static dispatch and compi
On 8/13/25 11:45 AM, John Ericson wrote:
The old C-style was cumbersome make making one responsible for manually
create and pass a closure (separate function and *_info class for
closed-over variables).
I would have liked to redo this with C++ lambdas, so we could:
- derive environment types im
Tested x86_64-pc-linux-gnu, applying to trunk.
-- 8< --
Here r13-1210 correctly changed &A::foo to not be considered
type-dependent, but tsubst_expr of the OFFSET_REF got confused trying to
tsubst a type that involved auto. Fixed by getting the type from the
member rather than tsubst.
P
On Wed, Aug 20, 2025 at 1:14 AM Richard Biener
wrote:
> On Tue, Aug 19, 2025 at 11:24 PM Andrew Pinski
> wrote:
> >
> > On Tue, Aug 19, 2025 at 12:26 AM Richard Biener <
> richard.guent...@gmail.com> wrote:
> >>
> >> On Sat, Aug 16, 2025 at 7:34 PM Andrew Pinski
> >> wrote:
> >> >
> >> > Just l
Tamar Christina writes:
> To avoid double counting scalar instructions when doing inner-loop costing the
> vectorizer uses vect_prologue as the kind instead of vect_body.
>
> However doing this results in our throughput based costing to think the scalar
> loop issues in 0 cycles (rounded up to 1.0
On Tue, 12 Aug 2025, David Faust wrote:
> + if (TREE_CODE (*node) == FUNCTION_TYPE || TREE_CODE (*node) == METHOD_TYPE)
> +{
> + /* Treat btf_type_tag applied to a function type as applying to the
> + return type instead. Otherwise with GNU syntax there is no way to
> + apply
For a basic block with only a label:
(code_label 78 11 77 3 14 (nil) [1 uses])
(note 77 78 54 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
emit the TLS call after NOTE_INSN_BASIC_BLOCK, instead of before
NOTE_INSN_BASIC_BLOCK, to avoid
x.c: In function ‘aout_16_write_syms’:
x.c:54:1: error: NOTE_INSN_BASIC_B
On 8/20/25 10:53 AM, Marek Polacek wrote:
Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk?
OK.
-- >8 --
P2036 says that this:
[x=1]{ int x; }
should be rejected, but with my P2036 we started giving an error
for the attached testcase as well, breaking Dolphin. So let's
keep t
When -fdiagnostics-show-context[=DEPTH] was added, they were documented, but
common.opt.urls wasn't regenerated.
gcc/ChangeLog:
* common.opt.urls: Regenerate.
Okay for committing?
Thanks.
Qing
---
gcc/common.opt.urls | 6 ++
1 file changed, 6 insertions(+)
diff --git a/gcc/common
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a vec_duplicate into a mult RTL instruction.
Before this patch, we have two instructions, e.g.:
vfmv.v.f v2,fa0
vfmul.vv v1,v1,v2
After, we get only one:
vfmul.vf v2,v2,fa0
gcc/ChangeL
Pushed as obvious.
thanks.
Qing
> On Aug 20, 2025, at 14:28, Sam James wrote:
>
> Qing Zhao writes:
>
>> When -fdiagnostics-show-context[=DEPTH] was added, they were documented, but
>> common.opt.urls wasn't regenerated.
>>
>> gcc/ChangeLog:
>>
>>* common.opt.urls: Regenerate.
>>
Qing Zhao writes:
> When -fdiagnostics-show-context[=DEPTH] was added, they were documented, but
> common.opt.urls wasn't regenerated.
>
> gcc/ChangeLog:
>
> * common.opt.urls: Regenerate.
>
> Okay for committing?
It should be OK to go in as obvious. Thanks!
>
> Thanks.
>
> Qing
> ---
>
On 8/20/25 8:54 AM, Paul Richard Thomas wrote:
Hi Jerry,
The attached patch fixes both pr84122 and pr85942. Beyond the more
elaborate chunk in parse.cc, a new chunk was required in
simplify.cc(get_kind) to convert KIND expressions involving PDT kind
parameters into viable initialization expre
On 04/08/25 12:59 +0200, Luc Grosheintz wrote:
This commit completes the implementation of P2897R7 by implementing and
testing the template class aligned_accessor.
PR libstdc++/120994
libstdc++-v3/ChangeLog:
* include/bits/version.def (aligned_accessor): Add.
* include/
On 04/08/25 12:59 +0200, Luc Grosheintz wrote:
This commit completes the implementation of P2897R7 by implementing and
testing the template class aligned_accessor.
PR libstdc++/120994
libstdc++-v3/ChangeLog:
* include/bits/version.def (aligned_accessor): Add.
* include/
On 04/08/25 12:59 +0200, Luc Grosheintz wrote:
This commit implements and tests the function is_sufficiently_aligned
from P2897R7.
PR libstdc++/120994
libstdc++-v3/ChangeLog:
* include/bits/align.h (is_sufficiently_aligned): New function.
* include/bits/version.def (is_
On 21/07/25 17:50 +0200, Luc Grosheintz wrote:
This commit implements the C++26 feature std::dims described in P2389R2.
It sets the feature testing macro to 202406 and adds tests.
Also fixes the test mdspan/version.cc
libstdc++-v3/ChangeLog:
* include/bits/version.def (mdspan): Set val
On 03/08/25 22:57 +0200, Luc Grosheintz wrote:
The combined effect of this sequence of change is:
* a reduction in the number of template instantiations, by
- avoiding needless dependency of IndexType,
- special formulas for low-rank extents,
- special formulas for (nearly) fully dynam
On Mon, 11 Aug 2025 at 21:19, Luc Grosheintz wrote:
>
> This second iteration:
>
> - fixes the commit message of both patches,
> - prefers if over multiplying with 1,
> - use a span instead of a const array&,
> - use constexpr for __sta_prod.
>
> Luc Grosheintz (2):
> libstdc++: Reduce s
Consider the example:
void
f (int *restrict x, int *restrict y, int *restrict z, int n)
{
for (int i = 0; i < 4; ++i)
{
int res = 0;
for (int j = 0; j < 100; ++j)
res += y[j] * z[i];
x[i] = res;
}
}
we currently vectorize as
f:
moviv30.4s, 0
To avoid double counting scalar instructions when doing inner-loop costing the
vectorizer uses vect_prologue as the kind instead of vect_body.
However doing this results in our throughput based costing to think the scalar
loop issues in 0 cycles (rounded up to 1.0). The latency costs however are
The pthread_incomplete_struct_argument fix was intended for ancient
versions of Glibc (only 2.3.3 and 2.3.4, I believe). From Glibc 2.3.5
the pthread.h header already included the change to use a pointer
instead of an array, so the fixinclude was no longer used.
However, the https://sourceware.org
> -Original Message-
> From: Richard Biener
> Sent: Wednesday, August 20, 2025 1:48 PM
> To: Tamar Christina
> Cc: gcc-patches@gcc.gnu.org; rdsandif...@googlemail.com; nd
> Subject: Re: [PATCH 1/5]middle-end: Add scaffolding to support narrowing IFNs
>
> On Tue, 19 Aug 2025, Tamar Chris
Hi Jerry,
The attached patch fixes both pr84122 and pr85942. Beyond the more
elaborate chunk in parse.cc, a new chunk was required in
simplify.cc(get_kind) to convert KIND expressions involving PDT kind
parameters into viable initialization expressions. Both are straight
forward.
The patch regtes
The following update to preatty-printers seem to be also required:
diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py
b/libstdc++-v3/python/libstdcxx/v6/printers.py
index 5f5963cb595..51defbce78b 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6
From: Andi Kleen
[v2 version: Split rotate patterns in V16QI and V32/64QI.
Add various AVX512F checks. Remove some unnecessary
masks. Add untested cond_ pattern (untested, couldn't trigger it)
Clean up some control flow. Use narrower modes.
Avoid need for weakening predicate check in expand.
Use
Previously, atomic>::wait (and the weak_ptr version) was
equivalent to waiting directly on _M_val, which corresponds to the pointer to
the control block (_M_pi). Consequently, wakeups were not triggered if the
stored
pointer value was changed to a pointer that uses the same control block but
store
Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk?
-- >8 --
P2036 says that this:
[x=1]{ int x; }
should be rejected, but with my P2036 we started giving an error
for the attached testcase as well, breaking Dolphin. So let's
keep the error only for init-captures.
PR c++/121
On 19/06/2025 14:25, Alexandre Oliva wrote:
> On Jun 19, 2025, Alexandre Oliva wrote:
>
>> Or maybe the requirements for this testcase should be stated as
>> arm_arch_v7? I'd have to add arm_arch_v7 to
>> check_effective_target_arm_arch_FUNC_ok et al, if there aren't reasons
>> why it's not ther
On Tue, Aug 19, 2025 at 6:29 AM Tamar Christina wrote:
>
> This adds support for detectioon of the ADDHN pattern in the vectorizer.
>
> Concretely try to detect
>
> _1 = (W)a
> _2 = (W)b
> _3 = _1 + _2
> _4 = _3 >> (precision(a) / 2)
> _5 = (N)_4
>
> where
>W = precision (a) * 2
>N =
Call check_effective_target_riscv_zvfh_ok rather than
check_effective_target_riscv_zvfh in vx_vf_*run-1-f16.c run tests and ensure
that they are actually run.
Also fix remove_options_for_riscv_zvfh.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmacc-run-1-f16.c: Call
> -Original Message-
> From: Richard Biener
> Sent: Wednesday, August 20, 2025 1:48 PM
> To: Tamar Christina
> Cc: gcc-patches@gcc.gnu.org; nd ; rguent...@suse.de
> Subject: Re: [PATCH 2/5]middle-end: Add detection for add halfing and
> narrowing
> instruction
>
> On Tue, Aug 19, 2025 a
On Tue, 15 Oct 2024, liuhongt wrote:
> +
> + The default vectorizer cost model at -O2 has been enhanced
> +to handle unknown tripcount. But it still disables vectorization of loops
> +when any runtime check for data dependence or alignment is required,
> +it also disables vectorization
On Tue, 19 Aug 2025, Tamar Christina wrote:
> This adds scaffolding for supporting narrowing IFNs inside the vectorizer in a
> similar way as how widening is supported. However because narrowing
> operations
> always have the same number of elements as the input and output we need to be
> able t
Richard Biener writes:
> On Wed, Aug 20, 2025 at 1:03 PM Richard Sandiford
> wrote:
>>
>> While testing a later patch, I found that create_degenerate_phi
>> had an inverted test for bitmap_set_bit. It was assuming that
>> the return value was the previous bit value, rather than a
>> "something c
On Wed, Aug 20, 2025 at 2:16 PM Richard Sandiford
wrote:
>
> Richard Biener writes:
> > On Wed, Aug 20, 2025 at 1:03 PM Richard Sandiford
> > wrote:
> >>
> >> While testing a later patch, I found that create_degenerate_phi
> >> had an inverted test for bitmap_set_bit. It was assuming that
> >>
On Wed, Aug 20, 2025 at 1:03 PM Richard Sandiford
wrote:
>
> While testing a later patch, I found that create_degenerate_phi
> had an inverted test for bitmap_set_bit. It was assuming that
> the return value was the previous bit value, rather than a
> "something changed" value. :(
>
> Also, the c
On Wed, Aug 20, 2025 at 1:05 PM Richard Sandiford
wrote:
>
> I'd added the aarch64-specific CC fusion pass to fold a PTEST
> instruction into the instruction that feeds the PTEST, in cases
> where the latter instruction can set the appropriate flags as a
> side-effect.
>
> Combine does the same op
On Wed, Aug 20, 2025 at 1:03 PM Richard Sandiford
wrote:
>
> rtl-ssa already has a find_def function for finding the definition
> of a particular resource (register or memory) at a particular point
> in the program. This patch adds a similar function for looking
> up uses. Both functions have am
This patch changes the implementation of the insn to test whether the
result itself is negative or not, rather than the MSB of the result of
the ABS machine instruction. This eliminates the need to consider bit-
endianness and allows for longer branch distances.
/* example */
extern void
I'd added the aarch64-specific CC fusion pass to fold a PTEST
instruction into the instruction that feeds the PTEST, in cases
where the latter instruction can set the appropriate flags as a
side-effect.
Combine does the same optimisation. However, as explained in the
comments, the PTEST case ofte
While testing a later patch, I found that create_degenerate_phi
had an inverted test for bitmap_set_bit. It was assuming that
the return value was the previous bit value, rather than a
"something changed" value. :(
Also, the call to add_live_out_use shouldn't be conditional
on the DF_LR_OUT opera
rtl-ssa already has a find_def function for finding the definition
of a particular resource (register or memory) at a particular point
in the program. This patch adds a similar function for looking
up uses. Both functions have amortised logarithmic complexity.
Tested on aarch64-linux-gnu, powerp
Hi all,
This is a rebase of my earlier patch:
https://gcc.gnu.org/pipermail/gcc-patches/2025-May/683011.html
Changes in v2:
- Only resolves the conflicts after the hybrid SLP removal
- No functionality or design change
We had a lot of discussions around this before, mainly on whether we could av
Hi Jan,
I've forgot to add you (as x86 maintainer) for this patch which touches
the x86 port. In this patch, we renamed the TAG_SIZE hook to TAG_BITSIZE
for clarity, and it is needed for adding the ARM's MTE instructions to
the hwasan.
I have bootstrap it and test it without any issue. Is it ok t
This patch adjusts the implementation of bind_front(f) and bind_back(f)
(with zero bound arguments), so it returns an auto(f) (a copy of the
functor), rather than a specialization of Bind_front/Bind_back. This change
is mostly unobservable, as standard does not specify return type of
above function
The testcase in the PR shows that it's worth splitting the processing
of the initial workset, which is def_blocks from the main iteration.
This reduces SSA incremental update time from 44.7s to 32.9s. Further
changing the workset bitmap of the main iteration to a vector
speeds up things further to
The linker rejects --relax in relocatable links (-r), hence only
add --relax when -r is not specified.
Applied as obvious.
Johann
--
AVR: target/121608 - Don't add --relax when linking with -r.
The linker rejects --relax in relocatable links (-r), hence only
add --relax when -r is not specifi
On Fri, Aug 15, 2025 at 5:56 PM Qing Zhao wrote:
>
> Hi,
>
> This is the 9th version of the patch for fixing PR109071.
>
> Major changes compared to v8: (address all Richard's comments)
>
> https://gcc.gnu.org/pipermail/gcc-patches/2025-July/691198.html
>
> 1. Add a -fdiagnostics-show-context alia
This patch refactors the implementation of bind_front and bind_back to
avoid using std::tuple for argument storage. Instead, bound arguments are
now:
* stored directly if there is only one,
* within a dedicated _Bound_arg_storage otehrwise.
_Bound_arg_storage holds each argument in an _Indexed_bou
On Wed, Aug 20, 2025 at 5:14 AM Andrew Pinski
wrote:
>
> build_ref_for_offset was originally made external
> with r0-95095-g3f84bf08c48ea4. The call was extracted
> out into ipa_get_jf_ancestor_result by r0-110216-g310bc6334823b9.
> Then the call was removed by r10-7273-gf3280e4c0c98e1.
> So there
On Tue, Aug 19, 2025 at 11:24 PM Andrew Pinski
wrote:
>
> On Tue, Aug 19, 2025 at 12:26 AM Richard Biener
> wrote:
>>
>> On Sat, Aug 16, 2025 at 7:34 PM Andrew Pinski
>> wrote:
>> >
>> > Just like r16-465-gf2bb7ffe84840d8 but this time
>> > instead of a VCE there is a full on load from a boolea
vect_analyze_slp_instance still handles stores and reduction chains.
The following threads the special handling of those two kinds,
duplicating vect_build_slp_instance into two specialized entries.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
* tree-vect-slp.cc (vect_analy
64 matches
Mail list logo