| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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_FLOW_GRAPH_BUILDER_H_ | 5 #ifndef RUNTIME_VM_FLOW_GRAPH_BUILDER_H_ |
| 6 #define RUNTIME_VM_FLOW_GRAPH_BUILDER_H_ | 6 #define RUNTIME_VM_FLOW_GRAPH_BUILDER_H_ |
| 7 | 7 |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "platform/globals.h" | 9 #include "platform/globals.h" |
| 10 #include "vm/allocation.h" | 10 #include "vm/allocation.h" |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 // Helpers for translating parts of the AST. | 316 // Helpers for translating parts of the AST. |
| 317 void BuildPushArguments(const ArgumentListNode& node, | 317 void BuildPushArguments(const ArgumentListNode& node, |
| 318 ZoneGrowableArray<PushArgumentInstr*>* values); | 318 ZoneGrowableArray<PushArgumentInstr*>* values); |
| 319 | 319 |
| 320 // Creates an instantiated type argument vector used in preparation of an | 320 // Creates an instantiated type argument vector used in preparation of an |
| 321 // allocation call. | 321 // allocation call. |
| 322 // May be called only if allocating an object of a parameterized class. | 322 // May be called only if allocating an object of a parameterized class. |
| 323 Value* BuildInstantiatedTypeArguments(TokenPosition token_pos, | 323 Value* BuildInstantiatedTypeArguments(TokenPosition token_pos, |
| 324 const TypeArguments& type_arguments); | 324 const TypeArguments& type_arguments); |
| 325 | 325 |
| 326 void BuildTypecheckPushArguments( | |
| 327 TokenPosition token_pos, | |
| 328 PushArgumentInstr** push_instantiator_type_arguments); | |
| 329 void BuildTypecheckArguments(TokenPosition token_pos, | |
| 330 Value** instantiator_type_arguments); | |
| 331 Value* BuildInstantiator(TokenPosition token_pos); | 326 Value* BuildInstantiator(TokenPosition token_pos); |
| 332 Value* BuildInstantiatorTypeArguments(TokenPosition token_pos, | 327 Value* BuildInstantiatorTypeArguments(TokenPosition token_pos); |
| 333 const Class& instantiator_class, | 328 Value* BuildFunctionTypeArguments(TokenPosition token_pos); |
| 334 Value* instantiator); | 329 PushArgumentInstr* PushInstantiatorTypeArguments(const AbstractType& type, |
| 330 TokenPosition token_pos); |
| 331 PushArgumentInstr* PushFunctionTypeArguments(const AbstractType& type, |
| 332 TokenPosition token_pos); |
| 335 | 333 |
| 336 // Perform a type check on the given value. | 334 // Perform a type check on the given value. |
| 337 AssertAssignableInstr* BuildAssertAssignable(TokenPosition token_pos, | 335 AssertAssignableInstr* BuildAssertAssignable(TokenPosition token_pos, |
| 338 Value* value, | 336 Value* value, |
| 339 const AbstractType& dst_type, | 337 const AbstractType& dst_type, |
| 340 const String& dst_name); | 338 const String& dst_name); |
| 341 | 339 |
| 342 // Perform a type check on the given value and return it. | 340 // Perform a type check on the given value and return it. |
| 343 Value* BuildAssignableValue(TokenPosition token_pos, | 341 Value* BuildAssignableValue(TokenPosition token_pos, |
| 344 Value* value, | 342 Value* value, |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 // Output parameters. | 561 // Output parameters. |
| 564 GrowableArray<TargetEntryInstr**> true_successor_addresses_; | 562 GrowableArray<TargetEntryInstr**> true_successor_addresses_; |
| 565 GrowableArray<TargetEntryInstr**> false_successor_addresses_; | 563 GrowableArray<TargetEntryInstr**> false_successor_addresses_; |
| 566 | 564 |
| 567 TokenPosition condition_token_pos_; | 565 TokenPosition condition_token_pos_; |
| 568 }; | 566 }; |
| 569 | 567 |
| 570 } // namespace dart | 568 } // namespace dart |
| 571 | 569 |
| 572 #endif // RUNTIME_VM_FLOW_GRAPH_BUILDER_H_ | 570 #endif // RUNTIME_VM_FLOW_GRAPH_BUILDER_H_ |
| OLD | NEW |