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

#include <late-load-elimination-reducer.h>

Inheritance diagram for v8::internal::compiler::turboshaft::MemoryContentTable:
Collaboration diagram for v8::internal::compiler::turboshaft::MemoryContentTable:

Public Types

using Replacement = LoadEliminationReplacement
 
- Public Types inherited from v8::internal::compiler::turboshaft::ChangeTrackingSnapshotTable< MemoryContentTable, OpIndex, KeyData >
using Super
 
using Key
 
- Public Types inherited from v8::internal::compiler::turboshaft::SnapshotTable< OpIndex, KeyData >
using TableEntry
 
using Key
 

Public Member Functions

 MemoryContentTable (Zone *zone, SparseOpIndexSnapshotTable< bool > &non_aliasing_objects, SparseOpIndexSnapshotTable< MapMaskAndOr > &object_maps, FixedOpIndexSidetable< Replacement > &replacements)
 
void OnNewKey (Key key, OpIndex value)
 
void OnValueChange (Key key, OpIndex old_value, OpIndex new_value)
 
void Invalidate (const StoreOp &store)
 
void Invalidate (OpIndex base, OptionalOpIndex index, int32_t offset)
 
void InvalidateMaybeAliasing ()
 
OpIndex Find (const LoadOp &load)
 
void Insert (const StoreOp &store)
 
void Insert (const LoadOp &load, OpIndex load_idx)
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::ChangeTrackingSnapshotTable< MemoryContentTable, OpIndex, KeyData >
void StartNewSnapshot (base::Vector< const Snapshot > predecessors)
 
void StartNewSnapshot (std::initializer_list< Snapshot > predecessors={})
 
void StartNewSnapshot (Snapshot parent)
 
void StartNewSnapshot (base::Vector< const Snapshot > predecessors, const MergeFun &merge_fun)
 
void StartNewSnapshot (std::initializer_list< Snapshot > predecessors, const MergeFun &merge_fun)
 
void Set (Key key, OpIndex new_value)
 
void SetNoNotify (Key key, OpIndex new_value)
 
Key NewKey (KeyData data, OpIndex initial_value=OpIndex{})
 
Key NewKey (OpIndex initial_value=OpIndex{})
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::SnapshotTable< OpIndex, KeyData >
void StartNewSnapshot (base::Vector< const Snapshot > predecessors, const ChangeCallback &change_callback={})
 
void StartNewSnapshot (std::initializer_list< Snapshot > predecessors={}, const ChangeCallback &change_callback={})
 
void StartNewSnapshot (Snapshot parent, const ChangeCallback &change_callback={})
 
void StartNewSnapshot (base::Vector< const Snapshot > predecessors, const MergeFun &merge_fun, const ChangeCallback &change_callback={})
 
void StartNewSnapshot (std::initializer_list< Snapshot > predecessors, const MergeFun &merge_fun, const ChangeCallback &change_callback={})
 
Snapshot Seal ()
 
const OpIndexGet (Key key) const
 
const OpIndexGetPredecessorValue (Key key, int predecessor_index)
 
bool Set (Key key, OpIndex new_value)
 
 SnapshotTable (Zone *zone)
 
Key NewKey (KeyData data, OpIndex initial_value=OpIndex{})
 
Key NewKey (OpIndex initial_value=OpIndex{})
 
bool IsSealed ()
 

Private Member Functions

void Insert (OpIndex base, OptionalOpIndex index, int32_t offset, uint8_t element_size_log2, uint8_t size, OpIndex value)
 
void InsertImmutable (OpIndex base, OptionalOpIndex index, int32_t offset, uint8_t element_size_log2, uint8_t size, OpIndex value)
 
void InvalidateAtOffset (int32_t offset, OpIndex base)
 
OpIndex ResolveBase (OpIndex base)
 
void AddKeyInBaseOffsetMaps (Key key)
 
void RemoveKeyFromBaseOffsetMaps (Key key)
 

Private Attributes

SparseOpIndexSnapshotTable< bool > & non_aliasing_objects_
 
SparseOpIndexSnapshotTable< MapMaskAndOr > & object_maps_
 
FixedOpIndexSidetable< Replacement > & replacements_
 
ZoneAbslFlatHashMap< MemoryAddress, Keyall_keys_
 
ZoneAbslFlatHashMap< OpIndex, BaseDatabase_keys_
 
ZoneAbslFlatHashMap< int, v8::base::DoublyThreadedList< Key, OffsetListTraits > > offset_keys_
 
v8::base::DoublyThreadedList< Key, OffsetListTraitsindex_keys_
 

Static Private Attributes

static constexpr size_t kMaxKeys = 10000
 

Detailed Description

Definition at line 310 of file late-load-elimination-reducer.h.

Member Typedef Documentation

◆ Replacement

Constructor & Destructor Documentation

◆ MemoryContentTable()

v8::internal::compiler::turboshaft::MemoryContentTable::MemoryContentTable ( Zone * zone,
SparseOpIndexSnapshotTable< bool > & non_aliasing_objects,
SparseOpIndexSnapshotTable< MapMaskAndOr > & object_maps,
FixedOpIndexSidetable< Replacement > & replacements )
inlineexplicit

Definition at line 314 of file late-load-elimination-reducer.h.

Member Function Documentation

◆ AddKeyInBaseOffsetMaps()

void v8::internal::compiler::turboshaft::MemoryContentTable::AddKeyInBaseOffsetMaps ( Key key)
inlineprivate

Definition at line 601 of file late-load-elimination-reducer.h.

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

◆ Find()

OpIndex v8::internal::compiler::turboshaft::MemoryContentTable::Find ( const LoadOp & load)
inline

Definition at line 442 of file late-load-elimination-reducer.h.

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

◆ Insert() [1/3]

void v8::internal::compiler::turboshaft::MemoryContentTable::Insert ( const LoadOp & load,
OpIndex load_idx )
inline

Definition at line 470 of file late-load-elimination-reducer.h.

Here is the call graph for this function:

◆ Insert() [2/3]

void v8::internal::compiler::turboshaft::MemoryContentTable::Insert ( const StoreOp & store)
inline

Definition at line 455 of file late-load-elimination-reducer.h.

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

◆ Insert() [3/3]

void v8::internal::compiler::turboshaft::MemoryContentTable::Insert ( OpIndex base,
OptionalOpIndex index,
int32_t offset,
uint8_t element_size_log2,
uint8_t size,
OpIndex value )
inlineprivate

Definition at line 513 of file late-load-elimination-reducer.h.

Here is the call graph for this function:

◆ InsertImmutable()

void v8::internal::compiler::turboshaft::MemoryContentTable::InsertImmutable ( OpIndex base,
OptionalOpIndex index,
int32_t offset,
uint8_t element_size_log2,
uint8_t size,
OpIndex value )
inlineprivate

Definition at line 538 of file late-load-elimination-reducer.h.

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

◆ Invalidate() [1/2]

void v8::internal::compiler::turboshaft::MemoryContentTable::Invalidate ( const StoreOp & store)
inline

Definition at line 344 of file late-load-elimination-reducer.h.

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

◆ Invalidate() [2/2]

void v8::internal::compiler::turboshaft::MemoryContentTable::Invalidate ( OpIndex base,
OptionalOpIndex index,
int32_t offset )
inline

Definition at line 348 of file late-load-elimination-reducer.h.

Here is the call graph for this function:

◆ InvalidateAtOffset()

void v8::internal::compiler::turboshaft::MemoryContentTable::InvalidateAtOffset ( int32_t offset,
OpIndex base )
inlineprivate

Definition at line 564 of file late-load-elimination-reducer.h.

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

◆ InvalidateMaybeAliasing()

void v8::internal::compiler::turboshaft::MemoryContentTable::InvalidateMaybeAliasing ( )
inline

Definition at line 413 of file late-load-elimination-reducer.h.

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

◆ OnNewKey()

void v8::internal::compiler::turboshaft::MemoryContentTable::OnNewKey ( Key key,
OpIndex value )
inline

Definition at line 326 of file late-load-elimination-reducer.h.

Here is the call graph for this function:

◆ OnValueChange()

void v8::internal::compiler::turboshaft::MemoryContentTable::OnValueChange ( Key key,
OpIndex old_value,
OpIndex new_value )
inline

Definition at line 332 of file late-load-elimination-reducer.h.

Here is the call graph for this function:

◆ RemoveKeyFromBaseOffsetMaps()

void v8::internal::compiler::turboshaft::MemoryContentTable::RemoveKeyFromBaseOffsetMaps ( Key key)
inlineprivate

Definition at line 638 of file late-load-elimination-reducer.h.

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

◆ ResolveBase()

OpIndex v8::internal::compiler::turboshaft::MemoryContentTable::ResolveBase ( OpIndex base)
inlineprivate

Definition at line 594 of file late-load-elimination-reducer.h.

Here is the caller graph for this function:

Member Data Documentation

◆ all_keys_

ZoneAbslFlatHashMap<MemoryAddress, Key> v8::internal::compiler::turboshaft::MemoryContentTable::all_keys_
private

Definition at line 650 of file late-load-elimination-reducer.h.

◆ base_keys_

ZoneAbslFlatHashMap<OpIndex, BaseData> v8::internal::compiler::turboshaft::MemoryContentTable::base_keys_
private

Definition at line 652 of file late-load-elimination-reducer.h.

◆ index_keys_

v8::base::DoublyThreadedList<Key, OffsetListTraits> v8::internal::compiler::turboshaft::MemoryContentTable::index_keys_
private

Definition at line 658 of file late-load-elimination-reducer.h.

◆ kMaxKeys

size_t v8::internal::compiler::turboshaft::MemoryContentTable::kMaxKeys = 10000
staticconstexprprivate

Definition at line 511 of file late-load-elimination-reducer.h.

◆ non_aliasing_objects_

SparseOpIndexSnapshotTable<bool>& v8::internal::compiler::turboshaft::MemoryContentTable::non_aliasing_objects_
private

Definition at line 644 of file late-load-elimination-reducer.h.

◆ object_maps_

SparseOpIndexSnapshotTable<MapMaskAndOr>& v8::internal::compiler::turboshaft::MemoryContentTable::object_maps_
private

Definition at line 645 of file late-load-elimination-reducer.h.

◆ offset_keys_

ZoneAbslFlatHashMap<int, v8::base::DoublyThreadedList<Key, OffsetListTraits> > v8::internal::compiler::turboshaft::MemoryContentTable::offset_keys_
private

Definition at line 655 of file late-load-elimination-reducer.h.

◆ replacements_

FixedOpIndexSidetable<Replacement>& v8::internal::compiler::turboshaft::MemoryContentTable::replacements_
private

Definition at line 646 of file late-load-elimination-reducer.h.


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