[PATCH] D105271: [PowerPC][ELF]make sure local variable space does not overlap with parameter save area
ChenZheng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 1 02:55:07 PDT 2021
shchenz updated this revision to Diff 355810.
shchenz added a comment.
delete the auto gen comments in testcase.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D105271/new/
https://reviews.llvm.org/D105271
Files:
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/test/CodeGen/PowerPC/byval.ll
Index: llvm/test/CodeGen/PowerPC/byval.ll
===================================================================
--- llvm/test/CodeGen/PowerPC/byval.ll
+++ llvm/test/CodeGen/PowerPC/byval.ll
@@ -1,4 +1,3 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -verify-machineinstrs < %s | FileCheck %s
target datalayout = "e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512"
@@ -9,15 +8,15 @@
declare dso_local i32 @foo1(%struct* byval(%struct) %var)
declare dso_local void @foo(%struct* %var)
-; FIXME: for the byval parameter %x, now the memory for local variable and
-; for parameter save area are overlap.
+; for the byval parameter %x, make sure the memory for local variable and
+; for parameter save area are not overlap.
; For the below case,
-; the local variable space is r1 + 40 ~ r1 + 76
+; the local variable space is r1 + 104 ~ r1 + 140
; the parameter save area is r1 + 32 ~ r1 + 68
define dso_local i32 @bar() {
; CHECK-LABEL: bar:
-; CHECK: addi 30, 1, 40
+; CHECK: addi 30, 1, 104
; CHECK: li 3, 16
; CHECK: lxvd2x 0, 30, 3
; CHECK: li 3, 48
@@ -25,7 +24,7 @@
; CHECK: li 3, 32
; CHECK: lxvd2x 0, 0, 30
; CHECK: stxvd2x 0, 1, 3
-; CHECK: lwz 3, 72(1)
+; CHECK: lwz 3, 136(1)
; CHECK: stw 3, 64(1)
entry:
%x = alloca %struct, align 4
Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp
===================================================================
--- llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -6015,7 +6015,8 @@
}
HasParameterArea = true;
}
- }
+ } else if (Flags.isByVal() && Flags.getByValSize() >= 8)
+ HasParameterArea = true;
/* Respect alignment of argument on the stack. */
auto Alignement =
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D105271.355810.patch
Type: text/x-patch
Size: 1816 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210701/6d735c78/attachment.bin>
More information about the llvm-commits
mailing list