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

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

Issue 2859673002: Pass type argument vector to generic functions (if --reify-generic-functions is (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
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_COMPILER_H_ 5 #ifndef RUNTIME_VM_FLOW_GRAPH_COMPILER_H_
6 #define RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ 6 #define RUNTIME_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 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 383
384 void GenerateInstanceCall(intptr_t deopt_id, 384 void GenerateInstanceCall(intptr_t deopt_id,
385 TokenPosition token_pos, 385 TokenPosition token_pos,
386 intptr_t argument_count, 386 intptr_t argument_count,
387 LocationSummary* locs, 387 LocationSummary* locs,
388 const ICData& ic_data); 388 const ICData& ic_data);
389 389
390 void GenerateStaticCall(intptr_t deopt_id, 390 void GenerateStaticCall(intptr_t deopt_id,
391 TokenPosition token_pos, 391 TokenPosition token_pos,
392 const Function& function, 392 const Function& function,
393 intptr_t type_args_len,
393 intptr_t argument_count, 394 intptr_t argument_count,
394 const Array& argument_names, 395 const Array& argument_names,
395 LocationSummary* locs, 396 LocationSummary* locs,
396 const ICData& ic_data); 397 const ICData& ic_data);
397 398
398 void GenerateNumberTypeCheck(Register kClassIdReg, 399 void GenerateNumberTypeCheck(Register kClassIdReg,
399 const AbstractType& type, 400 const AbstractType& type,
400 Label* is_instance_lbl, 401 Label* is_instance_lbl,
401 Label* is_not_instance_lbl); 402 Label* is_not_instance_lbl);
402 void GenerateStringTypeCheck(Register kClassIdReg, 403 void GenerateStringTypeCheck(Register kClassIdReg,
(...skipping 11 matching lines...) Expand all
414 void EmitInstanceCall(const StubEntry& stub_entry, 415 void EmitInstanceCall(const StubEntry& stub_entry,
415 const ICData& ic_data, 416 const ICData& ic_data,
416 intptr_t argument_count, 417 intptr_t argument_count,
417 intptr_t deopt_id, 418 intptr_t deopt_id,
418 TokenPosition token_pos, 419 TokenPosition token_pos,
419 LocationSummary* locs); 420 LocationSummary* locs);
420 421
421 void EmitPolymorphicInstanceCall( 422 void EmitPolymorphicInstanceCall(
422 const CallTargets& targets, 423 const CallTargets& targets,
423 const InstanceCallInstr& original_instruction, 424 const InstanceCallInstr& original_instruction,
425 intptr_t type_args_len,
424 intptr_t argument_count, 426 intptr_t argument_count,
425 const Array& argument_names, 427 const Array& argument_names,
426 intptr_t deopt_id, 428 intptr_t deopt_id,
427 TokenPosition token_pos, 429 TokenPosition token_pos,
428 LocationSummary* locs, 430 LocationSummary* locs,
429 bool complete, 431 bool complete,
430 intptr_t total_call_count); 432 intptr_t total_call_count);
431 433
432 // Pass a value for try-index where block is not available (e.g. slow path). 434 // Pass a value for try-index where block is not available (e.g. slow path).
433 void EmitMegamorphicInstanceCall(const String& function_name, 435 void EmitMegamorphicInstanceCall(const String& function_name,
434 const Array& arguments_descriptor, 436 const Array& arguments_descriptor,
435 intptr_t argument_count, 437 intptr_t argument_count,
436 intptr_t deopt_id, 438 intptr_t deopt_id,
437 TokenPosition token_pos, 439 TokenPosition token_pos,
438 LocationSummary* locs, 440 LocationSummary* locs,
439 intptr_t try_index, 441 intptr_t try_index,
440 intptr_t slow_path_argument_count = 0); 442 intptr_t slow_path_argument_count = 0);
441 443
442 void EmitSwitchableInstanceCall(const ICData& ic_data, 444 void EmitSwitchableInstanceCall(const ICData& ic_data,
443 intptr_t argument_count, 445 intptr_t argument_count,
444 intptr_t deopt_id, 446 intptr_t deopt_id,
445 TokenPosition token_pos, 447 TokenPosition token_pos,
446 LocationSummary* locs); 448 LocationSummary* locs);
447 449
448 void EmitTestAndCall(const CallTargets& targets, 450 void EmitTestAndCall(const CallTargets& targets,
449 const String& function_name, 451 const String& function_name,
452 intptr_t type_args_len,
450 intptr_t arg_count, 453 intptr_t arg_count,
451 const Array& arg_names, 454 const Array& arg_names,
452 Label* failed, 455 Label* failed,
453 Label* match_found, 456 Label* match_found,
454 intptr_t deopt_id, 457 intptr_t deopt_id,
455 TokenPosition token_index, 458 TokenPosition token_index,
456 LocationSummary* locs, 459 LocationSummary* locs,
457 bool complete, 460 bool complete,
458 intptr_t total_ic_calls); 461 intptr_t total_ic_calls);
459 462
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_; 849 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_;
847 850
848 Array& edge_counters_array_; 851 Array& edge_counters_array_;
849 852
850 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); 853 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
851 }; 854 };
852 855
853 } // namespace dart 856 } // namespace dart
854 857
855 #endif // RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ 858 #endif // RUNTIME_VM_FLOW_GRAPH_COMPILER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698