OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_CRANKSHAFT_HYDROGEN_H_ | 5 #ifndef V8_CRANKSHAFT_HYDROGEN_H_ |
6 #define V8_CRANKSHAFT_HYDROGEN_H_ | 6 #define V8_CRANKSHAFT_HYDROGEN_H_ |
7 | 7 |
8 #include "src/accessors.h" | 8 #include "src/accessors.h" |
9 #include "src/allocation.h" | 9 #include "src/allocation.h" |
10 #include "src/ast/ast-type-bounds.h" | 10 #include "src/ast/ast-type-bounds.h" |
(...skipping 2438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2449 PropertyAccessInfo(HOptimizedGraphBuilder* builder, | 2449 PropertyAccessInfo(HOptimizedGraphBuilder* builder, |
2450 PropertyAccessType access_type, Handle<Map> map, | 2450 PropertyAccessType access_type, Handle<Map> map, |
2451 Handle<Name> name) | 2451 Handle<Name> name) |
2452 : builder_(builder), | 2452 : builder_(builder), |
2453 access_type_(access_type), | 2453 access_type_(access_type), |
2454 map_(map), | 2454 map_(map), |
2455 name_(isolate()->factory()->InternalizeName(name)), | 2455 name_(isolate()->factory()->InternalizeName(name)), |
2456 field_type_(HType::Tagged()), | 2456 field_type_(HType::Tagged()), |
2457 access_(HObjectAccess::ForMap()), | 2457 access_(HObjectAccess::ForMap()), |
2458 lookup_type_(NOT_FOUND), | 2458 lookup_type_(NOT_FOUND), |
2459 details_(NONE, DATA, Representation::None()) {} | 2459 details_(PropertyDetails::Empty()) {} |
2460 | 2460 |
2461 // Checkes whether this PropertyAccessInfo can be handled as a monomorphic | 2461 // Checkes whether this PropertyAccessInfo can be handled as a monomorphic |
2462 // load named. It additionally fills in the fields necessary to generate the | 2462 // load named. It additionally fills in the fields necessary to generate the |
2463 // lookup code. | 2463 // lookup code. |
2464 bool CanAccessMonomorphic(); | 2464 bool CanAccessMonomorphic(); |
2465 | 2465 |
2466 // Checks whether all types behave uniform when loading name. If all maps | 2466 // Checks whether all types behave uniform when loading name. If all maps |
2467 // behave the same, a single monomorphic load instruction can be emitted, | 2467 // behave the same, a single monomorphic load instruction can be emitted, |
2468 // guarded by a single map-checks instruction that whether the receiver is | 2468 // guarded by a single map-checks instruction that whether the receiver is |
2469 // an instance of any of the types. | 2469 // an instance of any of the types. |
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2982 } | 2982 } |
2983 | 2983 |
2984 private: | 2984 private: |
2985 HOptimizedGraphBuilder* builder_; | 2985 HOptimizedGraphBuilder* builder_; |
2986 }; | 2986 }; |
2987 | 2987 |
2988 } // namespace internal | 2988 } // namespace internal |
2989 } // namespace v8 | 2989 } // namespace v8 |
2990 | 2990 |
2991 #endif // V8_CRANKSHAFT_HYDROGEN_H_ | 2991 #endif // V8_CRANKSHAFT_HYDROGEN_H_ |
OLD | NEW |