[turbofan] Always defer replacement in simplified lowering.

Since we do negative type checks, the current shortcut might still affect
the lowering choices, possibly leading to inconsistent results.

This CL gets rid of the shortcut.

Review-Url: https://codereview.chromium.org/2101943005
Cr-Commit-Position: refs/heads/master@{#37412}
This commit is contained in:
jarin 2016-06-29 22:38:22 -07:00 committed by Commit bot
parent 561be7bb81
commit 10714b633c

View File

@ -2102,20 +2102,9 @@ class RepresentationSelector {
DCHECK_EQ(0, node->op()->ControlInputCount());
}
if (replacement->id() < count_ &&
GetUpperBound(node)->Is(GetUpperBound(replacement)) &&
TypeOf(node)->Is(TypeOf(replacement))) {
// Replace with a previously existing node eagerly only if the type is the
// same.
node->ReplaceUses(replacement);
} else {
// Otherwise, we are replacing a node with a representation change.
// Such a substitution must be done after all lowering is done, because
// changing the type could confuse the representation change
// insertion for uses of the node.
replacements_.push_back(node);
replacements_.push_back(replacement);
}
replacements_.push_back(node);
replacements_.push_back(replacement);
node->NullAllInputs(); // Node is now dead.
}