On Thu, Sep 11, 2014 at 7:13 AM, Benjamin Kramer <[email protected]> wrote:
> Author: d0k > Date: Thu Sep 11 09:13:49 2014 > New Revision: 217586 > > URL: http://llvm.org/viewvc/llvm-project?rev=217586&view=rev > Log: > Avoid some unnecessary SmallVector copies. > What technique did you use to find these cases? > > No functionality change. > > Modified: > cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h > cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp > cfe/trunk/lib/Driver/Driver.cpp > cfe/trunk/lib/Driver/Tools.cpp > cfe/trunk/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp > > Modified: cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h?rev=217586&r1=217585&r2=217586&view=diff > > ============================================================================== > --- cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h (original) > +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchFinder.h Thu Sep 11 > 09:13:49 2014 > @@ -253,7 +253,7 @@ match(MatcherT Matcher, const ast_type_t > MatchFinder Finder; > Finder.addMatcher(Matcher, &Callback); > Finder.match(Node, Context); > - return Callback.Nodes; > + return std::move(Callback.Nodes); > } > > template <typename MatcherT, typename NodeT> > > Modified: cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp?rev=217586&r1=217585&r2=217586&view=diff > > ============================================================================== > --- cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp (original) > +++ cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp Thu Sep 11 09:13:49 2014 > @@ -1162,7 +1162,7 @@ void MicrosoftCXXABI::EmitDestructorCall > void MicrosoftCXXABI::emitVTableDefinitions(CodeGenVTables &CGVT, > const CXXRecordDecl *RD) { > MicrosoftVTableContext &VFTContext = CGM.getMicrosoftVTableContext(); > - VPtrInfoVector VFPtrs = VFTContext.getVFPtrOffsets(RD); > + const VPtrInfoVector &VFPtrs = VFTContext.getVFPtrOffsets(RD); > > for (VPtrInfo *Info : VFPtrs) { > llvm::GlobalVariable *VTable = getAddrOfVTable(RD, > Info->FullOffsetInMDC); > > Modified: cfe/trunk/lib/Driver/Driver.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=217586&r1=217585&r2=217586&view=diff > > ============================================================================== > --- cfe/trunk/lib/Driver/Driver.cpp (original) > +++ cfe/trunk/lib/Driver/Driver.cpp Thu Sep 11 09:13:49 2014 > @@ -518,7 +518,7 @@ void Driver::generateCompilationDiagnost > << "\n********************\n\n" > "PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:\n" > "Preprocessed source(s) and associated run script(s) are located > at:"; > - ArgStringList Files = C.getTempFiles(); > + const ArgStringList &Files = C.getTempFiles(); > for (ArgStringList::const_iterator it = Files.begin(), ie = > Files.end(); > it != ie; ++it) { > Diag(clang::diag::note_drv_command_failed_diag_msg) << *it; > > Modified: cfe/trunk/lib/Driver/Tools.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=217586&r1=217585&r2=217586&view=diff > > ============================================================================== > --- cfe/trunk/lib/Driver/Tools.cpp (original) > +++ cfe/trunk/lib/Driver/Tools.cpp Thu Sep 11 09:13:49 2014 > @@ -6599,7 +6599,7 @@ void freebsd::Link::ConstructJob(Compila > } > > Args.AddAllArgs(CmdArgs, options::OPT_L); > - const ToolChain::path_list Paths = ToolChain.getFilePaths(); > + const ToolChain::path_list &Paths = ToolChain.getFilePaths(); > for (const auto &Path : Paths) > CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + Path)); > Args.AddAllArgs(CmdArgs, options::OPT_T_Group); > @@ -7425,7 +7425,7 @@ void gnutools::Link::ConstructJob(Compil > Args.AddAllArgs(CmdArgs, options::OPT_L); > Args.AddAllArgs(CmdArgs, options::OPT_u); > > - const ToolChain::path_list Paths = ToolChain.getFilePaths(); > + const ToolChain::path_list &Paths = ToolChain.getFilePaths(); > > for (const auto &Path : Paths) > CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + Path)); > > Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp?rev=217586&r1=217585&r2=217586&view=diff > > ============================================================================== > --- cfe/trunk/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp > (original) > +++ cfe/trunk/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp Thu Sep > 11 09:13:49 2014 > @@ -63,8 +63,7 @@ class SimpleStreamChecker : public Check > const CallEvent &Call, > CheckerContext &C) const; > > - void reportLeaks(SymbolVector LeakedStreams, > - CheckerContext &C, > + void reportLeaks(ArrayRef<SymbolRef> LeakedStreams, CheckerContext &C, > ExplodedNode *ErrNode) const; > > bool guaranteedNotToCloseFile(const CallEvent &Call) const; > @@ -222,16 +221,15 @@ void SimpleStreamChecker::reportDoubleCl > C.emitReport(R); > } > > -void SimpleStreamChecker::reportLeaks(SymbolVector LeakedStreams, > - CheckerContext &C, > - ExplodedNode *ErrNode) > const { > +void SimpleStreamChecker::reportLeaks(ArrayRef<SymbolRef> LeakedStreams, > + CheckerContext &C, > + ExplodedNode *ErrNode) const { > // Attach bug reports to the leak node. > // TODO: Identify the leaked file descriptor. > - for (SmallVectorImpl<SymbolRef>::iterator > - I = LeakedStreams.begin(), E = LeakedStreams.end(); I != E; ++I) > { > + for (SymbolRef LeakedStream : LeakedStreams) { > BugReport *R = new BugReport(*LeakBugType, > "Opened file is never closed; potential resource leak", ErrNode); > - R->markInteresting(*I); > + R->markInteresting(LeakedStream); > C.emitReport(R); > } > } > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
