Chromium Code Reviews| Index: src/hydrogen.cc |
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
| index cd852f5c1a37686d573ecbedaaaf3076aba14b55..d772bee67e3f5ee29e747eb9b41f264ed0df9bcc 100644 |
| --- a/src/hydrogen.cc |
| +++ b/src/hydrogen.cc |
| @@ -3061,8 +3061,7 @@ bool HOptimizedGraphBuilder::BuildGraph() { |
| VisitDeclarations(scope->declarations()); |
| Add<HSimulate>(BailoutId::Declarations()); |
| - HValue* context = environment()->context(); |
| - Add<HStackCheck>(context, HStackCheck::kFunctionEntry); |
| + Add<HStackCheck>(HStackCheck::kFunctionEntry); |
| VisitStatements(current_info()->function()->body()); |
| if (HasStackOverflow()) return false; |
| @@ -3518,8 +3517,6 @@ void HOptimizedGraphBuilder::VisitSwitchStatement(SwitchStatement* stmt) { |
| return Bailout(kSwitchStatementMixedOrNonLiteralSwitchLabels); |
| } |
| - HValue* context = environment()->context(); |
| - |
| CHECK_ALIVE(VisitForValue(stmt->tag())); |
| Add<HSimulate>(stmt->EntryId()); |
| HValue* tag_value = Pop(); |
| @@ -3570,9 +3567,9 @@ void HOptimizedGraphBuilder::VisitSwitchStatement(SwitchStatement* stmt) { |
| Representation::Smi(), Representation::Smi()); |
| compare = compare_; |
| } else { |
| - compare = new(zone()) HStringCompareAndBranch(context, tag_value, |
| - label_value, |
| - Token::EQ_STRICT); |
| + compare = New<HStringCompareAndBranch>(tag_value, |
| + label_value, |
| + Token::EQ_STRICT); |
| } |
| compare->SetSuccessorAt(0, body_block); |
| @@ -3664,9 +3661,8 @@ void HOptimizedGraphBuilder::VisitLoopBody(IterationStatement* stmt, |
| BreakAndContinueInfo* break_info) { |
| BreakAndContinueScope push(break_info, this); |
| Add<HSimulate>(stmt->StackCheckId()); |
| - HValue* context = environment()->context(); |
| - HStackCheck* stack_check = HStackCheck::cast(Add<HStackCheck>( |
| - context, HStackCheck::kBackwardsBranch)); |
| + HStackCheck* stack_check = |
| + HStackCheck::cast(Add<HStackCheck>(HStackCheck::kBackwardsBranch)); |
|
danno
2013/09/25 11:44:28
nit: four indentation spaces
|
| ASSERT(loop_entry->IsLoopHeader()); |
| loop_entry->loop_information()->set_stack_check(stack_check); |
| CHECK_BAILOUT(Visit(stmt->body())); |
| @@ -3967,9 +3963,8 @@ void HOptimizedGraphBuilder::VisitFunctionLiteral(FunctionLiteral* expr) { |
| } |
| // We also have a stack overflow if the recursive compilation did. |
| if (HasStackOverflow()) return; |
| - HValue* context = environment()->context(); |
| HFunctionLiteral* instr = |
| - new(zone()) HFunctionLiteral(context, shared_info, expr->pretenure()); |
| + New<HFunctionLiteral>(shared_info, expr->pretenure()); |
|
danno
2013/09/25 11:44:28
nit: 4 indentation spaces
|
| return ast_context()->ReturnInstruction(instr, expr->id()); |
| } |
| @@ -4148,13 +4143,10 @@ void HOptimizedGraphBuilder::VisitRegExpLiteral(RegExpLiteral* expr) { |
| ASSERT(current_block()->HasPredecessor()); |
| Handle<JSFunction> closure = function_state()->compilation_info()->closure(); |
| Handle<FixedArray> literals(closure->literals()); |
| - HValue* context = environment()->context(); |
| - |
| - HRegExpLiteral* instr = new(zone()) HRegExpLiteral(context, |
| - literals, |
| - expr->pattern(), |
| - expr->flags(), |
| - expr->literal_index()); |
| + HRegExpLiteral* instr = New<HRegExpLiteral>(literals, |
| + expr->pattern(), |
| + expr->flags(), |
| + expr->literal_index()); |
| return ast_context()->ReturnInstruction(instr, expr->id()); |
| } |
| @@ -4848,7 +4840,7 @@ HInstruction* HOptimizedGraphBuilder::BuildLoadMonomorphic( |
| return NULL; |
| } |
| Add<HPushArgument>(Pop()); |
| - return new(zone()) HCallConstantFunction(info->accessor(), 1); |
| + return New<HCallConstantFunction>(info->accessor(), 1); |
| } |
| ASSERT(info->lookup()->IsConstant()); |
| @@ -5144,7 +5136,7 @@ void HOptimizedGraphBuilder::BuildStore(Expression* expr, |
| Drop(2); |
| Add<HPushArgument>(object); |
| Add<HPushArgument>(value); |
| - instr = new(zone()) HCallConstantFunction(setter, 2); |
| + instr = New<HCallConstantFunction>(setter, 2); |
| } else { |
| Drop(2); |
| CHECK_ALIVE(instr = BuildStoreNamedMonomorphic(object, |
| @@ -6134,7 +6126,7 @@ bool HOptimizedGraphBuilder::TryCallPolymorphicAsMonomorphic( |
| if (!TryInlineCall(expr)) { |
| int argument_count = expr->arguments()->length() + 1; // Includes receiver. |
| HCallConstantFunction* call = |
| - new(zone()) HCallConstantFunction(expr->target(), argument_count); |
| + New<HCallConstantFunction>(expr->target(), argument_count); |
| call->set_position(expr->position()); |
| PreProcessCall(call); |
| AddInstruction(call); |
| @@ -6251,7 +6243,7 @@ void HOptimizedGraphBuilder::HandlePolymorphicCallNamed( |
| if (HasStackOverflow()) return; |
| } else { |
| HCallConstantFunction* call = |
| - new(zone()) HCallConstantFunction(expr->target(), argument_count); |
| + New<HCallConstantFunction>(expr->target(), argument_count); |
| call->set_position(expr->position()); |
| PreProcessCall(call); |
| AddInstruction(call); |
| @@ -6273,8 +6265,7 @@ void HOptimizedGraphBuilder::HandlePolymorphicCallNamed( |
| if (!ast_context()->IsEffect()) Push(graph()->GetConstant0()); |
| FinishExitWithHardDeoptimization("Unknown map in polymorphic call", join); |
| } else { |
| - HValue* context = environment()->context(); |
| - HCallNamed* call = new(zone()) HCallNamed(context, name, argument_count); |
| + HCallNamed* call = New<HCallNamed>(name, argument_count); |
| call->set_position(expr->position()); |
| PreProcessCall(call); |
| @@ -7033,8 +7024,7 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) { |
| CHECK_ALIVE(VisitArgumentList(expr->arguments())); |
| - HValue* context = environment()->context(); |
| - call = new(zone()) HCallKeyed(context, key, argument_count); |
| + call = New<HCallKeyed>(key, argument_count); |
| call->set_position(expr->position()); |
| Drop(argument_count + 1); // 1 is the key. |
| return ast_context()->ReturnInstruction(call, expr->id()); |
| @@ -7073,16 +7063,13 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) { |
| // When the target has a custom call IC generator, use the IC, |
| // because it is likely to generate better code. Also use the IC |
| // when a primitive receiver check is required. |
| - HValue* context = environment()->context(); |
| - call = PreProcessCall( |
| - new(zone()) HCallNamed(context, name, argument_count)); |
| + call = PreProcessCall(New<HCallNamed>(name, argument_count)); |
| } else { |
| AddCheckConstantFunction(expr->holder(), receiver, map); |
| if (TryInlineCall(expr)) return; |
| call = PreProcessCall( |
| - new(zone()) HCallConstantFunction(expr->target(), |
| - argument_count)); |
| + New<HCallConstantFunction>(expr->target(), argument_count)); |
| } |
| } else if (types != NULL && types->length() > 1) { |
| ASSERT(expr->check_type() == RECEIVER_MAP_CHECK); |
| @@ -7090,9 +7077,7 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) { |
| return; |
| } else { |
| - HValue* context = environment()->context(); |
| - call = PreProcessCall( |
| - new(zone()) HCallNamed(context, name, argument_count)); |
| + call = PreProcessCall(New<HCallNamed>(name, argument_count)); |
| } |
| } else { |
| @@ -7152,9 +7137,7 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) { |
| if (CallStubCompiler::HasCustomCallGenerator(expr->target())) { |
| // When the target has a custom call IC generator, use the IC, |
| // because it is likely to generate better code. |
| - HValue* context = environment()->context(); |
| - call = PreProcessCall( |
| - new(zone()) HCallNamed(context, var->name(), argument_count)); |
| + call = PreProcessCall(New<HCallNamed>(var->name(), argument_count)); |
| } else { |
| call = PreProcessCall(new(zone()) HCallKnownGlobal(expr->target(), |
| argument_count)); |
| @@ -7228,7 +7211,6 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) { |
| ASSERT(current_block() != NULL); |
| ASSERT(current_block()->HasPredecessor()); |
| int argument_count = expr->arguments()->length() + 1; // Plus constructor. |
| - HValue* context = environment()->context(); |
| Factory* factory = isolate()->factory(); |
| if (FLAG_inline_construct && |
| @@ -7317,8 +7299,8 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) { |
| receiver->DeleteAndReplaceWith(NULL); |
| check->DeleteAndReplaceWith(NULL); |
| environment()->SetExpressionStackAt(receiver_index, function); |
| - HInstruction* call = PreProcessCall( |
| - new(zone()) HCallNew(context, function, argument_count)); |
| + HInstruction* call = |
| + PreProcessCall(New<HCallNew>(function, argument_count)); |
| call->set_position(expr->position()); |
| return ast_context()->ReturnInstruction(call, expr->id()); |
| } else { |
| @@ -7333,10 +7315,10 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) { |
| if (expr->target().is_identical_to(array_function)) { |
| Handle<Cell> cell = expr->allocation_info_cell(); |
| Add<HCheckValue>(constructor, array_function); |
| - call = new(zone()) HCallNewArray(context, constructor, argument_count, |
| - cell, expr->elements_kind()); |
| + call = New<HCallNewArray>(constructor, argument_count, |
| + cell, expr->elements_kind()); |
| } else { |
| - call = new(zone()) HCallNew(context, constructor, argument_count); |
| + call = New<HCallNew>(constructor, argument_count); |
| } |
| Drop(argument_count); |
| call->set_position(expr->position()); |
| @@ -7461,8 +7443,7 @@ void HOptimizedGraphBuilder::VisitVoid(UnaryOperation* expr) { |
| void HOptimizedGraphBuilder::VisitTypeof(UnaryOperation* expr) { |
| CHECK_ALIVE(VisitForTypeOf(expr->expression())); |
| HValue* value = Pop(); |
| - HValue* context = environment()->context(); |
| - HInstruction* instr = new(zone()) HTypeof(context, value); |
| + HInstruction* instr = New<HTypeof>(value); |
| return ast_context()->ReturnInstruction(instr, expr->id()); |
| } |
| @@ -8251,7 +8232,7 @@ void HOptimizedGraphBuilder::VisitCompareOperation(CompareOperation* expr) { |
| } else { |
| Add<HCheckValue>(right, target); |
| HInstanceOfKnownGlobal* result = |
| - new(zone()) HInstanceOfKnownGlobal(context, left, target); |
| + New<HInstanceOfKnownGlobal>(left, target); |
| result->set_position(expr->position()); |
| return ast_context()->ReturnInstruction(result, expr->id()); |
| } |
| @@ -8264,7 +8245,7 @@ void HOptimizedGraphBuilder::VisitCompareOperation(CompareOperation* expr) { |
| Add<HPushArgument>(right); |
| // TODO(olivf) InvokeFunction produces a check for the parameter count, |
| // even though we are certain to pass the correct number of arguments here. |
| - HInstruction* result = new(zone()) HInvokeFunction(context, function, 2); |
| + HInstruction* result = New<HInvokeFunction>(function, 2); |
| result->set_position(expr->position()); |
| return ast_context()->ReturnInstruction(result, expr->id()); |
| } |
| @@ -9063,9 +9044,7 @@ void HOptimizedGraphBuilder::GenerateStringAdd(CallRuntime* call) { |
| CHECK_ALIVE(VisitForValue(call->arguments()->at(1))); |
| HValue* right = Pop(); |
| HValue* left = Pop(); |
| - HValue* context = environment()->context(); |
| - HInstruction* result = HStringAdd::New( |
| - zone(), context, left, right, STRING_ADD_CHECK_BOTH); |
| + HInstruction* result = New<HStringAdd>(left, right, STRING_ADD_CHECK_BOTH); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| } |
| @@ -9074,8 +9053,7 @@ void HOptimizedGraphBuilder::GenerateStringAdd(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateSubString(CallRuntime* call) { |
| ASSERT_EQ(3, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = new(zone()) HCallStub(context, CodeStub::SubString, 3); |
| + HCallStub* result = New<HCallStub>(CodeStub::SubString, 3); |
| Drop(3); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| } |
| @@ -9085,9 +9063,7 @@ void HOptimizedGraphBuilder::GenerateSubString(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateStringCompare(CallRuntime* call) { |
| ASSERT_EQ(2, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = |
| - new(zone()) HCallStub(context, CodeStub::StringCompare, 2); |
| + HCallStub* result = New<HCallStub>(CodeStub::StringCompare, 2); |
| Drop(2); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| } |
| @@ -9097,8 +9073,7 @@ void HOptimizedGraphBuilder::GenerateStringCompare(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateRegExpExec(CallRuntime* call) { |
| ASSERT_EQ(4, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = new(zone()) HCallStub(context, CodeStub::RegExpExec, 4); |
| + HCallStub* result = New<HCallStub>(CodeStub::RegExpExec, 4); |
| Drop(4); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| } |
| @@ -9108,9 +9083,7 @@ void HOptimizedGraphBuilder::GenerateRegExpExec(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateRegExpConstructResult(CallRuntime* call) { |
| ASSERT_EQ(3, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = |
| - new(zone()) HCallStub(context, CodeStub::RegExpConstructResult, 3); |
| + HCallStub* result = New<HCallStub>(CodeStub::RegExpConstructResult, 3); |
| Drop(3); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| } |
| @@ -9188,9 +9161,7 @@ void HOptimizedGraphBuilder::GenerateMathPow(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateMathSin(CallRuntime* call) { |
| ASSERT_EQ(1, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = |
| - new(zone()) HCallStub(context, CodeStub::TranscendentalCache, 1); |
| + HCallStub* result = New<HCallStub>(CodeStub::TranscendentalCache, 1); |
| result->set_transcendental_type(TranscendentalCache::SIN); |
| Drop(1); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| @@ -9200,9 +9171,7 @@ void HOptimizedGraphBuilder::GenerateMathSin(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateMathCos(CallRuntime* call) { |
| ASSERT_EQ(1, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = |
| - new(zone()) HCallStub(context, CodeStub::TranscendentalCache, 1); |
| + HCallStub* result = New<HCallStub>(CodeStub::TranscendentalCache, 1); |
| result->set_transcendental_type(TranscendentalCache::COS); |
| Drop(1); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| @@ -9212,9 +9181,7 @@ void HOptimizedGraphBuilder::GenerateMathCos(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateMathTan(CallRuntime* call) { |
| ASSERT_EQ(1, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = |
| - new(zone()) HCallStub(context, CodeStub::TranscendentalCache, 1); |
| + HCallStub* result = New<HCallStub>(CodeStub::TranscendentalCache, 1); |
| result->set_transcendental_type(TranscendentalCache::TAN); |
| Drop(1); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| @@ -9224,9 +9191,7 @@ void HOptimizedGraphBuilder::GenerateMathTan(CallRuntime* call) { |
| void HOptimizedGraphBuilder::GenerateMathLog(CallRuntime* call) { |
| ASSERT_EQ(1, call->arguments()->length()); |
| CHECK_ALIVE(VisitArgumentList(call->arguments())); |
| - HValue* context = environment()->context(); |
| - HCallStub* result = |
| - new(zone()) HCallStub(context, CodeStub::TranscendentalCache, 1); |
| + HCallStub* result = New<HCallStub>(CodeStub::TranscendentalCache, 1); |
| result->set_transcendental_type(TranscendentalCache::LOG); |
| Drop(1); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| @@ -9237,9 +9202,7 @@ void HOptimizedGraphBuilder::GenerateMathSqrt(CallRuntime* call) { |
| ASSERT(call->arguments()->length() == 1); |
| CHECK_ALIVE(VisitForValue(call->arguments()->at(0))); |
| HValue* value = Pop(); |
| - HValue* context = environment()->context(); |
| - HInstruction* result = |
| - HUnaryMathOperation::New(zone(), context, value, kMathSqrt); |
| + HInstruction* result = New<HUnaryMathOperation>(value, kMathSqrt); |
| return ast_context()->ReturnInstruction(result, call->id()); |
| } |