summaryrefslogtreecommitdiffstats
path: root/llvm/lib/TableGen/TGParser.cpp
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2016-12-05 06:41:51 +0000
committerMatthias Braun <matze@braunis.de>2016-12-05 06:41:51 +0000
commit1ddb78cd5f13756cdf6718c3aa688447b6b70aeb (patch)
tree8af2c9956999b8bd954b2069be87843958f13d93 /llvm/lib/TableGen/TGParser.cpp
parentdbe6e7de9e8893c36c3306680e62d027e122cd95 (diff)
downloadbcm5719-llvm-1ddb78cd5f13756cdf6718c3aa688447b6b70aeb.tar.gz
bcm5719-llvm-1ddb78cd5f13756cdf6718c3aa688447b6b70aeb.zip
TableGen/Record: Replace std::vector with SmallVector/ArrayRef
llvm-svn: 288648
Diffstat (limited to 'llvm/lib/TableGen/TGParser.cpp')
-rw-r--r--llvm/lib/TableGen/TGParser.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp
index 690cbf929c8..b342f624295 100644
--- a/llvm/lib/TableGen/TGParser.cpp
+++ b/llvm/lib/TableGen/TGParser.cpp
@@ -1428,9 +1428,9 @@ Init *TGParser::ParseSimpleValue(Record *CurRec, RecTy *ItemType,
Lex.Lex(); // eat the VarName.
}
- std::vector<std::pair<llvm::Init*, StringInit*> > DagArgs;
+ SmallVector<std::pair<llvm::Init*, StringInit*>, 8> DagArgs;
if (Lex.getCode() != tgtok::r_paren) {
- DagArgs = ParseDagArgList(CurRec);
+ ParseDagArgList(DagArgs, CurRec);
if (DagArgs.empty()) return nullptr;
}
@@ -1603,9 +1603,9 @@ Init *TGParser::ParseValue(Record *CurRec, RecTy *ItemType, IDParseMode Mode) {
/// DagArg ::= VARNAME
/// DagArgList ::= DagArg
/// DagArgList ::= DagArgList ',' DagArg
-std::vector<std::pair<llvm::Init*, StringInit*> >
-TGParser::ParseDagArgList(Record *CurRec) {
- std::vector<std::pair<llvm::Init*, StringInit*> > Result;
+void TGParser::ParseDagArgList(
+ SmallVectorImpl<std::pair<llvm::Init*, StringInit*>> &Result,
+ Record *CurRec) {
while (true) {
// DagArg ::= VARNAME
@@ -1617,15 +1617,18 @@ TGParser::ParseDagArgList(Record *CurRec) {
} else {
// DagArg ::= Value (':' VARNAME)?
Init *Val = ParseValue(CurRec);
- if (!Val)
- return std::vector<std::pair<llvm::Init*, StringInit*> >();
+ if (!Val) {
+ Result.clear();
+ return;
+ }
// If the variable name is present, add it.
StringInit *VarName = nullptr;
if (Lex.getCode() == tgtok::colon) {
if (Lex.Lex() != tgtok::VarName) { // eat the ':'
TokError("expected variable name in dag literal");
- return std::vector<std::pair<llvm::Init*, StringInit*> >();
+ Result.clear();
+ return;
}
VarName = StringInit::get(Lex.getCurStrVal());
Lex.Lex(); // eat the VarName.
@@ -1636,8 +1639,6 @@ TGParser::ParseDagArgList(Record *CurRec) {
if (Lex.getCode() != tgtok::comma) break;
Lex.Lex(); // eat the ','
}
-
- return Result;
}
/// ParseValueList - Parse a comma separated list of values, returning them as a
OpenPOWER on IntegriCloud