// SPDX-License-Identifier: GPL-3.0-or-later #ifndef RCC_TOOLING_BACKENDDRIVER_H #define RCC_TOOLING_BACKENDDRIVER_H #include "rcc/CodeGen/MachinePassManager.h" #include "rcc/Support/Error.h" #include "rcc/Tooling/ArtifactStore.h" #include "rcc/Tooling/PipelineDriver.h" #include #include #include #include namespace rcc::tooling { struct BackendRunResult final { ArtifactKind Kind = ArtifactKind::FinalMIR; std::vector Output; PipelineRunResult Pipeline; std::vector Actions; [[nodiscard]] std::string_view text() const noexcept; }; [[nodiscard]] Expected runBackend(CanonicalMIR Input, const BackendInvocation &Invocation, ArtifactKind Output, PipelineControls Controls = {}, MachinePassInstrumentation *Instrumentation = nullptr); } // namespace rcc::tooling #endif // RCC_TOOLING_BACKENDDRIVER_H