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

Issue 1774353002: X87: [runtime] Unify and simplify how frames are marked. (Closed)

Created:
4 years, 9 months ago by zhengxing.li
Modified:
4 years, 9 months ago
CC:
v8-reviews_googlegroups.com, Yang
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

X87: [runtime] Unify and simplify how frames are marked. port 9dcd0857d64a117801bf91cb6caf7d6578809cb1 (r34571) original commit message: Before this CL, various code stubs used different techniques for marking their frames to enable stack-crawling and other access to data in the frame. All of them were based on a abuse of the "standard" frame representation, e.g. storing the a context pointer immediately below the frame's fp, and a function pointer after that. Although functional, this approach tends to make stubs and builtins do an awkward, unnecessary dance to appear like standard frames, even if they have nothing to do with JavaScript execution. This CL attempts to improve this by: * Ensuring that there are only two fundamentally different types of frames, a "standard" frame and a "typed" frame. Standard frames, as before, contain both a context and function pointer. Typed frames contain only a minimum of a smi marker in the position immediately below the fp where the context is in standard frames. * Only interpreted, full codegen, and optimized Crankshaft and TurboFan JavaScript frames use the "standard" format. All other frames use the type frame format with an explicit marker. * Typed frames can contain one or more values below the type marker. There is new magic macro machinery in frames.h that simplifies defining the offsets of these fields in typed frames. * A new flag in the CallDescriptor enables specifying whether a frame is a standard frame or a typed frame. Secondary register location spilling is now only enabled for standard frames. * A zillion places in the code have been updated to deal with the fact that most code stubs and internal frames use the typed frame format. This includes changes in the deoptimizer, debugger, and liveedit. * StandardFrameConstants::kMarkerOffset is deprecated, (CommonFrameConstants::kContextOrFrameTypeOffset and StandardFrameConstants::kFrameOffset are now used in its stead). BUG= Committed: https://crrev.com/7a51f8c84329367c32d0c490ad2dab7c125da301 Cr-Commit-Position: refs/heads/master@{#34648}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+84 lines, -73 lines) Patch
M src/compiler/x87/code-generator-x87.cc View 1 chunk +9 lines, -10 lines 0 comments Download
M src/crankshaft/x87/lithium-codegen-x87.cc View 5 chunks +11 lines, -20 lines 0 comments Download
M src/debug/x87/debug-x87.cc View 1 chunk +5 lines, -2 lines 0 comments Download
M src/ic/x87/handler-compiler-x87.cc View 4 chunks +7 lines, -3 lines 0 comments Download
M src/x87/builtins-x87.cc View 7 chunks +6 lines, -7 lines 0 comments Download
M src/x87/code-stubs-x87.cc View 6 chunks +9 lines, -8 lines 0 comments Download
M src/x87/deoptimizer-x87.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M src/x87/frames-x87.h View 2 chunks +5 lines, -7 lines 0 comments Download
M src/x87/macro-assembler-x87.h View 1 chunk +1 line, -1 line 0 comments Download
M src/x87/macro-assembler-x87.cc View 7 chunks +26 lines, -15 lines 0 comments Download

Messages

Total messages: 8 (3 generated)
zhengxing.li
PTAL, thanks!
4 years, 9 months ago (2016-03-09 02:00:14 UTC) #2
Weiliang
lgtm
4 years, 9 months ago (2016-03-10 02:21:34 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1774353002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1774353002/1
4 years, 9 months ago (2016-03-10 02:22:06 UTC) #5
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 9 months ago (2016-03-10 02:39:41 UTC) #6
commit-bot: I haz the power
4 years, 9 months ago (2016-03-10 02:40:09 UTC) #8
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/7a51f8c84329367c32d0c490ad2dab7c125da301
Cr-Commit-Position: refs/heads/master@{#34648}

Powered by Google App Engine
This is Rietveld 408576698