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

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

Collaboration diagram for v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer:

Classes

struct  Snapshot
 

Public Types

using AliasTable = SparseOpIndexSnapshotTable<bool>
 
using AliasKey = AliasTable::Key
 
using AliasSnapshot = AliasTable::Snapshot
 
using MemoryKey = wle::WasmMemoryContentTable::Key
 
using MemorySnapshot = wle::WasmMemoryContentTable::Snapshot
 

Public Member Functions

 WasmLoadEliminationAnalyzer (PipelineData *data, Graph &graph, Zone *phase_zone)
 
void Run ()
 
OpIndex Replacement (OpIndex index)
 

Private Member Functions

void ProcessBlock (const Block &block, bool compute_start_snapshot)
 
void ProcessStructGet (OpIndex op_idx, const StructGetOp &op)
 
void ProcessStructSet (OpIndex op_idx, const StructSetOp &op)
 
void ProcessArrayLength (OpIndex op_idx, const ArrayLengthOp &op)
 
void ProcessWasmAllocateArray (OpIndex op_idx, const WasmAllocateArrayOp &op)
 
void ProcessStringAsWtf16 (OpIndex op_idx, const StringAsWtf16Op &op)
 
void ProcessStringPrepareForGetCodeUnit (OpIndex op_idx, const StringPrepareForGetCodeUnitOp &op)
 
void ProcessAnyConvertExtern (OpIndex op_idx, const AnyConvertExternOp &op)
 
void ProcessAssertNotNull (OpIndex op_idx, const AssertNotNullOp &op)
 
void ProcessAllocate (OpIndex op_idx, const AllocateOp &op)
 
void ProcessCall (OpIndex op_idx, const CallOp &op)
 
void ProcessPhi (OpIndex op_idx, const PhiOp &op)
 
void DcheckWordBinop (OpIndex op_idx, const WordBinopOp &binop)
 
template<bool for_loop_revisit = false>
bool BeginBlock (const Block *block)
 
void FinishBlock (const Block *block)
 
void SealAndDiscard ()
 
void StoreLoopSnapshotInForwardPredecessor (const Block &loop_header)
 
bool BackedgeHasSnapshot (const Block &loop_header) const
 
void InvalidateAllNonAliasingInputs (const Operation &op)
 
void InvalidateIfAlias (OpIndex op_idx)
 

Private Attributes

Graphgraph_
 
Zonephase_zone_
 
FixedOpIndexSidetable< OpIndexreplacements_
 
AliasTable non_aliasing_objects_
 
wle::WasmMemoryContentTable memory_
 
FixedBlockSidetable< std::optional< Snapshot > > block_to_snapshot_mapping_
 
ZoneVector< AliasSnapshotpredecessor_alias_snapshots_
 
ZoneVector< MemorySnapshotpredecessor_memory_snapshots_
 

Detailed Description

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

Member Typedef Documentation

◆ AliasKey

◆ AliasSnapshot

◆ AliasTable

◆ MemoryKey

◆ MemorySnapshot

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

Constructor & Destructor Documentation

◆ WasmLoadEliminationAnalyzer()

v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::WasmLoadEliminationAnalyzer ( PipelineData * data,
Graph & graph,
Zone * phase_zone )
inline

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

Member Function Documentation

◆ BackedgeHasSnapshot()

bool v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::BackedgeHasSnapshot ( const Block & loop_header) const
private

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

Here is the call graph for this function:

◆ BeginBlock()

template<bool for_loop_revisit>
bool v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::BeginBlock ( const Block * block)
private

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

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

◆ DcheckWordBinop()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::DcheckWordBinop ( OpIndex op_idx,
const WordBinopOp & binop )
private

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

Here is the call graph for this function:

◆ FinishBlock()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::FinishBlock ( const Block * block)
private

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

Here is the caller graph for this function:

◆ InvalidateAllNonAliasingInputs()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::InvalidateAllNonAliasingInputs ( const Operation & op)
private

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

Here is the call graph for this function:

◆ InvalidateIfAlias()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::InvalidateIfAlias ( OpIndex op_idx)
private

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

◆ ProcessAllocate()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessAllocate ( OpIndex op_idx,
const AllocateOp & op )
private

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

◆ ProcessAnyConvertExtern()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessAnyConvertExtern ( OpIndex op_idx,
const AnyConvertExternOp & op )
private

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

Here is the call graph for this function:

◆ ProcessArrayLength()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessArrayLength ( OpIndex op_idx,
const ArrayLengthOp & op )
private

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

Here is the call graph for this function:

◆ ProcessAssertNotNull()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessAssertNotNull ( OpIndex op_idx,
const AssertNotNullOp & op )
private

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

Here is the call graph for this function:

◆ ProcessBlock()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessBlock ( const Block & block,
bool compute_start_snapshot )
private

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

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

◆ ProcessCall()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessCall ( OpIndex op_idx,
const CallOp & op )
private

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

Here is the call graph for this function:

◆ ProcessPhi()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessPhi ( OpIndex op_idx,
const PhiOp & op )
private

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

Here is the call graph for this function:

◆ ProcessStringAsWtf16()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessStringAsWtf16 ( OpIndex op_idx,
const StringAsWtf16Op & op )
private

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

Here is the call graph for this function:

◆ ProcessStringPrepareForGetCodeUnit()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessStringPrepareForGetCodeUnit ( OpIndex op_idx,
const StringPrepareForGetCodeUnitOp & op )
private

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

Here is the call graph for this function:

◆ ProcessStructGet()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessStructGet ( OpIndex op_idx,
const StructGetOp & op )
private

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

Here is the call graph for this function:

◆ ProcessStructSet()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessStructSet ( OpIndex op_idx,
const StructSetOp & op )
private

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

◆ ProcessWasmAllocateArray()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::ProcessWasmAllocateArray ( OpIndex op_idx,
const WasmAllocateArrayOp & op )
private

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

◆ Replacement()

OpIndex v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::Replacement ( OpIndex index)
inline

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

◆ Run()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::Run ( )
inline

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

Here is the call graph for this function:

◆ SealAndDiscard()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::SealAndDiscard ( )
private

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

Here is the caller graph for this function:

◆ StoreLoopSnapshotInForwardPredecessor()

void v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::StoreLoopSnapshotInForwardPredecessor ( const Block & loop_header)
private

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

Here is the call graph for this function:

Member Data Documentation

◆ block_to_snapshot_mapping_

FixedBlockSidetable<std::optional<Snapshot> > v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::block_to_snapshot_mapping_
private

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

◆ graph_

Graph& v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::graph_
private

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

◆ memory_

wle::WasmMemoryContentTable v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::memory_
private

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

◆ non_aliasing_objects_

AliasTable v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::non_aliasing_objects_
private

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

◆ phase_zone_

Zone* v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::phase_zone_
private

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

◆ predecessor_alias_snapshots_

ZoneVector<AliasSnapshot> v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::predecessor_alias_snapshots_
private

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

◆ predecessor_memory_snapshots_

ZoneVector<MemorySnapshot> v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::predecessor_memory_snapshots_
private

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

◆ replacements_

FixedOpIndexSidetable<OpIndex> v8::internal::compiler::turboshaft::WasmLoadEliminationAnalyzer::replacements_
private

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


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