[PATCH] D48580: [AArch64] Support reserving x1-7 registers.

Petr Hosek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 26 14:54:00 PDT 2018


phosek added inline comments.


================
Comment at: lib/Target/AArch64/AArch64.td:75
 
-def FeatureReserveX18 : SubtargetFeature<"reserve-x18", "ReserveX18", "true",
-                                         "Reserve X18, making it unavailable "
-                                         "as a GPR">;
-
-def FeatureReserveX20 : SubtargetFeature<"reserve-x20", "ReserveX20", "true",
-                                         "Reserve X20, making it unavailable "
-                                         "as a GPR">;
+foreach i = {1-7,18,20} in
+    def FeatureReserveX#i : SubtargetFeature<"reserve-x"#i, "ReserveXRegister["#i#"]", "true",
----------------
Since you're already making this change, can we support reserving all 32 registers?


================
Comment at: lib/Target/AArch64/AArch64RegisterInfo.cpp:413
+    {
+    int numReserved = 0;
+    for (size_t i = 0; i < AArch64::GPR64commonRegClass.getNumRegs(); ++i) {
----------------
Just a nit, but this should be `NumReserved`.


================
Comment at: lib/Target/AArch64/AArch64Subtarget.h:135
+  // ReserveXRegister[i] - X#i is not available as a general purpose register.
+  bool ReserveXRegister[31];
 
----------------
Can we make this a `BitVector`?


Repository:
  rL LLVM

https://reviews.llvm.org/D48580





More information about the llvm-commits mailing list