[Mlir-commits] [mlir] [MLIR][LLVMIR][DLTI] Pass to update #llvm.target's features per relevant backend (PR #154938)

Rolf Morel llvmlistbot at llvm.org
Sat Aug 23 08:53:58 PDT 2025


================
@@ -0,0 +1,69 @@
+//===- TargetUtils.cpp - utils for obtaining generic target backend info --===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#include "mlir/Target/LLVMIR/Transforms/Passes.h"
+
+#include "mlir/Dialect/DLTI/DLTI.h"
+#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
+#include "mlir/Target/LLVMIR/Import.h"
+
+#include "llvm/MC/TargetRegistry.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/DebugLog.h"
+#include "llvm/Support/TargetSelect.h"
+#include "llvm/Target/TargetMachine.h"
+
+#define DEBUG_TYPE "mlir-llvm-target-utils"
+
+llvm::once_flag initializeBackendsOnce;
+
+namespace mlir {
+namespace LLVM {
+namespace detail {
+void initializeBackendsOnce() {
+  static llvm::once_flag initializeOnceFlag;
+  llvm::call_once(initializeOnceFlag, []() {
+    // Ensure that the targets, that LLVM has been configured to support,
+    // are loaded into the TargetRegistry.
+    llvm::InitializeAllTargets();
+    llvm::InitializeAllTargetMCs();
+  });
----------------
rolfmorel wrote:

Nice - thanks!

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


More information about the Mlir-commits mailing list