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

#include <frame-translation-builder.h>

Collaboration diagram for v8::internal::FrameTranslationBuilder:

Classes

struct  Instruction
 

Public Member Functions

 FrameTranslationBuilder (Zone *zone)
 
DirectHandle< DeoptimizationFrameTranslationToFrameTranslation (LocalFactory *factory)
 
base::Vector< const uint8_t > ToFrameTranslationWasm ()
 
int BeginTranslation (int frame_count, int jsframe_count, bool update_feedback)
 
void BeginInterpretedFrame (BytecodeOffset bytecode_offset, int literal_id, int bytecode_array_id, unsigned height, int return_value_offset, int return_value_count)
 
void BeginInlinedExtraArguments (int literal_id, unsigned height, uint32_t parameter_count)
 
void BeginConstructCreateStubFrame (int literal_id, unsigned height)
 
void BeginConstructInvokeStubFrame (int literal_id)
 
void BeginBuiltinContinuationFrame (BytecodeOffset bailout_id, int literal_id, unsigned height)
 
void BeginJavaScriptBuiltinContinuationFrame (BytecodeOffset bailout_id, int literal_id, unsigned height)
 
void BeginJavaScriptBuiltinContinuationWithCatchFrame (BytecodeOffset bailout_id, int literal_id, unsigned height)
 
void ArgumentsElements (CreateArgumentsType type)
 
void ArgumentsLength ()
 
void RestLength ()
 
void BeginCapturedObject (int length)
 
void AddUpdateFeedback (int vector_literal, int slot)
 
void DuplicateObject (int object_index)
 
void StringConcat ()
 
void StoreRegister (TranslationOpcode opcode, Register reg)
 
void StoreRegister (Register reg)
 
void StoreInt32Register (Register reg)
 
void StoreInt64Register (Register reg)
 
void StoreIntPtrRegister (Register reg)
 
void StoreSignedBigInt64Register (Register reg)
 
void StoreUnsignedBigInt64Register (Register reg)
 
void StoreUint32Register (Register reg)
 
void StoreBoolRegister (Register reg)
 
void StoreFloatRegister (FloatRegister reg)
 
void StoreDoubleRegister (DoubleRegister reg)
 
void StoreHoleyDoubleRegister (DoubleRegister reg)
 
void StoreSimd128Register (Simd128Register reg)
 
void StoreStackSlot (int index)
 
void StoreInt32StackSlot (int index)
 
void StoreInt64StackSlot (int index)
 
void StoreIntPtrStackSlot (int index)
 
void StoreSignedBigInt64StackSlot (int index)
 
void StoreUnsignedBigInt64StackSlot (int index)
 
void StoreUint32StackSlot (int index)
 
void StoreBoolStackSlot (int index)
 
void StoreFloatStackSlot (int index)
 
void StoreDoubleStackSlot (int index)
 
void StoreSimd128StackSlot (int index)
 
void StoreHoleyDoubleStackSlot (int index)
 
void StoreLiteral (int literal_id)
 
void StoreOptimizedOut ()
 
void StoreJSFrameFunction ()
 

Private Member Functions

template<typename... T>
void Add (TranslationOpcode opcode, T... operands)
 
template<typename... T>
void AddRawToContents (TranslationOpcode opcode, T... operands)
 
template<typename... T>
void AddRawToContentsForCompression (TranslationOpcode opcode, T... operands)
 
template<typename... T>
void AddRawBegin (bool update_feedback, T... operands)
 
int Size () const
 
int SizeInBytes () const
 
Zonezone () const
 
void FinishPendingInstructionIfNeeded ()
 
void ValidateBytes (DeoptTranslationIterator &iter) const
 

Private Attributes

ZoneVector< uint8_t > contents_
 
ZoneVector< int32_t > contents_for_compression_
 
ZoneVector< Instructionbasis_instructions_
 
Zone *const zone_
 
size_t matching_instructions_count_ = 0
 
size_t total_matching_instructions_in_current_translation_ = 0
 
size_t instruction_index_within_translation_ = 0
 
int index_of_basis_translation_start_ = 0
 
bool match_previous_allowed_ = true
 

Detailed Description

Definition at line 24 of file frame-translation-builder.h.

Constructor & Destructor Documentation

◆ FrameTranslationBuilder()

v8::internal::FrameTranslationBuilder::FrameTranslationBuilder ( Zone * zone)
inlineexplicit

Definition at line 26 of file frame-translation-builder.h.

Member Function Documentation

◆ Add()

template<typename... T>
void v8::internal::FrameTranslationBuilder::Add ( TranslationOpcode opcode,
T... operands )
private

Definition at line 175 of file frame-translation-builder.cc.

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

◆ AddRawBegin()

template<typename... T>
void v8::internal::FrameTranslationBuilder::AddRawBegin ( bool update_feedback,
T... operands )
private

Definition at line 96 of file frame-translation-builder.cc.

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

◆ AddRawToContents()

template<typename... T>
void v8::internal::FrameTranslationBuilder::AddRawToContents ( TranslationOpcode opcode,
T... operands )
private

Definition at line 78 of file frame-translation-builder.cc.

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

◆ AddRawToContentsForCompression()

template<typename... T>
void v8::internal::FrameTranslationBuilder::AddRawToContentsForCompression ( TranslationOpcode opcode,
T... operands )
private

Definition at line 87 of file frame-translation-builder.cc.

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

◆ AddUpdateFeedback()

void v8::internal::FrameTranslationBuilder::AddUpdateFeedback ( int vector_literal,
int slot )

Definition at line 541 of file frame-translation-builder.cc.

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

◆ ArgumentsElements()

void v8::internal::FrameTranslationBuilder::ArgumentsElements ( CreateArgumentsType type)

Definition at line 368 of file frame-translation-builder.cc.

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

◆ ArgumentsLength()

void v8::internal::FrameTranslationBuilder::ArgumentsLength ( )

Definition at line 373 of file frame-translation-builder.cc.

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

◆ BeginBuiltinContinuationFrame()

void v8::internal::FrameTranslationBuilder::BeginBuiltinContinuationFrame ( BytecodeOffset bailout_id,
int literal_id,
unsigned height )

Definition at line 284 of file frame-translation-builder.cc.

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

◆ BeginCapturedObject()

void v8::internal::FrameTranslationBuilder::BeginCapturedObject ( int length)

Definition at line 383 of file frame-translation-builder.cc.

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

◆ BeginConstructCreateStubFrame()

void v8::internal::FrameTranslationBuilder::BeginConstructCreateStubFrame ( int literal_id,
unsigned height )

Definition at line 333 of file frame-translation-builder.cc.

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

◆ BeginConstructInvokeStubFrame()

void v8::internal::FrameTranslationBuilder::BeginConstructInvokeStubFrame ( int literal_id)

Definition at line 339 of file frame-translation-builder.cc.

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

◆ BeginInlinedExtraArguments()

void v8::internal::FrameTranslationBuilder::BeginInlinedExtraArguments ( int literal_id,
unsigned height,
uint32_t parameter_count )

Definition at line 344 of file frame-translation-builder.cc.

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

◆ BeginInterpretedFrame()

void v8::internal::FrameTranslationBuilder::BeginInterpretedFrame ( BytecodeOffset bytecode_offset,
int literal_id,
int bytecode_array_id,
unsigned height,
int return_value_offset,
int return_value_count )

Definition at line 351 of file frame-translation-builder.cc.

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

◆ BeginJavaScriptBuiltinContinuationFrame()

void v8::internal::FrameTranslationBuilder::BeginJavaScriptBuiltinContinuationFrame ( BytecodeOffset bailout_id,
int literal_id,
unsigned height )

Definition at line 318 of file frame-translation-builder.cc.

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

◆ BeginJavaScriptBuiltinContinuationWithCatchFrame()

void v8::internal::FrameTranslationBuilder::BeginJavaScriptBuiltinContinuationWithCatchFrame ( BytecodeOffset bailout_id,
int literal_id,
unsigned height )

Definition at line 325 of file frame-translation-builder.cc.

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

◆ BeginTranslation()

int v8::internal::FrameTranslationBuilder::BeginTranslation ( int frame_count,
int jsframe_count,
bool update_feedback )

Definition at line 111 of file frame-translation-builder.cc.

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

◆ DuplicateObject()

void v8::internal::FrameTranslationBuilder::DuplicateObject ( int object_index)

Definition at line 388 of file frame-translation-builder.cc.

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

◆ FinishPendingInstructionIfNeeded()

void v8::internal::FrameTranslationBuilder::FinishPendingInstructionIfNeeded ( )
private

Definition at line 150 of file frame-translation-builder.cc.

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

◆ RestLength()

void v8::internal::FrameTranslationBuilder::RestLength ( )

Definition at line 378 of file frame-translation-builder.cc.

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

◆ Size()

int v8::internal::FrameTranslationBuilder::Size ( ) const
inlineprivate

Definition at line 139 of file frame-translation-builder.h.

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

◆ SizeInBytes()

int v8::internal::FrameTranslationBuilder::SizeInBytes ( ) const
inlineprivate

Definition at line 144 of file frame-translation-builder.h.

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

◆ StoreBoolRegister()

void v8::internal::FrameTranslationBuilder::StoreBoolRegister ( Register reg)

Definition at line 440 of file frame-translation-builder.cc.

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

◆ StoreBoolStackSlot()

void v8::internal::FrameTranslationBuilder::StoreBoolStackSlot ( int index)

Definition at line 505 of file frame-translation-builder.cc.

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

◆ StoreDoubleRegister()

void v8::internal::FrameTranslationBuilder::StoreDoubleRegister ( DoubleRegister reg)

Definition at line 451 of file frame-translation-builder.cc.

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

◆ StoreDoubleStackSlot()

void v8::internal::FrameTranslationBuilder::StoreDoubleStackSlot ( int index)

Definition at line 515 of file frame-translation-builder.cc.

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

◆ StoreFloatRegister()

void v8::internal::FrameTranslationBuilder::StoreFloatRegister ( FloatRegister reg)

Definition at line 445 of file frame-translation-builder.cc.

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

◆ StoreFloatStackSlot()

void v8::internal::FrameTranslationBuilder::StoreFloatStackSlot ( int index)

Definition at line 510 of file frame-translation-builder.cc.

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

◆ StoreHoleyDoubleRegister()

void v8::internal::FrameTranslationBuilder::StoreHoleyDoubleRegister ( DoubleRegister reg)

Definition at line 457 of file frame-translation-builder.cc.

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

◆ StoreHoleyDoubleStackSlot()

void v8::internal::FrameTranslationBuilder::StoreHoleyDoubleStackSlot ( int index)

Definition at line 525 of file frame-translation-builder.cc.

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

◆ StoreInt32Register()

void v8::internal::FrameTranslationBuilder::StoreInt32Register ( Register reg)

Definition at line 409 of file frame-translation-builder.cc.

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

◆ StoreInt32StackSlot()

void v8::internal::FrameTranslationBuilder::StoreInt32StackSlot ( int index)

Definition at line 474 of file frame-translation-builder.cc.

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

◆ StoreInt64Register()

void v8::internal::FrameTranslationBuilder::StoreInt64Register ( Register reg)

Definition at line 420 of file frame-translation-builder.cc.

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

◆ StoreInt64StackSlot()

void v8::internal::FrameTranslationBuilder::StoreInt64StackSlot ( int index)

Definition at line 485 of file frame-translation-builder.cc.

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

◆ StoreIntPtrRegister()

void v8::internal::FrameTranslationBuilder::StoreIntPtrRegister ( Register reg)

Definition at line 414 of file frame-translation-builder.cc.

Here is the call graph for this function:

◆ StoreIntPtrStackSlot()

void v8::internal::FrameTranslationBuilder::StoreIntPtrStackSlot ( int index)

Definition at line 479 of file frame-translation-builder.cc.

Here is the call graph for this function:

◆ StoreJSFrameFunction()

void v8::internal::FrameTranslationBuilder::StoreJSFrameFunction ( )

Definition at line 546 of file frame-translation-builder.cc.

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

◆ StoreLiteral()

void v8::internal::FrameTranslationBuilder::StoreLiteral ( int literal_id)

Definition at line 530 of file frame-translation-builder.cc.

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

◆ StoreOptimizedOut()

void v8::internal::FrameTranslationBuilder::StoreOptimizedOut ( )

Definition at line 536 of file frame-translation-builder.cc.

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

◆ StoreRegister() [1/2]

void v8::internal::FrameTranslationBuilder::StoreRegister ( Register reg)

Definition at line 404 of file frame-translation-builder.cc.

Here is the call graph for this function:

◆ StoreRegister() [2/2]

void v8::internal::FrameTranslationBuilder::StoreRegister ( TranslationOpcode opcode,
Register reg )

Definition at line 398 of file frame-translation-builder.cc.

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

◆ StoreSignedBigInt64Register()

void v8::internal::FrameTranslationBuilder::StoreSignedBigInt64Register ( Register reg)

Definition at line 425 of file frame-translation-builder.cc.

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

◆ StoreSignedBigInt64StackSlot()

void v8::internal::FrameTranslationBuilder::StoreSignedBigInt64StackSlot ( int index)

Definition at line 490 of file frame-translation-builder.cc.

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

◆ StoreSimd128Register()

void v8::internal::FrameTranslationBuilder::StoreSimd128Register ( Simd128Register reg)

Definition at line 463 of file frame-translation-builder.cc.

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

◆ StoreSimd128StackSlot()

void v8::internal::FrameTranslationBuilder::StoreSimd128StackSlot ( int index)

Definition at line 520 of file frame-translation-builder.cc.

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

◆ StoreStackSlot()

void v8::internal::FrameTranslationBuilder::StoreStackSlot ( int index)

Definition at line 469 of file frame-translation-builder.cc.

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

◆ StoreUint32Register()

void v8::internal::FrameTranslationBuilder::StoreUint32Register ( Register reg)

Definition at line 435 of file frame-translation-builder.cc.

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

◆ StoreUint32StackSlot()

void v8::internal::FrameTranslationBuilder::StoreUint32StackSlot ( int index)

Definition at line 500 of file frame-translation-builder.cc.

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

◆ StoreUnsignedBigInt64Register()

void v8::internal::FrameTranslationBuilder::StoreUnsignedBigInt64Register ( Register reg)

Definition at line 430 of file frame-translation-builder.cc.

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

◆ StoreUnsignedBigInt64StackSlot()

void v8::internal::FrameTranslationBuilder::StoreUnsignedBigInt64StackSlot ( int index)

Definition at line 495 of file frame-translation-builder.cc.

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

◆ StringConcat()

void v8::internal::FrameTranslationBuilder::StringConcat ( )

Definition at line 393 of file frame-translation-builder.cc.

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

◆ ToFrameTranslation()

DirectHandle< DeoptimizationFrameTranslation > v8::internal::FrameTranslationBuilder::ToFrameTranslation ( LocalFactory * factory)

Definition at line 209 of file frame-translation-builder.cc.

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

◆ ToFrameTranslationWasm()

base::Vector< const uint8_t > v8::internal::FrameTranslationBuilder::ToFrameTranslationWasm ( )

Definition at line 252 of file frame-translation-builder.cc.

Here is the call graph for this function:

◆ ValidateBytes()

void v8::internal::FrameTranslationBuilder::ValidateBytes ( DeoptTranslationIterator & iter) const
private

Definition at line 263 of file frame-translation-builder.cc.

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

◆ zone()

Zone * v8::internal::FrameTranslationBuilder::zone ( ) const
inlineprivate

Definition at line 150 of file frame-translation-builder.h.

Here is the caller graph for this function:

Member Data Documentation

◆ basis_instructions_

ZoneVector<Instruction> v8::internal::FrameTranslationBuilder::basis_instructions_
private

Definition at line 164 of file frame-translation-builder.h.

◆ contents_

ZoneVector<uint8_t> v8::internal::FrameTranslationBuilder::contents_
private

Definition at line 155 of file frame-translation-builder.h.

◆ contents_for_compression_

ZoneVector<int32_t> v8::internal::FrameTranslationBuilder::contents_for_compression_
private

Definition at line 156 of file frame-translation-builder.h.

◆ index_of_basis_translation_start_

int v8::internal::FrameTranslationBuilder::index_of_basis_translation_start_ = 0
private

Definition at line 178 of file frame-translation-builder.h.

◆ instruction_index_within_translation_

size_t v8::internal::FrameTranslationBuilder::instruction_index_within_translation_ = 0
private

Definition at line 174 of file frame-translation-builder.h.

◆ match_previous_allowed_

bool v8::internal::FrameTranslationBuilder::match_previous_allowed_ = true
private

Definition at line 181 of file frame-translation-builder.h.

◆ matching_instructions_count_

size_t v8::internal::FrameTranslationBuilder::matching_instructions_count_ = 0
private

Definition at line 171 of file frame-translation-builder.h.

◆ total_matching_instructions_in_current_translation_

size_t v8::internal::FrameTranslationBuilder::total_matching_instructions_in_current_translation_ = 0
private

Definition at line 172 of file frame-translation-builder.h.

◆ zone_

Zone* const v8::internal::FrameTranslationBuilder::zone_
private

Definition at line 168 of file frame-translation-builder.h.


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