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

Issue 504493002: Fix deoptimization address patching in Turbofan to use safepoints. (Closed)

Created:
6 years, 4 months ago by Jarin
Modified:
6 years, 4 months ago
Reviewers:
Benedikt Meurer
CC:
v8-dev
Project:
v8
Visibility:
Public.

Description

Fix deoptimization address patching in Turbofan to use safepoints. Since the deopt patch address needs to be available during GC to resolve safepoints, we need to move it to the code object (instead of the deoptimization input data) - accessing a separate fixed array is not safe during GC. This CL adds a deoptimization_pc field to each safepoint. The fields points to the deoptimization block. The CL also fixes wrong register allocator constraints for frame states on calls. These should always live on the stack because registers are not preserved during a call. BUG= R=bmeurer@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=23334

Patch Set 1 #

Patch Set 2 : Minor tweaks. #

Patch Set 3 : Compilation fix. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+158 lines, -185 lines) Patch
M src/arm/lithium-codegen-arm.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/compiler/code-generator.h View 3 chunks +10 lines, -5 lines 0 comments Download
M src/compiler/code-generator.cc View 1 7 chunks +43 lines, -22 lines 0 comments Download
M src/compiler/instruction-selector.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/deoptimizer.cc View 3 chunks +4 lines, -20 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/mips64/lithium-codegen-mips64.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/objects.h View 6 chunks +15 lines, -54 lines 0 comments Download
M src/objects.cc View 4 chunks +13 lines, -44 lines 0 comments Download
M src/objects-inl.h View 1 chunk +3 lines, -13 lines 0 comments Download
M src/safepoint-table.h View 1 2 9 chunks +49 lines, -9 lines 0 comments Download
M src/safepoint-table.cc View 5 chunks +7 lines, -3 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/x87/lithium-codegen-x87.cc View 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/compiler/test-codegen-deopt.cc View 1 chunk +6 lines, -5 lines 0 comments Download
M test/mjsunit/mjsunit.status View 1 chunk +0 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Jarin
Could you take a look, please?
6 years, 4 months ago (2014-08-22 22:46:23 UTC) #1
Benedikt Meurer
LGTM
6 years, 4 months ago (2014-08-25 06:50:37 UTC) #2
Jarin
6 years, 4 months ago (2014-08-25 07:02:35 UTC) #3
Message was sent while issue was closed.
Committed patchset #3 manually as 23334 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698