Commit 50b2ecf9 authored by jgruber's avatar jgruber Committed by Commit Bot

[builtins] Reduce lifetime of builtins constant table builder

Code generation introduces indirections if a builder exists (and the
serializer is active). These indirections are not necessary outside of
embedded builtins (e.g. in bytecode handlers), so let's reduce its
lifetime.

Bug: v8:6666
Change-Id: I57207012997786f599f79f0982da61eea26f3e22
Reviewed-on: https://chromium-review.googlesource.com/1059114
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53194}
parent ab722736
......@@ -3034,18 +3034,26 @@ bool Isolate::Init(StartupDeserializer* des) {
if (create_heap_objects) {
// Terminate the partial snapshot cache so we can iterate.
partial_snapshot_cache_.push_back(heap_.undefined_value());
#ifdef V8_EMBEDDED_BUILTINS
if (serializer_enabled()) {
builtins_constants_table_builder_ =
new BuiltinsConstantsTableBuilder(this);
}
#endif
}
InitializeThreadLocal();
bootstrapper_->Initialize(create_heap_objects);
#ifdef V8_EMBEDDED_BUILTINS
if (create_heap_objects && serializer_enabled()) {
builtins_constants_table_builder_ = new BuiltinsConstantsTableBuilder(this);
}
#endif
setup_delegate_->SetupBuiltins(this);
#ifdef V8_EMBEDDED_BUILTINS
if (create_heap_objects && serializer_enabled()) {
builtins_constants_table_builder_->Finalize();
delete builtins_constants_table_builder_;
builtins_constants_table_builder_ = nullptr;
}
#endif // V8_EMBEDDED_BUILTINS
if (create_heap_objects) heap_.CreateFixedStubs();
if (FLAG_log_internal_timer_events) {
......@@ -3072,14 +3080,6 @@ bool Isolate::Init(StartupDeserializer* des) {
store_stub_cache_->Initialize();
setup_delegate_->SetupInterpreter(interpreter_);
#ifdef V8_EMBEDDED_BUILTINS
if (create_heap_objects && serializer_enabled()) {
builtins_constants_table_builder_->Finalize();
delete builtins_constants_table_builder_;
builtins_constants_table_builder_ = nullptr;
}
#endif // V8_EMBEDDED_BUILTINS
heap_.NotifyDeserializationComplete();
}
delete setup_delegate_;
......
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