From f7df62b40fd06585bb8c93d001f90e37d3aea3c2 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Wed, 19 Aug 2026 17:16:32 +0800 Subject: [CodeGen] Remove unsupported pre-PEI pseudo expansion --- .../include/rcc/CodeGen/InstructionDescriptor.h | 1 - .../include/rcc/CodeGen/MachinePseudoExpansion.h | 14 -------- .../include/rcc/CodeGen/TargetPseudoExpansion.h | 1 - .../lib/CodeGen/MachineOptimizationPipeline.cpp | 3 -- backend/lib/CodeGen/MachinePseudoExpansion.cpp | 38 ++-------------------- .../utils/TableGen/Common/CodeGenInstruction.cpp | 3 +- 6 files changed, 3 insertions(+), 57 deletions(-) diff --git a/backend/include/rcc/CodeGen/InstructionDescriptor.h b/backend/include/rcc/CodeGen/InstructionDescriptor.h index 91881e6..b172cd9 100644 --- a/backend/include/rcc/CodeGen/InstructionDescriptor.h +++ b/backend/include/rcc/CodeGen/InstructionDescriptor.h @@ -197,7 +197,6 @@ enum class PseudoOwner : std::uint8_t { TwoAddressRewrite, PreRAExpansion, RegisterAllocator, - PrePEIExpansion, PrologueEpilogueInsertion, PostRAExpansion, Finalization, diff --git a/backend/include/rcc/CodeGen/MachinePseudoExpansion.h b/backend/include/rcc/CodeGen/MachinePseudoExpansion.h index c30ba50..3c72307 100644 --- a/backend/include/rcc/CodeGen/MachinePseudoExpansion.h +++ b/backend/include/rcc/CodeGen/MachinePseudoExpansion.h @@ -38,20 +38,6 @@ private: const TargetPseudoExpansionInfo *Info; }; -class PrePEITargetPseudoExpansionPass final : public MachineFunctionPass { -public: - explicit PrePEITargetPseudoExpansionPass(const TargetPseudoExpansionInfo &Info) noexcept - : Info(&Info) {} - - [[nodiscard]] const MachinePassContract &contract() const noexcept override; - [[nodiscard]] Expected run(MachineFunction &Function, - const TargetDescription &Target, - MachineFunctionAnalysisManager &Analyses) override; - -private: - const TargetPseudoExpansionInfo *Info; -}; - class ExpandPostRAPseudosPass final : public MachineFunctionPass { public: explicit ExpandPostRAPseudosPass(const TargetPseudoExpansionInfo &Info) noexcept : Info(&Info) {} diff --git a/backend/include/rcc/CodeGen/TargetPseudoExpansion.h b/backend/include/rcc/CodeGen/TargetPseudoExpansion.h index 5135d78..039b221 100644 --- a/backend/include/rcc/CodeGen/TargetPseudoExpansion.h +++ b/backend/include/rcc/CodeGen/TargetPseudoExpansion.h @@ -15,7 +15,6 @@ class TargetDescription; enum class MachinePseudoExpansionPhase : std::uint8_t { PreRA, - PrePEI, PostRA, TargetLate, }; diff --git a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp index dc64b8f..4d20f9a 100644 --- a/backend/lib/CodeGen/MachineOptimizationPipeline.cpp +++ b/backend/lib/CodeGen/MachineOptimizationPipeline.cpp @@ -100,9 +100,6 @@ addPostRegisterAllocationPipeline(MachineFunctionPassManager &Pipeline, if (!Added) return std::unexpected(Added.error()); Added = addPass(Pipeline, TargetInfo.FrameLowering); - if (!Added) - return std::unexpected(Added.error()); - Added = addPass(Pipeline, TargetInfo.PseudoExpansion); if (!Added) return std::unexpected(Added.error()); Added = addPass(Pipeline, TargetInfo.FrameLowering); diff --git a/backend/lib/CodeGen/MachinePseudoExpansion.cpp b/backend/lib/CodeGen/MachinePseudoExpansion.cpp index 8388079..e81168c 100644 --- a/backend/lib/CodeGen/MachinePseudoExpansion.cpp +++ b/backend/lib/CodeGen/MachinePseudoExpansion.cpp @@ -99,9 +99,8 @@ using BlockSizeSnapshot = std::vector -PrePEITargetPseudoExpansionPass::run(MachineFunction &Function, const TargetDescription &Target, - MachineFunctionAnalysisManager &Analyses) { - if (!Function.properties().containsAll(contract().Requires)) - return makeUnexpected(ErrorCode::VerificationError, - "pre-PEI pseudo expansion requires allocated tracked-liveness MIR"); - return runExpansionTransaction(Function, Target, *Info, MachinePseudoExpansionPhase::PrePEI, - nullptr, Analyses); -} - const MachinePassContract &ExpandPostRAPseudosPass::contract() const noexcept { return phaseContract(MachinePseudoExpansionPhase::PostRA); } diff --git a/backend/utils/TableGen/Common/CodeGenInstruction.cpp b/backend/utils/TableGen/Common/CodeGenInstruction.cpp index d4dbfee..61c72a2 100644 --- a/backend/utils/TableGen/Common/CodeGenInstruction.cpp +++ b/backend/utils/TableGen/Common/CodeGenInstruction.cpp @@ -110,7 +110,7 @@ instructionFlagEnumerator(std::string_view Value) noexcept { [[nodiscard]] std::optional pseudoOwnerEnumerator(std::string_view Value) noexcept { - static constexpr std::array, 13> Owners = {{ + static constexpr std::array, 12> Owners = {{ {"none", "None"}, {"legalizer", "Legalizer"}, {"register_bank_select", "RegisterBankSelect"}, @@ -119,7 +119,6 @@ pseudoOwnerEnumerator(std::string_view Value) noexcept { {"two_address_rewrite", "TwoAddressRewrite"}, {"pre_ra_expansion", "PreRAExpansion"}, {"register_allocator", "RegisterAllocator"}, - {"pre_pei_expansion", "PrePEIExpansion"}, {"prologue_epilogue_insertion", "PrologueEpilogueInsertion"}, {"post_ra_expansion", "PostRAExpansion"}, {"finalization", "Finalization"}, -- cgit v1.2.3