[llvm] r243450 - MIR Parser: Extract the method 'parseGlobalValue'. NFC.

Alex Lorenz arphaman at gmail.com
Tue Jul 28 10:09:53 PDT 2015


Author: arphaman
Date: Tue Jul 28 12:09:52 2015
New Revision: 243450

URL: http://llvm.org/viewvc/llvm-project?rev=243450&view=rev
Log:
MIR Parser: Extract the method 'parseGlobalValue'. NFC.

This commit extracts the code that parses a global value from the method
'parseGlobalAddressOperand' into a new method 'parseGlobalValue', so that this
code can be reused by the method which will parse the block address machine
operands.

Modified:
    llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp

Modified: llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp?rev=243450&r1=243449&r2=243450&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp (original)
+++ llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp Tue Jul 28 12:09:52 2015
@@ -113,6 +113,7 @@ public:
   bool parseMBBOperand(MachineOperand &Dest);
   bool parseStackObjectOperand(MachineOperand &Dest);
   bool parseFixedStackObjectOperand(MachineOperand &Dest);
+  bool parseGlobalValue(GlobalValue *&GV);
   bool parseGlobalAddressOperand(MachineOperand &Dest);
   bool parseConstantPoolIndexOperand(MachineOperand &Dest);
   bool parseJumpTableIndexOperand(MachineOperand &Dest);
@@ -576,18 +577,17 @@ bool MIParser::parseFixedStackObjectOper
   return false;
 }
 
-bool MIParser::parseGlobalAddressOperand(MachineOperand &Dest) {
+bool MIParser::parseGlobalValue(GlobalValue *&GV) {
   switch (Token.kind()) {
   case MIToken::NamedGlobalValue:
   case MIToken::QuotedNamedGlobalValue: {
     StringValueUtility Name(Token);
     const Module *M = MF.getFunction()->getParent();
-    if (const auto *GV = M->getNamedValue(Name)) {
-      Dest = MachineOperand::CreateGA(GV, /*Offset=*/0);
-      break;
-    }
-    return error(Twine("use of undefined global value '@") +
-                 Token.rawStringValue() + "'");
+    GV = M->getNamedValue(Name);
+    if (!GV)
+      return error(Twine("use of undefined global value '@") +
+                   Token.rawStringValue() + "'");
+    break;
   }
   case MIToken::GlobalValue: {
     unsigned GVIdx;
@@ -596,13 +596,20 @@ bool MIParser::parseGlobalAddressOperand
     if (GVIdx >= IRSlots.GlobalValues.size())
       return error(Twine("use of undefined global value '@") + Twine(GVIdx) +
                    "'");
-    Dest = MachineOperand::CreateGA(IRSlots.GlobalValues[GVIdx],
-                                    /*Offset=*/0);
+    GV = IRSlots.GlobalValues[GVIdx];
     break;
   }
   default:
     llvm_unreachable("The current token should be a global value");
   }
+  return false;
+}
+
+bool MIParser::parseGlobalAddressOperand(MachineOperand &Dest) {
+  GlobalValue *GV = nullptr;
+  if (parseGlobalValue(GV))
+    return true;
+  Dest = MachineOperand::CreateGA(GV, /*Offset=*/0);
   // TODO: Parse offset and target flags.
   lex();
   return false;





More information about the llvm-commits mailing list