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

Side by Side Diff: tests/compiler/dart2js/backend_dart/opt_shrinking_test.dart

Issue 1021813002: Redo "Use an explicit 'this' parameter instead of 'This' nodes." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'sexpr_unstringifier.dart'; 5 import 'sexpr_unstringifier.dart';
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 import 'package:compiler/src/cps_ir/cps_ir_nodes.dart'; 7 import 'package:compiler/src/cps_ir/cps_ir_nodes.dart';
8 import 'package:compiler/src/cps_ir/cps_ir_nodes_sexpr.dart'; 8 import 'package:compiler/src/cps_ir/cps_ir_nodes_sexpr.dart';
9 import 'package:compiler/src/cps_ir/optimizers.dart'; 9 import 'package:compiler/src/cps_ir/optimizers.dart';
10 10
11 // The tests in this file that ensure shrinking reductions work as expected. 11 // The tests in this file that ensure shrinking reductions work as expected.
12 // Reductions and their corresponding names are taken from 12 // Reductions and their corresponding names are taken from
13 // 'Compiling with Continuations, Continued' by Andrew Kennedy. 13 // 'Compiling with Continuations, Continued' by Andrew Kennedy.
14 14
15 // Basic dead-val: letprim x = V in K -> K (x not free in K). 15 // Basic dead-val: letprim x = V in K -> K (x not free in K).
16 // 16 //
17 // int main() { 17 // int main() {
18 // int i = 42; 18 // int i = 42;
19 // return 0; 19 // return 0;
20 // } 20 // }
21 21
22 String DEAD_VAL_IN = """ 22 String DEAD_VAL_IN = """
23 (FunctionDefinition main () return 23 (FunctionDefinition main () () return
24 (LetPrim (v0 (Constant (Int 42))) 24 (LetPrim (v0 (Constant (Int 42)))
25 (LetPrim (v1 (Constant (Int 0))) 25 (LetPrim (v1 (Constant (Int 0)))
26 (InvokeContinuation return (v1))))) 26 (InvokeContinuation return (v1)))))
27 """; 27 """;
28 String DEAD_VAL_OUT = """ 28 String DEAD_VAL_OUT = """
29 (FunctionDefinition main () return 29 (FunctionDefinition main () () return
30 (LetPrim (v0 (Constant (Int 0))) 30 (LetPrim (v0 (Constant (Int 0)))
31 (InvokeContinuation return (v0)))) 31 (InvokeContinuation return (v0))))
32 """; 32 """;
33 33
34 // Iterative dead-val. No optimizations possible since the continuation to 34 // Iterative dead-val. No optimizations possible since the continuation to
35 // InvokeMethod must have one argument, even if it is unused. 35 // InvokeMethod must have one argument, even if it is unused.
36 // 36 //
37 // int main() { 37 // int main() {
38 // int i = 42; 38 // int i = 42;
39 // int j = i + 1; 39 // int j = i + 1;
40 // return 0; 40 // return 0;
41 // } 41 // }
42 42
43 String ITERATIVE_DEAD_VAL1_IN = """ 43 String ITERATIVE_DEAD_VAL1_IN = """
44 (FunctionDefinition main () return 44 (FunctionDefinition main () () return
45 (LetPrim (v0 (Constant (Int 42))) 45 (LetPrim (v0 (Constant (Int 42)))
46 (LetPrim (v1 (Constant (Int 1))) 46 (LetPrim (v1 (Constant (Int 1)))
47 (LetCont ((k0 (v2) 47 (LetCont ((k0 (v2)
48 (LetPrim (v3 (Constant (Int 0))) 48 (LetPrim (v3 (Constant (Int 0)))
49 (InvokeContinuation return (v3))))) 49 (InvokeContinuation return (v3)))))
50 (InvokeMethod v0 + (v1) k0))))) 50 (InvokeMethod v0 + (v1) k0)))))
51 """; 51 """;
52 String ITERATIVE_DEAD_VAL1_OUT = ITERATIVE_DEAD_VAL1_IN; 52 String ITERATIVE_DEAD_VAL1_OUT = ITERATIVE_DEAD_VAL1_IN;
53 53
54 // Iterative dead-val. IR written by hand. 54 // Iterative dead-val. IR written by hand.
55 55
56 String ITERATIVE_DEAD_VAL2_IN = """ 56 String ITERATIVE_DEAD_VAL2_IN = """
57 (FunctionDefinition main () return 57 (FunctionDefinition main () () return
58 (LetPrim (v0 (Constant (Int 42))) 58 (LetPrim (v0 (Constant (Int 42)))
59 (LetPrim (v1 59 (LetPrim (v1
60 (CreateFunction 60 (CreateFunction
61 (FunctionDefinition f (i) return 61 (FunctionDefinition f () (i) return
62 (InvokeContinuation return (v0))))) 62 (InvokeContinuation return (v0)))))
63 (LetPrim (v2 (Constant (Int 0))) 63 (LetPrim (v2 (Constant (Int 0)))
64 (InvokeContinuation return (v2)))))) 64 (InvokeContinuation return (v2))))))
65 """; 65 """;
66 String ITERATIVE_DEAD_VAL2_OUT = """ 66 String ITERATIVE_DEAD_VAL2_OUT = """
67 (FunctionDefinition main () return 67 (FunctionDefinition main () () return
68 (LetPrim (v0 (Constant (Int 0))) 68 (LetPrim (v0 (Constant (Int 0)))
69 (InvokeContinuation return (v0)))) 69 (InvokeContinuation return (v0))))
70 """; 70 """;
71 71
72 // Basic dead-cont: letcont k x = L in K -> K (k not free in K). 72 // Basic dead-cont: letcont k x = L in K -> K (k not free in K).
73 // IR written by hand. 73 // IR written by hand.
74 74
75 String DEAD_CONT_IN = """ 75 String DEAD_CONT_IN = """
76 (FunctionDefinition main () return 76 (FunctionDefinition main () () return
77 (LetPrim (v4 (Constant (Int 0))) 77 (LetPrim (v4 (Constant (Int 0)))
78 (LetCont ((k0 (v0) 78 (LetCont ((k0 (v0)
79 (InvokeConstructor List () return))) 79 (InvokeConstructor List () return)))
80 (LetCont ((k1 (v1) 80 (LetCont ((k1 (v1)
81 (LetCont ((k2 (v2) 81 (LetCont ((k2 (v2)
82 (LetPrim (v3 (Constant (Int 0))) 82 (LetPrim (v3 (Constant (Int 0)))
83 (InvokeContinuation return (v3))))) 83 (InvokeContinuation return (v3)))))
84 (InvokeStatic print (v4) k2)))) 84 (InvokeStatic print (v4) k2))))
85 (InvokeStatic print (v4) k1))))) 85 (InvokeStatic print (v4) k1)))))
86 """; 86 """;
87 String DEAD_CONT_OUT = """ 87 String DEAD_CONT_OUT = """
88 (FunctionDefinition main () return 88 (FunctionDefinition main () () return
89 (LetPrim (v0 (Constant (Int 0))) 89 (LetPrim (v0 (Constant (Int 0)))
90 (LetCont ((k0 (v1) 90 (LetCont ((k0 (v1)
91 (LetCont ((k1 (v2) 91 (LetCont ((k1 (v2)
92 (LetPrim (v3 (Constant (Int 0))) 92 (LetPrim (v3 (Constant (Int 0)))
93 (InvokeContinuation return (v3))))) 93 (InvokeContinuation return (v3)))))
94 (InvokeStatic print (v0) k1)))) 94 (InvokeStatic print (v0) k1))))
95 (InvokeStatic print (v0) k0)))) 95 (InvokeStatic print (v0) k0))))
96 """; 96 """;
97 97
98 // Iterative dead-cont. IR written by hand. 98 // Iterative dead-cont. IR written by hand.
99 99
100 String ITERATIVE_DEAD_CONT_IN = """ 100 String ITERATIVE_DEAD_CONT_IN = """
101 (FunctionDefinition main () return 101 (FunctionDefinition main () () return
102 (LetPrim (v4 (Constant (Int 0))) 102 (LetPrim (v4 (Constant (Int 0)))
103 (LetCont ((k0 (v0) 103 (LetCont ((k0 (v0)
104 (InvokeConstructor List () return))) 104 (InvokeConstructor List () return)))
105 (LetCont ((k3 (v5) 105 (LetCont ((k3 (v5)
106 (InvokeContinuation k0 (v5)))) 106 (InvokeContinuation k0 (v5))))
107 (LetCont ((k1 (v1) 107 (LetCont ((k1 (v1)
108 (LetCont ((k2 (v2) 108 (LetCont ((k2 (v2)
109 (LetPrim (v3 (Constant (Int 0))) 109 (LetPrim (v3 (Constant (Int 0)))
110 (InvokeContinuation return (v3))))) 110 (InvokeContinuation return (v3)))))
111 (InvokeStatic print (v4) k2)))) 111 (InvokeStatic print (v4) k2))))
112 (InvokeStatic print (v4) k1)))))) 112 (InvokeStatic print (v4) k1))))))
113 """; 113 """;
114 String ITERATIVE_DEAD_CONT_OUT = """ 114 String ITERATIVE_DEAD_CONT_OUT = """
115 (FunctionDefinition main () return 115 (FunctionDefinition main () () return
116 (LetPrim (v0 (Constant (Int 0))) 116 (LetPrim (v0 (Constant (Int 0)))
117 (LetCont ((k0 (v1) 117 (LetCont ((k0 (v1)
118 (LetCont ((k1 (v2) 118 (LetCont ((k1 (v2)
119 (LetPrim (v3 (Constant (Int 0))) 119 (LetPrim (v3 (Constant (Int 0)))
120 (InvokeContinuation return (v3))))) 120 (InvokeContinuation return (v3)))))
121 (InvokeStatic print (v0) k1)))) 121 (InvokeStatic print (v0) k1))))
122 (InvokeStatic print (v0) k0)))) 122 (InvokeStatic print (v0) k0))))
123 """; 123 """;
124 124
125 // Beta-cont-lin: letcont k x = K in C[k y] -> C[K[y/x]] (k not free in C). 125 // Beta-cont-lin: letcont k x = K in C[k y] -> C[K[y/x]] (k not free in C).
126 // IR written by hand. 126 // IR written by hand.
127 127
128 String BETA_CONT_LIN_IN = """ 128 String BETA_CONT_LIN_IN = """
129 (FunctionDefinition main () return 129 (FunctionDefinition main () () return
130 (LetCont ((k0 (v0) 130 (LetCont ((k0 (v0)
131 (LetCont ((k1 (v1) 131 (LetCont ((k1 (v1)
132 (LetCont ((k2 (v2) 132 (LetCont ((k2 (v2)
133 (LetPrim (v3 (Constant (Int 0))) 133 (LetPrim (v3 (Constant (Int 0)))
134 (InvokeContinuation return (v3))))) 134 (InvokeContinuation return (v3)))))
135 (InvokeStatic print (v0) k2)))) 135 (InvokeStatic print (v0) k2))))
136 (InvokeStatic print (v0) k1)))) 136 (InvokeStatic print (v0) k1))))
137 (LetPrim (v4 (Constant (Int 0))) 137 (LetPrim (v4 (Constant (Int 0)))
138 (InvokeContinuation k0 (v4))))) 138 (InvokeContinuation k0 (v4)))))
139 """; 139 """;
140 String BETA_CONT_LIN_OUT = """ 140 String BETA_CONT_LIN_OUT = """
141 (FunctionDefinition main () return 141 (FunctionDefinition main () () return
142 (LetPrim (v0 (Constant (Int 0))) 142 (LetPrim (v0 (Constant (Int 0)))
143 (LetCont ((k0 (v1) 143 (LetCont ((k0 (v1)
144 (LetCont ((k1 (v2) 144 (LetCont ((k1 (v2)
145 (LetPrim (v3 (Constant (Int 0))) 145 (LetPrim (v3 (Constant (Int 0)))
146 (InvokeContinuation return (v3))))) 146 (InvokeContinuation return (v3)))))
147 (InvokeStatic print (v0) k1)))) 147 (InvokeStatic print (v0) k1))))
148 (InvokeStatic print (v0) k0)))) 148 (InvokeStatic print (v0) k0))))
149 """; 149 """;
150 150
151 // Beta-cont-lin with recursive continuation. IR written by hand. 151 // Beta-cont-lin with recursive continuation. IR written by hand.
152 152
153 String RECURSIVE_BETA_CONT_LIN_IN = """ 153 String RECURSIVE_BETA_CONT_LIN_IN = """
154 (FunctionDefinition main () return 154 (FunctionDefinition main () () return
155 (LetCont ((rec k0 (v0) 155 (LetCont ((rec k0 (v0)
156 (InvokeContinuation rec k0 (v0)))) 156 (InvokeContinuation rec k0 (v0))))
157 (LetPrim (v1 (Constant (Int 0))) 157 (LetPrim (v1 (Constant (Int 0)))
158 (InvokeContinuation k0 (v1))))) 158 (InvokeContinuation k0 (v1)))))
159 """; 159 """;
160 String RECURSIVE_BETA_CONT_LIN_OUT = RECURSIVE_BETA_CONT_LIN_IN; 160 String RECURSIVE_BETA_CONT_LIN_OUT = RECURSIVE_BETA_CONT_LIN_IN;
161 161
162 // Beta-cont-lin used inside body. IR written by hand. 162 // Beta-cont-lin used inside body. IR written by hand.
163 163
164 String USED_BETA_CONT_LIN_IN = """ 164 String USED_BETA_CONT_LIN_IN = """
165 (FunctionDefinition main () return 165 (FunctionDefinition main () () return
166 (LetPrim (v0 (Constant (Int 0))) 166 (LetPrim (v0 (Constant (Int 0)))
167 (LetCont ((k0 (v1) 167 (LetCont ((k0 (v1)
168 (LetCont ((k1 (v2) 168 (LetCont ((k1 (v2)
169 (LetCont ((k2 (v3) 169 (LetCont ((k2 (v3)
170 (LetPrim (v4 (Constant (Int 0))) 170 (LetPrim (v4 (Constant (Int 0)))
171 (InvokeContinuation return (v4))))) 171 (InvokeContinuation return (v4)))))
172 (InvokeStatic print (v1) k2)))) 172 (InvokeStatic print (v1) k2))))
173 (InvokeStatic print (v1) k1)))) 173 (InvokeStatic print (v1) k1))))
174 (LetPrim (v5 174 (LetPrim (v5
175 (CreateFunction 175 (CreateFunction
176 (FunctionDefinition f () return 176 (FunctionDefinition f () () return
177 (InvokeContinuation return (v1))))) 177 (InvokeContinuation return (v1)))))
178 (InvokeContinuation k0 (v0)))))) 178 (InvokeContinuation k0 (v0))))))
179 """; 179 """;
180 String USED_BETA_CONT_LIN_OUT = """ 180 String USED_BETA_CONT_LIN_OUT = """
181 (FunctionDefinition main () return 181 (FunctionDefinition main () () return
182 (LetPrim (v0 (Constant (Int 0))) 182 (LetPrim (v0 (Constant (Int 0)))
183 (LetCont ((k0 (v1) 183 (LetCont ((k0 (v1)
184 (LetCont ((k1 (v2) 184 (LetCont ((k1 (v2)
185 (LetPrim (v3 (Constant (Int 0))) 185 (LetPrim (v3 (Constant (Int 0)))
186 (InvokeContinuation return (v3))))) 186 (InvokeContinuation return (v3)))))
187 (InvokeStatic print (v0) k1)))) 187 (InvokeStatic print (v0) k1))))
188 (InvokeStatic print (v0) k0)))) 188 (InvokeStatic print (v0) k0))))
189 """; 189 """;
190 190
191 // Eta-cont: letcont k x = j x in K -> K[j/k]. 191 // Eta-cont: letcont k x = j x in K -> K[j/k].
192 // IR written by hand. 192 // IR written by hand.
193 // 193 //
194 // This test is incorrectly named: with the current implementation, there is no 194 // This test is incorrectly named: with the current implementation, there is no
195 // eta reduction. Instead, dead-parameter, beta-cont-lin, and dead-val 195 // eta reduction. Instead, dead-parameter, beta-cont-lin, and dead-val
196 // reductions are performed, which in turn creates a second beta-cont-lin 196 // reductions are performed, which in turn creates a second beta-cont-lin
197 // reduction. 197 // reduction.
198 // 198 //
199 // TODO(kmillikin): To test continuation eta reduction, use eta redexes that are 199 // TODO(kmillikin): To test continuation eta reduction, use eta redexes that are
200 // not overlapping beta redexes. 200 // not overlapping beta redexes.
201 String ETA_CONT_IN = """ 201 String ETA_CONT_IN = """
202 (FunctionDefinition main () return 202 (FunctionDefinition main () () return
203 (LetPrim (v0 (Constant (Int 0))) 203 (LetPrim (v0 (Constant (Int 0)))
204 (LetCont ((rec k0 (v1) 204 (LetCont ((rec k0 (v1)
205 (InvokeContinuation return (v0)))) 205 (InvokeContinuation return (v0))))
206 (LetCont ((k1 (v2) 206 (LetCont ((k1 (v2)
207 (InvokeContinuation k0 (v2)))) 207 (InvokeContinuation k0 (v2))))
208 (LetPrim (v3 208 (LetPrim (v3
209 (CreateFunction 209 (CreateFunction
210 (FunctionDefinition f () return 210 (FunctionDefinition f () () return
211 (InvokeContinuation k0 (v0))))) 211 (InvokeContinuation k0 (v0)))))
212 (InvokeContinuation k1 (v0))))))) 212 (InvokeContinuation k1 (v0)))))))
213 """; 213 """;
214 String ETA_CONT_OUT = """ 214 String ETA_CONT_OUT = """
215 (FunctionDefinition main () return 215 (FunctionDefinition main () () return
216 (LetPrim (v0 (Constant (Int 0))) 216 (LetPrim (v0 (Constant (Int 0)))
217 (InvokeContinuation return (v0)))) 217 (InvokeContinuation return (v0))))
218 """; 218 """;
219 219
220 // Dead-parameter: 220 // Dead-parameter:
221 // letcont k x = E0 in E1 -> letcont k () = E0 in E1, 221 // letcont k x = E0 in E1 -> letcont k () = E0 in E1,
222 // if x does not occur free in E0. 222 // if x does not occur free in E0.
223 223
224 // Parameter v1 is unused in k0. 224 // Parameter v1 is unused in k0.
225 String DEAD_PARAMETER_IN = """ 225 String DEAD_PARAMETER_IN = """
226 (FunctionDefinition main (x) return 226 (FunctionDefinition main () (x) return
227 (LetCont ((k0 (v0 v1 v2) 227 (LetCont ((k0 (v0 v1 v2)
228 (InvokeStatic foo (v0 v2) return))) 228 (InvokeStatic foo (v0 v2) return)))
229 (LetCont ((k1 () 229 (LetCont ((k1 ()
230 (LetPrim (v3 (Constant (Int 0))) 230 (LetPrim (v3 (Constant (Int 0)))
231 (LetPrim (v4 (Constant (Int 1))) 231 (LetPrim (v4 (Constant (Int 1)))
232 (LetPrim (v5 (Constant (Int 2))) 232 (LetPrim (v5 (Constant (Int 2)))
233 (InvokeContinuation k0 (v3 v4 v5)))))) 233 (InvokeContinuation k0 (v3 v4 v5))))))
234 (k2 () 234 (k2 ()
235 (LetPrim (v6 (Constant (Int 3))) 235 (LetPrim (v6 (Constant (Int 3)))
236 (LetPrim (v7 (Constant (Int 4))) 236 (LetPrim (v7 (Constant (Int 4)))
237 (LetPrim (v8 (Constant (Int 5))) 237 (LetPrim (v8 (Constant (Int 5)))
238 (InvokeContinuation k0 (v6 v7 v8))))))) 238 (InvokeContinuation k0 (v6 v7 v8)))))))
239 (Branch (IsTrue x) k1 k2)))) 239 (Branch (IsTrue x) k1 k2))))
240 """; 240 """;
241 String DEAD_PARAMETER_OUT = """ 241 String DEAD_PARAMETER_OUT = """
242 (FunctionDefinition main (x) return 242 (FunctionDefinition main () (x) return
243 (LetCont ((k0 (v0 v1) 243 (LetCont ((k0 (v0 v1)
244 (InvokeStatic foo (v0 v1) return))) 244 (InvokeStatic foo (v0 v1) return)))
245 (LetCont ((k1 () 245 (LetCont ((k1 ()
246 (LetPrim (v2 (Constant (Int 0))) 246 (LetPrim (v2 (Constant (Int 0)))
247 (LetPrim (v3 (Constant (Int 2))) 247 (LetPrim (v3 (Constant (Int 2)))
248 (InvokeContinuation k0 (v2 v3))))) 248 (InvokeContinuation k0 (v2 v3)))))
249 (k2 () 249 (k2 ()
250 (LetPrim (v4 (Constant (Int 3))) 250 (LetPrim (v4 (Constant (Int 3)))
251 (LetPrim (v5 (Constant (Int 5))) 251 (LetPrim (v5 (Constant (Int 5)))
252 (InvokeContinuation k0 (v4 v5)))))) 252 (InvokeContinuation k0 (v4 v5))))))
253 (Branch (IsTrue x) k1 k2)))) 253 (Branch (IsTrue x) k1 k2))))
254 """; 254 """;
255 255
256 // Create an eta-cont redex: 256 // Create an eta-cont redex:
257 // Dead parameter reductions can create an eta-cont redex by removing unused 257 // Dead parameter reductions can create an eta-cont redex by removing unused
258 // continuation parameters and thus creating the eta redex. 258 // continuation parameters and thus creating the eta redex.
259 String CREATE_ETA_CONT_IN = """ 259 String CREATE_ETA_CONT_IN = """
260 (FunctionDefinition main (x) return 260 (FunctionDefinition main () (x) return
261 (LetCont ((rec loop (v0) 261 (LetCont ((rec loop (v0)
262 (InvokeContinuation rec loop (v0)))) 262 (InvokeContinuation rec loop (v0))))
263 (LetCont ((created (v1 v2 v3) 263 (LetCont ((created (v1 v2 v3)
264 (InvokeContinuation loop (v2)))) 264 (InvokeContinuation loop (v2))))
265 (LetCont ((then () 265 (LetCont ((then ()
266 (LetPrim (v4 (Constant (Int 0))) 266 (LetPrim (v4 (Constant (Int 0)))
267 (LetPrim (v5 (Constant (Int 1))) 267 (LetPrim (v5 (Constant (Int 1)))
268 (LetPrim (v6 (Constant (Int 2))) 268 (LetPrim (v6 (Constant (Int 2)))
269 (InvokeContinuation created (v4 v5 v6)))))) 269 (InvokeContinuation created (v4 v5 v6))))))
270 (else () 270 (else ()
271 (LetPrim (v6 (Constant (Int 3))) 271 (LetPrim (v6 (Constant (Int 3)))
272 (LetPrim (v7 (Constant (Int 4))) 272 (LetPrim (v7 (Constant (Int 4)))
273 (LetPrim (v8 (Constant (Int 5))) 273 (LetPrim (v8 (Constant (Int 5)))
274 (InvokeContinuation created (v6 v7 v8))))))) 274 (InvokeContinuation created (v6 v7 v8)))))))
275 (Branch (IsTrue x) then else))))) 275 (Branch (IsTrue x) then else)))))
276 """; 276 """;
277 String CREATE_ETA_CONT_OUT = """ 277 String CREATE_ETA_CONT_OUT = """
278 (FunctionDefinition main (x) return 278 (FunctionDefinition main () (x) return
279 (LetCont ((rec k0 (v0) 279 (LetCont ((rec k0 (v0)
280 (InvokeContinuation rec k0 (v0)))) 280 (InvokeContinuation rec k0 (v0))))
281 (LetCont ((k1 () 281 (LetCont ((k1 ()
282 (LetPrim (v1 (Constant (Int 1))) 282 (LetPrim (v1 (Constant (Int 1)))
283 (InvokeContinuation k0 (v1)))) 283 (InvokeContinuation k0 (v1))))
284 (k2 () 284 (k2 ()
285 (LetPrim (v2 (Constant (Int 4))) 285 (LetPrim (v2 (Constant (Int 4)))
286 (InvokeContinuation k0 (v2))))) 286 (InvokeContinuation k0 (v2)))))
287 (Branch (IsTrue x) k1 k2)))) 287 (Branch (IsTrue x) k1 k2))))
288 """; 288 """;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 testShrinkingReducer(ITERATIVE_DEAD_VAL2_IN, ITERATIVE_DEAD_VAL2_OUT); 322 testShrinkingReducer(ITERATIVE_DEAD_VAL2_IN, ITERATIVE_DEAD_VAL2_OUT);
323 testShrinkingReducer(DEAD_CONT_IN, DEAD_CONT_OUT); 323 testShrinkingReducer(DEAD_CONT_IN, DEAD_CONT_OUT);
324 testShrinkingReducer(ITERATIVE_DEAD_CONT_IN, ITERATIVE_DEAD_CONT_OUT); 324 testShrinkingReducer(ITERATIVE_DEAD_CONT_IN, ITERATIVE_DEAD_CONT_OUT);
325 testShrinkingReducer(BETA_CONT_LIN_IN, BETA_CONT_LIN_OUT); 325 testShrinkingReducer(BETA_CONT_LIN_IN, BETA_CONT_LIN_OUT);
326 testShrinkingReducer(RECURSIVE_BETA_CONT_LIN_IN, RECURSIVE_BETA_CONT_LIN_OUT); 326 testShrinkingReducer(RECURSIVE_BETA_CONT_LIN_IN, RECURSIVE_BETA_CONT_LIN_OUT);
327 testShrinkingReducer(USED_BETA_CONT_LIN_IN, USED_BETA_CONT_LIN_OUT); 327 testShrinkingReducer(USED_BETA_CONT_LIN_IN, USED_BETA_CONT_LIN_OUT);
328 testShrinkingReducer(ETA_CONT_IN, ETA_CONT_OUT); 328 testShrinkingReducer(ETA_CONT_IN, ETA_CONT_OUT);
329 testShrinkingReducer(DEAD_PARAMETER_IN, DEAD_PARAMETER_OUT); 329 testShrinkingReducer(DEAD_PARAMETER_IN, DEAD_PARAMETER_OUT);
330 testShrinkingReducer(CREATE_ETA_CONT_IN, CREATE_ETA_CONT_OUT); 330 testShrinkingReducer(CREATE_ETA_CONT_IN, CREATE_ETA_CONT_OUT);
331 } 331 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/backend_dart/opt_redundant_phi_test.dart ('k') | tests/compiler/dart2js/backend_dart/sexpr_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698