aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-28 19:44:49 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-28 19:44:49 +0800
commitb91913184946e8381dc2d632ce37563913d5ce5f (patch)
tree5ab382b56dd7d728e41f23bb3de23939e69ec3be /backend/include/rcc
parentb1c08d57f1637f5ee813d1409dacdfa88c1509a0 (diff)
downloadrcc-project-b91913184946e8381dc2d632ce37563913d5ce5f.tar.gz
rcc-project-b91913184946e8381dc2d632ce37563913d5ce5f.tar.xz
[RISCV] Complete Zcmp frame lowering and optimization
Diffstat (limited to 'backend/include/rcc')
-rw-r--r--backend/include/rcc/CodeGen/LiveRegUnits.h7
-rw-r--r--backend/include/rcc/CodeGen/MachineOptimizationPipeline.h2
2 files changed, 8 insertions, 1 deletions
diff --git a/backend/include/rcc/CodeGen/LiveRegUnits.h b/backend/include/rcc/CodeGen/LiveRegUnits.h
index 6eb06a6..2e18bc9 100644
--- a/backend/include/rcc/CodeGen/LiveRegUnits.h
+++ b/backend/include/rcc/CodeGen/LiveRegUnits.h
@@ -38,6 +38,13 @@ public:
void unite(const LiveRegUnits &Other);
void subtract(const LiveRegUnits &Other);
+ [[nodiscard]] Expected<bool> available(PhysicalRegister Reg,
+ const TargetDescription &Target) const;
+ [[nodiscard]] static Expected<void> accumulateUsedDefed(const MachineInstr &Instruction,
+ LiveRegUnits &Modified,
+ LiveRegUnits &Used,
+ const TargetDescription &Target);
+
[[nodiscard]] const std::unordered_map<RegisterUnitID, LaneMask> &entries() const noexcept {
return Values;
}
diff --git a/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h b/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h
index f60bbda..c47fc48 100644
--- a/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h
+++ b/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h
@@ -46,7 +46,7 @@ addSelectedSSAOptimizationPipeline(MachineFunctionPassManager &Pipeline,
[[nodiscard]] Expected<void> addPostRegisterAllocationPipeline(
MachineFunctionPassManager &Pipeline, const MachineOptimizationPipelineTargetInfo &TargetInfo,
MachineOptimizationPipelineOptions Options = {},
- std::unique_ptr<MachineFunctionPass> PostRAPseudoExpansionTargetPass = nullptr);
+ MachineFunctionPassManager::PassList PostRAPseudoExpansionTargetPasses = {});
} // namespace rcc