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: PR target/24419: ix86 prologue clobbers memory when it shouldn't


On Wed, Oct 19, 2005 at 01:43:33AM -0700, Richard Henderson wrote:
> On Tue, Oct 18, 2005 at 08:57:14PM -0700, H. J. Lu wrote:
> > clobber_memory == false is when we call pro_epilogue_adjust_stack
> > after registers have been saved on stack:
> ...
> >     pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
> > 			       GEN_INT (-allocate), -1, !using_mov);
> > 
> > Is there anything wrong?
> 
> Yes.  I'll say this one more time, loudly:
> 
>             USING MOVE OR PUSH HAS NOTHING TO DO WITH WHETHER
>                          THE CLOBBER IS NEEDED
> 
> It has everything to do with whether a frame pointer is used,
> and blocking memory references from crossing the allocation
> boundary.
> 
> I've yet to even hear you *pretend* to defend the correctness
> of the changes in your patch.  You have no idea why you're doing
> what you're doing, do you?  You've simply got "clobber bad"
> running through your head and you're blindly attacking everything
> containing "clobber".
> 
> Do not, as you are wont to do, re-post 15 more versions with
> "fixed typos" until you address the core problems.  Preferably
> by listening to me instead of ignoring me.

I am trying to understand you. You said that the memory clobber was
to prevent

        push %ebp
        movl %esp, %ebp
        subl $100, %esp
        leal -32(%ebp), %ecx
        movl $1, (%ecx)

from being rescheduled as

        push %ebp
        movl %esp, %ebp
        leal -32(%ebp), %ecx
        movl $1, (%ecx)
        subl $100, %esp

If there is a 128 byte red zone and this sequence only appears in
function prologue, will this still be a problem?


H.J.


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