[llvm-commits] [llvm] r151104 - /llvm/trunk/lib/Target/ARM/ARMBaseInstrInfo.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Feb 21 15:47:44 PST 2012


Author: stoklund
Date: Tue Feb 21 17:47:43 2012
New Revision: 151104

URL: http://llvm.org/viewvc/llvm-project?rev=151104&view=rev
Log:
Calls don't really change the stack pointer.

Even if a call instruction has %SP<imp-def> operands, it doesn't change
the value of the stack pointer.

Modified:
    llvm/trunk/lib/Target/ARM/ARMBaseInstrInfo.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMBaseInstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMBaseInstrInfo.cpp?rev=151104&r1=151103&r2=151104&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMBaseInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMBaseInstrInfo.cpp Tue Feb 21 17:47:43 2012
@@ -1400,7 +1400,8 @@
   // saves compile time, because it doesn't require every single
   // stack slot reference to depend on the instruction that does the
   // modification.
-  if (MI->definesRegister(ARM::SP))
+  // Calls don't actually change the stack pointer, even if they have imp-defs.
+  if (!MI->isCall() && MI->definesRegister(ARM::SP))
     return true;
 
   return false;





More information about the llvm-commits mailing list