From 880de1cae2e50e28984e56f97689e39bd60e12a3 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Fri, 2 May 2025 16:48:24 -0700 Subject: [PATCH] [mlir] Declare explicit typeid to fix dylib build (#138357) This makes the dyn_cast work outside the dylib, i.e. from the unit test binary, when the CMake setting MLIR_LINK_MLIR_DYLIB is ON. Fixes #138202 --- mlir/include/mlir/Pass/Pass.h | 5 +++-- mlir/lib/Pass/Pass.cpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mlir/include/mlir/Pass/Pass.h b/mlir/include/mlir/Pass/Pass.h index 7725a3a2910b..9e8ba7158f1b 100644 --- a/mlir/include/mlir/Pass/Pass.h +++ b/mlir/include/mlir/Pass/Pass.h @@ -493,8 +493,6 @@ class PassExecutionAction : public tracing::ActionImpl { using Base = tracing::ActionImpl; public: - /// Define a TypeID for this PassExecutionAction. - MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(PassExecutionAction) /// Construct a PassExecutionAction. This is called by the OpToOpPassAdaptor /// when it calls `executeAction`. PassExecutionAction(ArrayRef irUnits, const Pass &pass); @@ -526,4 +524,7 @@ public: } // namespace mlir +/// Define a TypeID for this PassExecutionAction. +MLIR_DECLARE_EXPLICIT_TYPE_ID(::mlir::PassExecutionAction) + #endif // MLIR_PASS_PASS_H diff --git a/mlir/lib/Pass/Pass.cpp b/mlir/lib/Pass/Pass.cpp index 67c18189b85e..8d1fbcdb19a9 100644 --- a/mlir/lib/Pass/Pass.cpp +++ b/mlir/lib/Pass/Pass.cpp @@ -51,6 +51,8 @@ Operation *PassExecutionAction::getOp() const { : llvm::dyn_cast_if_present(irUnits[0]); } +MLIR_DEFINE_EXPLICIT_TYPE_ID(::mlir::PassExecutionAction) + //===----------------------------------------------------------------------===// // Pass //===----------------------------------------------------------------------===//