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 |