summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
diff options
context:
space:
mode:
authorDaniel Sanders <daniel_l_sanders@apple.com>2016-12-06 14:39:57 +0000
committerDaniel Sanders <daniel_l_sanders@apple.com>2016-12-06 14:39:57 +0000
commit4fd1e7c628b6048b8c0f455bbe06b8c8c614335e (patch)
tree2b8e2b854bf9116f1507753006eaa52e5de25338 /llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
parent1b8eb4104b6198785c164be4a451fc04e03bd371 (diff)
downloadbcm5719-llvm-4fd1e7c628b6048b8c0f455bbe06b8c8c614335e.tar.gz
bcm5719-llvm-4fd1e7c628b6048b8c0f455bbe06b8c8c614335e.zip
[globalisel][aarch64] Fix unintended assumptions about PartialMappingIdx. NFC.
Summary: This is NFC but prevents assertions when PartialMappingIdx is tablegen-erated. The assumptions were: 1) FirstGPR is 0 2) FirstGPR is the first of the First* enumerators. GPR32 is changed to 1 to demonstrate that assumption #1 is fixed. #2 will be covered by a subsequent patch that tablegen-erates information and swaps the order of GPR and FPR as a side effect. Depends on D27336 Reviewers: ab, t.p.northover, qcolombet Subscribers: aemerson, rengolin, vkalintiris, dberris, rovka, llvm-commits Differential Revision: https://reviews.llvm.org/D27337 llvm-svn: 288812
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp')
-rw-r--r--llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
index 0638b41b341..ef6c869e3ff 100644
--- a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
@@ -115,8 +115,9 @@ AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
#define CHECK_PARTIALMAP(Idx, ValStartIdx, ValLength, RB) \
do { \
const PartialMapping &Map = \
- AArch64::PartMappings[AArch64::PartialMappingIdx::Idx]; \
- (void) Map; \
+ AArch64::PartMappings[AArch64::PartialMappingIdx::Idx - \
+ AArch64::PartialMappingIdx::PMI_Min]; \
+ (void)Map; \
assert(Map.StartIdx == ValStartIdx && Map.Length == ValLength && \
Map.RegBank == &RB && #Idx " is incorrectly initialized"); \
} while (0)
@@ -132,12 +133,13 @@ AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
// Check value mapping.
#define CHECK_VALUEMAP_IMPL(RBName, Size, Offset) \
do { \
- AArch64::PartialMappingIdx PartialMapBaseIdx = \
- AArch64::PartialMappingIdx::PMI_##RBName##Size; \
- (void) PartialMapBaseIdx; \
- const ValueMapping &Map = \
- AArch64::getValueMapping(AArch64::PMI_First##RBName, Size)[Offset]; \
- (void) Map; \
+ unsigned PartialMapBaseIdx = \
+ AArch64::PartialMappingIdx::PMI_##RBName##Size - \
+ AArch64::PartialMappingIdx::PMI_Min; \
+ (void)PartialMapBaseIdx; \
+ const ValueMapping &Map = AArch64::getValueMapping( \
+ AArch64::PartialMappingIdx::PMI_First##RBName, Size)[Offset]; \
+ (void)Map; \
assert(Map.BreakDown == &AArch64::PartMappings[PartialMapBaseIdx] && \
Map.NumBreakDowns == 1 && #RBName #Size \
" " #Offset " is incorrectly initialized"); \
@@ -172,10 +174,10 @@ AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
#define CHECK_VALUEMAP_CROSSREGCPY(RBNameDst, RBNameSrc, Size) \
do { \
- AArch64::PartialMappingIdx PartialMapDstIdx = \
- AArch64::PartialMappingIdx::PMI_##RBNameDst##Size; \
- AArch64::PartialMappingIdx PartialMapSrcIdx = \
- AArch64::PartialMappingIdx::PMI_##RBNameSrc##Size; \
+ unsigned PartialMapDstIdx = \
+ AArch64::PMI_##RBNameDst##Size - AArch64::PMI_Min; \
+ unsigned PartialMapSrcIdx = \
+ AArch64::PMI_##RBNameSrc##Size - AArch64::PMI_Min; \
(void) PartialMapDstIdx; \
(void) PartialMapSrcIdx; \
const ValueMapping *Map = AArch64::getCopyMapping( \
OpenPOWER on IntegriCloud