[llvm] SimplifyLibCalls: Use default globals address space when building new global strings. (PR #118729)

Alexander Richardson via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 8 17:56:42 PST 2024


================
@@ -0,0 +1,35 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; Test that the printf library call simplifier works correctly.
+;
+; RUN: opt < %s -passes=instcombine -S | FileCheck %s
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-G200"
+
+ at hello_world = addrspace(200) constant [13 x i8] c"hello world\0A\00"
+ at percent_s = addrspace(200) constant [4 x i8] c"%s\0A\00"
+
+declare i32 @printf(ptr addrspace(200) , ...)
+declare i32 @puts(ptr addrspace(200))
----------------
arichardson wrote:

In the past I've been wondering if the cleanest approach here would be to have a "libcalls" address space in the data layout. This would also apply to the result of malloc and free arg. Might be useful for GPU targets if they don't use zero.

https://github.com/llvm/llvm-project/pull/118729


More information about the llvm-commits mailing list