| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ | 5 #ifndef RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ |
| 6 #define RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ | 6 #define RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ |
| 7 | 7 |
| 8 #if !defined(DART_PRECOMPILED_RUNTIME) | 8 #if !defined(DART_PRECOMPILED_RUNTIME) |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 void ReadUntilExcluding(Field field); | 112 void ReadUntilExcluding(Field field); |
| 113 | 113 |
| 114 void SetNext(Field field) { next_read_ = field; } | 114 void SetNext(Field field) { next_read_ = field; } |
| 115 void SetJustRead(Field field) { next_read_ = field + 1; } | 115 void SetJustRead(Field field) { next_read_ = field + 1; } |
| 116 | 116 |
| 117 bool IsConst() { return (flags_ & kConst) != 0; } | 117 bool IsConst() { return (flags_ & kConst) != 0; } |
| 118 bool IsFinal() { return (flags_ & kFinal) != 0; } | 118 bool IsFinal() { return (flags_ & kFinal) != 0; } |
| 119 | 119 |
| 120 TokenPosition position_; | 120 TokenPosition position_; |
| 121 TokenPosition equals_position_; | 121 TokenPosition equals_position_; |
| 122 word flags_; | 122 uint8_t flags_; |
| 123 StringIndex name_index_; | 123 StringIndex name_index_; |
| 124 | 124 |
| 125 private: | 125 private: |
| 126 StreamingFlowGraphBuilder* builder_; | 126 StreamingFlowGraphBuilder* builder_; |
| 127 intptr_t next_read_; | 127 intptr_t next_read_; |
| 128 }; | 128 }; |
| 129 | 129 |
| 130 // Helper class that reads a kernel Field from binary. | 130 // Helper class that reads a kernel Field from binary. |
| 131 // | 131 // |
| 132 // Use ReadUntilExcluding to read up to but not including a field. | 132 // Use ReadUntilExcluding to read up to but not including a field. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 if (has_function_literal_initializer_) { | 183 if (has_function_literal_initializer_) { |
| 184 *start = function_literal_start_; | 184 *start = function_literal_start_; |
| 185 *end = function_literal_end_; | 185 *end = function_literal_end_; |
| 186 } | 186 } |
| 187 return has_function_literal_initializer_; | 187 return has_function_literal_initializer_; |
| 188 } | 188 } |
| 189 | 189 |
| 190 NameIndex canonical_name_; | 190 NameIndex canonical_name_; |
| 191 TokenPosition position_; | 191 TokenPosition position_; |
| 192 TokenPosition end_position_; | 192 TokenPosition end_position_; |
| 193 word flags_; | 193 uint8_t flags_; |
| 194 intptr_t source_uri_index_; | 194 intptr_t source_uri_index_; |
| 195 intptr_t annotation_count_; | 195 intptr_t annotation_count_; |
| 196 | 196 |
| 197 private: | 197 private: |
| 198 StreamingFlowGraphBuilder* builder_; | 198 StreamingFlowGraphBuilder* builder_; |
| 199 intptr_t next_read_; | 199 intptr_t next_read_; |
| 200 | 200 |
| 201 bool has_function_literal_initializer_; | 201 bool has_function_literal_initializer_; |
| 202 TokenPosition function_literal_start_; | 202 TokenPosition function_literal_start_; |
| 203 TokenPosition function_literal_end_; | 203 TokenPosition function_literal_end_; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 | 258 |
| 259 bool IsStatic() { return (flags_ & kStatic) != 0; } | 259 bool IsStatic() { return (flags_ & kStatic) != 0; } |
| 260 bool IsAbstract() { return (flags_ & kAbstract) != 0; } | 260 bool IsAbstract() { return (flags_ & kAbstract) != 0; } |
| 261 bool IsExternal() { return (flags_ & kExternal) != 0; } | 261 bool IsExternal() { return (flags_ & kExternal) != 0; } |
| 262 bool IsConst() { return (flags_ & kConst) != 0; } | 262 bool IsConst() { return (flags_ & kConst) != 0; } |
| 263 | 263 |
| 264 NameIndex canonical_name_; | 264 NameIndex canonical_name_; |
| 265 TokenPosition position_; | 265 TokenPosition position_; |
| 266 TokenPosition end_position_; | 266 TokenPosition end_position_; |
| 267 Kind kind_; | 267 Kind kind_; |
| 268 word flags_; | 268 uint8_t flags_; |
| 269 intptr_t source_uri_index_; | 269 intptr_t source_uri_index_; |
| 270 intptr_t annotation_count_; | 270 intptr_t annotation_count_; |
| 271 | 271 |
| 272 private: | 272 private: |
| 273 StreamingFlowGraphBuilder* builder_; | 273 StreamingFlowGraphBuilder* builder_; |
| 274 intptr_t next_read_; | 274 intptr_t next_read_; |
| 275 }; | 275 }; |
| 276 | 276 |
| 277 // Helper class that reads a kernel Constructor from binary. | 277 // Helper class that reads a kernel Constructor from binary. |
| 278 // | 278 // |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 | 315 |
| 316 void SetNext(Field field) { next_read_ = field; } | 316 void SetNext(Field field) { next_read_ = field; } |
| 317 void SetJustRead(Field field) { next_read_ = field + 1; } | 317 void SetJustRead(Field field) { next_read_ = field + 1; } |
| 318 | 318 |
| 319 bool IsExternal() { return (flags_ & kExternal) != 0; } | 319 bool IsExternal() { return (flags_ & kExternal) != 0; } |
| 320 bool IsConst() { return (flags_ & kConst) != 0; } | 320 bool IsConst() { return (flags_ & kConst) != 0; } |
| 321 | 321 |
| 322 NameIndex canonical_name_; | 322 NameIndex canonical_name_; |
| 323 TokenPosition position_; | 323 TokenPosition position_; |
| 324 TokenPosition end_position_; | 324 TokenPosition end_position_; |
| 325 word flags_; | 325 uint8_t flags_; |
| 326 intptr_t annotation_count_; | 326 intptr_t annotation_count_; |
| 327 | 327 |
| 328 private: | 328 private: |
| 329 StreamingFlowGraphBuilder* builder_; | 329 StreamingFlowGraphBuilder* builder_; |
| 330 intptr_t next_read_; | 330 intptr_t next_read_; |
| 331 }; | 331 }; |
| 332 | 332 |
| 333 // Helper class that reads a kernel Class from binary. | 333 // Helper class that reads a kernel Class from binary. |
| 334 // | 334 // |
| 335 // Use ReadUntilExcluding to read up to but not including a field. | 335 // Use ReadUntilExcluding to read up to but not including a field. |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 kAnnotations, | 403 kAnnotations, |
| 404 kDependencies, | 404 kDependencies, |
| 405 kParts, | 405 kParts, |
| 406 kTypedefs, | 406 kTypedefs, |
| 407 kClasses, | 407 kClasses, |
| 408 kToplevelField, | 408 kToplevelField, |
| 409 kToplevelProcedures, | 409 kToplevelProcedures, |
| 410 kEnd, | 410 kEnd, |
| 411 }; | 411 }; |
| 412 | 412 |
| 413 enum Flag { |
| 414 kExternal = 1, |
| 415 }; |
| 416 |
| 413 explicit LibraryHelper(StreamingFlowGraphBuilder* builder) { | 417 explicit LibraryHelper(StreamingFlowGraphBuilder* builder) { |
| 414 builder_ = builder; | 418 builder_ = builder; |
| 415 next_read_ = kFlags; | 419 next_read_ = kFlags; |
| 416 } | 420 } |
| 417 | 421 |
| 418 void ReadUntilIncluding(Field field) { | 422 void ReadUntilIncluding(Field field) { |
| 419 ReadUntilExcluding(static_cast<Field>(static_cast<int>(field) + 1)); | 423 ReadUntilExcluding(static_cast<Field>(static_cast<int>(field) + 1)); |
| 420 } | 424 } |
| 421 | 425 |
| 422 void ReadUntilExcluding(Field field); | 426 void ReadUntilExcluding(Field field); |
| 423 | 427 |
| 424 void SetNext(Field field) { next_read_ = field; } | 428 void SetNext(Field field) { next_read_ = field; } |
| 425 void SetJustRead(Field field) { next_read_ = field + 1; } | 429 void SetJustRead(Field field) { next_read_ = field + 1; } |
| 426 | 430 |
| 431 bool IsExternal() const { return (flags_ & kExternal) != 0; } |
| 432 |
| 433 uint8_t flags_; |
| 427 NameIndex canonical_name_; | 434 NameIndex canonical_name_; |
| 428 StringIndex name_index_; | 435 StringIndex name_index_; |
| 429 intptr_t source_uri_index_; | 436 intptr_t source_uri_index_; |
| 430 | 437 |
| 431 private: | 438 private: |
| 432 StreamingFlowGraphBuilder* builder_; | 439 StreamingFlowGraphBuilder* builder_; |
| 433 intptr_t next_read_; | 440 intptr_t next_read_; |
| 434 }; | 441 }; |
| 435 | 442 |
| 436 class StreamingDartTypeTranslator { | 443 class StreamingDartTypeTranslator { |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 void SkipVariableDeclaration(); | 837 void SkipVariableDeclaration(); |
| 831 void SkipLibraryCombinator(); | 838 void SkipLibraryCombinator(); |
| 832 void SkipLibraryDependency(); | 839 void SkipLibraryDependency(); |
| 833 void SkipLibraryPart(); | 840 void SkipLibraryPart(); |
| 834 void SkipLibraryTypedef(); | 841 void SkipLibraryTypedef(); |
| 835 TokenPosition ReadPosition(bool record = true); | 842 TokenPosition ReadPosition(bool record = true); |
| 836 void record_token_position(TokenPosition position); | 843 void record_token_position(TokenPosition position); |
| 837 void record_yield_position(TokenPosition position); | 844 void record_yield_position(TokenPosition position); |
| 838 Tag ReadTag(uint8_t* payload = NULL); | 845 Tag ReadTag(uint8_t* payload = NULL); |
| 839 Tag PeekTag(uint8_t* payload = NULL); | 846 Tag PeekTag(uint8_t* payload = NULL); |
| 840 word ReadFlags(); | 847 uint8_t ReadFlags() { return reader_->ReadFlags(); } |
| 841 | 848 |
| 842 void loop_depth_inc(); | 849 void loop_depth_inc(); |
| 843 void loop_depth_dec(); | 850 void loop_depth_dec(); |
| 844 intptr_t for_in_depth(); | 851 intptr_t for_in_depth(); |
| 845 void for_in_depth_inc(); | 852 void for_in_depth_inc(); |
| 846 void for_in_depth_dec(); | 853 void for_in_depth_dec(); |
| 847 void catch_depth_inc(); | 854 void catch_depth_inc(); |
| 848 void catch_depth_dec(); | 855 void catch_depth_dec(); |
| 849 void try_depth_inc(); | 856 void try_depth_inc(); |
| 850 void try_depth_dec(); | 857 void try_depth_dec(); |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1122 const uint8_t* saved_raw_buffer_; | 1129 const uint8_t* saved_raw_buffer_; |
| 1123 const TypedData* saved_typed_data_; | 1130 const TypedData* saved_typed_data_; |
| 1124 intptr_t saved_offset_; | 1131 intptr_t saved_offset_; |
| 1125 }; | 1132 }; |
| 1126 | 1133 |
| 1127 } // namespace kernel | 1134 } // namespace kernel |
| 1128 } // namespace dart | 1135 } // namespace dart |
| 1129 | 1136 |
| 1130 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 1137 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
| 1131 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ | 1138 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ |
| OLD | NEW |