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

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

Inheritance diagram for v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable:
Collaboration diagram for v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable:

Public Types

enum class  EntriesWithOffsets { kInvalidate , kKeep }
 
using MemoryAddress = WasmMemoryAddress
 
- Public Types inherited from v8::internal::compiler::turboshaft::ChangeTrackingSnapshotTable< WasmMemoryContentTable, OpIndex, KeyData >
using Super
 
using Key
 
- Public Types inherited from v8::internal::compiler::turboshaft::SnapshotTable< OpIndex, KeyData >
using TableEntry
 
using Key
 

Public Member Functions

 WasmMemoryContentTable (PipelineData *data, Zone *zone, SparseOpIndexSnapshotTable< bool > &non_aliasing_objects, FixedOpIndexSidetable< OpIndex > &replacements, Graph &graph)
 
void OnNewKey (Key key, OpIndex value)
 
void OnValueChange (Key key, OpIndex old_value, OpIndex new_value)
 
bool TypesUnrelated (wasm::ModuleTypeIndex type1, wasm::ModuleTypeIndex type2)
 
void Invalidate (const StructSetOp &set)
 
template<EntriesWithOffsets offsets = EntriesWithOffsets::kInvalidate>
void InvalidateMaybeAliasing ()
 
int field_offset (const wasm::StructType *type, int field_index)
 
OpIndex Find (const StructGetOp &get)
 
bool HasValueWithIncorrectMutability (const StructSetOp &set)
 
OpIndex FindLoadLike (OpIndex op_idx, int offset_sentinel)
 
OpIndex FindImpl (OpIndex object, int offset, wasm::ModuleTypeIndex type_index, uint8_t size, bool mutability, OptionalOpIndex index=OptionalOpIndex::Nullopt())
 
void Insert (const StructSetOp &set)
 
void Insert (const StructGetOp &get, OpIndex get_idx)
 
void InsertLoadLike (OpIndex base_idx, int offset_sentinel, OpIndex value_idx)
 
OpIndex ResolveBase (OpIndex base)
 
void AddKeyInBaseOffsetMaps (Key key)
 
void RemoveKeyFromBaseOffsetMaps (Key key)
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::ChangeTrackingSnapshotTable< WasmMemoryContentTable, 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 ()
 

Public Attributes

SparseOpIndexSnapshotTable< bool > & non_aliasing_objects_
 
FixedOpIndexSidetable< OpIndex > & replacements_
 
PipelineDatadata_
 
Graphgraph_
 
const wasm::WasmModulemodule_ = data_->wasm_module()
 
ZoneUnorderedMap< WasmMemoryAddress, Keyall_keys_
 
ZoneUnorderedMap< OpIndex, BaseDatabase_keys_
 
ZoneUnorderedMap< int, v8::base::DoublyThreadedList< Key, OffsetListTraits > > offset_keys_
 

Private Member Functions

void Insert (OpIndex base, int32_t offset, wasm::ModuleTypeIndex type_index, uint8_t size, bool mutability, OpIndex value)
 

Detailed Description

Definition at line 101 of file wasm-load-elimination-reducer.h.

Member Typedef Documentation

◆ MemoryAddress

Member Enumeration Documentation

◆ EntriesWithOffsets

Enumerator
kInvalidate 
kKeep 

Definition at line 174 of file wasm-load-elimination-reducer.h.

Constructor & Destructor Documentation

◆ WasmMemoryContentTable()

v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::WasmMemoryContentTable ( PipelineData * data,
Zone * zone,
SparseOpIndexSnapshotTable< bool > & non_aliasing_objects,
FixedOpIndexSidetable< OpIndex > & replacements,
Graph & graph )
inlineexplicit

Definition at line 107 of file wasm-load-elimination-reducer.h.

Member Function Documentation

◆ AddKeyInBaseOffsetMaps()

void v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::AddKeyInBaseOffsetMaps ( Key key)
inline

Definition at line 323 of file wasm-load-elimination-reducer.h.

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

◆ field_offset()

int v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::field_offset ( const wasm::StructType * type,
int field_index )
inline

Definition at line 203 of file wasm-load-elimination-reducer.h.

Here is the caller graph for this function:

◆ Find()

OpIndex v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::Find ( const StructGetOp & get)
inline

Definition at line 207 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ FindImpl()

OpIndex v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::FindImpl ( OpIndex object,
int offset,
wasm::ModuleTypeIndex type_index,
uint8_t size,
bool mutability,
OptionalOpIndex index = OptionalOpIndex::Nullopt() )
inline

Definition at line 230 of file wasm-load-elimination-reducer.h.

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

◆ FindLoadLike()

OpIndex v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::FindLoadLike ( OpIndex op_idx,
int offset_sentinel )
inline

Definition at line 224 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ HasValueWithIncorrectMutability()

bool v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::HasValueWithIncorrectMutability ( const StructSetOp & set)
inline

Definition at line 215 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ Insert() [1/3]

void v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::Insert ( const StructGetOp & get,
OpIndex get_idx )
inline

Definition at line 247 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ Insert() [2/3]

void v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::Insert ( const StructSetOp & set)
inline

Definition at line 239 of file wasm-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::wle::WasmMemoryContentTable::Insert ( OpIndex base,
int32_t offset,
wasm::ModuleTypeIndex type_index,
uint8_t size,
bool mutability,
OpIndex value )
inlineprivate

Definition at line 276 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ InsertLoadLike()

void v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::InsertLoadLike ( OpIndex base_idx,
int offset_sentinel,
OpIndex value_idx )
inline

Definition at line 255 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ Invalidate()

void v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::Invalidate ( const StructSetOp & set)
inline

Definition at line 143 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ InvalidateMaybeAliasing()

template<EntriesWithOffsets offsets = EntriesWithOffsets::kInvalidate>
void v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::InvalidateMaybeAliasing ( )
inline

Definition at line 176 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ OnNewKey()

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

Definition at line 120 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ OnValueChange()

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

Definition at line 126 of file wasm-load-elimination-reducer.h.

Here is the call graph for this function:

◆ RemoveKeyFromBaseOffsetMaps()

void v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::RemoveKeyFromBaseOffsetMaps ( Key key)
inline

Definition at line 347 of file wasm-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::wle::WasmMemoryContentTable::ResolveBase ( OpIndex base)
inline

Definition at line 303 of file wasm-load-elimination-reducer.h.

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

◆ TypesUnrelated()

bool v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::TypesUnrelated ( wasm::ModuleTypeIndex type1,
wasm::ModuleTypeIndex type2 )
inline

Definition at line 137 of file wasm-load-elimination-reducer.h.

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

Member Data Documentation

◆ all_keys_

ZoneUnorderedMap<WasmMemoryAddress, Key> v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::all_keys_

Definition at line 366 of file wasm-load-elimination-reducer.h.

◆ base_keys_

ZoneUnorderedMap<OpIndex, BaseData> v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::base_keys_

Definition at line 368 of file wasm-load-elimination-reducer.h.

◆ data_

PipelineData* v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::data_

Definition at line 356 of file wasm-load-elimination-reducer.h.

◆ graph_

Graph& v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::graph_

Definition at line 357 of file wasm-load-elimination-reducer.h.

◆ module_

const wasm::WasmModule* v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::module_ = data_->wasm_module()

Definition at line 359 of file wasm-load-elimination-reducer.h.

◆ non_aliasing_objects_

SparseOpIndexSnapshotTable<bool>& v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::non_aliasing_objects_

Definition at line 353 of file wasm-load-elimination-reducer.h.

◆ offset_keys_

ZoneUnorderedMap<int, v8::base::DoublyThreadedList<Key, OffsetListTraits> > v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::offset_keys_

Definition at line 371 of file wasm-load-elimination-reducer.h.

◆ replacements_

FixedOpIndexSidetable<OpIndex>& v8::internal::compiler::turboshaft::wle::WasmMemoryContentTable::replacements_

Definition at line 354 of file wasm-load-elimination-reducer.h.


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