summaryrefslogtreecommitdiff
path: root/lib/CodeGen/LocalStackSlotAllocation.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2013-11-29 06:35:30 +0000
committerLang Hames <lhames@gmail.com>2013-11-29 06:35:30 +0000
commitd7d0669b4bb30f8f5e292c7e3d54d963328f2231 (patch)
treec5f75f5be98a4c67a2d2e7a5d9909f1c29aaf74e /lib/CodeGen/LocalStackSlotAllocation.cpp
parent4dd359fcde2432289c66a62beab232601e4d5248 (diff)
downloadllvm-d7d0669b4bb30f8f5e292c7e3d54d963328f2231.tar.gz
llvm-d7d0669b4bb30f8f5e292c7e3d54d963328f2231.tar.bz2
llvm-d7d0669b4bb30f8f5e292c7e3d54d963328f2231.tar.xz
Teach LocalStackSlotAllocation that stackmaps/patchpoints don't have range
constraints on their frame offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195950 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LocalStackSlotAllocation.cpp')
-rw-r--r--lib/CodeGen/LocalStackSlotAllocation.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/CodeGen/LocalStackSlotAllocation.cpp b/lib/CodeGen/LocalStackSlotAllocation.cpp
index 26a117652b..80a6da0f93 100644
--- a/lib/CodeGen/LocalStackSlotAllocation.cpp
+++ b/lib/CodeGen/LocalStackSlotAllocation.cpp
@@ -233,9 +233,11 @@ bool LocalStackSlotPass::insertFrameReferenceRegisters(MachineFunction &Fn) {
for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ++I) {
MachineInstr *MI = I;
- // Debug value instructions can't be out of range, so they don't need
- // any updates.
- if (MI->isDebugValue())
+ // Debug value, stackmap and patchpoint instructions can't be out of
+ // range, so they don't need any updates.
+ if (MI->isDebugValue() ||
+ MI->getOpcode() == TargetOpcode::STACKMAP ||
+ MI->getOpcode() == TargetOpcode::PATCHPOINT)
continue;
// For now, allocate the base register(s) within the basic block