Index: src/compiler/access-builder.cc |
diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc |
index 3b4ef5b471f89a82c94f880c4cc17aa8b13a5345..8206a0072dafc0a977e69831f901b142dcd47b60 100644 |
--- a/src/compiler/access-builder.cc |
+++ b/src/compiler/access-builder.cc |
@@ -16,9 +16,8 @@ namespace compiler { |
// static |
FieldAccess AccessBuilder::ForMap() { |
- FieldAccess access = {kTaggedBase, HeapObject::kMapOffset, |
- MaybeHandle<Name>(), Type::Any(), |
- MachineType::AnyTagged()}; |
+ FieldAccess access = {kTaggedBase, HeapObject::kMapOffset, "HeapObject::map", |
+ Type::Any(), MachineType::AnyTagged()}; |
return access; |
} |
@@ -26,7 +25,7 @@ FieldAccess AccessBuilder::ForMap() { |
// static |
FieldAccess AccessBuilder::ForHeapNumberValue() { |
FieldAccess access = {kTaggedBase, HeapNumber::kValueOffset, |
- MaybeHandle<Name>(), TypeCache().Get().kFloat64, |
+ "HeapNumber::value", TypeCache().Get().kFloat64, |
MachineType::Float64()}; |
return access; |
} |
@@ -35,7 +34,7 @@ FieldAccess AccessBuilder::ForHeapNumberValue() { |
// static |
FieldAccess AccessBuilder::ForJSObjectProperties() { |
FieldAccess access = {kTaggedBase, JSObject::kPropertiesOffset, |
- MaybeHandle<Name>(), Type::Internal(), |
+ "JSObject::properties", Type::Internal(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -44,7 +43,7 @@ FieldAccess AccessBuilder::ForJSObjectProperties() { |
// static |
FieldAccess AccessBuilder::ForJSObjectElements() { |
FieldAccess access = {kTaggedBase, JSObject::kElementsOffset, |
- MaybeHandle<Name>(), Type::Internal(), |
+ "JSObject::elements", Type::Internal(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -54,7 +53,7 @@ FieldAccess AccessBuilder::ForJSObjectElements() { |
FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map, |
int index) { |
int const offset = map->GetInObjectPropertyOffset(index); |
- FieldAccess access = {kTaggedBase, offset, MaybeHandle<Name>(), |
+ FieldAccess access = {kTaggedBase, offset, "JSObject::field[n]", |
Type::Tagged(), MachineType::AnyTagged()}; |
return access; |
} |
@@ -63,7 +62,7 @@ FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map, |
// static |
FieldAccess AccessBuilder::ForJSFunctionContext() { |
FieldAccess access = {kTaggedBase, JSFunction::kContextOffset, |
- MaybeHandle<Name>(), Type::Internal(), |
+ "JSFunction::context", Type::Internal(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -72,7 +71,8 @@ FieldAccess AccessBuilder::ForJSFunctionContext() { |
// static |
FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { |
FieldAccess access = {kTaggedBase, JSFunction::kSharedFunctionInfoOffset, |
- Handle<Name>(), Type::Any(), MachineType::AnyTagged()}; |
+ "JSFunction::shared", Type::Any(), |
+ MachineType::AnyTagged()}; |
return access; |
} |
@@ -80,7 +80,7 @@ FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { |
// static |
FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) { |
TypeCache const& type_cache = TypeCache::Get(); |
- FieldAccess access = {kTaggedBase, JSArray::kLengthOffset, Handle<Name>(), |
+ FieldAccess access = {kTaggedBase, JSArray::kLengthOffset, "JSArray::length", |
type_cache.kJSArrayLengthType, |
MachineType::AnyTagged()}; |
if (IsFastDoubleElementsKind(elements_kind)) { |
@@ -95,7 +95,7 @@ FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) { |
// static |
FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { |
FieldAccess access = {kTaggedBase, JSArrayBuffer::kBackingStoreOffset, |
- MaybeHandle<Name>(), Type::UntaggedPointer(), |
+ "JSArrayBuffer::backing_store", Type::UntaggedPointer(), |
MachineType::Pointer()}; |
return access; |
} |
@@ -104,7 +104,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() { |
// static |
FieldAccess AccessBuilder::ForJSArrayBufferBitField() { |
FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset, |
- MaybeHandle<Name>(), TypeCache::Get().kInt8, |
+ "JSArrayBuffer::bit_field", TypeCache::Get().kInt8, |
MachineType::Int8()}; |
return access; |
} |
@@ -113,7 +113,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferBitField() { |
// static |
FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { |
FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset, |
- MaybeHandle<Name>(), Type::TaggedPointer(), |
+ "JSArrayBufferView::buffer", Type::TaggedPointer(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -123,7 +123,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { |
FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { |
FieldAccess access = { |
kTaggedBase, JSDate::kValueOffset + index * kPointerSize, |
- MaybeHandle<Name>(), Type::Number(), MachineType::AnyTagged()}; |
+ "JSDate::field[n]", Type::Number(), MachineType::AnyTagged()}; |
return access; |
} |
@@ -131,7 +131,7 @@ FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { |
// static |
FieldAccess AccessBuilder::ForFixedArrayLength() { |
FieldAccess access = { |
- kTaggedBase, FixedArray::kLengthOffset, MaybeHandle<Name>(), |
+ kTaggedBase, FixedArray::kLengthOffset, "FixedArray::length", |
TypeCache::Get().kFixedArrayLengthType, MachineType::AnyTagged()}; |
return access; |
} |
@@ -140,7 +140,7 @@ FieldAccess AccessBuilder::ForFixedArrayLength() { |
// static |
FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() { |
FieldAccess access = {kTaggedBase, DescriptorArray::kEnumCacheOffset, |
- Handle<Name>(), Type::TaggedPointer(), |
+ "DescriptorArray::enum_cache", Type::TaggedPointer(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -148,16 +148,17 @@ FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() { |
// static |
FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() { |
- FieldAccess access = { |
- kTaggedBase, DescriptorArray::kEnumCacheBridgeCacheOffset, Handle<Name>(), |
- Type::TaggedPointer(), MachineType::AnyTagged()}; |
+ FieldAccess access = {kTaggedBase, |
+ DescriptorArray::kEnumCacheBridgeCacheOffset, |
+ "DescriptorArray::enum_cache_bridge_cache", |
+ Type::TaggedPointer(), MachineType::AnyTagged()}; |
return access; |
} |
// static |
FieldAccess AccessBuilder::ForMapBitField3() { |
- FieldAccess access = {kTaggedBase, Map::kBitField3Offset, Handle<Name>(), |
+ FieldAccess access = {kTaggedBase, Map::kBitField3Offset, "Map::bit_field3", |
TypeCache::Get().kInt32, MachineType::Int32()}; |
return access; |
} |
@@ -165,23 +166,25 @@ FieldAccess AccessBuilder::ForMapBitField3() { |
// static |
FieldAccess AccessBuilder::ForMapDescriptors() { |
- FieldAccess access = {kTaggedBase, Map::kDescriptorsOffset, Handle<Name>(), |
- Type::TaggedPointer(), MachineType::AnyTagged()}; |
+ FieldAccess access = {kTaggedBase, Map::kDescriptorsOffset, |
+ "Map::descriptors", Type::TaggedPointer(), |
+ MachineType::AnyTagged()}; |
return access; |
} |
// static |
FieldAccess AccessBuilder::ForMapInstanceType() { |
- FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(), |
- TypeCache::Get().kUint8, MachineType::Uint8()}; |
+ FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset, |
+ "Map::instance_type", TypeCache::Get().kUint8, |
+ MachineType::Uint8()}; |
return access; |
} |
// static |
FieldAccess AccessBuilder::ForMapPrototype() { |
- FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, Handle<Name>(), |
+ FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, "Map::prototype", |
Type::TaggedPointer(), MachineType::AnyTagged()}; |
return access; |
} |
@@ -189,7 +192,7 @@ FieldAccess AccessBuilder::ForMapPrototype() { |
// static |
FieldAccess AccessBuilder::ForStringLength() { |
- FieldAccess access = {kTaggedBase, String::kLengthOffset, Handle<Name>(), |
+ FieldAccess access = {kTaggedBase, String::kLengthOffset, "String::length", |
TypeCache::Get().kStringLengthType, |
MachineType::AnyTagged()}; |
return access; |
@@ -199,7 +202,7 @@ FieldAccess AccessBuilder::ForStringLength() { |
// static |
FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { |
FieldAccess access = {kTaggedBase, JSGlobalObject::kGlobalProxyOffset, |
- Handle<Name>(), Type::Receiver(), |
+ "JSGlobalObject::global_proxy", Type::Receiver(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -208,7 +211,7 @@ FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { |
// static |
FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { |
FieldAccess access = {kTaggedBase, JSGlobalObject::kNativeContextOffset, |
- Handle<Name>(), Type::Internal(), |
+ "JSGlobalObject::native_context", Type::Internal(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -216,7 +219,7 @@ FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { |
// static |
FieldAccess AccessBuilder::ForValue() { |
- FieldAccess access = {kTaggedBase, JSValue::kValueOffset, Handle<Name>(), |
+ FieldAccess access = {kTaggedBase, JSValue::kValueOffset, "JSValue::value", |
Type::Any(), MachineType::AnyTagged()}; |
return access; |
} |
@@ -226,7 +229,7 @@ FieldAccess AccessBuilder::ForValue() { |
FieldAccess AccessBuilder::ForArgumentsLength() { |
int offset = |
JSObject::kHeaderSize + Heap::kArgumentsLengthIndex * kPointerSize; |
- FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
+ FieldAccess access = {kTaggedBase, offset, "Arguments::length", Type::Any(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -236,7 +239,7 @@ FieldAccess AccessBuilder::ForArgumentsLength() { |
FieldAccess AccessBuilder::ForArgumentsCallee() { |
int offset = |
JSObject::kHeaderSize + Heap::kArgumentsCalleeIndex * kPointerSize; |
- FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
+ FieldAccess access = {kTaggedBase, offset, "Arguments::callee", Type::Any(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -245,7 +248,7 @@ FieldAccess AccessBuilder::ForArgumentsCallee() { |
// static |
FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) { |
int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index)); |
- FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
+ FieldAccess access = {kTaggedBase, offset, "FixedArray::slot[n]", Type::Any(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -256,7 +259,7 @@ FieldAccess AccessBuilder::ForContextSlot(size_t index) { |
int offset = Context::kHeaderSize + static_cast<int>(index) * kPointerSize; |
DCHECK_EQ(offset, |
Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag); |
- FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(), |
+ FieldAccess access = {kTaggedBase, offset, "Context::slot[n]", Type::Any(), |
MachineType::AnyTagged()}; |
return access; |
} |
@@ -270,8 +273,8 @@ FieldAccess AccessBuilder::ForPropertyCellValue() { |
// static |
FieldAccess AccessBuilder::ForPropertyCellValue(Type* type) { |
- FieldAccess access = {kTaggedBase, PropertyCell::kValueOffset, Handle<Name>(), |
- type, MachineType::AnyTagged()}; |
+ FieldAccess access = {kTaggedBase, PropertyCell::kValueOffset, |
+ "PropertyCall::value", type, MachineType::AnyTagged()}; |
return access; |
} |
@@ -279,7 +282,8 @@ FieldAccess AccessBuilder::ForPropertyCellValue(Type* type) { |
// static |
FieldAccess AccessBuilder::ForSharedFunctionInfoTypeFeedbackVector() { |
FieldAccess access = {kTaggedBase, SharedFunctionInfo::kFeedbackVectorOffset, |
- Handle<Name>(), Type::Any(), MachineType::AnyTagged()}; |
+ "SharedFunctionInfo::feedback_vector", Type::Any(), |
+ MachineType::AnyTagged()}; |
return access; |
} |
@@ -356,7 +360,7 @@ ElementAccess AccessBuilder::ForTypedArrayElement(ExternalArrayType type, |
// static |
FieldAccess AccessBuilder::ForStatsCounter() { |
- FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(), |
+ FieldAccess access = {kUntaggedBase, 0, "##StatsCounter##", |
TypeCache::Get().kInt32, MachineType::Int32()}; |
return access; |
} |
@@ -365,7 +369,7 @@ FieldAccess AccessBuilder::ForStatsCounter() { |
// static |
FieldAccess AccessBuilder::ForFrameCallerFramePtr() { |
FieldAccess access = {kUntaggedBase, StandardFrameConstants::kCallerFPOffset, |
- MaybeHandle<Name>(), Type::Internal(), |
+ "##FrameCallerFP##", Type::Internal(), |
MachineType::Pointer()}; |
return access; |
} |
@@ -374,11 +378,27 @@ FieldAccess AccessBuilder::ForFrameCallerFramePtr() { |
// static |
FieldAccess AccessBuilder::ForFrameMarker() { |
FieldAccess access = {kUntaggedBase, StandardFrameConstants::kMarkerOffset, |
- MaybeHandle<Name>(), Type::Tagged(), |
+ "##FrameMarker##", Type::Tagged(), |
MachineType::AnyTagged()}; |
return access; |
} |
+ |
+// static |
+const char* AccessBuilder::GetNameForTracing(Handle<Name> name, Zone* zone) { |
+#ifdef OBJECT_PRINT |
+ if (FLAG_trace_turbo || FLAG_trace_turbo_graph) { |
+ std::ostringstream os; |
+ name->Print(os); |
+ char* result = zone->NewArray<char>(os.str().length() + 1); |
+ Vector<char> vector(result, os.str().length() + 1); |
+ SNPrintF(vector, "%s", os.str().c_str()); |
+ return result; |
+ } |
+#endif |
+ return nullptr; |
+} |
+ |
} // namespace compiler |
} // namespace internal |
} // namespace v8 |