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

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

Issue 2931813002: [kernel] Stream kernel_reader (Closed)
Patch Set: Feedback Created 3 years, 6 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/kernel_binary.cc ('k') | runtime/vm/kernel_binary_flowgraph.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 (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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 80
81 StreamingFlowGraphBuilder* builder_; 81 StreamingFlowGraphBuilder* builder_;
82 TranslationHelper& translation_helper_; 82 TranslationHelper& translation_helper_;
83 ActiveClass* active_class_; 83 ActiveClass* active_class_;
84 TypeParameterScope* type_parameter_scope_; 84 TypeParameterScope* type_parameter_scope_;
85 Zone* zone_; 85 Zone* zone_;
86 AbstractType& result_; 86 AbstractType& result_;
87 bool finalize_; 87 bool finalize_;
88 88
89 friend class StreamingScopeBuilder; 89 friend class StreamingScopeBuilder;
90 friend class KernelReader;
90 }; 91 };
91 92
92 93
93 class StreamingScopeBuilder { 94 class StreamingScopeBuilder {
94 public: 95 public:
95 StreamingScopeBuilder(ParsedFunction* parsed_function, 96 StreamingScopeBuilder(ParsedFunction* parsed_function,
96 intptr_t kernel_offset, 97 intptr_t kernel_offset,
97 const uint8_t* buffer, 98 const uint8_t* buffer,
98 intptr_t buffer_length); 99 intptr_t buffer_length);
99 100
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 uint8_t ReadByte(); 375 uint8_t ReadByte();
375 uint32_t ReadUInt(); 376 uint32_t ReadUInt();
376 uint32_t PeekUInt(); 377 uint32_t PeekUInt();
377 intptr_t ReadListLength(); 378 intptr_t ReadListLength();
378 StringIndex ReadStringReference(); 379 StringIndex ReadStringReference();
379 NameIndex ReadCanonicalNameReference(); 380 NameIndex ReadCanonicalNameReference();
380 StringIndex ReadNameAsStringIndex(); 381 StringIndex ReadNameAsStringIndex();
381 const dart::String& ReadNameAsMethodName(); 382 const dart::String& ReadNameAsMethodName();
382 const dart::String& ReadNameAsGetterName(); 383 const dart::String& ReadNameAsGetterName();
383 const dart::String& ReadNameAsSetterName(); 384 const dart::String& ReadNameAsSetterName();
385 const dart::String& ReadNameAsFieldName();
384 void SkipStringReference(); 386 void SkipStringReference();
385 void SkipCanonicalNameReference(); 387 void SkipCanonicalNameReference();
386 void SkipDartType(); 388 void SkipDartType();
387 void SkipOptionalDartType(); 389 void SkipOptionalDartType();
388 void SkipInterfaceType(bool simple); 390 void SkipInterfaceType(bool simple);
389 void SkipFunctionType(bool simple); 391 void SkipFunctionType(bool simple);
390 void SkipListOfExpressions(); 392 void SkipListOfExpressions();
391 void SkipListOfDartTypes(); 393 void SkipListOfDartTypes();
392 void SkipListOfVariableDeclarations(); 394 void SkipListOfVariableDeclarations();
393 void SkipTypeParametersList(); 395 void SkipTypeParametersList();
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 608
607 friend class StreamingConstantEvaluator; 609 friend class StreamingConstantEvaluator;
608 friend class StreamingDartTypeTranslator; 610 friend class StreamingDartTypeTranslator;
609 friend class StreamingScopeBuilder; 611 friend class StreamingScopeBuilder;
610 friend class FunctionNodeHelper; 612 friend class FunctionNodeHelper;
611 friend class VariableDeclarationHelper; 613 friend class VariableDeclarationHelper;
612 friend class FieldHelper; 614 friend class FieldHelper;
613 friend class ProcedureHelper; 615 friend class ProcedureHelper;
614 friend class ClassHelper; 616 friend class ClassHelper;
615 friend class ConstructorHelper; 617 friend class ConstructorHelper;
618 friend class SimpleExpressionConverter;
619 friend class KernelReader;
616 }; 620 };
617 621
618 // Helper class that reads a kernel FunctionNode from binary. 622 // Helper class that reads a kernel FunctionNode from binary.
619 // 623 //
620 // Use ReadUntilExcluding to read up to but not including a field. 624 // Use ReadUntilExcluding to read up to but not including a field.
621 // One can then for instance read the field from the call-site (and remember to 625 // One can then for instance read the field from the call-site (and remember to
622 // call SetAt to inform this helper class), and then use this to read more. 626 // call SetAt to inform this helper class), and then use this to read more.
623 // "Dumb" fields are stored (e.g. integers) and can be fetched from this class. 627 // "Dumb" fields are stored (e.g. integers) and can be fetched from this class.
624 // If asked to read a "non-dumb" field (e.g. an expression) it will be skipped. 628 // If asked to read a "non-dumb" field (e.g. an expression) it will be skipped.
625 class FunctionNodeHelper { 629 class FunctionNodeHelper {
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 return; 1127 return;
1124 } 1128 }
1125 } 1129 }
1126 1130
1127 void SetNext(Fields field) { next_read_ = field; } 1131 void SetNext(Fields field) { next_read_ = field; }
1128 void SetJustRead(Fields field) { 1132 void SetJustRead(Fields field) {
1129 next_read_ = field; 1133 next_read_ = field;
1130 ++next_read_; 1134 ++next_read_;
1131 } 1135 }
1132 1136
1137 bool IsExternal() {
1138 return (flags_ & Constructor::kFlagExternal) == Constructor::kFlagExternal;
1139 }
1140 bool IsConst() {
1141 return (flags_ & Constructor::kFlagConst) == Constructor::kFlagConst;
1142 }
1143
1133 NameIndex canonical_name_; 1144 NameIndex canonical_name_;
1134 TokenPosition position_; 1145 TokenPosition position_;
1135 TokenPosition end_position_; 1146 TokenPosition end_position_;
1136 word flags_; 1147 word flags_;
1137 intptr_t parent_class_binary_offset_; 1148 intptr_t parent_class_binary_offset_;
1138 1149
1139 private: 1150 private:
1140 StreamingFlowGraphBuilder* builder_; 1151 StreamingFlowGraphBuilder* builder_;
1141 intptr_t next_read_; 1152 intptr_t next_read_;
1142 }; 1153 };
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 private: 1307 private:
1297 Reader* reader_; 1308 Reader* reader_;
1298 intptr_t saved_offset_; 1309 intptr_t saved_offset_;
1299 }; 1310 };
1300 1311
1301 } // namespace kernel 1312 } // namespace kernel
1302 } // namespace dart 1313 } // namespace dart
1303 1314
1304 #endif // !defined(DART_PRECOMPILED_RUNTIME) 1315 #endif // !defined(DART_PRECOMPILED_RUNTIME)
1305 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ 1316 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_
OLDNEW
« no previous file with comments | « runtime/vm/kernel_binary.cc ('k') | runtime/vm/kernel_binary_flowgraph.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698