From 1846ea3c71381c5fcce0fbff5bcadfebc42a13d7 Mon Sep 17 00:00:00 2001 From: Bruno Cardoso Lopes Date: Tue, 18 Aug 2015 16:54:36 +0000 Subject: [LVI] Use a SmallDenseMap instead of std::map for ValueCacheEntryTy Historically there seems to be some resistance regarding the change to DenseMap (r147980). However, I couldn't find cases of iterator invalidation for ValueCacheEntryTy, but only for ValueCache, which I left untouched. This reduces 20s on an internal testcase. Follow up from r245309. Differential Revision: http://reviews.llvm.org/D11651 rdar://problem/21320066 llvm-svn: 245314 --- llvm/lib/Analysis/LazyValueInfo.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Analysis/LazyValueInfo.cpp') diff --git a/llvm/lib/Analysis/LazyValueInfo.cpp b/llvm/lib/Analysis/LazyValueInfo.cpp index 5904257492b..a984bc40ac1 100644 --- a/llvm/lib/Analysis/LazyValueInfo.cpp +++ b/llvm/lib/Analysis/LazyValueInfo.cpp @@ -315,7 +315,8 @@ namespace { /// This is all of the cached block information for exactly one Value*. /// The entries are sorted by the BasicBlock* of the /// entries, allowing us to do a lookup with a binary search. - typedef std::map, LVILatticeVal> ValueCacheEntryTy; + typedef SmallDenseMap, LVILatticeVal, 4> + ValueCacheEntryTy; /// This is all of the cached information for all values, /// mapped from Value* to key information. -- cgit v1.2.3