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

#include <map-inference.h>

Collaboration diagram for v8::internal::compiler::MapInference:

Public Member Functions

 MapInference (JSHeapBroker *broker, Node *object, Effect effect)
 
 ~MapInference ()
 
V8_WARN_UNUSED_RESULT bool HaveMaps () const
 
V8_WARN_UNUSED_RESULT bool AllOfInstanceTypesAreJSReceiver () const
 
V8_WARN_UNUSED_RESULT bool AllOfInstanceTypesAre (InstanceType type) const
 
V8_WARN_UNUSED_RESULT bool AnyOfInstanceTypesAre (InstanceType type) const
 
V8_WARN_UNUSED_RESULT ZoneRefSet< Map > const & GetMaps ()
 
V8_WARN_UNUSED_RESULT bool AllOfInstanceTypes (std::function< bool(InstanceType)> f)
 
V8_WARN_UNUSED_RESULT bool Is (MapRef expected_map)
 
V8_WARN_UNUSED_RESULT bool RelyOnMapsViaStability (CompilationDependencies *dependencies)
 
bool RelyOnMapsPreferStability (CompilationDependencies *dependencies, JSGraph *jsgraph, Effect *effect, Control control, const FeedbackSource &feedback)
 
void InsertMapChecks (JSGraph *jsgraph, Effect *effect, Control control, const FeedbackSource &feedback)
 
V8_WARN_UNUSED_RESULT Reduction NoChange ()
 

Private Types

enum  { kReliableOrGuarded , kUnreliableDontNeedGuard , kUnreliableNeedGuard }
 

Private Member Functions

bool Safe () const
 
void SetNeedGuardIfUnreliable ()
 
void SetGuarded ()
 
V8_WARN_UNUSED_RESULT bool AllOfInstanceTypesUnsafe (std::function< bool(InstanceType)> f) const
 
V8_WARN_UNUSED_RESULT bool AnyOfInstanceTypesUnsafe (std::function< bool(InstanceType)> f) const
 
V8_WARN_UNUSED_RESULT bool RelyOnMapsHelper (CompilationDependencies *dependencies, JSGraph *jsgraph, Effect *effect, Control control, const FeedbackSource &feedback)
 

Private Attributes

JSHeapBroker *const broker_
 
Node *const object_
 
ZoneRefSet< Mapmaps_
 
enum v8::internal::compiler::MapInference:: { ... }  maps_state_
 

Detailed Description

Definition at line 33 of file map-inference.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
kReliableOrGuarded 
kUnreliableDontNeedGuard 
kUnreliableNeedGuard 

Definition at line 85 of file map-inference.h.

Constructor & Destructor Documentation

◆ MapInference()

v8::internal::compiler::MapInference::MapInference ( JSHeapBroker * broker,
Node * object,
Effect effect )

Definition at line 17 of file map-inference.cc.

Here is the call graph for this function:

◆ ~MapInference()

v8::internal::compiler::MapInference::~MapInference ( )

Definition at line 27 of file map-inference.cc.

Here is the call graph for this function:

Member Function Documentation

◆ AllOfInstanceTypes()

bool v8::internal::compiler::MapInference::AllOfInstanceTypes ( std::function< bool(InstanceType)> f)

Definition at line 59 of file map-inference.cc.

Here is the call graph for this function:

◆ AllOfInstanceTypesAre()

bool v8::internal::compiler::MapInference::AllOfInstanceTypesAre ( InstanceType type) const

Definition at line 47 of file map-inference.cc.

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

◆ AllOfInstanceTypesAreJSReceiver()

bool v8::internal::compiler::MapInference::AllOfInstanceTypesAreJSReceiver ( ) const

Definition at line 42 of file map-inference.cc.

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

◆ AllOfInstanceTypesUnsafe()

bool v8::internal::compiler::MapInference::AllOfInstanceTypesUnsafe ( std::function< bool(InstanceType)> f) const
private

Definition at line 64 of file map-inference.cc.

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

◆ AnyOfInstanceTypesAre()

bool v8::internal::compiler::MapInference::AnyOfInstanceTypesAre ( InstanceType type) const

Definition at line 53 of file map-inference.cc.

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

◆ AnyOfInstanceTypesUnsafe()

bool v8::internal::compiler::MapInference::AnyOfInstanceTypesUnsafe ( std::function< bool(InstanceType)> f) const
private

Definition at line 72 of file map-inference.cc.

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

◆ GetMaps()

ZoneRefSet< Map > const & v8::internal::compiler::MapInference::GetMaps ( )

Definition at line 81 of file map-inference.cc.

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

◆ HaveMaps()

bool v8::internal::compiler::MapInference::HaveMaps ( ) const

Definition at line 40 of file map-inference.cc.

Here is the caller graph for this function:

◆ InsertMapChecks()

void v8::internal::compiler::MapInference::InsertMapChecks ( JSGraph * jsgraph,
Effect * effect,
Control control,
const FeedbackSource & feedback )

Definition at line 92 of file map-inference.cc.

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

◆ Is()

bool v8::internal::compiler::MapInference::Is ( MapRef expected_map)

Definition at line 86 of file map-inference.cc.

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

◆ NoChange()

Reduction v8::internal::compiler::MapInference::NoChange ( )

Definition at line 141 of file map-inference.cc.

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

◆ RelyOnMapsHelper()

bool v8::internal::compiler::MapInference::RelyOnMapsHelper ( CompilationDependencies * dependencies,
JSGraph * jsgraph,
Effect * effect,
Control control,
const FeedbackSource & feedback )
private

Definition at line 119 of file map-inference.cc.

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

◆ RelyOnMapsPreferStability()

bool v8::internal::compiler::MapInference::RelyOnMapsPreferStability ( CompilationDependencies * dependencies,
JSGraph * jsgraph,
Effect * effect,
Control control,
const FeedbackSource & feedback )

Definition at line 109 of file map-inference.cc.

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

◆ RelyOnMapsViaStability()

bool v8::internal::compiler::MapInference::RelyOnMapsViaStability ( CompilationDependencies * dependencies)

Definition at line 103 of file map-inference.cc.

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

◆ Safe()

bool v8::internal::compiler::MapInference::Safe ( ) const
private

Definition at line 29 of file map-inference.cc.

Here is the caller graph for this function:

◆ SetGuarded()

void v8::internal::compiler::MapInference::SetGuarded ( )
private

Definition at line 38 of file map-inference.cc.

Here is the caller graph for this function:

◆ SetNeedGuardIfUnreliable()

void v8::internal::compiler::MapInference::SetNeedGuardIfUnreliable ( )
private

Definition at line 31 of file map-inference.cc.

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

Member Data Documentation

◆ broker_

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

Definition at line 81 of file map-inference.h.

◆ maps_

ZoneRefSet<Map> v8::internal::compiler::MapInference::maps_
private

Definition at line 84 of file map-inference.h.

◆ []

enum { ... } v8::internal::compiler::MapInference::maps_state_

◆ object_

Node* const v8::internal::compiler::MapInference::object_
private

Definition at line 82 of file map-inference.h.


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