LLVM 20.0.0git
|
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SwapByteOrder.h"
#include <cassert>
#include <cstring>
Go to the source code of this file.
Functions | |
static FoldingSetBase::Node * | GetNextPtr (void *NextInBucketPtr) |
Helper functions for FoldingSetBase. | |
static void ** | GetBucketPtr (void *NextInBucketPtr) |
testing. | |
static void ** | GetBucketFor (unsigned Hash, void **Buckets, unsigned NumBuckets) |
GetBucketFor - Hash the specified node ID and return the hash bucket for the specified ID. | |
static void ** | AllocateBuckets (unsigned NumBuckets) |
AllocateBuckets - Allocated initialized bucket memory. | |
|
static |
AllocateBuckets - Allocated initialized bucket memory.
Definition at line 172 of file FoldingSet.cpp.
References llvm::safe_calloc().
Referenced by llvm::FoldingSetBase::FoldingSetBase().
GetBucketFor - Hash the specified node ID and return the hash bucket for the specified ID.
Definition at line 165 of file FoldingSet.cpp.
Referenced by llvm::FoldingSetBase::FindNodeOrInsertPos(), and llvm::FoldingSetBase::InsertNode().
|
static |
testing.
Definition at line 157 of file FoldingSet.cpp.
Referenced by llvm::FoldingSetIteratorImpl::advance(), and llvm::FoldingSetBase::RemoveNode().
|
static |
Helper functions for FoldingSetBase.
GetNextPtr - In order to save space, each bucket is a singly-linked-list. In order to make deletion more efficient, we make the list circular, so we can delete a node without computing its hash. The problem with this is that the start of the hash buckets are not Nodes. If NextInBucketPtr is a bucket pointer, this method returns null: use GetBucketPtr when this happens.
Definition at line 147 of file FoldingSet.cpp.
Referenced by llvm::FoldingSetIteratorImpl::advance(), llvm::FoldingSetBase::FindNodeOrInsertPos(), llvm::FoldingSetBucketIteratorImpl::FoldingSetBucketIteratorImpl(), llvm::FoldingSetIteratorImpl::FoldingSetIteratorImpl(), and llvm::FoldingSetBase::RemoveNode().