summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MIRParser/MIParser.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2015-08-13 20:33:33 +0000
committerAlex Lorenz <arphaman@gmail.com>2015-08-13 20:33:33 +0000
commit620f89145b65d3835992961de14af58226ac4f27 (patch)
treeb40be87c198f1dd45aab8f0b35faa666d92f2c46 /llvm/lib/CodeGen/MIRParser/MIParser.cpp
parent829091e310902e1539a357acbcada72f2d9665a2 (diff)
downloadbcm5719-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.cpp18
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))
OpenPOWER on IntegriCloud