Index: C:/LLVM/llvm/include/llvm/TableGen/Record.h =================================================================== --- C:/LLVM/llvm/include/llvm/TableGen/Record.h +++ C:/LLVM/llvm/include/llvm/TableGen/Record.h @@ -1307,9 +1307,10 @@ } bool isSubClassOf(StringRef Name) const { - for (const auto &SCPair : SuperClasses) + for (const auto &SCPair : SuperClasses) { if (SCPair.first->getNameInitAsString() == Name) return true; + } return false; } Index: C:/LLVM/llvm/utils/TableGen/CodeGenInstruction.cpp =================================================================== --- C:/LLVM/llvm/utils/TableGen/CodeGenInstruction.cpp +++ C:/LLVM/llvm/utils/TableGen/CodeGenInstruction.cpp @@ -49,7 +49,9 @@ unsigned MIOperandNo = 0; std::set OperandNames; - for (unsigned i = 0, e = InDI->getNumArgs()+OutDI->getNumArgs(); i != e; ++i){ + unsigned e = InDI->getNumArgs()+OutDI->getNumArgs(); + OperandList.reserve(e); + for (unsigned i = 0; i != e; ++i){ Init *ArgInit; std::string ArgName; if (i < NumDefs) { Index: C:/LLVM/llvm/utils/TableGen/CodeGenTarget.cpp =================================================================== --- C:/LLVM/llvm/utils/TableGen/CodeGenTarget.cpp +++ C:/LLVM/llvm/utils/TableGen/CodeGenTarget.cpp @@ -441,6 +441,7 @@ std::vector I = RC.getAllDerivedDefinitions("Intrinsic"); std::vector Result; + Result.reserve(I.size()); for (unsigned i = 0, e = I.size(); i != e; ++i) { bool isTarget = I[i]->getValueAsBit("isTarget"); @@ -448,7 +449,7 @@ Result.push_back(CodeGenIntrinsic(I[i])); } std::sort(Result.begin(), Result.end(), - [](CodeGenIntrinsic LHS, CodeGenIntrinsic RHS) { + [](const CodeGenIntrinsic& LHS, const CodeGenIntrinsic& RHS) { return LHS.Name < RHS.Name; }); return Result;