From 4962bd737feb27bb74d9ac6639a25719ec0f1f79 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Wed, 27 Jan 2016 04:20:24 +0000 Subject: SmallPtrSet: Inline the part of insert_imp in the small case Most of the time we only hit the small case, so it is beneficial to pull it out of the insert_imp() implementation. This improves compile time at least for non-LTO builds. Differential Revision: http://reviews.llvm.org/D16619 llvm-svn: 258908 --- llvm/lib/Support/SmallPtrSet.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'llvm/lib/Support/SmallPtrSet.cpp') diff --git a/llvm/lib/Support/SmallPtrSet.cpp b/llvm/lib/Support/SmallPtrSet.cpp index 358c8e8abbe..e674fc5948c 100644 --- a/llvm/lib/Support/SmallPtrSet.cpp +++ b/llvm/lib/Support/SmallPtrSet.cpp @@ -35,22 +35,7 @@ void SmallPtrSetImplBase::shrink_and_clear() { } std::pair -SmallPtrSetImplBase::insert_imp(const void *Ptr) { - if (isSmall()) { - // Check to see if it is already in the set. - for (const void **APtr = SmallArray, **E = SmallArray+NumElements; - APtr != E; ++APtr) - if (*APtr == Ptr) - return std::make_pair(APtr, false); - - // Nope, there isn't. If we stay small, just 'pushback' now. - if (NumElements < CurArraySize) { - SmallArray[NumElements++] = Ptr; - return std::make_pair(SmallArray + (NumElements - 1), true); - } - // Otherwise, hit the big set case, which will call grow. - } - +SmallPtrSetImplBase::insert_imp_big(const void *Ptr) { if (LLVM_UNLIKELY(NumElements * 4 >= CurArraySize * 3)) { // If more than 3/4 of the array is full, grow. Grow(CurArraySize < 64 ? 128 : CurArraySize*2); -- cgit v1.2.3