[llvm] [AArch64] Separate PNR into its own Register Class (PR #65306)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 11 08:58:13 PDT 2023


================
@@ -61,6 +63,49 @@ body:             |
     RET_ReallyLR
 ...
 ---
+name: spills_fills_stack_id_pnr
+tracksRegLiveness: true
+registers:
+  - { id: 0, class: pnr }
+stack:
+liveins:
+  - { reg: '$pn0', virtual-reg: '%0' }
+body:             |
+  bb.0.entry:
+    liveins: $pn0
+
+    ; CHECK-LABEL: name: spills_fills_stack_id_pnr
+    ; CHECK: stack:
+    ; CHECK:      - { id: 0, name: '', type: spill-slot, offset: 0, size: 2, alignment: 2
+    ; CHECK-NEXT:     stack-id: scalable-vector, callee-saved-register: ''
+
+    ; EXPAND-LABEL: name: spills_fills_stack_id_pnr
+    ; EXPAND: STR_PXI $pn0, $sp, 7
----------------
sdesmalen-arm wrote:

This doesn't look entirely right because STR_PXI can't store $pn0, but it can store $p0.

I'm not sure if this is a problem though, because the encoding of `$pn0` and `$p0` is the same. Could you add the verifier to the RUN line, so that we know whether or not the MIR verifier accepts it?

https://github.com/llvm/llvm-project/pull/65306


More information about the llvm-commits mailing list