OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/verifier.h" | 5 #include "src/compiler/verifier.h" |
6 | 6 |
7 #include <deque> | 7 #include <deque> |
8 #include <queue> | 8 #include <queue> |
9 | 9 |
10 #include "src/compiler/generic-algorithm.h" | 10 #include "src/compiler/generic-algorithm.h" |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 break; | 187 break; |
188 } | 188 } |
189 case IrOpcode::kEffectPhi: { | 189 case IrOpcode::kEffectPhi: { |
190 // EffectPhi input count matches parent control node. | 190 // EffectPhi input count matches parent control node. |
191 CHECK_EQ(1, control_count); | 191 CHECK_EQ(1, control_count); |
192 Node* control = NodeProperties::GetControlInput(node, 0); | 192 Node* control = NodeProperties::GetControlInput(node, 0); |
193 CHECK_EQ(effect_count, | 193 CHECK_EQ(effect_count, |
194 OperatorProperties::GetControlInputCount(control->op())); | 194 OperatorProperties::GetControlInputCount(control->op())); |
195 break; | 195 break; |
196 } | 196 } |
197 case IrOpcode::kLazyDeoptimization: | |
198 // TODO(jarin): what are the constraints on these? | |
199 break; | |
200 case IrOpcode::kDeoptimize: | |
201 // TODO(jarin): what are the constraints on these? | |
202 break; | |
203 case IrOpcode::kFrameState: | 197 case IrOpcode::kFrameState: |
204 // TODO(jarin): what are the constraints on these? | 198 // TODO(jarin): what are the constraints on these? |
205 break; | 199 break; |
206 case IrOpcode::kCall: | 200 case IrOpcode::kCall: |
207 // TODO(rossberg): what are the constraints on these? | 201 // TODO(rossberg): what are the constraints on these? |
208 break; | 202 break; |
209 case IrOpcode::kContinuation: | |
210 // TODO(jarin): what are the constraints on these? | |
211 break; | |
212 case IrOpcode::kProjection: { | 203 case IrOpcode::kProjection: { |
213 // Projection has an input that produces enough values. | 204 // Projection has an input that produces enough values. |
214 int index = static_cast<Operator1<int>*>(node->op())->parameter(); | 205 int index = static_cast<Operator1<int>*>(node->op())->parameter(); |
215 Node* input = NodeProperties::GetValueInput(node, 0); | 206 Node* input = NodeProperties::GetValueInput(node, 0); |
216 CHECK_GT(OperatorProperties::GetValueOutputCount(input->op()), index); | 207 CHECK_GT(OperatorProperties::GetValueOutputCount(input->op()), index); |
217 break; | 208 break; |
218 } | 209 } |
219 default: | 210 default: |
220 // TODO(rossberg): Check other node kinds. | 211 // TODO(rossberg): Check other node kinds. |
221 break; | 212 break; |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 // Check inputs for all nodes in the block. | 434 // Check inputs for all nodes in the block. |
444 for (size_t i = 0; i < block->nodes_.size(); i++) { | 435 for (size_t i = 0; i < block->nodes_.size(); i++) { |
445 Node* node = block->nodes_[i]; | 436 Node* node = block->nodes_[i]; |
446 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); | 437 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); |
447 } | 438 } |
448 } | 439 } |
449 } | 440 } |
450 } | 441 } |
451 } | 442 } |
452 } // namespace v8::internal::compiler | 443 } // namespace v8::internal::compiler |
OLD | NEW |