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/base/flags.h" | 5 #include "src/base/flags.h" |
6 #include "src/bootstrapper.h" | 6 #include "src/bootstrapper.h" |
7 #include "src/compiler/graph-reducer.h" | 7 #include "src/compiler/graph-reducer.h" |
8 #include "src/compiler/js-operator.h" | 8 #include "src/compiler/js-operator.h" |
9 #include "src/compiler/node.h" | 9 #include "src/compiler/node.h" |
10 #include "src/compiler/node-properties.h" | 10 #include "src/compiler/node-properties.h" |
(...skipping 1766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1777 | 1777 |
1778 | 1778 |
1779 Bounds Typer::Visitor::TypeChangeBitToBool(Node* node) { | 1779 Bounds Typer::Visitor::TypeChangeBitToBool(Node* node) { |
1780 Bounds arg = Operand(node, 0); | 1780 Bounds arg = Operand(node, 0); |
1781 // TODO(neis): DCHECK(arg.upper->Is(Type::Boolean())); | 1781 // TODO(neis): DCHECK(arg.upper->Is(Type::Boolean())); |
1782 return Bounds(ChangeRepresentation(arg.lower, Type::TaggedPointer(), zone()), | 1782 return Bounds(ChangeRepresentation(arg.lower, Type::TaggedPointer(), zone()), |
1783 ChangeRepresentation(arg.upper, Type::TaggedPointer(), zone())); | 1783 ChangeRepresentation(arg.upper, Type::TaggedPointer(), zone())); |
1784 } | 1784 } |
1785 | 1785 |
1786 | 1786 |
| 1787 Bounds Typer::Visitor::TypeAllocate(Node* node) { |
| 1788 return Bounds(Type::TaggedPointer()); |
| 1789 } |
| 1790 |
| 1791 |
1787 Bounds Typer::Visitor::TypeLoadField(Node* node) { | 1792 Bounds Typer::Visitor::TypeLoadField(Node* node) { |
1788 return Bounds(FieldAccessOf(node->op()).type); | 1793 return Bounds(FieldAccessOf(node->op()).type); |
1789 } | 1794 } |
1790 | 1795 |
1791 | 1796 |
1792 Bounds Typer::Visitor::TypeLoadBuffer(Node* node) { | 1797 Bounds Typer::Visitor::TypeLoadBuffer(Node* node) { |
1793 // TODO(bmeurer): This typing is not yet correct. Since we can still access | 1798 // TODO(bmeurer): This typing is not yet correct. Since we can still access |
1794 // out of bounds, the type in the general case has to include Undefined. | 1799 // out of bounds, the type in the general case has to include Undefined. |
1795 switch (BufferAccessOf(node->op()).external_array_type()) { | 1800 switch (BufferAccessOf(node->op()).external_array_type()) { |
1796 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ | 1801 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2361 TYPED_ARRAYS(TYPED_ARRAY_CASE) | 2366 TYPED_ARRAYS(TYPED_ARRAY_CASE) |
2362 #undef TYPED_ARRAY_CASE | 2367 #undef TYPED_ARRAY_CASE |
2363 } | 2368 } |
2364 } | 2369 } |
2365 return Type::Constant(value, zone()); | 2370 return Type::Constant(value, zone()); |
2366 } | 2371 } |
2367 | 2372 |
2368 } // namespace compiler | 2373 } // namespace compiler |
2369 } // namespace internal | 2374 } // namespace internal |
2370 } // namespace v8 | 2375 } // namespace v8 |
OLD | NEW |