#pragma once // // This file is distributed under the MIT License. See LICENSE.md for details. // #include "revng/Pipeline/Context.h" #include "revng/Pipeline/LLVMContainer.h" namespace pipeline { namespace detail { template ContainerFactory makeLLVMContainerFactoryImpl(pipeline::Context *Ctx, llvm::LLVMContext *Context) { return [Ctx, Context](llvm::StringRef Name) { auto Module = std::make_unique(Name, *Context); return std::make_unique(*Ctx, std::move(Module), Name); }; } } // namespace detail template ContainerFactory makeLLVMContainerFactory(pipeline::Context &Ctx, llvm::LLVMContext &Context) { return detail::makeLLVMContainerFactoryImpl(&Ctx, &Context); } inline ContainerFactory makeDefaultLLVMContainerFactory(pipeline::Context &Ctx, llvm::LLVMContext &Context) { return makeLLVMContainerFactory(Ctx, Context); } } // namespace pipeline