| Index: vm/flow_graph_optimizer.cc
|
| ===================================================================
|
| --- vm/flow_graph_optimizer.cc (revision 16591)
|
| +++ vm/flow_graph_optimizer.cc (working copy)
|
| @@ -2566,8 +2566,8 @@
|
| instr->value()->CanComputeIsNull(&is_null) &&
|
| (is_null ||
|
| instr->value()->CanComputeIsInstanceOf(instr->type(), &is_instance))) {
|
| - Definition* result = new ConstantInstr(Bool::ZoneHandle(Bool::Get(
|
| - instr->negate_result() ? !is_instance : is_instance)));
|
| + bool val = instr->negate_result() ? !is_instance : is_instance;
|
| + Definition* result = new ConstantInstr(val ? Bool::True() : Bool::False());
|
| result->set_ssa_temp_index(flow_graph_->alloc_ssa_temp_index());
|
| result->InsertBefore(instr);
|
| // Replace uses and remove the current instruction via the iterator.
|
| @@ -3684,7 +3684,7 @@
|
| if (IsNonConstant(value)) {
|
| SetReachable(instr->true_successor());
|
| SetReachable(instr->false_successor());
|
| - } else if (value.raw() == Bool::True()) {
|
| + } else if (value.raw() == Bool::True().raw()) {
|
| SetReachable(instr->true_successor());
|
| } else if (!IsUnknown(value)) { // Any other constant.
|
| SetReachable(instr->false_successor());
|
| @@ -3830,14 +3830,14 @@
|
| bool result = left.IsNull() ? (instr->right()->ResultCid() == kNullCid)
|
| : (instr->left()->ResultCid() == kNullCid);
|
| if (instr->kind() == Token::kNE_STRICT) result = !result;
|
| - SetValue(instr, Bool::ZoneHandle(Bool::Get(result)));
|
| + SetValue(instr, result ? Bool::True() : Bool::False());
|
| } else {
|
| SetValue(instr, non_constant_);
|
| }
|
| } else if (IsConstant(left) && IsConstant(right)) {
|
| bool result = (left.raw() == right.raw());
|
| if (instr->kind() == Token::kNE_STRICT) result = !result;
|
| - SetValue(instr, Bool::ZoneHandle(Bool::Get(result)));
|
| + SetValue(instr, result ? Bool::True() : Bool::False());
|
| }
|
| }
|
|
|
| @@ -3870,7 +3870,7 @@
|
| const bool result = CompareIntegers(instr->kind(),
|
| Integer::Cast(left),
|
| Integer::Cast(right));
|
| - SetValue(instr, Bool::ZoneHandle(Bool::Get(result)));
|
| + SetValue(instr, result ? Bool::True() : Bool::False());
|
| } else {
|
| SetValue(instr, non_constant_);
|
| }
|
| @@ -3888,7 +3888,7 @@
|
| const bool result = CompareIntegers(instr->kind(),
|
| Integer::Cast(left),
|
| Integer::Cast(right));
|
| - SetValue(instr, Bool::ZoneHandle(Bool::Get(result)));
|
| + SetValue(instr, result ? Bool::True() : Bool::False());
|
| } else {
|
| SetValue(instr, non_constant_);
|
| }
|
| @@ -3943,7 +3943,8 @@
|
| if (IsNonConstant(value)) {
|
| SetValue(instr, non_constant_);
|
| } else if (IsConstant(value)) {
|
| - SetValue(instr, Bool::ZoneHandle(Bool::Get(value.raw() != Bool::True())));
|
| + bool val = value.raw() != Bool::True().raw();
|
| + SetValue(instr, val ? Bool::True() : Bool::False());
|
| }
|
| }
|
|
|
|
|