| 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 <algorithm> | 7 #include <algorithm> |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <queue> | 9 #include <queue> |
| 10 #include <sstream> | 10 #include <sstream> |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 CHECK(NodeProperties::GetType(val)->Is(NodeProperties::GetType(node))); | 502 CHECK(NodeProperties::GetType(val)->Is(NodeProperties::GetType(node))); |
| 503 } | 503 } |
| 504 break; | 504 break; |
| 505 } | 505 } |
| 506 case IrOpcode::kFrameState: { | 506 case IrOpcode::kFrameState: { |
| 507 // TODO(jarin): what are the constraints on these? | 507 // TODO(jarin): what are the constraints on these? |
| 508 CHECK_EQ(5, value_count); | 508 CHECK_EQ(5, value_count); |
| 509 CHECK_EQ(0, control_count); | 509 CHECK_EQ(0, control_count); |
| 510 CHECK_EQ(0, effect_count); | 510 CHECK_EQ(0, effect_count); |
| 511 CHECK_EQ(6, input_count); | 511 CHECK_EQ(6, input_count); |
| 512 for (int i = 0; i < 3; ++i) { | 512 // Check that the parameters and registers are kStateValues or |
| 513 // kTypedStateValues. |
| 514 for (int i = 0; i < 2; ++i) { |
| 513 CHECK(NodeProperties::GetValueInput(node, i)->opcode() == | 515 CHECK(NodeProperties::GetValueInput(node, i)->opcode() == |
| 514 IrOpcode::kStateValues || | 516 IrOpcode::kStateValues || |
| 515 NodeProperties::GetValueInput(node, i)->opcode() == | 517 NodeProperties::GetValueInput(node, i)->opcode() == |
| 516 IrOpcode::kTypedStateValues); | 518 IrOpcode::kTypedStateValues); |
| 517 } | 519 } |
| 520 // The accumulator (InputAt(2)) cannot be kStateValues, but it can be |
| 521 // kTypedStateValues (to signal the type). Once AST graph builder |
| 522 // is removed, we should check this here. Until then, AST graph |
| 523 // builder can generate expression stack as InputAt(2), which can |
| 524 // still be kStateValues. |
| 518 break; | 525 break; |
| 519 } | 526 } |
| 520 case IrOpcode::kStateValues: | 527 case IrOpcode::kStateValues: |
| 521 case IrOpcode::kTypedStateValues: | 528 case IrOpcode::kTypedStateValues: |
| 522 case IrOpcode::kArgumentsElementsState: | 529 case IrOpcode::kArgumentsElementsState: |
| 523 case IrOpcode::kArgumentsLengthState: | 530 case IrOpcode::kArgumentsLengthState: |
| 524 case IrOpcode::kObjectState: | 531 case IrOpcode::kObjectState: |
| 525 case IrOpcode::kTypedObjectState: | 532 case IrOpcode::kTypedObjectState: |
| 526 // TODO(jarin): what are the constraints on these? | 533 // TODO(jarin): what are the constraints on these? |
| 527 break; | 534 break; |
| (...skipping 1235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1763 replacement->op()->EffectOutputCount() > 0); | 1770 replacement->op()->EffectOutputCount() > 0); |
| 1764 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || | 1771 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || |
| 1765 replacement->opcode() == IrOpcode::kFrameState); | 1772 replacement->opcode() == IrOpcode::kFrameState); |
| 1766 } | 1773 } |
| 1767 | 1774 |
| 1768 #endif // DEBUG | 1775 #endif // DEBUG |
| 1769 | 1776 |
| 1770 } // namespace compiler | 1777 } // namespace compiler |
| 1771 } // namespace internal | 1778 } // namespace internal |
| 1772 } // namespace v8 | 1779 } // namespace v8 |
| OLD | NEW |