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

#include <maglev-ir.h>

Collaboration diagram for v8::internal::maglev::PolymorphicAccessInfo:

Public Types

enum  Kind {
  kNotFound , kConstant , kConstantDouble , kDataLoad ,
  kModuleExport , kStringLength
}
 

Public Member Functions

Kind kind () const
 
const ZoneVector< compiler::MapRef > & maps () const
 
DirectHandle< Objectconstant () const
 
double constant_double () const
 
DirectHandle< Cellcell () const
 
compiler::OptionalJSObjectRef holder () const
 
FieldIndex field_index () const
 
Representation field_representation () const
 
bool operator== (const PolymorphicAccessInfo &other) const
 
size_t hash_value () const
 

Static Public Member Functions

static PolymorphicAccessInfo NotFound (const ZoneVector< compiler::MapRef > &maps)
 
static PolymorphicAccessInfo Constant (const ZoneVector< compiler::MapRef > &maps, compiler::ObjectRef constant)
 
static PolymorphicAccessInfo ConstantDouble (const ZoneVector< compiler::MapRef > &maps, Float64 constant)
 
static PolymorphicAccessInfo DataLoad (const ZoneVector< compiler::MapRef > &maps, Representation representation, compiler::OptionalJSObjectRef holder, FieldIndex field_index)
 
static PolymorphicAccessInfo ModuleExport (const ZoneVector< compiler::MapRef > &maps, compiler::CellRef cell)
 
static PolymorphicAccessInfo StringLength (const ZoneVector< compiler::MapRef > &maps)
 

Private Member Functions

 PolymorphicAccessInfo (Kind kind, const ZoneVector< compiler::MapRef > &maps, Representation representation)
 
 PolymorphicAccessInfo (Kind kind, const ZoneVector< compiler::MapRef > &maps, Representation representation, compiler::ObjectRef constant)
 
 PolymorphicAccessInfo (Kind kind, const ZoneVector< compiler::MapRef > &maps, Float64 constant)
 
 PolymorphicAccessInfo (Kind kind, const ZoneVector< compiler::MapRef > &maps, Representation representation, compiler::OptionalJSObjectRef holder, FieldIndex field_index)
 

Private Attributes

const Kind kind_
 
const ZoneVector< compiler::MapRefmaps_
 
const Representation representation_
 
union { 
 
   const compiler::ObjectRef   constant_ 
 
   const Float64   constant_double_ 
 
   struct { 
 
      const compiler::OptionalJSObjectRef   holder_ 
 
      const FieldIndex   field_index_ 
 
   }   data_load_ 
 
};  
 

Detailed Description

Definition at line 7540 of file maglev-ir.h.

Member Enumeration Documentation

◆ Kind

Enumerator
kNotFound 
kConstant 
kConstantDouble 
kDataLoad 
kModuleExport 
kStringLength 

Definition at line 7542 of file maglev-ir.h.

Constructor & Destructor Documentation

◆ PolymorphicAccessInfo() [1/4]

v8::internal::maglev::PolymorphicAccessInfo::PolymorphicAccessInfo ( Kind kind,
const ZoneVector< compiler::MapRef > & maps,
Representation representation )
inlineexplicitprivate

Definition at line 7666 of file maglev-ir.h.

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

◆ PolymorphicAccessInfo() [2/4]

v8::internal::maglev::PolymorphicAccessInfo::PolymorphicAccessInfo ( Kind kind,
const ZoneVector< compiler::MapRef > & maps,
Representation representation,
compiler::ObjectRef constant )
inlineprivate

Definition at line 7673 of file maglev-ir.h.

Here is the call graph for this function:

◆ PolymorphicAccessInfo() [3/4]

v8::internal::maglev::PolymorphicAccessInfo::PolymorphicAccessInfo ( Kind kind,
const ZoneVector< compiler::MapRef > & maps,
Float64 constant )
inlineprivate

Definition at line 7683 of file maglev-ir.h.

Here is the call graph for this function:

◆ PolymorphicAccessInfo() [4/4]

v8::internal::maglev::PolymorphicAccessInfo::PolymorphicAccessInfo ( Kind kind,
const ZoneVector< compiler::MapRef > & maps,
Representation representation,
compiler::OptionalJSObjectRef holder,
FieldIndex field_index )
inlineprivate

Definition at line 7692 of file maglev-ir.h.

Here is the call graph for this function:

Member Function Documentation

◆ cell()

DirectHandle< Cell > v8::internal::maglev::PolymorphicAccessInfo::cell ( ) const
inline

Definition at line 7594 of file maglev-ir.h.

◆ Constant()

static PolymorphicAccessInfo v8::internal::maglev::PolymorphicAccessInfo::Constant ( const ZoneVector< compiler::MapRef > & maps,
compiler::ObjectRef constant )
inlinestatic

Definition at line 7555 of file maglev-ir.h.

Here is the call graph for this function:

◆ constant()

DirectHandle< Object > v8::internal::maglev::PolymorphicAccessInfo::constant ( ) const
inline

Definition at line 7584 of file maglev-ir.h.

◆ constant_double()

double v8::internal::maglev::PolymorphicAccessInfo::constant_double ( ) const
inline

Definition at line 7589 of file maglev-ir.h.

◆ ConstantDouble()

static PolymorphicAccessInfo v8::internal::maglev::PolymorphicAccessInfo::ConstantDouble ( const ZoneVector< compiler::MapRef > & maps,
Float64 constant )
inlinestatic

Definition at line 7560 of file maglev-ir.h.

Here is the call graph for this function:

◆ DataLoad()

static PolymorphicAccessInfo v8::internal::maglev::PolymorphicAccessInfo::DataLoad ( const ZoneVector< compiler::MapRef > & maps,
Representation representation,
compiler::OptionalJSObjectRef holder,
FieldIndex field_index )
inlinestatic

Definition at line 7564 of file maglev-ir.h.

Here is the call graph for this function:

◆ field_index()

FieldIndex v8::internal::maglev::PolymorphicAccessInfo::field_index ( ) const
inline

Definition at line 7604 of file maglev-ir.h.

Here is the caller graph for this function:

◆ field_representation()

Representation v8::internal::maglev::PolymorphicAccessInfo::field_representation ( ) const
inline

Definition at line 7609 of file maglev-ir.h.

◆ hash_value()

size_t v8::internal::maglev::PolymorphicAccessInfo::hash_value ( ) const
inline

Definition at line 7638 of file maglev-ir.h.

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

◆ holder()

compiler::OptionalJSObjectRef v8::internal::maglev::PolymorphicAccessInfo::holder ( ) const
inline

Definition at line 7599 of file maglev-ir.h.

Here is the caller graph for this function:

◆ kind()

Kind v8::internal::maglev::PolymorphicAccessInfo::kind ( ) const
inline

Definition at line 7580 of file maglev-ir.h.

Here is the caller graph for this function:

◆ maps()

const ZoneVector< compiler::MapRef > & v8::internal::maglev::PolymorphicAccessInfo::maps ( ) const
inline

Definition at line 7582 of file maglev-ir.h.

Here is the caller graph for this function:

◆ ModuleExport()

static PolymorphicAccessInfo v8::internal::maglev::PolymorphicAccessInfo::ModuleExport ( const ZoneVector< compiler::MapRef > & maps,
compiler::CellRef cell )
inlinestatic

Definition at line 7570 of file maglev-ir.h.

Here is the call graph for this function:

◆ NotFound()

static PolymorphicAccessInfo v8::internal::maglev::PolymorphicAccessInfo::NotFound ( const ZoneVector< compiler::MapRef > & maps)
inlinestatic

Definition at line 7551 of file maglev-ir.h.

Here is the call graph for this function:

◆ operator==()

bool v8::internal::maglev::PolymorphicAccessInfo::operator== ( const PolymorphicAccessInfo & other) const
inline

Definition at line 7611 of file maglev-ir.h.

◆ StringLength()

static PolymorphicAccessInfo v8::internal::maglev::PolymorphicAccessInfo::StringLength ( const ZoneVector< compiler::MapRef > & maps)
inlinestatic

Definition at line 7575 of file maglev-ir.h.

Here is the call graph for this function:

Member Data Documentation

◆ [union]

◆ constant_

const compiler::ObjectRef v8::internal::maglev::PolymorphicAccessInfo::constant_

Definition at line 7708 of file maglev-ir.h.

◆ constant_double_

const Float64 v8::internal::maglev::PolymorphicAccessInfo::constant_double_

Definition at line 7709 of file maglev-ir.h.

◆ [struct]

struct { ... } v8::internal::maglev::PolymorphicAccessInfo::data_load_

◆ field_index_

const FieldIndex v8::internal::maglev::PolymorphicAccessInfo::field_index_

Definition at line 7712 of file maglev-ir.h.

◆ holder_

const compiler::OptionalJSObjectRef v8::internal::maglev::PolymorphicAccessInfo::holder_

Definition at line 7711 of file maglev-ir.h.

◆ kind_

const Kind v8::internal::maglev::PolymorphicAccessInfo::kind_
private

Definition at line 7703 of file maglev-ir.h.

◆ maps_

const ZoneVector<compiler::MapRef> v8::internal::maglev::PolymorphicAccessInfo::maps_
private

Definition at line 7705 of file maglev-ir.h.

◆ representation_

const Representation v8::internal::maglev::PolymorphicAccessInfo::representation_
private

Definition at line 7706 of file maglev-ir.h.


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