[Mlir-commits] [mlir] [MLIR][LLVM] Implement LLVM dialect support for global aliases (PR #125295)

Bruno Cardoso Lopes llvmlistbot at llvm.org
Wed Feb 5 11:54:39 PST 2025


================
@@ -0,0 +1,127 @@
+// RUN: mlir-opt %s -split-input-file | FileCheck %s
+
+llvm.func internal @callee() -> !llvm.ptr attributes {dso_local} {
+  %0 = llvm.mlir.zero : !llvm.ptr
+  llvm.return %0 : !llvm.ptr
+}
+
+llvm.mlir.alias external @foo_alias : !llvm.ptr {
+  %0 = llvm.mlir.addressof @callee : !llvm.ptr
+  llvm.return %0 : !llvm.ptr
+}
+
+llvm.mlir.alias external @_ZTV1D : !llvm.struct<(array<3 x ptr>)> {
+  %0 = llvm.mlir.addressof @callee : !llvm.ptr
+  llvm.return %0 : !llvm.ptr
+}
+
+// CHECK: llvm.mlir.alias external @foo_alias : !llvm.ptr {
+// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @callee : !llvm.ptr
+// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr
+// CHECK: }
+// CHECK: llvm.mlir.alias external @_ZTV1D : !llvm.struct<(array<3 x ptr>)> {
+// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @callee : !llvm.ptr
+// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr
+// CHECK: }
+
+// -----
+
+llvm.mlir.global external @zed(42 : i32) : i32
+
+llvm.mlir.alias external @foo : i32 {
+  %0 = llvm.mlir.addressof @zed : !llvm.ptr
+  llvm.return %0 : !llvm.ptr
+}
+
+llvm.mlir.alias external @foo2 : i16 {
+  %0 = llvm.mlir.addressof @zed : !llvm.ptr
+  llvm.return %0 : !llvm.ptr
+}
+
+// CHECK: llvm.mlir.alias external @foo : i32 {
+// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @zed : !llvm.ptr
+// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr
+// CHECK: }
+// CHECK: llvm.mlir.alias external @foo2 : i16 {
+// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @zed : !llvm.ptr
+// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr
+// CHECK: }
+
+// -----
+
+llvm.mlir.global private constant @glob.private(dense<0> : tensor<32xi32>) {addr_space = 0 : i32, dso_local} : !llvm.array<32 x i32>
----------------
bcardosolopes wrote:

these were for mlir.global not mlir.alias, but I cleaned up the testcase since they are not the test target anyways.

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


More information about the Mlir-commits mailing list