]> granicus.if.org Git - clang/commit
static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3...
authorTed Kremenek <kremenek@apple.com>
Wed, 9 Feb 2011 01:27:33 +0000 (01:27 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 9 Feb 2011 01:27:33 +0000 (01:27 +0000)
commitd767d81290288c030f3be0be1d3e62b9c8df51dc
tree67d3d7698eff94250b0221e0edf97918f1493998
parent58465900ca10e53b8700a64e9265870de34e1aca
static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3 by 7-10% by recylcing "uninteresting" ExplodedNodes.

The optimization involves eagerly pruning ExplodedNodes from the ExplodedGraph that contain
practically no difference between the predecessor and successor nodes.  For example, if
the state is different between a predecessor and a node, the node is left in.  Only for
the 'environment' component of the state do we not care if the ExplodedNodes are different.
This paves the way for future optimizations where we can reclaim the environment objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125154 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Driver/CC1Options.td
include/clang/Frontend/AnalyzerOptions.h
include/clang/StaticAnalyzer/PathSensitive/AnalysisManager.h
include/clang/StaticAnalyzer/PathSensitive/ExplodedGraph.h
include/clang/StaticAnalyzer/PathSensitive/GRState.h
lib/Frontend/CompilerInvocation.cpp
lib/StaticAnalyzer/Checkers/AnalysisConsumer.cpp
lib/StaticAnalyzer/Checkers/ExprEngine.cpp
lib/StaticAnalyzer/Core/CoreEngine.cpp
lib/StaticAnalyzer/Core/ExplodedGraph.cpp