| 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 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 628 break; | 628 break; |
| 629 } | 629 } |
| 630 case IrOpcode::kObjectIsSmi: | 630 case IrOpcode::kObjectIsSmi: |
| 631 CheckValueInputIs(node, 0, Type::Any()); | 631 CheckValueInputIs(node, 0, Type::Any()); |
| 632 CheckUpperIs(node, Type::Boolean()); | 632 CheckUpperIs(node, Type::Boolean()); |
| 633 break; | 633 break; |
| 634 case IrOpcode::kObjectIsNonNegativeSmi: | 634 case IrOpcode::kObjectIsNonNegativeSmi: |
| 635 CheckValueInputIs(node, 0, Type::Any()); | 635 CheckValueInputIs(node, 0, Type::Any()); |
| 636 CheckUpperIs(node, Type::Boolean()); | 636 CheckUpperIs(node, Type::Boolean()); |
| 637 break; | 637 break; |
| 638 case IrOpcode::kAllocate: |
| 639 CheckValueInputIs(node, 0, Type::PlainNumber()); |
| 640 CheckUpperIs(node, Type::TaggedPointer()); |
| 641 break; |
| 638 | 642 |
| 639 case IrOpcode::kChangeTaggedToInt32: { | 643 case IrOpcode::kChangeTaggedToInt32: { |
| 640 // Signed32 /\ Tagged -> Signed32 /\ UntaggedInt32 | 644 // Signed32 /\ Tagged -> Signed32 /\ UntaggedInt32 |
| 641 // TODO(neis): Activate once ChangeRepresentation works in typer. | 645 // TODO(neis): Activate once ChangeRepresentation works in typer. |
| 642 // Type* from = Type::Intersect(Type::Signed32(), Type::Tagged()); | 646 // Type* from = Type::Intersect(Type::Signed32(), Type::Tagged()); |
| 643 // Type* to = Type::Intersect(Type::Signed32(), Type::UntaggedInt32()); | 647 // Type* to = Type::Intersect(Type::Signed32(), Type::UntaggedInt32()); |
| 644 // CheckValueInputIs(node, 0, from)); | 648 // CheckValueInputIs(node, 0, from)); |
| 645 // CheckUpperIs(node, to)); | 649 // CheckUpperIs(node, to)); |
| 646 break; | 650 break; |
| 647 } | 651 } |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1090 // Check inputs for all nodes in the block. | 1094 // Check inputs for all nodes in the block. |
| 1091 for (size_t i = 0; i < block->NodeCount(); i++) { | 1095 for (size_t i = 0; i < block->NodeCount(); i++) { |
| 1092 Node* node = block->NodeAt(i); | 1096 Node* node = block->NodeAt(i); |
| 1093 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); | 1097 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); |
| 1094 } | 1098 } |
| 1095 } | 1099 } |
| 1096 } | 1100 } |
| 1097 } | 1101 } |
| 1098 } | 1102 } |
| 1099 } // namespace v8::internal::compiler | 1103 } // namespace v8::internal::compiler |
| OLD | NEW |