Commit 1e0a4007 authored by Danylo Boiko's avatar Danylo Boiko Committed by V8 LUCI CQ

[turbofan] FieldAccess's builder/creator function saving

Bug: v8:7327
Change-Id: I4aececd931359785aa806f749dd27029f8ca4ebe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3840758
Commit-Queue: Danylo Boiko <danielboyko02@gmail.com>
Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82629}
parent b09b5f78
...@@ -23,7 +23,7 @@ namespace compiler { ...@@ -23,7 +23,7 @@ namespace compiler {
FieldAccess AccessBuilder::ForExternalIntPtr() { FieldAccess AccessBuilder::ForExternalIntPtr() {
FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(), FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(),
MaybeHandle<Map>(), Type::Any(), MachineType::IntPtr(), MaybeHandle<Map>(), Type::Any(), MachineType::IntPtr(),
kNoWriteBarrier}; kNoWriteBarrier, "ExternalIntPtr"};
return access; return access;
} }
...@@ -32,7 +32,7 @@ FieldAccess AccessBuilder::ForMap(WriteBarrierKind write_barrier) { ...@@ -32,7 +32,7 @@ FieldAccess AccessBuilder::ForMap(WriteBarrierKind write_barrier) {
FieldAccess access = {kTaggedBase, HeapObject::kMapOffset, FieldAccess access = {kTaggedBase, HeapObject::kMapOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::MapInHeader(), Type::OtherInternal(), MachineType::MapInHeader(),
write_barrier}; write_barrier, "Map"};
return access; return access;
} }
...@@ -41,7 +41,7 @@ FieldAccess AccessBuilder::ForHeapNumberValue() { ...@@ -41,7 +41,7 @@ FieldAccess AccessBuilder::ForHeapNumberValue() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, HeapNumber::kValueOffset, MaybeHandle<Name>(), kTaggedBase, HeapNumber::kValueOffset, MaybeHandle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kFloat64, MachineType::Float64(), MaybeHandle<Map>(), TypeCache::Get()->kFloat64, MachineType::Float64(),
kNoWriteBarrier}; kNoWriteBarrier, "HeapNumberValue"};
return access; return access;
} }
...@@ -50,7 +50,7 @@ FieldAccess AccessBuilder::ForBigIntBitfield() { ...@@ -50,7 +50,7 @@ FieldAccess AccessBuilder::ForBigIntBitfield() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, BigInt::kBitfieldOffset, MaybeHandle<Name>(), kTaggedBase, BigInt::kBitfieldOffset, MaybeHandle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Uint32(), MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Uint32(),
kNoWriteBarrier}; kNoWriteBarrier, "BigIntBitfield"};
return access; return access;
} }
...@@ -60,7 +60,7 @@ FieldAccess AccessBuilder::ForBigIntOptionalPadding() { ...@@ -60,7 +60,7 @@ FieldAccess AccessBuilder::ForBigIntOptionalPadding() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, BigInt::kOptionalPaddingOffset, MaybeHandle<Name>(), kTaggedBase, BigInt::kOptionalPaddingOffset, MaybeHandle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Uint32(), MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Uint32(),
kNoWriteBarrier}; kNoWriteBarrier, "BigIntOptionalPadding"};
return access; return access;
} }
...@@ -70,7 +70,7 @@ FieldAccess AccessBuilder::ForBigIntLeastSignificantDigit64() { ...@@ -70,7 +70,7 @@ FieldAccess AccessBuilder::ForBigIntLeastSignificantDigit64() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, BigInt::kDigitsOffset, MaybeHandle<Name>(), kTaggedBase, BigInt::kDigitsOffset, MaybeHandle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kBigUint64, MachineType::Uint64(), MaybeHandle<Map>(), TypeCache::Get()->kBigUint64, MachineType::Uint64(),
kNoWriteBarrier}; kNoWriteBarrier, "BigIntLeastSignificantDigit64"};
return access; return access;
} }
...@@ -79,7 +79,7 @@ FieldAccess AccessBuilder::ForJSObjectPropertiesOrHash() { ...@@ -79,7 +79,7 @@ FieldAccess AccessBuilder::ForJSObjectPropertiesOrHash() {
FieldAccess access = {kTaggedBase, JSObject::kPropertiesOrHashOffset, FieldAccess access = {kTaggedBase, JSObject::kPropertiesOrHashOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::AnyTagged(), Type::Any(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSObjectPropertiesOrHash"};
return access; return access;
} }
...@@ -88,16 +88,17 @@ FieldAccess AccessBuilder::ForJSObjectPropertiesOrHashKnownPointer() { ...@@ -88,16 +88,17 @@ FieldAccess AccessBuilder::ForJSObjectPropertiesOrHashKnownPointer() {
FieldAccess access = {kTaggedBase, JSObject::kPropertiesOrHashOffset, FieldAccess access = {kTaggedBase, JSObject::kPropertiesOrHashOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier,
"JSObjectPropertiesOrHashKnownPointer"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSObjectElements() { FieldAccess AccessBuilder::ForJSObjectElements() {
FieldAccess access = {kTaggedBase, JSObject::kElementsOffset, FieldAccess access = {kTaggedBase, JSObject::kElementsOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSObjectElements"};
return access; return access;
} }
...@@ -108,7 +109,7 @@ FieldAccess AccessBuilder::ForJSObjectInObjectProperty( ...@@ -108,7 +109,7 @@ FieldAccess AccessBuilder::ForJSObjectInObjectProperty(
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), machine_type, Type::NonInternal(), machine_type,
kFullWriteBarrier}; kFullWriteBarrier, "JSObjectInObjectProperty"};
return access; return access;
} }
...@@ -118,7 +119,7 @@ FieldAccess AccessBuilder::ForJSObjectOffset( ...@@ -118,7 +119,7 @@ FieldAccess AccessBuilder::ForJSObjectOffset(
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
write_barrier_kind}; write_barrier_kind, "JSObjectOffset"};
return access; return access;
} }
...@@ -127,7 +128,7 @@ FieldAccess AccessBuilder::ForJSCollectionTable() { ...@@ -127,7 +128,7 @@ FieldAccess AccessBuilder::ForJSCollectionTable() {
FieldAccess access = {kTaggedBase, JSCollection::kTableOffset, FieldAccess access = {kTaggedBase, JSCollection::kTableOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSCollectionTable"};
return access; return access;
} }
...@@ -137,7 +138,7 @@ FieldAccess AccessBuilder::ForJSCollectionIteratorTable() { ...@@ -137,7 +138,7 @@ FieldAccess AccessBuilder::ForJSCollectionIteratorTable() {
kTaggedBase, JSCollectionIterator::kTableOffset, kTaggedBase, JSCollectionIterator::kTableOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSCollectionIteratorTable"};
return access; return access;
} }
...@@ -149,26 +150,27 @@ FieldAccess AccessBuilder::ForJSCollectionIteratorIndex() { ...@@ -149,26 +150,27 @@ FieldAccess AccessBuilder::ForJSCollectionIteratorIndex() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kFixedArrayLengthType, TypeCache::Get()->kFixedArrayLengthType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"JSCollectionIteratorIndex"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() { FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSFunction::kPrototypeOrInitialMapOffset, kTaggedBase, JSFunction::kPrototypeOrInitialMapOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSFunctionPrototypeOrInitialMap"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSFunctionContext() { FieldAccess AccessBuilder::ForJSFunctionContext() {
FieldAccess access = {kTaggedBase, JSFunction::kContextOffset, FieldAccess access = {kTaggedBase, JSFunction::kContextOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSFunctionContext"};
return access; return access;
} }
...@@ -178,16 +180,16 @@ FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { ...@@ -178,16 +180,16 @@ FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() {
kTaggedBase, JSFunction::kSharedFunctionInfoOffset, kTaggedBase, JSFunction::kSharedFunctionInfoOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSFunctionSharedFunctionInfo"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSFunctionFeedbackCell() { FieldAccess AccessBuilder::ForJSFunctionFeedbackCell() {
FieldAccess access = {kTaggedBase, JSFunction::kFeedbackCellOffset, FieldAccess access = {kTaggedBase, JSFunction::kFeedbackCellOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSFunctionFeedbackCell"};
return access; return access;
} }
...@@ -196,17 +198,17 @@ FieldAccess AccessBuilder::ForJSFunctionCode() { ...@@ -196,17 +198,17 @@ FieldAccess AccessBuilder::ForJSFunctionCode() {
FieldAccess access = {kTaggedBase, JSFunction::kCodeOffset, FieldAccess access = {kTaggedBase, JSFunction::kCodeOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSFunctionCode"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSBoundFunctionBoundTargetFunction() { FieldAccess AccessBuilder::ForJSBoundFunctionBoundTargetFunction() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSBoundFunction::kBoundTargetFunctionOffset, kTaggedBase, JSBoundFunction::kBoundTargetFunctionOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Callable(), MachineType::TaggedPointer(), Type::Callable(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSBoundFunctionBoundTargetFunction"};
return access; return access;
} }
...@@ -215,26 +217,26 @@ FieldAccess AccessBuilder::ForJSBoundFunctionBoundThis() { ...@@ -215,26 +217,26 @@ FieldAccess AccessBuilder::ForJSBoundFunctionBoundThis() {
FieldAccess access = {kTaggedBase, JSBoundFunction::kBoundThisOffset, FieldAccess access = {kTaggedBase, JSBoundFunction::kBoundThisOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSBoundFunctionBoundThis"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSBoundFunctionBoundArguments() { FieldAccess AccessBuilder::ForJSBoundFunctionBoundArguments() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSBoundFunction::kBoundArgumentsOffset, kTaggedBase, JSBoundFunction::kBoundArgumentsOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSBoundFunctionBoundArguments"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSGeneratorObjectContext() { FieldAccess AccessBuilder::ForJSGeneratorObjectContext() {
FieldAccess access = {kTaggedBase, JSGeneratorObject::kContextOffset, FieldAccess access = {kTaggedBase, JSGeneratorObject::kContextOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSGeneratorObjectContext"};
return access; return access;
} }
...@@ -246,16 +248,17 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectFunction() { ...@@ -246,16 +248,17 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectFunction() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
Type::CallableFunction(), Type::CallableFunction(),
MachineType::TaggedPointer(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier,
"JSGeneratorObjectFunction"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSGeneratorObjectReceiver() { FieldAccess AccessBuilder::ForJSGeneratorObjectReceiver() {
FieldAccess access = {kTaggedBase, JSGeneratorObject::kReceiverOffset, FieldAccess access = {kTaggedBase, JSGeneratorObject::kReceiverOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSGeneratorObjectReceiver"};
return access; return access;
} }
...@@ -265,7 +268,7 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectContinuation() { ...@@ -265,7 +268,7 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectContinuation() {
kTaggedBase, JSGeneratorObject::kContinuationOffset, kTaggedBase, JSGeneratorObject::kContinuationOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::SignedSmall(), MachineType::TaggedSigned(), Type::SignedSmall(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier, "JSGeneratorObjectContinuation"};
return access; return access;
} }
...@@ -275,17 +278,17 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectInputOrDebugPos() { ...@@ -275,17 +278,17 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectInputOrDebugPos() {
kTaggedBase, JSGeneratorObject::kInputOrDebugPosOffset, kTaggedBase, JSGeneratorObject::kInputOrDebugPosOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSGeneratorObjectInputOrDebugPos"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSGeneratorObjectParametersAndRegisters() { FieldAccess AccessBuilder::ForJSGeneratorObjectParametersAndRegisters() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSGeneratorObject::kParametersAndRegistersOffset, kTaggedBase, JSGeneratorObject::kParametersAndRegistersOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSGeneratorObjectParametersAndRegisters"};
return access; return access;
} }
...@@ -295,17 +298,17 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectResumeMode() { ...@@ -295,17 +298,17 @@ FieldAccess AccessBuilder::ForJSGeneratorObjectResumeMode() {
kTaggedBase, JSGeneratorObject::kResumeModeOffset, kTaggedBase, JSGeneratorObject::kResumeModeOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::SignedSmall(), MachineType::TaggedSigned(), Type::SignedSmall(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier, "JSGeneratorObjectResumeMode"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSAsyncFunctionObjectPromise() { FieldAccess AccessBuilder::ForJSAsyncFunctionObjectPromise() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSAsyncFunctionObject::kPromiseOffset, kTaggedBase, JSAsyncFunctionObject::kPromiseOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::OtherObject(), MachineType::TaggedPointer(), Type::OtherObject(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSAsyncFunctionObjectPromise"};
return access; return access;
} }
...@@ -315,7 +318,7 @@ FieldAccess AccessBuilder::ForJSAsyncGeneratorObjectQueue() { ...@@ -315,7 +318,7 @@ FieldAccess AccessBuilder::ForJSAsyncGeneratorObjectQueue() {
kTaggedBase, JSAsyncGeneratorObject::kQueueOffset, kTaggedBase, JSAsyncGeneratorObject::kQueueOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSAsyncGeneratorObjectQueue"};
return access; return access;
} }
...@@ -325,7 +328,7 @@ FieldAccess AccessBuilder::ForJSAsyncGeneratorObjectIsAwaiting() { ...@@ -325,7 +328,7 @@ FieldAccess AccessBuilder::ForJSAsyncGeneratorObjectIsAwaiting() {
kTaggedBase, JSAsyncGeneratorObject::kIsAwaitingOffset, kTaggedBase, JSAsyncGeneratorObject::kIsAwaitingOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::SignedSmall(), MachineType::TaggedSigned(), Type::SignedSmall(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier, "JSAsyncGeneratorObjectIsAwaiting"};
return access; return access;
} }
...@@ -338,7 +341,8 @@ FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) { ...@@ -338,7 +341,8 @@ FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) {
MaybeHandle<Map>(), MaybeHandle<Map>(),
type_cache->kJSArrayLengthType, type_cache->kJSArrayLengthType,
MachineType::AnyTagged(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier,
"JSArrayLength"};
if (IsDoubleElementsKind(elements_kind)) { if (IsDoubleElementsKind(elements_kind)) {
access.type = type_cache->kFixedDoubleArrayLengthType; access.type = type_cache->kFixedDoubleArrayLengthType;
access.machine_type = MachineType::TaggedSigned(); access.machine_type = MachineType::TaggedSigned();
...@@ -356,7 +360,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferBitField() { ...@@ -356,7 +360,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferBitField() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSArrayBuffer::kBitFieldOffset, MaybeHandle<Name>(), kTaggedBase, JSArrayBuffer::kBitFieldOffset, MaybeHandle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint32(), MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint32(),
kNoWriteBarrier}; kNoWriteBarrier, "JSArrayBufferBitField"};
return access; return access;
} }
...@@ -365,7 +369,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { ...@@ -365,7 +369,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() {
FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset, FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSArrayBufferViewBuffer"};
return access; return access;
} }
...@@ -377,7 +381,8 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewByteLength() { ...@@ -377,7 +381,8 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewByteLength() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kJSArrayBufferViewByteLengthType, TypeCache::Get()->kJSArrayBufferViewByteLengthType,
MachineType::UintPtr(), MachineType::UintPtr(),
kNoWriteBarrier}; kNoWriteBarrier,
"JSArrayBufferViewByteLength"};
return access; return access;
} }
...@@ -389,7 +394,8 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewByteOffset() { ...@@ -389,7 +394,8 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewByteOffset() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kJSArrayBufferViewByteOffsetType, TypeCache::Get()->kJSArrayBufferViewByteOffsetType,
MachineType::UintPtr(), MachineType::UintPtr(),
kNoWriteBarrier}; kNoWriteBarrier,
"JSArrayBufferViewByteOffset"};
return access; return access;
} }
...@@ -401,7 +407,8 @@ FieldAccess AccessBuilder::ForJSTypedArrayLength() { ...@@ -401,7 +407,8 @@ FieldAccess AccessBuilder::ForJSTypedArrayLength() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kJSTypedArrayLengthType, TypeCache::Get()->kJSTypedArrayLengthType,
MachineType::UintPtr(), MachineType::UintPtr(),
kNoWriteBarrier}; kNoWriteBarrier,
"JSTypedArrayLength"};
return access; return access;
} }
...@@ -410,7 +417,7 @@ FieldAccess AccessBuilder::ForJSTypedArrayBasePointer() { ...@@ -410,7 +417,7 @@ FieldAccess AccessBuilder::ForJSTypedArrayBasePointer() {
FieldAccess access = {kTaggedBase, JSTypedArray::kBasePointerOffset, FieldAccess access = {kTaggedBase, JSTypedArray::kBasePointerOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::AnyTagged(), Type::OtherInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSTypedArrayBasePointer"};
return access; return access;
} }
...@@ -429,6 +436,7 @@ FieldAccess AccessBuilder::ForJSTypedArrayExternalPointer() { ...@@ -429,6 +436,7 @@ FieldAccess AccessBuilder::ForJSTypedArrayExternalPointer() {
MachineType::Pointer(), MachineType::Pointer(),
#endif #endif
kNoWriteBarrier, kNoWriteBarrier,
"JSTypedArrayExternalPointer",
ConstFieldInfo::None(), ConstFieldInfo::None(),
false, false,
}; };
...@@ -450,6 +458,7 @@ FieldAccess AccessBuilder::ForJSDataViewDataPointer() { ...@@ -450,6 +458,7 @@ FieldAccess AccessBuilder::ForJSDataViewDataPointer() {
MachineType::Pointer(), MachineType::Pointer(),
#endif #endif
kNoWriteBarrier, kNoWriteBarrier,
"JSDataViewDataPointer",
ConstFieldInfo::None(), ConstFieldInfo::None(),
false, false,
}; };
...@@ -464,7 +473,8 @@ FieldAccess AccessBuilder::ForJSDateValue() { ...@@ -464,7 +473,8 @@ FieldAccess AccessBuilder::ForJSDateValue() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kJSDateValueType, TypeCache::Get()->kJSDateValueType,
MachineType::AnyTagged(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier,
"JSDateValue"};
return access; return access;
} }
...@@ -474,7 +484,7 @@ FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { ...@@ -474,7 +484,7 @@ FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) {
kTaggedBase, JSDate::kValueOffset + index * kTaggedSize, kTaggedBase, JSDate::kValueOffset + index * kTaggedSize,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Number(), MachineType::AnyTagged(), Type::Number(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSDateField"};
return access; return access;
} }
...@@ -483,7 +493,7 @@ FieldAccess AccessBuilder::ForJSIteratorResultDone() { ...@@ -483,7 +493,7 @@ FieldAccess AccessBuilder::ForJSIteratorResultDone() {
FieldAccess access = {kTaggedBase, JSIteratorResult::kDoneOffset, FieldAccess access = {kTaggedBase, JSIteratorResult::kDoneOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSIteratorResultDone"};
return access; return access;
} }
...@@ -492,7 +502,7 @@ FieldAccess AccessBuilder::ForJSIteratorResultValue() { ...@@ -492,7 +502,7 @@ FieldAccess AccessBuilder::ForJSIteratorResultValue() {
FieldAccess access = {kTaggedBase, JSIteratorResult::kValueOffset, FieldAccess access = {kTaggedBase, JSIteratorResult::kValueOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSIteratorResultValue"};
return access; return access;
} }
...@@ -501,7 +511,7 @@ FieldAccess AccessBuilder::ForJSRegExpData() { ...@@ -501,7 +511,7 @@ FieldAccess AccessBuilder::ForJSRegExpData() {
FieldAccess access = {kTaggedBase, JSRegExp::kDataOffset, FieldAccess access = {kTaggedBase, JSRegExp::kDataOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSRegExpData"};
return access; return access;
} }
...@@ -510,7 +520,7 @@ FieldAccess AccessBuilder::ForJSRegExpFlags() { ...@@ -510,7 +520,7 @@ FieldAccess AccessBuilder::ForJSRegExpFlags() {
FieldAccess access = {kTaggedBase, JSRegExp::kFlagsOffset, FieldAccess access = {kTaggedBase, JSRegExp::kFlagsOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSRegExpFlags"};
return access; return access;
} }
...@@ -519,7 +529,7 @@ FieldAccess AccessBuilder::ForJSRegExpLastIndex() { ...@@ -519,7 +529,7 @@ FieldAccess AccessBuilder::ForJSRegExpLastIndex() {
FieldAccess access = {kTaggedBase, JSRegExp::kLastIndexOffset, FieldAccess access = {kTaggedBase, JSRegExp::kLastIndexOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSRegExpLastIndex"};
return access; return access;
} }
...@@ -528,7 +538,7 @@ FieldAccess AccessBuilder::ForJSRegExpSource() { ...@@ -528,7 +538,7 @@ FieldAccess AccessBuilder::ForJSRegExpSource() {
FieldAccess access = {kTaggedBase, JSRegExp::kSourceOffset, FieldAccess access = {kTaggedBase, JSRegExp::kSourceOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "JSRegExpSource"};
return access; return access;
} }
...@@ -540,7 +550,8 @@ FieldAccess AccessBuilder::ForFixedArrayLength() { ...@@ -540,7 +550,8 @@ FieldAccess AccessBuilder::ForFixedArrayLength() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kFixedArrayLengthType, TypeCache::Get()->kFixedArrayLengthType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"FixedArrayLength"};
return access; return access;
} }
...@@ -552,27 +563,28 @@ FieldAccess AccessBuilder::ForWeakFixedArrayLength() { ...@@ -552,27 +563,28 @@ FieldAccess AccessBuilder::ForWeakFixedArrayLength() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kWeakFixedArrayLengthType, TypeCache::Get()->kWeakFixedArrayLengthType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"WeakFixedArrayLength"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForSloppyArgumentsElementsContext() { FieldAccess AccessBuilder::ForSloppyArgumentsElementsContext() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, SloppyArgumentsElements::kContextOffset, kTaggedBase, SloppyArgumentsElements::kContextOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "SloppyArgumentsElementsContext"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForSloppyArgumentsElementsArguments() { FieldAccess AccessBuilder::ForSloppyArgumentsElementsArguments() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, SloppyArgumentsElements::kArgumentsOffset, kTaggedBase, SloppyArgumentsElements::kArgumentsOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "SloppyArgumentsElementsArguments"};
return access; return access;
} }
...@@ -582,7 +594,7 @@ FieldAccess AccessBuilder::ForPropertyArrayLengthAndHash() { ...@@ -582,7 +594,7 @@ FieldAccess AccessBuilder::ForPropertyArrayLengthAndHash() {
kTaggedBase, PropertyArray::kLengthAndHashOffset, kTaggedBase, PropertyArray::kLengthAndHashOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::SignedSmall(), MachineType::TaggedSigned(), Type::SignedSmall(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier, "PropertyArrayLengthAndHash"};
return access; return access;
} }
...@@ -592,7 +604,7 @@ FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() { ...@@ -592,7 +604,7 @@ FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() {
kTaggedBase, DescriptorArray::kEnumCacheOffset, kTaggedBase, DescriptorArray::kEnumCacheOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "DescriptorArrayEnumCache"};
return access; return access;
} }
...@@ -601,7 +613,7 @@ FieldAccess AccessBuilder::ForMapBitField() { ...@@ -601,7 +613,7 @@ FieldAccess AccessBuilder::ForMapBitField() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, Map::kBitFieldOffset, Handle<Name>(), kTaggedBase, Map::kBitFieldOffset, Handle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint8(), MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint8(),
kNoWriteBarrier}; kNoWriteBarrier, "MapBitField"};
return access; return access;
} }
...@@ -610,7 +622,7 @@ FieldAccess AccessBuilder::ForMapBitField2() { ...@@ -610,7 +622,7 @@ FieldAccess AccessBuilder::ForMapBitField2() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, Map::kBitField2Offset, Handle<Name>(), kTaggedBase, Map::kBitField2Offset, Handle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint8(), MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint8(),
kNoWriteBarrier}; kNoWriteBarrier, "MapBitField2"};
return access; return access;
} }
...@@ -619,7 +631,7 @@ FieldAccess AccessBuilder::ForMapBitField3() { ...@@ -619,7 +631,7 @@ FieldAccess AccessBuilder::ForMapBitField3() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, Map::kBitField3Offset, Handle<Name>(), kTaggedBase, Map::kBitField3Offset, Handle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Int32(), MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Int32(),
kNoWriteBarrier}; kNoWriteBarrier, "MapBitField3"};
return access; return access;
} }
...@@ -628,7 +640,7 @@ FieldAccess AccessBuilder::ForMapDescriptors() { ...@@ -628,7 +640,7 @@ FieldAccess AccessBuilder::ForMapDescriptors() {
FieldAccess access = {kTaggedBase, Map::kInstanceDescriptorsOffset, FieldAccess access = {kTaggedBase, Map::kInstanceDescriptorsOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "MapDescriptors"};
return access; return access;
} }
...@@ -637,26 +649,26 @@ FieldAccess AccessBuilder::ForMapInstanceType() { ...@@ -637,26 +649,26 @@ FieldAccess AccessBuilder::ForMapInstanceType() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(), kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kUint16, MachineType::Uint16(), MaybeHandle<Map>(), TypeCache::Get()->kUint16, MachineType::Uint16(),
kNoWriteBarrier}; kNoWriteBarrier, "MapInstanceType"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForMapPrototype() { FieldAccess AccessBuilder::ForMapPrototype() {
FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, FieldAccess access = {kTaggedBase, Map::kPrototypeOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "MapPrototype"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForMapNativeContext() { FieldAccess AccessBuilder::ForMapNativeContext() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, Map::kConstructorOrBackPointerOrNativeContextOffset, kTaggedBase, Map::kConstructorOrBackPointerOrNativeContextOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "MapNativeContext"};
return access; return access;
} }
...@@ -666,7 +678,7 @@ FieldAccess AccessBuilder::ForModuleRegularExports() { ...@@ -666,7 +678,7 @@ FieldAccess AccessBuilder::ForModuleRegularExports() {
kTaggedBase, SourceTextModule::kRegularExportsOffset, kTaggedBase, SourceTextModule::kRegularExportsOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "ModuleRegularExports"};
return access; return access;
} }
...@@ -676,7 +688,7 @@ FieldAccess AccessBuilder::ForModuleRegularImports() { ...@@ -676,7 +688,7 @@ FieldAccess AccessBuilder::ForModuleRegularImports() {
kTaggedBase, SourceTextModule::kRegularImportsOffset, kTaggedBase, SourceTextModule::kRegularImportsOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "ModuleRegularImports"};
return access; return access;
} }
...@@ -685,7 +697,7 @@ FieldAccess AccessBuilder::ForNameRawHashField() { ...@@ -685,7 +697,7 @@ FieldAccess AccessBuilder::ForNameRawHashField() {
FieldAccess access = {kTaggedBase, Name::kRawHashFieldOffset, FieldAccess access = {kTaggedBase, Name::kRawHashFieldOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Unsigned32(), MachineType::Uint32(), Type::Unsigned32(), MachineType::Uint32(),
kNoWriteBarrier}; kNoWriteBarrier , "NameRawHashField"};
return access; return access;
} }
...@@ -697,7 +709,8 @@ FieldAccess AccessBuilder::ForStringLength() { ...@@ -697,7 +709,8 @@ FieldAccess AccessBuilder::ForStringLength() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kStringLengthType, TypeCache::Get()->kStringLengthType,
MachineType::Uint32(), MachineType::Uint32(),
kNoWriteBarrier}; kNoWriteBarrier,
"StringLength"};
return access; return access;
} }
...@@ -706,25 +719,26 @@ FieldAccess AccessBuilder::ForConsStringFirst() { ...@@ -706,25 +719,26 @@ FieldAccess AccessBuilder::ForConsStringFirst() {
FieldAccess access = {kTaggedBase, ConsString::kFirstOffset, FieldAccess access = {kTaggedBase, ConsString::kFirstOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::String(), MachineType::TaggedPointer(), Type::String(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier,
"ConsStringFirst"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForConsStringSecond() { FieldAccess AccessBuilder::ForConsStringSecond() {
FieldAccess access = {kTaggedBase, ConsString::kSecondOffset, FieldAccess access = {kTaggedBase, ConsString::kSecondOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::String(), MachineType::TaggedPointer(), Type::String(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "ConsStringSecond"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForThinStringActual() { FieldAccess AccessBuilder::ForThinStringActual() {
FieldAccess access = {kTaggedBase, ThinString::kActualOffset, FieldAccess access = {kTaggedBase, ThinString::kActualOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::String(), MachineType::TaggedPointer(), Type::String(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "ThinStringActual"};
return access; return access;
} }
...@@ -733,16 +747,16 @@ FieldAccess AccessBuilder::ForSlicedStringOffset() { ...@@ -733,16 +747,16 @@ FieldAccess AccessBuilder::ForSlicedStringOffset() {
FieldAccess access = {kTaggedBase, SlicedString::kOffsetOffset, FieldAccess access = {kTaggedBase, SlicedString::kOffsetOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::SignedSmall(), MachineType::TaggedSigned(), Type::SignedSmall(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier, "SlicedStringOffset"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForSlicedStringParent() { FieldAccess AccessBuilder::ForSlicedStringParent() {
FieldAccess access = {kTaggedBase, SlicedString::kParentOffset, FieldAccess access = {kTaggedBase, SlicedString::kParentOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::String(), MachineType::TaggedPointer(), Type::String(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "SlicedStringParent"};
return access; return access;
} }
...@@ -756,6 +770,7 @@ FieldAccess AccessBuilder::ForExternalStringResourceData() { ...@@ -756,6 +770,7 @@ FieldAccess AccessBuilder::ForExternalStringResourceData() {
Type::ExternalPointer(), Type::ExternalPointer(),
MachineType::Pointer(), MachineType::Pointer(),
kNoWriteBarrier, kNoWriteBarrier,
"ExternalStringResourceData",
ConstFieldInfo::None(), ConstFieldInfo::None(),
false, false,
kExternalStringResourceDataTag, kExternalStringResourceDataTag,
...@@ -782,20 +797,20 @@ ElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() { ...@@ -782,20 +797,20 @@ ElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() {
// static // static
FieldAccess AccessBuilder::ForJSGlobalProxyNativeContext() { FieldAccess AccessBuilder::ForJSGlobalProxyNativeContext() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSGlobalProxy::kNativeContextOffset, kTaggedBase, JSGlobalProxy::kNativeContextOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Internal(), MachineType::TaggedPointer(), Type::Internal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSGlobalProxyNativeContext"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSArrayIteratorIteratedObject() { FieldAccess AccessBuilder::ForJSArrayIteratorIteratedObject() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, JSArrayIterator::kIteratedObjectOffset, kTaggedBase, JSArrayIterator::kIteratedObjectOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Receiver(), MachineType::TaggedPointer(), Type::Receiver(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSArrayIteratorIteratedObject"};
return access; return access;
} }
...@@ -809,7 +824,8 @@ FieldAccess AccessBuilder::ForJSArrayIteratorNextIndex() { ...@@ -809,7 +824,8 @@ FieldAccess AccessBuilder::ForJSArrayIteratorNextIndex() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kPositiveSafeInteger, TypeCache::Get()->kPositiveSafeInteger,
MachineType::AnyTagged(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier,
"JSArrayIteratorNextIndex"};
return access; return access;
} }
...@@ -821,16 +837,17 @@ FieldAccess AccessBuilder::ForJSArrayIteratorKind() { ...@@ -821,16 +837,17 @@ FieldAccess AccessBuilder::ForJSArrayIteratorKind() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kJSArrayIteratorKindType, TypeCache::Get()->kJSArrayIteratorKindType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"JSArrayIteratorKind"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForJSStringIteratorString() { FieldAccess AccessBuilder::ForJSStringIteratorString() {
FieldAccess access = {kTaggedBase, JSStringIterator::kStringOffset, FieldAccess access = {kTaggedBase, JSStringIterator::kStringOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::String(), MachineType::TaggedPointer(), Type::String(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "JSStringIteratorString"};
return access; return access;
} }
...@@ -842,7 +859,8 @@ FieldAccess AccessBuilder::ForJSStringIteratorIndex() { ...@@ -842,7 +859,8 @@ FieldAccess AccessBuilder::ForJSStringIteratorIndex() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kStringLengthType, TypeCache::Get()->kStringLengthType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"JSStringIteratorIndex"};
return access; return access;
} }
...@@ -853,7 +871,7 @@ FieldAccess AccessBuilder::ForArgumentsLength() { ...@@ -853,7 +871,7 @@ FieldAccess AccessBuilder::ForArgumentsLength() {
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "ArgumentsLength"};
return access; return access;
} }
...@@ -863,7 +881,7 @@ FieldAccess AccessBuilder::ForArgumentsCallee() { ...@@ -863,7 +881,7 @@ FieldAccess AccessBuilder::ForArgumentsCallee() {
kTaggedBase, JSSloppyArgumentsObject::kCalleeOffset, kTaggedBase, JSSloppyArgumentsObject::kCalleeOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::NonInternal(), MachineType::AnyTagged(), Type::NonInternal(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "ArgumentsCallee"};
return access; return access;
} }
...@@ -871,38 +889,38 @@ FieldAccess AccessBuilder::ForArgumentsCallee() { ...@@ -871,38 +889,38 @@ FieldAccess AccessBuilder::ForArgumentsCallee() {
FieldAccess AccessBuilder::ForFixedArraySlot( FieldAccess AccessBuilder::ForFixedArraySlot(
size_t index, WriteBarrierKind write_barrier_kind) { size_t index, WriteBarrierKind write_barrier_kind) {
int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index)); int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index));
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::AnyTagged(), Type::Any(), MachineType::AnyTagged(),
write_barrier_kind}; write_barrier_kind, "FixedArraySlot"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForFeedbackVectorSlot(int index) { FieldAccess AccessBuilder::ForFeedbackVectorSlot(int index) {
int offset = FeedbackVector::OffsetOfElementAt(index); int offset = FeedbackVector::OffsetOfElementAt(index);
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::AnyTagged(), Type::Any(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "FeedbackVectorSlot"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForWeakFixedArraySlot(int index) { FieldAccess AccessBuilder::ForWeakFixedArraySlot(int index) {
int offset = WeakFixedArray::OffsetOfElementAt(index); int offset = WeakFixedArray::OffsetOfElementAt(index);
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::AnyTagged(), Type::Any(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "WeakFixedArraySlot"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForCellValue() { FieldAccess AccessBuilder::ForCellValue() {
FieldAccess access = {kTaggedBase, Cell::kValueOffset, FieldAccess access = {kTaggedBase, Cell::kValueOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::AnyTagged(), Type::Any(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "CellValue"};
return access; return access;
} }
...@@ -911,7 +929,7 @@ FieldAccess AccessBuilder::ForScopeInfoFlags() { ...@@ -911,7 +929,7 @@ FieldAccess AccessBuilder::ForScopeInfoFlags() {
FieldAccess access = {kTaggedBase, ScopeInfo::kFlagsOffset, FieldAccess access = {kTaggedBase, ScopeInfo::kFlagsOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::SignedSmall(), MachineType::TaggedSigned(), Type::SignedSmall(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier, "ScopeInfoFlags"};
return access; return access;
} }
...@@ -920,10 +938,10 @@ FieldAccess AccessBuilder::ForContextSlot(size_t index) { ...@@ -920,10 +938,10 @@ FieldAccess AccessBuilder::ForContextSlot(size_t index) {
int offset = Context::OffsetOfElementAt(static_cast<int>(index)); int offset = Context::OffsetOfElementAt(static_cast<int>(index));
DCHECK_EQ(offset, DCHECK_EQ(offset,
Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag); Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag);
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::AnyTagged(), Type::Any(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "ContextSlot"};
return access; return access;
} }
...@@ -932,10 +950,10 @@ FieldAccess AccessBuilder::ForContextSlotKnownPointer(size_t index) { ...@@ -932,10 +950,10 @@ FieldAccess AccessBuilder::ForContextSlotKnownPointer(size_t index) {
int offset = Context::OffsetOfElementAt(static_cast<int>(index)); int offset = Context::OffsetOfElementAt(static_cast<int>(index));
DCHECK_EQ(offset, DCHECK_EQ(offset,
Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag); Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag);
FieldAccess access = {kTaggedBase, offset, FieldAccess access = {kTaggedBase, offset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "ContextSlotKnownPointer"};
return access; return access;
} }
...@@ -1019,7 +1037,7 @@ FieldAccess AccessBuilder::ForEnumCacheKeys() { ...@@ -1019,7 +1037,7 @@ FieldAccess AccessBuilder::ForEnumCacheKeys() {
FieldAccess access = {kTaggedBase, EnumCache::kKeysOffset, FieldAccess access = {kTaggedBase, EnumCache::kKeysOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "EnumCacheKeys"};
return access; return access;
} }
...@@ -1028,7 +1046,7 @@ FieldAccess AccessBuilder::ForEnumCacheIndices() { ...@@ -1028,7 +1046,7 @@ FieldAccess AccessBuilder::ForEnumCacheIndices() {
FieldAccess access = {kTaggedBase, EnumCache::kIndicesOffset, FieldAccess access = {kTaggedBase, EnumCache::kIndicesOffset,
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::OtherInternal(), MachineType::TaggedPointer(), Type::OtherInternal(), MachineType::TaggedPointer(),
kPointerWriteBarrier}; kPointerWriteBarrier, "EnumCacheIndices"};
return access; return access;
} }
...@@ -1106,7 +1124,8 @@ FieldAccess AccessBuilder::ForHashTableBaseNumberOfElements() { ...@@ -1106,7 +1124,8 @@ FieldAccess AccessBuilder::ForHashTableBaseNumberOfElements() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
Type::SignedSmall(), Type::SignedSmall(),
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"HashTableBaseNumberOfElements"};
return access; return access;
} }
...@@ -1119,7 +1138,8 @@ FieldAccess AccessBuilder::ForHashTableBaseNumberOfDeletedElement() { ...@@ -1119,7 +1138,8 @@ FieldAccess AccessBuilder::ForHashTableBaseNumberOfDeletedElement() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
Type::SignedSmall(), Type::SignedSmall(),
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"HashTableBaseNumberOfDeletedElement"};
return access; return access;
} }
...@@ -1132,7 +1152,8 @@ FieldAccess AccessBuilder::ForHashTableBaseCapacity() { ...@@ -1132,7 +1152,8 @@ FieldAccess AccessBuilder::ForHashTableBaseCapacity() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
Type::SignedSmall(), Type::SignedSmall(),
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"HashTableBaseCapacity"};
return access; return access;
} }
...@@ -1146,7 +1167,7 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNextTable() { ...@@ -1146,7 +1167,7 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNextTable() {
kTaggedBase, OrderedHashMap::NextTableOffset(), kTaggedBase, OrderedHashMap::NextTableOffset(),
MaybeHandle<Name>(), MaybeHandle<Map>(), MaybeHandle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::AnyTagged(), Type::Any(), MachineType::AnyTagged(),
kFullWriteBarrier}; kFullWriteBarrier, "OrderedHashMapOrSetNextTable"};
return access; return access;
} }
...@@ -1162,7 +1183,8 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfBuckets() { ...@@ -1162,7 +1183,8 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfBuckets() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kFixedArrayLengthType, TypeCache::Get()->kFixedArrayLengthType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"OrderedHashMapOrSetNumberOfBuckets"};
return access; return access;
} }
...@@ -1178,7 +1200,8 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfDeletedElements() { ...@@ -1178,7 +1200,8 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfDeletedElements() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kFixedArrayLengthType, TypeCache::Get()->kFixedArrayLengthType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"OrderedHashMapOrSetNumberOfDeletedElements"};
return access; return access;
} }
...@@ -1194,7 +1217,8 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfElements() { ...@@ -1194,7 +1217,8 @@ FieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfElements() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kFixedArrayLengthType, TypeCache::Get()->kFixedArrayLengthType,
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"OrderedHashMapOrSetNumberOfElements"};
return access; return access;
} }
...@@ -1217,7 +1241,8 @@ FieldAccess AccessBuilder::ForDictionaryNextEnumerationIndex() { ...@@ -1217,7 +1241,8 @@ FieldAccess AccessBuilder::ForDictionaryNextEnumerationIndex() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
Type::SignedSmall(), Type::SignedSmall(),
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"DictionaryNextEnumerationIndex"};
return access; return access;
} }
...@@ -1230,7 +1255,8 @@ FieldAccess AccessBuilder::ForDictionaryObjectHashIndex() { ...@@ -1230,7 +1255,8 @@ FieldAccess AccessBuilder::ForDictionaryObjectHashIndex() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
Type::SignedSmall(), Type::SignedSmall(),
MachineType::TaggedSigned(), MachineType::TaggedSigned(),
kNoWriteBarrier}; kNoWriteBarrier,
"DictionaryObjectHashIndex"};
return access; return access;
} }
...@@ -1242,7 +1268,8 @@ FieldAccess AccessBuilder::ForFeedbackCellInterruptBudget() { ...@@ -1242,7 +1268,8 @@ FieldAccess AccessBuilder::ForFeedbackCellInterruptBudget() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kInt32, TypeCache::Get()->kInt32,
MachineType::Int32(), MachineType::Int32(),
kNoWriteBarrier}; kNoWriteBarrier,
"FeedbackCellInterruptBudget"};
return access; return access;
} }
...@@ -1254,7 +1281,8 @@ FieldAccess AccessBuilder::ForFeedbackVectorInvocationCount() { ...@@ -1254,7 +1281,8 @@ FieldAccess AccessBuilder::ForFeedbackVectorInvocationCount() {
MaybeHandle<Map>(), MaybeHandle<Map>(),
TypeCache::Get()->kInt32, TypeCache::Get()->kInt32,
MachineType::Int32(), MachineType::Int32(),
kNoWriteBarrier}; kNoWriteBarrier,
"FeedbackVectorInvocationCount"};
return access; return access;
} }
...@@ -1263,17 +1291,17 @@ FieldAccess AccessBuilder::ForFeedbackVectorFlags() { ...@@ -1263,17 +1291,17 @@ FieldAccess AccessBuilder::ForFeedbackVectorFlags() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, FeedbackVector::kFlagsOffset, Handle<Name>(), kTaggedBase, FeedbackVector::kFlagsOffset, Handle<Name>(),
MaybeHandle<Map>(), TypeCache::Get()->kUint16, MachineType::Uint16(), MaybeHandle<Map>(), TypeCache::Get()->kUint16, MachineType::Uint16(),
kNoWriteBarrier}; kNoWriteBarrier, "FeedbackVectorFlags"};
return access; return access;
} }
// static // static
FieldAccess AccessBuilder::ForFeedbackVectorClosureFeedbackCellArray() { FieldAccess AccessBuilder::ForFeedbackVectorClosureFeedbackCellArray() {
FieldAccess access = { FieldAccess access = {
kTaggedBase, FeedbackVector::kClosureFeedbackCellArrayOffset, kTaggedBase, FeedbackVector::kClosureFeedbackCellArrayOffset,
Handle<Name>(), MaybeHandle<Map>(), Handle<Name>(), MaybeHandle<Map>(),
Type::Any(), MachineType::TaggedPointer(), Type::Any(), MachineType::TaggedPointer(),
kFullWriteBarrier}; kFullWriteBarrier, "FeedbackVectorClosureFeedbackCellArray"};
return access; return access;
} }
......
...@@ -1725,6 +1725,7 @@ base::Optional<Node*> JSCreateLowering::TryAllocateFastLiteral( ...@@ -1725,6 +1725,7 @@ base::Optional<Node*> JSCreateLowering::TryAllocateFastLiteral(
Type::Any(), Type::Any(),
MachineType::AnyTagged(), MachineType::AnyTagged(),
kFullWriteBarrier, kFullWriteBarrier,
"TryAllocateFastLiteral",
const_field_info}; const_field_info};
// Note: the use of RawInobjectPropertyAt (vs. the higher-level // Note: the use of RawInobjectPropertyAt (vs. the higher-level
......
...@@ -844,7 +844,7 @@ FieldAccess ForPropertyCellValue(MachineRepresentation representation, ...@@ -844,7 +844,7 @@ FieldAccess ForPropertyCellValue(MachineRepresentation representation,
MachineType r = MachineType::TypeForRepresentation(representation); MachineType r = MachineType::TypeForRepresentation(representation);
FieldAccess access = { FieldAccess access = {
kTaggedBase, PropertyCell::kValueOffset, name.object(), map, type, r, kTaggedBase, PropertyCell::kValueOffset, name.object(), map, type, r,
kind}; kind, "PropertyCellValue"};
return access; return access;
} }
...@@ -2685,6 +2685,7 @@ JSNativeContextSpecialization::BuildPropertyStore( ...@@ -2685,6 +2685,7 @@ JSNativeContextSpecialization::BuildPropertyStore(
field_type, field_type,
MachineType::TypeForRepresentation(field_representation), MachineType::TypeForRepresentation(field_representation),
kFullWriteBarrier, kFullWriteBarrier,
"BuildPropertyStore",
access_info.GetConstFieldInfo(), access_info.GetConstFieldInfo(),
access_mode == AccessMode::kStoreInLiteral}; access_mode == AccessMode::kStoreInLiteral};
...@@ -2718,6 +2719,7 @@ JSNativeContextSpecialization::BuildPropertyStore( ...@@ -2718,6 +2719,7 @@ JSNativeContextSpecialization::BuildPropertyStore(
Type::OtherInternal(), Type::OtherInternal(),
MachineType::TaggedPointer(), MachineType::TaggedPointer(),
kPointerWriteBarrier, kPointerWriteBarrier,
"BuildPropertyStore",
access_info.GetConstFieldInfo(), access_info.GetConstFieldInfo(),
access_mode == AccessMode::kStoreInLiteral}; access_mode == AccessMode::kStoreInLiteral};
storage = effect = storage = effect =
......
...@@ -236,6 +236,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField(NameRef const& name, ...@@ -236,6 +236,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField(NameRef const& name,
Type::Any(), Type::Any(),
MachineType::AnyTagged(), MachineType::AnyTagged(),
kPointerWriteBarrier, kPointerWriteBarrier,
"BuildLoadDataField",
field_access.const_field_info}; field_access.const_field_info};
storage = *effect = graph()->NewNode( storage = *effect = graph()->NewNode(
simplified()->LoadField(storage_access), storage, *effect, *control); simplified()->LoadField(storage_access), storage, *effect, *control);
...@@ -263,6 +264,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField(NameRef const& name, ...@@ -263,6 +264,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField(NameRef const& name,
Type::OtherInternal(), Type::OtherInternal(),
MachineType::TaggedPointer(), MachineType::TaggedPointer(),
kPointerWriteBarrier, kPointerWriteBarrier,
"BuildLoadDataField",
field_access.const_field_info}; field_access.const_field_info};
storage = *effect = graph()->NewNode( storage = *effect = graph()->NewNode(
simplified()->LoadField(storage_access), storage, *effect, *control); simplified()->LoadField(storage_access), storage, *effect, *control);
...@@ -297,6 +299,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField( ...@@ -297,6 +299,7 @@ Node* PropertyAccessBuilder::BuildLoadDataField(
access_info.field_type(), access_info.field_type(),
MachineType::TypeForRepresentation(field_representation), MachineType::TypeForRepresentation(field_representation),
kFullWriteBarrier, kFullWriteBarrier,
"BuildLoadDataField",
access_info.GetConstFieldInfo()}; access_info.GetConstFieldInfo()};
if (field_representation == MachineRepresentation::kTaggedPointer || if (field_representation == MachineRepresentation::kTaggedPointer ||
field_representation == MachineRepresentation::kCompressedPointer) { field_representation == MachineRepresentation::kCompressedPointer) {
......
...@@ -192,7 +192,8 @@ class V8_EXPORT_PRIVATE RawMachineAssembler { ...@@ -192,7 +192,8 @@ class V8_EXPORT_PRIVATE RawMachineAssembler {
AddNode(simplified()->StoreField(FieldAccess( AddNode(simplified()->StoreField(FieldAccess(
BaseTaggedness::kTaggedBase, offset, MaybeHandle<Name>(), BaseTaggedness::kTaggedBase, offset, MaybeHandle<Name>(),
MaybeHandle<Map>(), Type::Any(), MaybeHandle<Map>(), Type::Any(),
MachineType::TypeForRepresentation(rep), write_barrier)), MachineType::TypeForRepresentation(rep), write_barrier,
"OptimizedStoreField")),
object, value); object, value);
} }
void OptimizedStoreMap(Node* object, Node* value, void OptimizedStoreMap(Node* object, Node* value,
......
...@@ -77,7 +77,11 @@ size_t hash_value(FieldAccess const& access) { ...@@ -77,7 +77,11 @@ size_t hash_value(FieldAccess const& access) {
} }
std::ostream& operator<<(std::ostream& os, FieldAccess const& access) { std::ostream& operator<<(std::ostream& os, FieldAccess const& access) {
os << "[" << access.base_is_tagged << ", " << access.offset << ", "; os << "[";
if (access.creator_mnemonic != nullptr) {
os << access.creator_mnemonic << ", ";
}
os << access.base_is_tagged << ", " << access.offset << ", ";
#ifdef OBJECT_PRINT #ifdef OBJECT_PRINT
Handle<Name> name; Handle<Name> name;
if (access.name.ToHandle(&name)) { if (access.name.ToHandle(&name)) {
......
...@@ -78,9 +78,10 @@ struct FieldAccess { ...@@ -78,9 +78,10 @@ struct FieldAccess {
Type type; // type of the field. Type type; // type of the field.
MachineType machine_type; // machine type of the field. MachineType machine_type; // machine type of the field.
WriteBarrierKind write_barrier_kind; // write barrier hint. WriteBarrierKind write_barrier_kind; // write barrier hint.
ConstFieldInfo const_field_info; // the constness of this access, and the const char* creator_mnemonic; // store the name of factory/creator method
// field owner map, if the access is const ConstFieldInfo const_field_info;// the constness of this access, and the
bool is_store_in_literal; // originates from a kStoreInLiteral access // field owner map, if the access is const
bool is_store_in_literal; // originates from a kStoreInLiteral access
ExternalPointerTag external_pointer_tag = kExternalPointerNullTag; ExternalPointerTag external_pointer_tag = kExternalPointerNullTag;
bool maybe_initializing_or_transitioning_store; // store is potentially bool maybe_initializing_or_transitioning_store; // store is potentially
// initializing a newly // initializing a newly
...@@ -93,6 +94,7 @@ struct FieldAccess { ...@@ -93,6 +94,7 @@ struct FieldAccess {
type(Type::None()), type(Type::None()),
machine_type(MachineType::None()), machine_type(MachineType::None()),
write_barrier_kind(kFullWriteBarrier), write_barrier_kind(kFullWriteBarrier),
creator_mnemonic(nullptr),
const_field_info(ConstFieldInfo::None()), const_field_info(ConstFieldInfo::None()),
is_store_in_literal(false), is_store_in_literal(false),
maybe_initializing_or_transitioning_store(false) {} maybe_initializing_or_transitioning_store(false) {}
...@@ -100,6 +102,7 @@ struct FieldAccess { ...@@ -100,6 +102,7 @@ struct FieldAccess {
FieldAccess(BaseTaggedness base_is_tagged, int offset, MaybeHandle<Name> name, FieldAccess(BaseTaggedness base_is_tagged, int offset, MaybeHandle<Name> name,
MaybeHandle<Map> map, Type type, MachineType machine_type, MaybeHandle<Map> map, Type type, MachineType machine_type,
WriteBarrierKind write_barrier_kind, WriteBarrierKind write_barrier_kind,
const char* creator_mnemonic = nullptr,
ConstFieldInfo const_field_info = ConstFieldInfo::None(), ConstFieldInfo const_field_info = ConstFieldInfo::None(),
bool is_store_in_literal = false, bool is_store_in_literal = false,
ExternalPointerTag external_pointer_tag = kExternalPointerNullTag, ExternalPointerTag external_pointer_tag = kExternalPointerNullTag,
...@@ -124,6 +127,11 @@ struct FieldAccess { ...@@ -124,6 +127,11 @@ struct FieldAccess {
(write_barrier_kind == kMapWriteBarrier || (write_barrier_kind == kMapWriteBarrier ||
write_barrier_kind == kNoWriteBarrier || write_barrier_kind == kNoWriteBarrier ||
write_barrier_kind == kAssertNoWriteBarrier)); write_barrier_kind == kAssertNoWriteBarrier));
#if !defined(OFFICIAL_BUILD)
this->creator_mnemonic = creator_mnemonic;
#else
this->creator_mnemonic = nullptr;
#endif
} }
int tag() const { return base_is_tagged == kTaggedBase ? kHeapObjectTag : 0; } int tag() const { return base_is_tagged == kTaggedBase ? kHeapObjectTag : 0; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment