https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #10 from Andrew Macleod ---
(In reply to Richard Biener from comment #9)
> I think the GCC 12 IL would require tracking equivalences on parts of
> registers,
> in this case that _2 is equal to the low part of a.0_1. That is, one
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #9 from Richard Biener ---
I think the GCC 12 IL would require tracking equivalences on parts of
registers,
in this case that _2 is equal to the low part of a.0_1. That is, one would
need to extend what CCP does with bit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #8 from Andrew Macleod ---
> >
> > It would probably resolve an entire class of things where we don't
> > recognize an
> > equivalence between a cast and a bitmask of equivalent precision.
> >
> > This would also mean the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #7 from rguenther at suse dot de ---
On Mon, 4 Oct 2021, amacleod at redhat dot com wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
>
> --- Comment #6 from Andrew Macleod ---
>
> >
> > > It removes a
> > >
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #6 from Andrew Macleod ---
>
> > It removes a
> > relationship between c_10 and _2. The reason ranger no longer can fold _2
> > == 0
> > is because the sequence is now:
> >
> > a.0_1 = a;
> > _2 = (unsigned int) a.0_1;
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #5 from rguenther at suse dot de ---
On Fri, 1 Oct 2021, amacleod at redhat dot com wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
>
> --- Comment #4 from Andrew Macleod ---
>
>
> (In reply to Richard Biener from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #4 from Andrew Macleod ---
(In reply to Richard Biener from comment #2)
> FRE1 has the following difference, simplifying the (unsigned int) truncation.
>
> :
>a.0_1 = a;
>_2 = (unsigned int) a.0_1;
>b = _2;
> -
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
--- Comment #3 from Aldy Hernandez ---
To elide the foo(), _2 must be non-zero on the 2->3 edge dominating the call.
Interestingly, a.0_1 is non-zero on the 2->3 edge, and we have:
_2 = (unsigned int) a.0_1
but somehow we have no knowledge
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
Richard Biener changed:
What|Removed |Added
CC||aldyh at gcc dot gnu.org,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102540
Martin Liška changed:
What|Removed |Added
Ever confirmed|0 |1
CC|
10 matches
Mail list logo