| Index: runtime/vm/flow_graph_type_propagator.cc
|
| diff --git a/runtime/vm/flow_graph_type_propagator.cc b/runtime/vm/flow_graph_type_propagator.cc
|
| index 0d646b873fe13ff5d5894b33226e08d522901908..2b7001f656104549b25930aefbf2c9124cc4f30f 100644
|
| --- a/runtime/vm/flow_graph_type_propagator.cc
|
| +++ b/runtime/vm/flow_graph_type_propagator.cc
|
| @@ -149,7 +149,7 @@ void FlowGraphTypePropagator::PropagateRecursive(BlockEntryInstr* block) {
|
| }
|
| }
|
|
|
| - HandleBranchOnStrictCompare(block);
|
| + HandleBranchOnNull(block);
|
|
|
| for (intptr_t i = 0; i < block->dominated_blocks().length(); ++i) {
|
| PropagateRecursive(block->dominated_blocks()[i]);
|
| @@ -159,8 +159,7 @@ void FlowGraphTypePropagator::PropagateRecursive(BlockEntryInstr* block) {
|
| }
|
|
|
|
|
| -void FlowGraphTypePropagator::HandleBranchOnStrictCompare(
|
| - BlockEntryInstr* block) {
|
| +void FlowGraphTypePropagator::HandleBranchOnNull(BlockEntryInstr* block) {
|
| BranchInstr* branch = block->last_instruction()->AsBranch();
|
| if (branch == NULL) {
|
| return;
|
| @@ -319,9 +318,7 @@ void FlowGraphTypePropagator::VisitCheckClassId(CheckClassIdInstr* check) {
|
| void FlowGraphTypePropagator::VisitGuardFieldClass(
|
| GuardFieldClassInstr* guard) {
|
| const intptr_t cid = guard->field().guarded_cid();
|
| - if ((cid == kIllegalCid) ||
|
| - (cid == kDynamicCid) ||
|
| - !CheckClassInstr::IsImmutableClassId(cid)) {
|
| + if ((cid == kIllegalCid) || (cid == kDynamicCid)) {
|
| return;
|
| }
|
|
|
| @@ -797,17 +794,13 @@ CompileType ConstantInstr::ComputeType() const {
|
| return CompileType::Null();
|
| }
|
|
|
| - intptr_t cid = value().GetClassId();
|
| - if (!CheckClassInstr::IsImmutableClassId(cid)) {
|
| - cid = kDynamicCid;
|
| - }
|
| -
|
| if (value().IsInstance()) {
|
| - return CompileType::Create(cid,
|
| + return CompileType::Create(
|
| + value().GetClassId(),
|
| AbstractType::ZoneHandle(Instance::Cast(value()).GetType()));
|
| } else {
|
| // Type info for non-instance objects.
|
| - return CompileType::FromCid(cid);
|
| + return CompileType::FromCid(value().GetClassId());
|
| }
|
| }
|
|
|
| @@ -981,9 +974,6 @@ CompileType LoadStaticFieldInstr::ComputeType() const {
|
| cid = obj.GetClassId();
|
| }
|
| }
|
| - if (!CheckClassInstr::IsImmutableClassId(cid)) {
|
| - cid = kDynamicCid;
|
| - }
|
| return CompileType(is_nullable, cid, abstract_type);
|
| }
|
|
|
|
|