summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MIRParser/MIParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser/MIParser.cpp')
-rw-r--r--llvm/lib/CodeGen/MIRParser/MIParser.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp
index e4ca9ae02f7..695c58d1a08 100644
--- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp
+++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp
@@ -1030,7 +1030,7 @@ bool MIParser::parseLowLevelType(StringRef::iterator Loc, LLT &Ty,
bool MustBeSized) {
if (Token.is(MIToken::Identifier) && Token.stringValue() == "unsized") {
if (MustBeSized)
- return error(Loc, "expected sN or <N x sM> for sized GlobalISel type");
+ return error(Loc, "expected pN, sN or <N x sM> for sized GlobalISel type");
lex();
Ty = LLT::unsized();
return false;
@@ -1038,11 +1038,17 @@ bool MIParser::parseLowLevelType(StringRef::iterator Loc, LLT &Ty,
Ty = LLT::scalar(APSInt(Token.range().drop_front()).getZExtValue());
lex();
return false;
+ } else if (Token.is(MIToken::PointerType)) {
+ Ty = LLT::pointer(APSInt(Token.range().drop_front()).getZExtValue());
+ lex();
+ return false;
}
// Now we're looking for a vector.
if (Token.isNot(MIToken::less))
- return error(Loc, "expected unsized, sN or <N x sM> for GlobalISel type");
+ return error(Loc,
+ "expected unsized, pN, sN or <N x sM> for GlobalISel type");
+
lex();
if (Token.isNot(MIToken::IntegerLiteral))
OpenPOWER on IntegriCloud