https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114774
--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> --- On Fri, 19 Apr 2024, hubicka at ucw dot cz wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114774 > > --- Comment #3 from Jan Hubicka <hubicka at ucw dot cz> --- > > Yes, DSE walking doesn't "branch" but goes to some length handling some > > trivial > > branches only. Mainly to avoid compile-time issues. It needs larger > > re-structuring to fix that, but in principle it shouldn't be difficult. > > Looking into it, instead of having simple outer loop it needs to > maintain worklist of defs to proceed each annotated with live bitmap, > rigt? Yeah, I have some patch on some branch somewhere ... IIRC it was broken and miscompiled things and I got distracted ... I will eventually get back to DSE for stage1 also because of some other PRs. > With Maritn we noticed it while looking into push_back codegen. In case > aggregate is passed to a function call but does not escape, we now SRA > it removing all uses and corresponding clobbers, but we do not remove the > stores (Martin was expecting DSE to do it). As a result the store stays > around which causes partial memory stall (storing in pieces, loading as > a whole). It seems easy to remove this specific store during SRA, but it > seems improving DSE here would be desirable. Yes.