]> granicus.if.org Git - clang/commitdiff
FileManager: Use a BumpPtrAllocator for the StringMaps DirEntries and FileEntries.
authorTed Kremenek <kremenek@apple.com>
Wed, 28 Jan 2009 00:44:12 +0000 (00:44 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 28 Jan 2009 00:44:12 +0000 (00:44 +0000)
Performance impact (clang -fsyntax-only INPUTS/Cocoa_h.m):
  non-PTH: 0.4% improvement
  PTH: 0.8% improvement

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

include/clang/Basic/FileManager.h
lib/Basic/FileManager.cpp

index 1b4ca81c3974bc7b00ea799240fc415336080c8a..aff9758f8146ad8beb07015b053ad12842d380d4 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/Bitcode/SerializationFwd.h"
+#include "llvm/Support/Allocator.h"
 #include <map>
 #include <set>
 #include <string>
@@ -86,8 +87,8 @@ class FileManager {
   /// DirEntries/FileEntries - This is a cache of directory/file entries we have
   /// looked up.  The actual Entry is owned by UniqueFiles/UniqueDirs above.
   ///
-  llvm::StringMap<DirectoryEntry*> DirEntries;
-  llvm::StringMap<FileEntry*> FileEntries;
+  llvm::StringMap<DirectoryEntry*, llvm::BumpPtrAllocator> DirEntries;
+  llvm::StringMap<FileEntry*, llvm::BumpPtrAllocator> FileEntries;
   
   /// NextFileUID - Each FileEntry we create is assigned a unique ID #.
   ///
index 3f7c4fd74b0249964ac83b69222f33858b225faf..c1a486f91efa149fbdfe6cdfaa35f8a59599fcf1 100644 (file)
@@ -22,7 +22,6 @@
 #include "llvm/Bitcode/Serialize.h"
 #include "llvm/Bitcode/Deserialize.h"
 #include "llvm/Support/Streams.h"
-#include "llvm/Support/Allocator.h"
 #include "llvm/Config/config.h"
 using namespace clang;