aboutsummaryrefslogtreecommitdiff
path: root/backend/unittests/CodeGen/MachineFrameInfoTest.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-03 19:24:30 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-03 19:24:30 +0800
commit432efe39315ed5ad0162f9c08dbf10941bc21dc1 (patch)
tree46622290cabfaeb8f4db1729aca6f0725739e08c /backend/unittests/CodeGen/MachineFrameInfoTest.cpp
parent6580ac1c05bd1cbccd2dcd71fd9c2a384ae3db56 (diff)
downloadrcc-project-432efe39315ed5ad0162f9c08dbf10941bc21dc1.tar.gz
rcc-project-432efe39315ed5ad0162f9c08dbf10941bc21dc1.tar.xz
[CodeGen] Add target MIR text schema
Diffstat (limited to 'backend/unittests/CodeGen/MachineFrameInfoTest.cpp')
-rw-r--r--backend/unittests/CodeGen/MachineFrameInfoTest.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/backend/unittests/CodeGen/MachineFrameInfoTest.cpp b/backend/unittests/CodeGen/MachineFrameInfoTest.cpp
index c9289c7..c67339d 100644
--- a/backend/unittests/CodeGen/MachineFrameInfoTest.cpp
+++ b/backend/unittests/CodeGen/MachineFrameInfoTest.cpp
@@ -149,15 +149,24 @@ void testInvalidDescriptions(TestContext &Context) {
Frame.object(*DebugIndex)->description()->DebugInfo == DebugObject.DebugInfo,
"stack object debug information must remain structured");
- Context.expect(!rcc::StackID::targetStack(4), "target stack IDs must not overlap built-in IDs");
- auto TargetStack = rcc::StackID::targetStack(256);
+ Context.expect(
+ rcc::StackID::fromValue(0) && rcc::StackID::fromValue(4) && rcc::StackID::fromValue(255) &&
+ !rcc::StackID::fromValue(5) && !rcc::StackID::fromValue(256) &&
+ rcc::parseStackIDName("sgpr-spill") == rcc::StackID::sgprSpillStack() &&
+ rcc::parseStackIDName("scalable-vector") == rcc::StackID::scalableVectorStack() &&
+ rcc::parseStackIDName("scalable-predicate-vector") ==
+ rcc::StackID::scalablePredicateVectorStack() &&
+ rcc::parseStackIDName("wasm-local") == rcc::StackID::wasmLocalStack() &&
+ rcc::parseStackIDName("noalloc") == rcc::StackID::noAllocStack() &&
+ !rcc::parseStackIDName("safe") &&
+ rcc::getStackIDName(rcc::StackID::noAllocStack()) == "noalloc",
+ "stack IDs and names must match the fixed LLVM MIR enumeration");
+
auto Target = fixedObject(8, 8);
Target.Kind = rcc::StackObjectKind::Target;
- if (TargetStack)
- Target.Stack = *TargetStack;
+ Target.Stack = rcc::StackID::sgprSpillStack();
auto TargetIndex = Frame.createObject(Target);
- Context.expect(TargetStack && TargetIndex,
- "target stack identity must admit target stack objects");
+ Context.expect(TargetIndex.has_value(), "special stack identity must admit target stack objects");
auto Unresolved = Frame.createObject(fixedObject(8, 8));
Context.expect(Unresolved && !Frame.freeze(16, *rcc::Alignment::create(8)) && !Frame.isFrozen() &&