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

Issue 6250105: Partial fix for V8 issue 1079. (Closed)

Created:
9 years, 10 months ago by Kevin Millikin (Chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Partial fix for V8 issue 1079. Record a safepoint with a deoptimization id for throw in optimized code. We don't seem to much care what the AST ID is because we will not be using it for lazy deoptimization (throw doesn't return to the point of throw). For hygiene we use the actual ID of the throw expression. Throw is no longer a control-flow instruction, but it's followed by an unconditional abnormal exit. This is required to insert a simulate between the throw and the exit. Make our optimized treatment of Function.prototype.apply act like a call and have side effects. This ensures that it will get a lazy deoptimization environment. Use that deoptimization ID in the safepoint for the call. Deleting a property was also missing a deoptimization ID, though there was a deoptimization environment assigned to the instruction. Record the environment and use the deoptimization ID at the safepoint. Committed: http://code.google.com/p/v8/source/detail?r=6576

Patch Set 1 #

Patch Set 2 : Fix a typo I spotted. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+216 lines, -121 lines) Patch
M src/arm/deoptimizer-arm.cc View 4 chunks +15 lines, -6 lines 0 comments Download
M src/arm/lithium-arm.h View 2 chunks +2 lines, -2 lines 0 comments Download
M src/arm/lithium-arm.cc View 3 chunks +11 lines, -4 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 4 chunks +23 lines, -28 lines 0 comments Download
M src/deoptimizer.h View 2 chunks +4 lines, -1 line 0 comments Download
M src/hydrogen.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M src/hydrogen-instructions.h View 1 6 chunks +20 lines, -7 lines 0 comments Download
M src/ia32/deoptimizer-ia32.cc View 2 chunks +10 lines, -4 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 5 chunks +24 lines, -29 lines 0 comments Download
M src/ia32/lithium-ia32.h View 2 chunks +2 lines, -2 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 3 chunks +13 lines, -5 lines 0 comments Download
M src/safepoint-table.h View 2 chunks +5 lines, -6 lines 0 comments Download
M src/safepoint-table.cc View 3 chunks +10 lines, -1 line 0 comments Download
M src/x64/deoptimizer-x64.cc View 3 chunks +11 lines, -5 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 chunk +5 lines, -11 lines 0 comments Download
M src/x64/lithium-x64.h View 2 chunks +2 lines, -2 lines 0 comments Download
M src/x64/lithium-x64.cc View 3 chunks +10 lines, -3 lines 0 comments Download
M test/cctest/cctest.status View 1 chunk +0 lines, -3 lines 0 comments Download
A test/mjsunit/regress/regress-1079.js View 1 chunk +45 lines, -0 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
Kevin Millikin (Chromium)
9 years, 10 months ago (2011-02-02 13:30:18 UTC) #1
Mads Ager (chromium)
9 years, 10 months ago (2011-02-02 13:39:42 UTC) #2
LGTM

Powered by Google App Engine
This is Rietveld 408576698