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

Issue 2026313002: Emit unwinding information for TurboFan code. (Closed)

Created:
4 years, 6 months ago by Stefano Sanfilippo
Modified:
4 years, 5 months ago
Reviewers:
Jarin, rmcilroy
CC:
v8-reviews_googlegroups.com, rmcilroy
Base URL:
https://chromium.googlesource.com/v8/v8.git@eh-frame
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Emit unwinding information for TurboFan code. This commit introduces support for writing unwinding tables in the .eh_frame format, to be inserted in the jitdump read by Linux perf and emitted with FLAG_perf_prof and FLAG_perf_prof_unwinding_info enabled. x64 is fully implemented and tested, arm and arm64 are untested and the unwinding information needs to be expanded, but the mechanism is ready. BUG=v8:4899 LOG=N Committed: https://crrev.com/cecded1c24bf3c3409d6556c11af2bd7b0ffea69 Cr-Commit-Position: refs/heads/master@{#37799}

Patch Set 1 #

Patch Set 2 : Generate unwinding info with FLAG_perf_prof_unwinding_info #

Patch Set 3 : Treat tail call points as return points. #

Patch Set 4 : Rename MarkReturnSite. #

Patch Set 5 : Update base patchset. #

Patch Set 6 : Fix UnwindingInfoWriter::Finish definition. #

Patch Set 7 : Wipe old files in BUILD.gn #

Patch Set 8 : Check if uiw is nullptr. #

Patch Set 9 : Rename EhFrameWriter calls, get rid of helpers. #

Patch Set 10 : Improve description of ARM stack layout. #

Patch Set 11 : Update base patchset. #

Patch Set 12 : Simplify frame construction/dtion handling on ARM and ARM64. #

Patch Set 13 : Update base patchset. #

Patch Set 14 : Clarify assumptions on frame ction/dtion routines in arm/arm64. #

Total comments: 14

Patch Set 15 : Review. #

Patch Set 16 : Adapt to natural offset direction in register saved directives. #

Patch Set 17 : Update base patchset. #

Patch Set 18 : Adapt to new EhFrameWriter ctor. #

Patch Set 19 : Temporarily use ZoneMap, rename MaybeIncreaseFrameBaseOffsetAt to MaybeIncreaseBaseOffsetAt. #

Patch Set 20 : Update base patchset. #

Patch Set 21 : Merge optional logic in UnwindingInfoWriter. #

Patch Set 22 : Fix initialisation order in CodeGenerator. #

Patch Set 23 : Use a smart pointer for EhFrameWriter inside the UnwindingInfoWriter. #

Patch Set 24 : Use ZoneVector as storage for the initial states map. #

Patch Set 25 : Update base patchset. #

Patch Set 26 : Embed the EhFrameWriter into the UnwindingInfoWriter. #

Patch Set 27 : Small fixes in arm and arm64 UIW. #

Patch Set 28 : Use csp or jssp on ARM64. #

Patch Set 29 : Rebase on master. #

Patch Set 30 : Tidy ups. #

Patch Set 31 : Rebase on master. #

Patch Set 32 : Add BuildUnwindingInfo test. #

Patch Set 33 : Add notes about tests to be implemented. #

Patch Set 34 : MarkFrameConstructed inside has_frame branch on ARM. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+777 lines, -17 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 4 chunks +7 lines, -0 lines 0 comments Download
M src/compiler/arm/code-generator-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 12 chunks +26 lines, -8 lines 0 comments Download
A src/compiler/arm/unwinding-info-writer-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +72 lines, -0 lines 0 comments Download
A src/compiler/arm/unwinding-info-writer-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1 chunk +108 lines, -0 lines 0 comments Download
M src/compiler/arm64/code-generator-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 11 chunks +21 lines, -4 lines 0 comments Download
A src/compiler/arm64/unwinding-info-writer-arm64.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +72 lines, -0 lines 0 comments Download
A src/compiler/arm64/unwinding-info-writer-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 chunk +109 lines, -0 lines 0 comments Download
M src/compiler/code-generator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +2 lines, -0 lines 0 comments Download
M src/compiler/code-generator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 5 chunks +9 lines, -1 line 0 comments Download
A src/compiler/unwinding-info-writer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +55 lines, -0 lines 0 comments Download
M src/compiler/x64/code-generator-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 15 chunks +49 lines, -4 lines 0 comments Download
A src/compiler/x64/unwinding-info-writer-x64.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +79 lines, -0 lines 0 comments Download
A src/compiler/x64/unwinding-info-writer-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +102 lines, -0 lines 0 comments Download
M src/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 4 chunks +7 lines, -0 lines 0 comments Download
M test/cctest/cctest.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 chunk +1 line, -0 lines 0 comments Download
A test/cctest/compiler/test-run-unwinding-info.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 chunk +58 lines, -0 lines 0 comments Download

Messages

Total messages: 157 (114 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/530001
4 years, 5 months ago (2016-06-29 15:16:48 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/4120) v8_linux64_rel_ng on ...
4 years, 5 months ago (2016-06-29 15:19:19 UTC) #28
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/550001
4 years, 5 months ago (2016-06-29 15:23:18 UTC) #30
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel_ng/builds/4095)
4 years, 5 months ago (2016-06-29 15:25:50 UTC) #32
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/570001
4 years, 5 months ago (2016-06-29 15:32:11 UTC) #34
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/590001
4 years, 5 months ago (2016-06-29 15:34:42 UTC) #37
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/20102) v8_linux64_avx2_rel_ng on ...
4 years, 5 months ago (2016-06-29 15:39:27 UTC) #39
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/630001
4 years, 5 months ago (2016-06-29 16:44:30 UTC) #41
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-06-29 17:10:23 UTC) #43
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/680001
4 years, 5 months ago (2016-06-30 10:49:13 UTC) #45
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-06-30 11:15:03 UTC) #48
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/700001
4 years, 5 months ago (2016-07-04 19:06:42 UTC) #50
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/20332) v8_linux_mips64el_compile_rel on ...
4 years, 5 months ago (2016-07-04 19:08:13 UTC) #52
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/720001
4 years, 5 months ago (2016-07-04 19:57:28 UTC) #56
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-04 20:22:32 UTC) #58
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/740001
4 years, 5 months ago (2016-07-05 10:32:14 UTC) #61
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_asan_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng/builds/4450) v8_linux64_avx2_rel_ng on ...
4 years, 5 months ago (2016-07-05 10:35:08 UTC) #63
Stefano Sanfilippo
This is the last piece in having TF emit unwinding information. PTAL.
4 years, 5 months ago (2016-07-05 16:14:24 UTC) #68
rmcilroy
Jaro: could you do the main review for this since it impacts Turbofan? Stefano's internship ...
4 years, 5 months ago (2016-07-05 16:39:16 UTC) #73
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/800001
4 years, 5 months ago (2016-07-05 20:24:52 UTC) #78
Jarin
Mostly looking good, I have just a few suggestions. https://codereview.chromium.org/2026313002/diff/820001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (right): https://codereview.chromium.org/2026313002/diff/820001/src/compiler/arm/code-generator-arm.cc#newcode429 src/compiler/arm/code-generator-arm.cc:429: ...
4 years, 5 months ago (2016-07-06 07:09:42 UTC) #79
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/840001
4 years, 5 months ago (2016-07-06 10:06:20 UTC) #81
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-06 10:31:13 UTC) #83
Stefano Sanfilippo
Done with the first round of comments, PTAL. I still have to think a bit ...
4 years, 5 months ago (2016-07-06 13:25:10 UTC) #84
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/960001
4 years, 5 months ago (2016-07-06 17:46:33 UTC) #88
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-06 18:10:10 UTC) #90
Jarin
So far looking good. (Since UnwindingInfoWriter does not really need a destructor to be called ...
4 years, 5 months ago (2016-07-07 07:31:40 UTC) #92
rmcilroy
https://codereview.chromium.org/2026313002/diff/820001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (right): https://codereview.chromium.org/2026313002/diff/820001/src/compiler/arm/code-generator-arm.cc#newcode429 src/compiler/arm/code-generator-arm.cc:429: if (!unwinding_info_writer_.is_empty()) { On 2016/07/06 07:09:42, Jarin wrote: > ...
4 years, 5 months ago (2016-07-07 09:55:17 UTC) #93
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/1020001
4 years, 5 months ago (2016-07-07 12:46:51 UTC) #95
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm64_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm64_rel_ng/builds/4493) v8_linux_arm_rel_ng on ...
4 years, 5 months ago (2016-07-07 12:50:47 UTC) #97
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/1040001
4 years, 5 months ago (2016-07-07 14:47:17 UTC) #99
Stefano Sanfilippo
Optional logic merged. PTAL.
4 years, 5 months ago (2016-07-07 14:47:48 UTC) #100
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/4567) v8_linux64_avx2_rel_ng_triggered on ...
4 years, 5 months ago (2016-07-07 15:05:11 UTC) #102
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/1100001
4 years, 5 months ago (2016-07-07 17:37:47 UTC) #105
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/1120001
4 years, 5 months ago (2016-07-07 17:42:57 UTC) #108
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/1140001
4 years, 5 months ago (2016-07-07 17:47:08 UTC) #111
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-07 18:14:59 UTC) #113
Jarin
lgtm
4 years, 5 months ago (2016-07-11 18:52:13 UTC) #120
rmcilroy
I'd still like some simple tests for this if it's possible.
4 years, 5 months ago (2016-07-13 10:14:52 UTC) #126
Stefano Sanfilippo
On 2016/07/13 10:14:52, rmcilroy wrote: > I'd still like some simple tests for this if ...
4 years, 5 months ago (2016-07-15 14:01:38 UTC) #148
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2026313002/1520001
4 years, 5 months ago (2016-07-15 15:02:35 UTC) #153
commit-bot: I haz the power
Committed patchset #34 (id:1520001)
4 years, 5 months ago (2016-07-15 15:04:41 UTC) #155
commit-bot: I haz the power
4 years, 5 months ago (2016-07-15 15:06:07 UTC) #157
Message was sent while issue was closed.
Patchset 34 (id:??) landed as
https://crrev.com/cecded1c24bf3c3409d6556c11af2bd7b0ffea69
Cr-Commit-Position: refs/heads/master@{#37799}

Powered by Google App Engine
This is Rietveld 408576698