v8  3.14.5(node0.10.28)
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 MaterializeHeapObjects (JavaScriptFrameIterator *it)
 
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 ReplaceCodeForRelatedFunctions (JSFunction *function, Code *code)
 
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, 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 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 123 of file deoptimizer.h.

Member Enumeration Documentation

Enumerator
EAGER 
LAZY 
OSR 
DEBUGGER 

Definition at line 125 of file deoptimizer.h.

Constructor & Destructor Documentation

Definition at line 440 of file deoptimizer.cc.

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

Member Function Documentation

void ComputeOutputFrames ( Deoptimizer deoptimizer)
static

Definition at line 349 of file deoptimizer.cc.

int ConvertJSFrameIndexToFrameIndex ( int  jsframe_index)

Definition at line 109 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 99 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 242 of file deoptimizer.h.

References OFFSET_OF.

static int input_offset ( )
inlinestatic

Definition at line 236 of file deoptimizer.h.

References OFFSET_OF.

int jsframe_count ( ) const
inline

Definition at line 137 of file deoptimizer.h.

Referenced by Deoptimizer::MaterializeHeapObjects().

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

Definition at line 79 of file deoptimizer.cc.

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

int output_count ( ) const
inline

Definition at line 134 of file deoptimizer.h.

static int output_count_offset ( )
inlinestatic

Definition at line 237 of file deoptimizer.h.

References OFFSET_OF.

static int output_offset ( )
inlinestatic

Definition at line 240 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 ReplaceCodeForRelatedFunctions ( JSFunction function,
Code 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 371 of file deoptimizer.h.

friend class DeoptimizingCodeListNode
friend

Definition at line 370 of file deoptimizer.h.

Referenced by Deoptimizer::DeoptimizeFunction().

friend class FrameDescription
friend

Definition at line 369 of file deoptimizer.h.

Field Documentation

const int kNotDeoptimizationEntry = -1
static

Definition at line 248 of file deoptimizer.h.

Referenced by Deoptimizer::GetDeoptimizationId().


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