aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc/CodeGen/MachinePseudoExpansion.h
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-19 04:27:41 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-19 04:27:41 +0800
commit307fc0961972ac5264d6f3459978fbec95cad3a9 (patch)
tree80eff53db8f62a736a46221d258dcadf7543fa88 /backend/include/rcc/CodeGen/MachinePseudoExpansion.h
parent6a91664223881226e2b6186561c05ff378a19355 (diff)
downloadrcc-project-307fc0961972ac5264d6f3459978fbec95cad3a9.tar.gz
rcc-project-307fc0961972ac5264d6f3459978fbec95cad3a9.tar.xz
[RISCV][GlobalISel] Select and expand global addresses
Diffstat (limited to 'backend/include/rcc/CodeGen/MachinePseudoExpansion.h')
-rw-r--r--backend/include/rcc/CodeGen/MachinePseudoExpansion.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/backend/include/rcc/CodeGen/MachinePseudoExpansion.h b/backend/include/rcc/CodeGen/MachinePseudoExpansion.h
index 7d4b309..c30ba50 100644
--- a/backend/include/rcc/CodeGen/MachinePseudoExpansion.h
+++ b/backend/include/rcc/CodeGen/MachinePseudoExpansion.h
@@ -11,6 +11,20 @@ namespace rcc {
class TargetInstrInfo;
class TargetPseudoExpansionInfo;
+class PreRATargetPseudoExpansionPass final : public MachineFunctionPass {
+public:
+ explicit PreRATargetPseudoExpansionPass(const TargetPseudoExpansionInfo &Info) noexcept
+ : Info(&Info) {}
+
+ [[nodiscard]] const MachinePassContract &contract() const noexcept override;
+ [[nodiscard]] Expected<MachinePassResult> run(MachineFunction &Function,
+ const TargetDescription &Target,
+ MachineFunctionAnalysisManager &Analyses) override;
+
+private:
+ const TargetPseudoExpansionInfo *Info;
+};
+
class PreparePostRAPseudosPass final : public MachineFunctionPass {
public:
explicit PreparePostRAPseudosPass(const TargetPseudoExpansionInfo &Info) noexcept : Info(&Info) {}