Chromium Code Reviews| 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 |