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

Side by Side Diff: test/cctest/compiler/test-node.cc

Issue 1847543002: Expose a lower bound of malloc'd memory via heap statistics (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 4 years, 8 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
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <functional> 5 #include <functional>
6 6
7 #include "src/compiler/graph.h" 7 #include "src/compiler/graph.h"
8 #include "src/compiler/node.h" 8 #include "src/compiler/node.h"
9 #include "src/compiler/operator.h" 9 #include "src/compiler/operator.h"
10 #include "test/cctest/cctest.h" 10 #include "test/cctest/cctest.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 #define CHECK_INPUTS(node, ...) \ 134 #define CHECK_INPUTS(node, ...) \
135 do { \ 135 do { \
136 Node* __array[] = {__VA_ARGS__}; \ 136 Node* __array[] = {__VA_ARGS__}; \
137 int __size = \ 137 int __size = \
138 __array[0] != NONE ? static_cast<int>(arraysize(__array)) : 0; \ 138 __array[0] != NONE ? static_cast<int>(arraysize(__array)) : 0; \
139 CheckInputs(node, __array, __size); \ 139 CheckInputs(node, __array, __size); \
140 } while (false) 140 } while (false)
141 141
142 142
143 TEST(NodeUseIteratorReplaceUses) { 143 TEST(NodeUseIteratorReplaceUses) {
144 Zone zone; 144 ZoneForTesting zone;
145 Graph graph(&zone); 145 Graph graph(&zone);
146 Node* n0 = graph.NewNode(&dummy_operator0); 146 Node* n0 = graph.NewNode(&dummy_operator0);
147 Node* n1 = graph.NewNode(&dummy_operator1, n0); 147 Node* n1 = graph.NewNode(&dummy_operator1, n0);
148 Node* n2 = graph.NewNode(&dummy_operator1, n0); 148 Node* n2 = graph.NewNode(&dummy_operator1, n0);
149 Node* n3 = graph.NewNode(&dummy_operator0); 149 Node* n3 = graph.NewNode(&dummy_operator0);
150 150
151 CHECK_USES(n0, n1, n2); 151 CHECK_USES(n0, n1, n2);
152 152
153 CHECK_INPUTS(n1, n0); 153 CHECK_INPUTS(n1, n0);
154 CHECK_INPUTS(n2, n0); 154 CHECK_INPUTS(n2, n0);
155 155
156 n0->ReplaceUses(n3); 156 n0->ReplaceUses(n3);
157 157
158 CHECK_USES(n0, NONE); 158 CHECK_USES(n0, NONE);
159 CHECK_USES(n1, NONE); 159 CHECK_USES(n1, NONE);
160 CHECK_USES(n2, NONE); 160 CHECK_USES(n2, NONE);
161 CHECK_USES(n3, n1, n2); 161 CHECK_USES(n3, n1, n2);
162 162
163 CHECK_INPUTS(n1, n3); 163 CHECK_INPUTS(n1, n3);
164 CHECK_INPUTS(n2, n3); 164 CHECK_INPUTS(n2, n3);
165 } 165 }
166 166
167 167
168 TEST(NodeUseIteratorReplaceUsesSelf) { 168 TEST(NodeUseIteratorReplaceUsesSelf) {
169 Zone zone; 169 ZoneForTesting zone;
170 Graph graph(&zone); 170 Graph graph(&zone);
171 Node* n0 = graph.NewNode(&dummy_operator0); 171 Node* n0 = graph.NewNode(&dummy_operator0);
172 Node* n1 = graph.NewNode(&dummy_operator1, n0); 172 Node* n1 = graph.NewNode(&dummy_operator1, n0);
173 173
174 CHECK_USES(n0, n1); 174 CHECK_USES(n0, n1);
175 CHECK_USES(n1, NONE); 175 CHECK_USES(n1, NONE);
176 176
177 n1->ReplaceInput(0, n1); // Create self-reference. 177 n1->ReplaceInput(0, n1); // Create self-reference.
178 178
179 CHECK_USES(n0, NONE); 179 CHECK_USES(n0, NONE);
180 CHECK_USES(n1, n1); 180 CHECK_USES(n1, n1);
181 181
182 Node* n2 = graph.NewNode(&dummy_operator0); 182 Node* n2 = graph.NewNode(&dummy_operator0);
183 183
184 n1->ReplaceUses(n2); 184 n1->ReplaceUses(n2);
185 185
186 CHECK_USES(n0, NONE); 186 CHECK_USES(n0, NONE);
187 CHECK_USES(n1, NONE); 187 CHECK_USES(n1, NONE);
188 CHECK_USES(n2, n1); 188 CHECK_USES(n2, n1);
189 } 189 }
190 190
191 191
192 TEST(ReplaceInput) { 192 TEST(ReplaceInput) {
193 Zone zone; 193 ZoneForTesting zone;
194 Graph graph(&zone); 194 Graph graph(&zone);
195 Node* n0 = graph.NewNode(&dummy_operator0); 195 Node* n0 = graph.NewNode(&dummy_operator0);
196 Node* n1 = graph.NewNode(&dummy_operator0); 196 Node* n1 = graph.NewNode(&dummy_operator0);
197 Node* n2 = graph.NewNode(&dummy_operator0); 197 Node* n2 = graph.NewNode(&dummy_operator0);
198 Node* n3 = graph.NewNode(&dummy_operator3, n0, n1, n2); 198 Node* n3 = graph.NewNode(&dummy_operator3, n0, n1, n2);
199 Node* n4 = graph.NewNode(&dummy_operator0); 199 Node* n4 = graph.NewNode(&dummy_operator0);
200 200
201 CHECK_USES(n0, n3); 201 CHECK_USES(n0, n3);
202 CHECK_USES(n1, n3); 202 CHECK_USES(n1, n3);
203 CHECK_USES(n2, n3); 203 CHECK_USES(n2, n3);
204 CHECK_USES(n3, NONE); 204 CHECK_USES(n3, NONE);
205 CHECK_USES(n4, NONE); 205 CHECK_USES(n4, NONE);
206 206
207 CHECK_INPUTS(n3, n0, n1, n2); 207 CHECK_INPUTS(n3, n0, n1, n2);
208 208
209 n3->ReplaceInput(1, n4); 209 n3->ReplaceInput(1, n4);
210 210
211 CHECK_USES(n1, NONE); 211 CHECK_USES(n1, NONE);
212 CHECK_USES(n4, n3); 212 CHECK_USES(n4, n3);
213 213
214 CHECK_INPUTS(n3, n0, n4, n2); 214 CHECK_INPUTS(n3, n0, n4, n2);
215 } 215 }
216 216
217 217
218 TEST(OwnedBy) { 218 TEST(OwnedBy) {
219 Zone zone; 219 ZoneForTesting zone;
220 Graph graph(&zone); 220 Graph graph(&zone);
221 221
222 { 222 {
223 Node* n0 = graph.NewNode(&dummy_operator0); 223 Node* n0 = graph.NewNode(&dummy_operator0);
224 Node* n1 = graph.NewNode(&dummy_operator0); 224 Node* n1 = graph.NewNode(&dummy_operator0);
225 225
226 CHECK(!n0->OwnedBy(n1)); 226 CHECK(!n0->OwnedBy(n1));
227 CHECK(!n1->OwnedBy(n0)); 227 CHECK(!n1->OwnedBy(n0));
228 228
229 Node* n2 = graph.NewNode(&dummy_operator1, n0); 229 Node* n2 = graph.NewNode(&dummy_operator1, n0);
(...skipping 29 matching lines...) Expand all
259 CHECK(!n1->OwnedBy(n2)); 259 CHECK(!n1->OwnedBy(n2));
260 CHECK(!n2->OwnedBy(n0)); 260 CHECK(!n2->OwnedBy(n0));
261 CHECK(!n2->OwnedBy(n1)); 261 CHECK(!n2->OwnedBy(n1));
262 CHECK(n3->OwnedBy(n2)); 262 CHECK(n3->OwnedBy(n2));
263 CHECK(!n2->OwnedBy(n3)); 263 CHECK(!n2->OwnedBy(n3));
264 } 264 }
265 } 265 }
266 266
267 267
268 TEST(Uses) { 268 TEST(Uses) {
269 Zone zone; 269 ZoneForTesting zone;
270 Graph graph(&zone); 270 Graph graph(&zone);
271 271
272 Node* n0 = graph.NewNode(&dummy_operator0); 272 Node* n0 = graph.NewNode(&dummy_operator0);
273 Node* n1 = graph.NewNode(&dummy_operator1, n0); 273 Node* n1 = graph.NewNode(&dummy_operator1, n0);
274 274
275 CHECK_USES(n0, n1); 275 CHECK_USES(n0, n1);
276 CHECK_USES(n1, NONE); 276 CHECK_USES(n1, NONE);
277 277
278 Node* n2 = graph.NewNode(&dummy_operator1, n0); 278 Node* n2 = graph.NewNode(&dummy_operator1, n0);
279 279
280 CHECK_USES(n0, n1, n2); 280 CHECK_USES(n0, n1, n2);
281 CHECK_USES(n2, NONE); 281 CHECK_USES(n2, NONE);
282 282
283 Node* n3 = graph.NewNode(&dummy_operator1, n0); 283 Node* n3 = graph.NewNode(&dummy_operator1, n0);
284 284
285 CHECK_USES(n0, n1, n2, n3); 285 CHECK_USES(n0, n1, n2, n3);
286 CHECK_USES(n3, NONE); 286 CHECK_USES(n3, NONE);
287 } 287 }
288 288
289 289
290 TEST(Inputs) { 290 TEST(Inputs) {
291 Zone zone; 291 ZoneForTesting zone;
292 Graph graph(&zone); 292 Graph graph(&zone);
293 293
294 Node* n0 = graph.NewNode(&dummy_operator0); 294 Node* n0 = graph.NewNode(&dummy_operator0);
295 Node* n1 = graph.NewNode(&dummy_operator1, n0); 295 Node* n1 = graph.NewNode(&dummy_operator1, n0);
296 Node* n2 = graph.NewNode(&dummy_operator1, n0); 296 Node* n2 = graph.NewNode(&dummy_operator1, n0);
297 Node* n3 = graph.NewNode(&dummy_operator3, n0, n1, n2); 297 Node* n3 = graph.NewNode(&dummy_operator3, n0, n1, n2);
298 298
299 CHECK_INPUTS(n3, n0, n1, n2); 299 CHECK_INPUTS(n3, n0, n1, n2);
300 300
301 Node* n4 = graph.NewNode(&dummy_operator3, n0, n1, n2); 301 Node* n4 = graph.NewNode(&dummy_operator3, n0, n1, n2);
302 n3->AppendInput(graph.zone(), n4); 302 n3->AppendInput(graph.zone(), n4);
303 303
304 CHECK_INPUTS(n3, n0, n1, n2, n4); 304 CHECK_INPUTS(n3, n0, n1, n2, n4);
305 CHECK_USES(n4, n3); 305 CHECK_USES(n4, n3);
306 306
307 n3->AppendInput(graph.zone(), n4); 307 n3->AppendInput(graph.zone(), n4);
308 308
309 CHECK_INPUTS(n3, n0, n1, n2, n4, n4); 309 CHECK_INPUTS(n3, n0, n1, n2, n4, n4);
310 CHECK_USES(n4, n3, n3); 310 CHECK_USES(n4, n3, n3);
311 311
312 Node* n5 = graph.NewNode(&dummy_operator1, n4); 312 Node* n5 = graph.NewNode(&dummy_operator1, n4);
313 313
314 CHECK_USES(n4, n3, n3, n5); 314 CHECK_USES(n4, n3, n3, n5);
315 } 315 }
316 316
317 317
318 TEST(RemoveInput) { 318 TEST(RemoveInput) {
319 Zone zone; 319 ZoneForTesting zone;
320 Graph graph(&zone); 320 Graph graph(&zone);
321 321
322 Node* n0 = graph.NewNode(&dummy_operator0); 322 Node* n0 = graph.NewNode(&dummy_operator0);
323 Node* n1 = graph.NewNode(&dummy_operator1, n0); 323 Node* n1 = graph.NewNode(&dummy_operator1, n0);
324 Node* n2 = graph.NewNode(&dummy_operator2, n0, n1); 324 Node* n2 = graph.NewNode(&dummy_operator2, n0, n1);
325 325
326 CHECK_INPUTS(n0, NONE); 326 CHECK_INPUTS(n0, NONE);
327 CHECK_INPUTS(n1, n0); 327 CHECK_INPUTS(n1, n0);
328 CHECK_INPUTS(n2, n0, n1); 328 CHECK_INPUTS(n2, n0, n1);
329 CHECK_USES(n0, n1, n2); 329 CHECK_USES(n0, n1, n2);
330 330
331 n1->RemoveInput(0); 331 n1->RemoveInput(0);
332 CHECK_INPUTS(n1, NONE); 332 CHECK_INPUTS(n1, NONE);
333 CHECK_USES(n0, n2); 333 CHECK_USES(n0, n2);
334 334
335 n2->RemoveInput(0); 335 n2->RemoveInput(0);
336 CHECK_INPUTS(n2, n1); 336 CHECK_INPUTS(n2, n1);
337 CHECK_USES(n0, NONE); 337 CHECK_USES(n0, NONE);
338 CHECK_USES(n1, n2); 338 CHECK_USES(n1, n2);
339 339
340 n2->RemoveInput(0); 340 n2->RemoveInput(0);
341 CHECK_INPUTS(n2, NONE); 341 CHECK_INPUTS(n2, NONE);
342 CHECK_USES(n0, NONE); 342 CHECK_USES(n0, NONE);
343 CHECK_USES(n1, NONE); 343 CHECK_USES(n1, NONE);
344 CHECK_USES(n2, NONE); 344 CHECK_USES(n2, NONE);
345 } 345 }
346 346
347 347
348 TEST(AppendInputsAndIterator) { 348 TEST(AppendInputsAndIterator) {
349 Zone zone; 349 ZoneForTesting zone;
350 Graph graph(&zone); 350 Graph graph(&zone);
351 351
352 Node* n0 = graph.NewNode(&dummy_operator0); 352 Node* n0 = graph.NewNode(&dummy_operator0);
353 Node* n1 = graph.NewNode(&dummy_operator1, n0); 353 Node* n1 = graph.NewNode(&dummy_operator1, n0);
354 Node* n2 = graph.NewNode(&dummy_operator2, n0, n1); 354 Node* n2 = graph.NewNode(&dummy_operator2, n0, n1);
355 355
356 CHECK_INPUTS(n0, NONE); 356 CHECK_INPUTS(n0, NONE);
357 CHECK_INPUTS(n1, n0); 357 CHECK_INPUTS(n1, n0);
358 CHECK_INPUTS(n2, n0, n1); 358 CHECK_INPUTS(n2, n0, n1);
359 CHECK_USES(n0, n1, n2); 359 CHECK_USES(n0, n1, n2);
360 360
361 Node* n3 = graph.NewNode(&dummy_operator0); 361 Node* n3 = graph.NewNode(&dummy_operator0);
362 362
363 n2->AppendInput(graph.zone(), n3); 363 n2->AppendInput(graph.zone(), n3);
364 364
365 CHECK_INPUTS(n2, n0, n1, n3); 365 CHECK_INPUTS(n2, n0, n1, n3);
366 CHECK_USES(n3, n2); 366 CHECK_USES(n3, n2);
367 } 367 }
368 368
369 369
370 TEST(NullInputsSimple) { 370 TEST(NullInputsSimple) {
371 Zone zone; 371 ZoneForTesting zone;
372 Graph graph(&zone); 372 Graph graph(&zone);
373 373
374 Node* n0 = graph.NewNode(&dummy_operator0); 374 Node* n0 = graph.NewNode(&dummy_operator0);
375 Node* n1 = graph.NewNode(&dummy_operator1, n0); 375 Node* n1 = graph.NewNode(&dummy_operator1, n0);
376 Node* n2 = graph.NewNode(&dummy_operator2, n0, n1); 376 Node* n2 = graph.NewNode(&dummy_operator2, n0, n1);
377 377
378 CHECK_INPUTS(n0, NONE); 378 CHECK_INPUTS(n0, NONE);
379 CHECK_INPUTS(n1, n0); 379 CHECK_INPUTS(n1, n0);
380 CHECK_INPUTS(n2, n0, n1); 380 CHECK_INPUTS(n2, n0, n1);
381 CHECK_USES(n0, n1, n2); 381 CHECK_USES(n0, n1, n2);
382 382
383 n2->ReplaceInput(0, nullptr); 383 n2->ReplaceInput(0, nullptr);
384 384
385 CHECK_INPUTS(n2, NULL, n1); 385 CHECK_INPUTS(n2, NULL, n1);
386 386
387 CHECK_USES(n0, n1); 387 CHECK_USES(n0, n1);
388 388
389 n2->ReplaceInput(1, nullptr); 389 n2->ReplaceInput(1, nullptr);
390 390
391 CHECK_INPUTS(n2, NULL, NULL); 391 CHECK_INPUTS(n2, NULL, NULL);
392 392
393 CHECK_USES(n1, NONE); 393 CHECK_USES(n1, NONE);
394 } 394 }
395 395
396 396
397 TEST(NullInputsAppended) { 397 TEST(NullInputsAppended) {
398 Zone zone; 398 ZoneForTesting zone;
399 Graph graph(&zone); 399 Graph graph(&zone);
400 400
401 Node* n0 = graph.NewNode(&dummy_operator0); 401 Node* n0 = graph.NewNode(&dummy_operator0);
402 Node* n1 = graph.NewNode(&dummy_operator1, n0); 402 Node* n1 = graph.NewNode(&dummy_operator1, n0);
403 Node* n2 = graph.NewNode(&dummy_operator1, n0); 403 Node* n2 = graph.NewNode(&dummy_operator1, n0);
404 Node* n3 = graph.NewNode(&dummy_operator1, n0); 404 Node* n3 = graph.NewNode(&dummy_operator1, n0);
405 n3->AppendInput(graph.zone(), n1); 405 n3->AppendInput(graph.zone(), n1);
406 n3->AppendInput(graph.zone(), n2); 406 n3->AppendInput(graph.zone(), n2);
407 407
408 CHECK_INPUTS(n3, n0, n1, n2); 408 CHECK_INPUTS(n3, n0, n1, n2);
409 CHECK_USES(n0, n1, n2, n3); 409 CHECK_USES(n0, n1, n2, n3);
410 CHECK_USES(n1, n3); 410 CHECK_USES(n1, n3);
411 CHECK_USES(n2, n3); 411 CHECK_USES(n2, n3);
412 412
413 n3->ReplaceInput(1, NULL); 413 n3->ReplaceInput(1, NULL);
414 CHECK_USES(n1, NONE); 414 CHECK_USES(n1, NONE);
415 415
416 CHECK_INPUTS(n3, n0, NULL, n2); 416 CHECK_INPUTS(n3, n0, NULL, n2);
417 } 417 }
418 418
419 419
420 TEST(ReplaceUsesFromAppendedInputs) { 420 TEST(ReplaceUsesFromAppendedInputs) {
421 Zone zone; 421 ZoneForTesting zone;
422 Graph graph(&zone); 422 Graph graph(&zone);
423 423
424 Node* n0 = graph.NewNode(&dummy_operator0); 424 Node* n0 = graph.NewNode(&dummy_operator0);
425 Node* n1 = graph.NewNode(&dummy_operator1, n0); 425 Node* n1 = graph.NewNode(&dummy_operator1, n0);
426 Node* n2 = graph.NewNode(&dummy_operator1, n0); 426 Node* n2 = graph.NewNode(&dummy_operator1, n0);
427 Node* n3 = graph.NewNode(&dummy_operator0); 427 Node* n3 = graph.NewNode(&dummy_operator0);
428 428
429 CHECK_INPUTS(n2, n0); 429 CHECK_INPUTS(n2, n0);
430 430
431 n2->AppendInput(graph.zone(), n1); 431 n2->AppendInput(graph.zone(), n1);
432 CHECK_INPUTS(n2, n0, n1); 432 CHECK_INPUTS(n2, n0, n1);
433 CHECK_USES(n1, n2); 433 CHECK_USES(n1, n2);
434 434
435 n2->AppendInput(graph.zone(), n0); 435 n2->AppendInput(graph.zone(), n0);
436 CHECK_INPUTS(n2, n0, n1, n0); 436 CHECK_INPUTS(n2, n0, n1, n0);
437 CHECK_USES(n1, n2); 437 CHECK_USES(n1, n2);
438 CHECK_USES(n0, n2, n1, n2); 438 CHECK_USES(n0, n2, n1, n2);
439 439
440 n0->ReplaceUses(n3); 440 n0->ReplaceUses(n3);
441 441
442 CHECK_USES(n0, NONE); 442 CHECK_USES(n0, NONE);
443 CHECK_INPUTS(n2, n3, n1, n3); 443 CHECK_INPUTS(n2, n3, n1, n3);
444 CHECK_USES(n3, n2, n1, n2); 444 CHECK_USES(n3, n2, n1, n2);
445 } 445 }
446 446
447 447
448 TEST(ReplaceInputMultipleUses) { 448 TEST(ReplaceInputMultipleUses) {
449 Zone zone; 449 ZoneForTesting zone;
450 Graph graph(&zone); 450 Graph graph(&zone);
451 451
452 Node* n0 = graph.NewNode(&dummy_operator0); 452 Node* n0 = graph.NewNode(&dummy_operator0);
453 Node* n1 = graph.NewNode(&dummy_operator0); 453 Node* n1 = graph.NewNode(&dummy_operator0);
454 Node* n2 = graph.NewNode(&dummy_operator1, n0); 454 Node* n2 = graph.NewNode(&dummy_operator1, n0);
455 n2->ReplaceInput(0, n1); 455 n2->ReplaceInput(0, n1);
456 CHECK_EQ(0, n0->UseCount()); 456 CHECK_EQ(0, n0->UseCount());
457 CHECK_EQ(1, n1->UseCount()); 457 CHECK_EQ(1, n1->UseCount());
458 458
459 Node* n3 = graph.NewNode(&dummy_operator1, n0); 459 Node* n3 = graph.NewNode(&dummy_operator1, n0);
460 n3->ReplaceInput(0, n1); 460 n3->ReplaceInput(0, n1);
461 CHECK_EQ(0, n0->UseCount()); 461 CHECK_EQ(0, n0->UseCount());
462 CHECK_EQ(2, n1->UseCount()); 462 CHECK_EQ(2, n1->UseCount());
463 } 463 }
464 464
465 465
466 TEST(TrimInputCountInline) { 466 TEST(TrimInputCountInline) {
467 Zone zone; 467 ZoneForTesting zone;
468 Graph graph(&zone); 468 Graph graph(&zone);
469 469
470 { 470 {
471 Node* n0 = graph.NewNode(&dummy_operator0); 471 Node* n0 = graph.NewNode(&dummy_operator0);
472 Node* n1 = graph.NewNode(&dummy_operator1, n0); 472 Node* n1 = graph.NewNode(&dummy_operator1, n0);
473 n1->TrimInputCount(1); 473 n1->TrimInputCount(1);
474 CHECK_INPUTS(n1, n0); 474 CHECK_INPUTS(n1, n0);
475 CHECK_USES(n0, n1); 475 CHECK_USES(n0, n1);
476 } 476 }
477 477
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 Node* n0 = graph.NewNode(&dummy_operator0); 525 Node* n0 = graph.NewNode(&dummy_operator0);
526 Node* n2 = graph.NewNode(&dummy_operator2, n0, n0); 526 Node* n2 = graph.NewNode(&dummy_operator2, n0, n0);
527 n2->TrimInputCount(0); 527 n2->TrimInputCount(0);
528 CHECK_INPUTS(n2, NONE); 528 CHECK_INPUTS(n2, NONE);
529 CHECK_USES(n0, NONE); 529 CHECK_USES(n0, NONE);
530 } 530 }
531 } 531 }
532 532
533 533
534 TEST(TrimInputCountOutOfLine1) { 534 TEST(TrimInputCountOutOfLine1) {
535 Zone zone; 535 ZoneForTesting zone;
536 Graph graph(&zone); 536 Graph graph(&zone);
537 537
538 { 538 {
539 Node* n0 = graph.NewNode(&dummy_operator0); 539 Node* n0 = graph.NewNode(&dummy_operator0);
540 Node* n1 = graph.NewNode(&dummy_operator0); 540 Node* n1 = graph.NewNode(&dummy_operator0);
541 n1->AppendInput(graph.zone(), n0); 541 n1->AppendInput(graph.zone(), n0);
542 CHECK_INPUTS(n1, n0); 542 CHECK_INPUTS(n1, n0);
543 CHECK_USES(n0, n1); 543 CHECK_USES(n0, n1);
544 544
545 n1->TrimInputCount(1); 545 n1->TrimInputCount(1);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 CHECK_INPUTS(n2, n0, n0); 619 CHECK_INPUTS(n2, n0, n0);
620 CHECK_USES(n0, n2, n2); 620 CHECK_USES(n0, n2, n2);
621 n2->TrimInputCount(0); 621 n2->TrimInputCount(0);
622 CHECK_INPUTS(n2, NONE); 622 CHECK_INPUTS(n2, NONE);
623 CHECK_USES(n0, NONE); 623 CHECK_USES(n0, NONE);
624 } 624 }
625 } 625 }
626 626
627 627
628 TEST(TrimInputCountOutOfLine2) { 628 TEST(TrimInputCountOutOfLine2) {
629 Zone zone; 629 ZoneForTesting zone;
630 Graph graph(&zone); 630 Graph graph(&zone);
631 631
632 { 632 {
633 Node* n0 = graph.NewNode(&dummy_operator0); 633 Node* n0 = graph.NewNode(&dummy_operator0);
634 Node* n1 = graph.NewNode(&dummy_operator0); 634 Node* n1 = graph.NewNode(&dummy_operator0);
635 Node* n2 = graph.NewNode(&dummy_operator1, n0); 635 Node* n2 = graph.NewNode(&dummy_operator1, n0);
636 n2->AppendInput(graph.zone(), n1); 636 n2->AppendInput(graph.zone(), n1);
637 CHECK_INPUTS(n2, n0, n1); 637 CHECK_INPUTS(n2, n0, n1);
638 n2->TrimInputCount(2); 638 n2->TrimInputCount(2);
639 CHECK_INPUTS(n2, n0, n1); 639 CHECK_INPUTS(n2, n0, n1);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 CHECK_EQ(2, n0->UseCount()); 688 CHECK_EQ(2, n0->UseCount());
689 n2->TrimInputCount(0); 689 n2->TrimInputCount(0);
690 CHECK_EQ(0, n2->InputCount()); 690 CHECK_EQ(0, n2->InputCount());
691 CHECK_EQ(0, n0->UseCount()); 691 CHECK_EQ(0, n0->UseCount());
692 CHECK_EQ(0, n2->UseCount()); 692 CHECK_EQ(0, n2->UseCount());
693 } 693 }
694 } 694 }
695 695
696 696
697 TEST(NullAllInputs) { 697 TEST(NullAllInputs) {
698 Zone zone; 698 ZoneForTesting zone;
699 Graph graph(&zone); 699 Graph graph(&zone);
700 700
701 for (int i = 0; i < 2; i++) { 701 for (int i = 0; i < 2; i++) {
702 Node* n0 = graph.NewNode(&dummy_operator0); 702 Node* n0 = graph.NewNode(&dummy_operator0);
703 Node* n1 = graph.NewNode(&dummy_operator1, n0); 703 Node* n1 = graph.NewNode(&dummy_operator1, n0);
704 Node* n2; 704 Node* n2;
705 if (i == 0) { 705 if (i == 0) {
706 n2 = graph.NewNode(&dummy_operator2, n0, n1); 706 n2 = graph.NewNode(&dummy_operator2, n0, n1);
707 CHECK_INPUTS(n2, n0, n1); 707 CHECK_INPUTS(n2, n0, n1);
708 } else { 708 } else {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 740
741 CHECK_INPUTS(n0, NONE); 741 CHECK_INPUTS(n0, NONE);
742 CHECK_INPUTS(n1, NULL); 742 CHECK_INPUTS(n1, NULL);
743 CHECK_USES(n0, NONE); 743 CHECK_USES(n0, NONE);
744 CHECK_USES(n1, NONE); 744 CHECK_USES(n1, NONE);
745 } 745 }
746 } 746 }
747 747
748 748
749 TEST(AppendAndTrim) { 749 TEST(AppendAndTrim) {
750 Zone zone; 750 ZoneForTesting zone;
751 Graph graph(&zone); 751 Graph graph(&zone);
752 752
753 Node* nodes[] = { 753 Node* nodes[] = {
754 graph.NewNode(&dummy_operator0), graph.NewNode(&dummy_operator0), 754 graph.NewNode(&dummy_operator0), graph.NewNode(&dummy_operator0),
755 graph.NewNode(&dummy_operator0), graph.NewNode(&dummy_operator0), 755 graph.NewNode(&dummy_operator0), graph.NewNode(&dummy_operator0),
756 graph.NewNode(&dummy_operator0)}; 756 graph.NewNode(&dummy_operator0)};
757 757
758 int max = static_cast<int>(arraysize(nodes)); 758 int max = static_cast<int>(arraysize(nodes));
759 759
760 Node* last = graph.NewNode(&dummy_operator0); 760 Node* last = graph.NewNode(&dummy_operator0);
(...skipping 19 matching lines...) Expand all
780 if (j >= i) CHECK_USES(nodes[j], NONE); 780 if (j >= i) CHECK_USES(nodes[j], NONE);
781 } 781 }
782 782
783 CHECK_USES(last, NONE); 783 CHECK_USES(last, NONE);
784 } 784 }
785 } 785 }
786 786
787 } // namespace compiler 787 } // namespace compiler
788 } // namespace internal 788 } // namespace internal
789 } // namespace v8 789 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698