diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 00:16:18 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-12 00:16:18 +0800 |
| commit | adf3e4f02e330e052dbb75e9601bae5273ccfe6c (patch) | |
| tree | 83ae7665e938d3bbbfeec9f13d75caa3f50e10b7 /backend/lib/MIR/MIRFunctionParser.cpp | |
| parent | a308176a15e60f04823ec5c05f4a164394f26d8f (diff) | |
| download | rcc-project-adf3e4f02e330e052dbb75e9601bae5273ccfe6c.tar.gz rcc-project-adf3e4f02e330e052dbb75e9601bae5273ccfe6c.tar.xz | |
[MIR] Accept physical-only function live-ins
Diffstat (limited to 'backend/lib/MIR/MIRFunctionParser.cpp')
| -rw-r--r-- | backend/lib/MIR/MIRFunctionParser.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/backend/lib/MIR/MIRFunctionParser.cpp b/backend/lib/MIR/MIRFunctionParser.cpp index 68bc0aa..c8bba70 100644 --- a/backend/lib/MIR/MIRFunctionParser.cpp +++ b/backend/lib/MIR/MIRFunctionParser.cpp @@ -344,12 +344,14 @@ bool MIRDocumentParser::parseRegisters(const yaml::Node &Root, MachineFunction & std::optional<Register> Initial; if (const yaml::Node *VirtualNode = mappingValue(*Element, "virtual-reg")) { std::string_view Text; - Register Virtual; - if (scalar(*VirtualNode, Text, "virtual register") || - virtualRegister(Text, VirtualNode->range(), Context, Virtual)) { + if (scalar(*VirtualNode, Text, "virtual register")) return true; + if (!trim(Text).empty()) { + Register Virtual; + if (virtualRegister(Text, VirtualNode->range(), Context, Virtual)) + return true; + Initial = Virtual; } - Initial = Virtual; } auto AddResult = Function.registerInfo().addLiveIn(Reg, Initial); if (!AddResult) |
