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.

llvm-svn: 151104
This commit is contained in:
Jakob Stoklund Olesen 2012-02-21 23:47:43 +00:00
parent 15c7539a46
commit f585983be9

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;