[clang] [llvm] [NVPTX] Change the alloca address space in NVPTXLowerAlloca (PR #154814)
Theodoros Theodoridis via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 22 06:13:22 PDT 2025
================
@@ -216,24 +214,23 @@ define dso_local ptx_kernel void @escape_ptr_store(ptr nocapture noundef writeon
;
; PTX-LABEL: escape_ptr_store(
; PTX: {
-; PTX-NEXT: .local .align 4 .b8 __local_depot4[8];
+; PTX-NEXT: .local .align 8 .b8 __local_depot4[8];
----------------
thetheodor wrote:
Maybe it's due to my change in `nvptx-lower-args`, I spotted this IR diff:
Before:
```
define dso_local ptx_kernel void @escape_ptr_store(ptr noundef writeonly captures(none) %out, ptr noundef byval(%struct.S) align 4 %s) local_unnamed_addr #0 {
entry:
%s1 = alloca %struct.S, align 4
%s2 = call ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %s)
call void @llvm.memcpy.p0.p101.i64(ptr align 4 %s1, ptr addrspace(101) align 4 %s2, i64 8, i1 false)
store ptr %s1, ptr %out, align 8
ret void
}
```
After:
```
define dso_local ptx_kernel void @escape_ptr_store(ptr noundef writeonly captures(none) %out, ptr noundef byval(%struct.S) align 4 %s) local_unnamed_addr #0 {
entry:
%s1 = alloca %struct.S, align 4
%s.param = call align 4 ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %s)
call void @llvm.memcpy.p0.p101.i64(ptr align 4 %s1, ptr addrspace(101) align 4 %s.param, i64 8, i1 false)
store ptr %s1, ptr %out, align 8
ret void
}
```
specifically:
`%s2 = call ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %s)` vs `%s.param = call align 4 ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %s)` an additional alignment annotation appeared.
I'll investigate
https://github.com/llvm/llvm-project/pull/154814
More information about the llvm-commits
mailing list