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

#include <value-numbering-reducer.h>

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

Classes

struct  Entry
 

Public Member Functions

void Bind (Block *block)
 
void ResetToBlock (Block *block)
 
template<class Op >
bool WillGVNOp (const Op &op)
 
ScopeCountergvn_disabled_scope ()
 

Static Public Member Functions

template<typename Op >
static constexpr bool CanBeGVNed ()
 

Private Member Functions

template<class Op >
OpIndex AddOrFind (OpIndex op_idx)
 
template<class Op >
EntryFind (const Op &op, size_t *hash_ret=nullptr)
 
void ClearCurrentDepthEntries ()
 
void RehashIfNeeded ()
 
template<bool same_block_only, class Op >
size_t ComputeHash (const Op &op)
 
size_t NextEntryIndex (size_t index)
 
EntryNextEntry (Entry *entry)
 
EntryPrevEntry (Entry *entry)
 
bool is_disabled ()
 

Private Attributes

ZoneVector< Block * > dominator_path_ {Asm().phase_zone()}
 
base::Vector< Entrytable_
 
size_t mask_ = table_.size() - 1
 
size_t entry_count_ = 0
 
ZoneVector< Entry * > depths_heads_ {Asm().phase_zone()}
 
ScopeCounter disabled_scope_
 

Detailed Description

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

Definition at line 107 of file value-numbering-reducer.h.

Member Function Documentation

◆ AddOrFind()

template<class Next >
template<class Op >
OpIndex v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::AddOrFind ( OpIndex op_idx)
inlineprivate

Definition at line 196 of file value-numbering-reducer.h.

Here is the call graph for this function:

◆ Bind()

template<class Next >
void v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::Bind ( Block * block)
inline

Definition at line 150 of file value-numbering-reducer.h.

Here is the call graph for this function:

◆ CanBeGVNed()

template<class Next >
template<typename Op >
static constexpr bool v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::CanBeGVNed ( )
inlinestaticconstexpr

Definition at line 117 of file value-numbering-reducer.h.

Here is the call graph for this function:

◆ ClearCurrentDepthEntries()

template<class Next >
void v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::ClearCurrentDepthEntries ( )
inlineprivate

Definition at line 254 of file value-numbering-reducer.h.

Here is the caller graph for this function:

◆ ComputeHash()

template<class Next >
template<bool same_block_only, class Op >
size_t v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::ComputeHash ( const Op & op)
inlineprivate

Definition at line 325 of file value-numbering-reducer.h.

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

◆ Find()

template<class Next >
template<class Op >
Entry * v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::Find ( const Op & op,
size_t * hash_ret = nullptr )
inlineprivate

Definition at line 227 of file value-numbering-reducer.h.

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

◆ gvn_disabled_scope()

template<class Next >
ScopeCounter * v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::gvn_disabled_scope ( )
inline

Definition at line 181 of file value-numbering-reducer.h.

◆ is_disabled()

template<class Next >
bool v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::is_disabled ( )
inlineprivate

Definition at line 342 of file value-numbering-reducer.h.

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

◆ NextEntry()

template<class Next >
Entry * v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::NextEntry ( Entry * entry)
inlineprivate

Definition at line 335 of file value-numbering-reducer.h.

◆ NextEntryIndex()

template<class Next >
size_t v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::NextEntryIndex ( size_t index)
inlineprivate

Definition at line 334 of file value-numbering-reducer.h.

Here is the caller graph for this function:

◆ PrevEntry()

template<class Next >
Entry * v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::PrevEntry ( Entry * entry)
inlineprivate

Definition at line 338 of file value-numbering-reducer.h.

◆ RehashIfNeeded()

template<class Next >
void v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::RehashIfNeeded ( )
inlineprivate

Definition at line 267 of file value-numbering-reducer.h.

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

◆ ResetToBlock()

template<class Next >
void v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::ResetToBlock ( Block * block)
inline

Definition at line 158 of file value-numbering-reducer.h.

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

◆ WillGVNOp()

template<class Next >
template<class Op >
bool v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::WillGVNOp ( const Op & op)
inline

Definition at line 176 of file value-numbering-reducer.h.

Here is the call graph for this function:

Member Data Documentation

◆ depths_heads_

template<class Next >
ZoneVector<Entry*> v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::depths_heads_ {Asm().phase_zone()}
private

Definition at line 350 of file value-numbering-reducer.h.

◆ disabled_scope_

template<class Next >
ScopeCounter v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::disabled_scope_
private

Definition at line 351 of file value-numbering-reducer.h.

◆ dominator_path_

template<class Next >
ZoneVector<Block*> v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::dominator_path_ {Asm().phase_zone()}
private

Definition at line 344 of file value-numbering-reducer.h.

◆ entry_count_

template<class Next >
size_t v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::entry_count_ = 0
private

Definition at line 349 of file value-numbering-reducer.h.

◆ mask_

template<class Next >
size_t v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::mask_ = table_.size() - 1
private

Definition at line 348 of file value-numbering-reducer.h.

◆ table_

template<class Next >
base::Vector<Entry> v8::internal::compiler::turboshaft::ValueNumberingReducer< Next >::table_
private
Initial value:
= Asm().phase_zone()->template NewVector<Entry>(
std::max<size_t>(128, Asm().input_graph().op_id_capacity() / 2)))
constexpr size_t RoundUpToPowerOfTwo(size_t value)
Definition bits.h:252

Definition at line 345 of file value-numbering-reducer.h.


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