v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <property-details.h>
Public Types | |
enum | Kind { kNone, kInteger8, kUInteger8, kInteger16, kUInteger16, kSmi, kInteger32, kDouble, kHeapObject, kTagged, kExternal, kNumRepresentations } |
Public Member Functions | |
Representation () | |
bool | Equals (const Representation &other) const |
bool | IsCompatibleForLoad (const Representation &other) const |
bool | IsCompatibleForStore (const Representation &other) const |
bool | is_more_general_than (const Representation &other) const |
bool | fits_into (const Representation &other) const |
bool | CanContainDouble (double value) |
Representation | generalize (Representation other) |
int | size () const |
Kind | kind () const |
bool | IsNone () const |
bool | IsInteger8 () const |
bool | IsUInteger8 () const |
bool | IsInteger16 () const |
bool | IsUInteger16 () const |
bool | IsTagged () const |
bool | IsSmi () const |
bool | IsSmiOrTagged () const |
bool | IsInteger32 () const |
bool | IsSmiOrInteger32 () const |
bool | IsDouble () const |
bool | IsHeapObject () const |
bool | IsExternal () const |
bool | IsSpecialization () const |
const char * | Mnemonic () const |
Static Public Member Functions | |
static Representation | None () |
static Representation | Tagged () |
static Representation | Integer8 () |
static Representation | UInteger8 () |
static Representation | Integer16 () |
static Representation | UInteger16 () |
static Representation | Smi () |
static Representation | Integer32 () |
static Representation | Double () |
static Representation | HeapObject () |
static Representation | External () |
static Representation | FromKind (Kind kind) |
static Representation | FromType (Type *type) |
Definition at line 86 of file property-details.h.
enum Kind |
Enumerator | |
---|---|
kNone | |
kInteger8 | |
kUInteger8 | |
kInteger16 | |
kUInteger16 | |
kSmi | |
kInteger32 | |
kDouble | |
kHeapObject | |
kTagged | |
kExternal | |
kNumRepresentations |
Definition at line 88 of file property-details.h.
|
inline |
Definition at line 103 of file property-details.h.
Referenced by Representation::Double(), Representation::External(), Representation::FromKind(), Representation::HeapObject(), Representation::Integer16(), Representation::Integer32(), Representation::Integer8(), Representation::None(), Representation::Smi(), Representation::Tagged(), Representation::UInteger16(), and Representation::UInteger8().
|
inline |
Definition at line 38 of file property-details-inl.h.
References Representation::Double(), Representation::is_more_general_than(), Representation::IsDouble(), Representation::IsInteger32(), Representation::IsSmi(), and Smi::IsValid().
|
inlinestatic |
Definition at line 113 of file property-details.h.
References Representation::kDouble, and Representation::Representation().
Referenced by Representation::CanContainDouble(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForHeapNumberValue(), Representation::FromType(), HCompareNumericAndBranch::InferRepresentation(), HValue::KnownOptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::KnownOptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::observed_input_representation(), Object::OptimalRepresentation(), LoadFieldStub::representation(), V8_FINAL< kOperandKind, kNumCachedOperands >::RepresentationFromInputs(), HValue::RepresentationFromUses(), V8_FINAL< kOperandKind, kNumCachedOperands >::RequiredInputRepresentation(), HInferRepresentationPhase::Run(), and TEST().
|
inline |
Definition at line 121 of file property-details.h.
Referenced by HValue::Equals(), Representation::fits_into(), Map::GeneralizeRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::HChange(), Representation::IsCompatibleForStore(), JSObject::PrintInstanceMigration(), HLoadEliminationTable::Process(), HValue::RepresentationFromUseRequirements(), and HRangeAnalysisPhase::Run().
|
inlinestatic |
Definition at line 115 of file property-details.h.
References Representation::kExternal, and Representation::Representation().
Referenced by V8_FINAL< kOperandKind, kNumCachedOperands >::ForExternalArrayExternalPointer(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForJSArrayBufferBackingStore(), V8_FINAL< kOperandKind, kNumCachedOperands >::KnownOptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::RequiredInputRepresentation(), and TEST().
|
inline |
Definition at line 147 of file property-details.h.
References Representation::Equals(), and Representation::is_more_general_than().
Referenced by Representation::generalize(), and Map::GeneralizeRepresentation().
|
inlinestatic |
Definition at line 117 of file property-details.h.
References Representation::Representation().
Referenced by BASE_EMBEDDED< Visitor >::DecodeRepresentation(), StoreGlobalStub::representation(), and V8_FINAL< kOperandKind, kNumCachedOperands >::representation().
|
static |
Definition at line 570 of file types.cc.
References Representation::Double(), Representation::Integer32(), TypeImpl< class >::Is(), Representation::None(), v8::None, Representation::Smi(), and Representation::Tagged().
Referenced by HGraphBuilder::BuildBinaryOperation().
|
inline |
Definition at line 153 of file property-details.h.
References Representation::fits_into(), Representation::is_more_general_than(), and Representation::Tagged().
Referenced by Map::GeneralizeRepresentation(), HCompareNumericAndBranch::InferRepresentation(), DescriptorArray::Merge(), HBinaryOperation::RepresentationFromInputs(), V8_FINAL< kOperandKind, kNumCachedOperands >::RepresentationFromInputs(), and HValue::RepresentationFromUseRequirements().
|
inlinestatic |
Definition at line 114 of file property-details.h.
References Representation::kHeapObject, and Representation::Representation().
Referenced by Object::OptimalRepresentation(), and TEST().
|
inlinestatic |
Definition at line 109 of file property-details.h.
References Representation::kInteger16, and Representation::Representation().
Referenced by TEST().
|
inlinestatic |
Definition at line 112 of file property-details.h.
References Representation::kInteger32, and Representation::Representation().
Referenced by CodeStubGraphBuilderBase::BuildGraph(), HGraphBuilder::EnforceNumberType(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForCounter(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForHeapNumberValueHighestBits(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForHeapNumberValueLowestBits(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForStringHashField(), Representation::FromType(), HValue::InferRepresentation(), HBinaryOperation::InferRepresentation(), HBitwiseBinaryOperation::initialize_output_representation(), ArrayInstructionInterface::KeyedAccessIndexRequirement(), V8_FINAL< kOperandKind, kNumCachedOperands >::KnownOptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::NewImul(), HBitwiseBinaryOperation::observed_input_representation(), V8_FINAL< kOperandKind, kNumCachedOperands >::observed_input_representation(), HValue::RepresentationFromUseRequirements(), HValue::RepresentationFromUses(), V8_FINAL< kOperandKind, kNumCachedOperands >::RequiredInputRepresentation(), TEST(), LCodeGen::ToInteger32(), HBinaryOperation::UpdateRepresentation(), HBitwiseBinaryOperation::UpdateRepresentation(), and V8_FINAL< kOperandKind, kNumCachedOperands >::UpdateRepresentation().
|
inlinestatic |
Definition at line 107 of file property-details.h.
References Representation::kInteger8, and Representation::Representation().
Referenced by TEST().
|
inline |
Definition at line 134 of file property-details.h.
References ASSERT, Representation::IsHeapObject(), Representation::IsNone(), Representation::kExternal, Representation::kInteger16, Representation::kInteger8, Representation::kNone, Representation::kUInteger16, and Representation::kUInteger8.
Referenced by Representation::CanContainDouble(), Representation::fits_into(), Representation::generalize(), HBinaryOperation::RepresentationFromOutput(), TestPairNegative(), TestPairPositive(), and HValue::UpdateRepresentation().
|
inline |
Definition at line 125 of file property-details.h.
References Representation::IsDouble().
|
inline |
Definition at line 130 of file property-details.h.
References Representation::Equals().
|
inline |
Definition at line 184 of file property-details.h.
References Representation::kDouble.
Referenced by Object::AllocateNewStorageFor(), CodeStubGraphBuilderBase::BuildLoadNamedField(), Representation::CanContainDouble(), LCodeGen::EmitLoadDoubleRegister(), LCodeGen::EmitLoadRegister(), Object::FitsRepresentation(), Map::GeneralizeRepresentation(), HCompareNumericAndBranch::InferRepresentation(), LoadFieldStub::Initialize(), HBitwiseBinaryOperation::initialize_output_representation(), Representation::IsCompatibleForLoad(), Representation::IsSpecialization(), HBitwiseBinaryOperation::observed_input_representation(), LCodeGen::ToOperand(), and V8_FINAL< kOperandKind, kNumCachedOperands >::ToStringOrToNumberCanBeObserved().
|
inline |
Definition at line 186 of file property-details.h.
References Representation::kExternal.
|
inline |
Definition at line 185 of file property-details.h.
References Representation::kHeapObject.
Referenced by Object::FitsRepresentation(), Representation::is_more_general_than(), and HValue::IsHeapObject().
|
inline |
Definition at line 177 of file property-details.h.
References Representation::kInteger16.
Referenced by Representation::IsSpecialization(), and Representation::size().
|
inline |
Definition at line 182 of file property-details.h.
References Representation::kInteger32.
Referenced by Representation::CanContainDouble(), LCodeGen::EmitLoadDoubleRegister(), LCodeGen::EmitLoadRegister(), Representation::IsSmiOrInteger32(), Representation::IsSpecialization(), ArrayInstructionInterface::KeyedAccessIndexRequirement(), HValue::RepresentationFromUseRequirements(), HCanonicalizePhase::Run(), HUint32AnalysisPhase::Run(), Representation::size(), LCodeGen::ToOperand(), and LCodeGen::ToRepresentation().
|
inline |
Definition at line 175 of file property-details.h.
References Representation::kInteger8.
Referenced by Representation::IsSpecialization(), and Representation::size().
|
inline |
Definition at line 174 of file property-details.h.
References Representation::kNone.
Referenced by Object::FitsRepresentation(), Map::GeneralizeRepresentation(), HValue::HasNonSmiUse(), V8_FINAL< kOperandKind, kNumCachedOperands >::HChange(), HBinaryOperation::InferRepresentation(), HCompareNumericAndBranch::InferRepresentation(), Representation::is_more_general_than(), HValue::RepresentationFromUseRequirements(), HValue::RepresentationFromUses(), HInferRepresentationPhase::Run(), HValue::set_representation(), DescriptorArray::SetRepresentation(), and Representation::size().
|
inline |
Definition at line 180 of file property-details.h.
References Representation::kSmi.
Referenced by Object::AllocateNewStorageFor(), HGraphBuilder::BuildBinaryOperation(), Representation::CanContainDouble(), Object::FitsRepresentation(), HValue::HasNonSmiUse(), V8_FINAL< kOperandKind, kNumCachedOperands >::HChange(), Representation::IsSmiOrInteger32(), Representation::IsSmiOrTagged(), Representation::IsSpecialization(), HRepresentationChangesPhase::Run(), HCanonicalizePhase::Run(), LCodeGen::ToOperand(), and HBinaryOperation::UpdateRepresentation().
|
inline |
Definition at line 183 of file property-details.h.
References Representation::IsInteger32(), and Representation::IsSmi().
Referenced by HCompareNumericAndBranch::InferRepresentation(), HRepresentationChangesPhase::Run(), HRangeAnalysisPhase::Run(), and V8_FINAL< kOperandKind, kNumCachedOperands >::ToStringOrToNumberCanBeObserved().
|
inline |
Definition at line 181 of file property-details.h.
References Representation::IsSmi(), and Representation::IsTagged().
Referenced by V8_FINAL< kOperandKind, kNumCachedOperands >::AddValue(), LCodeGen::EmitLoadRegister(), and LCodeGen::ToRepresentation().
|
inline |
Definition at line 187 of file property-details.h.
References Representation::IsDouble(), Representation::IsInteger16(), Representation::IsInteger32(), Representation::IsInteger8(), Representation::IsSmi(), Representation::IsUInteger16(), and Representation::IsUInteger8().
|
inline |
Definition at line 179 of file property-details.h.
References Representation::kTagged.
Referenced by HInferRepresentationPhase::AddToWorklist(), HGraphBuilder::BuildBinaryOperation(), HValue::ChangeRepresentation(), LCodeGen::EmitLoadDoubleRegister(), HValue::HasNonSmiUse(), V8_FINAL< kOperandKind, kNumCachedOperands >::HChange(), HCompareNumericAndBranch::InferRepresentation(), Representation::IsSmiOrTagged(), HValue::KnownOptimalRepresentation(), HBinaryOperation::RepresentationFromInputs(), V8_FINAL< kOperandKind, kNumCachedOperands >::RepresentationFromInputs(), LCodeGen::ToOperand(), and HValue::UpdateRepresentation().
|
inline |
Definition at line 178 of file property-details.h.
References Representation::kUInteger16.
Referenced by Representation::IsSpecialization(), and Representation::size().
|
inline |
Definition at line 176 of file property-details.h.
References Representation::kUInteger8.
Referenced by Representation::IsSpecialization(), and Representation::size().
|
inline |
Definition at line 173 of file property-details.h.
Referenced by BASE_EMBEDDED< Visitor >::EncodeRepresentation(), HValue::RepresentationFromUses(), and StoreGlobalStub::set_representation().
const char * Mnemonic | ( | ) | const |
Definition at line 2251 of file objects.cc.
References Representation::kDouble, Representation::kExternal, Representation::kHeapObject, Representation::kInteger32, Representation::kNone, Representation::kSmi, Representation::kTagged, v8::internal::NULL, and UNREACHABLE.
Referenced by Map::PrintGeneralization(), JSObject::PrintInstanceMigration(), HValue::PrintNameTo(), HValue::RepresentationFromUses(), and HValue::UpdateRepresentation().
|
inlinestatic |
Definition at line 105 of file property-details.h.
References Representation::kNone, and Representation::Representation().
Referenced by Representation::FromType(), HBinaryOperation::HBinaryOperation(), HCompareNumericAndBranch::InferRepresentation(), Runtime::InitializeIntrinsicFunctionNames(), HValue::KnownOptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::KnownOptimalRepresentation(), JSObject::MigrateInstance(), BASE_EMBEDDED< Visitor >::NotFound(), HValue::observed_input_representation(), V8_FINAL< kOperandKind, kNumCachedOperands >::observed_input_representation(), Object::OptimalRepresentation(), HBinaryOperation::RepresentationFromOutput(), HValue::RepresentationFromUseRequirements(), HValue::RepresentationFromUses(), V8_FINAL< kOperandKind, kNumCachedOperands >::RequiredInputRepresentation(), HDematerializedObject::RequiredInputRepresentation(), HIsConstructCallAndBranch::RequiredInputRepresentation(), TEST(), and BASE_EMBEDDED< Visitor >::TransitionResult().
|
inline |
Definition at line 159 of file property-details.h.
References ASSERT, Representation::IsInteger16(), Representation::IsInteger32(), Representation::IsInteger8(), Representation::IsNone(), Representation::IsUInteger16(), Representation::IsUInteger8(), and v8::internal::kPointerSize.
|
inlinestatic |
Definition at line 111 of file property-details.h.
References Representation::kSmi, and Representation::Representation().
Referenced by HGraphBuilder::EnforceNumberType(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForArrayLength(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForFixedArrayLength(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForStringLength(), Representation::FromType(), ArrayInstructionInterface::KeyedAccessIndexRequirement(), HValue::KnownOptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::KnownOptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::observed_input_representation(), Object::OptimalRepresentation(), V8_FINAL< kOperandKind, kNumCachedOperands >::RepresentationFromInputs(), HValue::RepresentationFromUses(), V8_FINAL< kOperandKind, kNumCachedOperands >::RequiredInputRepresentation(), and TEST().
|
inlinestatic |
Definition at line 106 of file property-details.h.
References Representation::kTagged, and Representation::Representation().
Referenced by CodeStubGraphBuilder< Stub >::BuildCodeStub(), CodeStubGraphBuilderBase::BuildGraph(), CodeStubGraphBuilderBase::BuildLoadNamedField(), Map::CopyGeneralizeAllRepresentations(), Map::CopyReplaceDescriptors(), V8_FINAL< kOperandKind, kNumCachedOperands >::CreateAndInsertBefore(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForAllocationSiteList(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForArrayLength(), Representation::FromType(), Representation::generalize(), HStringCompareAndBranch::GetInputRepresentation(), BASE_EMBEDDED< Visitor >::HandlerResult(), HCall< 2 >::HCall(), V8_FINAL< kOperandKind, kNumCachedOperands >::HCapturedObject(), V8_FINAL< kOperandKind, kNumCachedOperands >::HDummyUse(), V8_FINAL< kOperandKind, kNumCachedOperands >::HLoadContextSlot(), V8_FINAL< kOperandKind, kNumCachedOperands >::HLoadFieldByIndex(), HMaterializedLiteral< 1 >::HMaterializedLiteral(), BASE_EMBEDDED< Visitor >::InterceptorResult(), V8_FINAL< kOperandKind, kNumCachedOperands >::KnownOptimalRepresentation(), HBinaryOperation::observed_input_representation(), HCompareObjectEqAndBranch::observed_input_representation(), Object::OptimalRepresentation(), LoadFieldStub::representation(), HValue::RepresentationFromUses(), V8_FINAL< kOperandKind, kNumCachedOperands >::RequiredInputRepresentation(), HUnaryCall::RequiredInputRepresentation(), HBinaryCall::RequiredInputRepresentation(), HBinaryOperation::RequiredInputRepresentation(), HCompareObjectEqAndBranch::RequiredInputRepresentation(), HStringCompareAndBranch::RequiredInputRepresentation(), HInferRepresentationPhase::Run(), TEST(), and NameDictionary::TransformPropertiesToFastFor().
|
inlinestatic |
Definition at line 110 of file property-details.h.
References Representation::kUInteger16, and Representation::Representation().
Referenced by TEST().
|
inlinestatic |
Definition at line 108 of file property-details.h.
References Representation::kUInteger8, and Representation::Representation().
Referenced by V8_FINAL< kOperandKind, kNumCachedOperands >::ForMapInstanceSize(), V8_FINAL< kOperandKind, kNumCachedOperands >::ForMapInstanceType(), and TEST().