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

Unified Diff: tests/compiler/dart2js/backend_dart/opt_constprop_test.dart

Issue 2213673002: Delete dart_backend from compiler. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: tests/compiler/dart2js/backend_dart/opt_constprop_test.dart
diff --git a/tests/compiler/dart2js/backend_dart/opt_constprop_test.dart b/tests/compiler/dart2js/backend_dart/opt_constprop_test.dart
deleted file mode 100644
index 2ee38902d77b0f877ed21ce968d2da068a5b7a65..0000000000000000000000000000000000000000
--- a/tests/compiler/dart2js/backend_dart/opt_constprop_test.dart
+++ /dev/null
@@ -1,528 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import '../mock_compiler.dart';
-import 'sexpr_unstringifier.dart';
-import 'package:async_helper/async_helper.dart';
-import "package:expect/expect.dart";
-import 'package:compiler/src/cps_ir/cps_ir_nodes_sexpr.dart';
-import 'package:compiler/src/cps_ir/optimizers.dart';
-import 'package:compiler/src/constant_system_dart.dart';
-
-// The tests in this file that ensure that sparse constant propagation on the
-// CPS IR works as expected.
-
-// CP1 represents the following incoming dart code:
-//
-// int main() {
-// int i = 1;
-// int j;
-// if (i == 1) {
-// j = 2;
-// } else {
-// j = 3;
-// }
-// return j;
-// }
-
-String CP1_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 1)))
- (LetCont
- ((k0 (v2)
- (LetCont
- ((k1 ()
- (LetPrim (v3 (Constant (Int 2)))
- (InvokeContinuation return (v3))))
- (k2 ()
- (LetPrim (v4 (Constant (Int 3)))
- (InvokeContinuation return (v4)))))
- (Branch (IsTrue v2) k1 k2))))
- (InvokeMethod v0 == (v1) k0)))))
-""";
-String CP1_OUT = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 1)))
- (LetCont
- ((k0 (v2)
- (LetCont
- ((k1 ()
- (LetPrim (v3 (Constant (Int 2)))
- (InvokeContinuation return (v3))))
- (k2 ()
- (LetPrim (v4 (Constant (Int 3)))
- (InvokeContinuation return (v4)))))
- (InvokeContinuation k1 ()))))
- (LetPrim (v5 (Constant (Bool true)))
- (InvokeContinuation k0 (v5)))))))
-""";
-
-// CP2 represents the following incoming dart code:
-//
-// int main() {
-// int i = 1;
-// while (true) {
-// if (false || false) {
-// return i;
-// }
-// if (true && i == 1) {
-// return i;
-// }
-// }
-// return 42;
-// }
-
-String CP2_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetCont
- ((rec k0 ()
- (LetCont
- ((k1 ()
- (LetPrim (v1 (Constant (Int 42)))
- (InvokeContinuation return (v1))))
- (k2 ()
- (LetPrim (v2 (Constant (Bool false)))
- (LetCont
- ((k3 (v3)
- (LetCont
- ((k4 ()
- (InvokeContinuation return (v0)))
- (k5 ()
- (LetPrim (v4 (Constant (Bool true)))
- (LetCont
- ((k6 (v5)
- (LetCont
- ((k7 ()
- (InvokeContinuation return (v0)))
- (k8 ()
- (InvokeContinuation rec k0 ())))
- (Branch (IsTrue v5) k7 k8))))
- (LetCont
- ((k9 ()
- (LetPrim (v6 (Constant (Int 1)))
- (LetCont
- ((k10 (v7)
- (LetCont
- ((k11 ()
- (LetPrim (v8 (Constant (Bool true)))
- (InvokeContinuation k6 (v8))))
- (k12 ()
- (LetPrim (v9 (Constant (Bool false)))
- (InvokeContinuation k6 (v9)))))
- (Branch (IsTrue v7) k11 k12))))
- (InvokeMethod v0 == (v6) k10))))
- (k13 ()
- (LetPrim (v10 (Constant (Bool false)))
- (InvokeContinuation k6 (v10)))))
- (Branch (IsTrue v4) k9 k13))))))
- (Branch (IsTrue v3) k4 k5))))
- (LetCont
- ((k14 ()
- (LetPrim (v11 (Constant (Bool true)))
- (InvokeContinuation k3 (v11))))
- (k15 ()
- (LetPrim (v12 (Constant (Bool false)))
- (LetCont
- ((k16 ()
- (LetPrim (v13 (Constant (Bool true)))
- (InvokeContinuation k3 (v13))))
- (k17 ()
- (LetPrim (v14 (Constant (Bool false)))
- (InvokeContinuation k3 (v14)))))
- (Branch (IsTrue v12) k16 k17)))))
- (Branch (IsTrue v2) k14 k15))))))
- (LetPrim (v15 (Constant (Bool true)))
- (Branch (IsTrue v15) k2 k1)))))
- (InvokeContinuation k0 ()))))
-""";
-String CP2_OUT = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetCont
- ((rec k0 ()
- (LetCont
- ((k1 ()
- (LetPrim (v1 (Constant (Int 42)))
- (InvokeContinuation return (v1))))
- (k2 ()
- (LetPrim (v2 (Constant (Bool false)))
- (LetCont
- ((k3 (v3)
- (LetCont
- ((k4 ()
- (InvokeContinuation return (v0)))
- (k5 ()
- (LetPrim (v4 (Constant (Bool true)))
- (LetCont
- ((k6 (v5)
- (LetCont
- ((k7 ()
- (InvokeContinuation return (v0)))
- (k8 ()
- (InvokeContinuation rec k0 ())))
- (InvokeContinuation k7 ()))))
- (LetCont
- ((k9 ()
- (LetPrim (v6 (Constant (Int 1)))
- (LetCont
- ((k10 (v7)
- (LetCont
- ((k11 ()
- (LetPrim (v8 (Constant (Bool true)))
- (InvokeContinuation k6 (v8))))
- (k12 ()
- (LetPrim (v9 (Constant (Bool false)))
- (InvokeContinuation k6 (v9)))))
- (InvokeContinuation k11 ()))))
- (LetPrim (v10 (Constant (Bool true)))
- (InvokeContinuation k10 (v10))))))
- (k13 ()
- (LetPrim (v11 (Constant (Bool false)))
- (InvokeContinuation k6 (v11)))))
- (InvokeContinuation k9 ()))))))
- (InvokeContinuation k5 ()))))
- (LetCont
- ((k14 ()
- (LetPrim (v12 (Constant (Bool true)))
- (InvokeContinuation k3 (v12))))
- (k15 ()
- (LetPrim (v13 (Constant (Bool false)))
- (LetCont
- ((k16 ()
- (LetPrim (v14 (Constant (Bool true)))
- (InvokeContinuation k3 (v14))))
- (k17 ()
- (LetPrim (v15 (Constant (Bool false)))
- (InvokeContinuation k3 (v15)))))
- (InvokeContinuation k17 ())))))
- (InvokeContinuation k15 ()))))))
- (LetPrim (v16 (Constant (Bool true)))
- (InvokeContinuation k2 ())))))
- (InvokeContinuation k0 ()))))
-""";
-
-// CP3 represents the following incoming dart code:
-//
-// int main() {
-// int i = 1;
-// i = f();
-// if (i == 1) {
-// return 42;
-// }
-// return i;
-// }
-
-String CP3_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetCont
- ((k0 (v1)
- (LetPrim (v2 (Constant (Int 1)))
- (LetCont
- ((k1 (v3)
- (LetCont
- ((k2 ()
- (LetPrim (v4 (Constant (Int 42)))
- (InvokeContinuation return (v4))))
- (k3 ()
- (InvokeContinuation return (v1))))
- (Branch (IsTrue v3) k2 k3))))
- (InvokeMethod v1 == (v2) k1)))))
- (InvokeStatic f () k0))))
-""";
-String CP3_OUT = CP3_IN;
-
-// Addition.
-
-String CP4_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 2)))
- (LetCont
- ((k0 (v2)
- (InvokeContinuation return (v2))))
- (InvokeMethod v0 + (v1) k0)))))
-""";
-String CP4_OUT = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 2)))
- (LetCont
- ((k0 (v2)
- (InvokeContinuation return (v2))))
- (LetPrim (v3 (Constant (Int 3)))
- (InvokeContinuation k0 (v3)))))))
-""";
-
-// Array access operator (no optimization).
-
-String CP5_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 2)))
- (LetCont
- ((k0 (v2)
- (InvokeContinuation return (v2))))
- (InvokeMethod v0 [] (v1) k0)))))
-""";
-String CP5_OUT = CP5_IN;
-
-// Division by 0.
-
-String CP6_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 0)))
- (LetCont
- ((k0 (v2)
- (InvokeContinuation return (v2))))
- (InvokeMethod v0 / (v1) k0)))))
-""";
-String CP6_OUT = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 0)))
- (LetCont
- ((k0 (v2)
- (InvokeContinuation return (v2))))
- (LetPrim (v3 (Constant (Double Infinity)))
- (InvokeContinuation k0 (v3)))))))
-""";
-
-// Concatenate strings.
-
-String CP7_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (String "b")))
- (LetPrim (v1 (Constant (String "d")))
- (LetPrim (v2 (Constant (String "a")))
- (LetPrim (v3 (Constant (String "c")))
- (LetPrim (v4 (Constant (String "")))
- (LetCont
- ((k0 (v5)
- (LetCont
- ((k1 (v6)
- (InvokeContinuation return (v6))))
- (InvokeMethod v5 length () k1))))
- (ConcatenateStrings (v2 v0 v3 v1 v4) k0))))))))
-""";
-String CP7_OUT = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (String "b")))
- (LetPrim (v1 (Constant (String "d")))
- (LetPrim (v2 (Constant (String "a")))
- (LetPrim (v3 (Constant (String "c")))
- (LetPrim (v4 (Constant (String "")))
- (LetCont
- ((k0 (v5)
- (LetCont
- ((k1 (v6)
- (InvokeContinuation return (v6))))
- (InvokeMethod v5 length () k1))))
- (LetPrim (v7 (Constant (String "abcd")))
- (InvokeContinuation k0 (v7))))))))))
-""";
-
-// TODO(jgruber): We can't test is-check optimization because the unstringifier
-// does not recreate accurate types for the TypeOperator node.
-
-// Simple branch removal.
-
-String CP8_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 1)))
- (LetCont
- ((k0 (v2)
- (LetCont
- ((k1 ()
- (LetPrim (v3 (Constant (Int 42)))
- (InvokeContinuation return (v3))))
- (k2 ()
- (InvokeContinuation return (v0))))
- (Branch (IsTrue v2) k1 k2))))
- (InvokeMethod v0 == (v1) k0)))))
-""";
-String CP8_OUT = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetPrim (v1 (Constant (Int 1)))
- (LetCont
- ((k0 (v2)
- (LetCont
- ((k1 ()
- (LetPrim (v3 (Constant (Int 42)))
- (InvokeContinuation return (v3))))
- (k2 ()
- (InvokeContinuation return (v0))))
- (InvokeContinuation k1 ()))))
- (LetPrim (v4 (Constant (Bool true)))
- (InvokeContinuation k0 (v4)))))))
-""";
-
-// While loop.
-
-String CP9_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetCont
- ((rec k0 (v1)
- (LetCont
- ((k1 ()
- (InvokeContinuation return (v1)))
- (k2 ()
- (LetPrim (v2 (Constant (Int 1)))
- (LetCont
- ((k3 (v3)
- (LetCont
- ((k4 (v4)
- (LetCont
- ((k5 ()
- (LetPrim (v5 (Constant (Int 42)))
- (InvokeContinuation return (v5))))
- (k6 ()
- (LetPrim (v6 (Constant (Int 1)))
- (LetCont
- ((k7 (v7)
- (InvokeContinuation rec k0 (v7))))
- (InvokeMethod v1 + (v6) k7)))))
- (Branch (IsTrue v4) k5 k6))))
- (LetCont
- ((k8 ()
- (LetPrim (v8 (Constant (Bool false)))
- (InvokeContinuation k4 (v8))))
- (k9 ()
- (LetPrim (v9 (Constant (Bool true)))
- (InvokeContinuation k4 (v9)))))
- (Branch (IsTrue v3) k8 k9)))))
- (InvokeMethod v1 == (v2) k3)))))
- (LetPrim (v10 (Constant (Bool true)))
- (Branch (IsTrue v10) k2 k1)))))
- (InvokeContinuation k0 (v0)))))
-""";
-String CP9_OUT = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 1)))
- (LetCont
- ((rec k0 (v1)
- (LetCont
- ((k1 ()
- (InvokeContinuation return (v1)))
- (k2 ()
- (LetPrim (v2 (Constant (Int 1)))
- (LetCont
- ((k3 (v3)
- (LetCont
- ((k4 (v4)
- (LetCont
- ((k5 ()
- (LetPrim (v5 (Constant (Int 42)))
- (InvokeContinuation return (v5))))
- (k6 ()
- (LetPrim (v6 (Constant (Int 1)))
- (LetCont
- ((k7 (v7)
- (InvokeContinuation rec k0 (v7))))
- (InvokeMethod v1 + (v6) k7)))))
- (Branch (IsTrue v4) k5 k6))))
- (LetCont
- ((k8 ()
- (LetPrim (v8 (Constant (Bool false)))
- (InvokeContinuation k4 (v8))))
- (k9 ()
- (LetPrim (v9 (Constant (Bool true)))
- (InvokeContinuation k4 (v9)))))
- (Branch (IsTrue v3) k8 k9)))))
- (InvokeMethod v1 == (v2) k3)))))
- (LetPrim (v10 (Constant (Bool true)))
- (InvokeContinuation k2 ())))))
- (InvokeContinuation k0 (v0)))))
-""";
-
-// While loop, from:
-//
-// int main() {
-// for (int i = 0; i < 2; i++) {
-// print(42 + i);
-// }
-// }
-
-String CP10_IN = """
-(FunctionDefinition main () () return
- (LetPrim (v0 (Constant (Int 0)))
- (LetCont
- ((rec k0 (v1)
- (LetCont
- ((k1 ()
- (LetPrim (v2 (Constant (Null)))
- (InvokeContinuation return (v2))))
- (k2 ()
- (LetPrim (v3 (Constant (Int 42)))
- (LetCont
- ((k3 (v4)
- (LetCont
- ((k4 (v5)
- (LetPrim (v6 (Constant (Int 1)))
- (LetCont
- ((k5 (v7)
- (InvokeContinuation rec k0 (v7))))
- (InvokeMethod v1 + (v6) k5)))))
- (InvokeStatic print (v4) k4))))
- (InvokeMethod v3 + (v1) k3)))))
- (LetPrim (v8 (Constant (Int 2)))
- (LetCont
- ((k6 (v9)
- (Branch (IsTrue v9) k2 k1)))
- (InvokeMethod v1 < (v8) k6))))))
- (InvokeContinuation k0 (v0)))))
-""";
-String CP10_OUT = CP10_IN;
-
-/// Normalizes whitespace by replacing all whitespace sequences by a single
-/// space and trimming leading and trailing whitespace.
-String normalizeSExpr(String input) {
- return input.replaceAll(new RegExp(r'[ \n\t]+'), ' ').trim();
-}
-
-/// Parses the given input IR, runs an optimization pass over it, and compares
-/// the stringification of the result against the expected output.
-Future testConstantPropagator(String input, String expectedOutput) {
- final compiler = new MockCompiler.internal(
- emitJavaScript: false,
- enableMinification: false);
- return compiler.init().then((_) {
- final unstringifier = new SExpressionUnstringifier();
- final stringifier = new SExpressionStringifier();
- final optimizer = new TypePropagator(
- compiler.types,
- DART_CONSTANT_SYSTEM,
- new UnitTypeSystem(),
- compiler.internalError);
-
- final f = unstringifier.unstringify(input);
- optimizer.rewrite(f);
-
- String expected = normalizeSExpr(expectedOutput);
- String actual = normalizeSExpr(stringifier.visit(f));
-
- Expect.equals(expected, actual);
- });
-}
-
-void main() {
- asyncTest(() => testConstantPropagator(CP1_IN, CP1_OUT));
- asyncTest(() => testConstantPropagator(CP2_IN, CP2_OUT));
- asyncTest(() => testConstantPropagator(CP3_IN, CP3_OUT));
- asyncTest(() => testConstantPropagator(CP4_IN, CP4_OUT));
- asyncTest(() => testConstantPropagator(CP5_IN, CP5_OUT));
- asyncTest(() => testConstantPropagator(CP6_IN, CP6_OUT));
- asyncTest(() => testConstantPropagator(CP7_IN, CP7_OUT));
- asyncTest(() => testConstantPropagator(CP8_IN, CP8_OUT));
- asyncTest(() => testConstantPropagator(CP9_IN, CP9_OUT));
- asyncTest(() => testConstantPropagator(CP10_IN, CP10_OUT));
-}

Powered by Google App Engine
This is Rietveld 408576698