summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/graph-reducer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/graph-reducer.cc')
-rw-r--r--deps/v8/src/compiler/graph-reducer.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/graph-reducer.cc b/deps/v8/src/compiler/graph-reducer.cc
index 6f583d6b6a..b13b954714 100644
--- a/deps/v8/src/compiler/graph-reducer.cc
+++ b/deps/v8/src/compiler/graph-reducer.cc
@@ -168,6 +168,10 @@ void GraphReducer::Replace(Node* node, Node* replacement) {
void GraphReducer::Replace(Node* node, Node* replacement, NodeId max_id) {
+ if (FLAG_trace_turbo_reduction) {
+ OFStream os(stdout);
+ os << "- Replacing " << *node << " with " << *replacement << std::endl;
+ }
if (node == graph()->start()) graph()->SetStart(replacement);
if (node == graph()->end()) graph()->SetEnd(replacement);
if (replacement->id() <= max_id) {
@@ -222,7 +226,11 @@ void GraphReducer::ReplaceWithValue(Node* node, Node* value, Node* effect,
edge.UpdateTo(dead_);
Revisit(user);
} else {
- UNREACHABLE();
+ DCHECK_NOT_NULL(control);
+ edge.UpdateTo(control);
+ Revisit(user);
+ // TODO(jarin) Check that the node cannot throw (otherwise, it
+ // would have to be connected via IfSuccess/IfException).
}
} else if (NodeProperties::IsEffectEdge(edge)) {
DCHECK_NOT_NULL(effect);