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

Side by Side Diff: runtime/vm/isolate.cc

Issue 2699853002: Sort class IDs before training AppJIT snapshots (Closed)
Patch Set: Add DeleteAllCode Created 3 years, 10 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 | « runtime/vm/isolate.h ('k') | runtime/vm/precompiler.h » ('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 (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/isolate.h" 5 #include "vm/isolate.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "include/dart_native_api.h" 8 #include "include/dart_native_api.h"
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "platform/text_buffer.h" 10 #include "platform/text_buffer.h"
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 tag_table_(GrowableObjectArray::null()), 821 tag_table_(GrowableObjectArray::null()),
822 deoptimized_code_array_(GrowableObjectArray::null()), 822 deoptimized_code_array_(GrowableObjectArray::null()),
823 sticky_error_(Error::null()), 823 sticky_error_(Error::null()),
824 background_compiler_(NULL), 824 background_compiler_(NULL),
825 background_compiler_disabled_depth_(0), 825 background_compiler_disabled_depth_(0),
826 pending_service_extension_calls_(GrowableObjectArray::null()), 826 pending_service_extension_calls_(GrowableObjectArray::null()),
827 registered_service_extension_handlers_(GrowableObjectArray::null()), 827 registered_service_extension_handlers_(GrowableObjectArray::null()),
828 metrics_list_head_(NULL), 828 metrics_list_head_(NULL),
829 compilation_allowed_(true), 829 compilation_allowed_(true),
830 all_classes_finalized_(false), 830 all_classes_finalized_(false),
831 remapping_cids_(false),
831 next_(NULL), 832 next_(NULL),
832 pause_loop_monitor_(NULL), 833 pause_loop_monitor_(NULL),
833 loading_invalidation_gen_(kInvalidGen), 834 loading_invalidation_gen_(kInvalidGen),
834 top_level_parsing_count_(0), 835 top_level_parsing_count_(0),
835 field_list_mutex_(new Mutex()), 836 field_list_mutex_(new Mutex()),
836 boxed_field_list_(GrowableObjectArray::null()), 837 boxed_field_list_(GrowableObjectArray::null()),
837 spawn_count_monitor_(new Monitor()), 838 spawn_count_monitor_(new Monitor()),
838 spawn_count_(0), 839 spawn_count_(0),
839 #define ISOLATE_METRIC_CONSTRUCTORS(type, variable, name, unit) \ 840 #define ISOLATE_METRIC_CONSTRUCTORS(type, variable, name, unit) \
840 metric_##variable##_(), 841 metric_##variable##_(),
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after
1902 #ifndef PRODUCT 1903 #ifndef PRODUCT
1903 if (IsReloading()) { 1904 if (IsReloading()) {
1904 raw_class = reload_context()->GetClassForHeapWalkAt(cid); 1905 raw_class = reload_context()->GetClassForHeapWalkAt(cid);
1905 } else { 1906 } else {
1906 raw_class = class_table()->At(cid); 1907 raw_class = class_table()->At(cid);
1907 } 1908 }
1908 #else 1909 #else
1909 raw_class = class_table()->At(cid); 1910 raw_class = class_table()->At(cid);
1910 #endif // !PRODUCT 1911 #endif // !PRODUCT
1911 ASSERT(raw_class != NULL); 1912 ASSERT(raw_class != NULL);
1912 #if !defined(DART_PRECOMPILER) 1913 ASSERT(remapping_cids_ || raw_class->ptr()->id_ == cid);
1913 // This is temporarily untrue during a class id remap.
1914 ASSERT(raw_class->ptr()->id_ == cid);
1915 #endif
1916 return raw_class; 1914 return raw_class;
1917 } 1915 }
1918 1916
1919 1917
1920 void Isolate::AddPendingDeopt(uword fp, uword pc) { 1918 void Isolate::AddPendingDeopt(uword fp, uword pc) {
1921 // GrowableArray::Add is not atomic and may be interrupt by a profiler 1919 // GrowableArray::Add is not atomic and may be interrupt by a profiler
1922 // stack walk. 1920 // stack walk.
1923 MallocGrowableArray<PendingLazyDeopt>* old_pending_deopts = pending_deopts_; 1921 MallocGrowableArray<PendingLazyDeopt>* old_pending_deopts = pending_deopts_;
1924 MallocGrowableArray<PendingLazyDeopt>* new_pending_deopts = 1922 MallocGrowableArray<PendingLazyDeopt>* new_pending_deopts =
1925 new MallocGrowableArray<PendingLazyDeopt>(old_pending_deopts->length() + 1923 new MallocGrowableArray<PendingLazyDeopt>(old_pending_deopts->length() +
(...skipping 1020 matching lines...) Expand 10 before | Expand all | Expand 10 after
2946 void IsolateSpawnState::DecrementSpawnCount() { 2944 void IsolateSpawnState::DecrementSpawnCount() {
2947 ASSERT(spawn_count_monitor_ != NULL); 2945 ASSERT(spawn_count_monitor_ != NULL);
2948 ASSERT(spawn_count_ != NULL); 2946 ASSERT(spawn_count_ != NULL);
2949 MonitorLocker ml(spawn_count_monitor_); 2947 MonitorLocker ml(spawn_count_monitor_);
2950 ASSERT(*spawn_count_ > 0); 2948 ASSERT(*spawn_count_ > 0);
2951 *spawn_count_ = *spawn_count_ - 1; 2949 *spawn_count_ = *spawn_count_ - 1;
2952 ml.Notify(); 2950 ml.Notify();
2953 } 2951 }
2954 2952
2955 } // namespace dart 2953 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/isolate.h ('k') | runtime/vm/precompiler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698