[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}
This commit is contained in:
parent
4f8e0fa685
commit
f676db4655
@ -2450,7 +2450,10 @@ void AstGraphBuilder::VisitCall(Call* expr) {
|
|||||||
args->length() + 2, feedback, receiver_hint, expr->tail_call_mode());
|
args->length() + 2, feedback, receiver_hint, expr->tail_call_mode());
|
||||||
PrepareEagerCheckpoint(possibly_eval ? expr->EvalId() : expr->CallId());
|
PrepareEagerCheckpoint(possibly_eval ? expr->EvalId() : expr->CallId());
|
||||||
Node* value = ProcessArguments(call, args->length() + 2);
|
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());
|
PrepareFrameState(value, expr->ReturnId(), OutputFrameStateCombine::Push());
|
||||||
environment()->Drop(1);
|
environment()->Drop(1);
|
||||||
ast_context()->ProduceValue(expr, value);
|
ast_context()->ProduceValue(expr, value);
|
||||||
|
@ -327,11 +327,6 @@
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
['variant == turbofan', {
|
['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.
|
# TurboFan cpu profiler result is different.
|
||||||
'test-cpu-profiler/CollectDeoptEvents': [FAIL],
|
'test-cpu-profiler/CollectDeoptEvents': [FAIL],
|
||||||
'test-cpu-profiler/DeoptAtFirstLevelInlinedSource': [FAIL],
|
'test-cpu-profiler/DeoptAtFirstLevelInlinedSource': [FAIL],
|
||||||
|
Loading…
Reference in New Issue
Block a user