aboutsummaryrefslogtreecommitdiff
path: root/backend/lib
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-12 00:16:18 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-12 00:16:18 +0800
commitadf3e4f02e330e052dbb75e9601bae5273ccfe6c (patch)
tree83ae7665e938d3bbbfeec9f13d75caa3f50e10b7 /backend/lib
parenta308176a15e60f04823ec5c05f4a164394f26d8f (diff)
downloadrcc-project-adf3e4f02e330e052dbb75e9601bae5273ccfe6c.tar.gz
rcc-project-adf3e4f02e330e052dbb75e9601bae5273ccfe6c.tar.xz
[MIR] Accept physical-only function live-ins
Diffstat (limited to 'backend/lib')
-rw-r--r--backend/lib/MIR/MIRFunctionParser.cpp10
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)