This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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.