diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/AsmParser/LLParser.cpp | 15 | ||||
| -rw-r--r-- | llvm/lib/AsmParser/LLParser.h | 3 | 
2 files changed, 5 insertions, 13 deletions
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp index 8083a07fdbc..5dc5a5e1194 100644 --- a/llvm/lib/AsmParser/LLParser.cpp +++ b/llvm/lib/AsmParser/LLParser.cpp @@ -1078,9 +1078,7 @@ bool LLParser::ParseOptionalCallingConv(CallingConv::ID &CC) {  /// ParseInstructionMetadata  ///   ::= !dbg !42 (',' !dbg !57)* -bool LLParser:: -ParseInstructionMetadata(SmallVectorImpl<std::pair<unsigned, -                                                 MDNode *> > &Result){ +bool LLParser::ParseInstructionMetadata(Instruction *Inst) {    do {      if (Lex.getKind() != lltok::MetadataVar)        return TokError("expected metadata after comma"); @@ -1094,7 +1092,7 @@ ParseInstructionMetadata(SmallVectorImpl<std::pair<unsigned,        return true;      unsigned MDK = M->getMDKindID(Name.c_str()); -    Result.push_back(std::make_pair(MDK, Node)); +    Inst->setMetadata(MDK, Node);      // If this is the end of the list, we're done.    } while (EatIfPresent(lltok::comma)); @@ -2896,22 +2894,17 @@ bool LLParser::ParseBasicBlock(PerFunctionState &PFS) {        // With a normal result, we check to see if the instruction is followed by        // a comma and metadata.        if (EatIfPresent(lltok::comma)) -        if (ParseInstructionMetadata(MetadataOnInst)) +        if (ParseInstructionMetadata(Inst))            return true;        break;      case InstExtraComma:        // If the instruction parser ate an extra comma at the end of it, it        // *must* be followed by metadata. -      if (ParseInstructionMetadata(MetadataOnInst)) +      if (ParseInstructionMetadata(Inst))          return true;        break;              } -    // Set metadata attached with this instruction. -    for (unsigned i = 0, e = MetadataOnInst.size(); i != e; ++i) -      Inst->setMetadata(MetadataOnInst[i].first, MetadataOnInst[i].second); -    MetadataOnInst.clear(); -      BB->getInstList().push_back(Inst);      // Set the name on the instruction. diff --git a/llvm/lib/AsmParser/LLParser.h b/llvm/lib/AsmParser/LLParser.h index 9abe4042736..85cd0866066 100644 --- a/llvm/lib/AsmParser/LLParser.h +++ b/llvm/lib/AsmParser/LLParser.h @@ -171,8 +171,7 @@ namespace llvm {      bool ParseOptionalCallingConv(CallingConv::ID &CC);      bool ParseOptionalAlignment(unsigned &Alignment);      bool ParseOptionalStackAlignment(unsigned &Alignment); -    bool ParseInstructionMetadata(SmallVectorImpl<std::pair<unsigned, -                                                            MDNode *> > &); +    bool ParseInstructionMetadata(Instruction *Inst);      bool ParseOptionalCommaAlign(unsigned &Alignment, bool &AteExtraComma);      bool ParseIndexList(SmallVectorImpl<unsigned> &Indices,bool &AteExtraComma);      bool ParseIndexList(SmallVectorImpl<unsigned> &Indices) {  | 

