https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93891
--- Comment #5 from CVS Commits ---
The master branch has been updated by Richard Biener :
https://gcc.gnu.org/g:367766f40a031ff064857681dc4da3309f0ce57d
commit r11-41-g367766f40a031ff064857681dc4da3309f0ce57d
Author: Richard Biener
Date: Tu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93891
--- Comment #6 from Richard Biener ---
Not yet fixed.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93891
--- Comment #1 from Marc Glisse ---
On the original code (I can attach it if needed, but it is large, it is
resizing a std::vector with reference-counted elements) FRE3 fails to simplify
MEM[(struct Handle_for *)__cur_16] ={v} {CLOBBER};
_17
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93891
Richard Biener changed:
What|Removed |Added
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93891
--- Comment #3 from Richard Biener ---
So FRE/PRE see
_91 = __MEM ((const struct A &)__first_58).p;
__MEM (__cur_59).p = _91;
_92 = __MEM (_91);
if (_92 <= 0)
goto __BB5(precise(0));
else
goto __BB6(precise(134217728));
_
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93891
--- Comment #4 from Richard Biener ---
While the last_vuse thing was originally added for PRE it's also useful for
FRE as the following testcase shows:
int foo(int *p, int b, float *q)
{
int tem;
if (b)
{
*q = 0;
tem = *p;