https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91006
Martin Jambor <jamborm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jamborm at gcc dot gnu.org --- Comment #7 from Martin Jambor <jamborm at gcc dot gnu.org> --- (In reply to Jan Hubicka from comment #2) > Martin, > I also guess an interesting question is why extra MEM_REF prevents > ipa-sra from considering the function argument dead? > I'm not entirely sure I understand the question correctly but if you're asking why A::A and A::~A are left untouched in testsuite/g++.dg/opt/flifetime-dse2.C (on x86_64-linux), that is because they are not local (the eipa_sra dump even says so). On a related note, I believe that new IPA-SRA with -flto would also remove them. It should not be terribly difficult to move/copy clobbers from a single predecessor of the exit BB to the caller though.