Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 4459db8107b849ce41faa5f3e239a80372493156..a25c6db055cc9a75a353b2c9698a42fb0775f556 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -605,8 +605,7 @@ HConstant* HGraph::GetConstantHole() { |
HGraphBuilder::HGraphBuilder(CompilationInfo* info, |
- TypeFeedbackOracle* oracle, |
- Zone* zone) |
+ TypeFeedbackOracle* oracle) |
: function_state_(NULL), |
initial_function_state_(this, info, oracle, NORMAL_RETURN), |
ast_context_(NULL), |
@@ -614,8 +613,8 @@ HGraphBuilder::HGraphBuilder(CompilationInfo* info, |
graph_(NULL), |
current_block_(NULL), |
inlined_count_(0), |
- globals_(10, zone), |
- zone_(zone), |
+ globals_(10, info->zone()), |
+ zone_(info->zone()), |
inline_bailout_(false) { |
// This is not initialized in the initializer list because the |
// constructor for the initial state relies on function_state_ == NULL |
@@ -674,24 +673,25 @@ void HBasicBlock::FinishExit(HControlInstruction* instruction) { |
} |
-HGraph::HGraph(CompilationInfo* info, Zone* zone) |
+HGraph::HGraph(CompilationInfo* info) |
: isolate_(info->isolate()), |
next_block_id_(0), |
entry_block_(NULL), |
- blocks_(8, zone), |
- values_(16, zone), |
+ blocks_(8, info->zone()), |
+ values_(16, info->zone()), |
phi_list_(NULL), |
- zone_(zone), |
+ info_(info), |
+ zone_(info->zone()), |
is_recursive_(false) { |
start_environment_ = |
- new(zone) HEnvironment(NULL, info->scope(), info->closure(), zone); |
+ new(zone_) HEnvironment(NULL, info->scope(), info->closure(), zone_); |
start_environment_->set_ast_id(AstNode::kFunctionEntryId); |
entry_block_ = CreateBasicBlock(); |
entry_block_->SetInitialEnvironment(start_environment_); |
} |
-Handle<Code> HGraph::Compile(CompilationInfo* info, Zone* zone) { |
+Handle<Code> HGraph::Compile() { |
int values = GetMaximumValueID(); |
if (values > LUnallocated::kMaxVirtualRegisters) { |
if (FLAG_trace_bailout) { |
@@ -700,7 +700,7 @@ Handle<Code> HGraph::Compile(CompilationInfo* info, Zone* zone) { |
return Handle<Code>::null(); |
} |
LAllocator allocator(values, this); |
- LChunkBuilder builder(info, this, &allocator); |
+ LChunkBuilder builder(info(), this, &allocator); |
LChunk* chunk = builder.Build(); |
if (chunk == NULL) return Handle<Code>::null(); |
@@ -711,8 +711,8 @@ Handle<Code> HGraph::Compile(CompilationInfo* info, Zone* zone) { |
return Handle<Code>::null(); |
} |
- MacroAssembler assembler(info->isolate(), NULL, 0); |
- LCodeGen generator(chunk, &assembler, info, zone); |
+ MacroAssembler assembler(isolate(), NULL, 0); |
+ LCodeGen generator(chunk, &assembler, info()); |
chunk->MarkEmptyBlocks(); |
@@ -720,12 +720,12 @@ Handle<Code> HGraph::Compile(CompilationInfo* info, Zone* zone) { |
if (FLAG_trace_codegen) { |
PrintF("Crankshaft Compiler - "); |
} |
- CodeGenerator::MakeCodePrologue(info); |
+ CodeGenerator::MakeCodePrologue(info()); |
Code::Flags flags = Code::ComputeFlags(Code::OPTIMIZED_FUNCTION); |
Handle<Code> code = |
- CodeGenerator::MakeCodeEpilogue(&assembler, flags, info); |
+ CodeGenerator::MakeCodeEpilogue(&assembler, flags, info()); |
generator.FinishCode(code); |
- CodeGenerator::PrintCode(code, info); |
+ CodeGenerator::PrintCode(code, info()); |
return code; |
} |
return Handle<Code>::null(); |
@@ -3048,7 +3048,7 @@ void HGraphBuilder::VisitExpressions(ZoneList<Expression*>* exprs) { |
HGraph* HGraphBuilder::CreateGraph() { |
- graph_ = new(zone()) HGraph(info(), zone()); |
+ graph_ = new(zone()) HGraph(info()); |
if (FLAG_hydrogen_stats) HStatistics::Instance()->Initialize(info()); |
{ |
@@ -6476,7 +6476,7 @@ bool HGraphBuilder::TryInline(CallKind call_kind, |
} |
// Parse and allocate variables. |
- CompilationInfo target_info(target); |
+ CompilationInfo target_info(target, zone()); |
if (!ParserApi::Parse(&target_info, kNoParsingFlags) || |
!Scope::Analyze(&target_info)) { |
if (target_info.isolate()->has_pending_exception()) { |
@@ -9054,8 +9054,6 @@ HEnvironment* HEnvironment::CopyForInlining( |
bool is_construct) const { |
ASSERT(frame_type() == JS_FUNCTION); |
- Zone* zone = closure()->GetIsolate()->zone(); |
- |
// Outer environment is a copy of this one without the arguments. |
int arity = function->scope()->num_parameters(); |
@@ -9076,7 +9074,7 @@ HEnvironment* HEnvironment::CopyForInlining( |
} |
HEnvironment* inner = |
- new(zone) HEnvironment(outer, function->scope(), target, zone); |
+ new(zone()) HEnvironment(outer, function->scope(), target, zone()); |
// Get the argument values from the original environment. |
for (int i = 0; i <= arity; ++i) { // Include receiver. |
HValue* push = (i <= arguments) ? |