//===- standalone-plugin.cpp ------------------------------------*- C++ -*-===// // // This file is licensed 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/IR/MLIRContext.h" #include "mlir/InitAllDialects.h" #include "mlir/Tools/Plugins/DialectPlugin.h" #include "Standalone/StandaloneDialect.h" #include "Standalone/StandalonePasses.h" #include "mlir/Tools/Plugins/PassPlugin.h" #include "llvm/Config/llvm-config.h" #include "llvm/Support/Compiler.h" using namespace mlir; /// Dialect plugin registration mechanism. /// Observe that it also allows to register passes. /// Necessary symbol to register the dialect plugin. extern "C" LLVM_ATTRIBUTE_WEAK DialectPluginLibraryInfo mlirGetDialectPluginInfo() { return {MLIR_PLUGIN_API_VERSION, "Standalone", LLVM_VERSION_STRING, [](DialectRegistry *registry) { registry->insert(); mlir::standalone::registerPasses(); }}; } /// Pass plugin registration mechanism. /// Necessary symbol to register the pass plugin. extern "C" LLVM_ATTRIBUTE_WEAK PassPluginLibraryInfo mlirGetPassPluginInfo() { return {MLIR_PLUGIN_API_VERSION, "StandalonePasses", LLVM_VERSION_STRING, []() { mlir::standalone::registerPasses(); }}; }