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

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: address review comments and sync 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
« no previous file with comments | « runtime/vm/flow_graph_builder.cc ('k') | runtime/vm/flow_graph_compiler.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) 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 argument_count, 393 ArgumentsInfo args_info,
394 const Array& argument_names,
395 LocationSummary* locs, 394 LocationSummary* locs,
396 const ICData& ic_data); 395 const ICData& ic_data);
397 396
398 void GenerateNumberTypeCheck(Register kClassIdReg, 397 void GenerateNumberTypeCheck(Register kClassIdReg,
399 const AbstractType& type, 398 const AbstractType& type,
400 Label* is_instance_lbl, 399 Label* is_instance_lbl,
401 Label* is_not_instance_lbl); 400 Label* is_not_instance_lbl);
402 void GenerateStringTypeCheck(Register kClassIdReg, 401 void GenerateStringTypeCheck(Register kClassIdReg,
403 Label* is_instance_lbl, 402 Label* is_instance_lbl,
404 Label* is_not_instance_lbl); 403 Label* is_not_instance_lbl);
405 void GenerateListTypeCheck(Register kClassIdReg, Label* is_instance_lbl); 404 void GenerateListTypeCheck(Register kClassIdReg, Label* is_instance_lbl);
406 405
407 void EmitOptimizedInstanceCall(const StubEntry& stub_entry, 406 void EmitOptimizedInstanceCall(const StubEntry& stub_entry,
408 const ICData& ic_data, 407 const ICData& ic_data,
409 intptr_t argument_count, 408 intptr_t argument_count,
410 intptr_t deopt_id, 409 intptr_t deopt_id,
411 TokenPosition token_pos, 410 TokenPosition token_pos,
412 LocationSummary* locs); 411 LocationSummary* locs);
413 412
414 void EmitInstanceCall(const StubEntry& stub_entry, 413 void EmitInstanceCall(const StubEntry& stub_entry,
415 const ICData& ic_data, 414 const ICData& ic_data,
416 intptr_t argument_count, 415 intptr_t argument_count,
417 intptr_t deopt_id, 416 intptr_t deopt_id,
418 TokenPosition token_pos, 417 TokenPosition token_pos,
419 LocationSummary* locs); 418 LocationSummary* locs);
420 419
421 void EmitPolymorphicInstanceCall( 420 void EmitPolymorphicInstanceCall(
422 const CallTargets& targets, 421 const CallTargets& targets,
423 const InstanceCallInstr& original_instruction, 422 const InstanceCallInstr& original_instruction,
424 intptr_t argument_count, 423 ArgumentsInfo args_info,
425 const Array& argument_names,
426 intptr_t deopt_id, 424 intptr_t deopt_id,
427 TokenPosition token_pos, 425 TokenPosition token_pos,
428 LocationSummary* locs, 426 LocationSummary* locs,
429 bool complete, 427 bool complete,
430 intptr_t total_call_count); 428 intptr_t total_call_count);
431 429
432 // Pass a value for try-index where block is not available (e.g. slow path). 430 // Pass a value for try-index where block is not available (e.g. slow path).
433 void EmitMegamorphicInstanceCall(const String& function_name, 431 void EmitMegamorphicInstanceCall(const String& function_name,
434 const Array& arguments_descriptor, 432 const Array& arguments_descriptor,
435 intptr_t argument_count, 433 intptr_t argument_count,
436 intptr_t deopt_id, 434 intptr_t deopt_id,
437 TokenPosition token_pos, 435 TokenPosition token_pos,
438 LocationSummary* locs, 436 LocationSummary* locs,
439 intptr_t try_index, 437 intptr_t try_index,
440 intptr_t slow_path_argument_count = 0); 438 intptr_t slow_path_argument_count = 0);
441 439
442 void EmitSwitchableInstanceCall(const ICData& ic_data, 440 void EmitSwitchableInstanceCall(const ICData& ic_data,
443 intptr_t argument_count, 441 intptr_t argument_count,
444 intptr_t deopt_id, 442 intptr_t deopt_id,
445 TokenPosition token_pos, 443 TokenPosition token_pos,
446 LocationSummary* locs); 444 LocationSummary* locs);
447 445
448 void EmitTestAndCall(const CallTargets& targets, 446 void EmitTestAndCall(const CallTargets& targets,
449 const String& function_name, 447 const String& function_name,
450 intptr_t arg_count, 448 ArgumentsInfo args_info,
451 const Array& arg_names,
452 Label* failed, 449 Label* failed,
453 Label* match_found, 450 Label* match_found,
454 intptr_t deopt_id, 451 intptr_t deopt_id,
455 TokenPosition token_index, 452 TokenPosition token_index,
456 LocationSummary* locs, 453 LocationSummary* locs,
457 bool complete, 454 bool complete,
458 intptr_t total_ic_calls); 455 intptr_t total_ic_calls);
459 456
460 Condition EmitEqualityRegConstCompare(Register reg, 457 Condition EmitEqualityRegConstCompare(Register reg,
461 const Object& obj, 458 const Object& obj,
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_; 838 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_;
842 839
843 Array& edge_counters_array_; 840 Array& edge_counters_array_;
844 841
845 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); 842 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
846 }; 843 };
847 844
848 } // namespace dart 845 } // namespace dart
849 846
850 #endif // RUNTIME_VM_FLOW_GRAPH_COMPILER_H_ 847 #endif // RUNTIME_VM_FLOW_GRAPH_COMPILER_H_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_builder.cc ('k') | runtime/vm/flow_graph_compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698