<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 21, 2017 at 12:41 PM, Matthias Braun <span dir="ltr"><<a href="mailto:mbraun@apple.com" target="_blank">mbraun@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>I have reverted the commit(s) now.</div></div></blockquote><div><br></div><div>Thanks! </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>Would you be able to give me preprocessed source or bitcode input for this compilation step? (add -save-temps=obj to the clang commandline). </div></div></blockquote><div><br></div><div>attaching the two files from the bot. </div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>I am having a hard time reproducing this on macOS which isn't supported by msan yet it seems.</div></div></blockquote><div><br></div><div>correct. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span class="HOEnZb"><font color="#888888"><div><br></div><div>- Matthias</div></font></span><div><div class="h5"><div><br></div><div><blockquote type="cite"><div>On Apr 21, 2017, at 11:08 AM, Matthias Braun via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="m_-3331958075922042567Apple-interchange-newline"><div><div style="word-wrap:break-word"><div>It seems this is only one of the bootstrap builders with sanitizers enabled. I will try to fix this in the next 1-2 hours and revert if I can't in that timeframe.</div><div><br></div><div>- Matthias</div><br><div><blockquote type="cite"><div>On Apr 21, 2017, at 10:51 AM, Kostya Serebryany via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="m_-3331958075922042567Apple-interchange-newline"><div><div dir="ltr">The bootstrap bot seems to be unhappy with this change: <div><a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/1298/steps/build%20clang%2Fmsan/logs/stdio" target="_blank">http://lab.llvm.org:8011/<wbr>builders/sanitizer-x86_64-<wbr>linux-bootstrap/builds/1298/<wbr>steps/build%20clang%2Fmsan/<wbr>logs/stdio</a><br></div><div>Please try to fix or revert ASAP. <br></div><div><pre style="font-family:'courier new',courier,monotype,monospace;font-size:inherit"><span class="m_-3331958075922042567gmail-stdout">Assertion `MF.getFrameInfo().<wbr>isFixedObjectIndex(FrameIndex) && "Should only reference fixed stack objects here"' failed.
#0 0x0000000001fd441a llvm::sys::PrintStackTrace(<wbr>llvm::raw_ostream&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x1fd441a)</span></pre></div><div><br></div><div><pre style="font-family:'courier new',courier,monotype,monospace;font-size:inherit"><span class="m_-3331958075922042567gmail-stdout">FAILED: tools/clang/lib/Lex/<wbr>CMakeFiles/clangLex.dir/<wbr>Pragma.cpp.o 
/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang++   -DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_OBJC_REWRITER -DCLANG_ENABLE_STATIC_ANALYZER -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_GLOBAL_ISEL -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/lib/Lex -I/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm/tools/<wbr>clang/lib/Lex -I/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm/tools/<wbr>clang/include -Itools/clang/include -Iinclude -I/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm/include -nostdinc++ -isystem /mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/libcxx_build_<wbr>msan/include -isystem /mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/libcxx_build_<wbr>msan/include/c++/v1  -lc++abi -Wl,--rpath=/mnt/b/sanitizer-<wbr>buildbot2/sanitizer-x86_64-<wbr>linux-bootstrap/build/libcxx_<wbr>build_msan/lib -L/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/libcxx_build_<wbr>msan/lib -fsanitize=memory -w -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fno-omit-frame-pointer -gline-tables-only -fsanitize=memory -fcolor-diagnostics -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3    -UNDEBUG  -fno-exceptions -fno-rtti -MD -MT tools/clang/lib/Lex/<wbr>CMakeFiles/clangLex.dir/<wbr>Pragma.cpp.o -MF tools/clang/lib/Lex/<wbr>CMakeFiles/clangLex.dir/<wbr>Pragma.cpp.o.d -o tools/clang/lib/Lex/<wbr>CMakeFiles/clangLex.dir/<wbr>Pragma.cpp.o -c /mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm/tools/<wbr>clang/lib/Lex/Pragma.cpp
clang-5.0: /mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm/lib/<wbr>Target/X86/X86RegisterInfo.<wbr>cpp:678: virtual void llvm::X86RegisterInfo::<wbr>eliminateFrameIndex(llvm::<wbr>MachineBasicBlock::iterator, int, unsigned int, llvm::RegScavenger*) const: Assertion `MF.getFrameInfo().<wbr>isFixedObjectIndex(FrameIndex) && "Should only reference fixed stack objects here"' failed.
#0 0x0000000001fd441a llvm::sys::PrintStackTrace(<wbr>llvm::raw_ostream&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x1fd441a)
#1 0x0000000001fd219e llvm::sys::RunSignalHandlers() (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x1fd219e)
#2 0x0000000001fd2312 SignalHandler(int) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x1fd2312)
#3 0x00007faca6b24390 __restore_rt (/lib/x86_64-linux-gnu/<wbr>libpthread.so.0+0x11390)
#4 0x00007faca5ab1428 gsignal (/lib/x86_64-linux-gnu/libc.<wbr>so.6+0x35428)
#5 0x00007faca5ab302a abort (/lib/x86_64-linux-gnu/libc.<wbr>so.6+0x3702a)
#6 0x00007faca5aa9bd7 (/lib/x86_64-linux-gnu/libc.<wbr>so.6+0x2dbd7)
#7 0x00007faca5aa9c82 (/lib/x86_64-linux-gnu/libc.<wbr>so.6+0x2dc82)
#8 0x00000000013c5a81 llvm::X86RegisterInfo::<wbr>eliminateFrameIndex(llvm::<wbr>MachineInstrBundleIterator<<wbr>llvm::MachineInstr, false>, int, unsigned int, llvm::RegScavenger*) const (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x13c5a81)
#9 0x00000000018d9143 (anonymous namespace)::PEI::<wbr>replaceFrameIndices(llvm::<wbr>MachineBasicBlock*, llvm::MachineFunction&, int&) [clone .isra.168] [clone .constprop.264] (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x18d9143)
#10 0x00000000018dd169 (anonymous namespace)::PEI::<wbr>runOnMachineFunction(llvm::<wbr>MachineFunction&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x18dd169)
#11 0x0</span><span class="m_-3331958075922042567gmail-stdout">00000000183c905 llvm::MachineFunctionPass::<wbr>runOnFunction(llvm::Function&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x183c905)
</span><span class="m_-3331958075922042567gmail-stdout">#12 0x0000000001b3f113 llvm::FPPassManager::<wbr>runOnFunction(llvm::Function&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x1b3f113)
#13 0x0000000001b3f1dc llvm::FPPassManager::<wbr>runOnModule(llvm::Module&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x1b3f1dc)
#14 0x0000000001b3ec7d llvm::legacy::PassManagerImpl:<wbr>:run(llvm::Module&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x1b3ec7d)
#15 0x0000000002181088 clang::EmitBackendOutput(<wbr>clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_<wbr>pwrite_stream, std::default_delete<llvm::raw_<wbr>pwrite_stream> >) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x2181088)
#16 0x0000000002849769 clang::BackendConsumer::<wbr>HandleTranslationUnit(clang::<wbr>ASTContext&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x2849769)
#17 0x0000000002c0ba28 clang::ParseAST(clang::Sema&, bool, bool) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x2c0ba28)
#18 0x0000000002848a7a clang::CodeGenAction::<wbr>ExecuteAction() (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x2848a7a)
#19 0x0000000002514f96 clang::FrontendAction::<wbr>Execute() (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x2514f96)
#20 0x00000000024e7a26 clang::CompilerInstance::<wbr>ExecuteAction(clang::<wbr>FrontendAction&) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x24e7a26)
#21 0x000000000259d7da clang::<wbr>ExecuteCompilerInvocation(<wbr>clang::CompilerInstance*) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0x259d7da)
#22 0x0000000000ab8078 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0xab8078)
#23 0x0000000000a4bd40 main (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0xa4bd40)
#24 0x00007faca5a9c830 __libc_start_main (/lib/x86_64-linux-gnu/libc.<wbr>so.6+0x20830)
#25 0x0000000000ab4749 _start (/mnt/b/sanitizer-buildbot2/<wbr>sanitizer-x86_64-linux-<wbr>bootstrap/build/llvm_build0/<wbr>bin/clang-5.0+0xab4749)</span></pre></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 20, 2017 at 4:34 PM, Matthias Braun via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: matze<br>
Date: Thu Apr 20 18:34:50 2017<br>
New Revision: 300923<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=300923&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=300923&view=rev</a><br>
Log:<br>
X86RegisterInfo: eliminateFrameIndex: Avoid code duplication; NFC<br>
<br>
X86RegisterInfo::eliminateFram<wbr>eIndex() and<br>
X86FrameLowering::getFrameInde<wbr>xReference() both had logic to compute the<br>
base register. This consolidates the code.<br>
<br>
Also use MachineInstr::isReturn instead of manually enumerating tail<br>
call instructions (return instructions were not included in the previous<br>
list because they never reference frame indexes).<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D32206" rel="noreferrer" target="_blank">https://reviews.llvm.org/D3220<wbr>6</a><br>
<br>
Modified:<br>
    llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.cpp<br>
    llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.h<br>
    llvm/trunk/lib/Target/X86/X86R<wbr>egisterInfo.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp?rev=300923&r1=300922&r2=300923&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Target/X8<wbr>6/X86FrameLowering.cpp?rev=300<wbr>923&r1=300922&r2=300923&view=<wbr>diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.cpp Thu Apr 20 18:34:50 2017<br>
@@ -1783,6 +1783,14 @@ int X86FrameLowering::getFrameInde<wbr>xRefer<br>
   return Offset + FPDelta;<br>
 }<br>
<br>
+int X86FrameLowering::getFrameInde<wbr>xReferenceSP(const MachineFunction &MF,<br>
+                                               int FI, unsigned &FrameReg,<br>
+                                               int Adjustment) const {<br>
+  const MachineFrameInfo &MFI = MF.getFrameInfo();<br>
+  FrameReg = TRI->getStackRegister();<br>
+  return MFI.getObjectOffset(FI) - getOffsetOfLocalArea() + Adjustment;<br>
+}<br>
+<br>
 int<br>
 X86FrameLowering::getFrameInd<wbr>exReferencePreferSP(const MachineFunction &MF,<br>
                                                  int FI, unsigned &FrameReg,<br>
@@ -1839,9 +1847,6 @@ X86FrameLowering::getFrameInde<wbr>xReference<br>
   assert(MF.getInfo<X86MachineF<wbr>unctionInfo>()->getTCReturnAdd<wbr>rDelta() >= 0 &&<br>
          "we don't handle this case!");<br>
<br>
-  // Fill in FrameReg output argument.<br>
-  FrameReg = TRI->getStackRegister();<br>
-<br>
   // This is how the math works out:<br>
   //<br>
   //  %rsp grows (i.e. gets lower) left to right. Each box below is<br>
@@ -1866,12 +1871,8 @@ X86FrameLowering::getFrameInde<wbr>xReference<br>
   // (C - E) == (C - A) - (B - A) + (B - E)<br>
   //            { Using [1], [2] and [3] above }<br>
   //         == getObjectOffset - LocalAreaOffset + StackSize<br>
-  //<br>
-<br>
-  // Get the Offset from the StackPointer<br>
-  int Offset = MFI.getObjectOffset(FI) - getOffsetOfLocalArea();<br>
<br>
-  return Offset + StackSize;<br>
+  return getFrameIndexReferenceSP(MF, FI, FrameReg, StackSize);<br>
 }<br>
<br>
 bool X86FrameLowering::assignCallee<wbr>SavedSpillSlots(<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.h?rev=300923&r1=300922&r2=300923&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Target/X8<wbr>6/X86FrameLowering.h?rev=30092<wbr>3&r1=300922&r2=300923&view=<wbr>diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.h (original)<br>
+++ llvm/trunk/lib/Target/X86/X86F<wbr>rameLowering.h Thu Apr 20 18:34:50 2017<br>
@@ -100,6 +100,8 @@ public:<br>
   int getFrameIndexReference(const MachineFunction &MF, int FI,<br>
                              unsigned &FrameReg) const override;<br>
<br>
+  int getFrameIndexReferenceSP(const MachineFunction &MF,<br>
+                               int FI, unsigned &SPReg, int Adjustment) const;<br>
   int getFrameIndexReferencePreferSP<wbr>(const MachineFunction &MF, int FI,<br>
                                      unsigned &FrameReg,<br>
                                      bool IgnoreSPUpdates) const override;<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86R<wbr>egisterInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=300923&r1=300922&r2=300923&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Target/X8<wbr>6/X86RegisterInfo.cpp?rev=3009<wbr>23&r1=300922&r2=300923&view=<wbr>diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Target/X86/X86R<wbr>egisterInfo.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/X86R<wbr>egisterInfo.cpp Thu Apr 20 18:34:50 2017<br>
@@ -669,33 +669,27 @@ X86RegisterInfo::eliminateFram<wbr>eIndex(Mac<br>
   MachineFunction &MF = *MI.getParent()->getParent();<br>
   const X86FrameLowering *TFI = getFrameLowering(MF);<br>
   int FrameIndex = MI.getOperand(FIOperandNum).ge<wbr>tIndex();<br>
-  unsigned BasePtr;<br>
-<br>
-  unsigned Opc = MI.getOpcode();<br>
-  bool AfterFPPop = Opc == X86::TAILJMPm64 || Opc == X86::TAILJMPm ||<br>
-                    Opc == X86::TCRETURNmi || Opc == X86::TCRETURNmi64;<br>
<br>
-  if (AfterFPPop) {<br>
-    assert(FrameIndex < 0 && "Should only reference fixed stack objects here");<br>
-    BasePtr = StackPtr;<br>
-  } else if (hasBasePointer(MF))<br>
-    BasePtr = (FrameIndex < 0 ? FramePtr : getBaseRegister());<br>
-  else if (needsStackRealignment(MF))<br>
-    BasePtr = (FrameIndex < 0 ? FramePtr : StackPtr);<br>
-  else<br>
-    BasePtr = (TFI->hasFP(MF) ? FramePtr : StackPtr);<br>
+  // Determine base register and offset.<br>
+  int FIOffset;<br>
+  unsigned BasePtr;<br>
+  if (MI.isReturn()) {<br>
+    assert(MF.getFrameInfo().isFix<wbr>edObjectIndex(FrameIndex) &&<br>
+           "Should only reference fixed stack objects here");<br>
+    FIOffset = TFI->getFrameIndexReferenceSP(<wbr>MF, FrameIndex, BasePtr, 0);<br>
+  } else {<br>
+    FIOffset = TFI->getFrameIndexReference(MF<wbr>, FrameIndex, BasePtr);<br>
+  }<br>
<br>
   // LOCAL_ESCAPE uses a single offset, with no register. It only works in the<br>
   // simple FP case, and doesn't work with stack realignment. On 32-bit, the<br>
   // offset is from the traditional base pointer location.  On 64-bit, the<br>
   // offset is from the SP at the end of the prologue, not the FP location. This<br>
   // matches the behavior of llvm.frameaddress.<br>
-  unsigned IgnoredFrameReg;<br>
+  unsigned Opc = MI.getOpcode();<br>
   if (Opc == TargetOpcode::LOCAL_ESCAPE) {<br>
     MachineOperand &FI = MI.getOperand(FIOperandNum);<br>
-    int Offset;<br>
-    Offset = TFI->getFrameIndexReference(MF<wbr>, FrameIndex, IgnoredFrameReg);<br>
-    FI.ChangeToImmediate(Offset);<br>
+    FI.ChangeToImmediate(FIOffset)<wbr>;<br>
     return;<br>
   }<br>
<br>
@@ -711,15 +705,6 @@ X86RegisterInfo::eliminateFram<wbr>eIndex(Mac<br>
   // FrameIndex with base register.  Add an offset to the offset.<br>
   MI.getOperand(FIOperandNum).C<wbr>hangeToRegister(MachineBasePtr<wbr>, false);<br>
<br>
-  // Now add the frame object offset to the offset from EBP.<br>
-  int FIOffset;<br>
-  if (AfterFPPop) {<br>
-    // Tail call jmp happens after FP is popped.<br>
-    const MachineFrameInfo &MFI = MF.getFrameInfo();<br>
-    FIOffset = MFI.getObjectOffset(FrameIndex<wbr>) - TFI->getOffsetOfLocalArea();<br>
-  } else<br>
-    FIOffset = TFI->getFrameIndexReference(MF<wbr>, FrameIndex, IgnoredFrameReg);<br>
-<br>
   if (BasePtr == StackPtr)<br>
     FIOffset += SPAdj;<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>
______________________________<wbr>_________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br></div></blockquote></div><br></div>______________________________<wbr>_________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br></div></blockquote></div><br></div></div></div></blockquote></div><br></div></div>