[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