[PATCH] D134582: [LoongArch] Support lowering frames larger than 2048 bytes

WÁNG Xuěruì via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 26 05:25:17 PDT 2022


xen0n marked an inline comment as done.
xen0n added inline comments.


================
Comment at: llvm/test/CodeGen/LoongArch/frame.ll:42-64
+define void @test_large_frame_size_2032(ptr byval(%size2016) %x) {
+; CHECK-LABEL: test_large_frame_size_2032:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    addi.d $sp, $sp, -2032
+; CHECK-NEXT:    .cfi_def_cfa_offset 2032
+; CHECK-NEXT:    st.d $ra, $sp, 2024 # 8-byte Folded Spill
+; CHECK-NEXT:    st.d $fp, $sp, 2016 # 8-byte Folded Spill
----------------
SixWeining wrote:
> How about this IR which is simpler:
> 
> ```
> define void @test_large_frame_size_2032() {
> ; CHECK-LABEL: test_large_frame_size_2032:
> ; CHECK:       # %bb.0:
> ; CHECK-NEXT:    addi.d $sp, $sp, -2032
> ; CHECK-NEXT:    .cfi_def_cfa_offset 2032
> ; CHECK-NEXT:    addi.d $sp, $sp, 2032
> ; CHECK-NEXT:    ret
>   %1 = alloca i8, i32 2032
>   ret void
> }
> ```
Thanks for the suggestion; I adapted `CodeGen/Generic/2010-11-04-BigByval.ll` which also happened to expose the suboptimal codegen. Your version is simpler and focuses solely on the frame size handling, which I'll take. Thanks.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134582/new/

https://reviews.llvm.org/D134582



More information about the llvm-commits mailing list