This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, rs6000] Fix PR72827 (ada bootstrap failure)


On 09/06/2016 04:14 PM, Segher Boessenkool wrote:
On Tue, Sep 06, 2016 at 03:24:24PM -0600, Jeff Law wrote:
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.

We could simply check if the frame pointer (or stack pointer) is changed
while RTX_FRAME_RELATED_P is not set?  Can that ever happen on "proper"
code?
Worth a try, though I'm not convinced we're setting RTX_FRAME_RELATED_P correctly, particularly for the legacy targets.
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]