From 495c675771f43cfa12ab7a426a538be72fec1805 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Sun, 9 Aug 2026 17:03:19 +0800 Subject: [CodeGen] Implement machine optimization and scheduling --- backend/lib/Target/Description/TargetDescriptionGenerator.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'backend/lib/Target/Description') diff --git a/backend/lib/Target/Description/TargetDescriptionGenerator.cpp b/backend/lib/Target/Description/TargetDescriptionGenerator.cpp index 9d6b8e1..cd5ba97 100644 --- a/backend/lib/Target/Description/TargetDescriptionGenerator.cpp +++ b/backend/lib/Target/Description/TargetDescriptionGenerator.cpp @@ -1683,7 +1683,7 @@ instructionFlagEnumerator(std::string_view Value) noexcept { [[nodiscard]] std::optional pseudoOwnerEnumerator(std::string_view Value) noexcept { - static constexpr std::array, 11> Owners = {{ + static constexpr std::array, 12> Owners = {{ {"none", "None"}, {"legalizer", "Legalizer"}, {"register_bank_select", "RegisterBankSelect"}, @@ -1695,6 +1695,7 @@ pseudoOwnerEnumerator(std::string_view Value) noexcept { {"prologue_epilogue_insertion", "PrologueEpilogueInsertion"}, {"post_ra_expansion", "PostRAExpansion"}, {"finalization", "Finalization"}, + {"target_late_expansion", "TargetLateExpansion"}, }}; if (Value == "asm_printer") return "AsmPrinter"; @@ -2328,8 +2329,8 @@ private: } if (InputOperand.ImmediatePredicateSymbol) { const auto Position = ImmediatePredicateBySymbol.find(*InputOperand.ImmediatePredicateSymbol); - if (Position == ImmediatePredicateBySymbol.end() || Result.Kinds.size() != 1 || - Result.Kinds.front() != "Immediate") { + if (Position == ImmediatePredicateBySymbol.end() || + std::ranges::find(Result.Kinds, "Immediate") == Result.Kinds.end()) { fail(InputOperand.Range, "instruction immediate predicates must name a declaration and constrain an immediate"); return false; -- cgit v1.2.3