diff options
Diffstat (limited to 'backend/lib/MIR')
| -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) |
