[VM] Enable kernel2kernel constants evaluation in AOT for the VM.

Change-Id: Iff40aaf464f870235c9a15c4ee33385256e58023
Reviewed-on: https://dart-review.googlesource.com/55461
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
This commit is contained in:
Martin Kustermann
2018-05-16 16:11:22 +00:00
committed by commit-bot@chromium.org
parent 42bcdcd332
commit 775eeece8a
3 changed files with 30 additions and 24 deletions
+1 -1
View File
@@ -43,7 +43,7 @@ final ArgParser _argParser = new ArgParser(allowTrailingOptions: true)
help: 'Whether asserts will be enabled.', defaultsTo: false) help: 'Whether asserts will be enabled.', defaultsTo: false)
..addFlag('enable-constant-evaluation', ..addFlag('enable-constant-evaluation',
help: 'Whether kernel constant evaluation will be enabled.', help: 'Whether kernel constant evaluation will be enabled.',
defaultsTo: false) defaultsTo: true)
..addMultiOption('entry-points', ..addMultiOption('entry-points',
help: 'Path to JSON file with the list of entry points') help: 'Path to JSON file with the list of entry points')
..addFlag('gen-bytecode', ..addFlag('gen-bytecode',
+1 -1
View File
@@ -58,7 +58,7 @@ Future<Component> compileToKernel(Uri source, CompilerOptions options,
bool genBytecode: false, bool genBytecode: false,
bool dropAST: false, bool dropAST: false,
bool enableAsserts: false, bool enableAsserts: false,
bool enableConstantEvaluation: false}) async { bool enableConstantEvaluation: true}) async {
// Replace error handler to detect if there are compilation errors. // Replace error handler to detect if there are compilation errors.
final errorDetector = final errorDetector =
new ErrorDetector(previousErrorHandler: options.onProblem); new ErrorDetector(previousErrorHandler: options.onProblem);
+28 -22
View File
@@ -68,11 +68,8 @@ bad_override_test/02: MissingCompileTimeError # Issue 32984
call_non_method_field_test/01: MissingCompileTimeError # Issue 32975 call_non_method_field_test/01: MissingCompileTimeError # Issue 32975
call_non_method_field_test/02: MissingCompileTimeError # Issue 32975 call_non_method_field_test/02: MissingCompileTimeError # Issue 32975
check_member_static_test/01: MissingCompileTimeError # Issue 32613 check_member_static_test/01: MissingCompileTimeError # Issue 32613
compile_time_constant_o_test/01: MissingCompileTimeError # Issue 32983
compile_time_constant_o_test/02: MissingCompileTimeError # Issue 32983
const_cast2_test/01: CompileTimeError # Issue 32517 const_cast2_test/01: CompileTimeError # Issue 32517
const_cast2_test/none: CompileTimeError # Issue 32517 const_cast2_test/none: CompileTimeError # Issue 32517
const_dynamic_type_literal_test/02: MissingCompileTimeError # Issue 32983
const_instance_field_test/01: MissingCompileTimeError # Fasta bug: Const instance field. Issue 32326. const_instance_field_test/01: MissingCompileTimeError # Fasta bug: Const instance field. Issue 32326.
const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. const_map2_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation. const_map3_test/00: MissingCompileTimeError # KernelVM bug: Constant evaluation.
@@ -106,10 +103,6 @@ generic_methods_bounds_test/01: MissingCompileTimeError # Issue 33018
generic_methods_overriding_test/01: MissingCompileTimeError # Issue 32613 generic_methods_overriding_test/01: MissingCompileTimeError # Issue 32613
generic_methods_recursive_bound_test/02: MissingCompileTimeError # Issue 33018 generic_methods_recursive_bound_test/02: MissingCompileTimeError # Issue 33018
getter_override_test/03: MissingCompileTimeError # Issue 32984 getter_override_test/03: MissingCompileTimeError # Issue 32984
identical_const_test/01: MissingCompileTimeError # Issue 32983
identical_const_test/02: MissingCompileTimeError # Issue 32983
identical_const_test/03: MissingCompileTimeError # Issue 32983
identical_const_test/04: MissingCompileTimeError # Issue 32983
issue31596_override_test/07: MissingCompileTimeError issue31596_override_test/07: MissingCompileTimeError
issue31596_override_test/08: MissingCompileTimeError issue31596_override_test/08: MissingCompileTimeError
issue31596_super_test/02: MissingCompileTimeError issue31596_super_test/02: MissingCompileTimeError
@@ -450,10 +443,15 @@ export_ambiguous_main_test: Crash # Issue 32618
[ $compiler != dart2js && $compiler != dartk && $compiler != dartkp && $fasta ] [ $compiler != dart2js && $compiler != dartk && $compiler != dartkp && $fasta ]
const_optional_args_test/01: MissingCompileTimeError const_optional_args_test/01: MissingCompileTimeError
[ $compiler != dart2js && $fasta ] # The precomilation configuration uses a kernel2kernel constants evaluator
# which is is more correct than fasta/vm in JIT mode (i.e. it catches more
# compile-time errors).
[ $compiler != dart2js && $compiler != dartkp && $fasta ]
compile_time_constant_c_test/02: MissingCompileTimeError compile_time_constant_c_test/02: MissingCompileTimeError
const_constructor_nonconst_field_test/01: MissingCompileTimeError const_constructor_nonconst_field_test/01: MissingCompileTimeError
const_syntax_test/05: MissingCompileTimeError const_syntax_test/05: MissingCompileTimeError
[ $compiler != dart2js && $fasta ]
mixin_super_2_test/01: MissingCompileTimeError mixin_super_2_test/01: MissingCompileTimeError
mixin_super_2_test/03: MissingCompileTimeError mixin_super_2_test/03: MissingCompileTimeError
mixin_supertype_subclass_test/02: MissingCompileTimeError mixin_supertype_subclass_test/02: MissingCompileTimeError
@@ -859,11 +857,6 @@ check_member_static_test/02: MissingCompileTimeError # Issue 32613: override che
checked_setter3_test/01: MissingCompileTimeError checked_setter3_test/01: MissingCompileTimeError
checked_setter3_test/02: MissingCompileTimeError checked_setter3_test/02: MissingCompileTimeError
checked_setter3_test/03: MissingCompileTimeError checked_setter3_test/03: MissingCompileTimeError
compile_time_constant_k_test/01: MissingCompileTimeError
compile_time_constant_k_test/02: MissingCompileTimeError
compile_time_constant_k_test/03: MissingCompileTimeError
compile_time_constant_o_test/01: RuntimeError # KernelVM bug: Constant map duplicated key.
compile_time_constant_o_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
compile_time_constant_static5_test/11: CompileTimeError # Issue 31537 compile_time_constant_static5_test/11: CompileTimeError # Issue 31537
compile_time_constant_static5_test/16: CompileTimeError # Issue 31537 compile_time_constant_static5_test/16: CompileTimeError # Issue 31537
compile_time_constant_static5_test/21: CompileTimeError # Issue 31537 compile_time_constant_static5_test/21: CompileTimeError # Issue 31537
@@ -872,11 +865,9 @@ conditional_import_string_test: CompileTimeError # KernelVM bug: Deferred loadin
conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 30273. conditional_import_test: CompileTimeError # KernelVM bug: Deferred loading kernel issue 30273.
config_import_corelib_test: CompileTimeError # Issue 31533 config_import_corelib_test: CompileTimeError # Issue 31533
config_import_test: RuntimeError # KernelVM bug: Configurable imports. config_import_test: RuntimeError # KernelVM bug: Configurable imports.
const_dynamic_type_literal_test/02: RuntimeError # KernelVM bug: Constant map duplicated key.
const_evaluation_test: SkipByDesign const_evaluation_test: SkipByDesign
const_list_test: RuntimeError const_list_test: RuntimeError
const_map4_test: RuntimeError const_map4_test: RuntimeError
const_nested_test: RuntimeError # KernelVM bug: Constant evaluation.
constructor12_test: RuntimeError constructor12_test: RuntimeError
constructor3_test: Fail, OK, Pass constructor3_test: Fail, OK, Pass
ct_const2_test: Skip # Incompatible flag: --compile_all ct_const2_test: Skip # Incompatible flag: --compile_all
@@ -976,8 +967,6 @@ local_function_test/none: RuntimeError
main_not_a_function_test: Skip main_not_a_function_test: Skip
main_test/03: RuntimeError main_test/03: RuntimeError
many_overridden_no_such_method_test: SkipByDesign many_overridden_no_such_method_test: SkipByDesign
map_literal3_test/01: MissingCompileTimeError
map_literal3_test/02: MissingCompileTimeError
map_literal3_test/03: MissingCompileTimeError map_literal3_test/03: MissingCompileTimeError
method_override4_test/01: MissingCompileTimeError method_override4_test/01: MissingCompileTimeError
method_override4_test/02: MissingCompileTimeError method_override4_test/02: MissingCompileTimeError
@@ -1105,6 +1094,28 @@ recursive_generic_test: RuntimeError # Compares a (dynamic) toString call to 'C<
tearoff_dynamic_test: RuntimeError # Compares call to "foo" (noSuchMethod) with string "foo" tearoff_dynamic_test: RuntimeError # Compares call to "foo" (noSuchMethod) with string "foo"
type_variable_promotion_test: RuntimeError # Compares runtime type to the string "List<B>" type_variable_promotion_test: RuntimeError # Compares runtime type to the string "List<B>"
# The precomilation configuration uses a kernel2kernel constants evaluator
# which is is more correct than fasta/vm in JIT mode (i.e. it catches more
# compile-time errors).
[ $compiler != dartkp && $fasta ]
compile_time_constant_o_test/01: MissingCompileTimeError # Issue 32983
compile_time_constant_o_test/02: MissingCompileTimeError # Issue 32983
const_dynamic_type_literal_test/02: MissingCompileTimeError # Issue 32983
identical_const_test/01: MissingCompileTimeError # Issue 32983
identical_const_test/02: MissingCompileTimeError # Issue 32983
identical_const_test/03: MissingCompileTimeError # Issue 32983
identical_const_test/04: MissingCompileTimeError # Issue 32983
# The precomilation configuration uses a kernel2kernel constants evaluator
# which is is more correct than fasta/vm in JIT mode (i.e. it catches more
# compile-time errors).
[ $compiler != dartkp && $fasta && $strong ]
compile_time_constant_k_test/01: MissingCompileTimeError
compile_time_constant_k_test/02: MissingCompileTimeError
compile_time_constant_k_test/03: MissingCompileTimeError
map_literal3_test/01: MissingCompileTimeError
map_literal3_test/02: MissingCompileTimeError
[ $compiler == fasta && $strong ] [ $compiler == fasta && $strong ]
bad_override_test/03: MissingCompileTimeError bad_override_test/03: MissingCompileTimeError
check_member_static_test/02: MissingCompileTimeError check_member_static_test/02: MissingCompileTimeError
@@ -1298,16 +1309,11 @@ setter_override2_test/02: MissingCompileTimeError
variable_shadow_class_test/01: MissingCompileTimeError variable_shadow_class_test/01: MissingCompileTimeError
[ $fasta && $strong ] [ $fasta && $strong ]
compile_time_constant_k_test/01: MissingCompileTimeError
compile_time_constant_k_test/02: MissingCompileTimeError
compile_time_constant_k_test/03: MissingCompileTimeError
compile_time_constant_static2_test/04: MissingCompileTimeError compile_time_constant_static2_test/04: MissingCompileTimeError
compile_time_constant_static3_test/04: MissingCompileTimeError compile_time_constant_static3_test/04: MissingCompileTimeError
initializing_formal_type_annotation_test/01: MissingCompileTimeError initializing_formal_type_annotation_test/01: MissingCompileTimeError
initializing_formal_type_annotation_test/02: MissingCompileTimeError initializing_formal_type_annotation_test/02: MissingCompileTimeError
issue18628_2_test/01: MissingCompileTimeError issue18628_2_test/01: MissingCompileTimeError
map_literal3_test/01: MissingCompileTimeError
map_literal3_test/02: MissingCompileTimeError
map_literal3_test/03: MissingCompileTimeError map_literal3_test/03: MissingCompileTimeError
redirecting_factory_infinite_steps_test/01: MissingCompileTimeError redirecting_factory_infinite_steps_test/01: MissingCompileTimeError
redirecting_factory_malbounded_test/01: MissingCompileTimeError redirecting_factory_malbounded_test/01: MissingCompileTimeError