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

#include <code-assembler-compilation-job.h>

Inheritance diagram for v8::internal::compiler::CodeAssemblerCompilationJob:
Collaboration diagram for v8::internal::compiler::CodeAssemblerCompilationJob:

Classes

struct  TFDataAndPipeline
 

Public Types

using CodeAssemblerGenerator
 
using CodeAssemblerInstaller
 
- Public Types inherited from v8::internal::CompilationJob
enum  Status { SUCCEEDED , FAILED , RETRY_ON_MAIN_THREAD }
 
enum class  State {
  kReadyToPrepare , kReadyToExecute , kReadyToFinalize , kSucceeded ,
  kFailed
}
 

Public Member Functions

 CodeAssemblerCompilationJob (Isolate *isolate, Builtin builtin, CodeAssemblerGenerator generator, CodeAssemblerInstaller installer, const AssemblerOptions &assembler_options, std::function< compiler::CallDescriptor *(Zone *)> get_call_descriptor, CodeKind code_kind, const char *name, const ProfileDataFromFile *profile_data, int finalize_order)
 
 CodeAssemblerCompilationJob (const CodeAssemblerCompilationJob &)=delete
 
CodeAssemblerCompilationJoboperator= (const CodeAssemblerCompilationJob &)=delete
 
int FinalizeOrder () const final
 
- Public Member Functions inherited from v8::internal::TurbofanCompilationJob
V8_EXPORT_PRIVATE TurbofanCompilationJob (Isolate *isolate, OptimizedCompilationInfo *compilation_info, State initial_state)
 
OptimizedCompilationInfocompilation_info () const
 
Status RetryOptimization (BailoutReason reason)
 
Status AbortOptimization (BailoutReason reason)
 
void RecordCompilationStats (ConcurrencyMode mode, Isolate *isolate) const
 
void RecordFunctionCompilation (LogEventListener::CodeTag code_type, Isolate *isolate) const
 
uint64_t trace_id () const
 
Isolateisolate () const
 
void Cancel ()
 
- Public Member Functions inherited from v8::internal::OptimizedCompilationJob
 OptimizedCompilationJob (const char *compiler_name, State initial_state)
 
V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT Status PrepareJob (Isolate *isolate)
 
V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT Status ExecuteJob (RuntimeCallStats *stats, LocalIsolate *local_isolate=nullptr)
 
V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT Status FinalizeJob (Isolate *isolate)
 
const char * compiler_name () const
 
double prepare_in_ms () const
 
double execute_in_ms () const
 
double finalize_in_ms () const
 
V8_WARN_UNUSED_RESULT base::TimeDelta ElapsedTime () const
 
- Public Member Functions inherited from v8::internal::CompilationJob
 CompilationJob (State initial_state)
 
virtual ~CompilationJob ()=default
 
State state () const
 

Static Public Attributes

static constexpr int kNoFinalizeOrder = -1
 

Protected Member Functions

RawMachineAssemblerraw_assembler ()
 
JSGraphjsgraph ()
 
Status PrepareJobImpl (Isolate *isolate) final
 
Status FinalizeJobImpl (Isolate *isolate) final
 
virtual PipelineImplEmplacePipeline (Isolate *isolate)=0
 
virtual Handle< CodeFinalizeCode (Isolate *isolate)=0
 
- Protected Member Functions inherited from v8::internal::OptimizedCompilationJob
virtual Status ExecuteJobImpl (RuntimeCallStats *stats, LocalIsolate *local_heap)=0
 
GlobalHandleVector< MapCollectRetainedMaps (Isolate *isolate, DirectHandle< Code > code)
 
void RegisterWeakObjectsInOptimizedCode (Isolate *isolate, DirectHandle< NativeContext > context, DirectHandle< Code > code, GlobalHandleVector< Map > maps)
 
- Protected Member Functions inherited from v8::internal::CompilationJob
V8_WARN_UNUSED_RESULT Status UpdateState (Status status, State next_state)
 

Static Protected Member Functions

static V8_EXPORT_PRIVATE std::unique_ptr< CodeAssemblerCompilationJobNewJobForTesting (Isolate *isolate, Builtin builtin, CodeAssemblerGenerator generator, CodeAssemblerInstaller installer, std::function< compiler::CallDescriptor *(Zone *)> get_call_descriptor, CodeKind code_kind, const char *name)
 
static bool ShouldOptimizeJumps (Isolate *isolate)
 

Protected Attributes

CodeAssemblerGenerator generator_
 
CodeAssemblerInstaller installer_
 
const ProfileDataFromFileprofile_data_
 
int initial_graph_hash_ = 0
 
Zone zone_
 
ZoneStats zone_stats_
 
CodeAssemblerState code_assembler_state_
 
AssemblerOptions assembler_options_
 
OptimizedCompilationInfo compilation_info_
 
std::optional< NodeOriginTablenode_origins_
 
std::unique_ptr< JumpOptimizationInfojump_opt_
 
std::unique_ptr< TurbofanPipelineStatisticspipeline_statistics_
 
int finalize_order_
 
- Protected Attributes inherited from v8::internal::OptimizedCompilationJob
base::TimeDelta time_taken_to_prepare_
 
base::TimeDelta time_taken_to_execute_
 
base::TimeDelta time_taken_to_finalize_
 
base::ElapsedTimer timer_
 

Friends

class CodeAssemblerTester
 

Detailed Description

Definition at line 24 of file code-assembler-compilation-job.h.

Member Typedef Documentation

◆ CodeAssemblerGenerator

Initial value:
std::function<void(compiler::CodeAssemblerState*)>

Definition at line 26 of file code-assembler-compilation-job.h.

◆ CodeAssemblerInstaller

Initial value:
std::function<void(Builtin builtin, Handle<Code> code)>
Local< T > Handle

Definition at line 28 of file code-assembler-compilation-job.h.

Constructor & Destructor Documentation

◆ CodeAssemblerCompilationJob() [1/2]

v8::internal::compiler::CodeAssemblerCompilationJob::CodeAssemblerCompilationJob ( Isolate * isolate,
Builtin builtin,
CodeAssemblerGenerator generator,
CodeAssemblerInstaller installer,
const AssemblerOptions & assembler_options,
std::function< compiler::CallDescriptor *(Zone *)> get_call_descriptor,
CodeKind code_kind,
const char * name,
const ProfileDataFromFile * profile_data,
int finalize_order )

Definition at line 2272 of file pipeline.cc.

Here is the call graph for this function:

◆ CodeAssemblerCompilationJob() [2/2]

v8::internal::compiler::CodeAssemblerCompilationJob::CodeAssemblerCompilationJob ( const CodeAssemblerCompilationJob & )
delete

Member Function Documentation

◆ EmplacePipeline()

virtual PipelineImpl * v8::internal::compiler::CodeAssemblerCompilationJob::EmplacePipeline ( Isolate * isolate)
protectedpure virtual

Implemented in v8::internal::compiler::CodeAssemblerTurboshaftCompilationJob.

Here is the caller graph for this function:

◆ FinalizeCode()

virtual Handle< Code > v8::internal::compiler::CodeAssemblerCompilationJob::FinalizeCode ( Isolate * isolate)
protectedpure virtual

Implemented in v8::internal::compiler::CodeAssemblerTurboshaftCompilationJob.

Here is the caller graph for this function:

◆ FinalizeJobImpl()

PipelineCompilationJob::Status v8::internal::compiler::CodeAssemblerCompilationJob::FinalizeJobImpl ( Isolate * isolate)
finalprotectedvirtual

Implements v8::internal::OptimizedCompilationJob.

Definition at line 2355 of file pipeline.cc.

Here is the call graph for this function:

◆ FinalizeOrder()

int v8::internal::compiler::CodeAssemblerCompilationJob::FinalizeOrder ( ) const
inlinefinalvirtual

Reimplemented from v8::internal::TurbofanCompilationJob.

Definition at line 44 of file code-assembler-compilation-job.h.

◆ jsgraph()

JSGraph * v8::internal::compiler::CodeAssemblerCompilationJob::jsgraph ( )
inlineprotected

Definition at line 65 of file code-assembler-compilation-job.h.

◆ NewJobForTesting()

std::unique_ptr< CodeAssemblerCompilationJob > v8::internal::compiler::CodeAssemblerCompilationJob::NewJobForTesting ( Isolate * isolate,
Builtin builtin,
CodeAssemblerGenerator generator,
CodeAssemblerInstaller installer,
std::function< compiler::CallDescriptor *(Zone *)> get_call_descriptor,
CodeKind code_kind,
const char * name )
staticprotected

Definition at line 2507 of file pipeline.cc.

Here is the call graph for this function:

◆ operator=()

CodeAssemblerCompilationJob & v8::internal::compiler::CodeAssemblerCompilationJob::operator= ( const CodeAssemblerCompilationJob & )
delete

◆ PrepareJobImpl()

PipelineCompilationJob::Status v8::internal::compiler::CodeAssemblerCompilationJob::PrepareJobImpl ( Isolate * isolate)
finalprotectedvirtual

Implements v8::internal::OptimizedCompilationJob.

Definition at line 2304 of file pipeline.cc.

Here is the call graph for this function:

◆ raw_assembler()

RawMachineAssembler * v8::internal::compiler::CodeAssemblerCompilationJob::raw_assembler ( )
inlineprotected

Definition at line 62 of file code-assembler-compilation-job.h.

Here is the caller graph for this function:

◆ ShouldOptimizeJumps()

bool v8::internal::compiler::CodeAssemblerCompilationJob::ShouldOptimizeJumps ( Isolate * isolate)
staticprotected

Definition at line 2299 of file pipeline.cc.

Friends And Related Symbol Documentation

◆ CodeAssemblerTester

friend class CodeAssemblerTester
friend

Definition at line 52 of file code-assembler-compilation-job.h.

Member Data Documentation

◆ assembler_options_

AssemblerOptions v8::internal::compiler::CodeAssemblerCompilationJob::assembler_options_
protected

Definition at line 83 of file code-assembler-compilation-job.h.

◆ code_assembler_state_

CodeAssemblerState v8::internal::compiler::CodeAssemblerCompilationJob::code_assembler_state_
protected

Definition at line 82 of file code-assembler-compilation-job.h.

◆ compilation_info_

OptimizedCompilationInfo v8::internal::compiler::CodeAssemblerCompilationJob::compilation_info_
protected

Definition at line 84 of file code-assembler-compilation-job.h.

◆ finalize_order_

int v8::internal::compiler::CodeAssemblerCompilationJob::finalize_order_
protected

Definition at line 92 of file code-assembler-compilation-job.h.

◆ generator_

CodeAssemblerGenerator v8::internal::compiler::CodeAssemblerCompilationJob::generator_
protected

Definition at line 75 of file code-assembler-compilation-job.h.

◆ initial_graph_hash_

int v8::internal::compiler::CodeAssemblerCompilationJob::initial_graph_hash_ = 0
protected

Definition at line 78 of file code-assembler-compilation-job.h.

◆ installer_

CodeAssemblerInstaller v8::internal::compiler::CodeAssemblerCompilationJob::installer_
protected

Definition at line 76 of file code-assembler-compilation-job.h.

◆ jump_opt_

std::unique_ptr<JumpOptimizationInfo> v8::internal::compiler::CodeAssemblerCompilationJob::jump_opt_
protected

Definition at line 88 of file code-assembler-compilation-job.h.

◆ kNoFinalizeOrder

int v8::internal::compiler::CodeAssemblerCompilationJob::kNoFinalizeOrder = -1
staticconstexpr

Definition at line 43 of file code-assembler-compilation-job.h.

◆ node_origins_

std::optional<NodeOriginTable> v8::internal::compiler::CodeAssemblerCompilationJob::node_origins_
protected

Definition at line 85 of file code-assembler-compilation-job.h.

◆ pipeline_statistics_

std::unique_ptr<TurbofanPipelineStatistics> v8::internal::compiler::CodeAssemblerCompilationJob::pipeline_statistics_
protected

Definition at line 89 of file code-assembler-compilation-job.h.

◆ profile_data_

const ProfileDataFromFile* v8::internal::compiler::CodeAssemblerCompilationJob::profile_data_
protected

Definition at line 77 of file code-assembler-compilation-job.h.

◆ zone_

Zone v8::internal::compiler::CodeAssemblerCompilationJob::zone_
protected

Definition at line 80 of file code-assembler-compilation-job.h.

◆ zone_stats_

ZoneStats v8::internal::compiler::CodeAssemblerCompilationJob::zone_stats_
protected

Definition at line 81 of file code-assembler-compilation-job.h.


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