[Mlir-commits] [mlir] [MLIR][LLVMIR] Translation: honor target-features fn attribute (PR #130343)

Bruno Cardoso Lopes llvmlistbot at llvm.org
Fri Mar 7 18:35:31 PST 2025


https://github.com/bcardosolopes updated https://github.com/llvm/llvm-project/pull/130343

>From e97a55cc395dd9a0b85fd9a9c9fc8f913c6c9fe2 Mon Sep 17 00:00:00 2001
From: Bruno Cardoso Lopes <bruno.cardoso at gmail.com>
Date: Fri, 7 Mar 2025 12:30:07 -0800
Subject: [PATCH] [MLIR][LLVMIR] Translation: honor target-features fn
 attribute

---
 mlir/lib/Target/LLVMIR/ModuleTranslation.cpp |  2 ++
 mlir/test/Target/LLVMIR/llvmir.mlir          | 12 ++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
index b1bc26a545f62..24b9928b72dc8 100644
--- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
@@ -1606,6 +1606,8 @@ static void convertFunctionAttributes(LLVMFuncOp func,
     llvmFunc->addFnAttr(llvm::Attribute::NoUnwind);
   if (func.getWillReturnAttr())
     llvmFunc->addFnAttr(llvm::Attribute::WillReturn);
+  if (TargetFeaturesAttr targetFeatAttr = func.getTargetFeaturesAttr())
+    llvmFunc->addFnAttr("target-features", targetFeatAttr.getFeaturesString());
   convertFunctionMemoryAttributes(func, llvmFunc);
 }
 
diff --git a/mlir/test/Target/LLVMIR/llvmir.mlir b/mlir/test/Target/LLVMIR/llvmir.mlir
index db2e08742dbca..bcc359e72813b 100644
--- a/mlir/test/Target/LLVMIR/llvmir.mlir
+++ b/mlir/test/Target/LLVMIR/llvmir.mlir
@@ -2367,6 +2367,18 @@ llvm.func @readwrite_func() attributes {
 
 // -----
 
+//
+// target-features attribute.
+//
+
+// CHECK-LABEL: @tf
+// CHECK-SAME: #[[TargetFeat:.*]]
+llvm.func @tf(!llvm.ptr) attributes {target_features = #llvm.target_features<["+fix-cortex-a53-835769", "+fp-armv8", "+neon", "+outline-atomics", "+v8a"]>}
+
+// CHECK: attributes #[[TargetFeat]] = { "target-features"="+fix-cortex-a53-835769,+fp-armv8,+neon,+outline-atomics,+v8a" }
+
+// -----
+
 //
 // arm_streaming attribute.
 //



More information about the Mlir-commits mailing list