From 432efe39315ed5ad0162f9c08dbf10941bc21dc1 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Mon, 3 Aug 2026 19:24:30 +0800 Subject: [CodeGen] Add target MIR text schema --- backend/unittests/CodeGen/MachineFrameInfoTest.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'backend/unittests/CodeGen/MachineFrameInfoTest.cpp') 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() && -- cgit v1.2.3