On 08/31/2016 01:08 AM, Eric Botcazou wrote:
DSE should really detect this is happening and not do the wrong thing.
Maybe add an assert somewhere? Much easier to debug, that way.
That sounds fragile, functions are allowed to fiddle with the frame pointer in
the prologue or epilogue (but of course not in the body). I think that DSE is
not the only RTL pass which makes this assumption of invariant frame pointer
in the body, it seems rather fundamental in the RTL middle-end.
That's my recollection as well -- I recall many patches flying by
through the years that assumed the frame pointer was invariant -- but
they were mostly (all?) in things that ran before we add the
prologue/epilogue to the INSN chain.
jeff