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

#include <translated-state.h>

Collaboration diagram for v8::internal::TranslatedState:

Classes

struct  ObjectPosition
 

Public Types

using iterator = std::vector<TranslatedFrame>::iterator
 
using const_iterator = std::vector<TranslatedFrame>::const_iterator
 

Public Member Functions

 TranslatedState ()
 
 TranslatedState (const JavaScriptFrame *frame)
 
void Prepare (Address stack_frame_pointer)
 
void StoreMaterializedValuesAndDeopt (JavaScriptFrame *frame)
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
std::vector< TranslatedFrame > & frames ()
 
TranslatedFrameGetFrameFromJSFrameIndex (int jsframe_index)
 
TranslatedFrameGetArgumentsInfoFromJSFrameIndex (int jsframe_index, int *arguments_count)
 
Isolateisolate ()
 
void Init (Isolate *isolate, Address input_frame_pointer, Address stack_frame_pointer, DeoptTranslationIterator *iterator, Tagged< ProtectedDeoptimizationLiteralArray > protected_literal_array, const DeoptimizationLiteralProvider &literal_array, RegisterValues *registers, FILE *trace_file, int parameter_count, int actual_argument_count)
 
void VerifyMaterializedObjects ()
 
bool DoUpdateFeedback ()
 

Private Types

enum  Purpose { kDeoptimization , kFrameInspection }
 

Private Member Functions

TranslatedFrame CreateNextTranslatedFrame (DeoptTranslationIterator *iterator, Tagged< ProtectedDeoptimizationLiteralArray > protected_literal_array, const DeoptimizationLiteralProvider &literal_array, Address fp, FILE *trace_file)
 
int CreateNextTranslatedValue (int frame_index, DeoptTranslationIterator *iterator, const DeoptimizationLiteralProvider &literal_array, Address fp, RegisterValues *registers, FILE *trace_file)
 
Address DecompressIfNeeded (intptr_t value)
 
void CreateArgumentsElementsTranslatedValues (int frame_index, Address input_frame_pointer, CreateArgumentsType type, FILE *trace_file)
 
void UpdateFromPreviouslyMaterializedObjects ()
 
void MaterializeFixedDoubleArray (TranslatedFrame *frame, int *value_index, TranslatedValue *slot, DirectHandle< Map > map)
 
void MaterializeHeapNumber (TranslatedFrame *frame, int *value_index, TranslatedValue *slot)
 
void EnsureObjectAllocatedAt (TranslatedValue *slot)
 
void SkipSlots (int slots_to_skip, TranslatedFrame *frame, int *value_index)
 
Handle< ByteArrayAllocateStorageFor (TranslatedValue *slot)
 
void EnsureJSObjectAllocated (TranslatedValue *slot, DirectHandle< Map > map)
 
void EnsurePropertiesAllocatedAndMarked (TranslatedValue *properties_slot, DirectHandle< Map > map)
 
void EnsureChildrenAllocated (int count, TranslatedFrame *frame, int *value_index, std::stack< int > *worklist)
 
void EnsureCapturedObjectAllocatedAt (int object_index, std::stack< int > *worklist)
 
Handle< HeapObjectInitializeObjectAt (TranslatedValue *slot)
 
void InitializeCapturedObjectAt (int object_index, std::stack< int > *worklist, const DisallowGarbageCollection &no_gc)
 
void InitializeJSObjectAt (TranslatedFrame *frame, int *value_index, TranslatedValue *slot, DirectHandle< Map > map, const DisallowGarbageCollection &no_gc)
 
void InitializeObjectWithTaggedFieldsAt (TranslatedFrame *frame, int *value_index, TranslatedValue *slot, DirectHandle< Map > map, const DisallowGarbageCollection &no_gc)
 
Handle< HeapObjectResolveStringConcat (TranslatedValue *slot)
 
void ReadUpdateFeedback (DeoptTranslationIterator *iterator, Tagged< DeoptimizationLiteralArray > literal_array, FILE *trace_file)
 
TranslatedValueResolveCapturedObject (TranslatedValue *slot)
 
TranslatedValueGetValueByObjectIndex (int object_index)
 
DirectHandle< ObjectGetValueAndAdvance (TranslatedFrame *frame, int *value_index)
 
TranslatedValueGetResolvedSlot (TranslatedFrame *frame, int value_index)
 
TranslatedValueGetResolvedSlotAndAdvance (TranslatedFrame *frame, int *value_index)
 

Static Private Member Functions

static uint32_t GetUInt32Slot (Address fp, int slot_index)
 
static uint64_t GetUInt64Slot (Address fp, int slot_index)
 
static Float32 GetFloatSlot (Address fp, int slot_index)
 
static Float64 GetDoubleSlot (Address fp, int slot_index)
 
static Simd128 getSimd128Slot (Address fp, int slot_index)
 

Private Attributes

friend TranslatedValue
 
Purpose const purpose_
 
std::vector< TranslatedFrameframes_
 
Isolateisolate_ = nullptr
 
Address stack_frame_pointer_ = kNullAddress
 
int formal_parameter_count_
 
int actual_argument_count_
 
std::deque< ObjectPositionobject_positions_
 
Handle< FeedbackVectorfeedback_vector_handle_
 
Tagged< FeedbackVectorfeedback_vector_
 
FeedbackSlot feedback_slot_
 

Detailed Description

Definition at line 454 of file translated-state.h.

Member Typedef Documentation

◆ const_iterator

using v8::internal::TranslatedState::const_iterator = std::vector<TranslatedFrame>::const_iterator

Definition at line 476 of file translated-state.h.

◆ iterator

Definition at line 472 of file translated-state.h.

Member Enumeration Documentation

◆ Purpose

Enumerator
kDeoptimization 
kFrameInspection 

Definition at line 505 of file translated-state.h.

Constructor & Destructor Documentation

◆ TranslatedState() [1/2]

v8::internal::TranslatedState::TranslatedState ( )
inline

Definition at line 461 of file translated-state.h.

◆ TranslatedState() [2/2]

v8::internal::TranslatedState::TranslatedState ( const JavaScriptFrame * frame)
explicit

Definition at line 1884 of file translated-state.cc.

Here is the call graph for this function:

Member Function Documentation

◆ AllocateStorageFor()

Handle< ByteArray > v8::internal::TranslatedState::AllocateStorageFor ( TranslatedValue * slot)
private

Definition at line 2434 of file translated-state.cc.

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

◆ begin() [1/2]

iterator v8::internal::TranslatedState::begin ( )
inline

Definition at line 473 of file translated-state.h.

Here is the caller graph for this function:

◆ begin() [2/2]

const_iterator v8::internal::TranslatedState::begin ( ) const
inline

Definition at line 477 of file translated-state.h.

◆ CreateArgumentsElementsTranslatedValues()

void v8::internal::TranslatedState::CreateArgumentsElementsTranslatedValues ( int frame_index,
Address input_frame_pointer,
CreateArgumentsType type,
FILE * trace_file )
private

Definition at line 1269 of file translated-state.cc.

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

◆ CreateNextTranslatedFrame()

TranslatedFrame v8::internal::TranslatedState::CreateNextTranslatedFrame ( DeoptTranslationIterator * iterator,
Tagged< ProtectedDeoptimizationLiteralArray > protected_literal_array,
const DeoptimizationLiteralProvider & literal_array,
Address fp,
FILE * trace_file )
private

Definition at line 1032 of file translated-state.cc.

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

◆ CreateNextTranslatedValue()

int v8::internal::TranslatedState::CreateNextTranslatedValue ( int frame_index,
DeoptTranslationIterator * iterator,
const DeoptimizationLiteralProvider & literal_array,
Address fp,
RegisterValues * registers,
FILE * trace_file )
private

Definition at line 1330 of file translated-state.cc.

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

◆ DecompressIfNeeded()

Address v8::internal::TranslatedState::DecompressIfNeeded ( intptr_t value)
private

Definition at line 1868 of file translated-state.cc.

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

◆ DoUpdateFeedback()

bool v8::internal::TranslatedState::DoUpdateFeedback ( )

Definition at line 2849 of file translated-state.cc.

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

◆ end() [1/2]

iterator v8::internal::TranslatedState::end ( )
inline

Definition at line 474 of file translated-state.h.

Here is the caller graph for this function:

◆ end() [2/2]

const_iterator v8::internal::TranslatedState::end ( ) const
inline

Definition at line 478 of file translated-state.h.

◆ EnsureCapturedObjectAllocatedAt()

void v8::internal::TranslatedState::EnsureCapturedObjectAllocatedAt ( int object_index,
std::stack< int > * worklist )
private

Definition at line 2224 of file translated-state.cc.

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

◆ EnsureChildrenAllocated()

void v8::internal::TranslatedState::EnsureChildrenAllocated ( int count,
TranslatedFrame * frame,
int * value_index,
std::stack< int > * worklist )
private

Definition at line 2379 of file translated-state.cc.

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

◆ EnsureJSObjectAllocated()

void v8::internal::TranslatedState::EnsureJSObjectAllocated ( TranslatedValue * slot,
DirectHandle< Map > map )
private

Definition at line 2449 of file translated-state.cc.

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

◆ EnsureObjectAllocatedAt()

void v8::internal::TranslatedState::EnsureObjectAllocatedAt ( TranslatedValue * slot)
private

Definition at line 2140 of file translated-state.cc.

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

◆ EnsurePropertiesAllocatedAndMarked()

void v8::internal::TranslatedState::EnsurePropertiesAllocatedAndMarked ( TranslatedValue * properties_slot,
DirectHandle< Map > map )
private

Definition at line 2407 of file translated-state.cc.

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

◆ frames()

std::vector< TranslatedFrame > & v8::internal::TranslatedState::frames ( )
inline

Definition at line 480 of file translated-state.h.

Here is the caller graph for this function:

◆ GetArgumentsInfoFromJSFrameIndex()

TranslatedFrame * v8::internal::TranslatedState::GetArgumentsInfoFromJSFrameIndex ( int jsframe_index,
int * arguments_count )

Definition at line 2681 of file translated-state.cc.

Here is the call graph for this function:

◆ GetDoubleSlot()

Float64 v8::internal::TranslatedState::GetDoubleSlot ( Address fp,
int slot_index )
staticprivate

Definition at line 834 of file translated-state.cc.

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

◆ GetFloatSlot()

Float32 v8::internal::TranslatedState::GetFloatSlot ( Address fp,
int slot_index )
staticprivate

Definition at line 826 of file translated-state.cc.

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

◆ GetFrameFromJSFrameIndex()

TranslatedFrame * v8::internal::TranslatedState::GetFrameFromJSFrameIndex ( int jsframe_index)

Definition at line 2665 of file translated-state.cc.

Here is the caller graph for this function:

◆ GetResolvedSlot()

TranslatedValue * v8::internal::TranslatedState::GetResolvedSlot ( TranslatedFrame * frame,
int value_index )
private

Definition at line 2477 of file translated-state.cc.

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

◆ GetResolvedSlotAndAdvance()

TranslatedValue * v8::internal::TranslatedState::GetResolvedSlotAndAdvance ( TranslatedFrame * frame,
int * value_index )
private

Definition at line 2487 of file translated-state.cc.

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

◆ getSimd128Slot()

Simd128 v8::internal::TranslatedState::getSimd128Slot ( Address fp,
int slot_index )
staticprivate

Definition at line 838 of file translated-state.cc.

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

◆ GetUInt32Slot()

uint32_t v8::internal::TranslatedState::GetUInt32Slot ( Address fp,
int slot_index )
staticprivate

Definition at line 817 of file translated-state.cc.

Here is the caller graph for this function:

◆ GetUInt64Slot()

uint64_t v8::internal::TranslatedState::GetUInt64Slot ( Address fp,
int slot_index )
staticprivate

Definition at line 809 of file translated-state.cc.

Here is the caller graph for this function:

◆ GetValueAndAdvance()

DirectHandle< Object > v8::internal::TranslatedState::GetValueAndAdvance ( TranslatedFrame * frame,
int * value_index )
private

Definition at line 2494 of file translated-state.cc.

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

◆ GetValueByObjectIndex()

TranslatedValue * v8::internal::TranslatedState::GetValueByObjectIndex ( int object_index)
private

Definition at line 1996 of file translated-state.cc.

Here is the caller graph for this function:

◆ Init()

void v8::internal::TranslatedState::Init ( Isolate * isolate,
Address input_frame_pointer,
Address stack_frame_pointer,
DeoptTranslationIterator * iterator,
Tagged< ProtectedDeoptimizationLiteralArray > protected_literal_array,
const DeoptimizationLiteralProvider & literal_array,
RegisterValues * registers,
FILE * trace_file,
int parameter_count,
int actual_argument_count )

Definition at line 1902 of file translated-state.cc.

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

◆ InitializeCapturedObjectAt()

void v8::internal::TranslatedState::InitializeCapturedObjectAt ( int object_index,
std::stack< int > * worklist,
const DisallowGarbageCollection & no_gc )
private

Definition at line 2057 of file translated-state.cc.

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

◆ InitializeJSObjectAt()

void v8::internal::TranslatedState::InitializeJSObjectAt ( TranslatedFrame * frame,
int * value_index,
TranslatedValue * slot,
DirectHandle< Map > map,
const DisallowGarbageCollection & no_gc )
private

Definition at line 2501 of file translated-state.cc.

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

◆ InitializeObjectAt()

Handle< HeapObject > v8::internal::TranslatedState::InitializeObjectAt ( TranslatedValue * slot)
private

Definition at line 2039 of file translated-state.cc.

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

◆ InitializeObjectWithTaggedFieldsAt()

void v8::internal::TranslatedState::InitializeObjectWithTaggedFieldsAt ( TranslatedFrame * frame,
int * value_index,
TranslatedValue * slot,
DirectHandle< Map > map,
const DisallowGarbageCollection & no_gc )
private

Definition at line 2603 of file translated-state.cc.

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

◆ isolate()

Isolate * v8::internal::TranslatedState::isolate ( )
inline

Definition at line 486 of file translated-state.h.

Here is the caller graph for this function:

◆ MaterializeFixedDoubleArray()

void v8::internal::TranslatedState::MaterializeFixedDoubleArray ( TranslatedFrame * frame,
int * value_index,
TranslatedValue * slot,
DirectHandle< Map > map )
private

Definition at line 2167 of file translated-state.cc.

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

◆ MaterializeHeapNumber()

void v8::internal::TranslatedState::MaterializeHeapNumber ( TranslatedFrame * frame,
int * value_index,
TranslatedValue * slot )
private

Definition at line 2191 of file translated-state.cc.

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

◆ Prepare()

void v8::internal::TranslatedState::Prepare ( Address stack_frame_pointer)

Definition at line 1982 of file translated-state.cc.

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

◆ ReadUpdateFeedback()

void v8::internal::TranslatedState::ReadUpdateFeedback ( DeoptTranslationIterator * iterator,
Tagged< DeoptimizationLiteralArray > literal_array,
FILE * trace_file )
private

Definition at line 2860 of file translated-state.cc.

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

◆ ResolveCapturedObject()

TranslatedValue * v8::internal::TranslatedState::ResolveCapturedObject ( TranslatedValue * slot)
private

Definition at line 2656 of file translated-state.cc.

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

◆ ResolveStringConcat()

Handle< HeapObject > v8::internal::TranslatedState::ResolveStringConcat ( TranslatedValue * slot)
private

Definition at line 2002 of file translated-state.cc.

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

◆ SkipSlots()

void v8::internal::TranslatedState::SkipSlots ( int slots_to_skip,
TranslatedFrame * frame,
int * value_index )
private

Definition at line 2210 of file translated-state.cc.

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

◆ StoreMaterializedValuesAndDeopt()

void v8::internal::TranslatedState::StoreMaterializedValuesAndDeopt ( JavaScriptFrame * frame)

Definition at line 2729 of file translated-state.cc.

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

◆ UpdateFromPreviouslyMaterializedObjects()

void v8::internal::TranslatedState::UpdateFromPreviouslyMaterializedObjects ( )
private

Definition at line 2795 of file translated-state.cc.

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

◆ VerifyMaterializedObjects()

void v8::internal::TranslatedState::VerifyMaterializedObjects ( )

Definition at line 2829 of file translated-state.cc.

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

Member Data Documentation

◆ actual_argument_count_

int v8::internal::TranslatedState::actual_argument_count_
private

Definition at line 576 of file translated-state.h.

◆ feedback_slot_

FeedbackSlot v8::internal::TranslatedState::feedback_slot_
private

Definition at line 585 of file translated-state.h.

◆ feedback_vector_

Tagged<FeedbackVector> v8::internal::TranslatedState::feedback_vector_
private

Definition at line 584 of file translated-state.h.

◆ feedback_vector_handle_

Handle<FeedbackVector> v8::internal::TranslatedState::feedback_vector_handle_
private

Definition at line 583 of file translated-state.h.

◆ formal_parameter_count_

int v8::internal::TranslatedState::formal_parameter_count_
private

Definition at line 575 of file translated-state.h.

◆ frames_

std::vector<TranslatedFrame> v8::internal::TranslatedState::frames_
private

Definition at line 572 of file translated-state.h.

◆ isolate_

Isolate* v8::internal::TranslatedState::isolate_ = nullptr
private

Definition at line 573 of file translated-state.h.

◆ object_positions_

std::deque<ObjectPosition> v8::internal::TranslatedState::object_positions_
private

Definition at line 582 of file translated-state.h.

◆ purpose_

Purpose const v8::internal::TranslatedState::purpose_
private

Definition at line 571 of file translated-state.h.

◆ stack_frame_pointer_

Address v8::internal::TranslatedState::stack_frame_pointer_ = kNullAddress
private

Definition at line 574 of file translated-state.h.

◆ TranslatedValue

friend v8::internal::TranslatedState::TranslatedValue
private

Definition at line 499 of file translated-state.h.


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