v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Deoptimizer Class Reference

#include <deoptimizer.h>

Inheritance diagram for Deoptimizer:
Collaboration diagram for Deoptimizer:

Data Structures

class  BASE_EMBEDDED
 
struct  JumpTableEntry
 
class  TableEntryGenerator
 

Public Types

enum  BailoutType { EAGER, LAZY, SOFT, DEBUGGER }
 
enum  GetEntryMode { CALCULATE_ENTRY_ADDRESS, ENSURE_ENTRY_CODE }
 

Public Member Functions

int output_count () const
 
Handle< JSFunctionfunction () const
 
Handle< Codecompiled_code () const
 
BailoutType bailout_type () const
 
int jsframe_count () const
 
 ~Deoptimizer ()
 
void MaterializeHeapObjects (JavaScriptFrameIterator *it)
 
int ConvertJSFrameIndexToFrameIndex (int jsframe_index)
 
Isolateisolate () const
 
- Public Member Functions inherited from Malloced
void * operator new (size_t size)
 
void operator delete (void *p)
 

Static Public Member Functions

static bool TraceEnabledFor (BailoutType deopt_type, StackFrame::Type frame_type)
 
static const char * MessageFor (BailoutType type)
 
static DeoptimizerNew (JSFunction *function, BailoutType type, unsigned bailout_id, Address from, int fp_to_sp_delta, Isolate *isolate)
 
static DeoptimizerGrab (Isolate *isolate)
 
static void EnsureRelocSpaceForLazyDeoptimization (Handle< Code > code)
 
static void DeoptimizeFunction (JSFunction *function)
 
static void DeoptimizeAll (Isolate *isolate)
 
static void DeoptimizeGlobalObject (JSObject *object)
 
static void DeoptimizeMarkedCode (Isolate *isolate)
 
static void VisitAllOptimizedFunctions (Isolate *isolate, OptimizedFunctionVisitor *visitor)
 
static int patch_size ()
 
static void ComputeOutputFrames (Deoptimizer *deoptimizer)
 
static Address GetDeoptimizationEntry (Isolate *isolate, int id, BailoutType type, GetEntryMode mode=ENSURE_ENTRY_CODE)
 
static int GetDeoptimizationId (Isolate *isolate, Address addr, BailoutType type)
 
static int GetOutputInfo (DeoptimizationOutputData *data, BailoutId node_id, SharedFunctionInfo *shared)
 
static int input_offset ()
 
static int output_count_offset ()
 
static int output_offset ()
 
static int has_alignment_padding_offset ()
 
static int GetDeoptimizedCodeCount (Isolate *isolate)
 
static size_t GetMaxDeoptTableSize ()
 
static void EnsureCodeForDeoptimizationEntry (Isolate *isolate, BailoutType type, int max_entry_id)
 
- Static Public Member Functions inherited from Malloced
static void FatalProcessOutOfMemory ()
 
static void * New (size_t size)
 
static void Delete (void *p)
 

Static Public Attributes

static const int kBailoutTypesWithCodeEntry = SOFT + 1
 
static const int kNotDeoptimizationEntry = -1
 

Friends

class FrameDescription
 
class DeoptimizedFrameInfo
 

Detailed Description

Definition at line 124 of file deoptimizer.h.

Member Enumeration Documentation

Enumerator
EAGER 
LAZY 
SOFT 
DEBUGGER 

Definition at line 126 of file deoptimizer.h.

Enumerator
CALCULATE_ENTRY_ADDRESS 
ENSURE_ENTRY_CODE 

Definition at line 227 of file deoptimizer.h.

Constructor & Destructor Documentation

Definition at line 659 of file deoptimizer.cc.

References ASSERT, and v8::internal::NULL.

Member Function Documentation

BailoutType bailout_type ( ) const
inline

Definition at line 159 of file deoptimizer.h.

Referenced by v8::internal::RUNTIME_FUNCTION().

Handle<Code> compiled_code ( ) const
inline

Definition at line 158 of file deoptimizer.h.

Referenced by v8::internal::RUNTIME_FUNCTION().

void ComputeOutputFrames ( Deoptimizer deoptimizer)
static

Definition at line 526 of file deoptimizer.cc.

int ConvertJSFrameIndexToFrameIndex ( int  jsframe_index)

Definition at line 147 of file deoptimizer.cc.

References FrameDescription::GetFrameType().

void DeoptimizeFunction ( JSFunction function)
static
void DeoptimizeGlobalObject ( JSObject object)
static
static void EnsureRelocSpaceForLazyDeoptimization ( Handle< Code code)
static
Handle<JSFunction> function ( ) const
inline
int GetDeoptimizationId ( Isolate isolate,
Address  addr,
BailoutType  type 
)
static
size_t GetMaxDeoptTableSize ( )
static

Definition at line 128 of file deoptimizer.cc.

References OS::CommitPageSize().

Referenced by Deoptimizer::EnsureCodeForDeoptimizationEntry().

Deoptimizer * Grab ( Isolate isolate)
static

Definition at line 138 of file deoptimizer.cc.

References ASSERT, Isolate::deoptimizer_data(), and v8::internal::NULL.

Referenced by v8::internal::RUNTIME_FUNCTION().

static int has_alignment_padding_offset ( )
inlinestatic

Definition at line 252 of file deoptimizer.h.

References OFFSET_OF.

static int input_offset ( )
inlinestatic

Definition at line 246 of file deoptimizer.h.

References OFFSET_OF.

Isolate* isolate ( ) const
inline

Definition at line 303 of file deoptimizer.h.

int jsframe_count ( ) const
inline

Definition at line 162 of file deoptimizer.h.

Referenced by Deoptimizer::MaterializeHeapObjects().

const char * MessageFor ( BailoutType  type)
static
Deoptimizer * New ( JSFunction function,
BailoutType  type,
unsigned  bailout_id,
Address  from,
int  fp_to_sp_delta,
Isolate isolate 
)
static

Definition at line 105 of file deoptimizer.cc.

References ASSERT, Isolate::deoptimizer_data(), and v8::internal::NULL.

int output_count ( ) const
inline

Definition at line 155 of file deoptimizer.h.

static int output_count_offset ( )
inlinestatic

Definition at line 247 of file deoptimizer.h.

References OFFSET_OF.

static int output_offset ( )
inlinestatic

Definition at line 250 of file deoptimizer.h.

References OFFSET_OF.

int patch_size ( )
static

Definition at line 41 of file deoptimizer-arm.cc.

References Assembler::kInstrSize.

bool TraceEnabledFor ( BailoutType  deopt_type,
StackFrame::Type  frame_type 
)
static
void VisitAllOptimizedFunctions ( Isolate isolate,
OptimizedFunctionVisitor *  visitor 
)
static

Friends And Related Function Documentation

friend class DeoptimizedFrameInfo
friend

Definition at line 462 of file deoptimizer.h.

friend class FrameDescription
friend

Definition at line 461 of file deoptimizer.h.

Field Documentation

const int kBailoutTypesWithCodeEntry = SOFT + 1
static
const int kNotDeoptimizationEntry = -1
static

Definition at line 258 of file deoptimizer.h.

Referenced by Deoptimizer::GetDeoptimizationId().


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