Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Issue 8360001: Fix bug in environment simulation after inlined call-as-function. (Closed)

Created:
9 years, 2 months ago by fschneider
Modified:
9 years, 1 month ago
CC:
v8-dev
Visibility:
Public.

Description

Fix bug in environment simulation after inlined call-as-function. This change is based on my previous change enabling inlining calls-as-function fixing the bugs related to deoptimization. The function value on top of the environment was dropped too late in the old code. As a result we could get a wrong value on top after deoptimization. This change includes r9619. It was reverted because of test failures that are fixed with this patch. Committed: http://code.google.com/p/v8/source/detail?r=9758

Patch Set 1 #

Patch Set 2 : Added r9619. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+160 lines, -98 lines) Patch
M src/deoptimizer.cc View 1 1 chunk +3 lines, -1 line 0 comments Download
M src/hydrogen.h View 1 7 chunks +14 lines, -5 lines 0 comments Download
M src/hydrogen.cc View 1 16 chunks +38 lines, -43 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M src/type-info.h View 1 1 chunk +0 lines, -1 line 0 comments Download
M src/type-info.cc View 1 1 chunk +42 lines, -47 lines 0 comments Download
A test/mjsunit/compiler/regress-deopt-call-as-function.js View 1 1 chunk +62 lines, -0 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
fschneider
This is based on r9619 which had tests failing. I added a reliable reproduction as ...
9 years, 2 months ago (2011-10-20 15:25:47 UTC) #1
Kevin Millikin (Chromium)
9 years, 2 months ago (2011-10-21 09:23:41 UTC) #2
OK, but it's impossible to know it's actually correct at all sites.  Let us put
it in to fix the issue, but I have an idea:

The caller-drop function has been a problem for various reasons.  I wonder if it
would be simpler to change the CallFunction stub to (a) call, not tail call, the
function (so the stub has to have its own frame) and (b) act as an adaptor to
drop the extra argument.

We could have another version of the stub for Crankshaft that just took the
function in edi with no need to drop it or emit it in PushArgument to push it
out to the stub.

Powered by Google App Engine
This is Rietveld 408576698