[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