![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <basic-slot-set.h>
Classes | |
class | Bucket |
Public Types | |
enum | AccessMode : uint8_t { ATOMIC , NON_ATOMIC } |
enum | EmptyBucketMode { FREE_EMPTY_BUCKETS , KEEP_EMPTY_BUCKETS } |
using | Address = uintptr_t |
Public Member Functions | |
BasicSlotSet ()=delete | |
template<AccessMode access_mode> | |
void | Insert (size_t slot_offset) |
bool | Contains (size_t slot_offset) |
void | Remove (size_t slot_offset) |
void | RemoveRange (size_t start_offset, size_t end_offset, size_t buckets, EmptyBucketMode mode) |
bool | Lookup (size_t slot_offset) |
template<AccessMode access_mode = AccessMode::ATOMIC, typename Callback > | |
size_t | Iterate (Address chunk_start, size_t start_bucket, size_t end_bucket, Callback callback, EmptyBucketMode mode) |
size_t | num_buckets () const |
Static Public Member Functions | |
static BasicSlotSet * | Allocate (size_t buckets) |
static void | Delete (BasicSlotSet *slot_set) |
static constexpr size_t | BucketsForSize (size_t size) |
static constexpr size_t | BucketForSlot (size_t slot_offset) |
static constexpr size_t | OffsetForBucket (size_t bucket_index) |
Static Public Attributes | |
static constexpr int | kCellsPerBucket = 32 |
static constexpr int | kCellsPerBucketLog2 = 5 |
static constexpr int | kCellSizeBytesLog2 = 2 |
static constexpr int | kCellSizeBytes = 1 << kCellSizeBytesLog2 |
static constexpr int | kBitsPerCell = 32 |
static constexpr int | kBitsPerCellLog2 = 5 |
static constexpr int | kBitsPerBucket = kCellsPerBucket * kBitsPerCell |
static constexpr int | kBitsPerBucketLog2 |
Protected Member Functions | |
template<AccessMode access_mode = AccessMode::ATOMIC, typename Callback , typename EmptyBucketCallback > | |
size_t | Iterate (Address chunk_start, size_t start_bucket, size_t end_bucket, Callback callback, EmptyBucketCallback empty_bucket_callback) |
bool | FreeBucketIfEmpty (size_t bucket_index) |
void | ClearBucket (Bucket *bucket, int start_cell, int end_cell) |
template<AccessMode access_mode = AccessMode::ATOMIC> | |
void | ReleaseBucket (size_t bucket_index) |
template<AccessMode access_mode = AccessMode::ATOMIC> | |
Bucket * | LoadBucket (Bucket **bucket) |
template<AccessMode access_mode = AccessMode::ATOMIC> | |
Bucket * | LoadBucket (size_t bucket_index) |
template<AccessMode access_mode = AccessMode::ATOMIC> | |
void | StoreBucket (Bucket **bucket, Bucket *value) |
template<AccessMode access_mode = AccessMode::ATOMIC> | |
void | StoreBucket (size_t bucket_index, Bucket *value) |
template<AccessMode access_mode = AccessMode::ATOMIC> | |
bool | SwapInNewBucket (size_t bucket_index, Bucket *value) |
void | SlotToIndices (size_t slot_offset, size_t *bucket_index, int *cell_index, int *bit_index) |
Bucket ** | buckets () |
Bucket ** | bucket (size_t bucket_index) |
void | set_num_buckets (size_t num_buckets) |
Static Protected Attributes | |
static constexpr int | kNumBucketsSize = sizeof(size_t) |
Static Private Attributes | |
static constexpr auto | kSystemPointerSize = sizeof(void*) |
Friends | |
class | v8::internal::WriteBarrierCodeStubAssembler |
Definition at line 31 of file basic-slot-set.h.
using heap::base::BasicSlotSet< SlotGranularity >::Address = uintptr_t |
Definition at line 35 of file basic-slot-set.h.
enum heap::base::BasicSlotSet::AccessMode : uint8_t |
Enumerator | |
---|---|
ATOMIC | |
NON_ATOMIC |
Definition at line 37 of file basic-slot-set.h.
enum heap::base::BasicSlotSet::EmptyBucketMode |
Enumerator | |
---|---|
FREE_EMPTY_BUCKETS | |
KEEP_EMPTY_BUCKETS |
Definition at line 42 of file basic-slot-set.h.
|
delete |
|
inlinestatic |
|
inlineprotected |
Definition at line 465 of file basic-slot-set.h.
|
inlinestaticconstexpr |
|
inlineprotected |
|
inlinestaticconstexpr |
Definition at line 89 of file basic-slot-set.h.
|
inlineprotected |
Definition at line 395 of file basic-slot-set.h.
|
inline |
Definition at line 133 of file basic-slot-set.h.
|
inlinestatic |
|
inlineprotected |
|
inline |
Definition at line 109 of file basic-slot-set.h.
|
inlineprotected |
|
inline |
Definition at line 261 of file basic-slot-set.h.
|
inlineprotected |
Definition at line 413 of file basic-slot-set.h.
|
inlineprotected |
|
inline |
|
inline |
|
inlinestaticconstexpr |
Definition at line 101 of file basic-slot-set.h.
|
inlineprotected |
Definition at line 406 of file basic-slot-set.h.
|
inline |
Definition at line 143 of file basic-slot-set.h.
|
inline |
Definition at line 159 of file basic-slot-set.h.
|
inlineprotected |
Definition at line 467 of file basic-slot-set.h.
|
inlineprotected |
Definition at line 452 of file basic-slot-set.h.
|
inlineprotected |
Definition at line 425 of file basic-slot-set.h.
|
inlineprotected |
|
inlineprotected |
Definition at line 439 of file basic-slot-set.h.
|
friend |
Definition at line 474 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 278 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 279 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 276 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 277 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 275 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 274 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 272 of file basic-slot-set.h.
|
staticconstexpr |
Definition at line 273 of file basic-slot-set.h.
|
staticconstexprprotected |
Definition at line 471 of file basic-slot-set.h.
|
staticconstexprprivate |
Definition at line 32 of file basic-slot-set.h.