Commit f676db46 authored by bmeurer's avatar bmeurer Committed by Commit bot

[turbofan] Lazy bailout for calls doesn't need callee.

There's no need to preserve the exact callee for lazy bailouts
from JSCallFunction in the AstGraphBuilder, as fullcodegen code
will never look at that value after the callee returns. So we
just push optimized_out instead.

BUG=v8:5267
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2285183002
Cr-Commit-Position: refs/heads/master@{#38963}
parent 4f8e0fa6
......@@ -2450,7 +2450,10 @@ void AstGraphBuilder::VisitCall(Call* expr) {
args->length() + 2, feedback, receiver_hint, expr->tail_call_mode());
PrepareEagerCheckpoint(possibly_eval ? expr->EvalId() : expr->CallId());
Node* value = ProcessArguments(call, args->length() + 2);
environment()->Push(value->InputAt(0)); // The callee passed to the call.
// The callee passed to the call, we just need to push something here to
// satisfy the bailout location contract. The fullcodegen code will not
// ever look at this value, so we just push optimized_out here.
environment()->Push(jsgraph()->OptimizedOutConstant());
PrepareFrameState(value, expr->ReturnId(), OutputFrameStateCombine::Push());
environment()->Drop(1);
ast_context()->ProduceValue(expr, value);
......
......@@ -327,11 +327,6 @@
##############################################################################
['variant == turbofan', {
# TODO(bmeurer): TurboFan embeds strong references to all kinds of objects
# via deoptimization data (Crankshaft also does this, but lack proper test
# coverage).
'test-heap/ObjectsInOptimizedCodeAreWeak': [FAIL],
# TurboFan cpu profiler result is different.
'test-cpu-profiler/CollectDeoptEvents': [FAIL],
'test-cpu-profiler/DeoptAtFirstLevelInlinedSource': [FAIL],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment