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

#include <phase.h>

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

Public Member Functions

 PipelineData (ZoneStats *zone_stats, TurboshaftPipelineKind pipeline_kind, Isolate *isolate, OptimizedCompilationInfo *info, const AssemblerOptions &assembler_options, int start_source_position=kNoSourcePosition)
 
void InitializeBrokerAndDependencies (std::shared_ptr< JSHeapBroker > broker, CompilationDependencies *dependencies)
 
void InitializeBuiltinComponent (const CallDescriptor *call_descriptor, std::optional< BytecodeHandlerData > bytecode_handler_data={})
 
void InitializeGraphComponent (SourcePositionTable *source_positions)
 
void InitializeGraphComponentWithGraphZone (ZoneWithName< kGraphZoneName > graph_zone, ZoneWithNamePointer< SourcePositionTable, kGraphZoneName > source_positions, ZoneWithNamePointer< NodeOriginTable, kGraphZoneName > node_origins)
 
void ClearGraphComponent ()
 
void InitializeCodegenComponent (std::shared_ptr< OsrHelper > osr_helper, JumpOptimizationInfo *jump_optimization_info=nullptr)
 
void ClearCodegenComponent ()
 
void InitializeCodeGenerator (Linkage *linkage)
 
void InitializeInstructionComponent (const CallDescriptor *call_descriptor)
 
void InitializeInstructionComponentWithSequence (InstructionSequence *sequence)
 
void ClearInstructionComponent ()
 
void InitializeRegisterComponent (const RegisterConfiguration *config, CallDescriptor *call_descriptor)
 
void ClearRegisterComponent ()
 
AccountingAllocatorallocator () const
 
ZoneStatszone_stats () const
 
TurboshaftPipelineKind pipeline_kind () const
 
Isolateisolate () const
 
OptimizedCompilationInfoinfo () const
 
const char * debug_name () const
 
JSHeapBrokerbroker () const
 
CompilationDependenciesdepedencies () const
 
const AssemblerOptionsassembler_options () const
 
JumpOptimizationInfojump_optimization_info ()
 
const CallDescriptorbuiltin_call_descriptor () const
 
std::optional< BytecodeHandlerData > & bytecode_handler_data ()
 
bool has_graph () const
 
ZoneWithName< kGraphZoneName > & graph_zone ()
 
turboshaft::Graphgraph () const
 
GraphComponent::Pointer< SourcePositionTablesource_positions () const
 
GraphComponent::Pointer< NodeOriginTablenode_origins () const
 
RegisterAllocationDataregister_allocation_data () const
 
ZoneWithName< kRegisterAllocationZoneName > & register_allocation_zone ()
 
CodeGeneratorcode_generator () const
 
void set_code (MaybeIndirectHandle< Code > code)
 
MaybeIndirectHandle< Codecode () const
 
InstructionSequencesequence () const
 
Frameframe () const
 
CodeTracerGetCodeTracer () const
 
size_tmax_unoptimized_frame_height ()
 
size_tmax_pushed_argument_count ()
 
RuntimeCallStatsruntime_call_stats () const
 
void set_runtime_call_stats (RuntimeCallStats *stats)
 
ZoneWithName< kCompilationZoneName > & compilation_zone ()
 
TurbofanPipelineStatisticspipeline_statistics () const
 
void set_pipeline_statistics (TurbofanPipelineStatistics *pipeline_statistics)
 
bool is_wasm () const
 
bool is_js_to_wasm () const
 
void InitializeFrameData (CallDescriptor *call_descriptor)
 
void set_source_position_output (std::string source_position_output)
 
std::string source_position_output () const
 
bool graph_has_special_rpo () const
 
void set_graph_has_special_rpo ()
 
bool graph_has_lowered_fast_api_calls () const
 
void set_graph_has_lowered_fast_api_calls ()
 

Private Types

using BuiltinComponent = detail::BuiltinComponent
 
using GraphComponent = detail::GraphComponent
 
using CodegenComponent = detail::CodegenComponent
 
using InstructionComponent = detail::InstructionComponent
 
using RegisterComponent = detail::RegisterComponent
 

Private Attributes

ZoneStatszone_stats_
 
ZoneWithName< kCompilationZoneNamecompilation_zone_
 
TurboshaftPipelineKind pipeline_kind_
 
Isolate *const isolate_ = nullptr
 
OptimizedCompilationInfoinfo_ = nullptr
 
std::unique_ptr< char[]> debug_name_
 
std::shared_ptr< JSHeapBrokerbroker_
 
TurbofanPipelineStatisticspipeline_statistics_ = nullptr
 
CompilationDependenciesdependencies_ = nullptr
 
int start_source_position_ = kNoSourcePosition
 
const AssemblerOptions assembler_options_
 
MaybeIndirectHandle< Codecode_
 
std::string source_position_output_
 
RuntimeCallStatsruntime_call_stats_ = nullptr
 
std::optional< BuiltinComponentbuiltin_component_
 
std::optional< GraphComponentgraph_component_
 
std::optional< CodegenComponentcodegen_component_
 
std::optional< InstructionComponentinstruction_component_
 
std::optional< RegisterComponentregister_component_
 

Detailed Description

Definition at line 177 of file phase.h.

Member Typedef Documentation

◆ BuiltinComponent

◆ CodegenComponent

◆ GraphComponent

◆ InstructionComponent

◆ RegisterComponent

Constructor & Destructor Documentation

◆ PipelineData()

v8::internal::compiler::turboshaft::PipelineData::PipelineData ( ZoneStats * zone_stats,
TurboshaftPipelineKind pipeline_kind,
Isolate * isolate,
OptimizedCompilationInfo * info,
const AssemblerOptions & assembler_options,
int start_source_position = kNoSourcePosition )
inlineexplicit

Definition at line 185 of file phase.h.

Here is the call graph for this function:

Member Function Documentation

◆ allocator()

AccountingAllocator * v8::internal::compiler::turboshaft::PipelineData::allocator ( ) const

Definition at line 29 of file phase.cc.

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

◆ assembler_options()

const AssemblerOptions & v8::internal::compiler::turboshaft::PipelineData::assembler_options ( ) const
inline

Definition at line 333 of file phase.h.

◆ broker()

JSHeapBroker * v8::internal::compiler::turboshaft::PipelineData::broker ( ) const
inline

Definition at line 331 of file phase.h.

◆ builtin_call_descriptor()

const CallDescriptor * v8::internal::compiler::turboshaft::PipelineData::builtin_call_descriptor ( ) const
inline

Definition at line 340 of file phase.h.

◆ bytecode_handler_data()

std::optional< BytecodeHandlerData > & v8::internal::compiler::turboshaft::PipelineData::bytecode_handler_data ( )
inline

Definition at line 344 of file phase.h.

◆ ClearCodegenComponent()

void v8::internal::compiler::turboshaft::PipelineData::ClearCodegenComponent ( )
inline

Definition at line 265 of file phase.h.

Here is the caller graph for this function:

◆ ClearGraphComponent()

void v8::internal::compiler::turboshaft::PipelineData::ClearGraphComponent ( )
inline

Definition at line 251 of file phase.h.

◆ ClearInstructionComponent()

void v8::internal::compiler::turboshaft::PipelineData::ClearInstructionComponent ( )
inline

Definition at line 312 of file phase.h.

◆ ClearRegisterComponent()

void v8::internal::compiler::turboshaft::PipelineData::ClearRegisterComponent ( )
inline

Definition at line 320 of file phase.h.

Here is the caller graph for this function:

◆ code()

MaybeIndirectHandle< Code > v8::internal::compiler::turboshaft::PipelineData::code ( ) const
inline

Definition at line 376 of file phase.h.

◆ code_generator()

CodeGenerator * v8::internal::compiler::turboshaft::PipelineData::code_generator ( ) const
inline

Definition at line 369 of file phase.h.

◆ compilation_zone()

ZoneWithName< kCompilationZoneName > & v8::internal::compiler::turboshaft::PipelineData::compilation_zone ( )
inline

Definition at line 396 of file phase.h.

Here is the caller graph for this function:

◆ debug_name()

const char * v8::internal::compiler::turboshaft::PipelineData::debug_name ( ) const
inline

Definition at line 330 of file phase.h.

◆ depedencies()

CompilationDependencies * v8::internal::compiler::turboshaft::PipelineData::depedencies ( ) const
inline

Definition at line 332 of file phase.h.

◆ frame()

Frame * v8::internal::compiler::turboshaft::PipelineData::frame ( ) const
inline

Definition at line 380 of file phase.h.

Here is the caller graph for this function:

◆ GetCodeTracer()

CodeTracer * v8::internal::compiler::turboshaft::PipelineData::GetCodeTracer ( ) const

Definition at line 122 of file phase.cc.

Here is the call graph for this function:

◆ graph()

turboshaft::Graph & v8::internal::compiler::turboshaft::PipelineData::graph ( ) const
inline

Definition at line 355 of file phase.h.

Here is the caller graph for this function:

◆ graph_has_lowered_fast_api_calls()

bool v8::internal::compiler::turboshaft::PipelineData::graph_has_lowered_fast_api_calls ( ) const
inline

Definition at line 498 of file phase.h.

◆ graph_has_special_rpo()

bool v8::internal::compiler::turboshaft::PipelineData::graph_has_special_rpo ( ) const
inline

Definition at line 492 of file phase.h.

◆ graph_zone()

ZoneWithName< kGraphZoneName > & v8::internal::compiler::turboshaft::PipelineData::graph_zone ( )
inline

Definition at line 354 of file phase.h.

◆ has_graph()

bool v8::internal::compiler::turboshaft::PipelineData::has_graph ( ) const
inline

Definition at line 349 of file phase.h.

◆ info()

OptimizedCompilationInfo * v8::internal::compiler::turboshaft::PipelineData::info ( ) const
inline

Definition at line 329 of file phase.h.

Here is the caller graph for this function:

◆ InitializeBrokerAndDependencies()

void v8::internal::compiler::turboshaft::PipelineData::InitializeBrokerAndDependencies ( std::shared_ptr< JSHeapBroker > broker,
CompilationDependencies * dependencies )
inline

Definition at line 206 of file phase.h.

Here is the caller graph for this function:

◆ InitializeBuiltinComponent()

void v8::internal::compiler::turboshaft::PipelineData::InitializeBuiltinComponent ( const CallDescriptor * call_descriptor,
std::optional< BytecodeHandlerData > bytecode_handler_data = {} )
inline

Definition at line 216 of file phase.h.

◆ InitializeCodegenComponent()

void v8::internal::compiler::turboshaft::PipelineData::InitializeCodegenComponent ( std::shared_ptr< OsrHelper > osr_helper,
JumpOptimizationInfo * jump_optimization_info = nullptr )
inline

Definition at line 256 of file phase.h.

Here is the caller graph for this function:

◆ InitializeCodeGenerator()

void v8::internal::compiler::turboshaft::PipelineData::InitializeCodeGenerator ( Linkage * linkage)
inline

Definition at line 270 of file phase.h.

◆ InitializeFrameData()

void v8::internal::compiler::turboshaft::PipelineData::InitializeFrameData ( CallDescriptor * call_descriptor)
inline

Definition at line 472 of file phase.h.

Here is the call graph for this function:

◆ InitializeGraphComponent()

void v8::internal::compiler::turboshaft::PipelineData::InitializeGraphComponent ( SourcePositionTable * source_positions)
inline

Definition at line 224 of file phase.h.

Here is the call graph for this function:

◆ InitializeGraphComponentWithGraphZone()

void v8::internal::compiler::turboshaft::PipelineData::InitializeGraphComponentWithGraphZone ( ZoneWithName< kGraphZoneName > graph_zone,
ZoneWithNamePointer< SourcePositionTable, kGraphZoneName > source_positions,
ZoneWithNamePointer< NodeOriginTable, kGraphZoneName > node_origins )
inline

Definition at line 236 of file phase.h.

Here is the call graph for this function:

◆ InitializeInstructionComponent()

void v8::internal::compiler::turboshaft::PipelineData::InitializeInstructionComponent ( const CallDescriptor * call_descriptor)
inline

Definition at line 288 of file phase.h.

Here is the call graph for this function:

◆ InitializeInstructionComponentWithSequence()

void v8::internal::compiler::turboshaft::PipelineData::InitializeInstructionComponentWithSequence ( InstructionSequence * sequence)
inline

Definition at line 304 of file phase.h.

◆ InitializeRegisterComponent()

void v8::internal::compiler::turboshaft::PipelineData::InitializeRegisterComponent ( const RegisterConfiguration * config,
CallDescriptor * call_descriptor )

Definition at line 19 of file phase.cc.

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

◆ is_js_to_wasm()

bool v8::internal::compiler::turboshaft::PipelineData::is_js_to_wasm ( ) const
inline

Definition at line 468 of file phase.h.

◆ is_wasm()

bool v8::internal::compiler::turboshaft::PipelineData::is_wasm ( ) const
inline

Definition at line 464 of file phase.h.

◆ isolate()

Isolate * v8::internal::compiler::turboshaft::PipelineData::isolate ( ) const
inline

Definition at line 328 of file phase.h.

Here is the caller graph for this function:

◆ jump_optimization_info()

JumpOptimizationInfo * v8::internal::compiler::turboshaft::PipelineData::jump_optimization_info ( )
inline

Definition at line 336 of file phase.h.

◆ max_pushed_argument_count()

size_t & v8::internal::compiler::turboshaft::PipelineData::max_pushed_argument_count ( )
inline

Definition at line 385 of file phase.h.

◆ max_unoptimized_frame_height()

size_t & v8::internal::compiler::turboshaft::PipelineData::max_unoptimized_frame_height ( )
inline

Definition at line 382 of file phase.h.

◆ node_origins()

GraphComponent::Pointer< NodeOriginTable > v8::internal::compiler::turboshaft::PipelineData::node_origins ( ) const
inline

Definition at line 359 of file phase.h.

◆ pipeline_kind()

TurboshaftPipelineKind v8::internal::compiler::turboshaft::PipelineData::pipeline_kind ( ) const
inline

Definition at line 327 of file phase.h.

◆ pipeline_statistics()

TurbofanPipelineStatistics * v8::internal::compiler::turboshaft::PipelineData::pipeline_statistics ( ) const
inline

Definition at line 400 of file phase.h.

◆ register_allocation_data()

RegisterAllocationData * v8::internal::compiler::turboshaft::PipelineData::register_allocation_data ( ) const
inline

Definition at line 363 of file phase.h.

Here is the caller graph for this function:

◆ register_allocation_zone()

ZoneWithName< kRegisterAllocationZoneName > & v8::internal::compiler::turboshaft::PipelineData::register_allocation_zone ( )
inline

Definition at line 366 of file phase.h.

◆ runtime_call_stats()

RuntimeCallStats * v8::internal::compiler::turboshaft::PipelineData::runtime_call_stats ( ) const
inline

Definition at line 388 of file phase.h.

Here is the caller graph for this function:

◆ sequence()

InstructionSequence * v8::internal::compiler::turboshaft::PipelineData::sequence ( ) const
inline

Definition at line 377 of file phase.h.

Here is the caller graph for this function:

◆ set_code()

void v8::internal::compiler::turboshaft::PipelineData::set_code ( MaybeIndirectHandle< Code > code)
inline

Definition at line 372 of file phase.h.

◆ set_graph_has_lowered_fast_api_calls()

void v8::internal::compiler::turboshaft::PipelineData::set_graph_has_lowered_fast_api_calls ( )
inline

Definition at line 501 of file phase.h.

◆ set_graph_has_special_rpo()

void v8::internal::compiler::turboshaft::PipelineData::set_graph_has_special_rpo ( )
inline

Definition at line 495 of file phase.h.

◆ set_pipeline_statistics()

void v8::internal::compiler::turboshaft::PipelineData::set_pipeline_statistics ( TurbofanPipelineStatistics * pipeline_statistics)
inline

Definition at line 403 of file phase.h.

Here is the caller graph for this function:

◆ set_runtime_call_stats()

void v8::internal::compiler::turboshaft::PipelineData::set_runtime_call_stats ( RuntimeCallStats * stats)
inline

Definition at line 389 of file phase.h.

◆ set_source_position_output()

void v8::internal::compiler::turboshaft::PipelineData::set_source_position_output ( std::string source_position_output)
inline

Definition at line 487 of file phase.h.

◆ source_position_output()

std::string v8::internal::compiler::turboshaft::PipelineData::source_position_output ( ) const
inline

Definition at line 490 of file phase.h.

◆ source_positions()

GraphComponent::Pointer< SourcePositionTable > v8::internal::compiler::turboshaft::PipelineData::source_positions ( ) const
inline

Definition at line 356 of file phase.h.

◆ zone_stats()

ZoneStats * v8::internal::compiler::turboshaft::PipelineData::zone_stats ( ) const
inline

Definition at line 326 of file phase.h.

Here is the caller graph for this function:

Member Data Documentation

◆ assembler_options_

const AssemblerOptions v8::internal::compiler::turboshaft::PipelineData::assembler_options_
private

Definition at line 520 of file phase.h.

◆ broker_

std::shared_ptr<JSHeapBroker> v8::internal::compiler::turboshaft::PipelineData::broker_
private

Definition at line 516 of file phase.h.

◆ builtin_component_

std::optional<BuiltinComponent> v8::internal::compiler::turboshaft::PipelineData::builtin_component_
private

Definition at line 525 of file phase.h.

◆ code_

MaybeIndirectHandle<Code> v8::internal::compiler::turboshaft::PipelineData::code_
private

Definition at line 521 of file phase.h.

◆ codegen_component_

std::optional<CodegenComponent> v8::internal::compiler::turboshaft::PipelineData::codegen_component_
private

Definition at line 527 of file phase.h.

◆ compilation_zone_

ZoneWithName<kCompilationZoneName> v8::internal::compiler::turboshaft::PipelineData::compilation_zone_
private

Definition at line 510 of file phase.h.

◆ debug_name_

std::unique_ptr<char[]> v8::internal::compiler::turboshaft::PipelineData::debug_name_
private

Definition at line 514 of file phase.h.

◆ dependencies_

CompilationDependencies* v8::internal::compiler::turboshaft::PipelineData::dependencies_ = nullptr
private

Definition at line 518 of file phase.h.

◆ graph_component_

std::optional<GraphComponent> v8::internal::compiler::turboshaft::PipelineData::graph_component_
private

Definition at line 526 of file phase.h.

◆ info_

OptimizedCompilationInfo* v8::internal::compiler::turboshaft::PipelineData::info_ = nullptr
private

Definition at line 513 of file phase.h.

◆ instruction_component_

std::optional<InstructionComponent> v8::internal::compiler::turboshaft::PipelineData::instruction_component_
private

Definition at line 528 of file phase.h.

◆ isolate_

Isolate* const v8::internal::compiler::turboshaft::PipelineData::isolate_ = nullptr
private

Definition at line 512 of file phase.h.

◆ pipeline_kind_

TurboshaftPipelineKind v8::internal::compiler::turboshaft::PipelineData::pipeline_kind_
private

Definition at line 511 of file phase.h.

◆ pipeline_statistics_

TurbofanPipelineStatistics* v8::internal::compiler::turboshaft::PipelineData::pipeline_statistics_ = nullptr
private

Definition at line 517 of file phase.h.

◆ register_component_

std::optional<RegisterComponent> v8::internal::compiler::turboshaft::PipelineData::register_component_
private

Definition at line 529 of file phase.h.

◆ runtime_call_stats_

RuntimeCallStats* v8::internal::compiler::turboshaft::PipelineData::runtime_call_stats_ = nullptr
private

Definition at line 523 of file phase.h.

◆ source_position_output_

std::string v8::internal::compiler::turboshaft::PipelineData::source_position_output_
private

Definition at line 522 of file phase.h.

◆ start_source_position_

int v8::internal::compiler::turboshaft::PipelineData::start_source_position_ = kNoSourcePosition
private

Definition at line 519 of file phase.h.

◆ zone_stats_

ZoneStats* v8::internal::compiler::turboshaft::PipelineData::zone_stats_
private

Definition at line 506 of file phase.h.


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