[analyzer] Cluster bindings in RegionStore by base region.
authorJordan Rose <jordan_rose@apple.com>
Thu, 9 Aug 2012 22:55:51 +0000 (22:55 +0000)
committerJordan Rose <jordan_rose@apple.com>
Thu, 9 Aug 2012 22:55:51 +0000 (22:55 +0000)
commita44a55a8f242a6d5212ff22e6beddab02b97560f
tree4cfe6e9f50b67766874711a428c5b3429d2de6d4
parentc91e01bc116b89303f5e157793742e03f13827b7
[analyzer] Cluster bindings in RegionStore by base region.

This should speed up activities that need to access bindings by cluster,
such as invalidation and dead-bindings cleaning. In some cases all we save
is the cost of building the region cluster map, but other times we can
actually avoid traversing the rest of the store.

In casual testing, this produced a speedup of nearly 10% analyzing SQLite,
with /less/ memory used.

llvm-svn: 161636
clang/lib/StaticAnalyzer/Core/MemRegion.cpp
clang/lib/StaticAnalyzer/Core/RegionStore.cpp
clang/test/Analysis/ivars.m