OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 #if !defined(DART_PRECOMPILED_RUNTIME) | 4 #if !defined(DART_PRECOMPILED_RUNTIME) |
5 #include "vm/flow_graph_inliner.h" | 5 #include "vm/flow_graph_inliner.h" |
6 | 6 |
7 #include "vm/aot_optimizer.h" | 7 #include "vm/aot_optimizer.h" |
8 #include "vm/precompiler.h" | 8 #include "vm/precompiler.h" |
9 #include "vm/block_scheduler.h" | 9 #include "vm/block_scheduler.h" |
10 #include "vm/branch_optimizer.h" | 10 #include "vm/branch_optimizer.h" |
(...skipping 2215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2226 case kTypedDataFloat64ArrayCid: { | 2226 case kTypedDataFloat64ArrayCid: { |
2227 type_args = flow_graph->constant_null(); | 2227 type_args = flow_graph->constant_null(); |
2228 ASSERT((array_cid != kTypedDataFloat32ArrayCid && | 2228 ASSERT((array_cid != kTypedDataFloat32ArrayCid && |
2229 array_cid != kTypedDataFloat64ArrayCid) || | 2229 array_cid != kTypedDataFloat64ArrayCid) || |
2230 value_type.IsDoubleType()); | 2230 value_type.IsDoubleType()); |
2231 ASSERT(value_type.IsInstantiated()); | 2231 ASSERT(value_type.IsInstantiated()); |
2232 break; | 2232 break; |
2233 } | 2233 } |
2234 case kTypedDataFloat32x4ArrayCid: { | 2234 case kTypedDataFloat32x4ArrayCid: { |
2235 type_args = flow_graph->constant_null(); | 2235 type_args = flow_graph->constant_null(); |
2236 ASSERT((array_cid != kTypedDataFloat32x4ArrayCid) || | 2236 ASSERT(value_type.IsFloat32x4Type()); |
2237 value_type.IsFloat32x4Type()); | |
2238 ASSERT(value_type.IsInstantiated()); | 2237 ASSERT(value_type.IsInstantiated()); |
2239 break; | 2238 break; |
2240 } | 2239 } |
2241 case kTypedDataFloat64x2ArrayCid: { | 2240 case kTypedDataFloat64x2ArrayCid: { |
2242 type_args = flow_graph->constant_null(); | 2241 type_args = flow_graph->constant_null(); |
2243 ASSERT((array_cid != kTypedDataFloat64x2ArrayCid) || | 2242 ASSERT(value_type.IsFloat64x2Type()); |
2244 value_type.IsFloat64x2Type()); | |
2245 ASSERT(value_type.IsInstantiated()); | 2243 ASSERT(value_type.IsInstantiated()); |
2246 break; | 2244 break; |
2247 } | 2245 } |
2248 default: | 2246 default: |
2249 // TODO(fschneider): Add support for other array types. | 2247 // TODO(fschneider): Add support for other array types. |
2250 UNREACHABLE(); | 2248 UNREACHABLE(); |
2251 } | 2249 } |
2252 AssertAssignableInstr* assert_value = new (Z) AssertAssignableInstr( | 2250 AssertAssignableInstr* assert_value = new (Z) AssertAssignableInstr( |
2253 token_pos, new (Z) Value(stored_value), new (Z) Value(type_args), | 2251 token_pos, new (Z) Value(stored_value), new (Z) Value(type_args), |
2254 value_type, Symbols::Value(), call->deopt_id()); | 2252 value_type, Symbols::Value(), call->deopt_id()); |
(...skipping 1378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3633 } | 3631 } |
3634 | 3632 |
3635 default: | 3633 default: |
3636 return false; | 3634 return false; |
3637 } | 3635 } |
3638 } | 3636 } |
3639 | 3637 |
3640 | 3638 |
3641 } // namespace dart | 3639 } // namespace dart |
3642 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 3640 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
OLD | NEW |