| Index: runtime/vm/flow_graph_optimizer.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_optimizer.cc (revision 41393)
|
| +++ runtime/vm/flow_graph_optimizer.cc (working copy)
|
| @@ -5140,8 +5140,7 @@
|
| static bool IsLoadEliminationCandidate(Instruction* instr) {
|
| return instr->IsLoadField()
|
| || instr->IsLoadIndexed()
|
| - || instr->IsLoadStaticField()
|
| - || instr->IsCurrentContext();
|
| + || instr->IsLoadStaticField();
|
| }
|
|
|
|
|
| @@ -5284,9 +5283,6 @@
|
|
|
| // Indexed location with a constant index.
|
| kConstantIndexed,
|
| -
|
| - // Current context.
|
| - kContext
|
| };
|
|
|
| Place(const Place& other)
|
| @@ -5373,21 +5369,6 @@
|
| break;
|
| }
|
|
|
| - case Instruction::kCurrentContext:
|
| - kind_ = kContext;
|
| - ASSERT(instr->AsCurrentContext()->representation() == kTagged);
|
| - representation_ = kTagged;
|
| - *is_load = true;
|
| - break;
|
| -
|
| - case Instruction::kStoreContext:
|
| - kind_ = kContext;
|
| - ASSERT(instr->AsStoreContext()->RequiredInputRepresentation(
|
| - StoreContextInstr::kValuePos) == kTagged);
|
| - representation_ = kTagged;
|
| - *is_store = true;
|
| - break;
|
| -
|
| default:
|
| break;
|
| }
|
| @@ -5427,7 +5408,6 @@
|
| case kConstantIndexed:
|
| return true;
|
|
|
| - case kContext:
|
| case kNone:
|
| return false;
|
| }
|
| @@ -5527,9 +5507,6 @@
|
| "<%s[%" Pd "]>",
|
| DefinitionName(instance()),
|
| index_constant());
|
| -
|
| - case kContext:
|
| - return "<context>";
|
| }
|
| UNREACHABLE();
|
| return "<?>";
|
| @@ -5956,10 +5933,8 @@
|
| // X.f or X.@offs alias with *.f and *.@offs respectively.
|
| CrossAlias(alias, alias->CopyWithoutInstance());
|
| }
|
| + break;
|
|
|
| - case Place::kContext:
|
| - return;
|
| -
|
| case Place::kNone:
|
| UNREACHABLE();
|
| }
|
| @@ -6158,10 +6133,6 @@
|
| return store_static_field->value()->definition();
|
| }
|
|
|
| - if (instr->IsStoreContext()) {
|
| - return instr->InputAt(0)->definition();
|
| - }
|
| -
|
| UNREACHABLE(); // Should only be called for supported store instructions.
|
| return NULL;
|
| }
|
| @@ -7225,7 +7196,6 @@
|
| // Can't eliminate stores that initialized unboxed fields.
|
| return false;
|
| }
|
| - case Instruction::kStoreContext:
|
| case Instruction::kStoreIndexed:
|
| case Instruction::kStoreStaticField:
|
| return true;
|
| @@ -7765,9 +7735,6 @@
|
| // --------------------------------------------------------------------------
|
| // Analysis of non-definition instructions. They do not have values so they
|
| // cannot have constant values.
|
| -void ConstantPropagator::VisitStoreContext(StoreContextInstr* instr) { }
|
| -
|
| -
|
| void ConstantPropagator::VisitCheckStackOverflow(
|
| CheckStackOverflowInstr* instr) { }
|
|
|
|
|