Lines Matching refs:replacement
37 reduction.replacement());
108 } else if (reduction.replacement() == node) {
109 // {replacement} == {node} represents an in-place reduction. Rerun
131 << *(reduction.replacement()) << " by reducer "
184 Node* const replacement = reduction.replacement();
185 if (replacement == node) {
205 // Check if we have a new replacement.
206 if (replacement != node) {
207 Replace(node, replacement, max_id);
212 void GraphReducer::Replace(Node* node, Node* replacement) {
213 Replace(node, replacement, std::numeric_limits<NodeId>::max());
217 void GraphReducer::Replace(Node* node, Node* replacement, NodeId max_id) {
218 if (node == graph()->start()) graph()->SetStart(replacement);
219 if (node == graph()->end()) graph()->SetEnd(replacement);
220 if (replacement->id() <= max_id) {
221 // {replacement} is an old node, so unlink {node} and assume that
222 // {replacement} was already reduced and finish.
225 Verifier::VerifyEdgeInputReplacement(edge, replacement);
226 edge.UpdateTo(replacement);
232 // Replace all old uses of {node} with {replacement}, but allow new nodes
237 edge.UpdateTo(replacement);
245 // If there was a replacement, reduce it after popping {node}.
246 Recurse(replacement);