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

Unified Diff: runtime/vm/intermediate_language.cc

Issue 982873004: Thread/Isolate refactoring: new(Isolate) -> new(Zone) (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 9 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
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | runtime/vm/native_entry.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language.cc
===================================================================
--- runtime/vm/intermediate_language.cc (revision 44266)
+++ runtime/vm/intermediate_language.cc (working copy)
@@ -769,7 +769,7 @@
Definition* result) {
ASSERT(call->env() != NULL);
deopt_id_ = Isolate::ToDeoptAfter(call->deopt_id_);
- call->env()->DeepCopyAfterTo(flow_graph->isolate(),
+ call->env()->DeepCopyAfterTo(flow_graph->zone(),
this,
call->ArgumentCount(),
flow_graph->constant_dead(),
@@ -779,17 +779,17 @@
}
-void Instruction::InheritDeoptTarget(Isolate* isolate, Instruction* other) {
+void Instruction::InheritDeoptTarget(Zone* zone, Instruction* other) {
ASSERT(other->env() != NULL);
CopyDeoptIdFrom(*other);
- other->env()->DeepCopyTo(isolate, this);
+ other->env()->DeepCopyTo(zone, this);
env()->set_deopt_id(deopt_id_);
}
-void BranchInstr::InheritDeoptTarget(Isolate* isolate, Instruction* other) {
+void BranchInstr::InheritDeoptTarget(Zone* zone, Instruction* other) {
ASSERT(env() == NULL);
- Instruction::InheritDeoptTarget(isolate, other);
+ Instruction::InheritDeoptTarget(zone, other);
comparison()->SetDeoptId(*this);
}
@@ -2123,7 +2123,7 @@
const Object& val = value()->BoundConstant();
if (val.IsSmi()) {
- const Double& double_val = Double::ZoneHandle(flow_graph->isolate(),
+ const Double& double_val = Double::ZoneHandle(flow_graph->zone(),
Double::NewCanonical(Smi::Cast(val).AsDoubleValue()));
uc = new UnboxedConstantInstr(double_val, kUnboxedDouble);
} else if (val.IsDouble()) {
@@ -2391,7 +2391,7 @@
Instruction* BranchInstr::Canonicalize(FlowGraph* flow_graph) {
- Isolate* isolate = flow_graph->isolate();
+ Zone* zone = flow_graph->zone();
// Only handle strict-compares.
if (comparison()->IsStrictCompare()) {
bool negated = false;
@@ -2452,8 +2452,8 @@
comparison()->token_pos(),
negate ? Token::NegateComparison(comparison()->kind())
: comparison()->kind(),
- bit_and->left()->Copy(isolate),
- bit_and->right()->Copy(isolate));
+ bit_and->left()->Copy(zone),
+ bit_and->right()->Copy(zone));
ASSERT(!CanDeoptimize());
RemoveEnvironment();
flow_graph->CopyDeoptTarget(this, bit_and);
@@ -2694,7 +2694,7 @@
}
-void IndirectGotoInstr::ComputeOffsetTable(Isolate* isolate) {
+void IndirectGotoInstr::ComputeOffsetTable() {
if (GetBlock()->offset() < 0) {
// Don't generate a table when contained in an unreachable block.
return;
@@ -2924,23 +2924,23 @@
void InstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- Isolate* isolate = compiler->isolate();
+ Zone* zone = compiler->zone();
const ICData* call_ic_data = NULL;
if (!FLAG_propagate_ic_data || !compiler->is_optimizing()) {
const Array& arguments_descriptor =
- Array::Handle(isolate, ArgumentsDescriptor::New(ArgumentCount(),
+ Array::Handle(zone, ArgumentsDescriptor::New(ArgumentCount(),
argument_names()));
call_ic_data = compiler->GetOrAddInstanceCallICData(
deopt_id(), function_name(), arguments_descriptor,
checked_argument_count());
} else {
- call_ic_data = &ICData::ZoneHandle(isolate, ic_data()->raw());
+ call_ic_data = &ICData::ZoneHandle(zone, ic_data()->raw());
}
if (compiler->is_optimizing()) {
ASSERT(HasICData());
if (ic_data()->NumberOfUsedChecks() > 0) {
const ICData& unary_ic_data =
- ICData::ZoneHandle(isolate, ic_data()->AsUnaryClassChecks());
+ ICData::ZoneHandle(zone, ic_data()->AsUnaryClassChecks());
compiler->GenerateInstanceCall(deopt_id(),
token_pos(),
ArgumentCount(),
@@ -2963,8 +2963,8 @@
// We have a dedicated inline cache stub for this operation, add an
// an initial Smi/Smi check with count 0.
ASSERT(call_ic_data->NumArgsTested() == 2);
- const String& name = String::Handle(isolate, call_ic_data->target_name());
- const Class& smi_class = Class::Handle(isolate, Smi::Class());
+ const String& name = String::Handle(zone, call_ic_data->target_name());
+ const Class& smi_class = Class::Handle(zone, Smi::Class());
const Function& smi_op_target =
Function::Handle(Resolver::ResolveDynamicAnyArgs(smi_class, name));
if (call_ic_data->NumberOfChecks() == 0) {
@@ -2977,7 +2977,7 @@
is_smi_two_args_op = true;
} else if (call_ic_data->NumberOfChecks() == 1) {
GrowableArray<intptr_t> class_ids(2);
- Function& target = Function::Handle(isolate);
+ Function& target = Function::Handle(zone);
call_ic_data->GetCheckAt(0, &class_ids, &target);
if ((target.raw() == smi_op_target.raw()) &&
(class_ids[0] == kSmiCid) && (class_ids[1] == kSmiCid)) {
@@ -2997,7 +2997,7 @@
(ArgumentCount() == 1));
ASSERT(Token::IsBinaryArithmeticOperator(token_kind()) ==
(ArgumentCount() == 2));
- StubCode* stub_code = isolate->stub_code();
+ StubCode* stub_code = compiler->isolate()->stub_code();
ExternalLabel target_label((ArgumentCount() == 1) ?
stub_code->UnaryRangeCollectingInlineCacheEntryPoint() :
stub_code->BinaryRangeCollectingInlineCacheEntryPoint());
@@ -3096,37 +3096,37 @@
}
-Environment* Environment::From(Isolate* isolate,
+Environment* Environment::From(Zone* zone,
const GrowableArray<Definition*>& definitions,
intptr_t fixed_parameter_count,
const ParsedFunction& parsed_function) {
Environment* env =
- new(isolate) Environment(definitions.length(),
+ new(zone) Environment(definitions.length(),
fixed_parameter_count,
Isolate::kNoDeoptId,
parsed_function,
NULL);
for (intptr_t i = 0; i < definitions.length(); ++i) {
- env->values_.Add(new(isolate) Value(definitions[i]));
+ env->values_.Add(new(zone) Value(definitions[i]));
}
return env;
}
-Environment* Environment::DeepCopy(Isolate* isolate, intptr_t length) const {
+Environment* Environment::DeepCopy(Zone* zone, intptr_t length) const {
ASSERT(length <= values_.length());
- Environment* copy = new(isolate) Environment(
+ Environment* copy = new(zone) Environment(
length,
fixed_parameter_count_,
deopt_id_,
parsed_function_,
- (outer_ == NULL) ? NULL : outer_->DeepCopy(isolate));
+ (outer_ == NULL) ? NULL : outer_->DeepCopy(zone));
if (locations_ != NULL) {
- Location* new_locations = isolate->current_zone()->Alloc<Location>(length);
+ Location* new_locations = zone->Alloc<Location>(length);
copy->set_locations(new_locations);
}
for (intptr_t i = 0; i < length; ++i) {
- copy->values_.Add(values_[i]->Copy(isolate));
+ copy->values_.Add(values_[i]->Copy(zone));
if (locations_ != NULL) {
copy->locations_[i] = locations_[i].Copy();
}
@@ -3136,12 +3136,12 @@
// Copies the environment and updates the environment use lists.
-void Environment::DeepCopyTo(Isolate* isolate, Instruction* instr) const {
+void Environment::DeepCopyTo(Zone* zone, Instruction* instr) const {
for (Environment::DeepIterator it(instr->env()); !it.Done(); it.Advance()) {
it.CurrentValue()->RemoveFromUseList();
}
- Environment* copy = DeepCopy(isolate);
+ Environment* copy = DeepCopy(zone);
instr->SetEnvironment(copy);
for (Environment::DeepIterator it(copy); !it.Done(); it.Advance()) {
Value* value = it.CurrentValue();
@@ -3150,7 +3150,7 @@
}
-void Environment::DeepCopyAfterTo(Isolate* isolate,
+void Environment::DeepCopyAfterTo(Zone* zone,
Instruction* instr,
intptr_t argc,
Definition* dead,
@@ -3159,11 +3159,11 @@
it.CurrentValue()->RemoveFromUseList();
}
- Environment* copy = DeepCopy(isolate, values_.length() - argc);
+ Environment* copy = DeepCopy(zone, values_.length() - argc);
for (intptr_t i = 0; i < argc; i++) {
- copy->values_.Add(new(isolate) Value(dead));
+ copy->values_.Add(new(zone) Value(dead));
}
- copy->values_.Add(new(isolate) Value(result));
+ copy->values_.Add(new(zone) Value(result));
instr->SetEnvironment(copy);
for (Environment::DeepIterator it(copy); !it.Done(); it.Advance()) {
@@ -3175,12 +3175,12 @@
// Copies the environment as outer on an inlined instruction and updates the
// environment use lists.
-void Environment::DeepCopyToOuter(Isolate* isolate, Instruction* instr) const {
+void Environment::DeepCopyToOuter(Zone* zone, Instruction* instr) const {
// Create a deep copy removing caller arguments from the environment.
ASSERT(this != NULL);
ASSERT(instr->env()->outer() == NULL);
intptr_t argument_count = instr->env()->fixed_parameter_count();
- Environment* copy = DeepCopy(isolate, values_.length() - argument_count);
+ Environment* copy = DeepCopy(zone, values_.length() - argument_count);
instr->env()->outer_ = copy;
intptr_t use_index = instr->env()->Length(); // Start index after inner.
for (Environment::DeepIterator it(copy); !it.Done(); it.Advance()) {
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | runtime/vm/native_entry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698