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

#include <instruction-selector.h>

Collaboration diagram for v8::internal::compiler::InstructionSelector:

Classes

class  Features
 

Public Types

enum  SourcePositionMode { kCallSourcePositions , kAllSourcePositions }
 
enum  EnableScheduling { kDisableScheduling , kEnableScheduling }
 
enum  EnableRootsRelativeAddressing { kDisableRootsRelativeAddressing , kEnableRootsRelativeAddressing }
 
enum  EnableSwitchJumpTable { kDisableSwitchJumpTable , kEnableSwitchJumpTable }
 
enum  EnableTraceTurboJson { kDisableTraceTurboJson , kEnableTraceTurboJson }
 

Public Member Functions

 ~InstructionSelector ()
 
std::optional< BailoutReasonSelectInstructions ()
 
bool IsSupported (CpuFeature feature) const
 
const ZoneVector< std::pair< int, int > > & instr_origins () const
 
const std::map< NodeId, int > GetVirtualRegistersForTesting () const
 

Static Public Member Functions

static InstructionSelector ForTurboshaft (Zone *zone, size_t node_count, Linkage *linkage, InstructionSequence *sequence, turboshaft::Graph *schedule, Frame *frame, EnableSwitchJumpTable enable_switch_jump_table, TickCounter *tick_counter, JSHeapBroker *broker, size_t *max_unoptimized_frame_height, size_t *max_pushed_argument_count, SourcePositionMode source_position_mode=kCallSourcePositions, Features features=SupportedFeatures(), EnableScheduling enable_scheduling=v8_flags.turbo_instruction_scheduling ? kEnableScheduling :kDisableScheduling, EnableRootsRelativeAddressing enable_roots_relative_addressing=kDisableRootsRelativeAddressing, EnableTraceTurboJson trace_turbo=kDisableTraceTurboJson)
 
static Features SupportedFeatures ()
 
static MachineOperatorBuilder::Flags SupportedMachineOperatorFlags ()
 
static MachineOperatorBuilder::AlignmentRequirements AlignmentRequirements ()
 

Private Member Functions

 InstructionSelector (std::nullptr_t, InstructionSelectorT *turboshaft_impl)
 
 InstructionSelector (const InstructionSelector &)=delete
 
InstructionSelectoroperator= (const InstructionSelector &)=delete
 

Private Attributes

InstructionSelectorTturboshaft_impl_
 

Detailed Description

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

Member Enumeration Documentation

◆ EnableRootsRelativeAddressing

Enumerator
kDisableRootsRelativeAddressing 
kEnableRootsRelativeAddressing 

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

◆ EnableScheduling

Enumerator
kDisableScheduling 
kEnableScheduling 

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

◆ EnableSwitchJumpTable

Enumerator
kDisableSwitchJumpTable 
kEnableSwitchJumpTable 

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

◆ EnableTraceTurboJson

Enumerator
kDisableTraceTurboJson 
kEnableTraceTurboJson 

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

◆ SourcePositionMode

Enumerator
kCallSourcePositions 
kAllSourcePositions 

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

Constructor & Destructor Documentation

◆ ~InstructionSelector()

v8::internal::compiler::InstructionSelector::~InstructionSelector ( )

Definition at line 3981 of file instruction-selector.cc.

◆ InstructionSelector() [1/2]

v8::internal::compiler::InstructionSelector::InstructionSelector ( std::nullptr_t ,
InstructionSelectorT * turboshaft_impl )
private

Definition at line 3977 of file instruction-selector.cc.

Here is the caller graph for this function:

◆ InstructionSelector() [2/2]

v8::internal::compiler::InstructionSelector::InstructionSelector ( const InstructionSelector & )
privatedelete

Member Function Documentation

◆ AlignmentRequirements()

MachineOperatorBuilder::AlignmentRequirements v8::internal::compiler::InstructionSelector::AlignmentRequirements ( )
static

Definition at line 3538 of file instruction-selector-arm.cc.

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

◆ ForTurboshaft()

InstructionSelector v8::internal::compiler::InstructionSelector::ForTurboshaft ( Zone * zone,
size_t node_count,
Linkage * linkage,
InstructionSequence * sequence,
turboshaft::Graph * schedule,
Frame * frame,
EnableSwitchJumpTable enable_switch_jump_table,
TickCounter * tick_counter,
JSHeapBroker * broker,
size_t * max_unoptimized_frame_height,
size_t * max_pushed_argument_count,
SourcePositionMode source_position_mode = kCallSourcePositions,
Features features = SupportedFeatures(),
EnableScheduling enable_scheduling = v8_flags.turbo_instruction_scheduling ? kEnableScheduling : kDisableScheduling,
EnableRootsRelativeAddressing enable_roots_relative_addressing = kDisableRootsRelativeAddressing,
EnableTraceTurboJson trace_turbo = kDisableTraceTurboJson )
static

Definition at line 3958 of file instruction-selector.cc.

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

◆ GetVirtualRegistersForTesting()

const std::map< NodeId, int > v8::internal::compiler::InstructionSelector::GetVirtualRegistersForTesting ( ) const

Definition at line 3998 of file instruction-selector.cc.

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

◆ instr_origins()

const ZoneVector< std::pair< int, int > > & v8::internal::compiler::InstructionSelector::instr_origins ( ) const

Definition at line 3993 of file instruction-selector.cc.

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

◆ IsSupported()

bool v8::internal::compiler::InstructionSelector::IsSupported ( CpuFeature feature) const

Definition at line 3989 of file instruction-selector.cc.

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

◆ operator=()

InstructionSelector & v8::internal::compiler::InstructionSelector::operator= ( const InstructionSelector & )
privatedelete

◆ SelectInstructions()

std::optional< BailoutReason > v8::internal::compiler::InstructionSelector::SelectInstructions ( )

Definition at line 3985 of file instruction-selector.cc.

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

◆ SupportedFeatures()

static Features v8::internal::compiler::InstructionSelector::SupportedFeatures ( )
inlinestatic

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

Here is the caller graph for this function:

◆ SupportedMachineOperatorFlags()

MachineOperatorBuilder::Flags v8::internal::compiler::InstructionSelector::SupportedMachineOperatorFlags ( )
static

Definition at line 3510 of file instruction-selector-arm.cc.

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

Member Data Documentation

◆ turboshaft_impl_

InstructionSelectorT* v8::internal::compiler::InstructionSelector::turboshaft_impl_
private

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


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