[Mlir-commits] [mlir] a609f56 - [mlir] use raw function pointer instead of std::function

Alex Zinenko llvmlistbot at llvm.org
Tue Oct 11 03:56:41 PDT 2022


Author: Alex Zinenko
Date: 2022-10-11T10:56:31Z
New Revision: a609f564b7b63897d05291e64e6e9813bbf382dd

URL: https://github.com/llvm/llvm-project/commit/a609f564b7b63897d05291e64e6e9813bbf382dd
DIFF: https://github.com/llvm/llvm-project/commit/a609f564b7b63897d05291e64e6e9813bbf382dd.diff

LOG: [mlir] use raw function pointer instead of std::function

Accessing the target of std::function apparently requires RTTI, use a
raw pointer instead.

Added: 
    

Modified: 
    mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
    mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td

Removed: 
    


################################################################################
diff  --git a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
index 80ff80e49639b..e386b355e83f9 100644
--- a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
+++ b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.h
@@ -212,7 +212,7 @@ void TransformDialect::addTypeIfNotRegistered() {
   auto [it, inserted] = typeParsingHooks.try_emplace(mnemonic, Type::parse);
   if (!inserted) {
     const ExtensionTypeParsingHook &parsingHook = it->getValue();
-    if (*parsingHook.target<mlir::Type (*)(AsmParser &)>() != &Type::parse)
+    if (parsingHook != &Type::parse)
       reportDuplicateTypeRegistration(mnemonic);
     else
       return;

diff  --git a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
index bdb28f9605f59..cf5072bc5015e 100644
--- a/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
+++ b/mlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
@@ -324,8 +324,7 @@ def Transform_Dialect : Dialect {
 
       /// Parser callback for an individual type registered by this dialect or
       /// its extensions.
-      using ExtensionTypeParsingHook =
-          std::function<::mlir::Type (::mlir::AsmParser &)>;
+      using ExtensionTypeParsingHook = ::mlir::Type (*)(::mlir::AsmParser &);
 
       /// Printer callback for an individual type registered by this dialect or
       /// its extensions.


        


More information about the Mlir-commits mailing list