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

#include <node-properties.h>

Inheritance diagram for v8::internal::compiler::NodeProperties:
Collaboration diagram for v8::internal::compiler::NodeProperties:

Public Types

enum  InferMapsResult { kNoMaps , kReliableMaps , kUnreliableMaps }
 

Static Public Member Functions

static int FirstValueIndex (const Node *node)
 
static int FirstContextIndex (Node *node)
 
static int FirstFrameStateIndex (Node *node)
 
static int FirstEffectIndex (Node *node)
 
static int FirstControlIndex (Node *node)
 
static int PastValueIndex (Node *node)
 
static int PastContextIndex (Node *node)
 
static int PastFrameStateIndex (Node *node)
 
static int PastEffectIndex (Node *node)
 
static int PastControlIndex (Node *node)
 
static NodeGetValueInput (Node *node, int index)
 
static const NodeGetValueInput (const Node *node, int index)
 
static NodeGetContextInput (Node *node)
 
static NodeGetFrameStateInput (Node *node)
 
static NodeGetEffectInput (Node *node, int index=0)
 
static NodeGetControlInput (Node *node, int index=0)
 
static bool IsValueEdge (Edge edge)
 
static bool IsContextEdge (Edge edge)
 
static bool IsFrameStateEdge (Edge edge)
 
static bool IsEffectEdge (Edge edge)
 
static bool IsControlEdge (Edge edge)
 
static bool IsCommon (Node *node)
 
static bool IsControl (Node *node)
 
static bool IsConstant (Node *node)
 
static bool IsPhi (Node *node)
 
static bool IsExceptionalCall (Node *node, Node **out_exception=nullptr)
 
static NodeFindSuccessfulControlProjection (Node *node)
 
static bool IsValueIdentity (Node *node, Node **out_value)
 
static void ReplaceValueInput (Node *node, Node *value, int index)
 
static void ReplaceContextInput (Node *node, Node *context)
 
static void ReplaceControlInput (Node *node, Node *control, int index=0)
 
static void ReplaceEffectInput (Node *node, Node *effect, int index=0)
 
static void ReplaceFrameStateInput (Node *node, Node *frame_state)
 
static void RemoveNonValueInputs (Node *node)
 
static void RemoveValueInputs (Node *node)
 
static void ReplaceValueInputs (Node *node, Node *value)
 
static void MergeControlToEnd (TFGraph *graph, CommonOperatorBuilder *common, Node *node)
 
static void RemoveControlFromEnd (TFGraph *graph, CommonOperatorBuilder *common, Node *node)
 
static void ReplaceUses (Node *node, Node *value, Node *effect=nullptr, Node *success=nullptr, Node *exception=nullptr)
 
static void ChangeOp (Node *node, const Operator *new_op)
 
static void ChangeOpUnchecked (Node *node, const Operator *new_op)
 
static NodeFindFrameStateBefore (Node *node, Node *unreachable_sentinel)
 
static NodeFindProjection (Node *node, size_t projection_index)
 
static void CollectValueProjections (Node *node, Node **proj, size_t count)
 
static void CollectControlProjections (Node *node, Node **proj, size_t count)
 
static MachineRepresentation GetProjectionType (Node const *projection)
 
static bool IsSame (Node *a, Node *b)
 
static bool Equals (Node *a, Node *b)
 
static size_t HashCode (Node *node)
 
static InferMapsResult InferMapsUnsafe (JSHeapBroker *broker, Node *receiver, Effect effect, ZoneRefSet< Map > *maps_out)
 
static OptionalMapRef GetJSCreateMap (JSHeapBroker *broker, Node *receiver)
 
static bool NoObservableSideEffectBetween (Node *effect, Node *dominator)
 
static bool CanBePrimitive (JSHeapBroker *broker, Node *receiver, Effect effect)
 
static bool CanBeNullOrUndefined (JSHeapBroker *broker, Node *receiver, Effect effect)
 
static NodeGetOuterContext (Node *node, size_t *depth)
 
static bool IsTyped (const Node *node)
 
static Type GetType (const Node *node)
 
static Type GetTypeOrAny (const Node *node)
 
static void SetType (Node *node, Type type)
 
static void RemoveType (Node *node)
 
static bool AllValueInputsAreTyped (Node *node)
 

Static Private Member Functions

static bool IsInputRange (Edge edge, int first, int count)
 

Detailed Description

Definition at line 24 of file node-properties.h.

Member Enumeration Documentation

◆ InferMapsResult

Enumerator
kNoMaps 
kReliableMaps 
kUnreliableMaps 

Definition at line 219 of file node-properties.h.

Member Function Documentation

◆ AllValueInputsAreTyped()

bool v8::internal::compiler::NodeProperties::AllValueInputsAreTyped ( Node * node)
static

Definition at line 648 of file node-properties.cc.

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

◆ CanBeNullOrUndefined()

bool v8::internal::compiler::NodeProperties::CanBeNullOrUndefined ( JSHeapBroker * broker,
Node * receiver,
Effect effect )
static

Definition at line 601 of file node-properties.cc.

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

◆ CanBePrimitive()

bool v8::internal::compiler::NodeProperties::CanBePrimitive ( JSHeapBroker * broker,
Node * receiver,
Effect effect )
static

Definition at line 576 of file node-properties.cc.

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

◆ ChangeOp()

void v8::internal::compiler::NodeProperties::ChangeOp ( Node * node,
const Operator * new_op )
static

Definition at line 203 of file node-properties.cc.

Here is the call graph for this function:

◆ ChangeOpUnchecked()

void v8::internal::compiler::NodeProperties::ChangeOpUnchecked ( Node * node,
const Operator * new_op )
static

Definition at line 209 of file node-properties.cc.

◆ CollectControlProjections()

void v8::internal::compiler::NodeProperties::CollectControlProjections ( Node * node,
Node ** proj,
size_t count )
static

Definition at line 260 of file node-properties.cc.

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

◆ CollectValueProjections()

void v8::internal::compiler::NodeProperties::CollectValueProjections ( Node * node,
Node ** proj,
size_t count )
static

Definition at line 243 of file node-properties.cc.

Here is the call graph for this function:

◆ Equals()

bool v8::internal::compiler::NodeProperties::Equals ( Node * a,
Node * b )
static

Definition at line 673 of file node-properties.cc.

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

◆ FindFrameStateBefore()

Node * v8::internal::compiler::NodeProperties::FindFrameStateBefore ( Node * node,
Node * unreachable_sentinel )
static

Definition at line 214 of file node-properties.cc.

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

◆ FindProjection()

Node * v8::internal::compiler::NodeProperties::FindProjection ( Node * node,
size_t projection_index )
static

Definition at line 231 of file node-properties.cc.

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

◆ FindSuccessfulControlProjection()

Node * v8::internal::compiler::NodeProperties::FindSuccessfulControlProjection ( Node * node)
static

Definition at line 78 of file node-properties.cc.

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

◆ FirstContextIndex()

static int v8::internal::compiler::NodeProperties::FirstContextIndex ( Node * node)
inlinestatic

Definition at line 32 of file node-properties.h.

Here is the caller graph for this function:

◆ FirstControlIndex()

static int v8::internal::compiler::NodeProperties::FirstControlIndex ( Node * node)
inlinestatic

Definition at line 35 of file node-properties.h.

Here is the caller graph for this function:

◆ FirstEffectIndex()

static int v8::internal::compiler::NodeProperties::FirstEffectIndex ( Node * node)
inlinestatic

Definition at line 34 of file node-properties.h.

Here is the caller graph for this function:

◆ FirstFrameStateIndex()

static int v8::internal::compiler::NodeProperties::FirstFrameStateIndex ( Node * node)
inlinestatic

Definition at line 33 of file node-properties.h.

Here is the caller graph for this function:

◆ FirstValueIndex()

static int v8::internal::compiler::NodeProperties::FirstValueIndex ( const Node * node)
inlinestatic

Definition at line 31 of file node-properties.h.

Here is the caller graph for this function:

◆ GetContextInput()

static Node * v8::internal::compiler::NodeProperties::GetContextInput ( Node * node)
inlinestatic

Definition at line 74 of file node-properties.h.

Here is the caller graph for this function:

◆ GetControlInput()

static Node * v8::internal::compiler::NodeProperties::GetControlInput ( Node * node,
int index = 0 )
inlinestatic

Definition at line 90 of file node-properties.h.

◆ GetEffectInput()

static Node * v8::internal::compiler::NodeProperties::GetEffectInput ( Node * node,
int index = 0 )
inlinestatic

Definition at line 84 of file node-properties.h.

◆ GetFrameStateInput()

static Node * v8::internal::compiler::NodeProperties::GetFrameStateInput ( Node * node)
inlinestatic

Definition at line 79 of file node-properties.h.

Here is the caller graph for this function:

◆ GetJSCreateMap()

OptionalMapRef v8::internal::compiler::NodeProperties::GetJSCreateMap ( JSHeapBroker * broker,
Node * receiver )
static

Definition at line 382 of file node-properties.cc.

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

◆ GetOuterContext()

Node * v8::internal::compiler::NodeProperties::GetOuterContext ( Node * node,
size_t * depth )
static

Definition at line 632 of file node-properties.cc.

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

◆ GetProjectionType()

MachineRepresentation v8::internal::compiler::NodeProperties::GetProjectionType ( Node const * projection)
static

Definition at line 312 of file node-properties.cc.

Here is the call graph for this function:

◆ GetType()

static Type v8::internal::compiler::NodeProperties::GetType ( const Node * node)
inlinestatic

Definition at line 260 of file node-properties.h.

◆ GetTypeOrAny()

Type v8::internal::compiler::NodeProperties::GetTypeOrAny ( const Node * node)
static

Definition at line 643 of file node-properties.cc.

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

◆ GetValueInput() [1/2]

static const Node * v8::internal::compiler::NodeProperties::GetValueInput ( const Node * node,
int index )
inlinestatic

Definition at line 68 of file node-properties.h.

◆ GetValueInput() [2/2]

static Node * v8::internal::compiler::NodeProperties::GetValueInput ( Node * node,
int index )
inlinestatic

Definition at line 62 of file node-properties.h.

◆ HashCode()

size_t v8::internal::compiler::NodeProperties::HashCode ( Node * node)
static

Definition at line 664 of file node-properties.cc.

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

◆ InferMapsUnsafe()

NodeProperties::InferMapsResult v8::internal::compiler::NodeProperties::InferMapsUnsafe ( JSHeapBroker * broker,
Node * receiver,
Effect effect,
ZoneRefSet< Map > * maps_out )
static

Definition at line 406 of file node-properties.cc.

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

◆ IsCommon()

static bool v8::internal::compiler::NodeProperties::IsCommon ( Node * node)
inlinestatic

Definition at line 108 of file node-properties.h.

◆ IsConstant()

static bool v8::internal::compiler::NodeProperties::IsConstant ( Node * node)
inlinestatic

Definition at line 114 of file node-properties.h.

Here is the caller graph for this function:

◆ IsContextEdge()

bool v8::internal::compiler::NodeProperties::IsContextEdge ( Edge edge)
static

Definition at line 33 of file node-properties.cc.

Here is the call graph for this function:

◆ IsControl()

static bool v8::internal::compiler::NodeProperties::IsControl ( Node * node)
inlinestatic

Definition at line 111 of file node-properties.h.

Here is the caller graph for this function:

◆ IsControlEdge()

bool v8::internal::compiler::NodeProperties::IsControlEdge ( Edge edge)
static

Definition at line 57 of file node-properties.cc.

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

◆ IsEffectEdge()

bool v8::internal::compiler::NodeProperties::IsEffectEdge ( Edge edge)
static

Definition at line 49 of file node-properties.cc.

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

◆ IsExceptionalCall()

bool v8::internal::compiler::NodeProperties::IsExceptionalCall ( Node * node,
Node ** out_exception = nullptr )
static

Definition at line 65 of file node-properties.cc.

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

◆ IsFrameStateEdge()

bool v8::internal::compiler::NodeProperties::IsFrameStateEdge ( Edge edge)
static

Definition at line 41 of file node-properties.cc.

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

◆ IsInputRange()

bool v8::internal::compiler::NodeProperties::IsInputRange ( Edge edge,
int first,
int count )
inlinestaticprivate

Definition at line 657 of file node-properties.cc.

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

◆ IsPhi()

static bool v8::internal::compiler::NodeProperties::IsPhi ( Node * node)
inlinestatic

Definition at line 117 of file node-properties.h.

Here is the caller graph for this function:

◆ IsSame()

bool v8::internal::compiler::NodeProperties::IsSame ( Node * a,
Node * b )
static

Definition at line 365 of file node-properties.cc.

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

◆ IsTyped()

static bool v8::internal::compiler::NodeProperties::IsTyped ( const Node * node)
inlinestatic

Definition at line 259 of file node-properties.h.

Here is the caller graph for this function:

◆ IsValueEdge()

bool v8::internal::compiler::NodeProperties::IsValueEdge ( Edge edge)
static

Definition at line 25 of file node-properties.cc.

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

◆ IsValueIdentity()

static bool v8::internal::compiler::NodeProperties::IsValueIdentity ( Node * node,
Node ** out_value )
inlinestatic

Definition at line 137 of file node-properties.h.

Here is the caller graph for this function:

◆ MergeControlToEnd()

void v8::internal::compiler::NodeProperties::MergeControlToEnd ( TFGraph * graph,
CommonOperatorBuilder * common,
Node * node )
static

Definition at line 152 of file node-properties.cc.

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

◆ NoObservableSideEffectBetween()

bool v8::internal::compiler::NodeProperties::NoObservableSideEffectBetween ( Node * effect,
Node * dominator )
static

Definition at line 562 of file node-properties.cc.

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

◆ PastContextIndex()

static int v8::internal::compiler::NodeProperties::PastContextIndex ( Node * node)
inlinestatic

Definition at line 41 of file node-properties.h.

Here is the caller graph for this function:

◆ PastControlIndex()

static int v8::internal::compiler::NodeProperties::PastControlIndex ( Node * node)
inlinestatic

Definition at line 55 of file node-properties.h.

Here is the caller graph for this function:

◆ PastEffectIndex()

static int v8::internal::compiler::NodeProperties::PastEffectIndex ( Node * node)
inlinestatic

Definition at line 51 of file node-properties.h.

◆ PastFrameStateIndex()

static int v8::internal::compiler::NodeProperties::PastFrameStateIndex ( Node * node)
inlinestatic

Definition at line 46 of file node-properties.h.

◆ PastValueIndex()

static int v8::internal::compiler::NodeProperties::PastValueIndex ( Node * node)
inlinestatic

Definition at line 37 of file node-properties.h.

Here is the caller graph for this function:

◆ RemoveControlFromEnd()

void v8::internal::compiler::NodeProperties::RemoveControlFromEnd ( TFGraph * graph,
CommonOperatorBuilder * common,
Node * node )
static

Definition at line 159 of file node-properties.cc.

Here is the call graph for this function:

◆ RemoveNonValueInputs()

void v8::internal::compiler::NodeProperties::RemoveNonValueInputs ( Node * node)
static

Definition at line 139 of file node-properties.cc.

Here is the caller graph for this function:

◆ RemoveType()

static void v8::internal::compiler::NodeProperties::RemoveType ( Node * node)
inlinestatic

Definition at line 269 of file node-properties.h.

Here is the caller graph for this function:

◆ RemoveValueInputs()

void v8::internal::compiler::NodeProperties::RemoveValueInputs ( Node * node)
static

Definition at line 145 of file node-properties.cc.

◆ ReplaceContextInput()

void v8::internal::compiler::NodeProperties::ReplaceContextInput ( Node * node,
Node * context )
static

Definition at line 110 of file node-properties.cc.

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

◆ ReplaceControlInput()

void v8::internal::compiler::NodeProperties::ReplaceControlInput ( Node * node,
Node * control,
int index = 0 )
static

Definition at line 117 of file node-properties.cc.

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

◆ ReplaceEffectInput()

void v8::internal::compiler::NodeProperties::ReplaceEffectInput ( Node * node,
Node * effect,
int index = 0 )
static

Definition at line 125 of file node-properties.cc.

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

◆ ReplaceFrameStateInput()

void v8::internal::compiler::NodeProperties::ReplaceFrameStateInput ( Node * node,
Node * frame_state )
static

Definition at line 133 of file node-properties.cc.

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

◆ ReplaceUses()

void v8::internal::compiler::NodeProperties::ReplaceUses ( Node * node,
Node * value,
Node * effect = nullptr,
Node * success = nullptr,
Node * exception = nullptr )
static

Definition at line 176 of file node-properties.cc.

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

◆ ReplaceValueInput()

void v8::internal::compiler::NodeProperties::ReplaceValueInput ( Node * node,
Node * value,
int index )
static

Definition at line 91 of file node-properties.cc.

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

◆ ReplaceValueInputs()

void v8::internal::compiler::NodeProperties::ReplaceValueInputs ( Node * node,
Node * value )
static

Definition at line 99 of file node-properties.cc.

Here is the caller graph for this function:

◆ SetType()

static void v8::internal::compiler::NodeProperties::SetType ( Node * node,
Type type )
inlinestatic

Definition at line 265 of file node-properties.h.

Here is the caller graph for this function:

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