webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Enumerations | Functions | Variables
JSC::DFG Namespace Reference

Classes

class  ArgumentPosition
 
class  CompilationKey
 
struct  CompilationKeyHash
 
class  MinifiedID
 
struct  MinifiedIDHash
 

Enumerations

enum  CapabilityLevel {
  CannotCompile, CanCompile, CanCompileAndInline, CapabilityLevelNotSet,
  CannotCompile, CanCompile, CanCompileAndInline, CapabilityLevelNotSet
}
 
enum  CompilationMode {
  InvalidCompilationMode, DFGMode, FTLMode, FTLForOSREntryMode,
  InvalidCompilationMode, DFGMode, FTLMode, FTLForOSREntryMode
}
 
enum  CapabilityLevel {
  CannotCompile, CanCompile, CanCompileAndInline, CapabilityLevelNotSet,
  CannotCompile, CanCompile, CanCompileAndInline, CapabilityLevelNotSet
}
 
enum  CompilationMode {
  InvalidCompilationMode, DFGMode, FTLMode, FTLForOSREntryMode,
  InvalidCompilationMode, DFGMode, FTLMode, FTLForOSREntryMode
}
 
enum  DoubleFormatState { EmptyDoubleFormatState, UsingDoubleFormat, NotUsingDoubleFormat, CantUseDoubleFormat }
 

Functions

bool canCompile (CapabilityLevel level)
 
bool canInline (CapabilityLevel level)
 
CapabilityLevel leastUpperBound (CapabilityLevel a, CapabilityLevel b)
 
bool shouldDumpDisassembly (CompilationMode mode=DFGMode)
 
bool isFTL (CompilationMode mode)
 
bool mightCompileEval (CodeBlock *)
 
bool mightCompileProgram (CodeBlock *)
 
bool mightCompileFunctionForCall (CodeBlock *)
 
bool mightCompileFunctionForConstruct (CodeBlock *)
 
bool mightInlineFunctionForCall (CodeBlock *)
 
bool mightInlineFunctionForClosureCall (CodeBlock *)
 
bool mightInlineFunctionForConstruct (CodeBlock *)
 
bool canUseOSRExitFuzzing (CodeBlock *)
 
CapabilityLevel capabilityLevel (OpcodeID, CodeBlock *, Instruction *)
 
CapabilityLevel capabilityLevel (CodeBlock *)
 
CapabilityLevel evalCapabilityLevel (CodeBlock *codeBlock)
 
CapabilityLevel programCapabilityLevel (CodeBlock *codeBlock)
 
CapabilityLevel functionCapabilityLevel (bool mightCompile, bool mightInline, CapabilityLevel computedCapabilityLevel)
 
CapabilityLevel functionForCallCapabilityLevel (CodeBlock *codeBlock)
 
CapabilityLevel functionForConstructCapabilityLevel (CodeBlock *codeBlock)
 
CapabilityLevel inlineFunctionForCallCapabilityLevel (CodeBlock *codeBlock)
 
CapabilityLevel inlineFunctionForClosureCallCapabilityLevel (CodeBlock *codeBlock)
 
CapabilityLevel inlineFunctionForConstructCapabilityLevel (CodeBlock *codeBlock)
 
bool mightInlineFunctionFor (CodeBlock *codeBlock, CodeSpecializationKind kind)
 
bool mightCompileFunctionFor (CodeBlock *codeBlock, CodeSpecializationKind kind)
 
bool mightInlineFunction (CodeBlock *codeBlock)
 
CapabilityLevel inlineFunctionForCapabilityLevel (CodeBlock *codeBlock, CodeSpecializationKind kind, bool isClosureCall)
 
bool isSmallEnoughToInlineCodeInto (CodeBlock *codeBlock)
 
DoubleFormatState mergeDoubleFormatStates (DoubleFormatState a, DoubleFormatState b)
 
bool mergeDoubleFormatState (DoubleFormatState &dest, DoubleFormatState src)
 
const char * doubleFormatStateToString (DoubleFormatState state)
 
unsigned getNumCompilations ()
 
CompilationResult compile (VM &vm, CodeBlock *codeBlock, CodeBlock *profiledDFGCodeBlock, CompilationMode mode, unsigned osrEntryBytecodeIndex, const Operands< JSValue > &mustHandleValues, Ref< DeferredCompilationCallback > &&callback)
 
template<typename Functor >
void forAllKilledOperands (Graph &graph, Node *nodeBefore, Node *nodeAfter, const Functor &functor)
 
template<typename Functor >
void forAllKilledNodesAtNodeIndex (Graph &graph, AvailabilityMap &availabilityMap, BasicBlock *block, unsigned nodeIndex, const Functor &functor)
 
template<typename Functor >
void forAllKillsInBlock (Graph &graph, const CombinedLiveness &combinedLiveness, BasicBlock *block, const Functor &functor)
 
voidprepareOSREntry (ExecState *, CodeBlock *, unsigned)
 
bool doOSRExitFuzzing ()
 
void completeAllPlansForVM (VM &)
 
void markCodeBlocks (VM &, SlotVisitor &)
 
template<typename Func >
void iterateCodeBlocksForGC (VM &, const Func &)
 

Variables

unsigned g_numberOfStaticOSRExitFuzzChecks
 
unsigned g_numberOfOSRExitFuzzChecks
 

Enumeration Type Documentation

◆ CapabilityLevel [1/2]

Enumerator
CannotCompile 
CanCompile 
CanCompileAndInline 
CapabilityLevelNotSet 
CannotCompile 
CanCompile 
CanCompileAndInline 
CapabilityLevelNotSet 

◆ CapabilityLevel [2/2]

Enumerator
CannotCompile 
CanCompile 
CanCompileAndInline 
CapabilityLevelNotSet 
CannotCompile 
CanCompile 
CanCompileAndInline 
CapabilityLevelNotSet 

◆ CompilationMode [1/2]

Enumerator
InvalidCompilationMode 
DFGMode 
FTLMode 
FTLForOSREntryMode 
InvalidCompilationMode 
DFGMode 
FTLMode 
FTLForOSREntryMode 

◆ CompilationMode [2/2]

Enumerator
InvalidCompilationMode 
DFGMode 
FTLMode 
FTLForOSREntryMode 
InvalidCompilationMode 
DFGMode 
FTLMode 
FTLForOSREntryMode 

◆ DoubleFormatState

Enumerator
EmptyDoubleFormatState 
UsingDoubleFormat 
NotUsingDoubleFormat 
CantUseDoubleFormat 

Function Documentation

◆ canCompile()

bool JSC::DFG::canCompile ( CapabilityLevel  level)
inline

◆ canInline()

bool JSC::DFG::canInline ( CapabilityLevel  level)
inline

◆ canUseOSRExitFuzzing()

bool JSC::DFG::canUseOSRExitFuzzing ( CodeBlock )
inline

◆ capabilityLevel() [1/2]

CapabilityLevel JSC::DFG::capabilityLevel ( OpcodeID  ,
CodeBlock ,
Instruction  
)
inline

◆ capabilityLevel() [2/2]

CapabilityLevel JSC::DFG::capabilityLevel ( CodeBlock )
inline

◆ compile()

CompilationResult JSC::DFG::compile ( VM vm,
CodeBlock codeBlock,
CodeBlock profiledDFGCodeBlock,
CompilationMode  mode,
unsigned  osrEntryBytecodeIndex,
const Operands< JSValue > &  mustHandleValues,
Ref< DeferredCompilationCallback > &&  callback 
)

◆ completeAllPlansForVM()

void JSC::DFG::completeAllPlansForVM ( VM )

◆ doOSRExitFuzzing()

bool JSC::DFG::doOSRExitFuzzing ( )
inline

◆ doubleFormatStateToString()

const char* JSC::DFG::doubleFormatStateToString ( DoubleFormatState  state)
inline

◆ evalCapabilityLevel()

CapabilityLevel JSC::DFG::evalCapabilityLevel ( CodeBlock codeBlock)
inline

◆ forAllKilledNodesAtNodeIndex()

template<typename Functor >
void JSC::DFG::forAllKilledNodesAtNodeIndex ( Graph &  graph,
AvailabilityMap &  availabilityMap,
BasicBlock *  block,
unsigned  nodeIndex,
const Functor &  functor 
)

◆ forAllKilledOperands()

template<typename Functor >
void JSC::DFG::forAllKilledOperands ( Graph &  graph,
Node nodeBefore,
Node nodeAfter,
const Functor &  functor 
)

◆ forAllKillsInBlock()

template<typename Functor >
void JSC::DFG::forAllKillsInBlock ( Graph &  graph,
const CombinedLiveness &  combinedLiveness,
BasicBlock *  block,
const Functor &  functor 
)

◆ functionCapabilityLevel()

CapabilityLevel JSC::DFG::functionCapabilityLevel ( bool  mightCompile,
bool  mightInline,
CapabilityLevel  computedCapabilityLevel 
)
inline

◆ functionForCallCapabilityLevel()

CapabilityLevel JSC::DFG::functionForCallCapabilityLevel ( CodeBlock codeBlock)
inline

◆ functionForConstructCapabilityLevel()

CapabilityLevel JSC::DFG::functionForConstructCapabilityLevel ( CodeBlock codeBlock)
inline

◆ getNumCompilations()

JS_EXPORT_PRIVATE unsigned JSC::DFG::getNumCompilations ( )

◆ inlineFunctionForCallCapabilityLevel()

CapabilityLevel JSC::DFG::inlineFunctionForCallCapabilityLevel ( CodeBlock codeBlock)
inline

◆ inlineFunctionForCapabilityLevel()

CapabilityLevel JSC::DFG::inlineFunctionForCapabilityLevel ( CodeBlock codeBlock,
CodeSpecializationKind  kind,
bool  isClosureCall 
)
inline

◆ inlineFunctionForClosureCallCapabilityLevel()

CapabilityLevel JSC::DFG::inlineFunctionForClosureCallCapabilityLevel ( CodeBlock codeBlock)
inline

◆ inlineFunctionForConstructCapabilityLevel()

CapabilityLevel JSC::DFG::inlineFunctionForConstructCapabilityLevel ( CodeBlock codeBlock)
inline

◆ isFTL()

bool JSC::DFG::isFTL ( CompilationMode  mode)
inline

◆ isSmallEnoughToInlineCodeInto()

bool JSC::DFG::isSmallEnoughToInlineCodeInto ( CodeBlock codeBlock)
inline

◆ iterateCodeBlocksForGC()

template<typename Func >
void JSC::DFG::iterateCodeBlocksForGC ( VM ,
const Func &   
)

◆ leastUpperBound()

CapabilityLevel JSC::DFG::leastUpperBound ( CapabilityLevel  a,
CapabilityLevel  b 
)
inline

◆ markCodeBlocks()

void JSC::DFG::markCodeBlocks ( VM ,
SlotVisitor  
)

◆ mergeDoubleFormatState()

bool JSC::DFG::mergeDoubleFormatState ( DoubleFormatState dest,
DoubleFormatState  src 
)
inline

◆ mergeDoubleFormatStates()

DoubleFormatState JSC::DFG::mergeDoubleFormatStates ( DoubleFormatState  a,
DoubleFormatState  b 
)
inline

◆ mightCompileEval()

bool JSC::DFG::mightCompileEval ( CodeBlock )
inline

◆ mightCompileFunctionFor()

bool JSC::DFG::mightCompileFunctionFor ( CodeBlock codeBlock,
CodeSpecializationKind  kind 
)
inline

◆ mightCompileFunctionForCall()

bool JSC::DFG::mightCompileFunctionForCall ( CodeBlock )
inline

◆ mightCompileFunctionForConstruct()

bool JSC::DFG::mightCompileFunctionForConstruct ( CodeBlock )
inline

◆ mightCompileProgram()

bool JSC::DFG::mightCompileProgram ( CodeBlock )
inline

◆ mightInlineFunction()

bool JSC::DFG::mightInlineFunction ( CodeBlock codeBlock)
inline

◆ mightInlineFunctionFor()

bool JSC::DFG::mightInlineFunctionFor ( CodeBlock codeBlock,
CodeSpecializationKind  kind 
)
inline

◆ mightInlineFunctionForCall()

bool JSC::DFG::mightInlineFunctionForCall ( CodeBlock )
inline

◆ mightInlineFunctionForClosureCall()

bool JSC::DFG::mightInlineFunctionForClosureCall ( CodeBlock )
inline

◆ mightInlineFunctionForConstruct()

bool JSC::DFG::mightInlineFunctionForConstruct ( CodeBlock )
inline

◆ prepareOSREntry()

void* JSC::DFG::prepareOSREntry ( ExecState ,
CodeBlock ,
unsigned   
)
inline

◆ programCapabilityLevel()

CapabilityLevel JSC::DFG::programCapabilityLevel ( CodeBlock codeBlock)
inline

◆ shouldDumpDisassembly()

bool JSC::DFG::shouldDumpDisassembly ( CompilationMode  mode = DFGMode)
inline

Variable Documentation

◆ g_numberOfOSRExitFuzzChecks

unsigned JSC::DFG::g_numberOfOSRExitFuzzChecks

◆ g_numberOfStaticOSRExitFuzzChecks

unsigned JSC::DFG::g_numberOfStaticOSRExitFuzzChecks