LLVM API Documentation

Functions
FoldingSet.cpp File Reference
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
#include <cstring>
Include dependency graph for FoldingSet.cpp:

Go to the source code of this file.

Functions

static FoldingSetImpl::NodeGetNextPtr (void *NextInBucketPtr)
 Helper functions for FoldingSetImpl.
static void ** GetBucketPtr (void *NextInBucketPtr)
 testing.
static void ** GetBucketFor (unsigned Hash, void **Buckets, unsigned NumBuckets)
static void ** AllocateBuckets (unsigned NumBuckets)
 AllocateBuckets - Allocated initialized bucket memory.

Function Documentation

static void** AllocateBuckets ( unsigned  NumBuckets) [static]

AllocateBuckets - Allocated initialized bucket memory.

Definition at line 215 of file FoldingSet.cpp.

References llvm::LibFunc::calloc.

Referenced by llvm::FoldingSetImpl::FoldingSetImpl().

static void** GetBucketFor ( unsigned  Hash,
void **  Buckets,
unsigned  NumBuckets 
) [static]

GetBucketFor - Hash the specified node ID and return the hash bucket for the specified ID.

Definition at line 208 of file FoldingSet.cpp.

Referenced by llvm::FoldingSetImpl::FindNodeOrInsertPos(), and llvm::FoldingSetImpl::InsertNode().

static void** GetBucketPtr ( void *  NextInBucketPtr) [static]

testing.

Definition at line 200 of file FoldingSet.cpp.

Referenced by llvm::FoldingSetIteratorImpl::advance(), and llvm::FoldingSetImpl::RemoveNode().

static FoldingSetImpl::Node* GetNextPtr ( void *  NextInBucketPtr) [static]

Helper functions for FoldingSetImpl.

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 190 of file FoldingSet.cpp.

Referenced by llvm::FoldingSetIteratorImpl::advance(), llvm::FoldingSetImpl::FindNodeOrInsertPos(), llvm::FoldingSetBucketIteratorImpl::FoldingSetBucketIteratorImpl(), llvm::FoldingSetIteratorImpl::FoldingSetIteratorImpl(), and llvm::FoldingSetImpl::RemoveNode().