| 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 |