Revert "[TurboFan] Don't serialize read-only heap objects"
This reverts commit 9f18e55ff0
.
Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/29660
Original change's description:
> [TurboFan] Don't serialize read-only heap objects
>
> Read-only heap objects are immutable and immovable. It is safe to access
> these objects directly from the heap. Not having to serialize them
> reduces the time we spend on main thread especially for TurboProp.
>
> Bug: v8:9684
> Change-Id: Ibabb7076af50c9007d2a8ed57fe257406958fb6a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955596
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Mythri Alle <mythria@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65490}
TBR=mvstanton@chromium.org,neis@chromium.org,mythria@chromium.org,mslekova@chromium.org
Change-Id: If2d8649cdc083f7d064684352501320a96a1ba2c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9684
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973732
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65492}
This commit is contained in:
parent
bf8ef94cfe
commit
03c9de7348
File diff suppressed because it is too large
Load Diff
@ -18,7 +18,6 @@
|
||||
#include "src/objects/feedback-vector.h"
|
||||
#include "src/objects/function-kind.h"
|
||||
#include "src/objects/objects.h"
|
||||
#include "src/utils/address-map.h"
|
||||
#include "src/utils/ostreams.h"
|
||||
#include "src/zone/zone-containers.h"
|
||||
|
||||
@ -85,7 +84,7 @@ class V8_EXPORT_PRIVATE JSHeapBroker {
|
||||
void InitializeAndStartSerializing(Handle<NativeContext> native_context);
|
||||
|
||||
Isolate* isolate() const { return isolate_; }
|
||||
Zone* zone() const { return zone_; }
|
||||
Zone* zone() const { return current_zone_; }
|
||||
bool tracing_enabled() const { return tracing_enabled_; }
|
||||
|
||||
enum BrokerMode { kDisabled, kSerializing, kSerialized, kRetired };
|
||||
@ -98,9 +97,8 @@ class V8_EXPORT_PRIVATE JSHeapBroker {
|
||||
void PrintRefsAnalysis() const;
|
||||
#endif // DEBUG
|
||||
|
||||
// Retruns the handle from root index table for read only heap objects.
|
||||
Handle<Object> GetRootHandle(Object object);
|
||||
|
||||
// Returns nullptr iff handle unknown.
|
||||
ObjectData* GetData(Handle<Object>) const;
|
||||
// Never returns nullptr.
|
||||
ObjectData* GetOrCreateData(Handle<Object>);
|
||||
// Like the previous but wraps argument in handle first (for convenience).
|
||||
@ -195,8 +193,6 @@ class V8_EXPORT_PRIVATE JSHeapBroker {
|
||||
void IncrementTracingIndentation();
|
||||
void DecrementTracingIndentation();
|
||||
|
||||
RootIndexMap const& root_index_map() { return root_index_map_; }
|
||||
|
||||
private:
|
||||
friend class HeapObjectRef;
|
||||
friend class ObjectRef;
|
||||
@ -225,16 +221,17 @@ class V8_EXPORT_PRIVATE JSHeapBroker {
|
||||
ProcessedFeedback const& ReadFeedbackForTemplateObject(
|
||||
FeedbackSource const& source);
|
||||
|
||||
void InitializeRefsMap();
|
||||
void CollectArrayAndObjectPrototypes();
|
||||
void SerializeTypedArrayStringTags();
|
||||
|
||||
PerIsolateCompilerCache* compiler_cache() const { return compiler_cache_; }
|
||||
|
||||
Isolate* const isolate_;
|
||||
Zone* const zone_ = nullptr;
|
||||
Zone* const broker_zone_;
|
||||
Zone* current_zone_ = nullptr;
|
||||
base::Optional<NativeContextRef> target_native_context_;
|
||||
RefsMap* refs_;
|
||||
RootIndexMap root_index_map_;
|
||||
ZoneUnorderedSet<Handle<JSObject>, Handle<JSObject>::hash,
|
||||
Handle<JSObject>::equal_to>
|
||||
array_and_object_prototypes_;
|
||||
|
Loading…
Reference in New Issue
Block a user