| Index: src/crankshaft/hydrogen.cc
|
| diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc
|
| index 9a6cdb648d1317861eb65410efabdfe95d12ba77..0a4b4f99a25fa368ca387677dbcc64dbbbd57032 100644
|
| --- a/src/crankshaft/hydrogen.cc
|
| +++ b/src/crankshaft/hydrogen.cc
|
| @@ -5513,8 +5513,9 @@
|
| FastNewClosureDescriptor descriptor(isolate());
|
| HValue* values[] = {context(), shared_info_value};
|
| HConstant* stub_value = Add<HConstant>(stub.GetCode());
|
| - instr = New<HCallWithDescriptor>(
|
| - stub_value, 0, descriptor, Vector<HValue*>(values, arraysize(values)));
|
| + instr = New<HCallWithDescriptor>(stub_value, 0, descriptor,
|
| + Vector<HValue*>(values, arraysize(values)),
|
| + NORMAL_CALL);
|
| } else {
|
| Add<HPushArguments>(shared_info_value);
|
| Runtime::FunctionId function_id =
|
| @@ -5795,9 +5796,9 @@
|
| context(), AddThisFunction(), Add<HConstant>(expr->literal_index()),
|
| Add<HConstant>(expr->pattern()), Add<HConstant>(expr->flags())};
|
| HConstant* stub_value = Add<HConstant>(callable.code());
|
| - HInstruction* instr =
|
| - New<HCallWithDescriptor>(stub_value, 0, callable.descriptor(),
|
| - Vector<HValue*>(values, arraysize(values)));
|
| + HInstruction* instr = New<HCallWithDescriptor>(
|
| + stub_value, 0, callable.descriptor(),
|
| + Vector<HValue*>(values, arraysize(values)), NORMAL_CALL);
|
| return ast_context()->ReturnInstruction(instr, expr->id());
|
| }
|
|
|
| @@ -6582,7 +6583,7 @@
|
| info->NeedsWrappingFor(Handle<JSFunction>::cast(info->accessor()))) {
|
| HValue* function = Add<HConstant>(info->accessor());
|
| PushArgumentsFromEnvironment(argument_count);
|
| - return NewCallFunction(function, argument_count, TailCallMode::kDisallow,
|
| + return NewCallFunction(function, argument_count,
|
| ConvertReceiverMode::kNotNullOrUndefined,
|
| TailCallMode::kDisallow);
|
| } else if (FLAG_inline_accessors && can_inline_accessor) {
|
| @@ -6599,8 +6600,7 @@
|
| return nullptr;
|
| }
|
| return NewCallConstantFunction(Handle<JSFunction>::cast(info->accessor()),
|
| - argument_count, TailCallMode::kDisallow,
|
| - TailCallMode::kDisallow);
|
| + argument_count, TailCallMode::kDisallow);
|
| }
|
|
|
| DCHECK(info->IsDataConstant());
|
| @@ -7999,8 +7999,8 @@
|
| }
|
|
|
| HInstruction* HOptimizedGraphBuilder::NewCallFunction(
|
| - HValue* function, int argument_count, TailCallMode syntactic_tail_call_mode,
|
| - ConvertReceiverMode convert_mode, TailCallMode tail_call_mode) {
|
| + HValue* function, int argument_count, ConvertReceiverMode convert_mode,
|
| + TailCallMode tail_call_mode) {
|
| HValue* arity = Add<HConstant>(argument_count - 1);
|
|
|
| HValue* op_vals[] = {context(), function, arity};
|
| @@ -8010,14 +8010,12 @@
|
| HConstant* stub = Add<HConstant>(callable.code());
|
|
|
| return New<HCallWithDescriptor>(stub, argument_count, callable.descriptor(),
|
| - Vector<HValue*>(op_vals, arraysize(op_vals)),
|
| - syntactic_tail_call_mode);
|
| + Vector<HValue*>(op_vals, arraysize(op_vals)));
|
| }
|
|
|
| HInstruction* HOptimizedGraphBuilder::NewCallFunctionViaIC(
|
| - HValue* function, int argument_count, TailCallMode syntactic_tail_call_mode,
|
| - ConvertReceiverMode convert_mode, TailCallMode tail_call_mode,
|
| - FeedbackVectorSlot slot) {
|
| + HValue* function, int argument_count, ConvertReceiverMode convert_mode,
|
| + TailCallMode tail_call_mode, FeedbackVectorSlot slot) {
|
| int arity = argument_count - 1;
|
| Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate());
|
| HValue* index_val = Add<HConstant>(vector->GetIndex(slot));
|
| @@ -8030,16 +8028,14 @@
|
| HConstant* stub = Add<HConstant>(callable.code());
|
|
|
| return New<HCallWithDescriptor>(stub, argument_count, callable.descriptor(),
|
| - Vector<HValue*>(op_vals, arraysize(op_vals)),
|
| - syntactic_tail_call_mode);
|
| + Vector<HValue*>(op_vals, arraysize(op_vals)));
|
| }
|
|
|
| HInstruction* HOptimizedGraphBuilder::NewCallConstantFunction(
|
| Handle<JSFunction> function, int argument_count,
|
| - TailCallMode syntactic_tail_call_mode, TailCallMode tail_call_mode) {
|
| + TailCallMode tail_call_mode) {
|
| HValue* target = Add<HConstant>(function);
|
| - return New<HInvokeFunction>(target, function, argument_count,
|
| - syntactic_tail_call_mode, tail_call_mode);
|
| + return New<HInvokeFunction>(target, function, argument_count, tail_call_mode);
|
| }
|
|
|
|
|
| @@ -8190,12 +8186,10 @@
|
| // HWrapReceiver.
|
| HInstruction* call =
|
| needs_wrapping
|
| - ? NewCallFunction(
|
| - function, argument_count, syntactic_tail_call_mode,
|
| - ConvertReceiverMode::kNotNullOrUndefined, tail_call_mode)
|
| - : NewCallConstantFunction(target, argument_count,
|
| - syntactic_tail_call_mode,
|
| - tail_call_mode);
|
| + ? NewCallFunction(function, argument_count,
|
| + ConvertReceiverMode::kNotNullOrUndefined,
|
| + tail_call_mode)
|
| + : NewCallConstantFunction(target, argument_count, tail_call_mode);
|
| PushArgumentsFromEnvironment(argument_count);
|
| AddInstruction(call);
|
| Drop(1); // Drop the function.
|
| @@ -8225,8 +8219,8 @@
|
| CHECK_ALIVE(VisitExpressions(expr->arguments()));
|
|
|
| HInstruction* call = NewCallFunction(
|
| - function, argument_count, syntactic_tail_call_mode,
|
| - ConvertReceiverMode::kNotNullOrUndefined, tail_call_mode);
|
| + function, argument_count, ConvertReceiverMode::kNotNullOrUndefined,
|
| + tail_call_mode);
|
|
|
| PushArgumentsFromEnvironment(argument_count);
|
|
|
| @@ -9112,8 +9106,8 @@
|
| if_inline.Else();
|
| {
|
| Add<HPushArguments>(receiver);
|
| - result = AddInstruction(NewCallConstantFunction(
|
| - function, 1, TailCallMode::kDisallow, TailCallMode::kDisallow));
|
| + result = AddInstruction(
|
| + NewCallConstantFunction(function, 1, TailCallMode::kDisallow));
|
| if (!ast_context()->IsEffect()) Push(result);
|
| }
|
| if_inline.End();
|
| @@ -9377,9 +9371,8 @@
|
| function_state()->ComputeTailCallMode(syntactic_tail_call_mode);
|
|
|
| PushArgumentsFromEnvironment(arguments_count);
|
| - HInvokeFunction* call =
|
| - New<HInvokeFunction>(function, known_function, arguments_count,
|
| - syntactic_tail_call_mode, tail_call_mode);
|
| + HInvokeFunction* call = New<HInvokeFunction>(function, known_function,
|
| + arguments_count, tail_call_mode);
|
| Drop(1); // Function
|
| ast_context()->ReturnInstruction(call, expr->id());
|
| }
|
| @@ -9776,15 +9769,14 @@
|
| // the receiver.
|
| // TODO(verwaest): Support creation of value wrappers directly in
|
| // HWrapReceiver.
|
| - call = NewCallFunction(
|
| - function, argument_count, syntactic_tail_call_mode,
|
| - ConvertReceiverMode::kNotNullOrUndefined, tail_call_mode);
|
| + call = NewCallFunction(function, argument_count,
|
| + ConvertReceiverMode::kNotNullOrUndefined,
|
| + tail_call_mode);
|
| } else if (TryInlineCall(expr)) {
|
| return;
|
| } else {
|
| - call =
|
| - NewCallConstantFunction(known_function, argument_count,
|
| - syntactic_tail_call_mode, tail_call_mode);
|
| + call = NewCallConstantFunction(known_function, argument_count,
|
| + tail_call_mode);
|
| }
|
|
|
| } else {
|
| @@ -9803,7 +9795,7 @@
|
| Push(receiver);
|
|
|
| CHECK_ALIVE(VisitExpressions(expr->arguments(), arguments_flag));
|
| - call = NewCallFunction(function, argument_count, syntactic_tail_call_mode,
|
| + call = NewCallFunction(function, argument_count,
|
| ConvertReceiverMode::kNotNullOrUndefined,
|
| tail_call_mode);
|
| }
|
| @@ -9853,7 +9845,7 @@
|
|
|
| PushArgumentsFromEnvironment(argument_count);
|
| call = NewCallConstantFunction(expr->target(), argument_count,
|
| - syntactic_tail_call_mode, tail_call_mode);
|
| + tail_call_mode);
|
| } else {
|
| PushArgumentsFromEnvironment(argument_count);
|
| if (expr->is_uninitialized() &&
|
| @@ -9861,13 +9853,12 @@
|
| // We've never seen this call before, so let's have Crankshaft learn
|
| // through the type vector.
|
| call = NewCallFunctionViaIC(function, argument_count,
|
| - syntactic_tail_call_mode,
|
| ConvertReceiverMode::kNullOrUndefined,
|
| tail_call_mode, expr->CallFeedbackICSlot());
|
| } else {
|
| - call = NewCallFunction(
|
| - function, argument_count, syntactic_tail_call_mode,
|
| - ConvertReceiverMode::kNullOrUndefined, tail_call_mode);
|
| + call = NewCallFunction(function, argument_count,
|
| + ConvertReceiverMode::kNullOrUndefined,
|
| + tail_call_mode);
|
| }
|
| }
|
| }
|
| @@ -10500,9 +10491,9 @@
|
| int argument_count = expr->arguments()->length() + 1; // Count receiver.
|
| CHECK_ALIVE(VisitExpressions(expr->arguments()));
|
| PushArgumentsFromEnvironment(argument_count);
|
| - HInstruction* call = NewCallFunction(
|
| - function, argument_count, TailCallMode::kDisallow,
|
| - ConvertReceiverMode::kNullOrUndefined, TailCallMode::kDisallow);
|
| + HInstruction* call = NewCallFunction(function, argument_count,
|
| + ConvertReceiverMode::kNullOrUndefined,
|
| + TailCallMode::kDisallow);
|
| Drop(1); // Function
|
| return ast_context()->ReturnInstruction(call, expr->id());
|
| }
|
|
|