https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115084
--- Comment #1 from Andrew Pinski ---
There is another bug dealing with division and truncation that was just filed.
It is a generic (non-avr) issue.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115084
Andrew Pinski changed:
What|Removed |Added
Component|c |target
Keywords|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111487
--- Comment #3 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #2)
> Thinking about how to handle binary operators. Here are some rules I came up
> with when we should prop the constant:
I should note when I tested llvm, it does
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111487
--- Comment #2 from Andrew Pinski ---
Thinking about how to handle binary operators. Here are some rules I came up
with when we should prop the constant:
* constants for the other operand (will reduce to a constant)
* plus if it is used once
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115082
Bug ID: 115082
Summary: Canonical form for `(a+oddCST)&1` or `1 & ~a`
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115081
--- Comment #3 from Andrew Pinski ---
You have not provided all of the information needed for this?
Can you provide the target which is being used here?
Can you provide the exact version of GCC you are using to get the ICE?
Also I noticed the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115081
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2024-05-14
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115081
Andrew Pinski changed:
What|Removed |Added
Component|c |rtl-optimization
--- Comment #1 from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115058
--- Comment #3 from Andrew Pinski ---
This looks like a binutils issue rather a gcc one. It might be already fixed in
binutils too.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115073
--- Comment #4 from Andrew Pinski ---
Note -fsanitize=undefined does detect this undefinedness at runtime already
too.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115073
Andrew Pinski changed:
What|Removed |Added
Resolution|--- |INVALID
Status|UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115055
Bug ID: 115055
Summary: reassociation should use match-and-simplify
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #3 from Andrew Pinski ---
https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170#parameter-passing
So it uses floating point as the type. But then it is vague on those kind of
type. Gcc treats _Float16
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #2 from Andrew Pinski ---
Does Microsoft's abi documents this case?
If not then gcc is as correct here as clang is.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054
--- Comment #1 from Andrew Pinski ---
What does msvc do?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115051
Andrew Pinski changed:
What|Removed |Added
Resolution|--- |DUPLICATE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113506
--- Comment #1 from Andrew Pinski ---
*** Bug 115051 has been marked as a duplicate of this bug. ***
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115050
--- Comment #1 from Andrew Pinski ---
Note there is an alignment missing on the data field.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113882
Andrew Pinski changed:
What|Removed |Added
Ever confirmed|0 |1
Assignee|unassigned at gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113880
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2024-05-11
Ever confirmed|0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115040
--- Comment #4 from Andrew Pinski ---
(In reply to Sam James from comment #3)
> (In reply to Andrew Pinski from comment #2)
> > > clang lowers both the calls to (w)memchr
> >
> > Is that with libc++ or libstdc++?
>
> It's libc++. Checked
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115040
--- Comment #2 from Andrew Pinski ---
> clang lowers both the calls to (w)memchr
Is that with libc++ or libstdc++?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115040
Andrew Pinski changed:
What|Removed |Added
Severity|normal |enhancement
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115037
--- Comment #4 from Andrew Pinski ---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94293#c4
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115037
Andrew Pinski changed:
What|Removed |Added
See Also||https://gcc.gnu.org/bugzill
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115037
--- Comment #1 from Andrew Pinski ---
This might be a dup of another bug which talks about the same thing.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115033
Andrew Pinski changed:
What|Removed |Added
Ever confirmed|1 |0
Status|WAITING
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115034
--- Comment #1 from Andrew Pinski ---
Note there is some memory model requirements here that I always forget if this
can happen or not.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115033
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2024-05-10
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115014
--- Comment #10 from Andrew Pinski ---
int f(int *a)
{
int b;
size_t t = (size_t)
size_t t1 = (size_t)a;
return *(int*)(((size_t))+(t-t1));
}
Is kinda of valid c but might fail with your definition.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115014
--- Comment #8 from Andrew Pinski ---
I didn't misunderstanding it. I just think it is not a valid request.
Especially when it comes to it is only this special kvm kernel.
Someone in theory could also use an offset from esp and run into a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115023
Andrew Pinski changed:
What|Removed |Added
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115023
Bug ID: 115023
Summary: __builtin_assoc_barrier does not talk about
contracting even though it prevents it too
Product: gcc
Version: 15.0
Status: UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115022
Andrew Pinski changed:
What|Removed |Added
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115022
Bug ID: 115022
Summary: -fstrub=disable and -minline-memops-threshold have a -
in the index
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114528
Andrew Pinski changed:
What|Removed |Added
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115019
--- Comment #3 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #2)
> /app/example.cpp:36:24: runtime error: negation of
> 0x8000 cannot be represented in type '__int128';
> cast to an unsigned type to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115019
--- Comment #2 from Andrew Pinski ---
/app/example.cpp:36:24: runtime error: negation of
0x8000 cannot be represented in type '__int128';
cast to an unsigned type to negate this value to itself
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115019
Andrew Pinski changed:
What|Removed |Added
Resolution|--- |INVALID
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
--- Comment #12 from Andrew Pinski ---
(In reply to Aldy Hernandez from comment #10)
> I can test my proposed patch on a cross for avr, but for this testcase on
> rl78-none and rl78-elf, I get:
That was not a testcase but rather a copy of the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115018
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2024-05-09
Ever confirmed|0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115018
--- Comment #1 from Andrew Pinski ---
First I can't reproduce it with the official releases GCC 13.2.0.
Second with the trunk, I am not sure if this is a bug or not.
With the trunk with `-O3 -Wall -Wextra -fno-strict-aliasing -fwrapv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
--- Comment #7 from Andrew Pinski ---
For rl78:
static scalar_int_mode
rl78_addr_space_address_mode (addr_space_t addrspace)
{
switch (addrspace)
{
case ADDR_SPACE_GENERIC:
return HImode;
case ADDR_SPACE_NEAR:
return
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
--- Comment #6 from Andrew Pinski ---
rl78 has __far which is a 32bit pointer (the normal ptr size there is 16bit).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
Andrew Pinski changed:
What|Removed |Added
CC||law at gcc dot gnu.org
--- Comment #4
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115017
Andrew Pinski changed:
What|Removed |Added
Resolution|--- |DUPLICATE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112659
--- Comment #9 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #8)
> Thinking about this slightly more, we should be able to handle (which LLVM
> does not currently handles):
> ```
> int optb(int v, int b) {
> // b = 8;
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113859
Andrew Pinski changed:
What|Removed |Added
Keywords||patch
URL|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
Andrew Pinski changed:
What|Removed |Added
Severity|normal |blocker
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
--- Comment #2 from Andrew Pinski ---
Reduced testcase:
```
void
pgm_copystring(const char __memx * p)
{
unsigned char c;
c = *p;
}
```
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2024-05-09
Ever confirmed|0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115004
--- Comment #1 from Andrew Pinski ---
Note this works with the IR coming out of the C front-end but NOT the IR coming
out from the C++ front-end.
Yes the front-ends are different.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115010
Andrew Pinski changed:
What|Removed |Added
Status|WAITING |UNCONFIRMED
Ever confirmed|1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115005
--- Comment #2 from Andrew Pinski ---
Folding statement: _336 = cmd_8bits[numbits_181];
Folded into: _336 = cmd_8bits[4294967295];
Which comes from:
uint32 d = get_bits(in, numbits+1, );
if (d >=
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115010
Andrew Pinski changed:
What|Removed |Added
Target||m68k-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115013
Andrew Pinski changed:
What|Removed |Added
Target Milestone|--- |15.0
Component|c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115014
--- Comment #3 from Andrew Pinski ---
(In reply to Martin Doucha from comment #2)
>
> This is certainly not wanted in the most common case where the flat memory
> assumption is correct. But it should be used for compiling embedded binaries
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115014
Andrew Pinski changed:
What|Removed |Added
Ever confirmed|0 |1
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115009
Andrew Pinski changed:
What|Removed |Added
CC||pinskia at gcc dot gnu.org
Target
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104292
--- Comment #5 from Andrew Pinski ---
Note LLVM started to do this "trick" in 17.1.0.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115011
--- Comment #4 from Andrew Pinski ---
So depends on PR 104292.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115011
Andrew Pinski changed:
What|Removed |Added
Depends on||104292
--- Comment #3 from Andrew
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115011
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed|2024-05-09 00:00:00 |
Status|NEW
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114998
Andrew Pinski changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Summary|ICE on valid
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110386
Andrew Pinski changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Known to work|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114997
Andrew Pinski changed:
What|Removed |Added
Target Milestone|--- |11.5
Summary|ICE:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114997
--- Comment #4 from Andrew Pinski ---
My reduced testcase has failed since 4.8.0 and started to pass in GCC 13.1.0.
I wonder what fixed it (I suspect r13-3438 and if so I doubt that can be
backported).
Note the issue is with constexpr and
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114997
--- Comment #3 from Andrew Pinski ---
Reduced testcase:
```
typedef int vv __attribute__((__vector_size__(sizeof(int;
constexpr vv ff(int code) { return vv{code}; }
template struct h {
typedef _Tp type;
};
template void f() {
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115000
--- Comment #3 from Andrew Pinski ---
I suspect all of the see also bugs here are the same issue, I described my try
of fixing that in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104113#c8 .
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115000
--- Comment #2 from Andrew Pinski ---
Reduced:
```
template
concept bool c = false;
template
struct ts{};
struct S {};
S s;
ts t33{s};
```
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115000
Andrew Pinski changed:
What|Removed |Added
Ever confirmed|0 |1
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114999
--- Comment #5 from Andrew Pinski ---
The following patterns could be improved/removed while doing this:
```
/* (A - B) == 0 ? (A - B) : (B - A)same as (B - A) */
/* (A - B) != 0 ? (A - B) : (B - A)same as (A - B) */
/* (A - B) >=/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114999
Andrew Pinski changed:
What|Removed |Added
Blocks||113265
--- Comment #4 from Andrew
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114999
--- Comment #3 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #2)
> Another one:
> ```
> int f(int a, int b, int x)
> {
> x = a - b;
> int y = -x;
> return (x >= 0 ? x : 0) + (x <= 0 ? y : 0);
> }
> ```
>
> This should be
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114999
Andrew Pinski changed:
What|Removed |Added
Summary|`a - b == b - a` -> `a == |A few missing optimizations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114999
Andrew Pinski changed:
What|Removed |Added
Status|UNCONFIRMED |ASSIGNED
Ever confirmed|0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114999
Bug ID: 114999
Summary: `a - b == b - a` -> `a == b`
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112659
--- Comment #8 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #7)
> This is the pattern I added for the plus case:
> ```
> (for cnd (cond vec_cond)
> ...
> /* (a != CST1) ? (a + CST2) : 0 -> (a + CST2) iff CST1 == -CST2 */
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114992
Andrew Pinski changed:
What|Removed |Added
Summary|ICE during IPA pass:|[13/14/15 Regression] ICE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114994
Andrew Pinski changed:
What|Removed |Added
Summary|fmtlib named argument |[14/15 Regression] fmtlib
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114995
Andrew Pinski changed:
What|Removed |Added
Severity|normal |enhancement
Keywords|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114995
--- Comment #4 from Andrew Pinski ---
Oh this is the more correct syntax:
[[assume((uintptr_t(x_array) & (32-1)) == 0)]];
[[assume((uintptr_t(mul_array) & (32-1)) == 0)]];
[[assume((uintptr_t(add_array) & (32-1)) == 0)]];
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114995
--- Comment #2 from Andrew Pinski ---
I suspect the syntax you want instead is:
[[assume(uintptr_t(x_array) & (32-1) == 0]];
Becuase __builtin_assume_aligned takes a pointer and returns a pointer that has
the assumed alignment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114995
--- Comment #1 from Andrew Pinski ---
Created attachment 58135
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58135=edit
testcase
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114994
--- Comment #3 from Andrew Pinski ---
Trying my hand at reducing this slightly.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114994
--- Comment #2 from Andrew Pinski ---
Note lambdas is not need can happen in any template function:
```
#include
#define FMT_HEADER_ONLY
#include
using namespace fmt::literals;
template
auto test(int a)
{
return fmt::format("{foo}
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114872
Andrew Pinski changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
See Also|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109804
Andrew Pinski changed:
What|Removed |Added
Summary|[11/12 Regression] internal |[11 Regression] internal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114985
Andrew Pinski changed:
What|Removed |Added
Target Milestone|--- |15.0
Keywords|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114989
--- Comment #2 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #1)
> So expand is usually fast. The only slow part I know of that might be
> hitting here is division by constant where we are trying to find if it is
> better to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114989
Andrew Pinski changed:
What|Removed |Added
Component|c |middle-end
Keywords|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111331
Andrew Pinski changed:
What|Removed |Added
Known to work||12.3.1
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95351
Andrew Pinski changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Known to work|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109762
--- Comment #11 from Andrew Pinski ---
The patch does not apply directly to GCC 12.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110066
Andrew Pinski changed:
What|Removed |Added
Resolution|--- |FIXED
Status|ASSIGNED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112392
Andrew Pinski changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Target Milestone|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112659
--- Comment #7 from Andrew Pinski ---
This is the pattern I added for the plus case:
```
(for cnd (cond vec_cond)
...
/* (a != CST1) ? (a + CST2) : 0 -> (a + CST2) iff CST1 == -CST2 */
(simplify
(cnd (ne @0 uniform_integer_cst_p@1)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112659
--- Comment #6 from Andrew Pinski ---
Vector testcase (C++ only) for the missing add case:
```
#define vector4 __attribute__((vector_size(4*sizeof(int
void unopt(vector4 int *v) {
vector4 int t = *v;
vector4 int t1 = t + 8;
*v
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114982
--- Comment #3 from Andrew Pinski ---
Looks like the testcase should also be skipped for mingw/cygwin too.
```
/* External public symbols, which aren't weakref-s,
have local-binding for PE targets. */
if (DECL_P (exp)
&&
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114982
--- Comment #2 from Andrew Pinski ---
So I was going for the elf semantics here but Mach-O semantics says the
function is NOT replacable unless it was weak.
Anyways this is just a dg-skip-if for darwin and I will add it with a note
saying
701 - 800 of 23718 matches
Mail list logo