aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc/CodeGen/MachineSSAExit.h
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-13 02:43:59 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-13 02:43:59 +0800
commitd2cd152d658955a7fb64fb9a1329bc5bee4d8317 (patch)
tree46dfc072d9ca368be98a22e34326a6130680bb36 /backend/include/rcc/CodeGen/MachineSSAExit.h
parent3341938bb644e6fc39afa6a8fcb1306604999e42 (diff)
downloadrcc-project-d2cd152d658955a7fb64fb9a1329bc5bee4d8317.tar.gz
rcc-project-d2cd152d658955a7fb64fb9a1329bc5bee4d8317.tar.xz
[CodeGen] Split PHI elimination and two-address rewriting
Diffstat (limited to 'backend/include/rcc/CodeGen/MachineSSAExit.h')
-rw-r--r--backend/include/rcc/CodeGen/MachineSSAExit.h49
1 files changed, 0 insertions, 49 deletions
diff --git a/backend/include/rcc/CodeGen/MachineSSAExit.h b/backend/include/rcc/CodeGen/MachineSSAExit.h
deleted file mode 100644
index 4b6966d..0000000
--- a/backend/include/rcc/CodeGen/MachineSSAExit.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#ifndef RCC_CODEGEN_MACHINESSAEXIT_H
-#define RCC_CODEGEN_MACHINESSAEXIT_H
-
-#include "rcc/CodeGen/MachinePass.h"
-#include "rcc/CodeGen/TargetInstrInfo.h"
-
-namespace rcc {
-
-class PHIEliminationPass final : public MachineFunctionPass {
-public:
- PHIEliminationPass() noexcept = default;
- explicit PHIEliminationPass(const TargetInstrInfo &Info) noexcept : Info(&Info) {}
-
- [[nodiscard]] const MachinePassContract &contract() const noexcept override;
- [[nodiscard]] Expected<MachinePassResult> run(MachineFunction &Function,
- const TargetDescription &Target,
- MachineAnalysisManager &Analyses) override;
-
-private:
- [[nodiscard]] Expected<MachinePassResult> runImplementation(MachineFunction &Function,
- const TargetDescription &Target,
- MachineActionReplay &Actions);
-
- const TargetInstrInfo *Info = nullptr;
-};
-
-class TwoAddressRewritePass final : public MachineFunctionPass {
-public:
- TwoAddressRewritePass() noexcept = default;
- explicit TwoAddressRewritePass(const TargetInstrInfo &Info) noexcept : Info(&Info) {}
-
- [[nodiscard]] const MachinePassContract &contract() const noexcept override;
- [[nodiscard]] Expected<MachinePassResult> run(MachineFunction &Function,
- const TargetDescription &Target,
- MachineAnalysisManager &Analyses) override;
-
-private:
- [[nodiscard]] Expected<MachinePassResult> runImplementation(MachineFunction &Function,
- const TargetDescription &Target,
- MachineActionReplay &Actions);
-
- const TargetInstrInfo *Info = nullptr;
-};
-
-} // namespace rcc
-
-#endif // RCC_CODEGEN_MACHINESSAEXIT_H