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 VM_FLOW_GRAPH_COMPILER_H_ | 5 #ifndef VM_FLOW_GRAPH_COMPILER_H_ |
6 #define VM_FLOW_GRAPH_COMPILER_H_ | 6 #define VM_FLOW_GRAPH_COMPILER_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/code_descriptors.h" | 10 #include "vm/code_descriptors.h" |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 | 330 |
331 void TryIntrinsify(); | 331 void TryIntrinsify(); |
332 | 332 |
333 void GenerateRuntimeCall(intptr_t token_pos, | 333 void GenerateRuntimeCall(intptr_t token_pos, |
334 intptr_t deopt_id, | 334 intptr_t deopt_id, |
335 const RuntimeEntry& entry, | 335 const RuntimeEntry& entry, |
336 intptr_t argument_count, | 336 intptr_t argument_count, |
337 LocationSummary* locs); | 337 LocationSummary* locs); |
338 | 338 |
339 void GenerateCall(intptr_t token_pos, | 339 void GenerateCall(intptr_t token_pos, |
340 const ExternalLabel* label, | 340 const StubEntry& stub_entry, |
341 RawPcDescriptors::Kind kind, | 341 RawPcDescriptors::Kind kind, |
342 LocationSummary* locs); | 342 LocationSummary* locs); |
343 | 343 |
344 void GenerateDartCall(intptr_t deopt_id, | 344 void GenerateDartCall(intptr_t deopt_id, |
345 intptr_t token_pos, | 345 intptr_t token_pos, |
346 const ExternalLabel* label, | 346 const StubEntry& stub_entry, |
347 RawPcDescriptors::Kind kind, | 347 RawPcDescriptors::Kind kind, |
348 LocationSummary* locs); | 348 LocationSummary* locs); |
349 | 349 |
350 void GenerateAssertAssignable(intptr_t token_pos, | 350 void GenerateAssertAssignable(intptr_t token_pos, |
351 intptr_t deopt_id, | 351 intptr_t deopt_id, |
352 const AbstractType& dst_type, | 352 const AbstractType& dst_type, |
353 const String& dst_name, | 353 const String& dst_name, |
354 LocationSummary* locs); | 354 LocationSummary* locs); |
355 | 355 |
356 void GenerateInstanceOf(intptr_t token_pos, | 356 void GenerateInstanceOf(intptr_t token_pos, |
(...skipping 29 matching lines...) Expand all Loading... |
386 void EmitComment(Instruction* instr); | 386 void EmitComment(Instruction* instr); |
387 | 387 |
388 bool NeedsEdgeCounter(TargetEntryInstr* block); | 388 bool NeedsEdgeCounter(TargetEntryInstr* block); |
389 | 389 |
390 void EmitEdgeCounter(); | 390 void EmitEdgeCounter(); |
391 | 391 |
392 #if !defined(TARGET_ARCH_ARM64) && !defined(TARGET_ARCH_MIPS) | 392 #if !defined(TARGET_ARCH_ARM64) && !defined(TARGET_ARCH_MIPS) |
393 static int32_t EdgeCounterIncrementSizeInBytes(); | 393 static int32_t EdgeCounterIncrementSizeInBytes(); |
394 #endif // !TARGET_ARCH_ARM64 && !TARGET_ARCH_MIPS | 394 #endif // !TARGET_ARCH_ARM64 && !TARGET_ARCH_MIPS |
395 | 395 |
396 void EmitOptimizedInstanceCall(ExternalLabel* target_label, | 396 void EmitOptimizedInstanceCall(const StubEntry& stub_entry, |
397 const ICData& ic_data, | 397 const ICData& ic_data, |
398 intptr_t argument_count, | 398 intptr_t argument_count, |
399 intptr_t deopt_id, | 399 intptr_t deopt_id, |
400 intptr_t token_pos, | 400 intptr_t token_pos, |
401 LocationSummary* locs); | 401 LocationSummary* locs); |
402 | 402 |
403 void EmitInstanceCall(ExternalLabel* target_label, | 403 void EmitInstanceCall(const StubEntry& stub_entry, |
404 const ICData& ic_data, | 404 const ICData& ic_data, |
405 intptr_t argument_count, | 405 intptr_t argument_count, |
406 intptr_t deopt_id, | 406 intptr_t deopt_id, |
407 intptr_t token_pos, | 407 intptr_t token_pos, |
408 LocationSummary* locs); | 408 LocationSummary* locs); |
409 | 409 |
410 void EmitPolymorphicInstanceCall(const ICData& ic_data, | 410 void EmitPolymorphicInstanceCall(const ICData& ic_data, |
411 intptr_t argument_count, | 411 intptr_t argument_count, |
412 const Array& argument_names, | 412 const Array& argument_names, |
413 intptr_t deopt_id, | 413 intptr_t deopt_id, |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 Array& inlined_code_intervals_; | 719 Array& inlined_code_intervals_; |
720 const GrowableArray<const Function*>& inline_id_to_function_; | 720 const GrowableArray<const Function*>& inline_id_to_function_; |
721 const GrowableArray<intptr_t>& caller_inline_id_; | 721 const GrowableArray<intptr_t>& caller_inline_id_; |
722 | 722 |
723 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); | 723 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); |
724 }; | 724 }; |
725 | 725 |
726 } // namespace dart | 726 } // namespace dart |
727 | 727 |
728 #endif // VM_FLOW_GRAPH_COMPILER_H_ | 728 #endif // VM_FLOW_GRAPH_COMPILER_H_ |
OLD | NEW |