diff options
author | Matthias Braun <matze@braunis.de> | 2016-06-04 00:06:31 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2016-06-04 00:06:31 +0000 |
commit | c25c9ccbcbb1e8ad3e1bf48afb0fbaba64b84d0e (patch) | |
tree | 24ede9df7156ee7c138510f51975b3f311a2106d /llvm/lib/CodeGen/MIRParser | |
parent | ff2873742e5bd4c59a7769fbbe9d6397e0c298f7 (diff) | |
download | bcm5719-llvm-c25c9ccbcbb1e8ad3e1bf48afb0fbaba64b84d0e.tar.gz bcm5719-llvm-c25c9ccbcbb1e8ad3e1bf48afb0fbaba64b84d0e.zip |
MIR: Support MachineMemOperands without associated value
This is allowed (though used rarely) and useful to keep your tests
short.
llvm-svn: 271752
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser')
-rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIParser.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp index 8c7345111c5..41454dd9d66 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -1778,14 +1778,16 @@ bool MIParser::parseMachineMemoryOperand(MachineMemOperand *&Dest) { return true; lex(); - const char *Word = Flags & MachineMemOperand::MOLoad ? "from" : "into"; - if (Token.isNot(MIToken::Identifier) || Token.stringValue() != Word) - return error(Twine("expected '") + Word + "'"); - lex(); - MachinePointerInfo Ptr = MachinePointerInfo(); - if (parseMachinePointerInfo(Ptr)) - return true; + if (Token.is(MIToken::Identifier)) { + const char *Word = Flags & MachineMemOperand::MOLoad ? "from" : "into"; + if (Token.stringValue() != Word) + return error(Twine("expected '") + Word + "'"); + lex(); + + if (parseMachinePointerInfo(Ptr)) + return true; + } unsigned BaseAlignment = Size; AAMDNodes AAInfo; MDNode *Range = nullptr; |