diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 19:45:09 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 19:45:09 +0800 |
| commit | 09e8ef3e0dae29be7aa21a6e22a118a3f545945f (patch) | |
| tree | cfc5a7148aca9e768df16743c2c637e8c00a9d44 /backend/lib/Tooling/BackendDriver.cpp | |
| parent | 1775d50ba02dab033c639f5c8fedd46cb6613bef (diff) | |
| download | rcc-project-09e8ef3e0dae29be7aa21a6e22a118a3f545945f.tar.gz rcc-project-09e8ef3e0dae29be7aa21a6e22a118a3f545945f.tar.xz | |
[Tooling] Complete the LLVM MIR command-line contract
Diffstat (limited to 'backend/lib/Tooling/BackendDriver.cpp')
| -rw-r--r-- | backend/lib/Tooling/BackendDriver.cpp | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/backend/lib/Tooling/BackendDriver.cpp b/backend/lib/Tooling/BackendDriver.cpp index fff58c5..c726fd3 100644 --- a/backend/lib/Tooling/BackendDriver.cpp +++ b/backend/lib/Tooling/BackendDriver.cpp @@ -164,30 +164,28 @@ std::string_view spelling(BackendOutputKind Output) noexcept { return "invalid"; } -Expected<BackendOutputKind> parseBackendOutputKind(std::string_view Value) { - if (Value == "prelegalizer-mir") - return BackendOutputKind::PreLegalizerMIR; - if (Value == "legalized-mir") - return BackendOutputKind::LegalizedMIR; - if (Value == "regbank-mir") - return BackendOutputKind::RegisterBankMIR; - if (Value == "selected-mir") - return BackendOutputKind::SelectedMIR; - if (Value == "post-ssa-mir") - return BackendOutputKind::PostSSAMIR; - if (Value == "post-ra-mir") - return BackendOutputKind::PostRegisterAllocationMIR; - if (Value == "final-mir") - return BackendOutputKind::FinalMIR; - if (Value == "assembly" || Value == "asm") - return BackendOutputKind::Assembly; - if (Value == "object" || Value == "obj") - return BackendOutputKind::RelocatableObject; - return makeUnexpected(ErrorCode::InvalidInvocation, "unknown backend output kind"); -} - ArtifactKind manifestArtifactKind(BackendOutputKind Output) noexcept { - return static_cast<ArtifactKind>(static_cast<std::uint8_t>(Output)); + switch (Output) { + case BackendOutputKind::PreLegalizerMIR: + return ArtifactKind::PreLegalizerMIR; + case BackendOutputKind::LegalizedMIR: + return ArtifactKind::LegalizedMIR; + case BackendOutputKind::RegisterBankMIR: + return ArtifactKind::RegisterBankMIR; + case BackendOutputKind::SelectedMIR: + return ArtifactKind::SelectedMIR; + case BackendOutputKind::PostSSAMIR: + return ArtifactKind::PostSSAMIR; + case BackendOutputKind::PostRegisterAllocationMIR: + return ArtifactKind::PostRegisterAllocationMIR; + case BackendOutputKind::FinalMIR: + return ArtifactKind::FinalMIR; + case BackendOutputKind::Assembly: + return ArtifactKind::Assembly; + case BackendOutputKind::RelocatableObject: + return ArtifactKind::RelocatableObject; + } + return ArtifactKind::FinalMIR; } Expected<ArtifactKind> cacheArtifactKind(BackendOutputKind Output) { |
