diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2015-07-08 23:58:31 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2015-07-08 23:58:31 +0000 |
| commit | 4d026b89da363d55ae46891265c83d616dbfb39e (patch) | |
| tree | f595497fc109603e57aea32e2ae7edba8eac6d64 /llvm/lib/CodeGen/MIRParser | |
| parent | e7844ea7f86127a21686e2392da55ffa533d83dd (diff) | |
| download | bcm5719-llvm-4d026b89da363d55ae46891265c83d616dbfb39e.tar.gz bcm5719-llvm-4d026b89da363d55ae46891265c83d616dbfb39e.zip | |
MIR Serialization: Serialize the 'undef' register machine operand flag.
llvm-svn: 241762
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser')
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MILexer.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MILexer.h | 3 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIParser.cpp | 6 |
3 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.cpp b/llvm/lib/CodeGen/MIRParser/MILexer.cpp index 37e71edea4e..4baa3859461 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.cpp +++ b/llvm/lib/CodeGen/MIRParser/MILexer.cpp @@ -72,6 +72,7 @@ static MIToken::TokenKind getIdentifierKind(StringRef Identifier) { .Case("implicit-def", MIToken::kw_implicit_define) .Case("dead", MIToken::kw_dead) .Case("killed", MIToken::kw_killed) + .Case("undef", MIToken::kw_undef) .Default(MIToken::Identifier); } diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.h b/llvm/lib/CodeGen/MIRParser/MILexer.h index 610a7b95b40..ef471d250c2 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.h +++ b/llvm/lib/CodeGen/MIRParser/MILexer.h @@ -41,6 +41,7 @@ struct MIToken { kw_implicit_define, kw_dead, kw_killed, + kw_undef, // Identifier tokens Identifier, @@ -77,7 +78,7 @@ public: bool isRegisterFlag() const { return Kind == kw_implicit || Kind == kw_implicit_define || - Kind == kw_dead || Kind == kw_killed; + Kind == kw_dead || Kind == kw_killed || Kind == kw_undef; } bool is(TokenKind K) const { return Kind == K; } diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp index 0664c5170af..7fd794bd211 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -309,6 +309,9 @@ bool MIParser::parseRegisterFlag(unsigned &Flags) { case MIToken::kw_killed: Flags |= RegState::Kill; break; + case MIToken::kw_undef: + Flags |= RegState::Undef; + break; // TODO: report an error when we specify the same flag more than once. // TODO: parse the other register flags. default: @@ -333,7 +336,7 @@ bool MIParser::parseRegisterOperand(MachineOperand &Dest, bool IsDef) { // TODO: Parse subregister. Dest = MachineOperand::CreateReg( Reg, Flags & RegState::Define, Flags & RegState::Implicit, - Flags & RegState::Kill, Flags & RegState::Dead); + Flags & RegState::Kill, Flags & RegState::Dead, Flags & RegState::Undef); return false; } @@ -419,6 +422,7 @@ bool MIParser::parseMachineOperand(MachineOperand &Dest) { case MIToken::kw_implicit_define: case MIToken::kw_dead: case MIToken::kw_killed: + case MIToken::kw_undef: case MIToken::underscore: case MIToken::NamedRegister: return parseRegisterOperand(Dest); |

