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

Issue 1778713002: PPC: [runtime] Unify and simplify how frames are marked (Closed)

Created:
4 years, 9 months ago by MTBrandyberry
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

PPC: [runtime] Unify and simplify how frames are marked Port 9dcd0857d64a117801bf91cb6caf7d6578809cb1 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). R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Committed: https://crrev.com/4445c095d26bfc67eb4a9353477a059db7cc1ca2 Cr-Commit-Position: refs/heads/master@{#34643}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+151 lines, -117 lines) Patch
M src/compiler/ppc/code-generator-ppc.cc View 1 chunk +22 lines, -18 lines 0 comments Download
M src/crankshaft/ppc/lithium-codegen-ppc.cc View 5 chunks +8 lines, -9 lines 0 comments Download
M src/debug/ppc/debug-ppc.cc View 1 chunk +1 line, -2 lines 0 comments Download
M src/full-codegen/ppc/full-codegen-ppc.cc View 1 chunk +1 line, -3 lines 0 comments Download
M src/ic/ppc/handler-compiler-ppc.cc View 4 chunks +7 lines, -5 lines 0 comments Download
M src/ppc/builtins-ppc.cc View 9 chunks +13 lines, -14 lines 0 comments Download
M src/ppc/code-stubs-ppc.cc View 6 chunks +6 lines, -6 lines 0 comments Download
M src/ppc/codegen-ppc.cc View 1 chunk +1 line, -3 lines 0 comments Download
M src/ppc/deoptimizer-ppc.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M src/ppc/frames-ppc.h View 2 chunks +5 lines, -10 lines 0 comments Download
M src/ppc/macro-assembler-ppc.h View 2 chunks +10 lines, -5 lines 0 comments Download
M src/ppc/macro-assembler-ppc.cc View 8 chunks +72 lines, -42 lines 0 comments Download

Messages

Total messages: 11 (4 generated)
MTBrandyberry
PTAL
4 years, 9 months ago (2016-03-08 23:34:28 UTC) #1
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1778713002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1778713002/1
4 years, 9 months ago (2016-03-08 23:34:49 UTC) #3
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-08 23:54:40 UTC) #5
JoranSiu
On 2016/03/08 23:54:40, commit-bot: I haz the power wrote: > Dry run: This issue passed ...
4 years, 9 months ago (2016-03-09 23:04:15 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1778713002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1778713002/1
4 years, 9 months ago (2016-03-09 23:04:58 UTC) #8
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 9 months ago (2016-03-09 23:07:19 UTC) #9
commit-bot: I haz the power
4 years, 9 months ago (2016-03-09 23:08:31 UTC) #11
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/4445c095d26bfc67eb4a9353477a059db7cc1ca2
Cr-Commit-Position: refs/heads/master@{#34643}

Powered by Google App Engine
This is Rietveld 408576698