forked from OSchip/llvm-project
MIRParser: Split the 'parseIRConstant' method into two methods. NFC.
One variant of this method can be reused when parsing the quoted IR pointer expressions in the machine memory operands. llvm-svn: 245743
This commit is contained in:
parent
d583b19569
commit
5d8b0bd9b0
|
@ -122,6 +122,8 @@ public:
|
|||
bool parseRegisterOperand(MachineOperand &Dest,
|
||||
Optional<unsigned> &TiedDefIdx, bool IsDef = false);
|
||||
bool parseImmediateOperand(MachineOperand &Dest);
|
||||
bool parseIRConstant(StringRef::iterator Loc, StringRef Source,
|
||||
const Constant *&C);
|
||||
bool parseIRConstant(StringRef::iterator Loc, const Constant *&C);
|
||||
bool parseTypedImmediateOperand(MachineOperand &Dest);
|
||||
bool parseFPImmediateOperand(MachineOperand &Dest);
|
||||
|
@ -976,9 +978,9 @@ bool MIParser::parseImmediateOperand(MachineOperand &Dest) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool MIParser::parseIRConstant(StringRef::iterator Loc, const Constant *&C) {
|
||||
auto Source = StringRef(Loc, Token.range().end() - Loc).str();
|
||||
lex();
|
||||
bool MIParser::parseIRConstant(StringRef::iterator Loc, StringRef StringValue,
|
||||
const Constant *&C) {
|
||||
auto Source = StringValue.str(); // The source has to be null terminated.
|
||||
SMDiagnostic Err;
|
||||
C = parseConstantValue(Source.c_str(), Err, *MF.getFunction()->getParent());
|
||||
if (!C)
|
||||
|
@ -986,6 +988,13 @@ bool MIParser::parseIRConstant(StringRef::iterator Loc, const Constant *&C) {
|
|||
return false;
|
||||
}
|
||||
|
||||
bool MIParser::parseIRConstant(StringRef::iterator Loc, const Constant *&C) {
|
||||
if (parseIRConstant(Loc, StringRef(Loc, Token.range().end() - Loc), C))
|
||||
return true;
|
||||
lex();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MIParser::parseTypedImmediateOperand(MachineOperand &Dest) {
|
||||
assert(Token.is(MIToken::IntegerType));
|
||||
auto Loc = Token.location();
|
||||
|
|
Loading…
Reference in New Issue