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

Side by Side Diff: src/isolate.h

Issue 196983011: Clean up some isolate macros. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/isolate.cc » ('j') | 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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 #ifdef ENABLE_DEBUGGER_SUPPORT 302 #ifdef ENABLE_DEBUGGER_SUPPORT
303 303
304 #define ISOLATE_DEBUGGER_INIT_LIST(V) \ 304 #define ISOLATE_DEBUGGER_INIT_LIST(V) \
305 V(DebuggerAgent*, debugger_agent_instance, NULL) 305 V(DebuggerAgent*, debugger_agent_instance, NULL)
306 #else 306 #else
307 307
308 #define ISOLATE_DEBUGGER_INIT_LIST(V) 308 #define ISOLATE_DEBUGGER_INIT_LIST(V)
309 309
310 #endif 310 #endif
311 311
312
313 #if V8_TARGET_ARCH_ARM && !defined(__arm__) || \
314 V8_TARGET_ARCH_A64 && !defined(__aarch64__) || \
315 V8_TARGET_ARCH_MIPS && !defined(__mips__)
316
317 #define ISOLATE_INIT_SIMULATOR_LIST(V) \
318 V(bool, simulator_initialized, false) \
319 V(HashMap*, simulator_i_cache, NULL) \
320 V(Redirection*, simulator_redirection, NULL)
321 #else
322
323 #define ISOLATE_INIT_SIMULATOR_LIST(V)
324
325 #endif
326
327
312 #ifdef DEBUG 328 #ifdef DEBUG
313 329
314 #define ISOLATE_INIT_DEBUG_ARRAY_LIST(V) \ 330 #define ISOLATE_INIT_DEBUG_ARRAY_LIST(V) \
315 V(CommentStatistic, paged_space_comments_statistics, \ 331 V(CommentStatistic, paged_space_comments_statistics, \
316 CommentStatistic::kMaxComments + 1) 332 CommentStatistic::kMaxComments + 1) \
333 V(int, code_kind_statistics, Code::NUMBER_OF_KINDS)
317 #else 334 #else
318 335
319 #define ISOLATE_INIT_DEBUG_ARRAY_LIST(V) 336 #define ISOLATE_INIT_DEBUG_ARRAY_LIST(V)
320 337
321 #endif 338 #endif
322 339
323 #define ISOLATE_INIT_ARRAY_LIST(V) \ 340 #define ISOLATE_INIT_ARRAY_LIST(V) \
324 /* SerializerDeserializer state. */ \ 341 /* SerializerDeserializer state. */ \
325 V(int32_t, jsregexp_static_offsets_vector, kJSRegexpStaticOffsetsVectorSize) \ 342 V(int32_t, jsregexp_static_offsets_vector, kJSRegexpStaticOffsetsVectorSize) \
326 V(int, bad_char_shift_table, kUC16AlphabetSize) \ 343 V(int, bad_char_shift_table, kUC16AlphabetSize) \
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 /* Serializer state. */ \ 375 /* Serializer state. */ \
359 V(ExternalReferenceTable*, external_reference_table, NULL) \ 376 V(ExternalReferenceTable*, external_reference_table, NULL) \
360 /* AstNode state. */ \ 377 /* AstNode state. */ \
361 V(int, ast_node_id, 0) \ 378 V(int, ast_node_id, 0) \
362 V(unsigned, ast_node_count, 0) \ 379 V(unsigned, ast_node_count, 0) \
363 V(bool, microtask_pending, false) \ 380 V(bool, microtask_pending, false) \
364 V(bool, autorun_microtasks, true) \ 381 V(bool, autorun_microtasks, true) \
365 V(HStatistics*, hstatistics, NULL) \ 382 V(HStatistics*, hstatistics, NULL) \
366 V(HTracer*, htracer, NULL) \ 383 V(HTracer*, htracer, NULL) \
367 V(CodeTracer*, code_tracer, NULL) \ 384 V(CodeTracer*, code_tracer, NULL) \
385 V(bool, fp_stubs_generated, false) \
386 V(int, max_available_threads, 0) \
387 ISOLATE_INIT_SIMULATOR_LIST(V) \
368 ISOLATE_DEBUGGER_INIT_LIST(V) 388 ISOLATE_DEBUGGER_INIT_LIST(V)
369 389
370 #define THREAD_LOCAL_TOP_ACCESSOR(type, name) \ 390 #define THREAD_LOCAL_TOP_ACCESSOR(type, name) \
371 inline void set_##name(type v) { thread_local_top_.name##_ = v; } \ 391 inline void set_##name(type v) { thread_local_top_.name##_ = v; } \
372 inline type name() const { return thread_local_top_.name##_; } 392 inline type name() const { return thread_local_top_.name##_; }
373 393
374 394
375 class Isolate { 395 class Isolate {
376 // These forward declarations are required to make the friend declarations in 396 // These forward declarations are required to make the friend declarations in
377 // PerIsolateThreadData work on some older versions of gcc. 397 // PerIsolateThreadData work on some older versions of gcc.
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 ConsStringIteratorOp* objects_string_compare_iterator_b() { 950 ConsStringIteratorOp* objects_string_compare_iterator_b() {
931 return &objects_string_compare_iterator_b_; 951 return &objects_string_compare_iterator_b_;
932 } 952 }
933 953
934 StaticResource<ConsStringIteratorOp>* objects_string_iterator() { 954 StaticResource<ConsStringIteratorOp>* objects_string_iterator() {
935 return &objects_string_iterator_; 955 return &objects_string_iterator_;
936 } 956 }
937 957
938 RuntimeState* runtime_state() { return &runtime_state_; } 958 RuntimeState* runtime_state() { return &runtime_state_; }
939 959
940 FIELD_ACCESSOR(bool, fp_stubs_generated);
941
942 Builtins* builtins() { return &builtins_; } 960 Builtins* builtins() { return &builtins_; }
943 961
944 void NotifyExtensionInstalled() { 962 void NotifyExtensionInstalled() {
945 has_installed_extensions_ = true; 963 has_installed_extensions_ = true;
946 } 964 }
947 965
948 bool has_installed_extensions() { return has_installed_extensions_; } 966 bool has_installed_extensions() { return has_installed_extensions_; }
949 967
950 unibrow::Mapping<unibrow::Ecma262Canonicalize>* 968 unibrow::Mapping<unibrow::Ecma262Canonicalize>*
951 regexp_macro_assembler_canonicalize() { 969 regexp_macro_assembler_canonicalize() {
(...skipping 25 matching lines...) Expand all
977 995
978 CpuProfiler* cpu_profiler() const { return cpu_profiler_; } 996 CpuProfiler* cpu_profiler() const { return cpu_profiler_; }
979 HeapProfiler* heap_profiler() const { return heap_profiler_; } 997 HeapProfiler* heap_profiler() const { return heap_profiler_; }
980 998
981 #ifdef DEBUG 999 #ifdef DEBUG
982 HistogramInfo* heap_histograms() { return heap_histograms_; } 1000 HistogramInfo* heap_histograms() { return heap_histograms_; }
983 1001
984 JSObject::SpillInformation* js_spill_information() { 1002 JSObject::SpillInformation* js_spill_information() {
985 return &js_spill_information_; 1003 return &js_spill_information_;
986 } 1004 }
987
988 int* code_kind_statistics() { return code_kind_statistics_; }
989 #endif
990
991 #if V8_TARGET_ARCH_ARM && !defined(__arm__) || \
992 V8_TARGET_ARCH_A64 && !defined(__aarch64__) || \
993 V8_TARGET_ARCH_MIPS && !defined(__mips__)
994 FIELD_ACCESSOR(bool, simulator_initialized)
995 FIELD_ACCESSOR(HashMap*, simulator_i_cache)
996 FIELD_ACCESSOR(Redirection*, simulator_redirection)
997 #endif 1005 #endif
998 1006
999 Factory* factory() { return reinterpret_cast<Factory*>(this); } 1007 Factory* factory() { return reinterpret_cast<Factory*>(this); }
1000 1008
1001 static const int kJSRegexpStaticOffsetsVectorSize = 128; 1009 static const int kJSRegexpStaticOffsetsVectorSize = 128;
1002 1010
1003 THREAD_LOCAL_TOP_ACCESSOR(ExternalCallbackScope*, external_callback_scope) 1011 THREAD_LOCAL_TOP_ACCESSOR(ExternalCallbackScope*, external_callback_scope)
1004 1012
1005 THREAD_LOCAL_TOP_ACCESSOR(StateTag, current_vm_state) 1013 THREAD_LOCAL_TOP_ACCESSOR(StateTag, current_vm_state)
1006 1014
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 CallInterfaceDescriptor* call_descriptor(CallDescriptorKey index); 1064 CallInterfaceDescriptor* call_descriptor(CallDescriptorKey index);
1057 1065
1058 void IterateDeferredHandles(ObjectVisitor* visitor); 1066 void IterateDeferredHandles(ObjectVisitor* visitor);
1059 void LinkDeferredHandles(DeferredHandles* deferred_handles); 1067 void LinkDeferredHandles(DeferredHandles* deferred_handles);
1060 void UnlinkDeferredHandles(DeferredHandles* deferred_handles); 1068 void UnlinkDeferredHandles(DeferredHandles* deferred_handles);
1061 1069
1062 #ifdef DEBUG 1070 #ifdef DEBUG
1063 bool IsDeferredHandle(Object** location); 1071 bool IsDeferredHandle(Object** location);
1064 #endif // DEBUG 1072 #endif // DEBUG
1065 1073
1066 FIELD_ACCESSOR(int, max_available_threads);
1067
1068 bool concurrent_recompilation_enabled() { 1074 bool concurrent_recompilation_enabled() {
1069 // Thread is only available with flag enabled. 1075 // Thread is only available with flag enabled.
1070 ASSERT(optimizing_compiler_thread_ == NULL || 1076 ASSERT(optimizing_compiler_thread_ == NULL ||
1071 FLAG_concurrent_recompilation); 1077 FLAG_concurrent_recompilation);
1072 return optimizing_compiler_thread_ != NULL; 1078 return optimizing_compiler_thread_ != NULL;
1073 } 1079 }
1074 1080
1075 bool concurrent_osr_enabled() const { 1081 bool concurrent_osr_enabled() const {
1076 // Thread is only available with flag enabled. 1082 // Thread is only available with flag enabled.
1077 ASSERT(optimizing_compiler_thread_ == NULL || 1083 ASSERT(optimizing_compiler_thread_ == NULL ||
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 HandleScopeData handle_scope_data_; 1267 HandleScopeData handle_scope_data_;
1262 HandleScopeImplementer* handle_scope_implementer_; 1268 HandleScopeImplementer* handle_scope_implementer_;
1263 UnicodeCache* unicode_cache_; 1269 UnicodeCache* unicode_cache_;
1264 Zone runtime_zone_; 1270 Zone runtime_zone_;
1265 InnerPointerToCodeCache* inner_pointer_to_code_cache_; 1271 InnerPointerToCodeCache* inner_pointer_to_code_cache_;
1266 ConsStringIteratorOp* write_iterator_; 1272 ConsStringIteratorOp* write_iterator_;
1267 GlobalHandles* global_handles_; 1273 GlobalHandles* global_handles_;
1268 EternalHandles* eternal_handles_; 1274 EternalHandles* eternal_handles_;
1269 ThreadManager* thread_manager_; 1275 ThreadManager* thread_manager_;
1270 RuntimeState runtime_state_; 1276 RuntimeState runtime_state_;
1271 bool fp_stubs_generated_;
1272 Builtins builtins_; 1277 Builtins builtins_;
1273 bool has_installed_extensions_; 1278 bool has_installed_extensions_;
1274 StringTracker* string_tracker_; 1279 StringTracker* string_tracker_;
1275 unibrow::Mapping<unibrow::Ecma262UnCanonicalize> jsregexp_uncanonicalize_; 1280 unibrow::Mapping<unibrow::Ecma262UnCanonicalize> jsregexp_uncanonicalize_;
1276 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_; 1281 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_;
1277 ConsStringIteratorOp objects_string_compare_iterator_a_; 1282 ConsStringIteratorOp objects_string_compare_iterator_a_;
1278 ConsStringIteratorOp objects_string_compare_iterator_b_; 1283 ConsStringIteratorOp objects_string_compare_iterator_b_;
1279 StaticResource<ConsStringIteratorOp> objects_string_iterator_; 1284 StaticResource<ConsStringIteratorOp> objects_string_iterator_;
1280 unibrow::Mapping<unibrow::Ecma262Canonicalize> 1285 unibrow::Mapping<unibrow::Ecma262Canonicalize>
1281 regexp_macro_assembler_canonicalize_; 1286 regexp_macro_assembler_canonicalize_;
1282 RegExpStack* regexp_stack_; 1287 RegExpStack* regexp_stack_;
1283 DateCache* date_cache_; 1288 DateCache* date_cache_;
1284 unibrow::Mapping<unibrow::Ecma262Canonicalize> interp_canonicalize_mapping_; 1289 unibrow::Mapping<unibrow::Ecma262Canonicalize> interp_canonicalize_mapping_;
1285 CodeStubInterfaceDescriptor* code_stub_interface_descriptors_; 1290 CodeStubInterfaceDescriptor* code_stub_interface_descriptors_;
1286 CallInterfaceDescriptor* call_descriptors_; 1291 CallInterfaceDescriptor* call_descriptors_;
1287 RandomNumberGenerator* random_number_generator_; 1292 RandomNumberGenerator* random_number_generator_;
1288 1293
1289 // True if fatal error has been signaled for this isolate. 1294 // True if fatal error has been signaled for this isolate.
1290 bool has_fatal_error_; 1295 bool has_fatal_error_;
1291 1296
1292 // True if we are using the Crankshaft optimizing compiler. 1297 // True if we are using the Crankshaft optimizing compiler.
1293 bool use_crankshaft_; 1298 bool use_crankshaft_;
1294 1299
1295 // True if this isolate was initialized from a snapshot. 1300 // True if this isolate was initialized from a snapshot.
1296 bool initialized_from_snapshot_; 1301 bool initialized_from_snapshot_;
1297 1302
1298 // Time stamp at initialization. 1303 // Time stamp at initialization.
1299 double time_millis_at_init_; 1304 double time_millis_at_init_;
1300 1305
1301 #if V8_TARGET_ARCH_ARM && !defined(__arm__) || \
1302 V8_TARGET_ARCH_A64 && !defined(__aarch64__) || \
1303 V8_TARGET_ARCH_MIPS && !defined(__mips__)
1304 bool simulator_initialized_;
1305 HashMap* simulator_i_cache_;
1306 Redirection* simulator_redirection_;
1307 #endif
1308
1309 #ifdef DEBUG 1306 #ifdef DEBUG
1310 // A static array of histogram info for each type. 1307 // A static array of histogram info for each type.
1311 HistogramInfo heap_histograms_[LAST_TYPE + 1]; 1308 HistogramInfo heap_histograms_[LAST_TYPE + 1];
1312 JSObject::SpillInformation js_spill_information_; 1309 JSObject::SpillInformation js_spill_information_;
1313 int code_kind_statistics_[Code::NUMBER_OF_KINDS];
1314 #endif 1310 #endif
1315 1311
1316 #ifdef ENABLE_DEBUGGER_SUPPORT 1312 #ifdef ENABLE_DEBUGGER_SUPPORT
1317 Debugger* debugger_; 1313 Debugger* debugger_;
1318 Debug* debug_; 1314 Debug* debug_;
1319 #endif 1315 #endif
1320 CpuProfiler* cpu_profiler_; 1316 CpuProfiler* cpu_profiler_;
1321 HeapProfiler* heap_profiler_; 1317 HeapProfiler* heap_profiler_;
1322 FunctionEntryHook function_entry_hook_; 1318 FunctionEntryHook function_entry_hook_;
1323 1319
(...skipping 16 matching lines...) Expand all
1340 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) 1336 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET)
1341 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) 1337 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET)
1342 #undef ISOLATE_FIELD_OFFSET 1338 #undef ISOLATE_FIELD_OFFSET
1343 #endif 1339 #endif
1344 1340
1345 DeferredHandles* deferred_handles_head_; 1341 DeferredHandles* deferred_handles_head_;
1346 OptimizingCompilerThread* optimizing_compiler_thread_; 1342 OptimizingCompilerThread* optimizing_compiler_thread_;
1347 SweeperThread** sweeper_thread_; 1343 SweeperThread** sweeper_thread_;
1348 int num_sweeper_threads_; 1344 int num_sweeper_threads_;
1349 1345
1350 // TODO(yangguo): This will become obsolete once ResourceConstraints
1351 // becomes an argument to Isolate constructor.
1352 int max_available_threads_;
1353
1354 // Counts deopt points if deopt_every_n_times is enabled. 1346 // Counts deopt points if deopt_every_n_times is enabled.
1355 unsigned int stress_deopt_count_; 1347 unsigned int stress_deopt_count_;
1356 1348
1357 int next_optimization_id_; 1349 int next_optimization_id_;
1358 1350
1359 friend class ExecutionAccess; 1351 friend class ExecutionAccess;
1360 friend class HandleScopeImplementer; 1352 friend class HandleScopeImplementer;
1361 friend class IsolateInitializer; 1353 friend class IsolateInitializer;
1362 friend class OptimizingCompilerThread; 1354 friend class OptimizingCompilerThread;
1363 friend class SweeperThread; 1355 friend class SweeperThread;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1560 } 1552 }
1561 1553
1562 EmbeddedVector<char, 128> filename_; 1554 EmbeddedVector<char, 128> filename_;
1563 FILE* file_; 1555 FILE* file_;
1564 int scope_depth_; 1556 int scope_depth_;
1565 }; 1557 };
1566 1558
1567 } } // namespace v8::internal 1559 } } // namespace v8::internal
1568 1560
1569 #endif // V8_ISOLATE_H_ 1561 #endif // V8_ISOLATE_H_
OLDNEW
« no previous file with comments | « no previous file | src/isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698