| 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
|
| index d80a589aecf4578f7e1fbeac65a95bccdb1b1fe3..7e302df4d07e6a016e34d341f86078a215b85d62 100644
|
| --- a/tests/compiler/dart2js/backend_dart/opt_constprop_test.dart
|
| +++ b/tests/compiler/dart2js/backend_dart/opt_constprop_test.dart
|
| @@ -31,28 +31,32 @@ 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))))
|
| - (LetCont (k2 ()
|
| + (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))))
|
| + (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))))
|
| - (LetCont (k2 ()
|
| + (LetCont
|
| + ((k0 (v2)
|
| + (LetCont
|
| + ((k1 ()
|
| + (LetPrim (v3 (Constant (Int 2)))
|
| + (InvokeContinuation return (v3))))
|
| + (k2 ()
|
| (LetPrim (v4 (Constant (Int 3)))
|
| - (InvokeContinuation return (v4))))
|
| - (InvokeContinuation k1 ()))))
|
| + (InvokeContinuation return (v4)))))
|
| + (InvokeContinuation k1 ()))))
|
| (LetPrim (v5 (Constant (Bool true)))
|
| (InvokeContinuation k0 (v5)))))))
|
| """;
|
| @@ -75,108 +79,130 @@ String CP1_OUT = """
|
| String CP2_IN = """
|
| (FunctionDefinition main () return ()
|
| (LetPrim (v0 (Constant (Int 1)))
|
| - (LetCont* (k0 ()
|
| - (LetCont (k1 ()
|
| - (LetPrim (v1 (Constant (Int 42)))
|
| - (InvokeContinuation return (v1))))
|
| - (LetCont (k2 ()
|
| - (LetPrim (v2 (Constant (Bool false)))
|
| - (LetCont (k3 (v3)
|
| - (LetCont (k4 ()
|
| - (InvokeContinuation return (v0)))
|
| - (LetCont (k5 ()
|
| - (LetPrim (v4 (Constant (Bool true)))
|
| - (LetCont (k6 (v5)
|
| - (LetCont (k7 ()
|
| - (InvokeContinuation return (v0)))
|
| - (LetCont (k8 ()
|
| - (InvokeContinuation* 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))))
|
| - (LetCont (k12 ()
|
| - (LetPrim (v9 (Constant (Bool false)))
|
| - (InvokeContinuation k6 (v9))))
|
| - (Branch (IsTrue v7) k11 k12))))
|
| - (InvokeMethod v0 == (v6) k10))))
|
| - (LetCont (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))))
|
| - (LetCont (k15 ()
|
| - (LetPrim (v12 (Constant (Bool false)))
|
| - (LetCont (k16 ()
|
| - (LetPrim (v13 (Constant (Bool true)))
|
| - (InvokeContinuation k3 (v13))))
|
| - (LetCont (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)))))
|
| + (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* 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* (k0 ()
|
| - (LetCont (k1 ()
|
| - (LetPrim (v1 (Constant (Int 42)))
|
| - (InvokeContinuation return (v1))))
|
| - (LetCont (k2 ()
|
| - (LetPrim (v2 (Constant (Bool false)))
|
| - (LetCont (k3 (v3)
|
| - (LetCont (k4 ()
|
| - (InvokeContinuation return (v0)))
|
| - (LetCont (k5 ()
|
| - (LetPrim (v4 (Constant (Bool true)))
|
| - (LetCont (k6 (v5)
|
| - (LetCont (k7 ()
|
| - (InvokeContinuation return (v0)))
|
| - (LetCont (k8 ()
|
| - (InvokeContinuation* k0 ()))
|
| - (InvokeContinuation k7 ()))))
|
| - (LetCont (k9 ()
|
| - (LetPrim (v6 (Constant (Int 1)))
|
| - (LetCont (k10 (v7)
|
| - (LetCont (k11 ()
|
| - (LetPrim (v8 (Constant (Bool true)))
|
| - (InvokeContinuation k6 (v8))))
|
| - (LetCont (k12 ()
|
| - (LetPrim (v9 (Constant (Bool false)))
|
| - (InvokeContinuation k6 (v9))))
|
| - (InvokeContinuation k11 ()))))
|
| - (LetPrim (v10 (Constant (Bool true)))
|
| - (InvokeContinuation k10 (v10))))))
|
| - (LetCont (k13 ()
|
| - (LetPrim (v11 (Constant (Bool false)))
|
| - (InvokeContinuation k6 (v11))))
|
| - (InvokeContinuation k9 ()))))))
|
| - (InvokeContinuation k5 ()))))
|
| - (LetCont (k14 ()
|
| - (LetPrim (v12 (Constant (Bool true)))
|
| - (InvokeContinuation k3 (v12))))
|
| - (LetCont (k15 ()
|
| - (LetPrim (v13 (Constant (Bool false)))
|
| - (LetCont (k16 ()
|
| - (LetPrim (v14 (Constant (Bool true)))
|
| - (InvokeContinuation k3 (v14))))
|
| - (LetCont (k17 ()
|
| - (LetPrim (v15 (Constant (Bool false)))
|
| - (InvokeContinuation k3 (v15))))
|
| - (InvokeContinuation k17 ())))))
|
| - (InvokeContinuation k15 ()))))))
|
| - (LetPrim (v16 (Constant (Bool true)))
|
| - (InvokeContinuation k2 ())))))
|
| + (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* 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 ()))))
|
| """;
|
|
|
| @@ -194,16 +220,19 @@ String CP2_OUT = """
|
| 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))))
|
| - (LetCont (k3 ()
|
| - (InvokeContinuation return (v1)))
|
| - (Branch (IsTrue v3) k2 k3))))
|
| - (InvokeMethod v1 == (v2) k1))))
|
| + (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;
|
| @@ -214,16 +243,18 @@ String CP4_IN = """
|
| (FunctionDefinition main () return ()
|
| (LetPrim (v0 (Constant (Int 1)))
|
| (LetPrim (v1 (Constant (Int 2)))
|
| - (LetCont (k0 (v2)
|
| - (InvokeContinuation return (v2)))
|
| + (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)))
|
| + (LetCont
|
| + ((k0 (v2)
|
| + (InvokeContinuation return (v2))))
|
| (LetPrim (v3 (Constant (Int 3)))
|
| (InvokeContinuation k0 (v3)))))))
|
| """;
|
| @@ -234,8 +265,9 @@ String CP5_IN = """
|
| (FunctionDefinition main () return ()
|
| (LetPrim (v0 (Constant (Int 1)))
|
| (LetPrim (v1 (Constant (Int 2)))
|
| - (LetCont (k0 (v2)
|
| - (InvokeContinuation return (v2)))
|
| + (LetCont
|
| + ((k0 (v2)
|
| + (InvokeContinuation return (v2))))
|
| (InvokeMethod v0 [] (v1) k0)))))
|
| """;
|
| String CP5_OUT = CP5_IN;
|
| @@ -246,16 +278,18 @@ 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)))))
|
| + (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)))
|
| + (LetCont
|
| + ((k0 (v2)
|
| + (InvokeContinuation return (v2))))
|
| (LetPrim (v3 (Constant (Double Infinity)))
|
| (InvokeContinuation k0 (v3)))))))
|
| """;
|
| @@ -269,10 +303,12 @@ String CP7_IN = """
|
| (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)))
|
| + (LetCont
|
| + ((k0 (v5)
|
| + (LetCont
|
| + ((k1 (v6)
|
| + (InvokeContinuation return (v6))))
|
| + (InvokeMethod v5 length () k1))))
|
| (ConcatenateStrings (v2 v0 v3 v1 v4) k0))))))))
|
| """;
|
| String CP7_OUT = """
|
| @@ -282,10 +318,12 @@ String CP7_OUT = """
|
| (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)))
|
| + (LetCont
|
| + ((k0 (v5)
|
| + (LetCont
|
| + ((k1 (v6)
|
| + (InvokeContinuation return (v6))))
|
| + (InvokeMethod v5 length () k1))))
|
| (LetPrim (v7 (Constant (String "abcd")))
|
| (InvokeContinuation k0 (v7))))))))))
|
| """;
|
| @@ -299,26 +337,30 @@ 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))))
|
| - (LetCont (k2 ()
|
| - (InvokeContinuation return (v0)))
|
| - (Branch (IsTrue v2) k1 k2))))
|
| + (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))))
|
| - (LetCont (k2 ()
|
| - (InvokeContinuation return (v0)))
|
| - (InvokeContinuation k1 ()))))
|
| + (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)))))))
|
| """;
|
| @@ -328,63 +370,77 @@ String CP8_OUT = """
|
| String CP9_IN = """
|
| (FunctionDefinition main () return ()
|
| (LetPrim (v0 (Constant (Int 1)))
|
| - (LetCont* (k0 (v1)
|
| - (LetCont (k1 ()
|
| - (InvokeContinuation return (v1)))
|
| - (LetCont (k2 ()
|
| - (LetPrim (v2 (Constant (Int 1)))
|
| - (LetCont (k3 (v3)
|
| - (LetCont (k4 (v4)
|
| - (LetCont (k5 ()
|
| - (LetPrim (v5 (Constant (Int 42)))
|
| - (InvokeContinuation return (v5))))
|
| - (LetCont (k6 ()
|
| - (LetPrim (v6 (Constant (Int 1)))
|
| - (LetCont (k7 (v7)
|
| - (InvokeContinuation* k0 (v7)))
|
| - (InvokeMethod v1 + (v6) k7))))
|
| - (Branch (IsTrue v4) k5 k6))))
|
| - (LetCont (k8 ()
|
| - (LetPrim (v8 (Constant (Bool false)))
|
| - (InvokeContinuation k4 (v8))))
|
| - (LetCont (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)))))
|
| + (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* 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* (k0 (v1)
|
| - (LetCont (k1 ()
|
| - (InvokeContinuation return (v1)))
|
| - (LetCont (k2 ()
|
| - (LetPrim (v2 (Constant (Int 1)))
|
| - (LetCont (k3 (v3)
|
| - (LetCont (k4 (v4)
|
| - (LetCont (k5 ()
|
| - (LetPrim (v5 (Constant (Int 42)))
|
| - (InvokeContinuation return (v5))))
|
| - (LetCont (k6 ()
|
| - (LetPrim (v6 (Constant (Int 1)))
|
| - (LetCont (k7 (v7)
|
| - (InvokeContinuation* k0 (v7)))
|
| - (InvokeMethod v1 + (v6) k7))))
|
| - (Branch (IsTrue v4) k5 k6))))
|
| - (LetCont (k8 ()
|
| - (LetPrim (v8 (Constant (Bool false)))
|
| - (InvokeContinuation k4 (v8))))
|
| - (LetCont (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 ())))))
|
| + (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* 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)))))
|
| """;
|
|
|
| @@ -399,24 +455,30 @@ String CP9_OUT = """
|
| String CP10_IN = """
|
| (FunctionDefinition main () return ()
|
| (LetPrim (v0 (Constant (Int 0)))
|
| - (LetCont* (k0 (v1)
|
| - (LetCont (k1 ()
|
| - (LetPrim (v2 (Constant (Null)))
|
| - (InvokeContinuation return (v2))))
|
| - (LetCont (k2 ()
|
| - (LetPrim (v3 (Constant (Int 42)))
|
| - (LetCont (k3 (v4)
|
| - (LetCont (k4 (v5)
|
| - (LetPrim (v6 (Constant (Int 1)))
|
| - (LetCont (k5 (v7)
|
| - (InvokeContinuation* 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))))))
|
| + (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* 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;
|
|
|