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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151104 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen 2012-02-21 23:47:43 +00:00
parent 4586d257ab
commit a1aa8db517

View File

@ -1400,7 +1400,8 @@ bool ARMBaseInstrInfo::isSchedulingBoundary(const MachineInstr *MI,
// 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;