MIR Parser: Extract the code that parses the alignment into a new method. NFC.
authorAlex Lorenz <arphaman@gmail.com>
Thu, 13 Aug 2015 20:33:33 +0000 (20:33 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Thu, 13 Aug 2015 20:33:33 +0000 (20:33 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244945 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MIRParser/MIParser.cpp

index b333f0b52b1b84f8df0cf8970a4022bd779bdf05..389c5aaec8c70c3db560d278e2d692ac7a6fecb5 100644 (file)
@@ -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))