Author: matze Date: Fri Jan 29 19:27:06 2016 New Revision: 259284 URL: http://llvm.org/viewvc/llvm-project?rev=259284&view=rev Log: Avoid overly large SmallPtrSet/SmallSet
These sets perform linear searching in small mode so it is never a good idea to use SmallSize/N bigger than 32. Differential Revision: http://reviews.llvm.org/D16705 Modified: cfe/trunk/lib/Analysis/PseudoConstantAnalysis.cpp cfe/trunk/lib/Sema/SemaDeclObjC.cpp cfe/trunk/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp cfe/trunk/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp Modified: cfe/trunk/lib/Analysis/PseudoConstantAnalysis.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/PseudoConstantAnalysis.cpp?rev=259284&r1=259283&r2=259284&view=diff ============================================================================== --- cfe/trunk/lib/Analysis/PseudoConstantAnalysis.cpp (original) +++ cfe/trunk/lib/Analysis/PseudoConstantAnalysis.cpp Fri Jan 29 19:27:06 2016 @@ -22,9 +22,7 @@ using namespace clang; -// The number of ValueDecls we want to keep track of by default (per-function) -#define VARDECL_SET_SIZE 256 -typedef llvm::SmallPtrSet<const VarDecl*, VARDECL_SET_SIZE> VarDeclSet; +typedef llvm::SmallPtrSet<const VarDecl*, 32> VarDeclSet; PseudoConstantAnalysis::PseudoConstantAnalysis(const Stmt *DeclBody) : DeclBody(DeclBody), Analyzed(false) { Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=259284&r1=259283&r2=259284&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original) +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Fri Jan 29 19:27:06 2016 @@ -3843,7 +3843,7 @@ public: } } - typedef llvm::SmallPtrSet<ObjCMethodDecl*, 128>::iterator iterator; + typedef llvm::SmallPtrSetImpl<ObjCMethodDecl*>::iterator iterator; iterator begin() const { return Overridden.begin(); } iterator end() const { return Overridden.end(); } Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp?rev=259284&r1=259283&r2=259284&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp Fri Jan 29 19:27:06 2016 @@ -43,7 +43,7 @@ void AnalyzerStatsChecker::checkEndAnaly ExprEngine &Eng) const { const CFG *C = nullptr; const SourceManager &SM = B.getSourceManager(); - llvm::SmallPtrSet<const CFGBlock*, 256> reachable; + llvm::SmallPtrSet<const CFGBlock*, 32> reachable; // Root node should have the location context of the top most function. const ExplodedNode *GraphRoot = *G.roots_begin(); Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp?rev=259284&r1=259283&r2=259284&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp Fri Jan 29 19:27:06 2016 @@ -26,10 +26,6 @@ #include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h" #include "llvm/ADT/SmallSet.h" -// The number of CFGBlock pointers we want to reserve memory for. This is used -// once for each function we analyze. -#define DEFAULT_CFGBLOCKS 256 - using namespace clang; using namespace ento; @@ -39,7 +35,7 @@ public: void checkEndAnalysis(ExplodedGraph &G, BugReporter &B, ExprEngine &Eng) const; private: - typedef llvm::SmallSet<unsigned, DEFAULT_CFGBLOCKS> CFGBlocksSet; + typedef llvm::SmallSet<unsigned, 32> CFGBlocksSet; static inline const Stmt *getUnreachableStmt(const CFGBlock *CB); static void FindUnreachableEntryPoints(const CFGBlock *CB, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits