[Bug tree-optimization/92750] DSE fails to remove all dead clobbers
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 25 03:17:48 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92750
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2025-07-25
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.
D.225026 ={v} {CLOBBER(eos)};
MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
- MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
- MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
- MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
- MEM[(struct Vec *)&a] ={v} {CLOBBER(bob)};
_48 = (unsigned char) invA_8;
MEM[(struct Vec *)&a].val = _48;
MEM[(struct Vec *)&a + 1B] ={v} {CLOBBER(bob)};
MEM[(struct Vec *)&a + 1B].val = _48;
MEM[(struct Vec *)&a + 2B] ={v} {CLOBBER(bob)};
- MEM[(struct Vec *)&a + 2B] ={v} {CLOBBER(bob)};
MEM[(struct Vec *)&a + 2B].val = _48;
still happens.
I would assume since (in this case) struct Vec is sizeof(1) and the store
`MEM[(struct Vec *)&a + 2B].val` stores the whole thing, then the clobber could
be removed too.
More information about the Gcc-bugs
mailing list