[Mlir-commits] [mlir] 74c2c04 - [MLIR][LLVM] Add weak_odr to allowed linkage for alias (#132840)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Mar 25 10:46:06 PDT 2025
Author: Bruno Cardoso Lopes
Date: 2025-03-25T10:46:02-07:00
New Revision: 74c2c049d12cf9c2aa1ce8bcf16048f4a084dd90
URL: https://github.com/llvm/llvm-project/commit/74c2c049d12cf9c2aa1ce8bcf16048f4a084dd90
DIFF: https://github.com/llvm/llvm-project/commit/74c2c049d12cf9c2aa1ce8bcf16048f4a084dd90.diff
LOG: [MLIR][LLVM] Add weak_odr to allowed linkage for alias (#132840)
I missed this when originally introduced the feature (note the verifier
message already contains it), this fixes a small bug.
Added:
Modified:
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
mlir/test/Dialect/LLVMIR/alias.mlir
mlir/test/Target/LLVMIR/Import/alias.ll
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
index 309cee6429af8..18a70cc64628f 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
@@ -2646,6 +2646,7 @@ LogicalResult AliasOp::verify() {
case Linkage::Internal:
case Linkage::Private:
case Linkage::Weak:
+ case Linkage::WeakODR:
case Linkage::Linkonce:
case Linkage::LinkonceODR:
case Linkage::AvailableExternally:
diff --git a/mlir/test/Dialect/LLVMIR/alias.mlir b/mlir/test/Dialect/LLVMIR/alias.mlir
index 807843a27e6fa..efba248534862 100644
--- a/mlir/test/Dialect/LLVMIR/alias.mlir
+++ b/mlir/test/Dialect/LLVMIR/alias.mlir
@@ -26,23 +26,23 @@ llvm.mlir.alias external @_ZTV1D : !llvm.struct<(array<3 x ptr>)> {
// -----
-llvm.mlir.global external @zed(42 : i32) : i32
+llvm.mlir.global weak_odr @zed(42 : i32) : i32
-llvm.mlir.alias external @foo : i32 {
+llvm.mlir.alias weak_odr @foo : i32 {
%0 = llvm.mlir.addressof @zed : !llvm.ptr
llvm.return %0 : !llvm.ptr
}
-llvm.mlir.alias external @foo2 : i16 {
+llvm.mlir.alias weak_odr @foo2 : i16 {
%0 = llvm.mlir.addressof @zed : !llvm.ptr
llvm.return %0 : !llvm.ptr
}
-// CHECK: llvm.mlir.alias external @foo : i32 {
+// CHECK: llvm.mlir.alias weak_odr @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: llvm.mlir.alias weak_odr @foo2 : i16 {
// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @zed : !llvm.ptr
// CHECK: llvm.return %[[ADDR]] : !llvm.ptr
// CHECK: }
diff --git a/mlir/test/Target/LLVMIR/Import/alias.ll b/mlir/test/Target/LLVMIR/Import/alias.ll
index 23eaecb9c9fa7..7015d120a7252 100644
--- a/mlir/test/Target/LLVMIR/Import/alias.ll
+++ b/mlir/test/Target/LLVMIR/Import/alias.ll
@@ -62,6 +62,13 @@ entry:
; // -----
+ at glob.private2 = private constant [32 x i32] zeroinitializer
+ at glob2 = weak_odr hidden alias [32 x i32], inttoptr (i64 add (i64 ptrtoint (ptr @glob.private2 to i64), i64 1234) to ptr)
+
+; CHECK: llvm.mlir.alias weak_odr hidden @glob2 {dso_local} : !llvm.array<32 x i32> {
+
+; // -----
+
@g1 = private global i32 0
@g2 = internal constant ptr @a1
@g3 = internal constant ptr @a2
More information about the Mlir-commits
mailing list