summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMExpandPseudoInsts.cpp
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-11-06 23:05:24 +0000
committerChad Rosier <mcrosier@apple.com>2012-11-06 23:05:24 +0000
commite7bd51980a1341fb60322e5922cfcc0c9b92b165 (patch)
treed130945cf2830428d7948661aa80b528f1422c87 /lib/Target/ARM/ARMExpandPseudoInsts.cpp
parent7979b24e5cd4a99db6af3fcd66d9f514f02d11db (diff)
downloadllvm-e7bd51980a1341fb60322e5922cfcc0c9b92b165.tar.gz
llvm-e7bd51980a1341fb60322e5922cfcc0c9b92b165.tar.bz2
llvm-e7bd51980a1341fb60322e5922cfcc0c9b92b165.tar.xz
Mark the Int_eh_sjlj_dispatchsetup pseudo instruction as clobbering all
registers. Previously, the register we being marked as implicitly defined, but not killed. In some cases this would cause the register scavenger to spill a dead register. Also, use an empty register mask to simplify the logic and to reduce the memory footprint. rdar://12592448 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167499 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMExpandPseudoInsts.cpp')
-rw-r--r--lib/Target/ARM/ARMExpandPseudoInsts.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMExpandPseudoInsts.cpp b/lib/Target/ARM/ARMExpandPseudoInsts.cpp
index f7c8a9c2dc..8c45e0b98d 100644
--- a/lib/Target/ARM/ARMExpandPseudoInsts.cpp
+++ b/lib/Target/ARM/ARMExpandPseudoInsts.cpp
@@ -777,9 +777,7 @@ bool ARMExpandPseudo::ExpandMI(MachineBasicBlock &MBB,
MI.eraseFromParent();
return true;
}
- case ARM::Int_eh_sjlj_dispatchsetup:
- case ARM::Int_eh_sjlj_dispatchsetup_nofp:
- case ARM::tInt_eh_sjlj_dispatchsetup: {
+ case ARM::Int_eh_sjlj_dispatchsetup: {
MachineFunction &MF = *MI.getParent()->getParent();
const ARMBaseInstrInfo *AII =
static_cast<const ARMBaseInstrInfo*>(TII);