[PATCH] D43982: [GlobalISel][ARM] Adding HPR and QPR regclasses to FPRB regbank
Roman Tereshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 16 21:37:21 PDT 2018
rtereshin updated this revision to Diff 147236.
rtereshin added a comment.
Removing Testgen'erated tests as I'm eliminating the dependency of https://reviews.llvm.org/D44700 (InstructionSelect perf patch) from https://reviews.llvm.org/D43962 (Testgen) and pushing the perf patch sooner and the perf patch depends on this one.
If the perf patch applied in front of this one a number of regression tests will fail therefore this will be immediately tested by the existing tests.
Repository:
rL LLVM
https://reviews.llvm.org/D43982
Files:
lib/Target/ARM/ARMInstructionSelector.cpp
lib/Target/ARM/ARMRegisterBankInfo.cpp
lib/Target/ARM/ARMRegisterBanks.td
Index: lib/Target/ARM/ARMRegisterBanks.td
===================================================================
--- lib/Target/ARM/ARMRegisterBanks.td
+++ lib/Target/ARM/ARMRegisterBanks.td
@@ -11,4 +11,4 @@
//===----------------------------------------------------------------------===//
def GPRRegBank : RegisterBank<"GPRB", [GPR, GPRwithAPSR]>;
-def FPRRegBank : RegisterBank<"FPRB", [SPR, DPR]>;
+def FPRRegBank : RegisterBank<"FPRB", [HPR, SPR, DPR, QPR]>;
Index: lib/Target/ARM/ARMRegisterBankInfo.cpp
===================================================================
--- lib/Target/ARM/ARMRegisterBankInfo.cpp
+++ lib/Target/ARM/ARMRegisterBankInfo.cpp
@@ -175,15 +175,20 @@
switch (RC.getID()) {
case GPRRegClassID:
+ case GPRwithAPSRRegClassID:
case GPRnopcRegClassID:
+ case rGPRRegClassID:
case GPRspRegClassID:
case tGPR_and_tcGPRRegClassID:
+ case tcGPRRegClassID:
case tGPRRegClassID:
return getRegBank(ARM::GPRRegBankID);
+ case HPRRegClassID:
case SPR_8RegClassID:
case SPRRegClassID:
case DPR_8RegClassID:
case DPRRegClassID:
+ case QPRRegClassID:
return getRegBank(ARM::FPRRegBankID);
default:
llvm_unreachable("Unsupported register kind");
Index: lib/Target/ARM/ARMInstructionSelector.cpp
===================================================================
--- lib/Target/ARM/ARMInstructionSelector.cpp
+++ lib/Target/ARM/ARMInstructionSelector.cpp
@@ -134,6 +134,8 @@
return &ARM::SPRRegClass;
else if (Size == 64)
return &ARM::DPRRegClass;
+ else if (Size == 128)
+ return &ARM::QPRRegClass;
else
llvm_unreachable("Unsupported destination size");
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43982.147236.patch
Type: text/x-patch
Size: 1671 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180517/81f04778/attachment.bin>
More information about the llvm-commits
mailing list