Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Side by Side Diff: src/isolate.cc

Issue 1290883004: [Interpreter] Move interpreter initialization until after snapshot deserialization. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdlib.h> 5 #include <stdlib.h>
6 6
7 #include <fstream> // NOLINT(readability/streams) 7 #include <fstream> // NOLINT(readability/streams)
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "src/v8.h" 10 #include "src/v8.h"
(...skipping 2149 matching lines...) Expand 10 before | Expand all | Expand 10 after
2160 if (create_heap_objects) { 2160 if (create_heap_objects) {
2161 // Terminate the cache array with the sentinel so we can iterate. 2161 // Terminate the cache array with the sentinel so we can iterate.
2162 partial_snapshot_cache_.Add(heap_.undefined_value()); 2162 partial_snapshot_cache_.Add(heap_.undefined_value());
2163 } 2163 }
2164 2164
2165 InitializeThreadLocal(); 2165 InitializeThreadLocal();
2166 2166
2167 bootstrapper_->Initialize(create_heap_objects); 2167 bootstrapper_->Initialize(create_heap_objects);
2168 builtins_.SetUp(this, create_heap_objects); 2168 builtins_.SetUp(this, create_heap_objects);
2169 2169
2170 if (FLAG_ignition) {
2171 interpreter_->Initialize();
2172 }
2173
2174 if (FLAG_log_internal_timer_events) { 2170 if (FLAG_log_internal_timer_events) {
2175 set_event_logger(Logger::DefaultEventLoggerSentinel); 2171 set_event_logger(Logger::DefaultEventLoggerSentinel);
2176 } 2172 }
2177 2173
2178 if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) { 2174 if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) {
2179 PrintF("Concurrent recompilation has been disabled for tracing.\n"); 2175 PrintF("Concurrent recompilation has been disabled for tracing.\n");
2180 } else if (OptimizingCompileDispatcher::Enabled()) { 2176 } else if (OptimizingCompileDispatcher::Enabled()) {
2181 optimizing_compile_dispatcher_ = new OptimizingCompileDispatcher(this); 2177 optimizing_compile_dispatcher_ = new OptimizingCompileDispatcher(this);
2182 } 2178 }
2183 2179
2184 // Initialize runtime profiler before deserialization, because collections may 2180 // Initialize runtime profiler before deserialization, because collections may
2185 // occur, clearing/updating ICs. 2181 // occur, clearing/updating ICs.
2186 runtime_profiler_ = new RuntimeProfiler(this); 2182 runtime_profiler_ = new RuntimeProfiler(this);
2187 2183
2188 if (create_heap_objects) { 2184 if (create_heap_objects) {
2189 if (!bootstrapper_->CreateCodeStubContext(this)) { 2185 if (!bootstrapper_->CreateCodeStubContext(this)) {
2190 return false; 2186 return false;
2191 } 2187 }
2192 } 2188 }
2193 2189
2194 // If we are deserializing, read the state into the now-empty heap. 2190 // If we are deserializing, read the state into the now-empty heap.
2195 if (!create_heap_objects) { 2191 if (!create_heap_objects) {
2196 des->Deserialize(this); 2192 des->Deserialize(this);
2197 } 2193 }
2198 stub_cache_->Initialize(); 2194 stub_cache_->Initialize();
2199 2195
2196 if (FLAG_ignition) {
2197 interpreter_->Initialize();
2198 }
2199
2200 // Finish initialization of ThreadLocal after deserialization is done. 2200 // Finish initialization of ThreadLocal after deserialization is done.
2201 clear_pending_exception(); 2201 clear_pending_exception();
2202 clear_pending_message(); 2202 clear_pending_message();
2203 clear_scheduled_exception(); 2203 clear_scheduled_exception();
2204 2204
2205 // Deserializing may put strange things in the root array's copy of the 2205 // Deserializing may put strange things in the root array's copy of the
2206 // stack guard. 2206 // stack guard.
2207 heap_.SetStackLimits(); 2207 heap_.SetStackLimits();
2208 2208
2209 // Quiet the heap NaN if needed on target platform. 2209 // Quiet the heap NaN if needed on target platform.
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
2825 // Then check whether this scope intercepts. 2825 // Then check whether this scope intercepts.
2826 if ((flag & intercept_mask_)) { 2826 if ((flag & intercept_mask_)) {
2827 intercepted_flags_ |= flag; 2827 intercepted_flags_ |= flag;
2828 return true; 2828 return true;
2829 } 2829 }
2830 return false; 2830 return false;
2831 } 2831 }
2832 2832
2833 } // namespace internal 2833 } // namespace internal
2834 } // namespace v8 2834 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698