| Index: runtime/vm/flow_graph_optimizer.cc | 
| =================================================================== | 
| --- runtime/vm/flow_graph_optimizer.cc	(revision 36349) | 
| +++ runtime/vm/flow_graph_optimizer.cc	(working copy) | 
| @@ -321,7 +321,7 @@ | 
| Isolate::kNoDeoptId, | 
| instr->token_pos()); | 
| instr->ReplaceUsesWith(load); | 
| -  flow_graph()->InsertAfter(instr, load, NULL, Definition::kValue); | 
| +  flow_graph()->InsertAfter(instr, load, NULL, FlowGraph::kValue); | 
| } | 
|  | 
|  | 
| @@ -334,7 +334,7 @@ | 
| rep, | 
| cid); | 
| instr->ReplaceUsesWith(extract); | 
| -  flow_graph()->InsertAfter(instr, extract, NULL, Definition::kValue); | 
| +  flow_graph()->InsertAfter(instr, extract, NULL, FlowGraph::kValue); | 
| } | 
|  | 
|  | 
| @@ -616,7 +616,7 @@ | 
| // TODO(fschneider): Implement direct unboxed mint-to-double conversion. | 
| BoxIntegerInstr* boxed = new BoxIntegerInstr(use->CopyWithType()); | 
| use->BindTo(boxed); | 
| -    InsertBefore(insert_before, boxed, NULL, Definition::kValue); | 
| +    InsertBefore(insert_before, boxed, NULL, FlowGraph::kValue); | 
|  | 
| const intptr_t deopt_id = (deopt_target != NULL) ? | 
| deopt_target->DeoptimizationTarget() : Isolate::kNoDeoptId; | 
| @@ -688,7 +688,7 @@ | 
| UNIMPLEMENTED(); | 
| } | 
| use->BindTo(boxed); | 
| -    InsertBefore(insert_before, boxed, NULL, Definition::kValue); | 
| +    InsertBefore(insert_before, boxed, NULL, FlowGraph::kValue); | 
| Value* to_value = new Value(boxed); | 
| if (to == kUnboxedDouble) { | 
| converted = new UnboxDoubleInstr(to_value, deopt_id); | 
| @@ -706,7 +706,7 @@ | 
| } | 
| ASSERT(converted != NULL); | 
| InsertBefore(insert_before, converted, use->instruction()->env(), | 
| -               Definition::kValue); | 
| +               FlowGraph::kValue); | 
| if (is_environment_use) { | 
| use->BindToEnvironment(converted); | 
| } else { | 
| @@ -984,7 +984,7 @@ | 
| deopt_id, | 
| insert_before->token_pos()), | 
| deopt_environment, | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| } | 
| } | 
|  | 
| @@ -1012,7 +1012,7 @@ | 
| // Type propagation has not run yet, we cannot eliminate the check. | 
| Instruction* check = GetCheckClass( | 
| to_check, unary_checks, deopt_id, insert_before->token_pos()); | 
| -  InsertBefore(insert_before, check, deopt_environment, Definition::kEffect); | 
| +  InsertBefore(insert_before, check, deopt_environment, FlowGraph::kEffect); | 
| } | 
|  | 
|  | 
| @@ -1207,7 +1207,7 @@ | 
| cursor = flow_graph()->AppendTo(cursor, | 
| load_type_args, | 
| NULL, | 
| -                                        Definition::kValue); | 
| +                                        FlowGraph::kValue); | 
|  | 
| instantiator = array; | 
| type_args = load_type_args; | 
| @@ -1265,7 +1265,7 @@ | 
| cursor = flow_graph()->AppendTo(cursor, | 
| assert_value, | 
| call->env(), | 
| -                                    Definition::kValue); | 
| +                                    FlowGraph::kValue); | 
| } | 
|  | 
| array_cid = PrepareInlineIndexedOp(call, | 
| @@ -1289,7 +1289,7 @@ | 
| cursor = flow_graph()->AppendTo(cursor, | 
| check, | 
| call->env(), | 
| -                                    Definition::kEffect); | 
| +                                    FlowGraph::kEffect); | 
| } | 
|  | 
| if (array_cid == kTypedDataFloat32ArrayCid) { | 
| @@ -1298,7 +1298,7 @@ | 
| cursor = flow_graph()->AppendTo(cursor, | 
| stored_value, | 
| NULL, | 
| -                                    Definition::kValue); | 
| +                                    FlowGraph::kValue); | 
| } | 
|  | 
| intptr_t index_scale = FlowGraphCompiler::ElementSizeFor(array_cid); | 
| @@ -1313,7 +1313,7 @@ | 
| flow_graph()->AppendTo(cursor, | 
| *last, | 
| call->env(), | 
| -                         Definition::kEffect); | 
| +                         FlowGraph::kEffect); | 
| return true; | 
| } | 
|  | 
| @@ -1567,7 +1567,7 @@ | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                                   Definition::kEffect); | 
| +                                   FlowGraph::kEffect); | 
|  | 
| // Insert array length load and bounds check. | 
| LoadFieldInstr* length = | 
| @@ -1583,7 +1583,7 @@ | 
| *cursor = flow_graph()->AppendTo(*cursor, | 
| length, | 
| NULL, | 
| -                                   Definition::kValue); | 
| +                                   FlowGraph::kValue); | 
|  | 
| *cursor = flow_graph()->AppendTo(*cursor, | 
| new CheckArrayBoundInstr( | 
| @@ -1591,7 +1591,7 @@ | 
| new Value(index), | 
| call->deopt_id()), | 
| call->env(), | 
| -                                   Definition::kEffect); | 
| +                                   FlowGraph::kEffect); | 
|  | 
| if (array_cid == kGrowableObjectArrayCid) { | 
| // Insert data elements load. | 
| @@ -1604,7 +1604,7 @@ | 
| *cursor = flow_graph()->AppendTo(*cursor, | 
| elements, | 
| NULL, | 
| -                                     Definition::kValue); | 
| +                                     FlowGraph::kValue); | 
| // Load from the data from backing store which is a fixed-length array. | 
| *array = elements; | 
| array_cid = kArrayCid; | 
| @@ -1615,7 +1615,7 @@ | 
| *cursor = flow_graph()->AppendTo(*cursor, | 
| elements, | 
| NULL, | 
| -                                     Definition::kValue); | 
| +                                     FlowGraph::kValue); | 
| *array = elements; | 
| } | 
| return array_cid; | 
| @@ -1664,14 +1664,14 @@ | 
| cursor, | 
| *last, | 
| deopt_id != Isolate::kNoDeoptId ? call->env() : NULL, | 
| -      Definition::kValue); | 
| +      FlowGraph::kValue); | 
|  | 
| if (array_cid == kTypedDataFloat32ArrayCid) { | 
| *last = new FloatToDoubleInstr(new Value(*last), deopt_id); | 
| flow_graph()->AppendTo(cursor, | 
| *last, | 
| deopt_id != Isolate::kNoDeoptId ? call->env() : NULL, | 
| -                           Definition::kValue); | 
| +                           FlowGraph::kValue); | 
| } | 
| return true; | 
| } | 
| @@ -1795,7 +1795,7 @@ | 
| // string is not of length one. | 
| StringToCharCodeInstr* char_code_right = | 
| new StringToCharCodeInstr(new Value(right), kOneByteStringCid); | 
| -      InsertBefore(call, char_code_right, call->env(), Definition::kValue); | 
| +      InsertBefore(call, char_code_right, call->env(), FlowGraph::kValue); | 
| right_val = new Value(char_code_right); | 
| } | 
|  | 
| @@ -1850,13 +1850,13 @@ | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| InsertBefore(call, | 
| new CheckSmiInstr(new Value(right), | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| cid = kSmiCid; | 
| } else if (HasTwoMintOrSmi(ic_data) && | 
| FlowGraphCompiler::SupportsUnboxedMints()) { | 
| @@ -1876,7 +1876,7 @@ | 
| new Value(right), | 
| call->deopt_id()), | 
| call->env(), | 
| -                     Definition::kEffect); | 
| +                     FlowGraph::kEffect); | 
| cid = kDoubleCid; | 
| } | 
| } | 
| @@ -1952,13 +1952,13 @@ | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| InsertBefore(call, | 
| new CheckSmiInstr(new Value(right), | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| cid = kSmiCid; | 
| } else if (HasTwoMintOrSmi(ic_data) && | 
| FlowGraphCompiler::SupportsUnboxedMints()) { | 
| @@ -1978,7 +1978,7 @@ | 
| new Value(right), | 
| call->deopt_id()), | 
| call->env(), | 
| -                     Definition::kEffect); | 
| +                     FlowGraph::kEffect); | 
| cid = kDoubleCid; | 
| } | 
| } | 
| @@ -2128,7 +2128,7 @@ | 
| new Value(right), | 
| call->deopt_id()), | 
| call->env(), | 
| -                   Definition::kEffect); | 
| +                   FlowGraph::kEffect); | 
| } | 
|  | 
| BinaryDoubleOpInstr* double_bin_op = | 
| @@ -2166,7 +2166,7 @@ | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                     Definition::kEffect); | 
| +                     FlowGraph::kEffect); | 
| ConstantInstr* constant = | 
| flow_graph()->GetConstant(Smi::Handle( | 
| Smi::New(Smi::Cast(obj).Value() - 1))); | 
| @@ -2221,7 +2221,7 @@ | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| unary_op = new UnarySmiOpInstr(op_kind, new Value(input), call->deopt_id()); | 
| } else if ((op_kind == Token::kBIT_NOT) && | 
| HasOnlySmiOrMint(*call->ic_data()) && | 
| @@ -2708,18 +2708,18 @@ | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                                  Definition::kEffect); | 
| +                                  FlowGraph::kEffect); | 
|  | 
| // Load the length of the string. | 
| LoadFieldInstr* length = BuildLoadStringLength(str); | 
| -  cursor = flow_graph()->AppendTo(cursor, length, NULL, Definition::kValue); | 
| +  cursor = flow_graph()->AppendTo(cursor, length, NULL, FlowGraph::kValue); | 
| // Bounds check. | 
| cursor = flow_graph()->AppendTo(cursor, | 
| new CheckArrayBoundInstr(new Value(length), | 
| new Value(index), | 
| call->deopt_id()), | 
| call->env(), | 
| -                                   Definition::kEffect); | 
| +                                   FlowGraph::kEffect); | 
|  | 
| LoadIndexedInstr* load_indexed = new LoadIndexedInstr( | 
| new Value(str), | 
| @@ -2732,7 +2732,7 @@ | 
| cursor = flow_graph()->AppendTo(cursor, | 
| load_indexed, | 
| NULL, | 
| -                                  Definition::kValue); | 
| +                                  FlowGraph::kValue); | 
| ASSERT(cursor == load_indexed); | 
| return load_indexed; | 
| } | 
| @@ -2782,7 +2782,7 @@ | 
| StringFromCharCodeInstr* char_at = | 
| new StringFromCharCodeInstr(new Value(*last), cid); | 
|  | 
| -  flow_graph()->AppendTo(*last, char_at, NULL, Definition::kValue); | 
| +  flow_graph()->AppendTo(*last, char_at, NULL, FlowGraph::kValue); | 
| *last = char_at; | 
|  | 
| return true; | 
| @@ -3077,7 +3077,7 @@ | 
| // No BIT_AND operation needed. | 
| ReplaceCall(call, left_shift); | 
| } else { | 
| -        InsertBefore(call, left_shift, call->env(), Definition::kValue); | 
| +        InsertBefore(call, left_shift, call->env(), FlowGraph::kValue); | 
| BinarySmiOpInstr* bit_and = | 
| new BinarySmiOpInstr(Token::kBIT_AND, | 
| new Value(left_shift), new Value(int32_mask), | 
| @@ -3097,7 +3097,7 @@ | 
| new ShiftMintOpInstr(Token::kSHL, | 
| new Value(value), new Value(count), | 
| call->deopt_id()); | 
| -      InsertBefore(call, left_shift, call->env(), Definition::kValue); | 
| +      InsertBefore(call, left_shift, call->env(), FlowGraph::kValue); | 
| BinaryMintOpInstr* bit_and = | 
| new BinaryMintOpInstr(Token::kBIT_AND, | 
| new Value(left_shift), new Value(int32_mask), | 
| @@ -3530,14 +3530,14 @@ | 
| cursor, | 
| *last, | 
| deopt_id != Isolate::kNoDeoptId ? call->env() : NULL, | 
| -      Definition::kValue); | 
| +      FlowGraph::kValue); | 
|  | 
| if (view_cid == kTypedDataFloat32ArrayCid) { | 
| *last = new FloatToDoubleInstr(new Value(*last), deopt_id); | 
| flow_graph()->AppendTo(cursor, | 
| *last, | 
| deopt_id != Isolate::kNoDeoptId ? call->env() : NULL, | 
| -                           Definition::kValue); | 
| +                           FlowGraph::kValue); | 
| } | 
| return true; | 
| } | 
| @@ -3656,7 +3656,7 @@ | 
| cursor = flow_graph()->AppendTo(cursor, | 
| stored_value, | 
| NULL, | 
| -                                    Definition::kValue); | 
| +                                    FlowGraph::kValue); | 
| } | 
|  | 
| StoreBarrierType needs_store_barrier = kNoStoreBarrier; | 
| @@ -3673,7 +3673,7 @@ | 
| *last, | 
| call->deopt_id() != Isolate::kNoDeoptId ? | 
| call->env() : NULL, | 
| -                         Definition::kEffect); | 
| +                         FlowGraph::kEffect); | 
| return true; | 
| } | 
|  | 
| @@ -3692,7 +3692,7 @@ | 
| call->deopt_id(), | 
| call->token_pos()), | 
| call->env(), | 
| -                                   Definition::kEffect); | 
| +                                   FlowGraph::kEffect); | 
|  | 
| LoadFieldInstr* length = | 
| new LoadFieldInstr(new Value(*array), | 
| @@ -3706,7 +3706,7 @@ | 
| *cursor = flow_graph()->AppendTo(*cursor, | 
| length, | 
| NULL, | 
| -                                   Definition::kValue); | 
| +                                   FlowGraph::kValue); | 
|  | 
| intptr_t element_size = FlowGraphCompiler::ElementSizeFor(array_cid); | 
| ConstantInstr* bytes_per_element = | 
| @@ -3717,7 +3717,7 @@ | 
| new Value(bytes_per_element), | 
| call->deopt_id(), call->token_pos()); | 
| *cursor = flow_graph()->AppendTo(*cursor, len_in_bytes, call->env(), | 
| -                                   Definition::kValue); | 
| +                                   FlowGraph::kValue); | 
|  | 
| ConstantInstr* length_adjustment = | 
| flow_graph()->GetConstant(Smi::Handle(Smi::New( | 
| @@ -3729,7 +3729,7 @@ | 
| new Value(length_adjustment), | 
| call->deopt_id(), call->token_pos()); | 
| *cursor = flow_graph()->AppendTo(*cursor, adjusted_length, call->env(), | 
| -                                   Definition::kValue); | 
| +                                   FlowGraph::kValue); | 
|  | 
| // Check adjusted_length > 0. | 
| ConstantInstr* zero = flow_graph()->GetConstant(Smi::Handle(Smi::New(0))); | 
| @@ -3739,7 +3739,7 @@ | 
| new Value(zero), | 
| call->deopt_id()), | 
| call->env(), | 
| -                                   Definition::kEffect); | 
| +                                   FlowGraph::kEffect); | 
| // Check 0 <= byte_index < adjusted_length. | 
| *cursor = flow_graph()->AppendTo(*cursor, | 
| new CheckArrayBoundInstr( | 
| @@ -3747,7 +3747,7 @@ | 
| new Value(byte_index), | 
| call->deopt_id()), | 
| call->env(), | 
| -                                   Definition::kEffect); | 
| +                                   FlowGraph::kEffect); | 
|  | 
| if (RawObject::IsExternalTypedDataClassId(array_cid)) { | 
| LoadUntaggedInstr* elements = | 
| @@ -3756,7 +3756,7 @@ | 
| *cursor = flow_graph()->AppendTo(*cursor, | 
| elements, | 
| NULL, | 
| -                                     Definition::kValue); | 
| +                                     FlowGraph::kValue); | 
| *array = elements; | 
| } | 
| return array_cid; | 
| @@ -4004,7 +4004,7 @@ | 
| InsertBefore(call, | 
| left_cid, | 
| NULL, | 
| -                 Definition::kValue); | 
| +                 FlowGraph::kValue); | 
| const intptr_t type_cid = Class::Handle(type.type_class()).id(); | 
| ConstantInstr* cid = | 
| flow_graph()->GetConstant(Smi::Handle(Smi::New(type_cid))); | 
| @@ -4419,7 +4419,7 @@ | 
| instr->deopt_id(), | 
| instr->token_pos()), | 
| instr->env(), | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| needs_store_barrier = kNoStoreBarrier; | 
| } | 
|  | 
| @@ -4429,7 +4429,7 @@ | 
| field, | 
| instr->deopt_id()), | 
| instr->env(), | 
| -                 Definition::kEffect); | 
| +                 FlowGraph::kEffect); | 
| } | 
|  | 
| // Field guard was detached. | 
| @@ -4717,7 +4717,7 @@ | 
|  | 
| ConstraintInstr* constraint = | 
| new ConstraintInstr(new Value(defn), constraint_range); | 
| -  flow_graph_->InsertAfter(after, constraint, NULL, Definition::kValue); | 
| +  flow_graph_->InsertAfter(after, constraint, NULL, FlowGraph::kValue); | 
| RenameDominatedUses(defn, constraint, constraint); | 
| constraints_.Add(constraint); | 
| return constraint; | 
| @@ -5156,7 +5156,7 @@ | 
| it->RemoveCurrentFromGraph(); | 
| GotoInstr* last = pre_header->last_instruction()->AsGoto(); | 
| // Using kind kEffect will not assign a fresh ssa temporary index. | 
| -  flow_graph()->InsertBefore(last, current, last->env(), Definition::kEffect); | 
| +  flow_graph()->InsertBefore(last, current, last->env(), FlowGraph::kEffect); | 
| current->deopt_id_ = last->GetDeoptId(); | 
| } | 
|  | 
| @@ -9395,7 +9395,7 @@ | 
| flow_graph->InsertBefore(branch, | 
| if_then_else, | 
| NULL, | 
| -                                   Definition::kValue); | 
| +                                   FlowGraph::kValue); | 
|  | 
| phi->ReplaceUsesWith(if_then_else); | 
|  | 
| @@ -9640,12 +9640,12 @@ | 
| AbstractType::ZoneHandle(), | 
| alloc->token_pos()); | 
| flow_graph_->InsertBefore( | 
| -        exit, load, NULL, Definition::kValue); | 
| +        exit, load, NULL, FlowGraph::kValue); | 
| values->Add(new Value(load)); | 
| } | 
|  | 
| MaterializeObjectInstr* mat = new MaterializeObjectInstr(cls, slots, values); | 
| -  flow_graph_->InsertBefore(exit, mat, NULL, Definition::kValue); | 
| +  flow_graph_->InsertBefore(exit, mat, NULL, FlowGraph::kValue); | 
|  | 
| // Replace all mentions of this allocation with a newly inserted | 
| // MaterializeObject instruction. | 
|  |