diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-01-25 19:13:54 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-01-25 19:13:54 +0000 |
commit | ade45d97038e907f94e9d9492f6b5cec58d3563c (patch) | |
tree | 8be2116097f706451865ce9b8f1624271975041c /clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp | |
parent | bcf848f70a4246808f46f3de006fd0c51433563d (diff) | |
download | bcm5719-llvm-ade45d97038e907f94e9d9492f6b5cec58d3563c.tar.gz bcm5719-llvm-ade45d97038e907f94e9d9492f6b5cec58d3563c.zip |
Recycle memory for GRStates that are never referenced
by ExplodedNodes. This leads to about a 4-8%
reduction in memory footprint when analyzing
functions in sqlite3.
llvm-svn: 124214
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp b/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp index 53931dc607a..f311bea8778 100644 --- a/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp @@ -574,6 +574,9 @@ void ExprEngine::processCFGElement(const CFGElement E, } void ExprEngine::ProcessStmt(const CFGStmt S, StmtNodeBuilder& builder) { + // Recycle any unused states in the GRStateManager. + StateMgr.recycleUnusedStates(); + currentStmt = S.getStmt(); PrettyStackTraceLoc CrashInfo(getContext().getSourceManager(), currentStmt->getLocStart(), |