[PATCH] D110809: [AArch64] Disable AArch64StorePairSuppress under optsize

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 30 03:39:46 PDT 2021


dmgreen created this revision.
dmgreen added reviewers: SjoerdMeijer, efriedma, t.p.northover, fhahn.
Herald added subscribers: hiraditya, kristof.beyls.
dmgreen requested review of this revision.
Herald added a project: LLVM.

AArch64StorePairSuppress will prevent the creation of LDP's based on scheduling info. This shouldn't apply when optimizing for size though, where the size decrease should be considered more important.


https://reviews.llvm.org/D110809

Files:
  llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
  llvm/test/CodeGen/AArch64/storepairsuppress_minsize.ll


Index: llvm/test/CodeGen/AArch64/storepairsuppress_minsize.ll
===================================================================
--- llvm/test/CodeGen/AArch64/storepairsuppress_minsize.ll
+++ llvm/test/CodeGen/AArch64/storepairsuppress_minsize.ll
@@ -38,12 +38,9 @@
 ; CHECK-NEXT:    bl return_in_block
 ; CHECK-NEXT:    adrp x8, in_block_store
 ; CHECK-NEXT:    add x8, x8, :lo12:in_block_store
-; CHECK-NEXT:    str d0, [x8]
-; CHECK-NEXT:    str d1, [x8, #8]
-; CHECK-NEXT:    str d2, [x8, #16]
-; CHECK-NEXT:    str d3, [x8, #24]
-; CHECK-NEXT:    str d4, [x8, #32]
-; CHECK-NEXT:    str d5, [x8, #40]
+; CHECK-NEXT:    stp d0, d1, [x8]
+; CHECK-NEXT:    stp d2, d3, [x8, #16]
+; CHECK-NEXT:    stp d4, d5, [x8, #32]
 ; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload
 ; CHECK-NEXT:    ret
   %1 = call %T_IN_BLOCK @return_in_block()
@@ -60,12 +57,9 @@
 ; CHECK-NEXT:    bl return_in_block
 ; CHECK-NEXT:    adrp x8, in_block_store
 ; CHECK-NEXT:    add x8, x8, :lo12:in_block_store
-; CHECK-NEXT:    str d0, [x8]
-; CHECK-NEXT:    str d1, [x8, #8]
-; CHECK-NEXT:    str d2, [x8, #16]
-; CHECK-NEXT:    str d3, [x8, #24]
-; CHECK-NEXT:    str d4, [x8, #32]
-; CHECK-NEXT:    str d5, [x8, #40]
+; CHECK-NEXT:    stp d0, d1, [x8]
+; CHECK-NEXT:    stp d2, d3, [x8, #16]
+; CHECK-NEXT:    stp d4, d5, [x8, #32]
 ; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload
 ; CHECK-NEXT:    ret
   %1 = call %T_IN_BLOCK @return_in_block()
Index: llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
===================================================================
--- llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
+++ llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
@@ -119,7 +119,7 @@
 }
 
 bool AArch64StorePairSuppress::runOnMachineFunction(MachineFunction &MF) {
-  if (skipFunction(MF.getFunction()))
+  if (skipFunction(MF.getFunction()) || MF.getFunction().hasOptSize())
     return false;
 
   const TargetSubtargetInfo &ST = MF.getSubtarget();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D110809.376148.patch
Type: text/x-patch
Size: 1979 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210930/fde2fc5d/attachment.bin>


More information about the llvm-commits mailing list