aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc/CodeGen/MachineFunction.h
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 14:19:20 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 14:19:20 +0800
commita69d14b8ebc028dddc689658b08d42d3e83f5e38 (patch)
tree5bdbb9dbe88de07eeba5caba97a2e54e6b05ad38 /backend/include/rcc/CodeGen/MachineFunction.h
parentc9634fa9f529afbdf622a9cd96741bd09d14ef86 (diff)
downloadrcc-project-a69d14b8ebc028dddc689658b08d42d3e83f5e38.tar.gz
rcc-project-a69d14b8ebc028dddc689658b08d42d3e83f5e38.tar.xz
[CodeGen] Add constant and jump table state
Add stable, tombstone-preserving MachineConstantPool and MachineJumpTableInfo ownership. Define the versioned TargetConstant contract and integrate all table references with builders, verification, and deterministic deep cloning.
Diffstat (limited to 'backend/include/rcc/CodeGen/MachineFunction.h')
-rw-r--r--backend/include/rcc/CodeGen/MachineFunction.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/backend/include/rcc/CodeGen/MachineFunction.h b/backend/include/rcc/CodeGen/MachineFunction.h
index 3e3fecb..38d88f9 100644
--- a/backend/include/rcc/CodeGen/MachineFunction.h
+++ b/backend/include/rcc/CodeGen/MachineFunction.h
@@ -3,8 +3,10 @@
#ifndef RCC_CODEGEN_MACHINEFUNCTION_H
#define RCC_CODEGEN_MACHINEFUNCTION_H
+#include "rcc/CodeGen/MachineConstantPool.h"
#include "rcc/CodeGen/MachineFrameInfo.h"
#include "rcc/CodeGen/MachineFunctionProperties.h"
+#include "rcc/CodeGen/MachineJumpTableInfo.h"
#include "rcc/CodeGen/MachineRegisterInfo.h"
#include "rcc/CodeGen/StableID.h"
#include "rcc/Support/Error.h"
@@ -61,6 +63,22 @@ public:
return FrameInfo;
}
+ [[nodiscard]] MachineConstantPool &constantPool() noexcept {
+ return ConstantPool;
+ }
+
+ [[nodiscard]] const MachineConstantPool &constantPool() const noexcept {
+ return ConstantPool;
+ }
+
+ [[nodiscard]] MachineJumpTableInfo &jumpTableInfo() noexcept {
+ return JumpTables;
+ }
+
+ [[nodiscard]] const MachineJumpTableInfo &jumpTableInfo() const noexcept {
+ return JumpTables;
+ }
+
[[nodiscard]] MachineFunctionProperties &properties() noexcept {
return Properties;
}
@@ -120,6 +138,8 @@ private:
MachineFunctionStableID StableID;
MachineRegisterInfo RegInfo;
MachineFrameInfo FrameInfo;
+ MachineConstantPool ConstantPool;
+ MachineJumpTableInfo JumpTables;
MachineFunctionProperties Properties;
MachineBasicBlock *FirstBlock = nullptr;
MachineBasicBlock *LastBlock = nullptr;