| Index: test/cctest/compiler/test-node.cc
|
| diff --git a/test/cctest/compiler/test-node.cc b/test/cctest/compiler/test-node.cc
|
| index eafabd35780e2710a3371f7ed772b70a1d4824a1..23238dac5335a28ed45a58bf19ddf3df0302fbb9 100644
|
| --- a/test/cctest/compiler/test-node.cc
|
| +++ b/test/cctest/compiler/test-node.cc
|
| @@ -16,136 +16,26 @@ using namespace v8::internal::compiler;
|
| static Operator dummy_operator(IrOpcode::kParameter, Operator::kNoWrite,
|
| "dummy", 0, 0, 0, 1, 0, 0);
|
|
|
| -TEST(NodeAllocation) {
|
| - GraphTester graph;
|
| - Node* n1 = graph.NewNode(&dummy_operator);
|
| - Node* n2 = graph.NewNode(&dummy_operator);
|
| - CHECK(n2->id() != n1->id());
|
| -}
|
| -
|
| -
|
| -TEST(NodeWithOpcode) {
|
| - GraphTester graph;
|
| - Node* n1 = graph.NewNode(&dummy_operator);
|
| - Node* n2 = graph.NewNode(&dummy_operator);
|
| - CHECK(n1->op() == &dummy_operator);
|
| - CHECK(n2->op() == &dummy_operator);
|
| -}
|
| -
|
| -
|
| -TEST(NodeInputs1) {
|
| - GraphTester graph;
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n2 = graph.NewNode(&dummy_operator, n0);
|
| - CHECK_EQ(1, n2->InputCount());
|
| - CHECK(n0 == n2->InputAt(0));
|
| -}
|
| -
|
| -
|
| -TEST(NodeInputs2) {
|
| - GraphTester graph;
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n1 = graph.NewNode(&dummy_operator);
|
| - Node* n2 = graph.NewNode(&dummy_operator, n0, n1);
|
| - CHECK_EQ(2, n2->InputCount());
|
| - CHECK(n0 == n2->InputAt(0));
|
| - CHECK(n1 == n2->InputAt(1));
|
| -}
|
| -
|
| -
|
| -TEST(NodeInputs3) {
|
| - GraphTester graph;
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n1 = graph.NewNode(&dummy_operator);
|
| - Node* n2 = graph.NewNode(&dummy_operator, n0, n1, n1);
|
| - CHECK_EQ(3, n2->InputCount());
|
| - CHECK(n0 == n2->InputAt(0));
|
| - CHECK(n1 == n2->InputAt(1));
|
| - CHECK(n1 == n2->InputAt(2));
|
| -}
|
| -
|
| -
|
| -TEST(NodeInputIteratorEmpty) {
|
| - GraphTester graph;
|
| - Node* n1 = graph.NewNode(&dummy_operator);
|
| - Node::Inputs::iterator i(n1->inputs().begin());
|
| - int input_count = 0;
|
| - for (; i != n1->inputs().end(); ++i) {
|
| - input_count++;
|
| - }
|
| - CHECK_EQ(0, input_count);
|
| -}
|
| -
|
| -
|
| -TEST(NodeInputIteratorOne) {
|
| - GraphTester graph;
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n1 = graph.NewNode(&dummy_operator, n0);
|
| - Node::Inputs::iterator i(n1->inputs().begin());
|
| - CHECK_EQ(1, n1->InputCount());
|
| - CHECK_EQ(n0, *i);
|
| - ++i;
|
| - CHECK(n1->inputs().end() == i);
|
| -}
|
| -
|
| -
|
| -TEST(NodeUseIteratorEmpty) {
|
| - GraphTester graph;
|
| - Node* n1 = graph.NewNode(&dummy_operator);
|
| - int use_count = 0;
|
| - for (Edge const edge : n1->use_edges()) {
|
| - USE(edge);
|
| - use_count++;
|
| - }
|
| - CHECK_EQ(0, use_count);
|
| -}
|
| -
|
| -
|
| -TEST(NodeUseIteratorOne) {
|
| - GraphTester graph;
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n1 = graph.NewNode(&dummy_operator, n0);
|
| - Node::Uses::iterator i(n0->uses().begin());
|
| - CHECK_EQ(n1, *i);
|
| - ++i;
|
| - CHECK(n0->uses().end() == i);
|
| -}
|
| -
|
| -
|
| -TEST(NodeUseIteratorReplaceNoUses) {
|
| - GraphTester graph;
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n1 = graph.NewNode(&dummy_operator);
|
| - Node* n2 = graph.NewNode(&dummy_operator);
|
| - Node* n3 = graph.NewNode(&dummy_operator, n2);
|
| - n0->ReplaceUses(n1);
|
| - CHECK(n0->uses().begin() == n0->uses().end());
|
| - n0->ReplaceUses(n2);
|
| - CHECK(n0->uses().begin() == n0->uses().end());
|
| - USE(n3);
|
| -}
|
| -
|
| -
|
| TEST(NodeUseIteratorReplaceUses) {
|
| GraphTester graph;
|
| Node* n0 = graph.NewNode(&dummy_operator);
|
| Node* n1 = graph.NewNode(&dummy_operator, n0);
|
| Node* n2 = graph.NewNode(&dummy_operator, n0);
|
| Node* n3 = graph.NewNode(&dummy_operator);
|
| - Node::Uses::iterator i1(n0->uses().begin());
|
| + auto i1(n0->uses().begin());
|
| CHECK_EQ(n1, *i1);
|
| ++i1;
|
| CHECK_EQ(n2, *i1);
|
| n0->ReplaceUses(n3);
|
| - Node::Uses::iterator i2(n3->uses().begin());
|
| + auto i2(n3->uses().begin());
|
| CHECK_EQ(n1, *i2);
|
| ++i2;
|
| CHECK_EQ(n2, *i2);
|
| - Node::Inputs::iterator i3(n1->inputs().begin());
|
| + auto i3(n1->inputs().begin());
|
| CHECK_EQ(n3, *i3);
|
| ++i3;
|
| CHECK(n1->inputs().end() == i3);
|
| - Node::Inputs::iterator i4(n2->inputs().begin());
|
| + auto i4(n2->inputs().begin());
|
| CHECK_EQ(n3, *i4);
|
| ++i4;
|
| CHECK(n2->inputs().end() == i4);
|
| @@ -160,14 +50,14 @@ TEST(NodeUseIteratorReplaceUsesSelf) {
|
|
|
| n1->ReplaceInput(0, n1); // Create self-reference.
|
|
|
| - Node::Uses::iterator i1(n1->uses().begin());
|
| + auto i1(n1->uses().begin());
|
| CHECK_EQ(n1, *i1);
|
|
|
| n1->ReplaceUses(n3);
|
|
|
| CHECK(n1->uses().begin() == n1->uses().end());
|
|
|
| - Node::Uses::iterator i2(n3->uses().begin());
|
| + auto i2(n3->uses().begin());
|
| CHECK_EQ(n1, *i2);
|
| ++i2;
|
| CHECK(n1->uses().end() == i2);
|
| @@ -180,7 +70,7 @@ TEST(ReplaceInput) {
|
| Node* n1 = graph.NewNode(&dummy_operator);
|
| Node* n2 = graph.NewNode(&dummy_operator);
|
| Node* n3 = graph.NewNode(&dummy_operator, n0, n1, n2);
|
| - Node::Inputs::iterator i1(n3->inputs().begin());
|
| + auto i1(n3->inputs().begin());
|
| CHECK(n0 == *i1);
|
| CHECK_EQ(n0, n3->InputAt(0));
|
| ++i1;
|
| @@ -192,26 +82,26 @@ TEST(ReplaceInput) {
|
| ++i1;
|
| CHECK(i1 == n3->inputs().end());
|
|
|
| - Node::Uses::iterator i2(n1->uses().begin());
|
| + auto i2(n1->uses().begin());
|
| CHECK_EQ(n3, *i2);
|
| ++i2;
|
| CHECK(i2 == n1->uses().end());
|
|
|
| Node* n4 = graph.NewNode(&dummy_operator);
|
| - Node::Uses::iterator i3(n4->uses().begin());
|
| + auto i3(n4->uses().begin());
|
| CHECK(i3 == n4->uses().end());
|
|
|
| n3->ReplaceInput(1, n4);
|
|
|
| - Node::Uses::iterator i4(n1->uses().begin());
|
| + auto i4(n1->uses().begin());
|
| CHECK(i4 == n1->uses().end());
|
|
|
| - Node::Uses::iterator i5(n4->uses().begin());
|
| + auto i5(n4->uses().begin());
|
| CHECK_EQ(n3, *i5);
|
| ++i5;
|
| CHECK(i5 == n4->uses().end());
|
|
|
| - Node::Inputs::iterator i6(n3->inputs().begin());
|
| + auto i6(n3->inputs().begin());
|
| CHECK(n0 == *i6);
|
| CHECK_EQ(n0, n3->InputAt(0));
|
| ++i6;
|
| @@ -321,7 +211,7 @@ TEST(Inputs) {
|
|
|
| // Make sure uses have been hooked op correctly.
|
| Node::Uses uses(n4->uses());
|
| - Node::Uses::iterator current = uses.begin();
|
| + auto current = uses.begin();
|
| CHECK(current != uses.end());
|
| CHECK(*current == n3);
|
| ++current;
|
| @@ -450,7 +340,7 @@ TEST(ReplaceUsesFromAppendedInputs) {
|
| CHECK_EQ(3, n3->UseCount());
|
|
|
| Node::Uses uses(n3->uses());
|
| - Node::Uses::iterator current = uses.begin();
|
| + auto current = uses.begin();
|
| CHECK(current != uses.end());
|
| CHECK(*current == n1);
|
| ++current;
|
| @@ -464,76 +354,6 @@ TEST(ReplaceUsesFromAppendedInputs) {
|
| }
|
|
|
|
|
| -template <bool result>
|
| -struct FixedPredicate {
|
| - bool operator()(const Node* node) const { return result; }
|
| -};
|
| -
|
| -
|
| -TEST(ReplaceUsesIfWithFixedPredicate) {
|
| - GraphTester graph;
|
| -
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n1 = graph.NewNode(&dummy_operator, n0);
|
| - Node* n2 = graph.NewNode(&dummy_operator, n0);
|
| - Node* n3 = graph.NewNode(&dummy_operator);
|
| -
|
| - CHECK_EQ(0, n2->UseCount());
|
| - n2->ReplaceUsesIf(FixedPredicate<true>(), n1);
|
| - CHECK_EQ(0, n2->UseCount());
|
| - n2->ReplaceUsesIf(FixedPredicate<false>(), n1);
|
| - CHECK_EQ(0, n2->UseCount());
|
| -
|
| - CHECK_EQ(0, n3->UseCount());
|
| - n3->ReplaceUsesIf(FixedPredicate<true>(), n1);
|
| - CHECK_EQ(0, n3->UseCount());
|
| - n3->ReplaceUsesIf(FixedPredicate<false>(), n1);
|
| - CHECK_EQ(0, n3->UseCount());
|
| -
|
| - CHECK_EQ(2, n0->UseCount());
|
| - CHECK_EQ(0, n1->UseCount());
|
| - n0->ReplaceUsesIf(FixedPredicate<false>(), n1);
|
| - CHECK_EQ(2, n0->UseCount());
|
| - CHECK_EQ(0, n1->UseCount());
|
| - n0->ReplaceUsesIf(FixedPredicate<true>(), n1);
|
| - CHECK_EQ(0, n0->UseCount());
|
| - CHECK_EQ(2, n1->UseCount());
|
| -
|
| - n1->AppendInput(graph.zone(), n1);
|
| - CHECK_EQ(3, n1->UseCount());
|
| - n1->AppendInput(graph.zone(), n3);
|
| - CHECK_EQ(1, n3->UseCount());
|
| - n3->ReplaceUsesIf(FixedPredicate<true>(), n1);
|
| - CHECK_EQ(4, n1->UseCount());
|
| - CHECK_EQ(0, n3->UseCount());
|
| - n1->ReplaceUsesIf(FixedPredicate<false>(), n3);
|
| - CHECK_EQ(4, n1->UseCount());
|
| - CHECK_EQ(0, n3->UseCount());
|
| -}
|
| -
|
| -
|
| -TEST(ReplaceUsesIfWithEqualTo) {
|
| - GraphTester graph;
|
| -
|
| - Node* n0 = graph.NewNode(&dummy_operator);
|
| - Node* n1 = graph.NewNode(&dummy_operator, n0);
|
| - Node* n2 = graph.NewNode(&dummy_operator, n0, n1);
|
| -
|
| - CHECK_EQ(0, n2->UseCount());
|
| - n2->ReplaceUsesIf(std::bind1st(std::equal_to<Node*>(), n1), n0);
|
| - CHECK_EQ(0, n2->UseCount());
|
| -
|
| - CHECK_EQ(2, n0->UseCount());
|
| - CHECK_EQ(1, n1->UseCount());
|
| - n1->ReplaceUsesIf(std::bind1st(std::equal_to<Node*>(), n0), n0);
|
| - CHECK_EQ(2, n0->UseCount());
|
| - CHECK_EQ(1, n1->UseCount());
|
| - n0->ReplaceUsesIf(std::bind2nd(std::equal_to<Node*>(), n2), n1);
|
| - CHECK_EQ(1, n0->UseCount());
|
| - CHECK_EQ(2, n1->UseCount());
|
| -}
|
| -
|
| -
|
| TEST(ReplaceInputMultipleUses) {
|
| GraphTester graph;
|
|
|
|
|