diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-09-03 04:21:34 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-09-03 04:21:34 +0000 |
commit | 9bd2acb3b253c77dd1f7680a2e6505039e9c49a5 (patch) | |
tree | 7090c479c5c6cf5d1373e0e917b3fffa1a92b9f8 | |
parent | 2f0adae973010f659909b77041b6cd674953d9b1 (diff) | |
download | external_llvm-9bd2acb3b253c77dd1f7680a2e6505039e9c49a5.zip external_llvm-9bd2acb3b253c77dd1f7680a2e6505039e9c49a5.tar.gz external_llvm-9bd2acb3b253c77dd1f7680a2e6505039e9c49a5.tar.bz2 |
Set the 'cached digest' flag after computing the digest for an
ImutAVLTree. This was accidentally left out, and essentially caused
digest caching to be ignored in ImmutableMap and ImmutableSet (this
bug was detected from shark traces that showed ComputeDigest was in
the hot path in the clang static analyzer).
This reduces the running time of the clang static analyzer on an
example benchmark by ~32% for both RegionStore (field-sensitivty) and
BasicStore (without field-sensitivity).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80877 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/ADT/ImmutableSet.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/llvm/ADT/ImmutableSet.h b/include/llvm/ADT/ImmutableSet.h index 7c070d7..70fc1a6 100644 --- a/include/llvm/ADT/ImmutableSet.h +++ b/include/llvm/ADT/ImmutableSet.h @@ -331,6 +331,7 @@ private: uint32_t X = ComputeDigest(getLeft(), getRight(), getValue()); Digest = X; + MarkedCachedDigest(); return X; } }; |