| Index: src/code-stubs-hydrogen.cc
|
| diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
|
| index fca1e293f8c315f872a0a79143fa70838695d540..8098077dd6ac474f44df0474a9f58896854bf354 100644
|
| --- a/src/code-stubs-hydrogen.cc
|
| +++ b/src/code-stubs-hydrogen.cc
|
| @@ -34,11 +34,11 @@ static LChunk* OptimizeGraph(HGraph* graph) {
|
|
|
| class CodeStubGraphBuilderBase : public HGraphBuilder {
|
| public:
|
| - CodeStubGraphBuilderBase(Isolate* isolate, HydrogenCodeStub* stub)
|
| - : HGraphBuilder(&info_),
|
| + explicit CodeStubGraphBuilderBase(CompilationInfoWithZone* info)
|
| + : HGraphBuilder(info),
|
| arguments_length_(NULL),
|
| - info_(stub, isolate),
|
| - descriptor_(stub),
|
| + info_(info),
|
| + descriptor_(info->code_stub()),
|
| context_(NULL) {
|
| int parameter_count = descriptor_.GetEnvironmentParameterCount();
|
| parameters_.Reset(new HParameter*[parameter_count]);
|
| @@ -56,10 +56,10 @@ class CodeStubGraphBuilderBase : public HGraphBuilder {
|
| DCHECK(arguments_length_ != NULL);
|
| return arguments_length_;
|
| }
|
| - CompilationInfo* info() { return &info_; }
|
| - HydrogenCodeStub* stub() { return info_.code_stub(); }
|
| + CompilationInfo* info() { return info_; }
|
| + HydrogenCodeStub* stub() { return info_->code_stub(); }
|
| HContext* context() { return context_; }
|
| - Isolate* isolate() { return info_.isolate(); }
|
| + Isolate* isolate() { return info_->isolate(); }
|
|
|
| HLoadNamedField* BuildLoadNamedField(HValue* object,
|
| FieldIndex index);
|
| @@ -106,7 +106,7 @@ class CodeStubGraphBuilderBase : public HGraphBuilder {
|
|
|
| SmartArrayPointer<HParameter*> parameters_;
|
| HValue* arguments_length_;
|
| - CompilationInfoWithZone info_;
|
| + CompilationInfoWithZone* info_;
|
| CodeStubDescriptor descriptor_;
|
| HContext* context_;
|
| };
|
| @@ -120,7 +120,7 @@ bool CodeStubGraphBuilderBase::BuildGraph() {
|
| const char* name = CodeStub::MajorName(stub()->MajorKey(), false);
|
| PrintF("-----------------------------------------------------------\n");
|
| PrintF("Compiling stub %s using hydrogen\n", name);
|
| - isolate()->GetHTracer()->TraceCompilation(&info_);
|
| + isolate()->GetHTracer()->TraceCompilation(info());
|
| }
|
|
|
| int param_count = descriptor_.GetEnvironmentParameterCount();
|
| @@ -189,8 +189,8 @@ bool CodeStubGraphBuilderBase::BuildGraph() {
|
| template <class Stub>
|
| class CodeStubGraphBuilder: public CodeStubGraphBuilderBase {
|
| public:
|
| - CodeStubGraphBuilder(Isolate* isolate, Stub* stub)
|
| - : CodeStubGraphBuilderBase(isolate, stub) {}
|
| + explicit CodeStubGraphBuilder(CompilationInfoWithZone* info)
|
| + : CodeStubGraphBuilderBase(info) {}
|
|
|
| protected:
|
| virtual HValue* BuildCodeStub() {
|
| @@ -271,7 +271,8 @@ static Handle<Code> DoGenerateCode(Stub* stub) {
|
| if (FLAG_profile_hydrogen_code_stub_compilation) {
|
| timer.Start();
|
| }
|
| - CodeStubGraphBuilder<Stub> builder(isolate, stub);
|
| + CompilationInfoWithZone info(stub, isolate);
|
| + CodeStubGraphBuilder<Stub> builder(&info);
|
| LChunk* chunk = OptimizeGraph(builder.CreateGraph());
|
| Handle<Code> code = chunk->Codegen();
|
| if (FLAG_profile_hydrogen_code_stub_compilation) {
|
| @@ -1700,8 +1701,8 @@ template <>
|
| class CodeStubGraphBuilder<KeyedLoadGenericStub>
|
| : public CodeStubGraphBuilderBase {
|
| public:
|
| - CodeStubGraphBuilder(Isolate* isolate, KeyedLoadGenericStub* stub)
|
| - : CodeStubGraphBuilderBase(isolate, stub) {}
|
| + explicit CodeStubGraphBuilder(CompilationInfoWithZone* info)
|
| + : CodeStubGraphBuilderBase(info) {}
|
|
|
| protected:
|
| virtual HValue* BuildCodeStub();
|
|
|