[llvm] r282550 - [AArch64][RegisterBankInfo] Switch to statically allocated ValueMapping.
Quentin Colombet via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 27 15:55:04 PDT 2016
Author: qcolombet
Date: Tue Sep 27 17:55:04 2016
New Revision: 282550
URL: http://llvm.org/viewvc/llvm-project?rev=282550&view=rev
Log:
[AArch64][RegisterBankInfo] Switch to statically allocated ValueMapping.
Another step toward TableGen'ed like structure for the RegisterBankInfo
of AArch64. By doing this, we also save a bit of compile time for the
exact same output.
Modified:
llvm/trunk/lib/Target/AArch64/AArch64GenRegisterBankInfo.def
llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
Modified: llvm/trunk/lib/Target/AArch64/AArch64GenRegisterBankInfo.def
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64GenRegisterBankInfo.def?rev=282550&r1=282549&r2=282550&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64GenRegisterBankInfo.def (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64GenRegisterBankInfo.def Tue Sep 27 17:55:04 2016
@@ -65,5 +65,24 @@ RegisterBankInfo::PartialMapping PartMap
{0, 512, FPRRegBank}
};
+// ValueMappings.
+RegisterBankInfo::ValueMapping ValMappings[] {
+ /* BreakDown, NumBreakDowns */
+ // 0: GPR 32-bit value.
+ {&PartMappings[0], 1},
+ // 1: GPR 64-bit value.
+ {&PartMappings[1], 1},
+ // 2: FPR 32-bit value.
+ {&PartMappings[2], 1},
+ // 3: FPR 64-bit value.
+ {&PartMappings[3], 1},
+ // 4: FPR 128-bit value.
+ {&PartMappings[4], 1},
+ // 5: FPR 256-bit value.
+ {&PartMappings[5], 1},
+ // 6: FPR 512-bit value.
+ {&PartMappings[6], 1}
+};
+
} // End AArch64 namespace.
} // End llvm namespace.
Modified: llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp?rev=282550&r1=282549&r2=282550&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp Tue Sep 27 17:55:04 2016
@@ -205,15 +205,11 @@ AArch64RegisterBankInfo::getInstrAlterna
InstructionMapping FPRMapping(/*ID*/ 2, /*Cost*/ 1, /*NumOperands*/ 3);
for (unsigned Idx = 0; Idx != 3; ++Idx) {
GPRMapping.setOperandMapping(
- Idx, getValueMapping(
- &AArch64::PartMappings[AArch64::getRegBankBaseIdx(Size) +
- AArch64::FirstGPR],
- 1));
+ Idx, AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
+ AArch64::FirstGPR]);
FPRMapping.setOperandMapping(
- Idx, getValueMapping(
- &AArch64::PartMappings[AArch64::getRegBankBaseIdx(Size) +
- AArch64::FirstFPR],
- 1));
+ Idx, AArch64::ValMappings[AArch64::getRegBankBaseIdx(Size) +
+ AArch64::FirstFPR]);
}
AltMappings.emplace_back(std::move(GPRMapping));
AltMappings.emplace_back(std::move(FPRMapping));
@@ -324,8 +320,7 @@ AArch64RegisterBankInfo::getInstrMapping
// Finally construct the computed mapping.
for (unsigned Idx = 0; Idx < MI.getNumOperands(); ++Idx)
if (MI.getOperand(Idx).isReg())
- Mapping.setOperandMapping(
- Idx, getValueMapping(&AArch64::PartMappings[OpFinalIdx[Idx]], 1));
+ Mapping.setOperandMapping(Idx, AArch64::ValMappings[OpFinalIdx[Idx]]);
return Mapping;
}
More information about the llvm-commits
mailing list