Home | History | Annotate | Download | only in compiler

Lines Matching refs:replacement

86       } else if (reduction.replacement() == node) {
87 // {replacement} == {node} represents an in-place reduction. Rerun
139 Node* const replacement = reduction.replacement();
140 if (replacement == node) {
152 // Check if we have a new replacement.
153 if (replacement != node) {
154 Replace(node, replacement, max_id);
165 void GraphReducer::Replace(Node* node, Node* replacement) {
166 Replace(node, replacement, std::numeric_limits<NodeId>::max());
170 void GraphReducer::Replace(Node* node, Node* replacement, NodeId max_id) {
171 if (node == graph()->start()) graph()->SetStart(replacement);
172 if (node == graph()->end()) graph()->SetEnd(replacement);
173 if (replacement->id() <= max_id) {
174 // {replacement} is an old node, so unlink {node} and assume that
175 // {replacement} was already reduced and finish.
178 Verifier::VerifyEdgeInputReplacement(edge, replacement);
179 edge.UpdateTo(replacement);
185 // Replace all old uses of {node} with {replacement}, but allow new nodes
190 edge.UpdateTo(replacement);
198 // If there was a replacement, reduce it after popping {node}.
199 Recurse(replacement);