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 <deque> | 7 #include <deque> |
8 #include <queue> | 8 #include <queue> |
9 | 9 |
10 #include "src/compiler/generic-algorithm.h" | 10 #include "src/compiler/generic-algorithm.h" |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 // Type can be anything. | 217 // Type can be anything. |
218 CHECK(bounds(node).upper->Is(Type::Any())); | 218 CHECK(bounds(node).upper->Is(Type::Any())); |
219 break; | 219 break; |
220 } | 220 } |
221 case IrOpcode::kInt32Constant: // TODO(rossberg): rename Word32Constant? | 221 case IrOpcode::kInt32Constant: // TODO(rossberg): rename Word32Constant? |
222 // Constants have no inputs. | 222 // Constants have no inputs. |
223 CHECK_EQ(0, input_count); | 223 CHECK_EQ(0, input_count); |
224 // Type is a 32 bit integer, signed or unsigned. | 224 // Type is a 32 bit integer, signed or unsigned. |
225 CHECK(bounds(node).upper->Is(Type::Integral32())); | 225 CHECK(bounds(node).upper->Is(Type::Integral32())); |
226 break; | 226 break; |
227 case IrOpcode::kInt64Constant: // Close enough... | 227 case IrOpcode::kInt64Constant: |
| 228 // Constants have no inputs. |
| 229 CHECK_EQ(0, input_count); |
| 230 // Type is internal. |
| 231 // TODO(rossberg): Introduce proper Int64 type. |
| 232 CHECK(bounds(node).upper->Is(Type::Internal())); |
| 233 break; |
228 case IrOpcode::kFloat32Constant: | 234 case IrOpcode::kFloat32Constant: |
229 case IrOpcode::kFloat64Constant: | 235 case IrOpcode::kFloat64Constant: |
230 case IrOpcode::kNumberConstant: | 236 case IrOpcode::kNumberConstant: |
231 // Constants have no inputs. | 237 // Constants have no inputs. |
232 CHECK_EQ(0, input_count); | 238 CHECK_EQ(0, input_count); |
233 // Type is a number. | 239 // Type is a number. |
234 CHECK(bounds(node).upper->Is(Type::Number())); | 240 CHECK(bounds(node).upper->Is(Type::Number())); |
235 break; | 241 break; |
236 case IrOpcode::kHeapConstant: | 242 case IrOpcode::kHeapConstant: |
237 // Constants have no inputs. | 243 // Constants have no inputs. |
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
896 // Check inputs for all nodes in the block. | 902 // Check inputs for all nodes in the block. |
897 for (size_t i = 0; i < block->NodeCount(); i++) { | 903 for (size_t i = 0; i < block->NodeCount(); i++) { |
898 Node* node = block->NodeAt(i); | 904 Node* node = block->NodeAt(i); |
899 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); | 905 CheckInputsDominate(schedule, block, node, static_cast<int>(i) - 1); |
900 } | 906 } |
901 } | 907 } |
902 } | 908 } |
903 } | 909 } |
904 } | 910 } |
905 } // namespace v8::internal::compiler | 911 } // namespace v8::internal::compiler |
OLD | NEW |