v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::JSTypeHintLowering Class Reference

#include <js-type-hint-lowering.h>

Collaboration diagram for v8::internal::compiler::JSTypeHintLowering:

Classes

class  LoweringResult
 

Public Types

enum  Flag { kNoFlags = 0u , kBailoutOnUninitialized = 1u << 1 }
 
using Flags = base::Flags<Flag>
 

Public Member Functions

 JSTypeHintLowering (JSHeapBroker *broker, JSGraph *jsgraph, FeedbackVectorRef feedback_vector, Flags flags)
 
 JSTypeHintLowering (const JSTypeHintLowering &)=delete
 
JSTypeHintLoweringoperator= (const JSTypeHintLowering &)=delete
 
LoweringResult ReduceUnaryOperation (const Operator *op, Node *operand, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceBinaryOperation (const Operator *op, Node *left, Node *right, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceForInNextOperation (Node *receiver, Node *cache_array, Node *cache_type, Node *index, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceForInPrepareOperation (Node *enumerator, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceToNumberOperation (Node *value, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceCallOperation (const Operator *op, Node *const *args, int arg_count, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceConstructOperation (const Operator *op, Node *const *args, int arg_count, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceGetIteratorOperation (const Operator *op, Node *obj, Node *effect, Node *control, FeedbackSlot load_slot, FeedbackSlot call_slot) const
 
LoweringResult ReduceLoadNamedOperation (const Operator *op, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceLoadKeyedOperation (const Operator *op, Node *obj, Node *key, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceStoreNamedOperation (const Operator *op, Node *obj, Node *val, Node *effect, Node *control, FeedbackSlot slot) const
 
LoweringResult ReduceStoreKeyedOperation (const Operator *op, Node *obj, Node *key, Node *val, Node *effect, Node *control, FeedbackSlot slot) const
 

Private Member Functions

BinaryOperationHint GetBinaryOperationHint (FeedbackSlot slot) const
 
CompareOperationHint GetCompareOperationHint (FeedbackSlot slot) const
 
NodeBuildDeoptIfFeedbackIsInsufficient (FeedbackSlot slot, Node *effect, Node *control, DeoptimizeReason reson) const
 
JSHeapBrokerbroker () const
 
JSGraphjsgraph () const
 
Isolateisolate () const
 
Flags flags () const
 
FeedbackVectorRef feedback_vector () const
 

Private Attributes

JSHeapBroker *const broker_
 
JSGraph *const jsgraph_
 
Flags const flags_
 
FeedbackVectorRef const feedback_vector_
 

Friends

class JSSpeculativeBinopBuilder
 

Detailed Description

Definition at line 36 of file js-type-hint-lowering.h.

Member Typedef Documentation

◆ Flags

Member Enumeration Documentation

◆ Flag

Enumerator
kNoFlags 
kBailoutOnUninitialized 

Definition at line 39 of file js-type-hint-lowering.h.

Constructor & Destructor Documentation

◆ JSTypeHintLowering() [1/2]

v8::internal::compiler::JSTypeHintLowering::JSTypeHintLowering ( JSHeapBroker * broker,
JSGraph * jsgraph,
FeedbackVectorRef feedback_vector,
Flags flags )

Definition at line 337 of file js-type-hint-lowering.cc.

◆ JSTypeHintLowering() [2/2]

v8::internal::compiler::JSTypeHintLowering::JSTypeHintLowering ( const JSTypeHintLowering & )
delete

Member Function Documentation

◆ broker()

JSHeapBroker * v8::internal::compiler::JSTypeHintLowering::broker ( ) const
inlineprivate

Definition at line 171 of file js-type-hint-lowering.h.

Here is the caller graph for this function:

◆ BuildDeoptIfFeedbackIsInsufficient()

Node * v8::internal::compiler::JSTypeHintLowering::BuildDeoptIfFeedbackIsInsufficient ( FeedbackSlot slot,
Node * effect,
Node * control,
DeoptimizeReason reson ) const
private

Definition at line 675 of file js-type-hint-lowering.cc.

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

◆ feedback_vector()

FeedbackVectorRef v8::internal::compiler::JSTypeHintLowering::feedback_vector ( ) const
inlineprivate

Definition at line 175 of file js-type-hint-lowering.h.

Here is the caller graph for this function:

◆ flags()

Flags v8::internal::compiler::JSTypeHintLowering::flags ( ) const
inlineprivate

Definition at line 174 of file js-type-hint-lowering.h.

Here is the caller graph for this function:

◆ GetBinaryOperationHint()

BinaryOperationHint v8::internal::compiler::JSTypeHintLowering::GetBinaryOperationHint ( FeedbackSlot slot) const
private

Definition at line 347 of file js-type-hint-lowering.cc.

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

◆ GetCompareOperationHint()

CompareOperationHint v8::internal::compiler::JSTypeHintLowering::GetCompareOperationHint ( FeedbackSlot slot) const
private

Definition at line 353 of file js-type-hint-lowering.cc.

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

◆ isolate()

Isolate * v8::internal::compiler::JSTypeHintLowering::isolate ( ) const
private

Definition at line 345 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ jsgraph()

JSGraph * v8::internal::compiler::JSTypeHintLowering::jsgraph ( ) const
inlineprivate

Definition at line 172 of file js-type-hint-lowering.h.

Here is the caller graph for this function:

◆ operator=()

JSTypeHintLowering & v8::internal::compiler::JSTypeHintLowering::operator= ( const JSTypeHintLowering & )
delete

◆ ReduceBinaryOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceBinaryOperation ( const Operator * op,
Node * left,
Node * right,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 462 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceCallOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceCallOperation ( const Operator * op,
Node *const * args,
int arg_count,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 577 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceConstructOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceConstructOperation ( const Operator * op,
Node *const * args,
int arg_count,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 590 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceForInNextOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceForInNextOperation ( Node * receiver,
Node * cache_array,
Node * cache_type,
Node * index,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 540 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceForInPrepareOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceForInPrepareOperation ( Node * enumerator,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 552 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceGetIteratorOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceGetIteratorOperation ( const Operator * op,
Node * obj,
Node * effect,
Node * control,
FeedbackSlot load_slot,
FeedbackSlot call_slot ) const

Definition at line 605 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceLoadKeyedOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceLoadKeyedOperation ( const Operator * op,
Node * obj,
Node * key,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 631 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceLoadNamedOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceLoadNamedOperation ( const Operator * op,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 619 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceStoreKeyedOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceStoreKeyedOperation ( const Operator * op,
Node * obj,
Node * key,
Node * val,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 659 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceStoreNamedOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceStoreNamedOperation ( const Operator * op,
Node * obj,
Node * val,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 644 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceToNumberOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceToNumberOperation ( Node * value,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 563 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

◆ ReduceUnaryOperation()

JSTypeHintLowering::LoweringResult v8::internal::compiler::JSTypeHintLowering::ReduceUnaryOperation ( const Operator * op,
Node * operand,
Node * effect,
Node * control,
FeedbackSlot slot ) const

Definition at line 359 of file js-type-hint-lowering.cc.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ JSSpeculativeBinopBuilder

friend class JSSpeculativeBinopBuilder
friend

Definition at line 163 of file js-type-hint-lowering.h.

Member Data Documentation

◆ broker_

JSHeapBroker* const v8::internal::compiler::JSTypeHintLowering::broker_
private

Definition at line 177 of file js-type-hint-lowering.h.

◆ feedback_vector_

FeedbackVectorRef const v8::internal::compiler::JSTypeHintLowering::feedback_vector_
private

Definition at line 180 of file js-type-hint-lowering.h.

◆ flags_

Flags const v8::internal::compiler::JSTypeHintLowering::flags_
private

Definition at line 179 of file js-type-hint-lowering.h.

◆ jsgraph_

JSGraph* const v8::internal::compiler::JSTypeHintLowering::jsgraph_
private

Definition at line 178 of file js-type-hint-lowering.h.


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