[PATCH] D133921: [PowerPC][NFC] Add virtual call to show redundant spill of vector registers

Ting Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 15 01:24:01 PDT 2022


tingwang created this revision.
tingwang added reviewers: lkail, nemanjai, shchenz, PowerPC.
tingwang added a project: LLVM.
Herald added a subscriber: qcolombet.
Herald added a project: All.
tingwang requested review of this revision.
Herald added a subscriber: llvm-commits.

Update base test case for https://reviews.llvm.org/D133466.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D133921

Files:
  llvm/test/CodeGen/PowerPC/aix64-vector-pair-cc-spills.ll


Index: llvm/test/CodeGen/PowerPC/aix64-vector-pair-cc-spills.ll
===================================================================
--- llvm/test/CodeGen/PowerPC/aix64-vector-pair-cc-spills.ll
+++ llvm/test/CodeGen/PowerPC/aix64-vector-pair-cc-spills.ll
@@ -109,4 +109,57 @@
   ret void
 }
 
+; Error pattern will be fixed in https://reviews.llvm.org/D133466
+; CHECK-LABEL: name: virtualCall
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v31'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v30'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v29'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v28'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v27'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v26'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v25'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v24'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v23'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v22'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v21'
+; CHECK: spill-slot
+; CHECK-NEXT: callee-saved-register: '$v20'
+
+; CHECK-VEXT-LABEL: name: virtualCall
+; CHECK-VEXT-NOT: spill-slot
+; CHECK-VEXT-NOT: callee-saved-register: '$v31'
+; CHECK-VEXT-NOT: callee-saved-register: '$v30'
+; CHECK-VEXT-NOT: callee-saved-register: '$v29'
+; CHECK-VEXT-NOT: callee-saved-register: '$v28'
+; CHECK-VEXT-NOT: callee-saved-register: '$v27'
+; CHECK-VEXT-NOT: callee-saved-register: '$v26'
+; CHECK-VEXT-NOT: callee-saved-register: '$v25'
+; CHECK-VEXT-NOT: callee-saved-register: '$v24'
+; CHECK-VEXT-NOT: callee-saved-register: '$v23'
+; CHECK-VEXT-NOT: callee-saved-register: '$v22'
+; CHECK-VEXT-NOT: callee-saved-register: '$v21'
+; CHECK-VEXT-NOT: callee-saved-register: '$v20'
+define dso_local noundef signext i32 @virtualCall(ptr noundef %b) #0 {
+entry:
+  %b.addr = alloca ptr, align 8
+  store ptr %b, ptr %b.addr, align 8
+  %0 = load ptr, ptr %b.addr, align 8
+  %vtable = load ptr, ptr %0, align 8
+  %vfn = getelementptr inbounds ptr, ptr %vtable, i64 0
+  %1 = load ptr, ptr %vfn, align 8
+  %call = call noundef signext i32 %1(ptr noundef nonnull align 8 dereferenceable(8) %0)
+  ret i32 %call
+}
+
 declare void @bar(i32)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133921.460320.patch
Type: text/x-patch
Size: 2302 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220915/ae5b67d7/attachment.bin>


More information about the llvm-commits mailing list