aboutsummaryrefslogtreecommitdiff
path: root/backend/include
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-12 20:39:04 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-12 20:39:04 +0800
commit8721893d3ba605f5374d9c0c7987af6110355638 (patch)
treee734a1358a80fbb4dbdc62f1575475da51fabcb8 /backend/include
parent2ef71f86a2b3e23967e8af08ba1eaaa950f0e1b5 (diff)
downloadrcc-project-8721893d3ba605f5374d9c0c7987af6110355638.tar.gz
rcc-project-8721893d3ba605f5374d9c0c7987af6110355638.tar.xz
[CodeGen] Add TargetInstrInfo ownership
Diffstat (limited to 'backend/include')
-rw-r--r--backend/include/rcc/CodeGen/MachineBranchOptimization.h6
-rw-r--r--backend/include/rcc/CodeGen/MachineBranchRelaxation.h6
-rw-r--r--backend/include/rcc/CodeGen/MachineFallthrough.h6
-rw-r--r--backend/include/rcc/CodeGen/MachineFinalization.h6
-rw-r--r--backend/include/rcc/CodeGen/MachineOptimizationPipeline.h4
-rw-r--r--backend/include/rcc/CodeGen/MachinePseudoExpansion.h6
-rw-r--r--backend/include/rcc/CodeGen/MachineTailDuplication.h6
-rw-r--r--backend/include/rcc/CodeGen/MachineTailMerge.h6
-rw-r--r--backend/include/rcc/CodeGen/TargetInstrInfo.h (renamed from backend/include/rcc/CodeGen/TargetBranchInfo.h)10
-rw-r--r--backend/include/rcc/Target/RISCV/RISCVCodeGen.h4
10 files changed, 30 insertions, 30 deletions
diff --git a/backend/include/rcc/CodeGen/MachineBranchOptimization.h b/backend/include/rcc/CodeGen/MachineBranchOptimization.h
index a71c20f..9f120dc 100644
--- a/backend/include/rcc/CodeGen/MachineBranchOptimization.h
+++ b/backend/include/rcc/CodeGen/MachineBranchOptimization.h
@@ -9,7 +9,7 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
struct MachineBranchOptimizationOptions final {
std::size_t MaximumThreadedEdges = 10'000;
@@ -17,7 +17,7 @@ struct MachineBranchOptimizationOptions final {
class MachineBranchOptimizationPass final : public MachineFunctionPass {
public:
- explicit MachineBranchOptimizationPass(const TargetBranchInfo &Info,
+ explicit MachineBranchOptimizationPass(const TargetInstrInfo &Info,
MachineBranchOptimizationOptions Options = {}) noexcept
: Info(&Info), Options(Options) {}
@@ -30,7 +30,7 @@ private:
[[nodiscard]] Expected<MachinePassResult>
runImplementation(MachineFunction &Function, const TargetDescription &Target) const;
- const TargetBranchInfo *Info;
+ const TargetInstrInfo *Info;
MachineBranchOptimizationOptions Options;
};
diff --git a/backend/include/rcc/CodeGen/MachineBranchRelaxation.h b/backend/include/rcc/CodeGen/MachineBranchRelaxation.h
index c88c1d5..03c7fa7 100644
--- a/backend/include/rcc/CodeGen/MachineBranchRelaxation.h
+++ b/backend/include/rcc/CodeGen/MachineBranchRelaxation.h
@@ -9,7 +9,7 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
struct MachineBranchRelaxationOptions final {
std::size_t ConvergenceWatchdog = 1000000;
@@ -17,7 +17,7 @@ struct MachineBranchRelaxationOptions final {
class MachineBranchRelaxationPass final : public MachineFunctionPass {
public:
- explicit MachineBranchRelaxationPass(const TargetBranchInfo &Info,
+ explicit MachineBranchRelaxationPass(const TargetInstrInfo &Info,
MachineBranchRelaxationOptions Options = {}) noexcept
: Info(&Info), Options(Options) {}
@@ -31,7 +31,7 @@ private:
const TargetDescription &Target,
MachineActionReplay &Actions) const;
- const TargetBranchInfo *Info;
+ const TargetInstrInfo *Info;
MachineBranchRelaxationOptions Options;
};
diff --git a/backend/include/rcc/CodeGen/MachineFallthrough.h b/backend/include/rcc/CodeGen/MachineFallthrough.h
index 413efe2..5793330 100644
--- a/backend/include/rcc/CodeGen/MachineFallthrough.h
+++ b/backend/include/rcc/CodeGen/MachineFallthrough.h
@@ -7,11 +7,11 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
class MachineFallthroughPass final : public MachineFunctionPass {
public:
- explicit MachineFallthroughPass(const TargetBranchInfo &Info) noexcept : Info(&Info) {}
+ explicit MachineFallthroughPass(const TargetInstrInfo &Info) noexcept : Info(&Info) {}
[[nodiscard]] const MachinePassContract &contract() const noexcept override;
[[nodiscard]] Expected<MachinePassResult> run(MachineFunction &Function,
@@ -19,7 +19,7 @@ public:
MachineAnalysisManager &Analyses) override;
private:
- const TargetBranchInfo *Info;
+ const TargetInstrInfo *Info;
};
} // namespace rcc
diff --git a/backend/include/rcc/CodeGen/MachineFinalization.h b/backend/include/rcc/CodeGen/MachineFinalization.h
index 147da86..1927691 100644
--- a/backend/include/rcc/CodeGen/MachineFinalization.h
+++ b/backend/include/rcc/CodeGen/MachineFinalization.h
@@ -7,7 +7,7 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
class FinalizeEmissionPseudosPass final : public MachineFunctionPass {
public:
@@ -19,7 +19,7 @@ public:
class FinalEncodabilityVerifierPass final : public MachineFunctionPass {
public:
- explicit FinalEncodabilityVerifierPass(const TargetBranchInfo &BranchInfo) noexcept
+ explicit FinalEncodabilityVerifierPass(const TargetInstrInfo &BranchInfo) noexcept
: BranchInfo(&BranchInfo) {}
[[nodiscard]] const MachinePassContract &contract() const noexcept override;
@@ -28,7 +28,7 @@ public:
MachineAnalysisManager &Analyses) override;
private:
- const TargetBranchInfo *BranchInfo;
+ const TargetInstrInfo *BranchInfo;
};
} // namespace rcc
diff --git a/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h b/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h
index 0953437..2cf1bcd 100644
--- a/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h
+++ b/backend/include/rcc/CodeGen/MachineOptimizationPipeline.h
@@ -7,7 +7,7 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
class TargetFrameLowering;
class TargetMachineCombinerInfo;
class TargetMemoryFoldingInfo;
@@ -22,7 +22,7 @@ struct MachineOptimizationPipelineTargetInfo final {
const TargetFrameLowering &FrameLowering;
const TargetPseudoExpansionInfo &PseudoExpansion;
const TargetSchedulingModel &SchedulingModel;
- const TargetBranchInfo &BranchInfo;
+ const TargetInstrInfo &BranchInfo;
};
[[nodiscard]] Expected<void> registerMachineOptimizationAnalyses(MachineAnalysisManager &Analyses);
diff --git a/backend/include/rcc/CodeGen/MachinePseudoExpansion.h b/backend/include/rcc/CodeGen/MachinePseudoExpansion.h
index 1dfb6ba..8c47441 100644
--- a/backend/include/rcc/CodeGen/MachinePseudoExpansion.h
+++ b/backend/include/rcc/CodeGen/MachinePseudoExpansion.h
@@ -8,7 +8,7 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
class TargetPseudoExpansionInfo;
class PreparePostRAPseudosPass final : public MachineFunctionPass {
@@ -54,7 +54,7 @@ private:
class TargetLatePseudoExpansionPass final : public MachineFunctionPass {
public:
TargetLatePseudoExpansionPass(const TargetPseudoExpansionInfo &Info,
- const TargetBranchInfo &BranchInfo) noexcept
+ const TargetInstrInfo &BranchInfo) noexcept
: Info(&Info), BranchInfo(&BranchInfo) {}
[[nodiscard]] const MachinePassContract &contract() const noexcept override;
@@ -64,7 +64,7 @@ public:
private:
const TargetPseudoExpansionInfo *Info;
- const TargetBranchInfo *BranchInfo;
+ const TargetInstrInfo *BranchInfo;
};
} // namespace rcc
diff --git a/backend/include/rcc/CodeGen/MachineTailDuplication.h b/backend/include/rcc/CodeGen/MachineTailDuplication.h
index cd62509..1c21bdf 100644
--- a/backend/include/rcc/CodeGen/MachineTailDuplication.h
+++ b/backend/include/rcc/CodeGen/MachineTailDuplication.h
@@ -9,7 +9,7 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
struct MachineTailDuplicationOptions final {
std::size_t MaximumTailInstructions = 8;
@@ -18,7 +18,7 @@ struct MachineTailDuplicationOptions final {
class MachineTailDuplicationPass final : public MachineFunctionPass {
public:
- explicit MachineTailDuplicationPass(const TargetBranchInfo &Info,
+ explicit MachineTailDuplicationPass(const TargetInstrInfo &Info,
MachineTailDuplicationOptions Options = {}) noexcept
: Info(&Info), Options(Options) {}
@@ -31,7 +31,7 @@ private:
[[nodiscard]] Expected<MachinePassResult>
runImplementation(MachineFunction &Function, const TargetDescription &Target) const;
- const TargetBranchInfo *Info;
+ const TargetInstrInfo *Info;
MachineTailDuplicationOptions Options;
};
diff --git a/backend/include/rcc/CodeGen/MachineTailMerge.h b/backend/include/rcc/CodeGen/MachineTailMerge.h
index 94084ac..7237d58 100644
--- a/backend/include/rcc/CodeGen/MachineTailMerge.h
+++ b/backend/include/rcc/CodeGen/MachineTailMerge.h
@@ -9,7 +9,7 @@
namespace rcc {
-class TargetBranchInfo;
+class TargetInstrInfo;
struct MachineTailMergeOptions final {
std::size_t MaximumMergedBlocks = 4'096;
@@ -17,7 +17,7 @@ struct MachineTailMergeOptions final {
class MachineTailMergePass final : public MachineFunctionPass {
public:
- explicit MachineTailMergePass(const TargetBranchInfo &Info,
+ explicit MachineTailMergePass(const TargetInstrInfo &Info,
MachineTailMergeOptions Options = {}) noexcept
: Info(&Info), Options(Options) {}
@@ -30,7 +30,7 @@ private:
[[nodiscard]] Expected<MachinePassResult>
runImplementation(MachineFunction &Function, const TargetDescription &Target) const;
- const TargetBranchInfo *Info;
+ const TargetInstrInfo *Info;
MachineTailMergeOptions Options;
};
diff --git a/backend/include/rcc/CodeGen/TargetBranchInfo.h b/backend/include/rcc/CodeGen/TargetInstrInfo.h
index 39c5122..d9f0906 100644
--- a/backend/include/rcc/CodeGen/TargetBranchInfo.h
+++ b/backend/include/rcc/CodeGen/TargetInstrInfo.h
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-3.0-or-later
-#ifndef RCC_CODEGEN_TARGETBRANCHINFO_H
-#define RCC_CODEGEN_TARGETBRANCHINFO_H
+#ifndef RCC_CODEGEN_TARGETINSTRINFO_H
+#define RCC_CODEGEN_TARGETINSTRINFO_H
#include "rcc/Support/Error.h"
@@ -23,9 +23,9 @@ struct MachineBranchAnalysis final {
bool HasUnanalyzableTerminator = false;
};
-class TargetBranchInfo {
+class TargetInstrInfo {
public:
- virtual ~TargetBranchInfo() = default;
+ virtual ~TargetInstrInfo();
[[nodiscard]] virtual Expected<MachineBranchAnalysis>
analyzeBranch(MachineBasicBlock &Block, MachineFunction &Function,
@@ -63,4 +63,4 @@ public:
} // namespace rcc
-#endif // RCC_CODEGEN_TARGETBRANCHINFO_H
+#endif // RCC_CODEGEN_TARGETINSTRINFO_H
diff --git a/backend/include/rcc/Target/RISCV/RISCVCodeGen.h b/backend/include/rcc/Target/RISCV/RISCVCodeGen.h
index a39a3fa..d68157a 100644
--- a/backend/include/rcc/Target/RISCV/RISCVCodeGen.h
+++ b/backend/include/rcc/Target/RISCV/RISCVCodeGen.h
@@ -5,9 +5,9 @@
#include "rcc/CodeGen/MachineCombinerPattern.h"
#include "rcc/CodeGen/MachineOptimizationPipeline.h"
-#include "rcc/CodeGen/TargetBranchInfo.h"
#include "rcc/CodeGen/TargetCodeGen.h"
#include "rcc/CodeGen/TargetFrameLowering.h"
+#include "rcc/CodeGen/TargetInstrInfo.h"
#include "rcc/CodeGen/TargetMemoryFolding.h"
#include "rcc/CodeGen/TargetPseudoExpansion.h"
#include "rcc/CodeGen/TargetRegisterAllocationInfo.h"
@@ -29,7 +29,7 @@ createLegalizerInfo(RISCVSubtargetFeatures Features);
[[nodiscard]] const TargetSchedulingModel &schedulingModel() noexcept;
[[nodiscard]] const TargetMachineCombinerInfo &machineCombinerInfo() noexcept;
[[nodiscard]] const TargetMemoryFoldingInfo &memoryFoldingInfo() noexcept;
-[[nodiscard]] const TargetBranchInfo &branchInfo() noexcept;
+[[nodiscard]] const TargetInstrInfo &branchInfo() noexcept;
[[nodiscard]] const TargetPseudoExpansionInfo &pseudoExpansionInfo() noexcept;
[[nodiscard]] MachineOptimizationPipelineTargetInfo optimizationPipelineInfo() noexcept;