OLD | NEW |
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 #ifndef V8_ISOLATE_H_ | 5 #ifndef V8_ISOLATE_H_ |
6 #define V8_ISOLATE_H_ | 6 #define V8_ISOLATE_H_ |
7 | 7 |
8 #include <queue> | 8 #include <queue> |
9 #include "include/v8-debug.h" | 9 #include "include/v8-debug.h" |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
11 #include "src/assert-scope.h" | 11 #include "src/assert-scope.h" |
12 #include "src/base/atomicops.h" | 12 #include "src/base/atomicops.h" |
13 #include "src/builtins.h" | 13 #include "src/builtins.h" |
14 #include "src/contexts.h" | 14 #include "src/contexts.h" |
15 #include "src/date.h" | 15 #include "src/date.h" |
16 #include "src/execution.h" | 16 #include "src/execution.h" |
17 #include "src/frames.h" | 17 #include "src/frames.h" |
18 #include "src/global-handles.h" | 18 #include "src/global-handles.h" |
19 #include "src/handles.h" | 19 #include "src/handles.h" |
20 #include "src/hashmap.h" | 20 #include "src/hashmap.h" |
21 #include "src/heap/heap.h" | 21 #include "src/heap/heap.h" |
22 #include "src/optimizing-compiler-thread.h" | 22 #include "src/optimizing-compile-dispatcher.h" |
23 #include "src/regexp-stack.h" | 23 #include "src/regexp-stack.h" |
24 #include "src/runtime/runtime.h" | 24 #include "src/runtime/runtime.h" |
25 #include "src/runtime-profiler.h" | 25 #include "src/runtime-profiler.h" |
26 #include "src/zone.h" | 26 #include "src/zone.h" |
27 | 27 |
28 namespace v8 { | 28 namespace v8 { |
29 | 29 |
30 namespace base { | 30 namespace base { |
31 class RandomNumberGenerator; | 31 class RandomNumberGenerator; |
32 } | 32 } |
(...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1021 void IterateDeferredHandles(ObjectVisitor* visitor); | 1021 void IterateDeferredHandles(ObjectVisitor* visitor); |
1022 void LinkDeferredHandles(DeferredHandles* deferred_handles); | 1022 void LinkDeferredHandles(DeferredHandles* deferred_handles); |
1023 void UnlinkDeferredHandles(DeferredHandles* deferred_handles); | 1023 void UnlinkDeferredHandles(DeferredHandles* deferred_handles); |
1024 | 1024 |
1025 #ifdef DEBUG | 1025 #ifdef DEBUG |
1026 bool IsDeferredHandle(Object** location); | 1026 bool IsDeferredHandle(Object** location); |
1027 #endif // DEBUG | 1027 #endif // DEBUG |
1028 | 1028 |
1029 bool concurrent_recompilation_enabled() { | 1029 bool concurrent_recompilation_enabled() { |
1030 // Thread is only available with flag enabled. | 1030 // Thread is only available with flag enabled. |
1031 DCHECK(optimizing_compiler_thread_ == NULL || | 1031 DCHECK(optimizing_compile_dispatcher_ == NULL || |
1032 FLAG_concurrent_recompilation); | 1032 FLAG_concurrent_recompilation); |
1033 return optimizing_compiler_thread_ != NULL; | 1033 return optimizing_compile_dispatcher_ != NULL; |
1034 } | 1034 } |
1035 | 1035 |
1036 bool concurrent_osr_enabled() const { | 1036 bool concurrent_osr_enabled() const { |
1037 // Thread is only available with flag enabled. | 1037 // Thread is only available with flag enabled. |
1038 DCHECK(optimizing_compiler_thread_ == NULL || | 1038 DCHECK(optimizing_compile_dispatcher_ == NULL || |
1039 FLAG_concurrent_recompilation); | 1039 FLAG_concurrent_recompilation); |
1040 return optimizing_compiler_thread_ != NULL && FLAG_concurrent_osr; | 1040 return optimizing_compile_dispatcher_ != NULL && FLAG_concurrent_osr; |
1041 } | 1041 } |
1042 | 1042 |
1043 OptimizingCompilerThread* optimizing_compiler_thread() { | 1043 OptimizingCompileDispatcher* optimizing_compile_dispatcher() { |
1044 return optimizing_compiler_thread_; | 1044 return optimizing_compile_dispatcher_; |
1045 } | 1045 } |
1046 | 1046 |
1047 int id() const { return static_cast<int>(id_); } | 1047 int id() const { return static_cast<int>(id_); } |
1048 | 1048 |
1049 HStatistics* GetHStatistics(); | 1049 HStatistics* GetHStatistics(); |
1050 CompilationStatistics* GetTurboStatistics(); | 1050 CompilationStatistics* GetTurboStatistics(); |
1051 HTracer* GetHTracer(); | 1051 HTracer* GetHTracer(); |
1052 CodeTracer* GetCodeTracer(); | 1052 CodeTracer* GetCodeTracer(); |
1053 | 1053 |
1054 void DumpAndResetCompilationStats(); | 1054 void DumpAndResetCompilationStats(); |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1322 // preprocessor defines. Make sure the offsets of these fields agree | 1322 // preprocessor defines. Make sure the offsets of these fields agree |
1323 // between compilation units. | 1323 // between compilation units. |
1324 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ | 1324 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ |
1325 static const intptr_t name##_debug_offset_; | 1325 static const intptr_t name##_debug_offset_; |
1326 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) | 1326 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) |
1327 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) | 1327 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) |
1328 #undef ISOLATE_FIELD_OFFSET | 1328 #undef ISOLATE_FIELD_OFFSET |
1329 #endif | 1329 #endif |
1330 | 1330 |
1331 DeferredHandles* deferred_handles_head_; | 1331 DeferredHandles* deferred_handles_head_; |
1332 OptimizingCompilerThread* optimizing_compiler_thread_; | 1332 OptimizingCompileDispatcher* optimizing_compile_dispatcher_; |
1333 | 1333 |
1334 // Counts deopt points if deopt_every_n_times is enabled. | 1334 // Counts deopt points if deopt_every_n_times is enabled. |
1335 unsigned int stress_deopt_count_; | 1335 unsigned int stress_deopt_count_; |
1336 | 1336 |
1337 int next_optimization_id_; | 1337 int next_optimization_id_; |
1338 | 1338 |
1339 #if TRACE_MAPS | 1339 #if TRACE_MAPS |
1340 int next_unique_sfi_id_; | 1340 int next_unique_sfi_id_; |
1341 #endif | 1341 #endif |
1342 | 1342 |
1343 // List of callbacks when a Call completes. | 1343 // List of callbacks when a Call completes. |
1344 List<CallCompletedCallback> call_completed_callbacks_; | 1344 List<CallCompletedCallback> call_completed_callbacks_; |
1345 | 1345 |
1346 v8::Isolate::UseCounterCallback use_counter_callback_; | 1346 v8::Isolate::UseCounterCallback use_counter_callback_; |
1347 BasicBlockProfiler* basic_block_profiler_; | 1347 BasicBlockProfiler* basic_block_profiler_; |
1348 | 1348 |
1349 List<Object*> partial_snapshot_cache_; | 1349 List<Object*> partial_snapshot_cache_; |
1350 | 1350 |
1351 friend class ExecutionAccess; | 1351 friend class ExecutionAccess; |
1352 friend class HandleScopeImplementer; | 1352 friend class HandleScopeImplementer; |
1353 friend class OptimizingCompilerThread; | 1353 friend class OptimizingCompileDispatcher; |
1354 friend class SweeperThread; | 1354 friend class SweeperThread; |
1355 friend class ThreadManager; | 1355 friend class ThreadManager; |
1356 friend class Simulator; | 1356 friend class Simulator; |
1357 friend class StackGuard; | 1357 friend class StackGuard; |
1358 friend class ThreadId; | 1358 friend class ThreadId; |
1359 friend class TestMemoryAllocatorScope; | 1359 friend class TestMemoryAllocatorScope; |
1360 friend class TestCodeRangeScope; | 1360 friend class TestCodeRangeScope; |
1361 friend class v8::Isolate; | 1361 friend class v8::Isolate; |
1362 friend class v8::Locker; | 1362 friend class v8::Locker; |
1363 friend class v8::Unlocker; | 1363 friend class v8::Unlocker; |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1569 } | 1569 } |
1570 | 1570 |
1571 EmbeddedVector<char, 128> filename_; | 1571 EmbeddedVector<char, 128> filename_; |
1572 FILE* file_; | 1572 FILE* file_; |
1573 int scope_depth_; | 1573 int scope_depth_; |
1574 }; | 1574 }; |
1575 | 1575 |
1576 } } // namespace v8::internal | 1576 } } // namespace v8::internal |
1577 | 1577 |
1578 #endif // V8_ISOLATE_H_ | 1578 #endif // V8_ISOLATE_H_ |
OLD | NEW |