Commit c48395d2 authored by Jakob Gruber's avatar Jakob Gruber Committed by V8 LUCI CQ

[compiler] Enable concurrent GetPropertyAccessInfo by default

Drive-by: Remove invalid DCHECK(!is_deprecated) since we cannot
guarantee this in a concurrent setting.
Drive-by: Instead, check for deprecation during dependency validation.
Drive-by: Remove addtl. invalid or outdated DCHECKs.

Bug: v8:7790
Change-Id: Ia77a82976b987fe1eaca6178dac6c7b75fbf98fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041666Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75957}
parent 2d6ad4de
......@@ -420,6 +420,7 @@ class FieldRepresentationDependency final : public CompilationDependency {
bool IsValid() const override {
DisallowGarbageCollection no_heap_allocation;
if (owner_.is_deprecated()) return false;
return representation_.Equals(owner_.object()
->instance_descriptors(owner_.isolate())
.GetDetails(descriptor_)
......@@ -456,6 +457,7 @@ class FieldTypeDependency final : public CompilationDependency {
bool IsValid() const override {
DisallowGarbageCollection no_heap_allocation;
if (owner_.is_deprecated()) return false;
return *type_.object() == owner_.object()
->instance_descriptors(owner_.isolate())
.GetFieldType(descriptor_);
......@@ -483,6 +485,7 @@ class FieldConstnessDependency final : public CompilationDependency {
bool IsValid() const override {
DisallowGarbageCollection no_heap_allocation;
if (owner_.is_deprecated()) return false;
return PropertyConstness::kConst ==
owner_.object()
->instance_descriptors(owner_.isolate())
......@@ -941,24 +944,15 @@ CompilationDependency const*
CompilationDependencies::FieldRepresentationDependencyOffTheRecord(
const MapRef& map, InternalIndex descriptor,
Representation representation) const {
DCHECK(!map.IsNeverSerializedHeapObject());
MapRef owner = map.FindFieldOwner(descriptor);
DCHECK(!owner.IsNeverSerializedHeapObject());
CHECK(owner.GetPropertyDetails(descriptor)
.representation()
.Equals(representation));
return zone_->New<FieldRepresentationDependency>(owner, descriptor,
representation);
return zone_->New<FieldRepresentationDependency>(
map.FindFieldOwner(descriptor), descriptor, representation);
}
CompilationDependency const*
CompilationDependencies::FieldTypeDependencyOffTheRecord(
const MapRef& map, InternalIndex descriptor, const ObjectRef& type) const {
DCHECK(!map.IsNeverSerializedHeapObject());
MapRef owner = map.FindFieldOwner(descriptor);
DCHECK(!owner.IsNeverSerializedHeapObject());
CHECK(owner.GetFieldType(descriptor).equals(type));
return zone_->New<FieldTypeDependency>(owner, descriptor, type);
return zone_->New<FieldTypeDependency>(map.FindFieldOwner(descriptor),
descriptor, type);
}
} // namespace compiler
......
......@@ -2702,7 +2702,6 @@ bool MapRef::IsPrimitiveMap() const {
MapRef MapRef::FindFieldOwner(InternalIndex descriptor_index) const {
CHECK_LT(descriptor_index.as_int(), NumberOfOwnDescriptors());
CHECK(!is_deprecated());
if (data_->should_access_heap() || broker()->is_concurrent_inlining()) {
// TODO(solanes, v8:7790): Consider caching the result of the field owner on
// the descriptor array. It would be useful for same map as well as any
......
......@@ -698,7 +698,7 @@ DEFINE_NEG_IMPLICATION(stress_concurrent_inlining, lazy_feedback_allocation)
DEFINE_WEAK_VALUE_IMPLICATION(stress_concurrent_inlining, interrupt_budget,
15 * KB)
DEFINE_BOOL(
turbo_concurrent_get_property_access_info, false,
turbo_concurrent_get_property_access_info, true,
"concurrently call GetPropertyAccessInfo (only with --concurrent-inlining)")
DEFINE_INT(max_serializer_nesting, 25,
"maximum levels for nesting child serializers")
......
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