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

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

Issue 833353002: Make scoping more prominent in the CPS IR's printed representation. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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_shrinking_test.dart
diff --git a/tests/compiler/dart2js/backend_dart/opt_shrinking_test.dart b/tests/compiler/dart2js/backend_dart/opt_shrinking_test.dart
index bcd9e0aef6fc77f1b2bb32e7041cd1a5ffb0d242..3e8c17d7382977f39f338580387728698b6369fb 100644
--- a/tests/compiler/dart2js/backend_dart/opt_shrinking_test.dart
+++ b/tests/compiler/dart2js/backend_dart/opt_shrinking_test.dart
@@ -21,14 +21,14 @@ import 'package:compiler/src/cps_ir/optimizers.dart';
String DEAD_VAL_IN = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 42)))
- (LetPrim v1 (Constant (Int 0)))
- (InvokeContinuation return v1))
+ (LetPrim (v0 (Constant (Int 42)))
+ (LetPrim (v1 (Constant (Int 0)))
+ (InvokeContinuation return (v1)))))
""";
String DEAD_VAL_OUT = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 0)))
- (InvokeContinuation return v0))
+ (LetPrim (v0 (Constant (Int 0)))
+ (InvokeContinuation return (v0))))
""";
// Iterative dead-val. No optimizations possible since the continuation to
@@ -42,11 +42,12 @@ String DEAD_VAL_OUT = """
String ITERATIVE_DEAD_VAL1_IN = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 42)))
- (LetPrim v1 (Constant (Int 1)))
- (LetCont (k0 v2) (LetPrim v3 (Constant (Int 0)))
- (InvokeContinuation return v3))
- (InvokeMethod v0 + v1 k0))
+ (LetPrim (v0 (Constant (Int 42)))
+ (LetPrim (v1 (Constant (Int 1)))
+ (LetCont (k0 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeMethod v0 + (v1) k0)))))
""";
String ITERATIVE_DEAD_VAL1_OUT = ITERATIVE_DEAD_VAL1_IN;
@@ -54,18 +55,18 @@ String ITERATIVE_DEAD_VAL1_OUT = ITERATIVE_DEAD_VAL1_IN;
String ITERATIVE_DEAD_VAL2_IN = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 42)))
- (LetPrim v1
- (CreateFunction
- (FunctionDefinition f (i) return ()
- (InvokeContinuation return v0))))
- (LetPrim v2 (Constant (Int 0)))
- (InvokeContinuation return v2))
+ (LetPrim (v0 (Constant (Int 42)))
+ (LetPrim (v1
+ (CreateFunction
+ (FunctionDefinition f (i) return ()
+ (InvokeContinuation return (v0)))))
+ (LetPrim (v2 (Constant (Int 0)))
+ (InvokeContinuation return (v2))))))
""";
String ITERATIVE_DEAD_VAL2_OUT = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 0)))
- (InvokeContinuation return v0))
+ (LetPrim (v0 (Constant (Int 0)))
+ (InvokeContinuation return (v0))))
""";
// Basic dead-cont: letcont k x = L in K -> K (k not free in K).
@@ -73,45 +74,52 @@ String ITERATIVE_DEAD_VAL2_OUT = """
String DEAD_CONT_IN = """
(FunctionDefinition main () return ()
- (LetPrim v4 (Constant (Int 0)))
- (LetCont (k0 v0) (InvokeConstructor List return))
- (LetCont (k1 v1)
- (LetCont (k2 v2) (LetPrim v3 (Constant (Int 0)))
- (InvokeContinuation return v3))
- (InvokeStatic print v4 k2))
- (InvokeStatic print v4 k1))
+ (LetPrim (v4 (Constant (Int 0)))
+ (LetCont (k0 (v0)
+ (InvokeConstructor List () return))
+ (LetCont (k1 (v1)
+ (LetCont (k2 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeStatic print (v4) k2)))
+ (InvokeStatic print (v4) k1)))))
""";
String DEAD_CONT_OUT = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 0)))
- (LetCont (k0 v1)
- (LetCont (k1 v2) (LetPrim v3 (Constant (Int 0)))
- (InvokeContinuation return v3))
- (InvokeStatic print v0 k1))
- (InvokeStatic print v0 k0))
+ (LetPrim (v0 (Constant (Int 0)))
+ (LetCont (k0 (v1)
+ (LetCont (k1 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeStatic print (v0) k1)))
+ (InvokeStatic print (v0) k0))))
""";
// Iterative dead-cont. IR written by hand.
String ITERATIVE_DEAD_CONT_IN = """
(FunctionDefinition main () return ()
- (LetPrim v4 (Constant (Int 0)))
- (LetCont (k0 v0) (InvokeConstructor List return))
- (LetCont (k3 v5) (InvokeContinuation k0 v5))
- (LetCont (k1 v1)
- (LetCont (k2 v2) (LetPrim v3 (Constant (Int 0)))
- (InvokeContinuation return v3))
- (InvokeStatic print v4 k2))
- (InvokeStatic print v4 k1))
+ (LetPrim (v4 (Constant (Int 0)))
+ (LetCont (k0 (v0)
+ (InvokeConstructor List () return))
+ (LetCont (k3 (v5)
+ (InvokeContinuation k0 (v5)))
+ (LetCont (k1 (v1)
+ (LetCont (k2 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeStatic print (v4) k2)))
+ (InvokeStatic print (v4) k1))))))
""";
String ITERATIVE_DEAD_CONT_OUT = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 0)))
- (LetCont (k0 v1)
- (LetCont (k1 v2) (LetPrim v3 (Constant (Int 0)))
- (InvokeContinuation return v3))
- (InvokeStatic print v0 k1))
- (InvokeStatic print v0 k0))
+ (LetPrim (v0 (Constant (Int 0)))
+ (LetCont (k0 (v1)
+ (LetCont (k1 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeStatic print (v0) k1)))
+ (InvokeStatic print (v0) k0))))
""";
// Beta-cont-lin: letcont k x = K in C[k y] -> C[K[y/x]] (k not free in C).
@@ -119,33 +127,35 @@ String ITERATIVE_DEAD_CONT_OUT = """
String BETA_CONT_LIN_IN = """
(FunctionDefinition main () return ()
- (LetCont (k0 v0)
- (LetCont (k1 v1)
- (LetCont (k2 v2) (LetPrim v3 (Constant (Int 0)))
- (InvokeContinuation return v3))
- (InvokeStatic print v0 k2))
- (InvokeStatic print v0 k1))
- (LetPrim v4 (Constant (Int 0)))
- (InvokeContinuation k0 v4))
+ (LetCont (k0 (v0)
+ (LetCont (k1 (v1)
+ (LetCont (k2 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeStatic print (v0) k2)))
+ (InvokeStatic print (v0) k1)))
+ (LetPrim (v4 (Constant (Int 0)))
+ (InvokeContinuation k0 (v4)))))
""";
String BETA_CONT_LIN_OUT = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 0)))
- (LetCont (k0 v1)
- (LetCont (k1 v2) (LetPrim v3 (Constant (Int 0)))
- (InvokeContinuation return v3))
- (InvokeStatic print v0 k1))
- (InvokeStatic print v0 k0))
+ (LetPrim (v0 (Constant (Int 0)))
+ (LetCont (k0 (v1)
+ (LetCont (k1 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeStatic print (v0) k1)))
+ (InvokeStatic print (v0) k0))))
""";
// Beta-cont-lin with recursive continuation. IR written by hand.
String RECURSIVE_BETA_CONT_LIN_IN = """
(FunctionDefinition main () return ()
- (LetCont* (k0 v0)
- (InvokeContinuation* k0 v0))
- (LetPrim v1 (Constant (Int 0)))
- (InvokeContinuation k0 v1))
+ (LetCont* (k0 (v0)
+ (InvokeContinuation* k0 (v0)))
+ (LetPrim (v1 (Constant (Int 0)))
+ (InvokeContinuation k0 (v1)))))
""";
String RECURSIVE_BETA_CONT_LIN_OUT = RECURSIVE_BETA_CONT_LIN_IN;
@@ -153,40 +163,53 @@ String RECURSIVE_BETA_CONT_LIN_OUT = RECURSIVE_BETA_CONT_LIN_IN;
String USED_BETA_CONT_LIN_IN = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 0)))
- (LetCont (k0 v1)
- (LetCont (k1 v2)
- (LetCont (k2 v3) (LetPrim v4 (Constant (Int 0)))
- (InvokeContinuation return v4))
- (InvokeStatic print v1 k2))
- (InvokeStatic print v1 k1))
- (LetPrim v5
- (CreateFunction
- (FunctionDefinition f () return ()
- (InvokeContinuation return v1))))
- (InvokeContinuation k0 v0))
-""";
-String USED_BETA_CONT_LIN_OUT = USED_BETA_CONT_LIN_IN;
+ (LetPrim (v0 (Constant (Int 0)))
+ (LetCont (k0 (v1)
+ (LetCont (k1 (v2)
+ (LetCont (k2 (v3)
+ (LetPrim (v4 (Constant (Int 0)))
+ (InvokeContinuation return (v4))))
+ (InvokeStatic print (v1) k2)))
+ (InvokeStatic print (v1) k1)))
+ (LetPrim (v5
+ (CreateFunction
+ (FunctionDefinition f () return ()
+ (InvokeContinuation return (v1)))))
+ (InvokeContinuation k0 (v0))))))
+""";
+String USED_BETA_CONT_LIN_OUT = """
+(FunctionDefinition main () return ()
+ (LetPrim (v0 (Constant (Int 0)))
+ (LetCont (k0 (v1)
+ (LetCont (k1 (v2)
+ (LetPrim (v3 (Constant (Int 0)))
+ (InvokeContinuation return (v3))))
+ (InvokeStatic print (v0) k1)))
+ (InvokeStatic print (v0) k0))))
+""";
// Eta-cont: letcont k x = j x in K -> K[j/k].
// IR written by hand.
String ETA_CONT_IN = """
(FunctionDefinition main () return ()
- (LetPrim v3 (Constant (Int 0)))
- (LetCont* (k1 v1) (InvokeContinuation return v3))
- (LetCont (k0 v0) (InvokeContinuation k1 v0))
- (LetPrim v4
- (CreateFunction
- (FunctionDefinition f () return ()
- (InvokeContinuation k1 v3))))
- (InvokeContinuation k0 v3))
+ (LetPrim (v3 (Constant (Int 0)))
+ (LetCont* (k1 (v1)
+ (InvokeContinuation return (v3)))
+ (LetCont (k0 (v0)
+ (InvokeContinuation k1 (v0)))
+ (LetPrim (v4
+ (CreateFunction
+ (FunctionDefinition f () return ()
+ (InvokeContinuation k1 (v3)))))
+ (InvokeContinuation k0 (v3)))))))
""";
String ETA_CONT_OUT = """
(FunctionDefinition main () return ()
- (LetPrim v0 (Constant (Int 0)))
- (LetCont (k0 v1) (InvokeContinuation return v0))
- (InvokeContinuation k0 v0))
+ (LetPrim (v0 (Constant (Int 0)))
+ (LetCont (k0 (v1)
+ (InvokeContinuation return (v0)))
+ (InvokeContinuation k0 (v0)))))
""";
// Beta-fun-lin and eta-fun might not apply to us, since
@@ -224,5 +247,6 @@ void main() {
testShrinkingReducer(ITERATIVE_DEAD_CONT_IN, ITERATIVE_DEAD_CONT_OUT);
testShrinkingReducer(BETA_CONT_LIN_IN, BETA_CONT_LIN_OUT);
testShrinkingReducer(RECURSIVE_BETA_CONT_LIN_IN, RECURSIVE_BETA_CONT_LIN_OUT);
+ testShrinkingReducer(USED_BETA_CONT_LIN_IN, USED_BETA_CONT_LIN_OUT);
testShrinkingReducer(ETA_CONT_IN, ETA_CONT_OUT);
}

Powered by Google App Engine
This is Rietveld 408576698