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

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

Issue 1418863003: Precompilation: Generate instance calls as IC calls that can switch to Megamoprhic calls. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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
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 #ifndef VM_ISOLATE_H_ 5 #ifndef VM_ISOLATE_H_
6 #define VM_ISOLATE_H_ 6 #define VM_ISOLATE_H_
7 7
8 #include "include/dart_api.h" 8 #include "include/dart_api.h"
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "vm/atomic.h" 10 #include "vm/atomic.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 131
132 StoreBuffer* store_buffer() { return store_buffer_; } 132 StoreBuffer* store_buffer() { return store_buffer_; }
133 133
134 ThreadRegistry* thread_registry() { return thread_registry_; } 134 ThreadRegistry* thread_registry() { return thread_registry_; }
135 135
136 ClassTable* class_table() { return &class_table_; } 136 ClassTable* class_table() { return &class_table_; }
137 static intptr_t class_table_offset() { 137 static intptr_t class_table_offset() {
138 return OFFSET_OF(Isolate, class_table_); 138 return OFFSET_OF(Isolate, class_table_);
139 } 139 }
140 140
141 static intptr_t ic_miss_function_offset() {
142 return OFFSET_OF(Isolate, ic_miss_function_);
143 }
144
141 Dart_MessageNotifyCallback message_notify_callback() const { 145 Dart_MessageNotifyCallback message_notify_callback() const {
142 return message_notify_callback_; 146 return message_notify_callback_;
143 } 147 }
144 void set_message_notify_callback(Dart_MessageNotifyCallback value) { 148 void set_message_notify_callback(Dart_MessageNotifyCallback value) {
145 message_notify_callback_ = value; 149 message_notify_callback_ = value;
146 } 150 }
147 151
148 // Limited public access to BaseIsolate::mutator_thread_ for code that 152 // Limited public access to BaseIsolate::mutator_thread_ for code that
149 // must treat the mutator as the default or a special case. Prefer code 153 // must treat the mutator as the default or a special case. Prefer code
150 // that works uniformly across all threads. 154 // that works uniformly across all threads.
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 591
588 RawGrowableObjectArray* tag_table() const { return tag_table_; } 592 RawGrowableObjectArray* tag_table() const { return tag_table_; }
589 void set_tag_table(const GrowableObjectArray& value); 593 void set_tag_table(const GrowableObjectArray& value);
590 594
591 RawUserTag* current_tag() const { return current_tag_; } 595 RawUserTag* current_tag() const { return current_tag_; }
592 void set_current_tag(const UserTag& tag); 596 void set_current_tag(const UserTag& tag);
593 597
594 RawUserTag* default_tag() const { return default_tag_; } 598 RawUserTag* default_tag() const { return default_tag_; }
595 void set_default_tag(const UserTag& tag); 599 void set_default_tag(const UserTag& tag);
596 600
601 void set_ic_miss_function(const Function& func);
602
597 Metric* metrics_list_head() { 603 Metric* metrics_list_head() {
598 return metrics_list_head_; 604 return metrics_list_head_;
599 } 605 }
600 606
601 void set_metrics_list_head(Metric* metric) { 607 void set_metrics_list_head(Metric* metric) {
602 metrics_list_head_ = metric; 608 metrics_list_head_ = metric;
603 } 609 }
604 610
605 RawGrowableObjectArray* deoptimized_code_array() const { 611 RawGrowableObjectArray* deoptimized_code_array() const {
606 return deoptimized_code_array_; 612 return deoptimized_code_array_;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 return mutator_thread_->zone(); 723 return mutator_thread_->zone();
718 } 724 }
719 725
720 // Accessed from generated code: 726 // Accessed from generated code:
721 uword stack_limit_; 727 uword stack_limit_;
722 StoreBuffer* store_buffer_; 728 StoreBuffer* store_buffer_;
723 Heap* heap_; 729 Heap* heap_;
724 uword user_tag_; 730 uword user_tag_;
725 RawUserTag* current_tag_; 731 RawUserTag* current_tag_;
726 RawUserTag* default_tag_; 732 RawUserTag* default_tag_;
733 RawFunction* ic_miss_function_;
727 ClassTable class_table_; 734 ClassTable class_table_;
728 bool single_step_; 735 bool single_step_;
729 736
730 ThreadRegistry* thread_registry_; 737 ThreadRegistry* thread_registry_;
731 Dart_MessageNotifyCallback message_notify_callback_; 738 Dart_MessageNotifyCallback message_notify_callback_;
732 char* name_; 739 char* name_;
733 char* debugger_name_; 740 char* debugger_name_;
734 int64_t start_time_; 741 int64_t start_time_;
735 Dart_Port main_port_; 742 Dart_Port main_port_;
736 Dart_Port origin_id_; // Isolates created by spawnFunc have some origin id. 743 Dart_Port origin_id_; // Isolates created by spawnFunc have some origin id.
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 uint8_t* serialized_message_; 978 uint8_t* serialized_message_;
972 intptr_t serialized_message_len_; 979 intptr_t serialized_message_len_;
973 Isolate::Flags isolate_flags_; 980 Isolate::Flags isolate_flags_;
974 bool paused_; 981 bool paused_;
975 bool errors_are_fatal_; 982 bool errors_are_fatal_;
976 }; 983 };
977 984
978 } // namespace dart 985 } // namespace dart
979 986
980 #endif // VM_ISOLATE_H_ 987 #endif // VM_ISOLATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698