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()); |
} |