Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Prev Previous commit
Next Next commit
remove use of RTTI
  • Loading branch information
j2kun committed Jul 5, 2025
commit 85d6e9a6a06f82b51e91a8ba3d966729bd7bba23
4 changes: 1 addition & 3 deletions mlir/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,7 @@ endif()

#-------------------------------------------------------------------------------
# MLIR Pattern Catalog Generator Configuration
# Requires:
# RTTI to be enabled (set with -DLLVM_ENABLE_RTTI=ON)
#
# When enabled, causes all rewriter patterns to dump their type names and the
# names of affected operations, which can be used to build a search index
# mapping operations to patterns.
Expand All @@ -219,7 +218,6 @@ set(MLIR_ENABLE_CATALOG_GENERATOR 0 CACHE BOOL
if (MLIR_ENABLE_CATALOG_GENERATOR)
message(STATUS "Enabling MLIR pattern catalog generator")
add_definitions(-DMLIR_ENABLE_CATALOG_GENERATOR)
add_definitions(-DLLVM_ENABLE_RTTI)
endif()

set(CMAKE_INCLUDE_CURRENT_DIR ON)
Expand Down
7 changes: 3 additions & 4 deletions mlir/include/mlir/IR/PatternMatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -476,9 +476,8 @@ class RewriterBase : public OpBuilder {
};

struct CatalogingListener : public RewriterBase::ForwardingListener {
CatalogingListener(OpBuilder::Listener *listener,
const std::string &patternName, raw_ostream &os,
std::mutex &writeMutex)
CatalogingListener(OpBuilder::Listener *listener, StringRef patternName,
raw_ostream &os, std::mutex &writeMutex)
: RewriterBase::ForwardingListener(listener), patternName(patternName),
os(os), writeMutex(writeMutex) {}

Expand Down Expand Up @@ -544,7 +543,7 @@ class RewriterBase : public OpBuilder {
}

private:
const std::string &patternName;
StringRef patternName;
raw_ostream &os;
std::mutex &writeMutex;
};
Expand Down
16 changes: 1 addition & 15 deletions mlir/lib/Rewrite/PatternApplicator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
#ifdef MLIR_ENABLE_CATALOG_GENERATOR
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/raw_ostream.h"
#include <cxxabi.h>
#include <mutex>
#endif

Expand Down Expand Up @@ -232,22 +231,9 @@ LogicalResult PatternApplicator::matchAndRewrite(

#ifdef MLIR_ENABLE_CATALOG_GENERATOR
OpBuilder::Listener *oldListener = rewriter.getListener();
int status;
const char *mangledPatternName = typeid(*pattern).name();
char *demangled = abi::__cxa_demangle(mangledPatternName, nullptr,
nullptr, &status);
std::string demangledPatternName;
if (status == 0 && demangled) {
demangledPatternName = demangled;
free(demangled);
} else {
// Fallback in case demangling fails.
demangledPatternName = mangledPatternName;
}

RewriterBase::CatalogingListener *catalogingListener =
new RewriterBase::CatalogingListener(
oldListener, demangledPatternName, catalogOs,
oldListener, pattern->getDebugName(), catalogOs,
catalogWriteMutex);
rewriter.setListener(catalogingListener);
#endif
Expand Down