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