OLD | NEW |
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/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #include "graph-tester.h" | 9 #include "graph-tester.h" |
10 #include "src/compiler/generic-node-inl.h" | 10 #include "src/compiler/generic-node-inl.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 CHECK_EQ(1, n1->InputCount()); | 86 CHECK_EQ(1, n1->InputCount()); |
87 CHECK_EQ(n0, *i); | 87 CHECK_EQ(n0, *i); |
88 ++i; | 88 ++i; |
89 CHECK(n1->inputs().end() == i); | 89 CHECK(n1->inputs().end() == i); |
90 } | 90 } |
91 | 91 |
92 | 92 |
93 TEST(NodeUseIteratorEmpty) { | 93 TEST(NodeUseIteratorEmpty) { |
94 GraphTester graph; | 94 GraphTester graph; |
95 Node* n1 = graph.NewNode(&dummy_operator); | 95 Node* n1 = graph.NewNode(&dummy_operator); |
96 Node::Uses::iterator i(n1->uses().begin()); | |
97 int use_count = 0; | 96 int use_count = 0; |
98 for (; i != n1->uses().end(); ++i) { | 97 for (auto const edge : n1->use_edges()) { |
99 Node::Edge edge(i.edge()); | |
100 USE(edge); | 98 USE(edge); |
101 use_count++; | 99 use_count++; |
102 } | 100 } |
103 CHECK_EQ(0, use_count); | 101 CHECK_EQ(0, use_count); |
104 } | 102 } |
105 | 103 |
106 | 104 |
107 TEST(NodeUseIteratorOne) { | 105 TEST(NodeUseIteratorOne) { |
108 GraphTester graph; | 106 GraphTester graph; |
109 Node* n0 = graph.NewNode(&dummy_operator); | 107 Node* n0 = graph.NewNode(&dummy_operator); |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 } | 357 } |
360 | 358 |
361 | 359 |
362 TEST(AppendInputsAndIterator) { | 360 TEST(AppendInputsAndIterator) { |
363 GraphTester graph; | 361 GraphTester graph; |
364 | 362 |
365 Node* n0 = graph.NewNode(&dummy_operator); | 363 Node* n0 = graph.NewNode(&dummy_operator); |
366 Node* n1 = graph.NewNode(&dummy_operator, n0); | 364 Node* n1 = graph.NewNode(&dummy_operator, n0); |
367 Node* n2 = graph.NewNode(&dummy_operator, n0, n1); | 365 Node* n2 = graph.NewNode(&dummy_operator, n0, n1); |
368 | 366 |
369 Node::Inputs inputs(n2->inputs()); | 367 auto inputs(n2->input_edges()); |
370 Node::Inputs::iterator current = inputs.begin(); | 368 auto current = inputs.begin(); |
371 CHECK(current != inputs.end()); | 369 CHECK(current != inputs.end()); |
372 CHECK(*current == n0); | 370 CHECK((*current).to() == n0); |
373 ++current; | 371 ++current; |
374 CHECK(current != inputs.end()); | 372 CHECK(current != inputs.end()); |
375 CHECK(*current == n1); | 373 CHECK((*current).to() == n1); |
376 ++current; | 374 ++current; |
377 CHECK(current == inputs.end()); | 375 CHECK(current == inputs.end()); |
378 | 376 |
379 Node* n3 = graph.NewNode(&dummy_operator); | 377 Node* n3 = graph.NewNode(&dummy_operator); |
380 n2->AppendInput(graph.zone(), n3); | 378 n2->AppendInput(graph.zone(), n3); |
381 inputs = n2->inputs(); | 379 inputs = n2->input_edges(); |
382 current = inputs.begin(); | 380 current = inputs.begin(); |
383 CHECK(current != inputs.end()); | 381 CHECK(current != inputs.end()); |
384 CHECK(*current == n0); | 382 CHECK((*current).to() == n0); |
385 CHECK_EQ(0, current.index()); | 383 CHECK_EQ(0, (*current).index()); |
386 ++current; | 384 ++current; |
387 CHECK(current != inputs.end()); | 385 CHECK(current != inputs.end()); |
388 CHECK(*current == n1); | 386 CHECK((*current).to() == n1); |
389 CHECK_EQ(1, current.index()); | 387 CHECK_EQ(1, (*current).index()); |
390 ++current; | 388 ++current; |
391 CHECK(current != inputs.end()); | 389 CHECK(current != inputs.end()); |
392 CHECK(*current == n3); | 390 CHECK((*current).to() == n3); |
393 CHECK_EQ(2, current.index()); | 391 CHECK_EQ(2, (*current).index()); |
394 ++current; | 392 ++current; |
395 CHECK(current == inputs.end()); | 393 CHECK(current == inputs.end()); |
396 } | 394 } |
397 | 395 |
398 | 396 |
399 TEST(NullInputsSimple) { | 397 TEST(NullInputsSimple) { |
400 GraphTester graph; | 398 GraphTester graph; |
401 | 399 |
402 Node* n0 = graph.NewNode(&dummy_operator); | 400 Node* n0 = graph.NewNode(&dummy_operator); |
403 Node* n1 = graph.NewNode(&dummy_operator, n0); | 401 Node* n1 = graph.NewNode(&dummy_operator, n0); |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 n1->ReplaceInput(0, n1); // self-reference. | 830 n1->ReplaceInput(0, n1); // self-reference. |
833 | 831 |
834 CHECK_EQ(0, n0->UseCount()); | 832 CHECK_EQ(0, n0->UseCount()); |
835 CHECK_EQ(1, n1->UseCount()); | 833 CHECK_EQ(1, n1->UseCount()); |
836 n1->RemoveAllInputs(); | 834 n1->RemoveAllInputs(); |
837 CHECK_EQ(1, n1->InputCount()); | 835 CHECK_EQ(1, n1->InputCount()); |
838 CHECK_EQ(0, n1->UseCount()); | 836 CHECK_EQ(0, n1->UseCount()); |
839 CHECK_EQ(NULL, n1->InputAt(0)); | 837 CHECK_EQ(NULL, n1->InputAt(0)); |
840 } | 838 } |
841 } | 839 } |
OLD | NEW |