Manna added inline comments.
================ Comment at: clang/lib/AST/ASTContext.cpp:8206 - for (auto B : CXXRD->bases()) + for (const auto &B : CXXRD->bases()) if (hasTemplateSpecializationInEncodedString(B.getType().getTypePtr(), ---------------- CXXBaseSpecifier is less in size, but most of cases we are using reference semantics. ================ Comment at: clang/lib/AST/ComputeDependence.cpp:763 D |= toExprDependence(Q->getDependence()); - for (auto A : E->template_arguments()) + for (const auto &A : E->template_arguments()) D |= toExprDependence(A.getArgument().getDependence()); ---------------- TemplateArgumentLoc has a TemplateArgument (pass by value usually), but it also has a TemplateArgumentLocInfo, which is a pair of pointers + source locations. ================ Comment at: clang/lib/ASTMatchers/Dynamic/Marshallers.h:1011 std::vector<ASTNodeKind> NodeKinds; - for (auto Arg : Args) { + for (const auto &Arg : Args) { if (!Arg.Value.isNodeKind()) ---------------- This returns ParserValue which passes as a reference. ================ Comment at: clang/lib/CodeGen/CGVTables.cpp:1278 - for (auto B : RD->vbases()) + for (const auto &B : RD->vbases()) if (B.getType()->getAsCXXRecordDecl()->isDynamicClass()) ---------------- CXXBaseSpecifier is less in size, but most of cases we are using reference semantics. ================ Comment at: clang/lib/Lex/Pragma.cpp:1110 Module *M = nullptr; - for (auto IIAndLoc : ModuleName) { + for (const auto &IIAndLoc : ModuleName) { M = MM.lookupModuleQualified(IIAndLoc.first->getName(), M); ---------------- This returns a std::pair<IdentifierInfo *, SourceLocation> which is not particularly expensive to copy ================ Comment at: clang/lib/Sema/SemaDeclCXX.cpp:3974 llvm::SmallPtrSet<QualType, 4> UninitializedBaseClasses; - for (auto I : RD->bases()) + for (const auto &I : RD->bases()) UninitializedBaseClasses.insert(I.getType().getCanonicalType()); ---------------- CXXBaseSpecifier is less in size, but most of cases we are using reference semantics. ================ Comment at: clang/utils/TableGen/ClangAttrEmitter.cpp:4262 // will be using. - for (auto I : Attrs) { + for (const auto &I : Attrs) { const Record &Attr = *I.second; ---------------- Passes as a reference Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148812/new/ https://reviews.llvm.org/D148812 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits