| 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 839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 } | 850 } |
| 851 case IrOpcode::kChangeBitToBool: { | 851 case IrOpcode::kChangeBitToBool: { |
| 852 // Boolean /\ UntaggedInt1 -> Boolean /\ TaggedPtr | 852 // Boolean /\ UntaggedInt1 -> Boolean /\ TaggedPtr |
| 853 // TODO(neis): Activate once ChangeRepresentation works in typer. | 853 // TODO(neis): Activate once ChangeRepresentation works in typer. |
| 854 // Type* from = Type::Intersect(Type::Boolean(), Type::UntaggedInt1()); | 854 // Type* from = Type::Intersect(Type::Boolean(), Type::UntaggedInt1()); |
| 855 // Type* to = Type::Intersect(Type::Boolean(), Type::TaggedPtr()); | 855 // Type* to = Type::Intersect(Type::Boolean(), Type::TaggedPtr()); |
| 856 // CheckValueInputIs(node, 0, from)); | 856 // CheckValueInputIs(node, 0, from)); |
| 857 // CheckUpperIs(node, to)); | 857 // CheckUpperIs(node, to)); |
| 858 break; | 858 break; |
| 859 } | 859 } |
| 860 case IrOpcode::kTruncateTaggedToWord32: { |
| 861 // Number /\ Tagged -> Signed32 /\ UntaggedInt32 |
| 862 // TODO(neis): Activate once ChangeRepresentation works in typer. |
| 863 // Type* from = Type::Intersect(Type::Number(), Type::Tagged()); |
| 864 // Type* to = Type::Intersect(Type::Number(), Type::UntaggedInt32()); |
| 865 // CheckValueInputIs(node, 0, from)); |
| 866 // CheckUpperIs(node, to)); |
| 867 break; |
| 868 } |
| 860 | 869 |
| 861 case IrOpcode::kLoadField: | 870 case IrOpcode::kLoadField: |
| 862 // Object -> fieldtype | 871 // Object -> fieldtype |
| 863 // TODO(rossberg): activate once machine ops are typed. | 872 // TODO(rossberg): activate once machine ops are typed. |
| 864 // CheckValueInputIs(node, 0, Type::Object()); | 873 // CheckValueInputIs(node, 0, Type::Object()); |
| 865 // CheckUpperIs(node, FieldAccessOf(node->op()).type)); | 874 // CheckUpperIs(node, FieldAccessOf(node->op()).type)); |
| 866 break; | 875 break; |
| 867 case IrOpcode::kLoadBuffer: | 876 case IrOpcode::kLoadBuffer: |
| 868 break; | 877 break; |
| 869 case IrOpcode::kLoadElement: | 878 case IrOpcode::kLoadElement: |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 972 case IrOpcode::kFloat64RoundUp: | 981 case IrOpcode::kFloat64RoundUp: |
| 973 case IrOpcode::kFloat32RoundTruncate: | 982 case IrOpcode::kFloat32RoundTruncate: |
| 974 case IrOpcode::kFloat64RoundTruncate: | 983 case IrOpcode::kFloat64RoundTruncate: |
| 975 case IrOpcode::kFloat64RoundTiesAway: | 984 case IrOpcode::kFloat64RoundTiesAway: |
| 976 case IrOpcode::kFloat32RoundTiesEven: | 985 case IrOpcode::kFloat32RoundTiesEven: |
| 977 case IrOpcode::kFloat64RoundTiesEven: | 986 case IrOpcode::kFloat64RoundTiesEven: |
| 978 case IrOpcode::kFloat64Equal: | 987 case IrOpcode::kFloat64Equal: |
| 979 case IrOpcode::kFloat64LessThan: | 988 case IrOpcode::kFloat64LessThan: |
| 980 case IrOpcode::kFloat64LessThanOrEqual: | 989 case IrOpcode::kFloat64LessThanOrEqual: |
| 981 case IrOpcode::kTruncateInt64ToInt32: | 990 case IrOpcode::kTruncateInt64ToInt32: |
| 991 case IrOpcode::kRoundFloat64ToInt32: |
| 982 case IrOpcode::kRoundInt32ToFloat32: | 992 case IrOpcode::kRoundInt32ToFloat32: |
| 983 case IrOpcode::kRoundInt64ToFloat32: | 993 case IrOpcode::kRoundInt64ToFloat32: |
| 984 case IrOpcode::kRoundInt64ToFloat64: | 994 case IrOpcode::kRoundInt64ToFloat64: |
| 985 case IrOpcode::kRoundUint32ToFloat32: | 995 case IrOpcode::kRoundUint32ToFloat32: |
| 986 case IrOpcode::kRoundUint64ToFloat64: | 996 case IrOpcode::kRoundUint64ToFloat64: |
| 987 case IrOpcode::kRoundUint64ToFloat32: | 997 case IrOpcode::kRoundUint64ToFloat32: |
| 988 case IrOpcode::kTruncateFloat64ToFloat32: | 998 case IrOpcode::kTruncateFloat64ToFloat32: |
| 989 case IrOpcode::kTruncateFloat64ToInt32: | 999 case IrOpcode::kTruncateFloat64ToWord32: |
| 990 case IrOpcode::kBitcastFloat32ToInt32: | 1000 case IrOpcode::kBitcastFloat32ToInt32: |
| 991 case IrOpcode::kBitcastFloat64ToInt64: | 1001 case IrOpcode::kBitcastFloat64ToInt64: |
| 992 case IrOpcode::kBitcastInt32ToFloat32: | 1002 case IrOpcode::kBitcastInt32ToFloat32: |
| 993 case IrOpcode::kBitcastInt64ToFloat64: | 1003 case IrOpcode::kBitcastInt64ToFloat64: |
| 994 case IrOpcode::kBitcastWordToTagged: | 1004 case IrOpcode::kBitcastWordToTagged: |
| 995 case IrOpcode::kChangeInt32ToInt64: | 1005 case IrOpcode::kChangeInt32ToInt64: |
| 996 case IrOpcode::kChangeUint32ToUint64: | 1006 case IrOpcode::kChangeUint32ToUint64: |
| 997 case IrOpcode::kChangeInt32ToFloat64: | 1007 case IrOpcode::kChangeInt32ToFloat64: |
| 998 case IrOpcode::kChangeUint32ToFloat64: | 1008 case IrOpcode::kChangeUint32ToFloat64: |
| 999 case IrOpcode::kChangeFloat32ToFloat64: | 1009 case IrOpcode::kChangeFloat32ToFloat64: |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1344 replacement->op()->EffectOutputCount() > 0); | 1354 replacement->op()->EffectOutputCount() > 0); |
| 1345 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || | 1355 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || |
| 1346 replacement->opcode() == IrOpcode::kFrameState); | 1356 replacement->opcode() == IrOpcode::kFrameState); |
| 1347 } | 1357 } |
| 1348 | 1358 |
| 1349 #endif // DEBUG | 1359 #endif // DEBUG |
| 1350 | 1360 |
| 1351 } // namespace compiler | 1361 } // namespace compiler |
| 1352 } // namespace internal | 1362 } // namespace internal |
| 1353 } // namespace v8 | 1363 } // namespace v8 |
| OLD | NEW |