diff options
author | Alex Lorenz <arphaman@gmail.com> | 2015-08-06 16:55:53 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2015-08-06 16:55:53 +0000 |
commit | dc8de2a6b78c4f2d96c7a825a7b61faba3b834b0 (patch) | |
tree | cfd03deee65e241fb2790c7b24e697072890b44d /llvm/lib/CodeGen/MIRParser | |
parent | bd753c93157a40a4d99327d544f382dd1828f492 (diff) | |
download | bcm5719-llvm-dc8de2a6b78c4f2d96c7a825a7b61faba3b834b0.tar.gz bcm5719-llvm-dc8de2a6b78c4f2d96c7a825a7b61faba3b834b0.zip |
MIR Serialization: Serialize the 'invariant' machine memory operand flag.
llvm-svn: 244230
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 | 5 |
3 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.cpp b/llvm/lib/CodeGen/MIRParser/MILexer.cpp index 47e55017f1e..310ac7b4d71 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.cpp +++ b/llvm/lib/CodeGen/MIRParser/MILexer.cpp @@ -176,6 +176,7 @@ static MIToken::TokenKind getIdentifierKind(StringRef Identifier) { .Case("target-flags", MIToken::kw_target_flags) .Case("volatile", MIToken::kw_volatile) .Case("non-temporal", MIToken::kw_non_temporal) + .Case("invariant", MIToken::kw_invariant) .Default(MIToken::Identifier); } diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.h b/llvm/lib/CodeGen/MIRParser/MILexer.h index 1ff7dda1151..79bcb7fce01 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.h +++ b/llvm/lib/CodeGen/MIRParser/MILexer.h @@ -68,6 +68,7 @@ struct MIToken { kw_target_flags, kw_volatile, kw_non_temporal, + kw_invariant, // Identifier tokens Identifier, @@ -130,7 +131,8 @@ public: } bool isMemoryOperandFlag() const { - return Kind == kw_volatile || Kind == kw_non_temporal; + return Kind == kw_volatile || Kind == kw_non_temporal || + Kind == kw_invariant; } 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 0c3f5ecce86..36460b3f3eb 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -1066,8 +1066,11 @@ bool MIParser::parseMemoryOperandFlag(unsigned &Flags) { case MIToken::kw_non_temporal: Flags |= MachineMemOperand::MONonTemporal; break; + case MIToken::kw_invariant: + Flags |= MachineMemOperand::MOInvariant; + break; // TODO: report an error when we specify the same flag more than once. - // TODO: parse the other memory operand flags. + // TODO: parse the target specific memory operand flags. default: llvm_unreachable("The current token should be a memory operand flag"); } |