aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/Store.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-12-03 03:27:11 +0000
committerTed Kremenek <kremenek@apple.com>2009-12-03 03:27:11 +0000
commit81a958366873c8bb49a2ed7324f004047ec18e48 (patch)
treef123703a394ae2ce36f7b3e4f8b262ecbd04b12f /lib/Analysis/Store.cpp
parentb5b32f5292a8c4e1be8fd5c2865ce48767ec63d5 (diff)
Add batch version of 'StoreManager::InvalidateRegion()' for invalidating multiple regions as once. After adopting this in the CFRefCount::EvalCall(), we see a reduction in analysis time of 1.5% when analyzing all of SQLite3.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90405 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/Store.cpp')
-rw-r--r--lib/Analysis/Store.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Analysis/Store.cpp b/lib/Analysis/Store.cpp
index 2fd573c476..78eed4619b 100644
--- a/lib/Analysis/Store.cpp
+++ b/lib/Analysis/Store.cpp
@@ -205,3 +205,14 @@ SVal StoreManager::CastRetrievedVal(SVal V, const TypedRegion *R,
return V;
}
+const GRState *StoreManager::InvalidateRegions(const GRState *state,
+ const MemRegion * const *I,
+ const MemRegion * const *End,
+ const Expr *E,
+ unsigned Count,
+ InvalidatedSymbols *IS) {
+ for ( ; I != End ; ++I)
+ state = InvalidateRegion(state, *I, E, Count, IS);
+
+ return state;
+}