On Thu, Mar 12, 2020 at 09:20:08AM +0100, Richard Biener wrote:
> On Thu, 12 Mar 2020, Jakub Jelinek wrote:
> 
> > Hi!
> > 
> > As the testcase shows, if DSE decides to head trim 
> > {mem{set,cpy,move},strncpy}
> > and the call has lhs, it is incorrect to leave the lhs as is, because it
> > will then point to the adjusted address (base + head_trim) instead of the
> > original base.
> > The following patch fixes that by dropping the lhs of the call and assigning
> > lhs the original base in a following statement.
> > 
> > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
> 
> OK, but I don't see where you need anything additional frmo gimplify.h?

unshare_expr here:
> > +   gassign *newop = gimple_build_assign (lhs, unshare_expr (*where));

While SSA_NAMEs obviously don't need to be unshared, if it is a gimple
invariant, it might need to be.

        Jakub

Reply via email to