Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Unified Diff: runtime/vm/flow_graph_optimizer.cc

Issue 13004017: More preparation for removal of dart:scalarlist (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/flow_graph_compiler.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_optimizer.cc
===================================================================
--- runtime/vm/flow_graph_optimizer.cc (revision 20570)
+++ runtime/vm/flow_graph_optimizer.cc (working copy)
@@ -816,9 +816,7 @@
case kTypedDataFloat32ArrayCid:
case kTypedDataFloat64ArrayCid: {
type_args = instantiator = flow_graph_->constant_null();
- ASSERT((class_id != kFloat32ArrayCid &&
- class_id != kFloat64ArrayCid &&
- class_id != kTypedDataFloat32ArrayCid &&
+ ASSERT((class_id != kTypedDataFloat32ArrayCid &&
class_id != kTypedDataFloat64ArrayCid) ||
value_type.IsDoubleType());
ASSERT(value_type.IsInstantiated());
@@ -845,9 +843,10 @@
intptr_t array_cid = PrepareIndexedOp(call, class_id, &array, &index);
// Check if store barrier is needed. Byte arrays don't need a store barrier.
StoreBarrierType needs_store_barrier =
- RawObject::IsByteArrayClassId(array_cid)
- ? kNoStoreBarrier
- : kEmitStoreBarrier;
+ (RawObject::IsTypedDataClassId(array_cid) ||
+ RawObject::IsTypedDataViewClassId(array_cid) ||
+ RawObject::IsExternalTypedDataClassId(array_cid)) ? kNoStoreBarrier
+ : kEmitStoreBarrier;
if (!value_check.IsNull()) {
// No store barrier needed because checked value is a smi, an unboxed mint
// or unboxed double.
@@ -1623,7 +1622,8 @@
// loads on ia32 like we do for normal array loads, and only revert to
// mint case after deoptimizing here.
intptr_t deopt_id = Isolate::kNoDeoptId;
- if ((view_cid == kInt32ArrayCid || view_cid == kUint32ArrayCid) &&
+ if ((view_cid == kTypedDataInt32ArrayCid ||
+ view_cid == kTypedDataUint32ArrayCid) &&
call->ic_data()->deopt_reason() == kDeoptUnknown) {
deopt_id = call->deopt_id();
}
@@ -3115,7 +3115,7 @@
StoreIndexedInstr* array_store = instr->AsStoreIndexed();
if (array_store == NULL ||
array_store->class_id() == kArrayCid ||
- array_store->class_id() == kFloat64ArrayCid) {
+ array_store->class_id() == kTypedDataFloat64ArrayCid) {
Definition* load = map_->Lookup(instr->AsDefinition());
if (load != NULL) {
// Store has a corresponding numbered load. Try forwarding
« no previous file with comments | « runtime/vm/flow_graph_compiler.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698