summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-09-03 04:21:34 +0000
committerTed Kremenek <kremenek@apple.com>2009-09-03 04:21:34 +0000
commit9bd2acb3b253c77dd1f7680a2e6505039e9c49a5 (patch)
tree7090c479c5c6cf5d1373e0e917b3fffa1a92b9f8
parent2f0adae973010f659909b77041b6cd674953d9b1 (diff)
downloadllvm-9bd2acb3b253c77dd1f7680a2e6505039e9c49a5.tar.gz
llvm-9bd2acb3b253c77dd1f7680a2e6505039e9c49a5.tar.bz2
llvm-9bd2acb3b253c77dd1f7680a2e6505039e9c49a5.tar.xz
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.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/llvm/ADT/ImmutableSet.h b/include/llvm/ADT/ImmutableSet.h
index 7c070d7a7f..70fc1a6914 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;
}
};