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 943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
954 case IrOpcode::kInt32PairAdd: | 954 case IrOpcode::kInt32PairAdd: |
955 case IrOpcode::kInt32PairSub: | 955 case IrOpcode::kInt32PairSub: |
956 case IrOpcode::kWord32PairShl: | 956 case IrOpcode::kWord32PairShl: |
957 case IrOpcode::kWord32PairShr: | 957 case IrOpcode::kWord32PairShr: |
958 case IrOpcode::kWord32PairSar: | 958 case IrOpcode::kWord32PairSar: |
959 case IrOpcode::kLoadStackPointer: | 959 case IrOpcode::kLoadStackPointer: |
960 case IrOpcode::kLoadFramePointer: | 960 case IrOpcode::kLoadFramePointer: |
961 case IrOpcode::kLoadParentFramePointer: | 961 case IrOpcode::kLoadParentFramePointer: |
962 case IrOpcode::kCheckedLoad: | 962 case IrOpcode::kCheckedLoad: |
963 case IrOpcode::kCheckedStore: | 963 case IrOpcode::kCheckedStore: |
964 case IrOpcode::kCreateFloat32x4: | |
Mircea Trofin
2016/03/31 21:36:04
perhaps macroise this?
bbudge
2016/04/01 00:57:53
Done.
| |
965 case IrOpcode::kFloat32x4ExtractLane: | |
966 case IrOpcode::kFloat32x4ReplaceLane: | |
967 case IrOpcode::kFloat32x4Abs: | |
968 case IrOpcode::kFloat32x4Neg: | |
969 case IrOpcode::kFloat32x4Sqrt: | |
970 case IrOpcode::kFloat32x4RecipApprox: | |
971 case IrOpcode::kFloat32x4RecipSqrtApprox: | |
972 case IrOpcode::kFloat32x4Add: | |
973 case IrOpcode::kFloat32x4Sub: | |
974 case IrOpcode::kFloat32x4Mul: | |
975 case IrOpcode::kFloat32x4Div: | |
976 case IrOpcode::kFloat32x4Min: | |
977 case IrOpcode::kFloat32x4Max: | |
978 case IrOpcode::kFloat32x4MinNum: | |
979 case IrOpcode::kFloat32x4MaxNum: | |
980 case IrOpcode::kFloat32x4Equal: | |
981 case IrOpcode::kFloat32x4NotEqual: | |
982 case IrOpcode::kFloat32x4LessThan: | |
983 case IrOpcode::kFloat32x4LessThanOrEqual: | |
984 case IrOpcode::kFloat32x4GreaterThan: | |
985 case IrOpcode::kFloat32x4GreaterThanOrEqual: | |
986 case IrOpcode::kFloat32x4Select: | |
987 case IrOpcode::kFloat32x4Swizzle: | |
988 case IrOpcode::kFloat32x4Shuffle: | |
989 case IrOpcode::kFloat32x4FromInt32x4: | |
990 case IrOpcode::kFloat32x4FromUint32x4: | |
991 case IrOpcode::kFloat32x4Load1: | |
992 case IrOpcode::kFloat32x4Load2: | |
993 case IrOpcode::kFloat32x4Load3: | |
994 case IrOpcode::kFloat32x4Store1: | |
995 case IrOpcode::kFloat32x4Store2: | |
996 case IrOpcode::kFloat32x4Store3: | |
997 case IrOpcode::kCreateInt32x4: | |
998 case IrOpcode::kInt32x4ExtractLane: | |
999 case IrOpcode::kInt32x4ReplaceLane: | |
1000 case IrOpcode::kInt32x4Neg: | |
1001 case IrOpcode::kInt32x4Add: | |
1002 case IrOpcode::kInt32x4Sub: | |
1003 case IrOpcode::kInt32x4Mul: | |
1004 case IrOpcode::kInt32x4Min: | |
1005 case IrOpcode::kInt32x4Max: | |
1006 case IrOpcode::kInt32x4And: | |
1007 case IrOpcode::kInt32x4Or: | |
1008 case IrOpcode::kInt32x4Xor: | |
1009 case IrOpcode::kInt32x4Not: | |
1010 case IrOpcode::kInt32x4ShiftLeftByScalar: | |
1011 case IrOpcode::kInt32x4ShiftRightByScalar: | |
1012 case IrOpcode::kInt32x4Equal: | |
1013 case IrOpcode::kInt32x4NotEqual: | |
1014 case IrOpcode::kInt32x4LessThan: | |
1015 case IrOpcode::kInt32x4LessThanOrEqual: | |
1016 case IrOpcode::kInt32x4GreaterThan: | |
1017 case IrOpcode::kInt32x4GreaterThanOrEqual: | |
1018 case IrOpcode::kInt32x4Select: | |
1019 case IrOpcode::kInt32x4Swizzle: | |
1020 case IrOpcode::kInt32x4Shuffle: | |
1021 case IrOpcode::kInt32x4FromFloat32x4: | |
1022 case IrOpcode::kInt32x4Load1: | |
1023 case IrOpcode::kInt32x4Load2: | |
1024 case IrOpcode::kInt32x4Load3: | |
1025 case IrOpcode::kInt32x4Store1: | |
1026 case IrOpcode::kInt32x4Store2: | |
1027 case IrOpcode::kInt32x4Store3: | |
1028 case IrOpcode::kUint32x4Min: | |
1029 case IrOpcode::kUint32x4Max: | |
1030 case IrOpcode::kUint32x4ShiftLeftByScalar: | |
1031 case IrOpcode::kUint32x4ShiftRightByScalar: | |
1032 case IrOpcode::kUint32x4LessThan: | |
1033 case IrOpcode::kUint32x4LessThanOrEqual: | |
1034 case IrOpcode::kUint32x4GreaterThan: | |
1035 case IrOpcode::kUint32x4GreaterThanOrEqual: | |
1036 case IrOpcode::kUint32x4FromFloat32x4: | |
1037 case IrOpcode::kCreateBool32x4: | |
1038 case IrOpcode::kBool32x4ExtractLane: | |
1039 case IrOpcode::kBool32x4ReplaceLane: | |
1040 case IrOpcode::kBool32x4And: | |
1041 case IrOpcode::kBool32x4Or: | |
1042 case IrOpcode::kBool32x4Xor: | |
1043 case IrOpcode::kBool32x4Not: | |
1044 case IrOpcode::kBool32x4AnyTrue: | |
1045 case IrOpcode::kBool32x4AllTrue: | |
1046 case IrOpcode::kBool32x4Swizzle: | |
1047 case IrOpcode::kBool32x4Shuffle: | |
1048 case IrOpcode::kBool32x4Equal: | |
1049 case IrOpcode::kBool32x4NotEqual: | |
1050 case IrOpcode::kCreateInt16x8: | |
1051 case IrOpcode::kInt16x8ExtractLane: | |
1052 case IrOpcode::kInt16x8ReplaceLane: | |
1053 case IrOpcode::kInt16x8Neg: | |
1054 case IrOpcode::kInt16x8Add: | |
1055 case IrOpcode::kInt16x8AddSaturate: | |
1056 case IrOpcode::kInt16x8Sub: | |
1057 case IrOpcode::kInt16x8SubSaturate: | |
1058 case IrOpcode::kInt16x8Mul: | |
1059 case IrOpcode::kInt16x8Min: | |
1060 case IrOpcode::kInt16x8Max: | |
1061 case IrOpcode::kInt16x8And: | |
1062 case IrOpcode::kInt16x8Or: | |
1063 case IrOpcode::kInt16x8Xor: | |
1064 case IrOpcode::kInt16x8Not: | |
1065 case IrOpcode::kInt16x8ShiftLeftByScalar: | |
1066 case IrOpcode::kInt16x8ShiftRightByScalar: | |
1067 case IrOpcode::kInt16x8Equal: | |
1068 case IrOpcode::kInt16x8NotEqual: | |
1069 case IrOpcode::kInt16x8LessThan: | |
1070 case IrOpcode::kInt16x8LessThanOrEqual: | |
1071 case IrOpcode::kInt16x8GreaterThan: | |
1072 case IrOpcode::kInt16x8GreaterThanOrEqual: | |
1073 case IrOpcode::kInt16x8Select: | |
1074 case IrOpcode::kInt16x8Swizzle: | |
1075 case IrOpcode::kInt16x8Shuffle: | |
1076 case IrOpcode::kUint16x8AddSaturate: | |
1077 case IrOpcode::kUint16x8SubSaturate: | |
1078 case IrOpcode::kUint16x8Min: | |
1079 case IrOpcode::kUint16x8Max: | |
1080 case IrOpcode::kUint16x8ShiftLeftByScalar: | |
1081 case IrOpcode::kUint16x8ShiftRightByScalar: | |
1082 case IrOpcode::kUint16x8LessThan: | |
1083 case IrOpcode::kUint16x8LessThanOrEqual: | |
1084 case IrOpcode::kUint16x8GreaterThan: | |
1085 case IrOpcode::kUint16x8GreaterThanOrEqual: | |
1086 case IrOpcode::kCreateBool16x8: | |
1087 case IrOpcode::kBool16x8ExtractLane: | |
1088 case IrOpcode::kBool16x8ReplaceLane: | |
1089 case IrOpcode::kBool16x8And: | |
1090 case IrOpcode::kBool16x8Or: | |
1091 case IrOpcode::kBool16x8Xor: | |
1092 case IrOpcode::kBool16x8Not: | |
1093 case IrOpcode::kBool16x8AnyTrue: | |
1094 case IrOpcode::kBool16x8AllTrue: | |
1095 case IrOpcode::kBool16x8Swizzle: | |
1096 case IrOpcode::kBool16x8Shuffle: | |
1097 case IrOpcode::kBool16x8Equal: | |
1098 case IrOpcode::kBool16x8NotEqual: | |
1099 case IrOpcode::kCreateInt8x16: | |
1100 case IrOpcode::kInt8x16ExtractLane: | |
1101 case IrOpcode::kInt8x16ReplaceLane: | |
1102 case IrOpcode::kInt8x16Neg: | |
1103 case IrOpcode::kInt8x16Add: | |
1104 case IrOpcode::kInt8x16AddSaturate: | |
1105 case IrOpcode::kInt8x16Sub: | |
1106 case IrOpcode::kInt8x16SubSaturate: | |
1107 case IrOpcode::kInt8x16Mul: | |
1108 case IrOpcode::kInt8x16Min: | |
1109 case IrOpcode::kInt8x16Max: | |
1110 case IrOpcode::kInt8x16And: | |
1111 case IrOpcode::kInt8x16Or: | |
1112 case IrOpcode::kInt8x16Xor: | |
1113 case IrOpcode::kInt8x16Not: | |
1114 case IrOpcode::kInt8x16ShiftLeftByScalar: | |
1115 case IrOpcode::kInt8x16ShiftRightByScalar: | |
1116 case IrOpcode::kInt8x16Equal: | |
1117 case IrOpcode::kInt8x16NotEqual: | |
1118 case IrOpcode::kInt8x16LessThan: | |
1119 case IrOpcode::kInt8x16LessThanOrEqual: | |
1120 case IrOpcode::kInt8x16GreaterThan: | |
1121 case IrOpcode::kInt8x16GreaterThanOrEqual: | |
1122 case IrOpcode::kInt8x16Select: | |
1123 case IrOpcode::kInt8x16Swizzle: | |
1124 case IrOpcode::kInt8x16Shuffle: | |
1125 case IrOpcode::kUint8x16AddSaturate: | |
1126 case IrOpcode::kUint8x16SubSaturate: | |
1127 case IrOpcode::kUint8x16Min: | |
1128 case IrOpcode::kUint8x16Max: | |
1129 case IrOpcode::kUint8x16ShiftLeftByScalar: | |
1130 case IrOpcode::kUint8x16ShiftRightByScalar: | |
1131 case IrOpcode::kUint8x16LessThan: | |
1132 case IrOpcode::kUint8x16LessThanOrEqual: | |
1133 case IrOpcode::kUint8x16GreaterThan: | |
1134 case IrOpcode::kUint8x16GreaterThanOrEqual: | |
1135 case IrOpcode::kCreateBool8x16: | |
1136 case IrOpcode::kBool8x16ExtractLane: | |
1137 case IrOpcode::kBool8x16ReplaceLane: | |
1138 case IrOpcode::kBool8x16And: | |
1139 case IrOpcode::kBool8x16Or: | |
1140 case IrOpcode::kBool8x16Xor: | |
1141 case IrOpcode::kBool8x16Not: | |
1142 case IrOpcode::kBool8x16AnyTrue: | |
1143 case IrOpcode::kBool8x16AllTrue: | |
1144 case IrOpcode::kBool8x16Swizzle: | |
1145 case IrOpcode::kBool8x16Shuffle: | |
1146 case IrOpcode::kBool8x16Equal: | |
1147 case IrOpcode::kBool8x16NotEqual: | |
964 // TODO(rossberg): Check. | 1148 // TODO(rossberg): Check. |
965 break; | 1149 break; |
966 } | 1150 } |
967 } // NOLINT(readability/fn_size) | 1151 } // NOLINT(readability/fn_size) |
968 | 1152 |
969 | 1153 |
970 void Verifier::Run(Graph* graph, Typing typing) { | 1154 void Verifier::Run(Graph* graph, Typing typing) { |
971 CHECK_NOT_NULL(graph->start()); | 1155 CHECK_NOT_NULL(graph->start()); |
972 CHECK_NOT_NULL(graph->end()); | 1156 CHECK_NOT_NULL(graph->end()); |
973 Zone zone; | 1157 Zone zone; |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1284 replacement->op()->EffectOutputCount() > 0); | 1468 replacement->op()->EffectOutputCount() > 0); |
1285 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || | 1469 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || |
1286 replacement->opcode() == IrOpcode::kFrameState); | 1470 replacement->opcode() == IrOpcode::kFrameState); |
1287 } | 1471 } |
1288 | 1472 |
1289 #endif // DEBUG | 1473 #endif // DEBUG |
1290 | 1474 |
1291 } // namespace compiler | 1475 } // namespace compiler |
1292 } // namespace internal | 1476 } // namespace internal |
1293 } // namespace v8 | 1477 } // namespace v8 |
OLD | NEW |