Index: test/cctest/compiler/test-graph-visualizer.cc |
diff --git a/test/cctest/compiler/test-graph-visualizer.cc b/test/cctest/compiler/test-graph-visualizer.cc |
index 702e99db154e46ae063241e46f33e030e9a3cc3b..2d6338d06059305f1cbd23c4631f99ea2091afb5 100644 |
--- a/test/cctest/compiler/test-graph-visualizer.cc |
+++ b/test/cctest/compiler/test-graph-visualizer.cc |
@@ -20,6 +20,10 @@ |
using namespace v8::internal; |
using namespace v8::internal::compiler; |
+static Operator dummy_operator(IrOpcode::kParameter, Operator::kNoWrite, |
+ "dummy", 0, 0, 0, 1, 0, 0); |
+ |
+ |
TEST(NodeWithNullInputReachableFromEnd) { |
HandleAndZoneScope scope; |
Graph graph(scope.main_zone()); |
@@ -93,3 +97,31 @@ TEST(NodeWithNullControlReachableFromStart) { |
SourcePositionTable table(&graph); |
os << AsJSON(graph, &table); |
} |
+ |
+ |
+TEST(NodeNetworkOfDummiesReachableFromEnd) { |
+ HandleAndZoneScope scope; |
+ Graph graph(scope.main_zone()); |
+ CommonOperatorBuilder common(scope.main_zone()); |
+ |
+ Node* start = graph.NewNode(common.Start(0)); |
+ graph.SetStart(start); |
+ Node* n2 = graph.NewNode(&dummy_operator, graph.start()); |
+ Node* n3 = graph.NewNode(&dummy_operator, graph.start()); |
+ Node* n4 = graph.NewNode(&dummy_operator, n2); |
+ Node* n5 = graph.NewNode(&dummy_operator, n2); |
+ Node* n6 = graph.NewNode(&dummy_operator, n3); |
+ Node* n7 = graph.NewNode(&dummy_operator, n3); |
+ Node* n8 = graph.NewNode(&dummy_operator, n5); |
+ Node* n9 = graph.NewNode(&dummy_operator, n5); |
+ Node* n10 = graph.NewNode(&dummy_operator, n9); |
+ Node* n11 = graph.NewNode(&dummy_operator, n9); |
+ Node* end_dependencies[6] = {n4, n8, n10, n11, n6, n7}; |
+ Node* end = graph.NewNode(&dummy_operator, 6, end_dependencies); |
+ graph.SetEnd(end); |
+ |
+ OFStream os(stdout); |
+ os << AsDOT(graph); |
+ SourcePositionTable table(&graph); |
+ os << AsJSON(graph, &table); |
+} |