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

#include <maglev-code-generator.h>

Collaboration diagram for v8::internal::maglev::MaglevCodeGenerator:

Public Member Functions

 MaglevCodeGenerator (LocalIsolate *isolate, MaglevCompilationInfo *compilation_info, Graph *graph)
 
V8_NODISCARD bool Assemble ()
 
MaybeHandle< CodeGenerate (Isolate *isolate)
 
GlobalHandleVector< MapRetainedMaps (Isolate *isolate)
 

Private Member Functions

V8_NODISCARD bool EmitCode ()
 
void EmitDeferredCode ()
 
V8_NODISCARD bool EmitDeopts ()
 
void EmitExceptionHandlerTrampolines ()
 
void EmitMetadata ()
 
void RecordInlinedFunctions ()
 
GlobalHandleVector< MapCollectRetainedMaps (DirectHandle< Code > code)
 
Handle< DeoptimizationDataGenerateDeoptimizationData (LocalIsolate *local_isolate)
 
MaybeHandle< CodeBuildCodeObject (LocalIsolate *local_isolate)
 
int stack_slot_count () const
 
int stack_slot_count_with_fixed_frame () const
 
uint16_t parameter_count () const
 
MaglevAssemblermasm ()
 

Private Attributes

LocalIsolatelocal_isolate_
 
MaglevSafepointTableBuilder safepoint_table_builder_
 
FrameTranslationBuilder frame_translation_builder_
 
MaglevCodeGenState code_gen_state_
 
MaglevAssembler masm_
 
Graph *const graph_
 
IdentityMap< int, base::DefaultAllocationPolicyprotected_deopt_literals_
 
IdentityMap< int, base::DefaultAllocationPolicydeopt_literals_
 
int deopt_exit_start_offset_ = -1
 
int handler_table_offset_ = 0
 
int inlined_function_count_ = 0
 
bool code_gen_succeeded_ = false
 
IndirectHandle< DeoptimizationDatadeopt_data_
 
MaybeIndirectHandle< Codecode_
 
GlobalHandleVector< Mapretained_maps_
 
bool is_context_specialized_
 
Zonezone_
 

Detailed Description

Definition at line 22 of file maglev-code-generator.h.

Constructor & Destructor Documentation

◆ MaglevCodeGenerator()

v8::internal::maglev::MaglevCodeGenerator::MaglevCodeGenerator ( LocalIsolate * isolate,
MaglevCompilationInfo * compilation_info,
Graph * graph )

Definition at line 1691 of file maglev-code-generator.cc.

Here is the call graph for this function:

Member Function Documentation

◆ Assemble()

bool v8::internal::maglev::MaglevCodeGenerator::Assemble ( )

Definition at line 1714 of file maglev-code-generator.cc.

Here is the call graph for this function:

◆ BuildCodeObject()

MaybeHandle< Code > v8::internal::maglev::MaglevCodeGenerator::BuildCodeObject ( LocalIsolate * local_isolate)
private

Definition at line 1918 of file maglev-code-generator.cc.

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

◆ CollectRetainedMaps()

GlobalHandleVector< Map > v8::internal::maglev::MaglevCodeGenerator::CollectRetainedMaps ( DirectHandle< Code > code)
private

Definition at line 1949 of file maglev-code-generator.cc.

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

◆ EmitCode()

bool v8::internal::maglev::MaglevCodeGenerator::EmitCode ( )
private

Definition at line 1761 of file maglev-code-generator.cc.

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

◆ EmitDeferredCode()

void v8::internal::maglev::MaglevCodeGenerator::EmitDeferredCode ( )
private

Definition at line 1800 of file maglev-code-generator.cc.

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

◆ EmitDeopts()

bool v8::internal::maglev::MaglevCodeGenerator::EmitDeopts ( )
private

Definition at line 1813 of file maglev-code-generator.cc.

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

◆ EmitExceptionHandlerTrampolines()

void v8::internal::maglev::MaglevCodeGenerator::EmitExceptionHandlerTrampolines ( )
private

Definition at line 1892 of file maglev-code-generator.cc.

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

◆ EmitMetadata()

void v8::internal::maglev::MaglevCodeGenerator::EmitMetadata ( )
private

Definition at line 1900 of file maglev-code-generator.cc.

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

◆ Generate()

MaybeHandle< Code > v8::internal::maglev::MaglevCodeGenerator::Generate ( Isolate * isolate)

Definition at line 1741 of file maglev-code-generator.cc.

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

◆ GenerateDeoptimizationData()

Handle< DeoptimizationData > v8::internal::maglev::MaglevCodeGenerator::GenerateDeoptimizationData ( LocalIsolate * local_isolate)
private

Definition at line 1969 of file maglev-code-generator.cc.

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

◆ masm()

MaglevAssembler * v8::internal::maglev::MaglevCodeGenerator::masm ( )
inlineprivate

Definition at line 52 of file maglev-code-generator.h.

Here is the caller graph for this function:

◆ parameter_count()

uint16_t v8::internal::maglev::MaglevCodeGenerator::parameter_count ( ) const
inlineprivate

Definition at line 50 of file maglev-code-generator.h.

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

◆ RecordInlinedFunctions()

void v8::internal::maglev::MaglevCodeGenerator::RecordInlinedFunctions ( )
private

Definition at line 1784 of file maglev-code-generator.cc.

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

◆ RetainedMaps()

GlobalHandleVector< Map > v8::internal::maglev::MaglevCodeGenerator::RetainedMaps ( Isolate * isolate)

Definition at line 1753 of file maglev-code-generator.cc.

◆ stack_slot_count()

int v8::internal::maglev::MaglevCodeGenerator::stack_slot_count ( ) const
inlineprivate

Definition at line 46 of file maglev-code-generator.h.

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

◆ stack_slot_count_with_fixed_frame()

int v8::internal::maglev::MaglevCodeGenerator::stack_slot_count_with_fixed_frame ( ) const
inlineprivate

Definition at line 47 of file maglev-code-generator.h.

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

Member Data Documentation

◆ code_

MaybeIndirectHandle<Code> v8::internal::maglev::MaglevCodeGenerator::code_
private

Definition at line 70 of file maglev-code-generator.h.

◆ code_gen_state_

MaglevCodeGenState v8::internal::maglev::MaglevCodeGenerator::code_gen_state_
private

Definition at line 57 of file maglev-code-generator.h.

◆ code_gen_succeeded_

bool v8::internal::maglev::MaglevCodeGenerator::code_gen_succeeded_ = false
private

Definition at line 67 of file maglev-code-generator.h.

◆ deopt_data_

IndirectHandle<DeoptimizationData> v8::internal::maglev::MaglevCodeGenerator::deopt_data_
private

Definition at line 69 of file maglev-code-generator.h.

◆ deopt_exit_start_offset_

int v8::internal::maglev::MaglevCodeGenerator::deopt_exit_start_offset_ = -1
private

Definition at line 63 of file maglev-code-generator.h.

◆ deopt_literals_

IdentityMap<int, base::DefaultAllocationPolicy> v8::internal::maglev::MaglevCodeGenerator::deopt_literals_
private

Definition at line 62 of file maglev-code-generator.h.

◆ frame_translation_builder_

FrameTranslationBuilder v8::internal::maglev::MaglevCodeGenerator::frame_translation_builder_
private

Definition at line 56 of file maglev-code-generator.h.

◆ graph_

Graph* const v8::internal::maglev::MaglevCodeGenerator::graph_
private

Definition at line 59 of file maglev-code-generator.h.

◆ handler_table_offset_

int v8::internal::maglev::MaglevCodeGenerator::handler_table_offset_ = 0
private

Definition at line 64 of file maglev-code-generator.h.

◆ inlined_function_count_

int v8::internal::maglev::MaglevCodeGenerator::inlined_function_count_ = 0
private

Definition at line 65 of file maglev-code-generator.h.

◆ is_context_specialized_

bool v8::internal::maglev::MaglevCodeGenerator::is_context_specialized_
private

Definition at line 72 of file maglev-code-generator.h.

◆ local_isolate_

LocalIsolate* v8::internal::maglev::MaglevCodeGenerator::local_isolate_
private

Definition at line 54 of file maglev-code-generator.h.

◆ masm_

MaglevAssembler v8::internal::maglev::MaglevCodeGenerator::masm_
private

Definition at line 58 of file maglev-code-generator.h.

◆ protected_deopt_literals_

IdentityMap<int, base::DefaultAllocationPolicy> v8::internal::maglev::MaglevCodeGenerator::protected_deopt_literals_
private

Definition at line 61 of file maglev-code-generator.h.

◆ retained_maps_

GlobalHandleVector<Map> v8::internal::maglev::MaglevCodeGenerator::retained_maps_
private

Definition at line 71 of file maglev-code-generator.h.

◆ safepoint_table_builder_

MaglevSafepointTableBuilder v8::internal::maglev::MaglevCodeGenerator::safepoint_table_builder_
private

Definition at line 55 of file maglev-code-generator.h.

◆ zone_

Zone* v8::internal::maglev::MaglevCodeGenerator::zone_
private

Definition at line 73 of file maglev-code-generator.h.


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