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

#include <instruction-selector.h>

Collaboration diagram for v8::internal::compiler::FlagsContinuationT:

Classes

struct  ConditionalCompare
 

Public Types

using compare_chain_t = std::array<ConditionalCompare, kMaxCompareChainSize>
 

Public Member Functions

 FlagsContinuationT ()
 
bool IsNone () const
 
bool IsBranch () const
 
bool IsConditionalBranch () const
 
bool IsDeoptimize () const
 
bool IsSet () const
 
bool IsConditionalSet () const
 
bool IsTrap () const
 
bool IsSelect () const
 
FlagsCondition condition () const
 
FlagsCondition final_condition () const
 
DeoptimizeReason reason () const
 
uint32_t node_id () const
 
FeedbackSource const & feedback () const
 
turboshaft::OpIndex frame_state () const
 
turboshaft::OpIndex result () const
 
TrapId trap_id () const
 
turboshaft::Blocktrue_block () const
 
turboshaft::Blockfalse_block () const
 
turboshaft::OpIndex true_value () const
 
turboshaft::OpIndex false_value () const
 
const compare_chain_tcompares () const
 
uint32_t num_conditional_compares () const
 
void Negate ()
 
void Commute ()
 
void Overwrite (FlagsCondition condition)
 
void OverwriteAndNegateIfEqual (FlagsCondition condition)
 
void OverwriteUnsignedIfSigned ()
 
InstructionCode Encode (InstructionCode opcode)
 

Static Public Member Functions

static FlagsContinuationT ForBranch (FlagsCondition condition, turboshaft::Block *true_block, turboshaft::Block *false_block)
 
static FlagsContinuationT ForConditionalBranch (compare_chain_t &compares, uint32_t num_conditional_compares, FlagsCondition branch_condition, turboshaft::Block *true_block, turboshaft::Block *false_block)
 
static FlagsContinuationT ForDeoptimize (FlagsCondition condition, DeoptimizeReason reason, uint32_t node_id, FeedbackSource const &feedback, turboshaft::OpIndex frame_state)
 
static FlagsContinuationT ForDeoptimizeForTesting (FlagsCondition condition, DeoptimizeReason reason, uint32_t node_id, FeedbackSource const &feedback, turboshaft::OpIndex frame_state)
 
static FlagsContinuationT ForSet (FlagsCondition condition, turboshaft::OpIndex result)
 
static FlagsContinuationT ForConditionalSet (compare_chain_t &compares, uint32_t num_conditional_compares, FlagsCondition set_condition, turboshaft::OpIndex result)
 
static FlagsContinuationT ForTrap (FlagsCondition condition, TrapId trap_id)
 
static FlagsContinuationT ForSelect (FlagsCondition condition, turboshaft::OpIndex result, turboshaft::OpIndex true_value, turboshaft::OpIndex false_value)
 

Static Public Attributes

static constexpr size_t kMaxCompareChainSize = 4
 

Private Member Functions

 FlagsContinuationT (FlagsMode mode, FlagsCondition condition, turboshaft::Block *true_block, turboshaft::Block *false_block)
 
 FlagsContinuationT (compare_chain_t &compares, uint32_t num_conditional_compares, FlagsCondition branch_condition, turboshaft::Block *true_block, turboshaft::Block *false_block)
 
 FlagsContinuationT (FlagsMode mode, FlagsCondition condition, DeoptimizeReason reason, uint32_t node_id, FeedbackSource const &feedback, turboshaft::OpIndex frame_state)
 
 FlagsContinuationT (FlagsCondition condition, turboshaft::OpIndex result)
 
 FlagsContinuationT (compare_chain_t &compares, uint32_t num_conditional_compares, FlagsCondition set_condition, turboshaft::OpIndex result)
 
 FlagsContinuationT (FlagsCondition condition, TrapId trap_id)
 
 FlagsContinuationT (FlagsCondition condition, turboshaft::OpIndex result, turboshaft::OpIndex true_value, turboshaft::OpIndex false_value)
 

Private Attributes

FlagsMode const mode_
 
FlagsCondition condition_
 
FlagsCondition final_condition_
 
uint32_t num_conditional_compares_
 
compare_chain_t compares_
 
DeoptimizeReason reason_
 
uint32_t node_id_
 
FeedbackSource feedback_
 
turboshaft::OpIndex frame_state_or_result_
 
turboshaft::Blocktrue_block_
 
turboshaft::Blockfalse_block_
 
TrapId trap_id_
 
turboshaft::OpIndex true_value_
 
turboshaft::OpIndex false_value_
 

Detailed Description

Definition at line 118 of file instruction-selector.h.

Member Typedef Documentation

◆ compare_chain_t

Constructor & Destructor Documentation

◆ FlagsContinuationT() [1/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( )
inline

Definition at line 132 of file instruction-selector.h.

Here is the caller graph for this function:

◆ FlagsContinuationT() [2/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( FlagsMode mode,
FlagsCondition condition,
turboshaft::Block * true_block,
turboshaft::Block * false_block )
inlineprivate

Definition at line 320 of file instruction-selector.h.

Here is the call graph for this function:

◆ FlagsContinuationT() [3/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( compare_chain_t & compares,
uint32_t num_conditional_compares,
FlagsCondition branch_condition,
turboshaft::Block * true_block,
turboshaft::Block * false_block )
inlineprivate

Definition at line 332 of file instruction-selector.h.

Here is the call graph for this function:

◆ FlagsContinuationT() [4/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( FlagsMode mode,
FlagsCondition condition,
DeoptimizeReason reason,
uint32_t node_id,
FeedbackSource const & feedback,
turboshaft::OpIndex frame_state )
inlineprivate

Definition at line 348 of file instruction-selector.h.

Here is the call graph for this function:

◆ FlagsContinuationT() [5/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( FlagsCondition condition,
turboshaft::OpIndex result )
inlineprivate

Definition at line 362 of file instruction-selector.h.

Here is the call graph for this function:

◆ FlagsContinuationT() [6/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( compare_chain_t & compares,
uint32_t num_conditional_compares,
FlagsCondition set_condition,
turboshaft::OpIndex result )
inlineprivate

Definition at line 369 of file instruction-selector.h.

Here is the call graph for this function:

◆ FlagsContinuationT() [7/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( FlagsCondition condition,
TrapId trap_id )
inlineprivate

Definition at line 381 of file instruction-selector.h.

◆ FlagsContinuationT() [8/8]

v8::internal::compiler::FlagsContinuationT::FlagsContinuationT ( FlagsCondition condition,
turboshaft::OpIndex result,
turboshaft::OpIndex true_value,
turboshaft::OpIndex false_value )
inlineprivate

Definition at line 384 of file instruction-selector.h.

Here is the call graph for this function:

Member Function Documentation

◆ Commute()

void v8::internal::compiler::FlagsContinuationT::Commute ( )
inline

Definition at line 271 of file instruction-selector.h.

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

◆ compares()

const compare_chain_t & v8::internal::compiler::FlagsContinuationT::compares ( ) const
inline

Definition at line 256 of file instruction-selector.h.

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

◆ condition()

FlagsCondition v8::internal::compiler::FlagsContinuationT::condition ( ) const
inline

Definition at line 208 of file instruction-selector.h.

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

◆ Encode()

InstructionCode v8::internal::compiler::FlagsContinuationT::Encode ( InstructionCode opcode)
inline

Definition at line 311 of file instruction-selector.h.

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

◆ false_block()

turboshaft::Block * v8::internal::compiler::FlagsContinuationT::false_block ( ) const
inline

Definition at line 244 of file instruction-selector.h.

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

◆ false_value()

turboshaft::OpIndex v8::internal::compiler::FlagsContinuationT::false_value ( ) const
inline

Definition at line 252 of file instruction-selector.h.

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

◆ feedback()

FeedbackSource const & v8::internal::compiler::FlagsContinuationT::feedback ( ) const
inline

Definition at line 224 of file instruction-selector.h.

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

◆ final_condition()

FlagsCondition v8::internal::compiler::FlagsContinuationT::final_condition ( ) const
inline

Definition at line 212 of file instruction-selector.h.

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

◆ ForBranch()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForBranch ( FlagsCondition condition,
turboshaft::Block * true_block,
turboshaft::Block * false_block )
inlinestatic

Definition at line 136 of file instruction-selector.h.

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

◆ ForConditionalBranch()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForConditionalBranch ( compare_chain_t & compares,
uint32_t num_conditional_compares,
FlagsCondition branch_condition,
turboshaft::Block * true_block,
turboshaft::Block * false_block )
inlinestatic

Definition at line 145 of file instruction-selector.h.

Here is the call graph for this function:

◆ ForConditionalSet()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForConditionalSet ( compare_chain_t & compares,
uint32_t num_conditional_compares,
FlagsCondition set_condition,
turboshaft::OpIndex result )
inlinestatic

Definition at line 178 of file instruction-selector.h.

Here is the call graph for this function:

◆ ForDeoptimize()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForDeoptimize ( FlagsCondition condition,
DeoptimizeReason reason,
uint32_t node_id,
FeedbackSource const & feedback,
turboshaft::OpIndex frame_state )
inlinestatic

Definition at line 154 of file instruction-selector.h.

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

◆ ForDeoptimizeForTesting()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForDeoptimizeForTesting ( FlagsCondition condition,
DeoptimizeReason reason,
uint32_t node_id,
FeedbackSource const & feedback,
turboshaft::OpIndex frame_state )
inlinestatic

Definition at line 162 of file instruction-selector.h.

Here is the call graph for this function:

◆ ForSelect()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForSelect ( FlagsCondition condition,
turboshaft::OpIndex result,
turboshaft::OpIndex true_value,
turboshaft::OpIndex false_value )
inlinestatic

Definition at line 191 of file instruction-selector.h.

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

◆ ForSet()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForSet ( FlagsCondition condition,
turboshaft::OpIndex result )
inlinestatic

Definition at line 172 of file instruction-selector.h.

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

◆ ForTrap()

static FlagsContinuationT v8::internal::compiler::FlagsContinuationT::ForTrap ( FlagsCondition condition,
TrapId trap_id )
inlinestatic

Definition at line 187 of file instruction-selector.h.

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

◆ frame_state()

turboshaft::OpIndex v8::internal::compiler::FlagsContinuationT::frame_state ( ) const
inline

Definition at line 228 of file instruction-selector.h.

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

◆ IsBranch()

bool v8::internal::compiler::FlagsContinuationT::IsBranch ( ) const
inline

Definition at line 199 of file instruction-selector.h.

Here is the caller graph for this function:

◆ IsConditionalBranch()

bool v8::internal::compiler::FlagsContinuationT::IsConditionalBranch ( ) const
inline

Definition at line 200 of file instruction-selector.h.

Here is the caller graph for this function:

◆ IsConditionalSet()

bool v8::internal::compiler::FlagsContinuationT::IsConditionalSet ( ) const
inline

Definition at line 205 of file instruction-selector.h.

Here is the caller graph for this function:

◆ IsDeoptimize()

bool v8::internal::compiler::FlagsContinuationT::IsDeoptimize ( ) const
inline

Definition at line 203 of file instruction-selector.h.

Here is the caller graph for this function:

◆ IsNone()

bool v8::internal::compiler::FlagsContinuationT::IsNone ( ) const
inline

Definition at line 198 of file instruction-selector.h.

Here is the caller graph for this function:

◆ IsSelect()

bool v8::internal::compiler::FlagsContinuationT::IsSelect ( ) const
inline

Definition at line 207 of file instruction-selector.h.

Here is the caller graph for this function:

◆ IsSet()

bool v8::internal::compiler::FlagsContinuationT::IsSet ( ) const
inline

Definition at line 204 of file instruction-selector.h.

Here is the caller graph for this function:

◆ IsTrap()

bool v8::internal::compiler::FlagsContinuationT::IsTrap ( ) const
inline

Definition at line 206 of file instruction-selector.h.

Here is the caller graph for this function:

◆ Negate()

void v8::internal::compiler::FlagsContinuationT::Negate ( )
inline

Definition at line 265 of file instruction-selector.h.

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

◆ node_id()

uint32_t v8::internal::compiler::FlagsContinuationT::node_id ( ) const
inline

Definition at line 220 of file instruction-selector.h.

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

◆ num_conditional_compares()

uint32_t v8::internal::compiler::FlagsContinuationT::num_conditional_compares ( ) const
inline

Definition at line 260 of file instruction-selector.h.

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

◆ Overwrite()

void v8::internal::compiler::FlagsContinuationT::Overwrite ( FlagsCondition condition)
inline

Definition at line 277 of file instruction-selector.h.

Here is the call graph for this function:

◆ OverwriteAndNegateIfEqual()

void v8::internal::compiler::FlagsContinuationT::OverwriteAndNegateIfEqual ( FlagsCondition condition)
inline

Definition at line 282 of file instruction-selector.h.

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

◆ OverwriteUnsignedIfSigned()

void v8::internal::compiler::FlagsContinuationT::OverwriteUnsignedIfSigned ( )
inline

Definition at line 290 of file instruction-selector.h.

Here is the call graph for this function:

◆ reason()

DeoptimizeReason v8::internal::compiler::FlagsContinuationT::reason ( ) const
inline

Definition at line 216 of file instruction-selector.h.

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

◆ result()

turboshaft::OpIndex v8::internal::compiler::FlagsContinuationT::result ( ) const
inline

Definition at line 232 of file instruction-selector.h.

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

◆ trap_id()

TrapId v8::internal::compiler::FlagsContinuationT::trap_id ( ) const
inline

Definition at line 236 of file instruction-selector.h.

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

◆ true_block()

turboshaft::Block * v8::internal::compiler::FlagsContinuationT::true_block ( ) const
inline

Definition at line 240 of file instruction-selector.h.

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

◆ true_value()

turboshaft::OpIndex v8::internal::compiler::FlagsContinuationT::true_value ( ) const
inline

Definition at line 248 of file instruction-selector.h.

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

Member Data Documentation

◆ compares_

compare_chain_t v8::internal::compiler::FlagsContinuationT::compares_
private

Definition at line 403 of file instruction-selector.h.

◆ condition_

FlagsCondition v8::internal::compiler::FlagsContinuationT::condition_
private

Definition at line 398 of file instruction-selector.h.

◆ false_block_

turboshaft::Block* v8::internal::compiler::FlagsContinuationT::false_block_
private

Definition at line 411 of file instruction-selector.h.

◆ false_value_

turboshaft::OpIndex v8::internal::compiler::FlagsContinuationT::false_value_
private

Definition at line 414 of file instruction-selector.h.

◆ feedback_

FeedbackSource v8::internal::compiler::FlagsContinuationT::feedback_
private

Definition at line 406 of file instruction-selector.h.

◆ final_condition_

FlagsCondition v8::internal::compiler::FlagsContinuationT::final_condition_
private

Definition at line 399 of file instruction-selector.h.

◆ frame_state_or_result_

turboshaft::OpIndex v8::internal::compiler::FlagsContinuationT::frame_state_or_result_
private

Definition at line 408 of file instruction-selector.h.

◆ kMaxCompareChainSize

size_t v8::internal::compiler::FlagsContinuationT::kMaxCompareChainSize = 4
staticconstexpr

Definition at line 129 of file instruction-selector.h.

◆ mode_

FlagsMode const v8::internal::compiler::FlagsContinuationT::mode_
private

Definition at line 397 of file instruction-selector.h.

◆ node_id_

uint32_t v8::internal::compiler::FlagsContinuationT::node_id_
private

Definition at line 405 of file instruction-selector.h.

◆ num_conditional_compares_

uint32_t v8::internal::compiler::FlagsContinuationT::num_conditional_compares_
private

Definition at line 401 of file instruction-selector.h.

◆ reason_

DeoptimizeReason v8::internal::compiler::FlagsContinuationT::reason_
private

Definition at line 404 of file instruction-selector.h.

◆ trap_id_

TrapId v8::internal::compiler::FlagsContinuationT::trap_id_
private

Definition at line 412 of file instruction-selector.h.

◆ true_block_

turboshaft::Block* v8::internal::compiler::FlagsContinuationT::true_block_
private

Definition at line 410 of file instruction-selector.h.

◆ true_value_

turboshaft::OpIndex v8::internal::compiler::FlagsContinuationT::true_value_
private

Definition at line 413 of file instruction-selector.h.


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