summaryrefslogtreecommitdiffstats
path: root/include/clang/Sema/CodeCompleteConsumer.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-02-02 19:04:30 +0000
committerDouglas Gregor <dgregor@apple.com>2011-02-02 19:04:30 +0000
commit6159d0fe2d40708b5a3caab91c8292253894ebf3 (patch)
treee5ab1e2b0e2ba5d8cf6fa97541d9d74115e70abe /include/clang/Sema/CodeCompleteConsumer.h
parent8e50a96b387dca7525caa8a6add31420dd82a2cd (diff)
Revert r124704, which uniqued code-completion strings. The space
savings of 25% sounds impressive, except that this amounted to only about 360k in our standard "large" completion result set (40,000 results). Since code completion is performance-sensitive, the 4% slowdown due to uniquing outweighs the 360k benefit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124737 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Sema/CodeCompleteConsumer.h')
-rw-r--r--include/clang/Sema/CodeCompleteConsumer.h38
1 files changed, 0 insertions, 38 deletions
diff --git a/include/clang/Sema/CodeCompleteConsumer.h b/include/clang/Sema/CodeCompleteConsumer.h
index bd9a868101..8cb8e75393 100644
--- a/include/clang/Sema/CodeCompleteConsumer.h
+++ b/include/clang/Sema/CodeCompleteConsumer.h
@@ -15,9 +15,7 @@
#include "clang/AST/Type.h"
#include "clang/AST/CanonicalType.h"
-#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Allocator.h"
#include "clang-c/Index.h"
@@ -423,47 +421,11 @@ public:
std::string getAsString() const;
};
-/// \brief \c DenseMap information object for StringRefs.
-struct DenseMapStringRefInfo {
- static inline llvm::StringRef getEmptyKey() {
- return llvm::StringRef(reinterpret_cast<const char*>((intptr_t)-1), 0);
- }
- static inline llvm::StringRef getTombstoneKey() {
- return llvm::StringRef(reinterpret_cast<const char *>((intptr_t)-2), 0);
- }
- static unsigned getHashValue(llvm::StringRef Str) {
- return llvm::HashString(Str);
- }
- static bool isEqual(llvm::StringRef LHS, llvm::StringRef RHS) {
- if (LHS.size() == 0 && RHS.size() == 0) {
- intptr_t LHSVal = reinterpret_cast<intptr_t>(LHS.data());
- intptr_t RHSVal = reinterpret_cast<intptr_t>(RHS.data());
- if (LHSVal == -1 || LHSVal == -2 || RHSVal == -1 || RHSVal == -2)
- return LHSVal == RHSVal;
-
- return true;
- }
-
- return LHS == RHS;
- }
-};
-
/// \brief An allocator used specifically for the purpose of code completion.
class CodeCompletionAllocator : public llvm::BumpPtrAllocator {
- llvm::DenseSet<llvm::StringRef, DenseMapStringRefInfo> UniqueStrings;
- unsigned StringBytesAllocated;
- unsigned StringBytesUniqued;
- unsigned StringsAllocated;
- unsigned StringsUniqued;
-
public:
- CodeCompletionAllocator();
- ~CodeCompletionAllocator();
-
/// \brief Copy the given string into this allocator.
const char *CopyString(llvm::StringRef String);
-
- void PrintStats();
};
/// \brief A builder class used to construct new code-completion strings.