dart-sdk/tests/language_2/vm
Tess Strickland 9329995dd8 [vm] Add a separate invoke field dispatcher for dynamic closure calls.
Adds TODO comments in appropriate places for future work that will move
non-covariant type checks out of the closure body. Instead, the VM will
perform them in the invoke field dispatcher (or NoSuchMethodFromCallStub
if --no-lazy-dispatchers is used) when a dynamic call is detected.

This change has minimal negative effects on the code size. Here are the
code size change percentages for the Flutter Gallery in release mode:

* ARM7
  * Instructions: +0.0391%
  * ROData: -0.0040%
  * Total: +0.0239%
* ARM8:
  * Instructions: No change
  * ROData: +0.0015%
  * Total: +0.0004%

All other code size benchmarks are also <0.01% increase.

Bug: https://github.com/dart-lang/sdk/issues/40813
Change-Id: I4bf145803bb9e2d4ba5c22c12b6fd3bb5368441d
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-nnbd-linux-release-x64-try,vm-dartkb-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151826
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-07-02 13:16:19 +00:00
..
exactness
allocate_overflow_array_test.dart [vm, compiler] Consistently produce OutOfMemoryErrors for large variable-length object allocations. 2019-09-30 20:19:03 +00:00
allocate_overflow_bytearray_test.dart [vm, compiler] Consistently produce OutOfMemoryErrors for large variable-length object allocations. 2019-09-30 20:19:03 +00:00
allocate_overflow_string_test.dart [vm, compiler] Consistently produce OutOfMemoryErrors for large variable-length object allocations. 2019-09-30 20:19:03 +00:00
allocation_sinking_vm_test.dart
async_await_catch_stacktrace_test.dart
await_synchronous_future_test.dart
bitnot_int_test.dart
bool_check_stack_traces_test.dart
canonicalization_preserves_deopt_test.dart
causal_async_exception_stack2_test.dart [vm/async] Ensure all service tests run with both, --causal-async-stacks/--lazy-async-stacks 2020-01-16 12:47:03 +00:00
causal_async_exception_stack_helper.dart
causal_async_exception_stack_test.dart [SDK] Fixes remaining issues with --lazy-async-stacks on. 2020-01-31 10:45:21 +00:00
clamp_37868_test.dart [vm/compiler] Avoid deopt for non-clamping typed data 2019-08-26 19:04:32 +00:00
closure_memory_retention_test.dart
create_array_instr_deopt2_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
create_array_instr_deopt_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
debug_break_enabled_vm_test.dart
debug_break_vm_test.dart
deep_loop_test.dart [dart/compiler] Loop analysis and BCE improvements 2019-11-18 19:51:13 +00:00
deopt_hoisted_smi_check_vm_test.dart
deopt_smi_check_vm_test.dart
div_mod_test.dart [vm/compiler] Improve DIV and MOD performance 2019-08-29 20:32:10 +00:00
function_equality_vm_test.dart
if_conversion_vm_test.dart
inline_heuristic_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
integer_type_propagation2_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
integer_type_propagation_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
irreducible_loop_test.dart
issue11087_vm_test.dart
issue21220_vm_test.dart
lazy_deopt_vm_test.dart
lazy_deopt_with_exception_and_stacktrace_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
lazy_deopt_with_exception_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
licm_constant_redefinition_vm_test.dart
load_elimination_any_use_creates_alias_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
load_elimination_has_loads_from_place_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
load_elimination_mark_stored_values_escaping_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
load_elimination_two_redefinitions_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
load_to_load_forwarding_cutdown_vm_test.dart
load_to_load_forwarding_vm_test.dart
load_to_load_unaligned_forwarding_vm_test.dart
math_vm_test.dart
mixin_test.dart [vm/compiler] Minor heuristic change to reduce code size 2019-08-12 23:17:43 +00:00
modtruncdiv_int_test.dart
mult_int_test.dart
negate_int_test.dart
no_such_args_error_message_vm_test.dart [vm] Add a separate invoke field dispatcher for dynamic closure calls. 2020-07-02 13:16:19 +00:00
no_such_method_error_message_callable_vm_test.dart
no_such_method_error_message_vm_test.dart
null_hashcode_optimized_vm_test.dart
optimization_test.dart
optimized_await_regress_test.dart
optimized_check_class_test.dart
optimized_guarded_field_isolates_test.dart [vm/concurrency] Run all isolate related tests with/without enabling isolate groups 2019-11-27 17:23:31 +00:00
optimized_guarded_field_test.dart
optimized_identical_test.dart
optimized_list_constructor_test.dart
optimized_polymorphic_list_access_test.dart
optimized_shl_test.dart
optimized_stacktrace_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
optimized_testsmi_test.dart
optimized_try_catch_cha_test.dart
optimized_unique_selector_test.dart
osr_nonempty_stack_test.dart [vm/compiler] Better be ready for OSR in field init 2019-09-10 22:17:22 +00:00
plus_null_37719_test.dart [vm/compiler] Propagate call type to load indexed 2019-08-06 19:28:29 +00:00
power_int_test.dart
precompiled_static_initializer_test.dart
reflect_core_vm_test.dart
regress_14903_test.dart
regress_16873_test.dart
regress_21245_test.dart
regress_22480_test.dart
regress_22541_vm_test.dart
regress_22621_vm_test.dart [Cleanup] Removes deprecated --gc_at_instance_allocation. 2020-02-26 15:00:26 +00:00
regress_22693_vm_test.dart
regress_23117_vm_test.dart
regress_23238_test.dart
regress_24517_test.dart
regress_27201_lib.dart
regress_27201_test.dart
regress_27671_other.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regress_27671_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regress_29137_vm_test.dart
regress_29145_test.dart
regress_31946_test.dart
regress_32204_test.dart
regress_32322_test.dart
regress_32502_test.dart
regress_32971_test.dart
regress_33025_test.dart
regress_33040_instantiation_test.dart
regress_33040_test.dart
regress_33073_test.dart
regress_33095_test.dart
regress_33469_test.dart
regress_33794_test.dart
regress_34051_test.dart
regress_34288_test.dart
regress_34396_helper.dart
regress_34396_test.dart
regress_34435_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regress_34466_test.dart
regress_34644_test.dart
regress_34684_test.dart
regress_35321_test.dart
regress_35325_test.dart
regress_36589_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regress_36681_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regress_36778_test.dart
regress_36803_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regress_36977_test.dart Migrate language_2/vm to NNBD. 2020-06-25 20:39:23 +00:00
regress_37149_test.dart
regress_37984_test.dart [vm] Force raw variables created during scope building to be on the stack 2019-08-26 13:58:35 +00:00
regress_39283_test.dart [vm/bytecode] Check number of type arguments in non-generic closures 2019-11-08 17:16:37 +00:00
regress_40792_test.dart [vm] Fix incorrect inference of non-nullability from 'is' checks 2020-02-27 03:35:34 +00:00
regress_b80154489_test.dart
regress_b131091988_test.dart
regress_flutter_14891_test.dart
regress_flutter_19612_test.dart
regress_flutter_21957_test.dart
regress_flutter_22131_test.dart
regress_flutter_23879_test.dart
regress_flutter_28260_test.dart
regress_flutter_42845_lib.dart [vm,aot] Fix handling of exported extensions in TFA tree shaker 2019-10-16 21:07:26 +00:00
regress_flutter_42845_test.dart [vm,aot] Fix handling of exported extensions in TFA tree shaker 2019-10-16 21:07:26 +00:00
regress_flutter_51828_bug2_test.dart [vm/aot/tfa] Fix tracking of parameters in async_op closures 2020-03-27 15:47:11 +00:00
regress_flutter_55345_const_test.dart [vm/aot] Update references from types to mixin applications after deduplication 2020-04-29 23:54:08 +00:00
regress_flutter_55345_test.dart [vm/aot] Update references from types to mixin applications after deduplication 2020-04-29 23:54:08 +00:00
regress_flutter_56479_test.dart [vm/aot/tfa] Fix crash while getting static type context for signature shaking 2020-05-07 00:56:02 +00:00
regress_licm_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regress_protobuf_95_test.dart
regression_32912_test.dart
regression_36076_test.dart
regression_36587_test.dart
regression_37408_test.dart [dart/vm] Fix bug on missed exception in AOT 2019-07-19 22:43:31 +00:00
regression_37622_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
regression_37633_test.dart [Cleanup] Removes deprecated --enable-inlining-annotations; updates annotation. 2020-02-25 12:09:10 +00:00
regression_37821_test.dart [vm/interpreter] Enforce consistent interpreter/compiler unboxing view 2019-09-04 00:52:27 +00:00
regression_38147_test.dart [vm/compiler] Fix truncating logic 2019-09-05 21:13:43 +00:00
regression_38231_test.dart [vm/compiler] OSR on non-empty stack integrity 2019-09-13 00:58:24 +00:00
regression_38412.dart [vm/compiler] patch up push arguments in environment 2019-09-30 20:05:53 +00:00
regression_38436.dart [vm/compiler] keep stack depth per block in stack IR 2019-09-24 21:33:01 +00:00
regression_38741.dart [vm/compiler] reduced regression test size 2019-10-11 21:15:20 +00:00
regression_39071_test.dart Fix for OSR assert (debug) or crash (release) 2019-11-18 22:33:05 +00:00
regression_39193_test.dart Fix for OSR assert (debug) or crash (release) 2019-11-18 22:33:05 +00:00
reusable_boxes_test.dart
shift_special_cases_test.dart
smi_widening_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00
store_elimination_vm_test.dart
store_to_load_forwarding_phis_vm_test.dart
string_polymorphic_test.dart
symbols_test.dart
tree_shake_type_args_in_constant_test.dart
type_cast_vm_test.dart Make all CastErrors be TypeErrors. 2020-03-11 23:31:06 +00:00
type_of_call_via_getter_test.dart
type_propagation_test.dart
type_vm_test.dart
uint32_add_test.dart
uint32_right_shift_test.dart
uint32_shift_test.dart
unaligned_float_access_literal_index_test.dart
unaligned_float_access_register_index_test.dart
unaligned_integer_access_literal_index_test.dart
unaligned_integer_access_register_index_test.dart
unique_selector_test.dart
unreachable_code_test.dart
unregistered_closure_in_finally_test.dart Reland "[vm/compiler] Implement new inlining pragmas." 2019-07-30 12:01:06 +00:00