Index: runtime/vm/flow_graph_range_analysis.cc |
=================================================================== |
--- runtime/vm/flow_graph_range_analysis.cc (revision 44266) |
+++ runtime/vm/flow_graph_range_analysis.cc (working copy) |
@@ -16,8 +16,9 @@ |
"Print integer IR selection optimization pass."); |
DECLARE_FLAG(bool, trace_constant_propagation); |
-// Quick access to the locally defined isolate() method. |
+// Quick access to the locally defined isolate() and zone() methods. |
#define I (isolate()) |
+#define Z (zone()) |
void RangeAnalysis::Analyze() { |
CollectValues(); |
@@ -344,21 +345,21 @@ |
Range* RangeAnalysis::ConstraintSmiRange(Token::Kind op, Definition* boundary) { |
switch (op) { |
case Token::kEQ: |
- return new(I) Range(RangeBoundary::FromDefinition(boundary), |
+ return new(Z) Range(RangeBoundary::FromDefinition(boundary), |
RangeBoundary::FromDefinition(boundary)); |
case Token::kNE: |
- return new(I) Range(Range::Full(RangeBoundary::kRangeBoundarySmi)); |
+ return new(Z) Range(Range::Full(RangeBoundary::kRangeBoundarySmi)); |
case Token::kLT: |
- return new(I) Range(RangeBoundary::MinSmi(), |
+ return new(Z) Range(RangeBoundary::MinSmi(), |
RangeBoundary::FromDefinition(boundary, -1)); |
case Token::kGT: |
- return new(I) Range(RangeBoundary::FromDefinition(boundary, 1), |
+ return new(Z) Range(RangeBoundary::FromDefinition(boundary, 1), |
RangeBoundary::MaxSmi()); |
case Token::kLTE: |
- return new(I) Range(RangeBoundary::MinSmi(), |
+ return new(Z) Range(RangeBoundary::MinSmi(), |
RangeBoundary::FromDefinition(boundary)); |
case Token::kGTE: |
- return new(I) Range(RangeBoundary::FromDefinition(boundary), |
+ return new(Z) Range(RangeBoundary::FromDefinition(boundary), |
RangeBoundary::MaxSmi()); |
default: |
UNREACHABLE(); |
@@ -385,7 +386,7 @@ |
constraint = constraint->next()->AsConstraint(); |
} |
- constraint = new(I) ConstraintInstr( |
+ constraint = new(Z) ConstraintInstr( |
use->CopyWithType(), constraint_range); |
flow_graph_->InsertAfter(after, constraint, NULL, FlowGraph::kValue); |
@@ -469,13 +470,13 @@ |
Range* constraint_range = NULL; |
if (use_index == CheckArrayBoundInstr::kIndexPos) { |
Definition* length = check->length()->definition(); |
- constraint_range = new(I) Range( |
+ constraint_range = new(Z) Range( |
RangeBoundary::FromConstant(0), |
RangeBoundary::FromDefinition(length, -1)); |
} else { |
ASSERT(use_index == CheckArrayBoundInstr::kLengthPos); |
Definition* index = check->index()->definition(); |
- constraint_range = new(I) Range( |
+ constraint_range = new(Z) Range( |
RangeBoundary::FromDefinition(index, 1), |
RangeBoundary::MaxSmi()); |
} |
@@ -1653,14 +1654,11 @@ |
IntegerInstructionSelector::IntegerInstructionSelector(FlowGraph* flow_graph) |
- : flow_graph_(flow_graph), |
- isolate_(NULL) { |
+ : flow_graph_(flow_graph) { |
ASSERT(flow_graph_ != NULL); |
- isolate_ = flow_graph_->isolate(); |
- ASSERT(isolate_ != NULL); |
- Zone* zone = flow_graph_->zone(); |
+ zone_ = flow_graph_->zone(); |
selected_uint32_defs_ = |
- new(zone) BitVector(zone, flow_graph_->current_ssa_temp_index()); |
+ new(zone_) BitVector(zone_, flow_graph_->current_ssa_temp_index()); |
} |
@@ -1853,21 +1851,21 @@ |
Value* left = op->left()->CopyWithType(); |
Value* right = op->right()->CopyWithType(); |
intptr_t deopt_id = op->DeoptimizationTarget(); |
- return new(I) BinaryUint32OpInstr(op_kind, left, right, deopt_id); |
+ return new(Z) BinaryUint32OpInstr(op_kind, left, right, deopt_id); |
} else if (def->IsBoxInt64()) { |
Value* value = def->AsBoxInt64()->value()->CopyWithType(); |
- return new(I) BoxUint32Instr(value); |
+ return new(Z) BoxUint32Instr(value); |
} else if (def->IsUnboxInt64()) { |
UnboxInstr* unbox = def->AsUnboxInt64(); |
Value* value = unbox->value()->CopyWithType(); |
intptr_t deopt_id = unbox->DeoptimizationTarget(); |
- return new(I) UnboxUint32Instr(value, deopt_id); |
+ return new(Z) UnboxUint32Instr(value, deopt_id); |
} else if (def->IsUnaryMintOp()) { |
UnaryMintOpInstr* op = def->AsUnaryMintOp(); |
Token::Kind op_kind = op->op_kind(); |
Value* value = op->value()->CopyWithType(); |
intptr_t deopt_id = op->DeoptimizationTarget(); |
- return new(I) UnaryUint32OpInstr(op_kind, value, deopt_id); |
+ return new(Z) UnaryUint32OpInstr(op_kind, value, deopt_id); |
} else if (def->IsShiftMintOp()) { |
ShiftMintOpInstr* op = def->AsShiftMintOp(); |
Token::Kind op_kind = op->op_kind(); |
@@ -1874,7 +1872,7 @@ |
Value* left = op->left()->CopyWithType(); |
Value* right = op->right()->CopyWithType(); |
intptr_t deopt_id = op->DeoptimizationTarget(); |
- return new(I) ShiftUint32OpInstr(op_kind, left, right, deopt_id); |
+ return new(Z) ShiftUint32OpInstr(op_kind, left, right, deopt_id); |
} |
UNREACHABLE(); |
return NULL; |