Home | History | Annotate | Download | only in compiler

Lines Matching refs:node

7 #include "src/compiler/node-properties.h"
18 Reduction RedundancyElimination::Reduce(Node* node) {
19 switch (node->opcode()) {
30 return ReduceCheckNode(node);
32 return ReduceEffectPhi(node);
36 return ReduceStart(node);
38 return ReduceOtherNode(node);
87 Node* node) const {
88 Check* head = new (zone->New(sizeof(Check))) Check(node, head_);
95 bool IsCompatibleCheck(Node const* a, Node const* b) {
105 Node* RedundancyElimination::EffectPathChecks::LookupCheck(Node* node) const {
107 if (IsCompatibleCheck(check->node, node)) {
108 DCHECK(!check->node->IsDead());
109 return check->node;
116 RedundancyElimination::PathChecksForEffectNodes::Get(Node* node) const {
117 size_t const id = node->id();
123 Node* node, EffectPathChecks const* checks) {
124 size_t const id = node->id();
129 Reduction RedundancyElimination::ReduceCheckNode(Node* node) {
130 Node* const effect = NodeProperties::GetEffectInput(node);
136 if (Node* check = checks->LookupCheck(node)) {
137 ReplaceWithValue(node, check);
141 return UpdateChecks(node, checks->AddCheck(zone(), node));
144 Reduction RedundancyElimination::ReduceEffectPhi(Node* node) {
145 Node* const control = NodeProperties::GetControlInput(node);
150 return TakeChecksFromFirstEffect(node);
155 int const input_count = node->op()->EffectInputCount();
157 Node* const effect = NodeProperties::GetEffectInput(node, i);
164 zone(), node_checks_.Get(NodeProperties::GetEffectInput(node, 0)));
166 Node* const input = NodeProperties::GetEffectInput(node, i);
169 return UpdateChecks(node, checks);
172 Reduction RedundancyElimination::ReduceStart(Node* node) {
173 return UpdateChecks(node, EffectPathChecks::Empty(zone()));
176 Reduction RedundancyElimination::ReduceOtherNode(Node* node) {
177 if (node->op()->EffectInputCount() == 1) {
178 if (node->op()->EffectOutputCount() == 1) {
179 return TakeChecksFromFirstEffect(node);
185 DCHECK_EQ(0, node->op()->EffectInputCount());
186 DCHECK_EQ(0, node->op()->EffectOutputCount());
190 Reduction RedundancyElimination::TakeChecksFromFirstEffect(Node* node) {
191 DCHECK_EQ(1, node->op()->EffectOutputCount());
192 Node* const effect = NodeProperties::GetEffectInput(node);
199 return UpdateChecks(node, checks);
202 Reduction RedundancyElimination::UpdateChecks(Node* node,
204 EffectPathChecks const* original = node_checks_.Get(node);
205 // Only signal that the {node} has Changed, if the information about {checks}
208 node_checks_.Set(node, checks);
209 return Changed(node);