diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2015-07-10 22:51:20 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2015-07-10 22:51:20 +0000 |
| commit | 53464510ccbc20763287af49bae38c606b148619 (patch) | |
| tree | 11921cc7b78e876bfd6b1d35fedfccc4074310af /llvm/lib/CodeGen/MIRParser/MIParser.cpp | |
| parent | a5c7051a60066958ec62503e637e6b58b774cbe0 (diff) | |
| download | bcm5719-llvm-53464510ccbc20763287af49bae38c606b148619.tar.gz bcm5719-llvm-53464510ccbc20763287af49bae38c606b148619.zip | |
MIR Serialization: Serialize the virtual register operands.
Reviewers: Duncan P. N. Exon Smith
Differential Revision: http://reviews.llvm.org/D11005
llvm-svn: 241959
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser/MIParser.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIParser.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp index 7fd794bd211..5a88a8d21a5 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -288,6 +288,17 @@ bool MIParser::parseRegister(unsigned &Reg) { return error(Twine("unknown register name '") + Name + "'"); break; } + case MIToken::VirtualRegister: { + unsigned ID; + if (getUnsigned(ID)) + return true; + const auto RegInfo = PFS.VirtualRegisterSlots.find(ID); + if (RegInfo == PFS.VirtualRegisterSlots.end()) + return error(Twine("use of undefined virtual register '%") + Twine(ID) + + "'"); + Reg = RegInfo->second; + break; + } // TODO: Parse other register kinds. default: llvm_unreachable("The current token should be a register"); @@ -425,6 +436,7 @@ bool MIParser::parseMachineOperand(MachineOperand &Dest) { case MIToken::kw_undef: case MIToken::underscore: case MIToken::NamedRegister: + case MIToken::VirtualRegister: return parseRegisterOperand(Dest); case MIToken::IntegerLiteral: return parseImmediateOperand(Dest); |

