dart2js cps: Use CPS IR for patched functions and typed data.

R=asgerf@google.com

Review URL: https://codereview.chromium.org//1241303003 .
This commit is contained in:
Karl Klose
2015-07-22 13:07:35 +02:00
parent 6d38ebd06e
commit 1b7053bcf6
4 changed files with 15 additions and 9 deletions
@@ -62,17 +62,10 @@ class CpsFunctionCompiler implements FunctionCompiler {
JavaScriptBackend backend = compiler.backend;
return compiler.withCurrentElement(element, () {
try {
ClassElement cls = element.enclosingClass;
String name = element.name;
String className = cls == null ? null : cls.name;
LibraryElement library = element.library;
String libraryName = library == null ? null : library.toString();
// TODO(karlklose): remove this fallback.
// Fallback for a few functions that we know require try-finally and
// switch.
if (element.isNative ||
element.isPatched ||
libraryName == 'origin library(dart:typed_data)') {
if (element.isNative) {
compiler.log('Using SSA compiler for platform element $element');
return fallbackCompiler.compile(work);
}
+1
View File
@@ -9600,6 +9600,7 @@ Language/13_Statements/06_For_A01_t07: Crash # unsupported operation on erroneou
Language/13_Statements/12_Labels_A03_t04: Crash # (switch (i){L:case 0:flag=true;break;case 2:continue L;}): continue to a labeled switch case
Language/13_Statements/14_Continue_A02_t12: Crash # (switch (2){L:case 1:flag=true;break;case 2:continue L;}): continue to a labeled switch case
Language/13_Statements/14_Continue_A02_t13: Crash # (switch (2){case 2:continue L;L:case 1:flag=true;}): continue to a labeled switch case
Language/15_Types/4_Interface_Types_A12_t09: RuntimeError # Please triage this failure.
LibTest/async/DeferredLibrary/DeferredLibrary_A01_t01: Crash # (lazy.method()): deferred access is not implemented
LibTest/collection/ListBase/ListBase_class_A01_t02: Crash # Stack Overflow
LibTest/collection/ListMixin/ListMixin_class_A01_t02: Crash # Stack Overflow
+2 -1
View File
@@ -214,13 +214,14 @@ big_integer_parsed_mul_div_vm_test: Pass, Slow
[ $compiler == dart2js && $cps_ir ]
error_stack_trace1_test: Pass # H.unwrapException(...).get$stackTrace is not a function
hashcode_test: RuntimeError # Please triage this failure.
iterable_empty_test: RuntimeError # Please triage this failure.
iterable_return_type_test/none: RuntimeError # Please triage this failure.
iterable_to_list_test: RuntimeError # Please triage this failure.
iterable_to_set_test: RuntimeError # Please triage this failure.
list_filled_type_argument_test: RuntimeError # Please triage this failure.
list_test/01: RuntimeError # this.get$length is not a function
list_test/none: RuntimeError # this.get$length is not a function
list_unmodifiable_test: RuntimeError # Please triage this failure.
map_values2_test: RuntimeError # Please triage this failure.
map_values3_test: RuntimeError # Please triage this failure.
map_values4_test: RuntimeError # Please triage this failure.
+11
View File
@@ -355,6 +355,7 @@ cha_deopt3_test: Crash # (d.make_u()): deferred access is not implemented
classes_static_method_clash_test: Crash # Stack Overflow
closure_in_constructor_test: Crash # Invalid argument(s)
closure_type_variables_test: Crash # Invalid argument(s)
closures_initializer_test: RuntimeError # Please triage this failure.
const_evaluation_test/01: Crash # (static Iterable<Str... cannot handle async/sync*/async* functions
constructor12_test: RuntimeError # Please triage this failure.
crash_6725_test/01: Crash # The null object does not have a getter '_element'.
@@ -404,6 +405,7 @@ deferred_type_dependency_test/none: Crash # (main()async{await l... cannot hand
deferred_type_dependency_test/type_annotation: Crash # (main()async{await l... cannot handle async/sync*/async* functions
enum_mirror_test: Crash # (static Iterable<Str... cannot handle async/sync*/async* functions
final_super_field_set_test/01: RuntimeError # Please triage this failure.
first_class_types_test: RuntimeError # Please triage this failure.
flatten_test/01: Crash # (test()async{int x=await new Derived<int>();}): cannot handle async/sync*/async* functions
flatten_test/02: Crash # (test()async{Future<int> f()async=>new Derived<int>();}): cannot handle async/sync*/async* functions
flatten_test/03: Crash # (test()async{Future<... cannot handle async/sync*/async* functions
@@ -419,7 +421,10 @@ flatten_test/12: Crash # (test()async{Future<... cannot handle async/sync*/asyn
flatten_test/none: Crash # (test()async{}): cannot handle async/sync*/async* functions
for2_test: Crash # The null object does not have a getter 'field'.
for_variable_capture_test: Crash # (i=0): For-loop variable captured in loop header
generic2_test: RuntimeError # Please triage this failure.
generic_field_mixin3_test: RuntimeError # Please triage this failure.
generic_instanceof_test: RuntimeError # Please triage this failure.
generic_native_test: RuntimeError # Please triage this failure.
if_null_assignment_behavior_test/12: RuntimeError # Please triage this failure.
if_null_assignment_behavior_test/28: RuntimeError # Please triage this failure.
if_null_assignment_static_test/01: RuntimeError # v0.get$a is not a function
@@ -436,12 +441,15 @@ if_null_assignment_static_test/39: RuntimeError # v0.get$b is not a function
if_null_assignment_static_test/40: RuntimeError # v0.get$a is not a function
infinite_switch_label_test: Crash # (switch (target){l0:... continue to a labeled switch case
instance_creation_in_function_annotation_test: Crash # (static Iterable<Str... cannot handle async/sync*/async* functions
instanceof2_test: RuntimeError # Please triage this failure.
instanceof4_test/01: RuntimeError # Please triage this failure.
invocation_mirror_invoke_on_test: RuntimeError # Please triage this failure.
invocation_mirror_test: Crash # (super[37]=42): visitUnresolvedSuperIndexSet
issue_1751477_test: RuntimeError # O.loadLibrary is not a function
large_class_declaration_test: Crash # Stack Overflow
list_is_test: RuntimeError # Please triage this failure.
list_test: RuntimeError # Please triage this failure.
many_generic_instanceof_test: RuntimeError # Please triage this failure.
many_overridden_no_such_method_test: RuntimeError # Please triage this failure.
mixin_type_parameters_mixin_extends_test: Crash # The null object does not have a getter '_element'.
mixin_type_parameters_mixin_test: Crash # The null object does not have a getter '_element'.
@@ -501,3 +509,6 @@ type_parameter_test/06: Crash # Invalid argument(s)
type_parameter_test/none: Crash # Invalid argument(s)
type_variable_closure2_test: RuntimeError # Please triage this failure.
type_variable_closure_test: Crash # Invalid argument(s)
type_variable_field_initializer_closure_test: RuntimeError # Please triage this failure.
type_variable_field_initializer_test: RuntimeError # Please triage this failure.
type_variable_nested_test: RuntimeError # Please triage this failure.