http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52684
--- Comment #9 from davem at gcc dot gnu.org 2012-05-02 08:09:46 UTC --- Ok, after further study, I think I'm going to propose to fix this in DSE as follows. When we see a CALL in dse.c:scan_insn(), if FRAME_POINTER_REGNUM == ARG_POINTER_REGNUN then we will set insn_info->frame_read to true. A quick test shows that this is sufficient to avoid the erroneous store removals.