Lines Matching refs:Node
10 #include "src/compiler/node-properties.h"
11 #include "src/compiler/node.h"
19 size_t HashCode(Node* node) {
20 size_t h = base::hash_combine(node->op()->HashCode(), node->InputCount());
21 for (Node* input : node->inputs()) {
28 bool Equals(Node* a, Node* b) {
35 Node::Inputs aInputs = a->inputs();
36 Node::Inputs bInputs = b->inputs();
62 Reduction ValueNumberingReducer::Reduce(Node* node) {
63 if (!node->op()->HasProperty(Operator::kIdempotent)) return NoChange();
65 const size_t hash = HashCode(node);
71 entries_ = temp_zone()->NewArray<Node*>(kInitialCapacity);
73 entries_[hash & (kInitialCapacity - 1)] = node;
85 Node* entry = entries_[i];
89 entries_[dead] = node;
92 entries_[i] = node;
102 if (entry == node) {
114 Node* entry = entries_[j];
116 // No collision, {node} is fine.
122 if (entry == node) {
134 if (Equals(entry, node)) {
135 Reduction reduction = ReplaceIfTypesMatch(node, entry);
156 if (Equals(entry, node)) {
157 return ReplaceIfTypesMatch(node, entry);
162 Reduction ValueNumberingReducer::ReplaceIfTypesMatch(Node* node,
163 Node* replacement) {
164 // Make sure the replacement has at least as good type as the original node.
165 if (NodeProperties::IsTyped(replacement) && NodeProperties::IsTyped(node)) {
167 Type* node_type = NodeProperties::GetType(node);
188 Node** const old_entries = entries_;
191 entries_ = temp_zone()->NewArray<Node*>(capacity_);
198 Node* const old_entry = old_entries[i];
201 Node* const entry = entries_[j];