v8  3.11.10(node0.8.26)
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
 
class  TableEntryGenerator
 

Public Types

enum  BailoutType { EAGER, LAZY, OSR, DEBUGGER }
 

Public Member Functions

int output_count () const
 
int jsframe_count () const
 
 ~Deoptimizer ()
 
void MaterializeHeapNumbers ()
 
int ConvertJSFrameIndexToFrameIndex (int jsframe_index)
 
- Public Member Functions inherited from Malloced
void * operator new (size_t size)
 
void operator delete (void *p)
 

Static Public Member Functions

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 ()
 
static void DeoptimizeGlobalObject (JSObject *object)
 
static void VisitAllOptimizedFunctionsForContext (Context *context, OptimizedFunctionVisitor *visitor)
 
static void VisitAllOptimizedFunctionsForGlobalObject (JSObject *object, OptimizedFunctionVisitor *visitor)
 
static void VisitAllOptimizedFunctions (OptimizedFunctionVisitor *visitor)
 
static int patch_size ()
 
static void PatchStackCheckCode (Code *unoptimized_code, Code *check_code, Code *replacement_code)
 
static void PatchStackCheckCodeAt (Code *unoptimized_code, Address pc_after, Code *check_code, Code *replacement_code)
 
static void RevertStackCheckCode (Code *unoptimized_code, Code *check_code, Code *replacement_code)
 
static void RevertStackCheckCodeAt (Code *unoptimized_code, Address pc_after, Code *check_code, Code *replacement_code)
 
static void ComputeOutputFrames (Deoptimizer *deoptimizer)
 
static Address GetDeoptimizationEntry (int id, BailoutType type)
 
static int GetDeoptimizationId (Address addr, BailoutType type)
 
static int GetOutputInfo (DeoptimizationOutputData *data, unsigned 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 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 kNotDeoptimizationEntry = -1
 

Friends

class FrameDescription
 
class DeoptimizingCodeListNode
 
class DeoptimizedFrameInfo
 

Detailed Description

Definition at line 109 of file deoptimizer.h.

Member Enumeration Documentation

Enumerator
EAGER 
LAZY 
OSR 
DEBUGGER 

Definition at line 111 of file deoptimizer.h.

Constructor & Destructor Documentation

Definition at line 428 of file deoptimizer.cc.

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

Member Function Documentation

void ComputeOutputFrames ( Deoptimizer deoptimizer)
static

Definition at line 339 of file deoptimizer.cc.

int ConvertJSFrameIndexToFrameIndex ( int  jsframe_index)

Definition at line 108 of file deoptimizer.cc.

References FrameDescription::GetFrameType().

void DeoptimizeAll ( )
static
void DeoptimizeGlobalObject ( JSObject object)
static
static void EnsureRelocSpaceForLazyDeoptimization ( Handle< Code code)
static
Address GetDeoptimizationEntry ( int  id,
BailoutType  type 
)
static
int GetDeoptimizationId ( Address  addr,
BailoutType  type 
)
static
int GetDeoptimizedCodeCount ( Isolate isolate)
static
Deoptimizer * Grab ( Isolate isolate)
static

Definition at line 98 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 224 of file deoptimizer.h.

References OFFSET_OF.

static int input_offset ( )
inlinestatic

Definition at line 218 of file deoptimizer.h.

References OFFSET_OF.

int jsframe_count ( ) const
inline

Definition at line 123 of file deoptimizer.h.

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

void MaterializeHeapNumbers ( )
Deoptimizer * New ( JSFunction function,
BailoutType  type,
unsigned  bailout_id,
Address  from,
int  fp_to_sp_delta,
Isolate isolate 
)
static

Definition at line 78 of file deoptimizer.cc.

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

int output_count ( ) const
inline

Definition at line 120 of file deoptimizer.h.

static int output_count_offset ( )
inlinestatic

Definition at line 219 of file deoptimizer.h.

References OFFSET_OF.

static int output_offset ( )
inlinestatic

Definition at line 222 of file deoptimizer.h.

References OFFSET_OF.

int patch_size ( )
static

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

References Assembler::kInstrSize.

Referenced by Deoptimizer::DeoptimizeFunction().

void PatchStackCheckCode ( Code unoptimized_code,
Code check_code,
Code replacement_code 
)
static
void RevertStackCheckCode ( Code unoptimized_code,
Code check_code,
Code replacement_code 
)
static
void VisitAllOptimizedFunctions ( OptimizedFunctionVisitor *  visitor)
static
void VisitAllOptimizedFunctionsForContext ( Context context,
OptimizedFunctionVisitor *  visitor 
)
static
void VisitAllOptimizedFunctionsForGlobalObject ( JSObject object,
OptimizedFunctionVisitor *  visitor 
)
static

Friends And Related Function Documentation

friend class DeoptimizedFrameInfo
friend

Definition at line 346 of file deoptimizer.h.

friend class DeoptimizingCodeListNode
friend

Definition at line 345 of file deoptimizer.h.

Referenced by Deoptimizer::DeoptimizeFunction().

friend class FrameDescription
friend

Definition at line 344 of file deoptimizer.h.

Field Documentation

const int kNotDeoptimizationEntry = -1
static

Definition at line 230 of file deoptimizer.h.

Referenced by Deoptimizer::GetDeoptimizationId().


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