/** * \file src/jit/impl/mlir/executable_cpu.h * MegEngine is Licensed under the Apache License, Version 2.0 (the "License") * * Copyright (c) 2014-2020 Megvii Inc. All rights reserved. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. */ #pragma once #include "megbrain_build_config.h" #if MGB_JIT && MGB_JIT_MLIR #include "megbrain/jit/compiler.h" #include #include namespace mgb { namespace jit { /*! * \brief Executable class for MLIR */ class MLIRCPUExecutable final : public Executable { public: MLIRCPUExecutable(mlir::OwningModuleRef& module, const std::string& kernel_name); ~MLIRCPUExecutable(); /*! * \brief execute * A executable instance can be executed by one or more fusion_opr */ void execute(JITExecutor* fusion_opr) override final; private: std::unique_ptr m_engine; std::string m_kernel_name; }; } // namespace jit } // namespace mgb #endif // MGB_JIT && MGB_JIT_MLIR // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}}