![]() |
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.