diff options
author | Alex Lorenz <arphaman@gmail.com> | 2015-08-13 20:33:33 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2015-08-13 20:33:33 +0000 |
commit | 620f89145b65d3835992961de14af58226ac4f27 (patch) | |
tree | b40be87c198f1dd45aab8f0b35faa666d92f2c46 /llvm/lib/CodeGen/MIRParser/MIParser.cpp | |
parent | 829091e310902e1539a357acbcada72f2d9665a2 (diff) | |
download | bcm5719-llvm-620f89145b65d3835992961de14af58226ac4f27.tar.gz bcm5719-llvm-620f89145b65d3835992961de14af58226ac4f27.zip |
MIR Parser: Extract the code that parses the alignment into a new method. NFC.
This commit extracts the code that parses the memory operand's alignment into
a new method named 'parseAlignment' so that it can be reused when parsing the
basic block's alignment attribute.
llvm-svn: 244945
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser/MIParser.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIParser.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp index b333f0b52b1..389c5aaec8c 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -126,6 +126,7 @@ public: bool parseMachineOperand(MachineOperand &Dest); bool parseMachineOperandAndTargetFlags(MachineOperand &Dest); bool parseOffset(int64_t &Offset); + bool parseAlignment(unsigned &Alignment); bool parseOperandsOffset(MachineOperand &Op); bool parseIRValue(Value *&V); bool parseMemoryOperandFlag(unsigned &Flags); @@ -1073,6 +1074,17 @@ bool MIParser::parseOffset(int64_t &Offset) { return false; } +bool MIParser::parseAlignment(unsigned &Alignment) { + assert(Token.is(MIToken::kw_align)); + lex(); + if (Token.isNot(MIToken::IntegerLiteral)) + return error("expected an integer literal after 'align'"); + if (getUnsigned(Alignment)) + return true; + lex(); + return false; +} + bool MIParser::parseOperandsOffset(MachineOperand &Op) { int64_t Offset = 0; if (parseOffset(Offset)) @@ -1226,12 +1238,8 @@ bool MIParser::parseMachineMemoryOperand(MachineMemOperand *&Dest) { lex(); if (Token.isNot(MIToken::kw_align)) return error("expected 'align'"); - lex(); - if (Token.isNot(MIToken::IntegerLiteral)) - return error("expected an integer literal after 'align'"); - if (getUnsigned(BaseAlignment)) + if (parseAlignment(BaseAlignment)) return true; - lex(); } // TODO: Parse the attached metadata nodes. if (expectAndConsume(MIToken::rparen)) |