![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <snapshot-table.h>
Classes | |
struct | LogEntry |
class | MaybeSnapshot |
class | Snapshot |
struct | SnapshotData |
Public Types | |
using | TableEntry = SnapshotTableEntry<Value, KeyData> |
using | Key = SnapshotTableKey<Value, KeyData> |
Public Member Functions | |
template<class ChangeCallback = NoChangeCallback> requires (std::is_invocable_v<ChangeCallback, Key, Value, Value>) | |
void | StartNewSnapshot (base::Vector< const Snapshot > predecessors, const ChangeCallback &change_callback={}) |
template<class ChangeCallback = NoChangeCallback> requires (std::is_invocable_v<ChangeCallback, Key, Value, Value>) | |
void | StartNewSnapshot (std::initializer_list< Snapshot > predecessors={}, const ChangeCallback &change_callback={}) |
template<class ChangeCallback = NoChangeCallback> requires (std::is_invocable_v<ChangeCallback, Key, Value, Value>) | |
void | StartNewSnapshot (Snapshot parent, const ChangeCallback &change_callback={}) |
template<class MergeFun , class ChangeCallback = NoChangeCallback> requires (std::is_invocable_v<MergeFun, Key, base::Vector<const Value>> && std::is_invocable_v<ChangeCallback, Key, Value, Value>) | |
void | StartNewSnapshot (base::Vector< const Snapshot > predecessors, const MergeFun &merge_fun, const ChangeCallback &change_callback={}) |
template<class MergeFun , class ChangeCallback = NoChangeCallback> requires (std::is_invocable_v<MergeFun, Key, base::Vector<const Value>> && std::is_invocable_v<ChangeCallback, Key, Value, Value>) | |
void | StartNewSnapshot (std::initializer_list< Snapshot > predecessors, const MergeFun &merge_fun, const ChangeCallback &change_callback={}) |
Snapshot | Seal () |
const Value & | Get (Key key) const |
const Value & | GetPredecessorValue (Key key, int predecessor_index) |
bool | Set (Key key, Value new_value) |
SnapshotTable (Zone *zone) | |
Key | NewKey (KeyData data, Value initial_value=Value{}) |
Key | NewKey (Value initial_value=Value{}) |
bool | IsSealed () |
Private Member Functions | |
SnapshotData & | NewSnapshot (SnapshotData *parent) |
base::Vector< LogEntry > | LogEntries (SnapshotData *s) |
template<class ChangeCallback = NoChangeCallback> | |
void | RevertCurrentSnapshot (ChangeCallback &change_callback) |
template<class ChangeCallback = NoChangeCallback> | |
void | ReplaySnapshot (SnapshotData *snapshot, ChangeCallback &change_callback) |
void | RecordMergeValue (TableEntry &entry, const Value &value, uint32_t predecessor_index, uint32_t predecessor_count) |
template<class ChangeCallback > | |
SnapshotData & | MoveToNewSnapshot (base::Vector< const Snapshot > predecessors, const ChangeCallback &change_callback) |
template<class MergeFun , class ChangeCallback > | |
void | MergePredecessors (base::Vector< const Snapshot > predecessors, const MergeFun &merge_fun, const ChangeCallback &change_callback) |
Private Attributes | |
Zone * | zone_ |
ZoneDeque< TableEntry > | table_ {zone_} |
ZoneDeque< SnapshotData > | snapshots_ {zone_} |
ZoneVector< LogEntry > | log_ {zone_} |
SnapshotData * | root_snapshot_ |
SnapshotData * | current_snapshot_ |
ZoneVector< TableEntry * > | merging_entries_ {zone_} |
ZoneVector< Value > | merge_values_ {zone_} |
ZoneVector< SnapshotData * > | path_ {zone_} |
Static Private Attributes | |
static constexpr uint32_t | kNoMergeOffset |
static constexpr uint32_t | kNoMergedPredecessor |
Definition at line 92 of file snapshot-table.h.
using v8::internal::compiler::turboshaft::SnapshotTable< Value, KeyData >::Key = SnapshotTableKey<Value, KeyData> |
Definition at line 99 of file snapshot-table.h.
using v8::internal::compiler::turboshaft::SnapshotTable< Value, KeyData >::TableEntry = SnapshotTableEntry<Value, KeyData> |
Definition at line 98 of file snapshot-table.h.
|
inlineexplicit |
|
inline |
|
inline |
Definition at line 231 of file snapshot-table.h.
|
inline |
Definition at line 266 of file snapshot-table.h.
|
inlineprivate |
Definition at line 295 of file snapshot-table.h.
|
private |
|
private |
|
inline |
Definition at line 261 of file snapshot-table.h.
|
inlineprivate |
|
private |
Definition at line 380 of file snapshot-table.h.
|
inlineprivate |
|
inlineprivate |
|
inline |
Definition at line 199 of file snapshot-table.h.
|
inline |
Definition at line 239 of file snapshot-table.h.
|
inline |
|
inline |
Definition at line 177 of file snapshot-table.h.
|
inline |
Definition at line 170 of file snapshot-table.h.
|
inline |
Definition at line 190 of file snapshot-table.h.
|
inline |
Definition at line 163 of file snapshot-table.h.
|
private |
Definition at line 277 of file snapshot-table.h.
|
staticconstexprprivate |
Definition at line 337 of file snapshot-table.h.
|
staticconstexprprivate |
Definition at line 335 of file snapshot-table.h.
|
private |
Definition at line 275 of file snapshot-table.h.
|
private |
Definition at line 284 of file snapshot-table.h.
|
private |
Definition at line 283 of file snapshot-table.h.
|
private |
Definition at line 285 of file snapshot-table.h.
|
private |
Definition at line 276 of file snapshot-table.h.
|
private |
Definition at line 271 of file snapshot-table.h.
|
private |
Definition at line 270 of file snapshot-table.h.
|
private |
Definition at line 269 of file snapshot-table.h.