diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2015-08-14 19:07:07 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2015-08-14 19:07:07 +0000 |
| commit | 1039fd1ae54f6d2365a5c475ee3e55cfb8731932 (patch) | |
| tree | a819d24c008383f5eb315d061502ecf4a11b4f8a /llvm/lib/CodeGen/MIRParser | |
| parent | b8a3fe7a53e3226888be41c7a1dfa02cfe877edf (diff) | |
| download | bcm5719-llvm-1039fd1ae54f6d2365a5c475ee3e55cfb8731932.tar.gz bcm5719-llvm-1039fd1ae54f6d2365a5c475ee3e55cfb8731932.zip | |
MIR Serialization: Serialize the 'internal' register operand flag.
llvm-svn: 245085
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 | 4 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIParser.cpp | 8 |
3 files changed, 10 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.cpp b/llvm/lib/CodeGen/MIRParser/MILexer.cpp index 5ae1b10afd6..e15a4d1e753 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.cpp +++ b/llvm/lib/CodeGen/MIRParser/MILexer.cpp @@ -191,6 +191,7 @@ static MIToken::TokenKind getIdentifierKind(StringRef Identifier) { .Case("dead", MIToken::kw_dead) .Case("killed", MIToken::kw_killed) .Case("undef", MIToken::kw_undef) + .Case("internal", MIToken::kw_internal) .Case("early-clobber", MIToken::kw_early_clobber) .Case("debug-use", MIToken::kw_debug_use) .Case("frame-setup", MIToken::kw_frame_setup) diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.h b/llvm/lib/CodeGen/MIRParser/MILexer.h index 2f55ae4f0db..e7abbb2dd89 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.h +++ b/llvm/lib/CodeGen/MIRParser/MILexer.h @@ -52,6 +52,7 @@ struct MIToken { kw_dead, kw_killed, kw_undef, + kw_internal, kw_early_clobber, kw_debug_use, kw_frame_setup, @@ -138,7 +139,8 @@ public: bool isRegisterFlag() const { return Kind == kw_implicit || Kind == kw_implicit_define || Kind == kw_dead || Kind == kw_killed || Kind == kw_undef || - Kind == kw_early_clobber || Kind == kw_debug_use; + Kind == kw_internal || Kind == kw_early_clobber || + Kind == kw_debug_use; } bool isMemoryOperandFlag() const { diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp index 36b34395d4d..7984116efcb 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -777,13 +777,15 @@ bool MIParser::parseRegisterFlag(unsigned &Flags) { case MIToken::kw_undef: Flags |= RegState::Undef; break; + case MIToken::kw_internal: + Flags |= RegState::InternalRead; + break; case MIToken::kw_early_clobber: Flags |= RegState::EarlyClobber; break; case MIToken::kw_debug_use: Flags |= RegState::Debug; break; - // TODO: parse the other register flags. default: llvm_unreachable("The current token should be a register flag"); } @@ -828,7 +830,8 @@ bool MIParser::parseRegisterOperand(MachineOperand &Dest, bool IsDef) { Dest = MachineOperand::CreateReg( Reg, Flags & RegState::Define, Flags & RegState::Implicit, Flags & RegState::Kill, Flags & RegState::Dead, Flags & RegState::Undef, - Flags & RegState::EarlyClobber, SubReg, Flags & RegState::Debug); + Flags & RegState::EarlyClobber, SubReg, Flags & RegState::Debug, + Flags & RegState::InternalRead); return false; } @@ -1235,6 +1238,7 @@ bool MIParser::parseMachineOperand(MachineOperand &Dest) { case MIToken::kw_dead: case MIToken::kw_killed: case MIToken::kw_undef: + case MIToken::kw_internal: case MIToken::kw_early_clobber: case MIToken::kw_debug_use: case MIToken::underscore: |

