<div dir="ltr"><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">ÁÖ×÷½¡</b> <span dir="ltr"><<a href="mailto:manjian2006@gmail.com">manjian2006@gmail.com</a>></span><br>
Date: 2013/10/11<br>Subject: Re: patch to Bug 17545 - X86FrameLowering::getFrameIndexOffset generates wrong offsets<br>To: Anton Korobeynikov <<a href="mailto:anton@korobeynikov.info">anton@korobeynikov.info</a>><br>
<br><br><div dir="ltr">Sorry.I see the problem I cause now.Here's the test case.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">2013/10/11 Anton Korobeynikov <span dir="ltr"><<a href="mailto:anton@korobeynikov.info" target="_blank">anton@korobeynikov.info</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The patch is definitely wrong, however, please provide the testcase<br>
where the current code yields the wrong offsets.<br>
<div><div><br>
On Fri, Oct 11, 2013 at 11:20 AM, ÁÖ×÷½¡ <<a href="mailto:manjian2006@gmail.com" target="_blank">manjian2006@gmail.com</a>> wrote:<br>
> Index: lib/Target/X86/X86FrameLowering.cpp<br>
> ===================================================================<br>
> --- lib/Target/X86/X86FrameLowering.cpp (revision 192411)<br>
> +++ lib/Target/X86/X86FrameLowering.cpp (working copy)<br>
> @@ -905,7 +905,7 @@<br>
>    const X86RegisterInfo *RegInfo =<br>
>      static_cast<const X86RegisterInfo*>(MF.getTarget().getRegisterInfo());<br>
>    const MachineFrameInfo *MFI = MF.getFrameInfo();<br>
> -  int Offset = MFI->getObjectOffset(FI) - getOffsetOfLocalArea();<br>
> +  int Offset = MFI->getObjectOffset(FI);<br>
>    uint64_t StackSize = MFI->getStackSize();<br>
><br>
>    if (RegInfo->hasBasePointer(MF)) {<br>
> Index: lib/CodeGen/MachineFunction.cpp<br>
> ===================================================================<br>
> --- lib/CodeGen/MachineFunction.cpp (revision 192411)<br>
> +++ lib/CodeGen/MachineFunction.cpp (working copy)<br>
> @@ -644,9 +644,6 @@<br>
>  void MachineFrameInfo::print(const MachineFunction &MF, raw_ostream &OS)<br>
> const{<br>
>    if (Objects.empty()) return;<br>
><br>
> -  const TargetFrameLowering *FI = MF.getTarget().getFrameLowering();<br>
> -  int ValOffset = (FI ? FI->getOffsetOfLocalArea() : 0);<br>
> -<br>
>    OS << "Frame Objects:\n";<br>
><br>
>    for (unsigned i = 0, e = Objects.size(); i != e; ++i) {<br>
> @@ -665,7 +662,7 @@<br>
>      if (i < NumFixedObjects)<br>
>        OS << ", fixed";<br>
>      if (i < NumFixedObjects || SO.SPOffset != -1) {<br>
> -      int64_t Off = SO.SPOffset - ValOffset;<br>
> +      int64_t Off = SO.SPOffset;<br>
>        OS << ", at location [SP";<br>
>        if (Off > 0)<br>
>          OS << "+" << Off;<br>
><br>
><br>
</div></div>> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
><br>
<span><font color="#888888"><br>
<br>
<br>
--<br>
With best regards, Anton Korobeynikov<br>
Faculty of Mathematics and Mechanics, Saint Petersburg State University<br>
</font></span></blockquote></div><br></div>
</div></div></div><br></div>