diff options
author | Matthias Braun <matze@braunis.de> | 2016-12-05 06:41:51 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2016-12-05 06:41:51 +0000 |
commit | 1ddb78cd5f13756cdf6718c3aa688447b6b70aeb (patch) | |
tree | 8af2c9956999b8bd954b2069be87843958f13d93 /llvm/lib/TableGen/TGParser.cpp | |
parent | dbe6e7de9e8893c36c3306680e62d027e122cd95 (diff) | |
download | bcm5719-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.cpp | 21 |
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 |