v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::SlotSet Class Referencefinal

#include <slot-set.h>

Inheritance diagram for v8::internal::SlotSet:
Collaboration diagram for v8::internal::SlotSet:

Public Member Functions

template<v8::internal::AccessMode access_mode = v8::internal::AccessMode::ATOMIC, typename Callback >
size_t Iterate (Address chunk_start, size_t start_bucket, size_t end_bucket, Callback callback, EmptyBucketMode mode)
 
template<typename Callback >
size_t IterateAndTrackEmptyBuckets (Address chunk_start, size_t start_bucket, size_t end_bucket, Callback callback, PossiblyEmptyBuckets *possibly_empty_buckets)
 
bool CheckPossiblyEmptyBuckets (size_t buckets, PossiblyEmptyBuckets *possibly_empty_buckets)
 
void Merge (SlotSet *other, size_t buckets)
 
- Public Member Functions inherited from heap::base::BasicSlotSet< kTaggedSize >
 BasicSlotSet ()=delete
 
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)
 
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 SlotSetAllocate (size_t buckets)
 
template<v8::internal::AccessMode access_mode>
static constexpr BasicSlotSet::AccessMode ConvertAccessMode ()
 
- Static Public Member Functions inherited from heap::base::BasicSlotSet< kTaggedSize >
static BasicSlotSetAllocate (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 const int kBucketsRegularPage
 
- Static Public Attributes inherited from heap::base::BasicSlotSet< kTaggedSize >
static constexpr int kCellsPerBucket
 
static constexpr int kCellsPerBucketLog2
 
static constexpr int kCellSizeBytesLog2
 
static constexpr int kCellSizeBytes
 
static constexpr int kBitsPerCell
 
static constexpr int kBitsPerCellLog2
 
static constexpr int kBitsPerBucket
 
static constexpr int kBitsPerBucketLog2
 

Private Types

using BasicSlotSet = ::heap::base::BasicSlotSet<kTaggedSize>
 

Additional Inherited Members

- Public Types inherited from heap::base::BasicSlotSet< kTaggedSize >
enum  AccessMode
 
enum  EmptyBucketMode
 
using Address
 
- Protected Member Functions inherited from heap::base::BasicSlotSet< kTaggedSize >
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)
 
void ReleaseBucket (size_t bucket_index)
 
Bucket * LoadBucket (Bucket **bucket)
 
Bucket * LoadBucket (size_t bucket_index)
 
void StoreBucket (Bucket **bucket, Bucket *value)
 
void StoreBucket (size_t bucket_index, Bucket *value)
 
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 inherited from heap::base::BasicSlotSet< kTaggedSize >
static constexpr int kNumBucketsSize
 

Detailed Description

Definition at line 126 of file slot-set.h.

Member Typedef Documentation

◆ BasicSlotSet

Member Function Documentation

◆ Allocate()

static SlotSet * v8::internal::SlotSet::Allocate ( size_t buckets)
inlinestatic

Definition at line 133 of file slot-set.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckPossiblyEmptyBuckets()

bool v8::internal::SlotSet::CheckPossiblyEmptyBuckets ( size_t buckets,
PossiblyEmptyBuckets * possibly_empty_buckets )
inline

Definition at line 182 of file slot-set.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertAccessMode()

template<v8::internal::AccessMode access_mode>
static constexpr BasicSlotSet::AccessMode v8::internal::SlotSet::ConvertAccessMode ( )
inlinestaticconstexpr

Definition at line 138 of file slot-set.h.

◆ Iterate()

template<v8::internal::AccessMode access_mode = v8::internal::AccessMode::ATOMIC, typename Callback >
size_t v8::internal::SlotSet::Iterate ( Address chunk_start,
size_t start_bucket,
size_t end_bucket,
Callback callback,
EmptyBucketMode mode )
inline

Definition at line 152 of file slot-set.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IterateAndTrackEmptyBuckets()

template<typename Callback >
size_t v8::internal::SlotSet::IterateAndTrackEmptyBuckets ( Address chunk_start,
size_t start_bucket,
size_t end_bucket,
Callback callback,
PossiblyEmptyBuckets * possibly_empty_buckets )
inline

Definition at line 169 of file slot-set.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Merge()

void v8::internal::SlotSet::Merge ( SlotSet * other,
size_t buckets )
inline

Definition at line 209 of file slot-set.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ kBucketsRegularPage

const int v8::internal::SlotSet::kBucketsRegularPage
static
Initial value:
=
constexpr int kPageSizeBits
constexpr int kTaggedSize
Definition globals.h:542

Definition at line 130 of file slot-set.h.


The documentation for this class was generated from the following file: