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/MILexer.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/MILexer.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MILexer.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.cpp b/llvm/lib/CodeGen/MIRParser/MILexer.cpp index 4baa3859461..1ba5725d1f8 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.cpp +++ b/llvm/lib/CodeGen/MIRParser/MILexer.cpp @@ -115,9 +115,22 @@ static Cursor maybeLexMachineBasicBlock( return C; } +static Cursor lexVirtualRegister(Cursor C, MIToken &Token) { + auto Range = C; + C.advance(); // Skip '%' + auto NumberRange = C; + while (isdigit(C.peek())) + C.advance(); + Token = MIToken(MIToken::VirtualRegister, Range.upto(C), + APSInt(NumberRange.upto(C))); + return C; +} + static Cursor maybeLexRegister(Cursor C, MIToken &Token) { if (C.peek() != '%') return None; + if (isdigit(C.peek(1))) + return lexVirtualRegister(C, Token); auto Range = C; C.advance(); // Skip '%' while (isIdentifierChar(C.peek())) |

