[Mlir-commits] [mlir] 4fc514a - [MLIR][LLVM] Fix import of dso_local attribute (#124822)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Jan 29 08:09:23 PST 2025
Author: Guojin
Date: 2025-01-29T17:09:18+01:00
New Revision: 4fc514af516f9434bf5ba3de404943a1f92817f7
URL: https://github.com/llvm/llvm-project/commit/4fc514af516f9434bf5ba3de404943a1f92817f7
DIFF: https://github.com/llvm/llvm-project/commit/4fc514af516f9434bf5ba3de404943a1f92817f7.diff
LOG: [MLIR][LLVM] Fix import of dso_local attribute (#124822)
The import of LLVM IR should use is isDSOLocal instead of
hasLocalLinkage to set the dso_local attribute.
Without this change, function definitions that mostly have external
linkage would be missing dso_local attribute during translation.
---------
Co-authored-by: Tobias Gysi <tobias.gysi at nextsilicon.com>
Added:
Modified:
mlir/lib/Target/LLVMIR/ModuleImport.cpp
mlir/test/Target/LLVMIR/Import/function-attributes.ll
Removed:
################################################################################
diff --git a/mlir/lib/Target/LLVMIR/ModuleImport.cpp b/mlir/lib/Target/LLVMIR/ModuleImport.cpp
index 838e343475809f..1d1a985c46fb5b 100644
--- a/mlir/lib/Target/LLVMIR/ModuleImport.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleImport.cpp
@@ -2139,7 +2139,7 @@ LogicalResult ModuleImport::processFunction(llvm::Function *func) {
iface.isConvertibleIntrinsic(func->getIntrinsicID()))
return success();
- bool dsoLocal = func->hasLocalLinkage();
+ bool dsoLocal = func->isDSOLocal();
CConv cconv = convertCConvFromLLVM(func->getCallingConv());
// Insert the function at the end of the module.
diff --git a/mlir/test/Target/LLVMIR/Import/function-attributes.ll b/mlir/test/Target/LLVMIR/Import/function-attributes.ll
index 203c57002b39c3..beda4215046488 100644
--- a/mlir/test/Target/LLVMIR/Import/function-attributes.ll
+++ b/mlir/test/Target/LLVMIR/Import/function-attributes.ll
@@ -12,6 +12,15 @@ define internal spir_func void @spir_func_internal() {
; // -----
+; Ensure that we have dso_local.
+; CHECK: llvm.func @dsolocal_func()
+; CHECK-SAME: attributes {dso_local}
+define dso_local void @dsolocal_func() {
+ ret void
+}
+
+; // -----
+
; CHECK-LABEL: @func_readnone
; CHECK-SAME: attributes {memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>}
; CHECK: llvm.return
More information about the Mlir-commits
mailing list