Commit ddf358ca authored by bmeurer@chromium.org's avatar bmeurer@chromium.org

[turbofan] Value numbering should never replace a node with itself.

R=mstarzinger@chromium.org
TEST=compiler-unittests

Review URL: https://codereview.chromium.org/539833003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent d4852080
......@@ -106,6 +106,13 @@ TEST_F(ValueNumberingReducerTest, SubsequentReductionsYieldTheSameNode) {
}
}
TEST_F(ValueNumberingReducerTest, WontReplaceNodeWithItself) {
Node* n = graph()->NewNode(&kOp0);
EXPECT_FALSE(Reduce(n).Changed());
EXPECT_FALSE(Reduce(n).Changed());
}
} // namespace compiler
} // namespace internal
} // namespace v8
......@@ -60,6 +60,7 @@ Reduction ValueNumberingReducer::Reduce(Node* node) {
Entry** head = &buckets_[HashCode(node) % arraysize(buckets_)];
for (Entry* entry = *head; entry; entry = entry->next()) {
if (entry->node()->op() == NULL) continue;
if (entry->node() == node) return NoChange();
if (Equals(node, entry->node())) {
return Replace(entry->node());
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment