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

#include <load-store-simplification-reducer.h>

Inheritance diagram for v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >:
Collaboration diagram for v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >:

Public Member Functions

OpIndex REDUCE Load (OpIndex base, OptionalOpIndex index, LoadOp::Kind kind, MemoryRepresentation loaded_rep, RegisterRepresentation result_rep, int32_t offset, uint8_t element_size_log2)
 
OpIndex REDUCE Store (OpIndex base, OptionalOpIndex index, OpIndex value, StoreOp::Kind kind, MemoryRepresentation stored_rep, WriteBarrierKind write_barrier, int32_t offset, uint8_t element_size_log2, bool maybe_initializing_or_transitioning, IndirectPointerTag maybe_indirect_pointer_tag)
 
OpIndex REDUCE AtomicWord32Pair (V< WordPtr > base, OptionalV< WordPtr > index, OptionalV< Word32 > value_low, OptionalV< Word32 > value_high, OptionalV< Word32 > expected_low, OptionalV< Word32 > expected_high, AtomicWord32PairOp::Kind kind, int32_t offset)
 

Private Member Functions

bool CanEncodeOffset (int32_t offset, bool tagged_base) const
 
bool CanEncodeAtomic (OptionalOpIndex index, uint8_t element_size_log2, int32_t offset) const
 
void SimplifyLoadStore (OpIndex &base, OptionalOpIndex &index, LoadOp::Kind &kind, int32_t &offset, uint8_t &element_size_log2)
 

Private Attributes

OperationMatcher matcher_ {__ output_graph()}
 

Additional Inherited Members

- Static Private Attributes inherited from v8::internal::compiler::turboshaft::LoadStoreSimplificationConfiguration
static constexpr bool kNeedsUntaggedBase = false
 
static constexpr int32_t kMinOffset = std::numeric_limits<int32_t>::min() + 1
 
static constexpr int32_t kMaxOffset = std::numeric_limits<int32_t>::max()
 
static constexpr int kMaxElementSizeLog2 = 3
 

Detailed Description

template<class Next>
class v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >

Definition at line 60 of file load-store-simplification-reducer.h.

Member Function Documentation

◆ AtomicWord32Pair()

template<class Next >
OpIndex REDUCE v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >::AtomicWord32Pair ( V< WordPtr > base,
OptionalV< WordPtr > index,
OptionalV< Word32 > value_low,
OptionalV< Word32 > value_high,
OptionalV< Word32 > expected_low,
OptionalV< Word32 > expected_high,
AtomicWord32PairOp::Kind kind,
int32_t offset )
inline

Definition at line 101 of file load-store-simplification-reducer.h.

Here is the call graph for this function:

◆ CanEncodeAtomic()

template<class Next >
bool v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >::CanEncodeAtomic ( OptionalOpIndex index,
uint8_t element_size_log2,
int32_t offset ) const
inlineprivate

Definition at line 135 of file load-store-simplification-reducer.h.

Here is the caller graph for this function:

◆ CanEncodeOffset()

template<class Next >
bool v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >::CanEncodeOffset ( int32_t offset,
bool tagged_base ) const
inlineprivate

Definition at line 124 of file load-store-simplification-reducer.h.

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

◆ Load()

template<class Next >
OpIndex REDUCE v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >::Load ( OpIndex base,
OptionalOpIndex index,
LoadOp::Kind kind,
MemoryRepresentation loaded_rep,
RegisterRepresentation result_rep,
int32_t offset,
uint8_t element_size_log2 )
inline

Definition at line 65 of file load-store-simplification-reducer.h.

Here is the call graph for this function:

◆ SimplifyLoadStore()

template<class Next >
void v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >::SimplifyLoadStore ( OpIndex & base,
OptionalOpIndex & index,
LoadOp::Kind & kind,
int32_t & offset,
uint8_t & element_size_log2 )
inlineprivate

Definition at line 141 of file load-store-simplification-reducer.h.

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

◆ Store()

template<class Next >
OpIndex REDUCE v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >::Store ( OpIndex base,
OptionalOpIndex index,
OpIndex value,
StoreOp::Kind kind,
MemoryRepresentation stored_rep,
WriteBarrierKind write_barrier,
int32_t offset,
uint8_t element_size_log2,
bool maybe_initializing_or_transitioning,
IndirectPointerTag maybe_indirect_pointer_tag )
inline

Definition at line 74 of file load-store-simplification-reducer.h.

Here is the call graph for this function:

Member Data Documentation

◆ matcher_

template<class Next >
OperationMatcher v8::internal::compiler::turboshaft::LoadStoreSimplificationReducer< Next >::matcher_ {__ output_graph()}
private

Definition at line 187 of file load-store-simplification-reducer.h.


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