diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-08 04:14:34 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-08 04:14:34 +0800 |
| commit | 77884c967d1cbc48afcbaef7e5a35adcb3c5da1b (patch) | |
| tree | 8cc31c1c5115ed909ec9f8751964bfdc96fbd4ad /backend/include/rcc/CodeGen/MachineCFGUpdater.h | |
| parent | 10b7e69448f866bcd6893b21d7f78d766252eb11 (diff) | |
| download | rcc-project-77884c967d1cbc48afcbaef7e5a35adcb3c5da1b.tar.gz rcc-project-77884c967d1cbc48afcbaef7e5a35adcb3c5da1b.tar.xz | |
[CodeGen] Implement machine SSA exit
Diffstat (limited to 'backend/include/rcc/CodeGen/MachineCFGUpdater.h')
| -rw-r--r-- | backend/include/rcc/CodeGen/MachineCFGUpdater.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/backend/include/rcc/CodeGen/MachineCFGUpdater.h b/backend/include/rcc/CodeGen/MachineCFGUpdater.h index 4359538..70fb9aa 100644 --- a/backend/include/rcc/CodeGen/MachineCFGUpdater.h +++ b/backend/include/rcc/CodeGen/MachineCFGUpdater.h @@ -10,6 +10,7 @@ namespace rcc { class MachineBasicBlock; class MachineFunction; +class MachineInstr; class MachineCFGUpdater final { public: @@ -22,11 +23,16 @@ public: [[nodiscard]] Expected<void> replaceSuccessor(MachineBasicBlock &From, MachineBasicBlock &OldTarget, MachineBasicBlock &NewTarget); + [[nodiscard]] Expected<void> splitEdge(MachineBasicBlock &From, MachineBasicBlock &To, + MachineBasicBlock &EdgeBlock); [[nodiscard]] Expected<void> updateBranchProbability(MachineBasicBlock &From, MachineBasicBlock &To, BranchProbability Probability); [[nodiscard]] Expected<void> transferSuccessors(MachineBasicBlock &From, MachineBasicBlock &To); [[nodiscard]] Expected<void> disconnectBlock(MachineBasicBlock &Block); + [[nodiscard]] Expected<MachineBasicBlock *> splitBlock(MachineBasicBlock &Block, + MachineInstr &SplitBefore); + [[nodiscard]] Expected<void> deleteBlock(MachineBasicBlock &Block); private: [[nodiscard]] Expected<void> verifyOwnership(const MachineBasicBlock &Block) const; |
