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 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 } | 748 } |
749 case IrOpcode::kChangeTaggedToFloat64: { | 749 case IrOpcode::kChangeTaggedToFloat64: { |
750 // Number /\ Tagged -> Number /\ UntaggedFloat64 | 750 // Number /\ Tagged -> Number /\ UntaggedFloat64 |
751 // TODO(neis): Activate once ChangeRepresentation works in typer. | 751 // TODO(neis): Activate once ChangeRepresentation works in typer. |
752 // Type* from = Type::Intersect(Type::Number(), Type::Tagged()); | 752 // Type* from = Type::Intersect(Type::Number(), Type::Tagged()); |
753 // Type* to = Type::Intersect(Type::Number(), Type::UntaggedFloat64()); | 753 // Type* to = Type::Intersect(Type::Number(), Type::UntaggedFloat64()); |
754 // CheckValueInputIs(node, 0, from)); | 754 // CheckValueInputIs(node, 0, from)); |
755 // CheckUpperIs(node, to)); | 755 // CheckUpperIs(node, to)); |
756 break; | 756 break; |
757 } | 757 } |
| 758 #define SIMD128_CASE(TYPE, Type, type, lane_count, lane_type) \ |
| 759 case IrOpcode::kChangeTaggedTo##Type: { \ |
| 760 break; \ |
| 761 } |
| 762 SIMD128_TYPES(SIMD128_CASE) |
| 763 #undef SIMD128_CASE |
758 case IrOpcode::kChangeInt32ToTagged: { | 764 case IrOpcode::kChangeInt32ToTagged: { |
759 // Signed32 /\ UntaggedInt32 -> Signed32 /\ Tagged | 765 // Signed32 /\ UntaggedInt32 -> Signed32 /\ Tagged |
760 // TODO(neis): Activate once ChangeRepresentation works in typer. | 766 // TODO(neis): Activate once ChangeRepresentation works in typer. |
761 // Type* from =Type::Intersect(Type::Signed32(), Type::UntaggedInt32()); | 767 // Type* from =Type::Intersect(Type::Signed32(), Type::UntaggedInt32()); |
762 // Type* to = Type::Intersect(Type::Signed32(), Type::Tagged()); | 768 // Type* to = Type::Intersect(Type::Signed32(), Type::Tagged()); |
763 // CheckValueInputIs(node, 0, from)); | 769 // CheckValueInputIs(node, 0, from)); |
764 // CheckUpperIs(node, to)); | 770 // CheckUpperIs(node, to)); |
765 break; | 771 break; |
766 } | 772 } |
767 case IrOpcode::kChangeUint32ToTagged: { | 773 case IrOpcode::kChangeUint32ToTagged: { |
768 // Unsigned32 /\ UntaggedInt32 -> Unsigned32 /\ Tagged | 774 // Unsigned32 /\ UntaggedInt32 -> Unsigned32 /\ Tagged |
769 // TODO(neis): Activate once ChangeRepresentation works in typer. | 775 // TODO(neis): Activate once ChangeRepresentation works in typer. |
770 // Type* from=Type::Intersect(Type::Unsigned32(),Type::UntaggedInt32()); | 776 // Type* from=Type::Intersect(Type::Unsigned32(),Type::UntaggedInt32()); |
771 // Type* to = Type::Intersect(Type::Unsigned32(), Type::Tagged()); | 777 // Type* to = Type::Intersect(Type::Unsigned32(), Type::Tagged()); |
772 // CheckValueInputIs(node, 0, from)); | 778 // CheckValueInputIs(node, 0, from)); |
773 // CheckUpperIs(node, to)); | 779 // CheckUpperIs(node, to)); |
774 break; | 780 break; |
775 } | 781 } |
776 case IrOpcode::kChangeFloat64ToTagged: { | 782 case IrOpcode::kChangeFloat64ToTagged: { |
777 // Number /\ UntaggedFloat64 -> Number /\ Tagged | 783 // Number /\ UntaggedFloat64 -> Number /\ Tagged |
778 // TODO(neis): Activate once ChangeRepresentation works in typer. | 784 // TODO(neis): Activate once ChangeRepresentation works in typer. |
779 // Type* from =Type::Intersect(Type::Number(), Type::UntaggedFloat64()); | 785 // Type* from =Type::Intersect(Type::Number(), Type::UntaggedFloat64()); |
780 // Type* to = Type::Intersect(Type::Number(), Type::Tagged()); | 786 // Type* to = Type::Intersect(Type::Number(), Type::Tagged()); |
781 // CheckValueInputIs(node, 0, from)); | 787 // CheckValueInputIs(node, 0, from)); |
782 // CheckUpperIs(node, to)); | 788 // CheckUpperIs(node, to)); |
783 break; | 789 break; |
784 } | 790 } |
| 791 #define SIMD128_CASE(TYPE, Type, type, lane_count, lane_type) \ |
| 792 case IrOpcode::kChange##Type##ToTagged: { \ |
| 793 break; \ |
| 794 } |
| 795 SIMD128_TYPES(SIMD128_CASE) |
| 796 #undef SIMD128_CASE |
785 case IrOpcode::kChangeBoolToBit: { | 797 case IrOpcode::kChangeBoolToBit: { |
786 // Boolean /\ TaggedPtr -> Boolean /\ UntaggedInt1 | 798 // Boolean /\ TaggedPtr -> Boolean /\ UntaggedInt1 |
787 // TODO(neis): Activate once ChangeRepresentation works in typer. | 799 // TODO(neis): Activate once ChangeRepresentation works in typer. |
788 // Type* from = Type::Intersect(Type::Boolean(), Type::TaggedPtr()); | 800 // Type* from = Type::Intersect(Type::Boolean(), Type::TaggedPtr()); |
789 // Type* to = Type::Intersect(Type::Boolean(), Type::UntaggedInt1()); | 801 // Type* to = Type::Intersect(Type::Boolean(), Type::UntaggedInt1()); |
790 // CheckValueInputIs(node, 0, from)); | 802 // CheckValueInputIs(node, 0, from)); |
791 // CheckUpperIs(node, to)); | 803 // CheckUpperIs(node, to)); |
792 break; | 804 break; |
793 } | 805 } |
794 case IrOpcode::kChangeBitToBool: { | 806 case IrOpcode::kChangeBitToBool: { |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1284 replacement->op()->EffectOutputCount() > 0); | 1296 replacement->op()->EffectOutputCount() > 0); |
1285 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || | 1297 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || |
1286 replacement->opcode() == IrOpcode::kFrameState); | 1298 replacement->opcode() == IrOpcode::kFrameState); |
1287 } | 1299 } |
1288 | 1300 |
1289 #endif // DEBUG | 1301 #endif // DEBUG |
1290 | 1302 |
1291 } // namespace compiler | 1303 } // namespace compiler |
1292 } // namespace internal | 1304 } // namespace internal |
1293 } // namespace v8 | 1305 } // namespace v8 |
OLD | NEW |