http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52684

--- Comment #8 from davem at gcc dot gnu.org 2012-05-02 07:23:56 UTC ---
I can't see how the current DSE code can properly handle this case, and I'm
surprised this doesn't trigger more often.

The outgoing args are stored to offsets of FRAME_POINTER_REGNUM, even
though this is before reload.  This causes DSE to set ->frame_related

However I can't see anything that takes into account that these locations in
the frame are read by the CALL_INSN.

There is some weird commentary in the description of the insn_info->frame_read
field in dse.c which talks about how "the stores related to outgoing arguments
are stack pointer based and thus deemed of non-constant base in this pass" but
as explained above that is simply not true here.

Reply via email to