On Sat, Aug 2, 2025 at 3:22 AM H.J. Lu wrote:
>
> After
>
> commit 965564eafb721f813a3112f1bba8d8fae32b
> Author: Richard Sandiford
> Date: Tue Jul 29 15:58:34 2025 +0100
>
> simplify-rtx: Simplify subregs of logic ops
>
> combine generates
>
> (set (zero_extract:SI (reg/v:SI 101 [ a ])
This is version 2 of the following patches:
https://inbox.sourceware.org/gcc-patches/20250608175102.1476184-1-quic_apin...@quicinc.com/
https://inbox.sourceware.org/gcc-patches/20250609061323.1772598-1-quic_apin...@quicinc.com/T/#u
For the memset patch, I had forgot to include the limit for the
One thing I noticed while working on copy prop for aggregates is that we start
with
a memcpy like statement and then walk backwards. This means we could have a few
walks
backwards to see there was no statement for zeroing. Instead this changes the
walk
backwards into a true forwprop. In the futu
In the testcase provided, currently we lose the landing pad for the exception
that could
throw from the aggregate load as we remove one copy and the second statement
where load
happens was not marked as throwable before so the landing pad for that internal
throw is
now gone.
The fix is to ignor
While looking into the gimple level after optimization of the highway code
from google, I noticed in .optimized we still have:
```
MEM [(short int *)&a] = { 0, 0, 0, 0, 0, 0, 0, 0 };
D.4398 = a;
a ={v} {CLOBBER(eos)};
D.4389 = D.4398;
D.4390 = D.4389;
D.4361 = D.4390;
D.4195 = D.4361
While thinking about how to implement the rest of the copy prop and makes sure
not
to introduce some compile time problems, optimize_agr_copyprop should be changed
into a forwproping rather than looking backwards.
Bootstrapped and tested on x86_64-linux-gnu.
gcc/ChangeLog:
* tree-ssa-fo
After
commit 965564eafb721f813a3112f1bba8d8fae32b
Author: Richard Sandiford
Date: Tue Jul 29 15:58:34 2025 +0100
simplify-rtx: Simplify subregs of logic ops
make_compound_operation_int gets
(lshiftrt:DI (and:DI (reg:DI 110 [ b ])
(reg/v:DI 103 [ a ]))
After
commit 965564eafb721f813a3112f1bba8d8fae32b
Author: Richard Sandiford
Date: Tue Jul 29 15:58:34 2025 +0100
simplify-rtx: Simplify subregs of logic ops
combine generates
(set (zero_extract:SI (reg/v:SI 101 [ a ])
(const_int 8 [0x8])
(const_int 8 [0x8]))
(not:
Three small review comments below:
On Fri, 1 Aug 2025, Nathan Myers wrote:
> Changes in v8:
> * Adjust template indentation to match rest of file
> * Change std Mandates conditions from "requires" to static_asserts.
> * Make _Bind_fn_t definition conditional on C++26, for static op().
> * Add
On Thu, 24 Jul 2025, Alexandre Oliva wrote:
> hardbools didn't behave quite like bools when incremented,
> decremented, or otherwise modified using their previous value, as in
> += et al. Fix that.
>
> Also fix some checking errors that come up when using qualified base
> types.
>
> Regstrapped
On Sun, 27 Jul 2025, Martin Uecker wrote:
> gcc/c/ChangeLog:
> * c/c-decl.cc (get_parm_array_spec): Remove.
> (push_parm_decl): Do not add `arg spec` attribute.
> (build_arg_spec_attribute): New function.
> (grokdeklarator): Add `arg spec` attrib
On Thu, 17 Jul 2025, John Ericson wrote:
> This current patch doesn't go as far as removing all such subdir logic
> from the libgcc build --- rather, as an intermediate goal, it moves it
> out of the Makefiles and into the configure script. That is to say, in
> the makefiles there is no longer any
Changes in v8:
* Adjust template indentation to match rest of file
* Change std Mandates conditions from "requires" to static_asserts.
* Make _Bind_fn_t definition conditional on C++26, for static op().
* Add negative tests for rejecting null function pointers, and for
rejecting uncopyable /
Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look
OK for trunk and 15 after 15.2 is released?
-- >8 --
The below testcases started to get rejected due to overload resolution
ambiguity after r15-3740 which corrected our inheritedness tiebreaker to
only apply to constructors and not
This patch adds support for matching a saturating truncate on a signed
input variable, however, negative values are clipped to 0 instead of
NT_MAX. This pattern is seen in x264. We change the prior loop codegen
from
vsetvli a5,a2,e32,m1,ta,mu
vle32.v v1,0(a1)
sllia4,a5,
Currently, we generate a call to a .ACCESS_WITH_SIZE for a FAM with counted_by
attribute for every component_ref that corresponds to such an object.
Actually, such .ACCESS_WITH_SIZE calls are useless when they are generated
for a written site or an address taken site.
In this patch, we only genera
Convert a pointer reference with counted_by attribute to .ACCESS_WITH_SIZE.
Fix PR120929.
For example:
struct PP {
size_t count2;
char other1;
char *array2 __attribute__ ((counted_by (count2)));
int other2;
} *pp;
specifies that the "array2" is an array that is pointed by the
pointer fie
Current array bound checker only instruments ARRAY_REF, and the INDEX
information is the 2nd operand of the ARRAY_REF.
When extending the array bound checker to pointer references with
counted_by attributes, the hardest part is to get the INDEX of the
corresponding array ref from the offset comput
Hi,
This is the 9th version of the patch set to extend "counted_by" attribute
to pointer fields of structures, which fixes PR120929:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120929
The 7th version of the patch has been committed into trunk, but triggered
PR120929. I reverted the patches fro
No need to change anything in middle-end.
Add the testing case for PR120929.
gcc/testsuite/ChangeLog:
* gcc.dg/pointer-counted-by-4-char.c: New test.
* gcc.dg/pointer-counted-by-4-float.c: New test.
* gcc.dg/pointer-counted-by-4-struct.c: New test.
* gcc.dg/pointe
On Fri, 1 Aug 2025 09:42:55 +0200
Jakub Jelinek wrote:
> Here it is in patch form. Ok for trunk if it passes testing?
Thank you, and, yes, please apply.
--jkl
> -Original Message-
> From: Jakub Jelinek
> Sent: Friday, August 1, 2025 12:47
> To: Robert Dubner
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [committed] cobol: Minor changes to quiet cppcheck
warnings.
> [PR119324]
>
> On Fri, Aug 01, 2025 at 11:39:34AM -0500, Robert Dubner wrote:
Hello,
thanks for the heads-up and sorry about the trouble,
On Thu, 31 Jul 2025, Jakub Jelinek wrote:
> Perhaps at least add
> /* { dg-options "" } */
> to avoid -pedantic, or
> /* { dg-options "-msse2" } */
(choosing the latter)
> But neither of that helps with the line 12 case,
> void foo8(i
Hi!
The CWG1709 just codifies existing GCC (and clang) behavior, so this
just adds a testcase for that.
Tested on x86_64-linux, ok for trunk?
2025-08-01 Jakub Jelinek
PR preprocessor/120778
* g++.dg/DRs/dr1709.C: New test.
--- gcc/testsuite/g++.dg/DRs/dr1709.C.jj2025
On Fri, Aug 1, 2025 at 8:30 AM Saurabh Jha wrote:
>
>
>
> On 7/29/2025 4:13 PM, Jennifer Schmitz wrote:
> > This patch adds dispatch scheduling for AArch64 by implementing the two
> > target
> > hooks TARGET_SCHED_DISPATCH and TARGET_SCHED_DISPATCH_DO.
> >
> > The motivation for this is that core
On Fri, Aug 01, 2025 at 11:39:34AM -0500, Robert Dubner wrote:
> --- a/gcc/cobol/genutil.cc
> +++ b/gcc/cobol/genutil.cc
> @@ -27,6 +27,9 @@
> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> */
Dhruv Chawla writes:
> On 24/07/25 11:21, Andrew Pinski wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> On Wed, Jul 23, 2025 at 10:16 PM wrote:
>>>
>>> From: Dhruv Chawla
>>>
>>> This patch folds the following patterns:
>>> - max (a, add (a, b)) -> [sum, ovf] = adds
>From 8b06c58c4ae83d4007510f2d2c74ee979bc2b86a Mon Sep 17 00:00:00 2001
From: Robert Dubner
Date: Fri, 1 Aug 2025 10:37:38 -0400
Subject: [PATCH] cobol: Minor changes to quiet cppcheck warnings.
[PR119324]
gcc/cobol/ChangeLog:
PR cobol/119324
* cbldiag.h (location_dump): Inline s
Committed as obvious.
On Fri, Aug 1, 2025, at 11:55 AM, Pietro Monteiro wrote:
> Move old news about GCC 14.2 and 2024 Cauldron to old news page.
> ---
> htdocs/index.html | 12
> htdocs/news.html | 8
> 2 files changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/ht
Move old news about GCC 14.2 and 2024 Cauldron to old news page.
---
htdocs/index.html | 12
htdocs/news.html | 8
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/htdocs/index.html b/htdocs/index.html
index c062d876..2acb705e 100644
--- a/htdocs/index.html
+
On 7/29/2025 4:13 PM, Jennifer Schmitz wrote:
This patch adds dispatch scheduling for AArch64 by implementing the two target
hooks TARGET_SCHED_DISPATCH and TARGET_SCHED_DISPATCH_DO.
The motivation for this is that cores with out-of-order processing do
most of the reordering to avoid pipeline
Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look OK
for trunk and 15/14 after 15.2 is released?
-- >8 --
r13-3299 changed our internal declaration of __dynamic_cast to reside
inside the abi / __cxxabiv1 namespace instead of the global namespace,
matching the real declaration. Th
The bug fix re-implements gcc/m2/gm2-compiler/M2GenGCC.mod:FoldHigh
to ignore any attempt to constant fold HIGH if it has an unbounded
array operand.
gcc/m2/ChangeLog:
PR modula2/121354
* gm2-compiler/M2GenGCC.mod (FoldHigh): Rewrite.
(IsUnboundedArray): New procedure func
The 08/01/2025 14:07, Richard Sandiford wrote:
> Alfie Richards writes:
> > On 01/08/2025 11:46, Richard Sandiford wrote:
> >> Sorry, I think I missed the multiple_targets.cc changes in my
> >> previous review.
> >>
> >> Alfie Richards writes:
> >>> +
> >>> + tree attrs = remove_attribute ("ta
There are many post-reload define_insn_and_split's that just append
a (clobber (reg:CC REG_CC)) to the pattern. Instead of repeating
the original patterns, avr_add_ccclobber (curr_insn) is used to do
that job.
This avoids repeating patterns all over the place, and splits that do
something diff
This patch extends the support for peeling and versioning for alignment
from VLS modes to VLA modes. The key change is allowing the DR target
alignment to be set to a non-constant poly_int. Since the value must be
a power-of-two, for variable VFs, the power-of-two check is deferred to
runtime throu
On Fri, 1 Aug 2025, 12:55 Tomasz Kamiński, wrote:
> Forr rvalues the _Self parameter deduces a non-reference type.
> Consequently,
> ((_Self)__self) moved the object to a temporary, which then destroyed on
> function exit.
>
> This patch fixes this by using a C-style cast __self to (const indirec
From: Mikael Morin
In a comment, fix the closing brace of the tree layout definition of the
openmp allocate clause. It was confusing vim's matching brace support.
gcc/fortran/ChangeLog:
* trans-decl.cc (gfc_trans_deferred_vars): Fix closing brace in
a comment.
---
gcc/fortran/
Alfie Richards writes:
> Add support for a FMV set defined by a combination of target_clones and
> target_version definitions.
>
> Additionally, change is_function_default_version to consider a function
> declaration annotated with target_clones containing default to be a
> default version.
>
> La
The following plugs possible overflow issues in vn_reference_compute_hash
and possibly in vn_reference_eq. The inchash "integer" adds are a bit
of a mess, but I know overloads with different integer types can get
messy, so not this time. For hashing simply truncate to 64bits.
Bootstrap and regte
Alfie Richards writes:
> On 01/08/2025 11:46, Richard Sandiford wrote:
>> Sorry, I think I missed the multiple_targets.cc changes in my
>> previous review.
>>
>> Alfie Richards writes:
>>> +
>>> + tree attrs = remove_attribute ("target_clones",
>>> + DECL_ATTRIBUTES
On Tue, 29 Jul 2025, Filip Kastl wrote:
> okay to push? Confirmed that I didn't break anything by running `make
> html`.
...and `make pdf`?
> This patch changes two things. Firstly, we document
> -fdump-rtl--graph and other such options under -fdump-tree.
> At least write a remark about this u
Even when we emit scalar stores we should pass down the SLP node.
Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
PR tree-optimization/121350
* tree-vect-stmts.cc (vectorizable_store): Pass down SLP
node when costing scalar stores in vect_body.
---
gcc/tree
Hi!
Contrary to what the paper says, I think for #line directives we diagnose
everything we should (sure, some diagnostics are pedwarns).
Tested on x86_64-linux, ok for trunk?
2025-08-01 Jakub Jelinek
PR preprocessor/120778
* g++.dg/DRs/dr2580.C: New test.
--- gcc/testsuite/
On Thu, Jul 31, 2025 at 11:44 AM Richard Biener
wrote:
>
> On Mon, May 19, 2025 at 6:38 PM Richard Earnshaw wrote:
> >
> > It's not enough to just check that a memory operand is of the form
> > mem(reg); after RA we also need to validate the register being used.
> > The safest way to do this is t
On 01/08/2025 11:46, Richard Sandiford wrote:
Sorry, I think I missed the multiple_targets.cc changes in my
previous review.
Alfie Richards writes:
diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc
index d25277c0a93..44340cbc6a4 100644
--- a/gcc/multiple_target.cc
+++ b/gcc/multiple
The following removes the scalar mask output from vect_check_scalar_mask
and deals with the fallout, eliminating uses of it. That's mostly
replacing checks on 'mask' by checks on 'mask_node' but also realizing
PR121349 and fixing that up a bit in check_load_store_for_partial_vectors.
Bootstrapped
On Fri, Aug 1, 2025 at 4:24 AM Gerald Pfeifer wrote:
>
> On Tue, 29 Jul 2025, H.J. Lu wrote:
> > No. --enable-x86-64-mfentry will make -mfentry, which replaces mcount
> > with __fentry__, as the default.
>
> Got it. Thanks for your patience.
>
> > How about this?
> >
> > + The new --enable-x86-6
Don't hoist non all 0s/1s vector set outside of the loop to avoid extra
spills.
gcc/
PR target/120941
* config/i386/i386-features.cc (x86_cse_kind): Moved before
ix86_place_single_vector_set.
(redundant_load): Likewise.
(ix86_place_single_vector_set): Repla
Call set_decl_tls_model only after a variable has been fully processed,
not in the middle of processing it.
gcc/fortran/
PR fortran/107421
* trans-common.cc (build_common_decl): Call set_decl_tls_model
after processing a variable.
* trans-decl.cc (gfc_finish_var_de
Set a tentative TLS model in grokvardecl and update DECL_TLS_MODEL with
the default TLS access model after a TLS variable has been fully processed
if the default TLS access model is stronger.
gcc/cp/
PR c++/107393
* decl.cc (grokvardecl): Add a pointer to bool argument to
Set a tentative TLS model in grokdeclarator and update DECL_TLS_MODEL
with the default TLS access model after a TLS variable has been fully
processed if the default TLS access model is stronger.
gcc/c/
PR c/107419
* c-decl.cc (grokdeclarator): Add a pointer to bool argument to
After r13-3416-g1d561e1851c466:
commit 1d561e1851c466a4952081caef17747781609b00
Author: Artem Klimov
Date: Wed Jul 6 17:02:01 2022 +0300
ipa-visibility: Optimize TLS access [PR99619]
GCC can optimize the TLS access model which means that tls_model
attribute specifies the weakest access mo
www.uclinux.org hasn't been responding to http (nor https) for a while;
drop that link from this 22 year old news items.
Pushed.
Gerald
---
htdocs/news.html | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/htdocs/news.html b/htdocs/news.html
index f2d16c08..cd65d235 100644
The target-independent and aarch64 bits mostly look good to me, but
a few comments/questions:
Alfie Richards writes:
> diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
> index a604511db71..4eb37f5818f 100644
> --- a/gcc/cp/typeck.cc
> +++ b/gcc/cp/typeck.cc
> @@ -4489,6 +4489,16 @@ cp_build_funct
Forr rvalues the _Self parameter deduces a non-reference type. Consequently,
((_Self)__self) moved the object to a temporary, which then destroyed on
function exit.
This patch fixes this by using a C-style cast __self to (const indirect&).
This not only resolves the above issue but also correctly
Hi Prathamesh,
I've been building on top of this patch and noticed something strange.
In an `arm-none-linux-gnueabihf` build the libatomic configure script no
longer recognises that ifunc's are available. Similar happens for an
x86_64 bootstrap.
I believe I've tracked it down to the `case` s
Sorry, I think I missed the multiple_targets.cc changes in my
previous review.
Alfie Richards writes:
> diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc
> index d25277c0a93..44340cbc6a4 100644
> --- a/gcc/multiple_target.cc
> +++ b/gcc/multiple_target.cc
> @@ -313,7 +216,6 @@ create_t
> On 31 Jul 2025, at 17:20, Tamar Christina wrote:
>
>> -Original Message-
>> From: Kyrylo Tkachov
>> Sent: Thursday, July 31, 2025 3:47 PM
>> To: Jennifer Schmitz
>> Cc: GCC Patches ; Andrew Pinski
>> ; Richard Earnshaw ; Richard
>> Sandiford ; Tamar Christina
>> ; Alex Coplan
>> Su
The following merges back get_group_load_store_type into
get_load_store_type, it gets easier to follow that way. I've
removed the unused ncopies parameter as well.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
* tree-vect-stmts.cc (get_group_load_store_type): Remove,
The following removes redundant checks and scalar operand uses.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
* tree-vect-stmts.cc (get_group_load_store_type): Remove
checks performed at SLP build time.
(vect_check_store_rhs): Remove scalar RHS output.
We're using VMAT_INVARIANT as default, but we should simply have
an uninitialized state.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
* tree-vectorizer.h (VMAT_UNINITIALIZED): New
vect_memory_access_type.
* tree-vect-slp.cc (_slp_tree::_slp_tree): Use it.
-
On Thu, Jul 31, 2025 at 10:20:23PM +0200, Jakub Jelinek wrote:
> The following patch introduces a -Wkeyword-macro warning that clang has
> since 2014 to implement part of C++26 P2843R3 Preprocessing is never undefined
> paper.
Here is a tiny change to the patch, added an inline function to check f
From: Pan Li
For mul_overflow api, we will have PHI node similar as below:
_6 = .MUL_OVERFLOW (a_4(D), b_5(D));
_2 = IMAGPART_EXPR <_6>;
if (_2 != 0)
goto ; [35.00%]
else
goto ; [65.00%]
[local count: 697932184]:
_1 = REALPART_EXPR <_6>;
[local count: 1073741824]:
# _
Hi!
P2843R3 dropped the
"If there is a form-feed or a vertical-tab character in such a comment, only
whitespace characters shall appear between it and the new-line that terminates
the comment; no diagnostic is required."
sentence from [lex.comment]. AFAIK we've never diagnosed nor checked for
tha
From: Pan Li
Add run and asm check test cases for scalar unsigned
SAT_MUL form 2.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/sat/sat_arith.h: Add test helper macros.
* gcc.target/riscv/sat/sat_u_mul-3-u16.c: New test.
* gcc.target/riscv/sat/sat_u_mul-3-u32.c: New test.
From: Pan Li
This patch would like to try to match the the unsigned
SAT_MUL form 2, aka below:
#define DEF_SAT_U_MUL_FMT_2(T) \
T __attribute__((noinline)) \
sat_u_mul_##T##_fmt_2 (T a, T b) \
{\
T
From: Pan Li
This patch would like to try to match the the unsigned
SAT_MUL form 2, aka below:
#define DEF_SAT_U_MUL_FMT_2(T) \
T __attribute__((noinline)) \
sat_u_mul_##T##_fmt_2 (T a, T b) \
{\
T
On 31/07/2025 16:37, Richard Sandiford wrote:
Alfie Richards writes:
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 5e305643b3a..253ea6dd77f 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -12268,6 +12268,11 @@ function version at run-time for a given set of
function versions.
bo
The following avoids possibly overflowing adds for rounding. We
know cost is bound, so it's enough to do this simple test.
Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
PR tree-optimization/121338
* tree-ssa-loop-ivopts.cc (avg_loop_niter): Return an
unsi
On Fri, Aug 01, 2025 at 03:43:26PM +0800, zambar wrote:
> ping
>
Sorry, I don't normally see post from anything
coming from 163.com. Everything is automatically
forward to /dev/null due to the amount of spam that
orignated with that domain years ago.
Is there a bugzilla report about whatever y
Kyrylo Tkachov writes:
>> On 29 Jul 2025, at 18:41, Richard Sandiford
>> wrote:
>>
>> This patch continues the work of making ACLE intrinsics use VNx16BI
>> for svbool_t results. It deals with the svpnext* intrinsics.
>>
>
> I wonder if the new patterns need pred_clobber alternatives in this
ping
At 2025-07-24 00:54:22, "ZAMBAR" wrote:
> This patch is an experimental implementation of multi-target clones
>clones for Fortran, allowing the use of the `TARGET_CLONES` attribute.
>It is designed to work with the syntax like:
>
>`!GCC$ ATTRIBUTES TARGET_CLONES("default", "avx", "avx512f"
On Thu, Jul 31, 2025 at 11:33:07PM +0200, Jakub Jelinek via Gcc wrote:
> > this was all described in excruciating detail in the patch submission
> >
> > https://gcc.gnu.org/pipermail/gcc-patches/2025-June/687385.html
> >
> > and the commit message.
>
> Looking at that patch, the dbgmsg chang
On Fri, Aug 1, 2025 at 8:54 AM Richard Biener
wrote:
>
> On Thu, Jul 31, 2025 at 4:43 PM Florian Weimer wrote:
>
> OK.
I've pushed both now.
Richard.
> Thanks,
> Richard.
>
> > gcc/c/
> >
> > PR c/120055
> > * c-typeck.cc (convert_arguments): Check if fundecl is null
> >
75 matches
Mail list logo