/arkcompiler/ets_runtime/ecmascript/ |
H A D | elements.h | 39 enum class ElementsKind : uint8_t { class 58 static CMap<ElementsKind, std::pair<ConstantIndex, ConstantIndex>> InitializeHClassMap(); 60 static std::string GetString(ElementsKind kind); 61 static bool IsInt(ElementsKind kind); 62 static bool IsNumber(ElementsKind kind); 63 static bool IsTagged(ElementsKind kind); 64 static bool IsObject(ElementsKind kind); 65 static bool IsHole(ElementsKind kind); 66 static bool IsGeneric(ElementsKind kind) in IsGeneric() 68 return kind == ElementsKind in IsGeneric() [all...] |
H A D | elements.cpp | 21 CMap<ElementsKind, std::pair<ConstantIndex, ConstantIndex>> Elements::InitializeHClassMap() in InitializeHClassMap() 23 CMap<ElementsKind, std::pair<ConstantIndex, ConstantIndex>> result; in InitializeHClassMap() 25 result.emplace(ElementsKind::name, std::make_pair(ConstantIndex::ELEMENT_##name##_HCLASS_INDEX, \ in InitializeHClassMap() 32 std::string Elements::GetString(ElementsKind kind) in GetString() 37 bool Elements::IsInt(ElementsKind kind) in IsInt() 39 return kind == ElementsKind::INT; in IsInt() 42 bool Elements::IsNumber(ElementsKind kind) in IsNumber() 44 return kind == ElementsKind::NUMBER; in IsNumber() 47 bool Elements::IsTagged(ElementsKind kind) in IsTagged() 49 return kind == ElementsKind in IsTagged() [all...] |
H A D | element_accessor.cpp | 26 ElementsKind kind = receiver->GetClass()->GetElementsKind(); in Get() 28 kind = ElementsKind::GENERIC; in Get() 42 ElementsKind kind = receiver->GetClass()->GetElementsKind(); in Get() 44 kind = ElementsKind::GENERIC; in Get() 54 JSTaggedValue ElementAccessor::FastGet(JSHandle<TaggedArray> elements, uint32_t idx, ElementsKind kind) in FastGet() 87 JSTaggedValue ElementAccessor::GetTaggedValueWithElementsKind(JSTaggedType rawValue, ElementsKind kind) in GetTaggedValueWithElementsKind() 94 case ElementsKind::INT: in GetTaggedValueWithElementsKind() 95 case ElementsKind::HOLE_INT: in GetTaggedValueWithElementsKind() 98 case ElementsKind::NUMBER: in GetTaggedValueWithElementsKind() 99 case ElementsKind in GetTaggedValueWithElementsKind() [all...] |
H A D | element_accessor-inl.h | 30 const JSHandle<T> &value, bool needTransition, ElementsKind extraKind) in Set() 33 ElementsKind oldKind = receiver->GetClass()->GetElementsKind(); in Set() 36 ElementsKind newKind = receiver->GetClass()->GetElementsKind(); in Set() 45 ElementsKind kind = receiver->GetClass()->GetElementsKind(); in Set() 47 kind = ElementsKind::GENERIC; in Set() 61 const JSHandle<T> &value, ElementsKind kind) in FastSet() 67 case ElementsKind::INT: in FastSet() 71 case ElementsKind::NUMBER: in FastSet() 81 case ElementsKind::TAGGED: in FastSet() 89 LOG_ECMA(FATAL) << "Trying to Convert TaggedValue With Unknown ElementsKind"; in FastSet() [all...] |
H A D | element_accessor.h | 30 static JSTaggedValue PUBLIC_API FastGet(JSHandle<TaggedArray> elements, uint32_t idx, ElementsKind kind); 34 bool needTransition, ElementsKind extraKind = ElementsKind::NONE); 38 const JSHandle<T> &value, ElementsKind kind); 45 static JSTaggedValue GetTaggedValueWithElementsKind(JSTaggedType rawValue, ElementsKind kind); 51 static JSTaggedType PUBLIC_API ConvertTaggedValueWithElementsKind(JSTaggedValue rawValue, ElementsKind kind);
|
H A D | js_array.cpp | 104 JSHClass::TransitToElementsKind(thread, newArray, ElementsKind::GENERIC); in ArrayCreate() 106 JSHClass::TransitToElementsKind(thread, newArray, ElementsKind::HOLE); in ArrayCreate() 254 // Update ElementsKind after reset array length. in SetCapacity() 255 // Add this switch because we do not support ElementsKind for instance from new Array in SetCapacity() 257 ElementsKind oldKind = array->GetClass()->GetElementsKind(); in SetCapacity() 262 ElementsKind newKind = ElementsKind::GENERIC; in SetCapacity() 264 ElementsKind newKind = ElementsKind::NONE; in SetCapacity() 272 if (newKind == ElementsKind in SetCapacity() [all...] |
H A D | js_array.h | 159 FIRST_BIT_FIELD(BitField, ElementsKind, ElementsKind, ELEMENTS_KIND_BITS); 160 NEXT_BIT_FIELD(BitField, SpaceFlag, RegionSpaceFlag, SPACE_FALG_BITS, ElementsKind);
|
H A D | js_stable_array.cpp | 808 ElementsKind kind = ElementsKind::GENERIC; in FindRawData() 852 ElementsKind kind = ElementsKind::GENERIC; in FindLastRawData() 1130 ElementsKind kind = thisObjHandle->GetClass()->GetElementsKind(); 1134 if (kind == ElementsKind::INT || kind == ElementsKind::HOLE_INT) { 1135 return FastReverse(thread, elements, lower, len, ElementsKind::INT); 1136 } else if (kind == ElementsKind::NUMBER || kind == ElementsKind [all...] |
H A D | js_hclass.h | 390 using ElementsKindBits = IsPrototypeBit::NextField<ElementsKind, ELEMENTS_KIND_BITFIELD_NUM>; // 13-17 438 const ElementsKind kind, bool isPrototype); 474 const ElementsKind newKind); 476 const ElementsKind targetKind); 478 ElementsKind newKind); 480 ElementsKind newKind = ElementsKind::NONE); 483 ElementsKind kind = ElementsKind::NONE); 1784 inline void SetElementsKind(ElementsKind kin [all...] |
H A D | js_hclass.cpp | 144 SetElementsKind(ElementsKind::GENERIC); in InitializeWithDefaultValue() 240 const ElementsKind kind, bool isPrototype) in CloneWithElementsKind() 265 obj->GetJSHClass()->SetElementsKind(ElementsKind::DICTIONARY); in TransitionElementsToDictionary() 277 obj->GetJSHClass()->SetElementsKind(ElementsKind::HOLE_TAGGED); in OptimizeAsFastElements() 291 // Because we currently only supports Fast ElementsKind in AddProperty() 318 // Because we currently only supports Fast ElementsKind in AddProperty() 658 const ElementsKind targetKind) in IsInitialArrayHClassWithElementsKind() 675 ElementsKind newKind) in TransitToElementsKindUncheck() 677 ElementsKind current = obj->GetJSHClass()->GetElementsKind(); in TransitToElementsKindUncheck() 703 ElementsKind newKin in TransitToElementsKind() [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/ |
H A D | hcr_gate_meta_data.h | 96 void SetElementsKind(ElementsKind kind) in SetElementsKind() 101 ElementsKind GetElementsKind() const in GetElementsKind() 105 return ElementsKind::GENERIC; in GetElementsKind() 110 std::vector<ElementsKind> GetElementsKinds() const in GetElementsKinds() 115 void SetTransitionElementsKind(ElementsKind kind) in SetTransitionElementsKind() 120 ElementsKind GetTransitionElementsKind() const in GetTransitionElementsKind() 124 return ElementsKind::GENERIC; in GetTransitionElementsKind() 129 std::vector<ElementsKind> GetTransitionElementsKinds() const in GetTransitionElementsKinds() 176 std::vector<ElementsKind> elementsKinds_ {}; 177 std::vector<ElementsKind> transitionElementsKinds [all...] |
H A D | share_gate_meta_data.h | 505 explicit ArrayMetaDataAccessor(ElementsKind kind, Mode mode, in ArrayMetaDataAccessor() 517 ElementsKind GetElementsKind() const in GetElementsKind() 527 void SetElementsKind(ElementsKind kind) in SetElementsKind() 563 using ElementsKindBits = panda::BitField<ElementsKind, 0, BITS_SIZE>; 581 explicit CreateArgumentsAccessor(ElementsKind kind, Mode mode) in CreateArgumentsAccessor() 594 using ElementsKindBits = panda::BitField<ElementsKind, 0, BITS_SIZE>; 633 explicit BuiltinPrototypeHClassAccessor(BuiltinTypeId type, ElementsKind kind, in BuiltinPrototypeHClassAccessor() 642 ElementsKind GetElementsKind() const in GetElementsKind() 664 using ElementsKindBits = BuiltinTypeIdBits::NextField<ElementsKind, WORD_BITS_SIZE>;
|
H A D | ntype_bytecode_lowering.cpp | 204 ElementsKind kind = acc_.TryGetElementsKind(gate); in LowerNTypedCreateEmptyArray() 226 ElementsKind kind = acc_.TryGetElementsKind(gate); in LowerNTypedCreateArrayWithBuffer() 240 ElementsKind kind = acc_.TryGetElementsKind(gate); in LowerNTypedCopyRestArgs() 251 ElementsKind kind = acc_.TryGetElementsKind(gate); in LowerNTypedGetUnmappedArgs() 274 acc_.TrySetElementsKind(receiver, ElementsKind::HOLE); in LowerNTypedStownByIndex()
|
H A D | gate_accessor.h | 397 ElementsKind GetElementsKind(GateRef gate) const; 398 void SetElementsKind(GateRef gate, ElementsKind kind); 441 ElementsKind TryGetElementsKind(GateRef gate) const; 442 ElementsKind TryGetArrayElementsKind(GateRef gate) const; 443 ElementsKind TryGetArrayElementsKindAfterTransition(GateRef gate) const; 444 void TrySetElementsKind(GateRef gate, ElementsKind kind); 445 void TrySetTransitionElementsKind(GateRef gate, ElementsKind kind);
|
H A D | aot_compilation_env.h | 34 const CMap<ElementsKind, std::pair<ConstantIndex, ConstantIndex>> &GetArrayHClassIndexMap() const override;
|
H A D | gate_accessor.cpp | 213 ElementsKind GateAccessor::GetElementsKind(GateRef gate) const in GetElementsKind() 222 void GateAccessor::SetElementsKind(GateRef gate, ElementsKind kind) in SetElementsKind() 694 ElementsKind GateAccessor::TryGetElementsKind(GateRef gate) const in TryGetElementsKind() 701 return ElementsKind::GENERIC; in TryGetElementsKind() 705 ElementsKind GateAccessor::TryGetArrayElementsKind(GateRef gate) const in TryGetArrayElementsKind() 710 ElementsKind kind = gatePtr->GetJSBytecodeMetaData()->GetElementsKind(); in TryGetArrayElementsKind() 714 std::vector<ElementsKind> kinds = gatePtr->GetJSBytecodeMetaData()->GetElementsKinds(); in TryGetArrayElementsKind() 720 return ElementsKind::GENERIC; in TryGetArrayElementsKind() 723 ElementsKind GateAccessor::TryGetArrayElementsKindAfterTransition(GateRef gate) const in TryGetArrayElementsKindAfterTransition() 728 ElementsKind kin in TryGetArrayElementsKindAfterTransition() [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/pgo_type/ |
H A D | pgo_type_recorder.cpp | 45 std::vector<ElementsKind> PGOTypeRecorder::GetElementsKindsForUser(int32_t offset) const in GetElementsKindsForUser() 47 std::vector<ElementsKind> elementsKinds; in GetElementsKindsForUser() 49 elementsKinds.emplace_back(ElementsKind::GENERIC); in GetElementsKindsForUser() 55 elementsKinds.emplace_back(ElementsKind::GENERIC); in GetElementsKindsForUser() 70 std::vector<ElementsKind> PGOTypeRecorder::GetTransitionElementsKindsForUser(int32_t offset) const in GetTransitionElementsKindsForUser() 72 std::vector<ElementsKind> elementsKinds; in GetTransitionElementsKindsForUser() 74 elementsKinds.emplace_back(ElementsKind::GENERIC); in GetTransitionElementsKindsForUser() 80 elementsKinds.emplace_back(ElementsKind::GENERIC); in GetTransitionElementsKindsForUser() 95 ElementsKind PGOTypeRecorder::GetElementsKindForCreater(int32_t offset) const in GetElementsKindForCreater() 101 // When ElementsKind switc in GetElementsKindForCreater() [all...] |
H A D | pgo_type_manager.h | 68 ElementsKind QueryElementKind(ProfileType rootType); 79 inline ElementsKind GetElementsKindByLocation(PGOTypeLocation loc) in GetElementsKindByLocation() 85 return ElementsKind::GENERIC; in GetElementsKindByLocation() 93 inline void RecordLocationToElementsKind(PGOTypeLocation loc, ElementsKind kind) in RecordLocationToElementsKind() 177 CUnorderedMap<PGOTypeLocation, ElementsKind, HashPGOTypeLocation> locToElmsKindMap_ {};
|
H A D | pgo_type_recorder.h | 38 std::vector<ElementsKind> PUBLIC_API GetElementsKindsForUser(int32_t offset) const; 39 std::vector<ElementsKind> PUBLIC_API GetTransitionElementsKindsForUser(int32_t offset) const; 40 ElementsKind PUBLIC_API GetElementsKindForCreater(int32_t offset) const;
|
/arkcompiler/ets_runtime/ecmascript/pgo_profiler/types/ |
H A D | pgo_profile_type.h | 126 using OldElementsKindBits = BuiltinsIdBits::NextField<ElementsKind, OLD_ELEMENTS_KIND_BITFIELD_NUM>; 127 using NewElementsKindBits = OldElementsKindBits::NextField<ElementsKind, NEW_ELEMENTS_KIND_BITFIELD_NUM>; 132 BuiltinsArrayId UpdateElementsKind(ElementsKind kind) in UpdateElementsKind() 138 ElementsKind GetElementsKind() const in GetElementsKind() 143 BuiltinsArrayId UpdateTransitionElementsKind(ElementsKind kind) in UpdateTransitionElementsKind() 149 ElementsKind GetTransitionElementsKind() const in GetTransitionElementsKind() 235 static ProfileType CreateBuiltinsArray(ApEntityId abcId, JSType type, ElementsKind kind, in CreateBuiltinsArray() 236 ElementsKind transitionKind, bool everOutOfBounds) in CreateBuiltinsArray() 493 ElementsKind GetElementsKindBeforeTransition() const in GetElementsKindBeforeTransition() 500 ElementsKind GetElementsKindAfterTransitio [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/tests/ |
H A D | meta_data_equal_test.cpp | 34 using ecmascript::kungfu::ElementsKind; 150 static_cast<JSBytecodeMetaData *>(const_cast<GateMetaData *>(meta))->SetElementsKind(ElementsKind::NUMBER); in HWTEST_F_L0() 151 static_cast<JSBytecodeMetaData *>(const_cast<GateMetaData *>(meta2))->SetElementsKind(ElementsKind::NUMBER); in HWTEST_F_L0() 169 static_cast<JSBytecodeMetaData *>(const_cast<GateMetaData *>(meta))->SetElementsKind(ElementsKind::NUMBER); in HWTEST_F_L0() 170 static_cast<JSBytecodeMetaData *>(const_cast<GateMetaData *>(meta2))->SetElementsKind(ElementsKind::HOLE_NUMBER); in HWTEST_F_L0()
|
/arkcompiler/ets_runtime/ecmascript/builtins/ |
H A D | builtins_ark_tools.cpp | 551 ElementsKind kind = hclass->GetElementsKind(); in GetElementsKind() 796 ElementsKind kind = JSHandle<JSObject>::Cast(arg)->GetClass()->GetElementsKind(); in TestElementsKind() 811 CHECK(isDict == (obj->GetClass()->GetElementsKind() == ElementsKind::DICTIONARY)); in HasDictionaryElements() 817 return TestElementsKind(info, [](ElementsKind kind) { in HasHoleyElements() 818 return (helpers::ToUnderlying(kind) & helpers::ToUnderlying(ElementsKind::HOLE)) != 0; in HasHoleyElements() 824 return TestElementsKind(info, [](ElementsKind kind) { in HasSmiElements() 825 return kind == ElementsKind::INT || kind == ElementsKind::HOLE_INT; in HasSmiElements() 831 return TestElementsKind(info, [](ElementsKind kind) { 832 return kind == ElementsKind [all...] |
/arkcompiler/ets_runtime/ecmascript/jspandafile/ |
H A D | literal_data_extractor.h | 50 ElementsKind *newKind = nullptr, JSHandle<JSTaggedValue> sendableEnv = JSHandle<JSTaggedValue>(), 55 ElementsKind *newKind = nullptr, JSHandle<JSTaggedValue> sendableEnv = JSHandle<JSTaggedValue>(),
|
H A D | program_object.h | 604 ElementsKind dataKind = ElementsKind::GENERIC; in GetLiteralFromCache() 606 ElementsKind dataKind = ElementsKind::NONE; in GetLiteralFromCache() 617 // for all JSArray, the initial ElementsKind should be NONE in GetLiteralFromCache() 624 ElementsKind oldKind = arr->GetClass()->GetElementsKind(); in GetLiteralFromCache() 626 ElementsKind newKind = arr->GetClass()->GetElementsKind(); in GetLiteralFromCache()
|
/arkcompiler/ets_runtime/ecmascript/compiler/builtins/ |
H A D | builtins_array_stub_builder.cpp | 37 GateRef notGeneric = NotEqual(elementsKind, Int32(static_cast<uint32_t>(ElementsKind::GENERIC))); in ElementsKindHclassCompare() 133 Int32(static_cast<uint32_t>(ElementsKind::NONE))); in With() 145 Int32(static_cast<uint32_t>(ElementsKind::NONE))); in With() 151 Int32(static_cast<uint32_t>(ElementsKind::NONE))); in With() 227 .And(Int32GreaterThanOrEqual(kind, Int32(static_cast<int32_t>(ElementsKind::INT)))) in Unshift() 228 .And(Int32LessThanOrEqual(kind, Int32(static_cast<int32_t>(ElementsKind::HOLE_INT)))) in Unshift() 231 .And(Int32GreaterThanOrEqual(kind, Int32(static_cast<int32_t>(ElementsKind::NUMBER)))) in Unshift() 232 .And(Int32LessThanOrEqual(kind, Int32(static_cast<int32_t>(ElementsKind::HOLE_NUMBER)))) in Unshift() 252 Int32(static_cast<uint32_t>(ElementsKind::NONE))); in Unshift() 260 Int32(static_cast<uint32_t>(ElementsKind in Unshift() [all...] |