From: Quentin Colombet Date: Fri, 30 Sep 2016 21:45:56 +0000 (+0000) Subject: [AArch64][RegisterBankInfo] Use the static opds mapping for alt mappings X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=da69cdaaf8bd689f730593d10846090b4e491f4c;p=llvm [AArch64][RegisterBankInfo] Use the static opds mapping for alt mappings Avoid to rely on the dynamically allocated operands mapping for the alternative mapping. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282956 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AArch64/AArch64RegisterBankInfo.cpp b/lib/Target/AArch64/AArch64RegisterBankInfo.cpp index 90faa42010e..f3ef78384fb 100644 --- a/lib/Target/AArch64/AArch64RegisterBankInfo.cpp +++ b/lib/Target/AArch64/AArch64RegisterBankInfo.cpp @@ -248,20 +248,13 @@ AArch64RegisterBankInfo::getInstrAlternativeMappings( /*NumOperands*/ 3); InstructionMapping FPRMapping(/*ID*/ 2, /*Cost*/ 1, nullptr, /*NumOperands*/ 3); - GPRMapping.setOperandsMapping(getOperandsMapping( - {&AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) + - AArch64::FirstGPR], - &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) + - AArch64::FirstGPR], - &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) + - AArch64::FirstGPR]})); - FPRMapping.setOperandsMapping(getOperandsMapping( - {&AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) + - AArch64::FirstFPR], - &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) + - AArch64::FirstFPR], - &AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) + - AArch64::FirstFPR]})); + unsigned RBIdx = AArch64::getRegBankBaseIdx(Size); + GPRMapping.setOperandsMapping( + &AArch64::ValMappings[AArch64::First3OpsIdx + + (RBIdx + AArch64::FirstGPR) * 3]); + FPRMapping.setOperandsMapping( + &AArch64::ValMappings[AArch64::First3OpsIdx + + (RBIdx + AArch64::FirstFPR) * 3]); AltMappings.emplace_back(std::move(GPRMapping)); AltMappings.emplace_back(std::move(FPRMapping)); return AltMappings;