diff options
author | Jim Grosbach <grosbach@apple.com> | 2013-02-19 18:55:36 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2013-02-19 18:55:36 +0000 |
commit | 4fd4c91c40fa40ae4cd671b03056de8c3c961046 (patch) | |
tree | 54821d20234d8ad7d1866c69b50494d791a9413c /lib/Target/ARM/ARMBaseRegisterInfo.cpp | |
parent | da5f1ed6406442735fbb4421f8a22bc8a41d4c57 (diff) | |
download | llvm-4fd4c91c40fa40ae4cd671b03056de8c3c961046.tar.gz llvm-4fd4c91c40fa40ae4cd671b03056de8c3c961046.tar.bz2 llvm-4fd4c91c40fa40ae4cd671b03056de8c3c961046.tar.xz |
ARM: Allocation hints must make sure to be in the alloc order.
When creating an allocation hint for a register pair, make sure the hint
for the physical register reference is still in the allocation order.
rdar://13240556
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175541 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMBaseRegisterInfo.cpp')
-rw-r--r-- | lib/Target/ARM/ARMBaseRegisterInfo.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp index 0deafae738..db33d540a4 100644 --- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -205,7 +205,8 @@ ARMBaseRegisterInfo::getRegAllocationHints(unsigned VirtReg, } // First prefer the paired physreg. - if (PairedPhys) + if (PairedPhys && + std::find(Order.begin(), Order.end(), PairedPhys) != Order.end()) Hints.push_back(PairedPhys); // Then prefer even or odd registers. |