| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/compiler/js-intrinsic-lowering.h" | 5 #include "src/compiler/js-intrinsic-lowering.h" |
| 6 | 6 |
| 7 #include "src/compiler/access-builder.h" | 7 #include "src/compiler/access-builder.h" |
| 8 #include "src/compiler/js-graph.h" | 8 #include "src/compiler/js-graph.h" |
| 9 #include "src/compiler/node-properties.h" | 9 #include "src/compiler/node-properties.h" |
| 10 | 10 |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 Node* efalse1 = effect; | 138 Node* efalse1 = effect; |
| 139 Node* vfalse1 = value; | 139 Node* vfalse1 = value; |
| 140 | 140 |
| 141 Node* merge1 = graph()->NewNode(merge_op, if_true1, if_false1); | 141 Node* merge1 = graph()->NewNode(merge_op, if_true1, if_false1); |
| 142 efalse0 = graph()->NewNode(ephi_op, etrue1, efalse1, merge1); | 142 efalse0 = graph()->NewNode(ephi_op, etrue1, efalse1, merge1); |
| 143 vfalse0 = graph()->NewNode(phi_op, vtrue1, vfalse1, merge1); | 143 vfalse0 = graph()->NewNode(phi_op, vtrue1, vfalse1, merge1); |
| 144 } | 144 } |
| 145 | 145 |
| 146 Node* merge0 = graph()->NewNode(merge_op, if_true0, if_false0); | 146 Node* merge0 = graph()->NewNode(merge_op, if_true0, if_false0); |
| 147 | 147 |
| 148 | |
| 149 // Replace all effect uses of {node} with the {ephi0}. | 148 // Replace all effect uses of {node} with the {ephi0}. |
| 150 Node* ephi0 = graph()->NewNode(ephi_op, etrue0, efalse0, merge0); | 149 Node* ephi0 = graph()->NewNode(ephi_op, etrue0, efalse0, merge0); |
| 151 NodeProperties::ReplaceWithValue(node, node, ephi0); | 150 NodeProperties::ReplaceWithValue(node, node, ephi0); |
| 152 | 151 |
| 153 // Turn the {node} into a Phi. | 152 // Turn the {node} into a Phi. |
| 154 return Change(node, phi_op, vtrue0, vfalse0, merge0); | 153 return Change(node, phi_op, vtrue0, vfalse0, merge0); |
| 155 } | 154 } |
| 156 | 155 |
| 157 | 156 |
| 158 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op) { | 157 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op) { |
| 159 // Remove the effects from the node and update its effect usages. | 158 // Replace all effect uses of {node} with the effect dependency. |
| 160 NodeProperties::ReplaceWithValue(node, node); | 159 NodeProperties::ReplaceWithValue(node, node); |
| 161 // Remove the inputs corresponding to context, effect and control. | 160 // Remove the inputs corresponding to context, effect and control. |
| 162 NodeProperties::RemoveNonValueInputs(node); | 161 NodeProperties::RemoveNonValueInputs(node); |
| 163 // Finally update the operator to the new one. | 162 // Finally update the operator to the new one. |
| 164 node->set_op(op); | 163 node->set_op(op); |
| 165 return Changed(node); | 164 return Changed(node); |
| 166 } | 165 } |
| 167 | 166 |
| 168 | 167 |
| 169 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op, Node* a, | 168 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op, Node* a, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 185 } | 184 } |
| 186 | 185 |
| 187 | 186 |
| 188 MachineOperatorBuilder* JSIntrinsicLowering::machine() const { | 187 MachineOperatorBuilder* JSIntrinsicLowering::machine() const { |
| 189 return jsgraph()->machine(); | 188 return jsgraph()->machine(); |
| 190 } | 189 } |
| 191 | 190 |
| 192 } // namespace compiler | 191 } // namespace compiler |
| 193 } // namespace internal | 192 } // namespace internal |
| 194 } // namespace v8 | 193 } // namespace v8 |
| OLD | NEW |