V8 Project
v8::internal::compiler::FrameStateDescriptor Class Reference

#include <instruction.h>

+ Inheritance diagram for v8::internal::compiler::FrameStateDescriptor:
+ Collaboration diagram for v8::internal::compiler::FrameStateDescriptor:

Public Member Functions

 FrameStateDescriptor (const FrameStateCallInfo &state_info, size_t parameters_count, size_t locals_count, size_t stack_count, FrameStateDescriptor *outer_state=NULL)
 
FrameStateType type () const
 
BailoutId bailout_id () const
 
OutputFrameStateCombine state_combine () const
 
size_t parameters_count () const
 
size_t locals_count () const
 
size_t stack_count () const
 
FrameStateDescriptorouter_state () const
 
MaybeHandle< JSFunctionjsfunction () const
 
size_t size () const
 
size_t GetTotalSize () const
 
size_t GetHeight (OutputFrameStateCombine override) const
 
size_t GetFrameCount () const
 
size_t GetJSFrameCount () const
 
bool HasContext () const
 
- Public Member Functions inherited from v8::internal::ZoneObject
 INLINE (void *operator new(size_t size, Zone *zone))
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)
 

Private Attributes

FrameStateType type_
 
BailoutId bailout_id_
 
OutputFrameStateCombine frame_state_combine_
 
size_t parameters_count_
 
size_t locals_count_
 
size_t stack_count_
 
FrameStateDescriptorouter_state_
 
MaybeHandle< JSFunctionjsfunction_
 

Detailed Description

Definition at line 715 of file instruction.h.

Constructor & Destructor Documentation

◆ FrameStateDescriptor()

v8::internal::compiler::FrameStateDescriptor::FrameStateDescriptor ( const FrameStateCallInfo &  state_info,
size_t  parameters_count,
size_t  locals_count,
size_t  stack_count,
FrameStateDescriptor outer_state = NULL 
)
inline

Definition at line 717 of file instruction.h.

721  : type_(state_info.type()),
722  bailout_id_(state_info.bailout_id()),
723  frame_state_combine_(state_info.state_combine()),
728  jsfunction_(state_info.jsfunction()) {}
FrameStateDescriptor * outer_state() const
Definition: instruction.h:736
OutputFrameStateCombine frame_state_combine_
Definition: instruction.h:790

Member Function Documentation

◆ bailout_id()

BailoutId v8::internal::compiler::FrameStateDescriptor::bailout_id ( ) const
inline

Definition at line 731 of file instruction.h.

731 { return bailout_id_; }

References bailout_id_.

Referenced by v8::internal::compiler::TARGET_TEST_F().

+ Here is the caller graph for this function:

◆ GetFrameCount()

size_t v8::internal::compiler::FrameStateDescriptor::GetFrameCount ( ) const
inline

Definition at line 765 of file instruction.h.

765  {
766  size_t count = 0;
767  for (const FrameStateDescriptor* iter = this; iter != NULL;
768  iter = iter->outer_state_) {
769  ++count;
770  }
771  return count;
772  }
FrameStateDescriptor(const FrameStateCallInfo &state_info, size_t parameters_count, size_t locals_count, size_t stack_count, FrameStateDescriptor *outer_state=NULL)
Definition: instruction.h:717
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL

References NULL.

◆ GetHeight()

size_t v8::internal::compiler::FrameStateDescriptor::GetHeight ( OutputFrameStateCombine  override) const
inline

Definition at line 753 of file instruction.h.

753  {
754  size_t height = size() - parameters_count();
755  switch (override) {
756  case kPushOutput:
757  ++height;
758  break;
759  case kIgnoreOutput:
760  break;
761  }
762  return height;
763  }

References v8::internal::compiler::kIgnoreOutput, v8::internal::compiler::kPushOutput, parameters_count(), and size().

+ Here is the call graph for this function:

◆ GetJSFrameCount()

size_t v8::internal::compiler::FrameStateDescriptor::GetJSFrameCount ( ) const
inline

Definition at line 774 of file instruction.h.

774  {
775  size_t count = 0;
776  for (const FrameStateDescriptor* iter = this; iter != NULL;
777  iter = iter->outer_state_) {
778  if (iter->type_ == JS_FRAME) {
779  ++count;
780  }
781  }
782  return count;
783  }

References v8::internal::compiler::JS_FRAME, and NULL.

◆ GetTotalSize()

size_t v8::internal::compiler::FrameStateDescriptor::GetTotalSize ( ) const
inline

Definition at line 744 of file instruction.h.

744  {
745  size_t total_size = 0;
746  for (const FrameStateDescriptor* iter = this; iter != NULL;
747  iter = iter->outer_state_) {
748  total_size += iter->size();
749  }
750  return total_size;
751  }

References NULL.

Referenced by v8::internal::compiler::CallBuffer::frame_state_value_count().

+ Here is the caller graph for this function:

◆ HasContext()

bool v8::internal::compiler::FrameStateDescriptor::HasContext ( ) const
inline

Definition at line 785 of file instruction.h.

785 { return type_ == JS_FRAME; }

References v8::internal::compiler::JS_FRAME, and type_.

Referenced by size().

+ Here is the caller graph for this function:

◆ jsfunction()

MaybeHandle<JSFunction> v8::internal::compiler::FrameStateDescriptor::jsfunction ( ) const
inline

Definition at line 737 of file instruction.h.

737 { return jsfunction_; }

References jsfunction_.

◆ locals_count()

size_t v8::internal::compiler::FrameStateDescriptor::locals_count ( ) const
inline

Definition at line 734 of file instruction.h.

734 { return locals_count_; }

References locals_count_.

Referenced by v8::internal::compiler::TARGET_TEST_F().

+ Here is the caller graph for this function:

◆ outer_state()

FrameStateDescriptor* v8::internal::compiler::FrameStateDescriptor::outer_state ( ) const
inline

Definition at line 736 of file instruction.h.

736 { return outer_state_; }

References outer_state_.

◆ parameters_count()

size_t v8::internal::compiler::FrameStateDescriptor::parameters_count ( ) const
inline

Definition at line 733 of file instruction.h.

733 { return parameters_count_; }

References parameters_count_.

Referenced by GetHeight(), and v8::internal::compiler::TARGET_TEST_F().

+ Here is the caller graph for this function:

◆ size()

size_t v8::internal::compiler::FrameStateDescriptor::size ( ) const
inline

Definition at line 739 of file instruction.h.

739  {
741  (HasContext() ? 1 : 0);
742  }

References HasContext(), locals_count_, parameters_count_, and stack_count_.

Referenced by GetHeight().

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

◆ stack_count()

size_t v8::internal::compiler::FrameStateDescriptor::stack_count ( ) const
inline

Definition at line 735 of file instruction.h.

735 { return stack_count_; }

References stack_count_.

Referenced by v8::internal::compiler::TARGET_TEST_F().

+ Here is the caller graph for this function:

◆ state_combine()

OutputFrameStateCombine v8::internal::compiler::FrameStateDescriptor::state_combine ( ) const
inline

Definition at line 732 of file instruction.h.

732 { return frame_state_combine_; }

References frame_state_combine_.

Referenced by v8::internal::compiler::TARGET_TEST_F().

+ Here is the caller graph for this function:

◆ type()

FrameStateType v8::internal::compiler::FrameStateDescriptor::type ( ) const
inline

Definition at line 730 of file instruction.h.

730 { return type_; }

References type_.

Member Data Documentation

◆ bailout_id_

BailoutId v8::internal::compiler::FrameStateDescriptor::bailout_id_
private

Definition at line 789 of file instruction.h.

Referenced by bailout_id().

◆ frame_state_combine_

OutputFrameStateCombine v8::internal::compiler::FrameStateDescriptor::frame_state_combine_
private

Definition at line 790 of file instruction.h.

Referenced by state_combine().

◆ jsfunction_

MaybeHandle<JSFunction> v8::internal::compiler::FrameStateDescriptor::jsfunction_
private

Definition at line 795 of file instruction.h.

Referenced by jsfunction().

◆ locals_count_

size_t v8::internal::compiler::FrameStateDescriptor::locals_count_
private

Definition at line 792 of file instruction.h.

Referenced by locals_count(), and size().

◆ outer_state_

FrameStateDescriptor* v8::internal::compiler::FrameStateDescriptor::outer_state_
private

Definition at line 794 of file instruction.h.

Referenced by outer_state().

◆ parameters_count_

size_t v8::internal::compiler::FrameStateDescriptor::parameters_count_
private

Definition at line 791 of file instruction.h.

Referenced by parameters_count(), and size().

◆ stack_count_

size_t v8::internal::compiler::FrameStateDescriptor::stack_count_
private

Definition at line 793 of file instruction.h.

Referenced by size(), and stack_count().

◆ type_

FrameStateType v8::internal::compiler::FrameStateDescriptor::type_
private

Definition at line 788 of file instruction.h.

Referenced by HasContext(), and type().


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