Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(882)

Unified Diff: runtime/vm/flow_graph_optimizer.cc

Issue 290993003: VM: Remove unnecessary field use_kind from IL instructions. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698