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 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 LocalVariable* CurrentStackTrace(); | 221 LocalVariable* CurrentStackTrace(); |
222 CatchBlock* catch_block(); | 222 CatchBlock* catch_block(); |
223 ActiveClass* active_class(); | 223 ActiveClass* active_class(); |
224 ScopeBuildingResult* scopes(); | 224 ScopeBuildingResult* scopes(); |
225 ParsedFunction* parsed_function(); | 225 ParsedFunction* parsed_function(); |
226 TryFinallyBlock* try_finally_block(); | 226 TryFinallyBlock* try_finally_block(); |
227 SwitchBlock* switch_block(); | 227 SwitchBlock* switch_block(); |
228 BreakableBlock* breakable_block(); | 228 BreakableBlock* breakable_block(); |
229 GrowableArray<YieldContinuation>& yield_continuations(); | 229 GrowableArray<YieldContinuation>& yield_continuations(); |
230 Value* stack(); | 230 Value* stack(); |
| 231 void Push(Definition* definition); |
231 Value* Pop(); | 232 Value* Pop(); |
232 | 233 |
233 Tag PeekArgumentsFirstPositionalTag(); | 234 Tag PeekArgumentsFirstPositionalTag(); |
234 const TypeArguments& PeekArgumentsInstantiatedType(const dart::Class& klass); | 235 const TypeArguments& PeekArgumentsInstantiatedType(const dart::Class& klass); |
235 intptr_t PeekArgumentsCount(); | 236 intptr_t PeekArgumentsCount(); |
236 intptr_t PeekArgumentsTypeCount(); | 237 intptr_t PeekArgumentsTypeCount(); |
237 void SkipArgumentsBeforeActualArguments(); | 238 void SkipArgumentsBeforeActualArguments(); |
238 | 239 |
239 LocalVariable* LookupVariable(intptr_t kernel_offset); | 240 LocalVariable* LookupVariable(intptr_t kernel_offset); |
240 LocalVariable* MakeTemporary(); | 241 LocalVariable* MakeTemporary(); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 Token::Kind kind, | 274 Token::Kind kind, |
274 intptr_t argument_count, | 275 intptr_t argument_count, |
275 const Array& argument_names, | 276 const Array& argument_names, |
276 intptr_t num_args_checked); | 277 intptr_t num_args_checked); |
277 Fragment ThrowException(TokenPosition position); | 278 Fragment ThrowException(TokenPosition position); |
278 Fragment BooleanNegate(); | 279 Fragment BooleanNegate(); |
279 Fragment TranslateInstantiatedTypeArguments( | 280 Fragment TranslateInstantiatedTypeArguments( |
280 const TypeArguments& type_arguments); | 281 const TypeArguments& type_arguments); |
281 Fragment StrictCompare(Token::Kind kind, bool number_check = false); | 282 Fragment StrictCompare(Token::Kind kind, bool number_check = false); |
282 Fragment AllocateObject(const dart::Class& klass, intptr_t argument_count); | 283 Fragment AllocateObject(const dart::Class& klass, intptr_t argument_count); |
| 284 Fragment AllocateObject(const dart::Class& klass, |
| 285 const Function& closure_function); |
| 286 Fragment LoadField(intptr_t offset); |
| 287 Fragment AllocateContext(int size); |
283 Fragment StoreLocal(TokenPosition position, LocalVariable* variable); | 288 Fragment StoreLocal(TokenPosition position, LocalVariable* variable); |
284 Fragment StoreStaticField(TokenPosition position, const dart::Field& field); | 289 Fragment StoreStaticField(TokenPosition position, const dart::Field& field); |
| 290 Fragment StoreInstanceField(TokenPosition position, intptr_t offset); |
285 Fragment StringInterpolate(TokenPosition position); | 291 Fragment StringInterpolate(TokenPosition position); |
286 Fragment StringInterpolateSingle(TokenPosition position); | 292 Fragment StringInterpolateSingle(TokenPosition position); |
287 Fragment ThrowTypeError(); | 293 Fragment ThrowTypeError(); |
288 Fragment LoadInstantiatorTypeArguments(); | 294 Fragment LoadInstantiatorTypeArguments(); |
289 Fragment LoadFunctionTypeArguments(); | 295 Fragment LoadFunctionTypeArguments(); |
290 Fragment InstantiateType(const AbstractType& type); | 296 Fragment InstantiateType(const AbstractType& type); |
291 Fragment CreateArray(); | 297 Fragment CreateArray(); |
292 Fragment StoreIndexed(intptr_t class_id); | 298 Fragment StoreIndexed(intptr_t class_id); |
293 Fragment CheckStackOverflow(); | 299 Fragment CheckStackOverflow(); |
294 Fragment CloneContext(); | 300 Fragment CloneContext(); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 Fragment BuildListLiteral(bool is_const, TokenPosition* position); | 367 Fragment BuildListLiteral(bool is_const, TokenPosition* position); |
362 Fragment BuildMapLiteral(bool is_const, TokenPosition* position); | 368 Fragment BuildMapLiteral(bool is_const, TokenPosition* position); |
363 Fragment BuildLet(TokenPosition* position); | 369 Fragment BuildLet(TokenPosition* position); |
364 Fragment BuildBigIntLiteral(TokenPosition* position); | 370 Fragment BuildBigIntLiteral(TokenPosition* position); |
365 Fragment BuildStringLiteral(TokenPosition* position); | 371 Fragment BuildStringLiteral(TokenPosition* position); |
366 Fragment BuildIntLiteral(uint8_t payload, TokenPosition* position); | 372 Fragment BuildIntLiteral(uint8_t payload, TokenPosition* position); |
367 Fragment BuildIntLiteral(bool is_negative, TokenPosition* position); | 373 Fragment BuildIntLiteral(bool is_negative, TokenPosition* position); |
368 Fragment BuildDoubleLiteral(TokenPosition* position); | 374 Fragment BuildDoubleLiteral(TokenPosition* position); |
369 Fragment BuildBoolLiteral(bool value, TokenPosition* position); | 375 Fragment BuildBoolLiteral(bool value, TokenPosition* position); |
370 Fragment BuildNullLiteral(TokenPosition* position); | 376 Fragment BuildNullLiteral(TokenPosition* position); |
| 377 Fragment BuildVectorCreation(TokenPosition* position); |
| 378 Fragment BuildVectorGet(TokenPosition* position); |
| 379 Fragment BuildVectorSet(TokenPosition* position); |
| 380 Fragment BuildVectorCopy(TokenPosition* position); |
| 381 Fragment BuildClosureCreation(TokenPosition* position); |
371 | 382 |
372 Fragment BuildInvalidStatement(); | 383 Fragment BuildInvalidStatement(); |
373 Fragment BuildExpressionStatement(); | 384 Fragment BuildExpressionStatement(); |
374 Fragment BuildBlock(); | 385 Fragment BuildBlock(); |
375 Fragment BuildEmptyStatement(); | 386 Fragment BuildEmptyStatement(); |
376 Fragment BuildAssertStatement(); | 387 Fragment BuildAssertStatement(); |
377 Fragment BuildLabeledStatement(); | 388 Fragment BuildLabeledStatement(); |
378 Fragment BuildBreakStatement(); | 389 Fragment BuildBreakStatement(); |
379 Fragment BuildWhileStatement(); | 390 Fragment BuildWhileStatement(); |
380 Fragment BuildDoStatement(); | 391 Fragment BuildDoStatement(); |
(...skipping 18 matching lines...) Expand all Loading... |
399 friend class StreamingConstantEvaluator; | 410 friend class StreamingConstantEvaluator; |
400 friend class StreamingDartTypeTranslator; | 411 friend class StreamingDartTypeTranslator; |
401 }; | 412 }; |
402 | 413 |
403 | 414 |
404 } // namespace kernel | 415 } // namespace kernel |
405 } // namespace dart | 416 } // namespace dart |
406 | 417 |
407 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 418 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
408 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ | 419 #endif // RUNTIME_VM_KERNEL_BINARY_FLOWGRAPH_H_ |
OLD | NEW |