Initialize BasicAA's AliasCache to set it to use fewer buckets by
authorDan Gohman <gohman@apple.com>
Fri, 10 Jun 2011 22:30:30 +0000 (22:30 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 10 Jun 2011 22:30:30 +0000 (22:30 +0000)
default, since it usually has very few elements. This speeds up
alias queries in many cases, because AliasCache.clear() doesn't
have to visit as many buckets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132862 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/BasicAliasAnalysis.cpp

index 3d10a5fd4d76fc6a0dcd776346049729d0e5b937..8330ea7c7036cfd57c3c0563bd7d9a8fe41cc368 100644 (file)
@@ -451,7 +451,13 @@ namespace {
   /// BasicAliasAnalysis - This is the primary alias analysis implementation.
   struct BasicAliasAnalysis : public ImmutablePass, public AliasAnalysis {
     static char ID; // Class identification, replacement for typeinfo
-    BasicAliasAnalysis() : ImmutablePass(ID) {
+    BasicAliasAnalysis() : ImmutablePass(ID),
+                           // AliasCache rarely has more than 1 or 2 elements,
+                           // so start it off fairly small so that clear()
+                           // doesn't have to tromp through 64 (the default)
+                           // elements on each alias query. This really wants
+                           // something like a SmallDenseMap.
+                           AliasCache(8) {
       initializeBasicAliasAnalysisPass(*PassRegistry::getPassRegistry());
     }