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

Issue 1010883002: Switch full-codegen from StackHandlers to handler table. (Closed)

Created:
5 years, 9 months ago by Michael Starzinger
Modified:
5 years, 9 months ago
Reviewers:
wingo, *Yang
CC:
v8-dev, akos.palfi.imgtec, paul.l...
Base URL:
https://chromium.googlesource.com/v8/v8.git@local_cleanup-isolate-dead-code
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Switch full-codegen from StackHandlers to handler table. This switches full-codegen to no longer push and pop StackHandler markers onto the operand stack, but relies on a range-based handler table instead. We only use StackHandlers in JSEntryStubs to mark the transition from C to JS code. Note that this makes deoptimization and OSR from within any try-block work out of the box, makes the non-exception paths faster and should overall be neutral on the memory footprint (pros). On the other hand it makes the exception paths slower and actually throwing and exception more expensive (cons). R=yangguo@chromium.org TEST=cctest/test-run-jsexceptions/DeoptTry Committed: https://crrev.com/38a719f965d0a83ddac04392d5b9c5abe214281c Cr-Commit-Position: refs/heads/master@{#27440}

Patch Set 1 #

Patch Set 2 : Minor cleanup. #

Patch Set 3 : Minor cleanup. #

Total comments: 9

Patch Set 4 : Rebased. #

Patch Set 5 : Fix promise stack. #

Patch Set 6 : Follow-up fixes. #

Patch Set 7 : Follow-up fixes. #

Patch Set 8 : Architecture ports. #

Patch Set 9 : Follow-up fixes. #

Patch Set 10 : Adapt expectations. #

Patch Set 11 : Fix debugger-pause-on-promise-rejection. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+478 lines, -606 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 4 chunks +6 lines, -8 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 5 chunks +8 lines, -35 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -4 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -19 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 6 7 8 9 3 chunks +5 lines, -7 lines 0 comments Download
M src/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 6 chunks +8 lines, -38 lines 0 comments Download
M src/arm64/macro-assembler-arm64.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -4 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 2 3 4 5 6 7 1 chunk +4 lines, -17 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -0 lines 0 comments Download
M src/compiler/code-generator.cc View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -5 lines 0 comments Download
M src/debug.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -3 lines 0 comments Download
M src/frames.h View 6 chunks +20 lines, -42 lines 0 comments Download
M src/frames.cc View 10 chunks +23 lines, -139 lines 0 comments Download
M src/frames-inl.h View 1 chunk +0 lines, -30 lines 0 comments Download
M src/full-codegen.h View 7 chunks +35 lines, -6 lines 0 comments Download
M src/full-codegen.cc View 1 2 5 chunks +50 lines, -11 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 3 chunks +5 lines, -7 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 5 chunks +8 lines, -34 lines 0 comments Download
M src/ia32/macro-assembler-ia32.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -4 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -17 lines 0 comments Download
M src/isolate.h View 1 2 3 4 5 6 7 8 9 3 chunks +8 lines, -7 lines 0 comments Download
M src/isolate.cc View 1 2 3 4 5 6 7 8 9 10 8 chunks +76 lines, -63 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 4 chunks +67 lines, -8 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 3 chunks +59 lines, -6 lines 0 comments Download
M src/objects-debug.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 3 chunks +9 lines, -1 line 0 comments Download
M src/promise.js View 1 2 3 4 2 chunks +2 lines, -2 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -2 lines 0 comments Download
M src/runtime/runtime-debug.cc View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -2 lines 0 comments Download
M src/runtime/runtime-generator.cc View 1 4 chunks +18 lines, -15 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 3 chunks +5 lines, -7 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 5 chunks +8 lines, -35 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -4 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -17 lines 0 comments Download
M test/cctest/compiler/test-run-jsexceptions.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -2 lines 0 comments Download
M test/mjsunit/regress/regress-crbug-401915.js View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M test/webkit/webkit.status View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -3 lines 0 comments Download

Messages

Total messages: 19 (8 generated)
Michael Starzinger
Note that the platform ports are still missing and one Promises test (i.e. try-throw-reject-in-constructor) is ...
5 years, 9 months ago (2015-03-16 19:13:25 UTC) #1
Michael Starzinger
Andy Wingo: FYI about Generators.
5 years, 9 months ago (2015-03-16 19:16:26 UTC) #3
wingo
Generators part LGTM. https://codereview.chromium.org/1010883002/diff/40001/src/frames.cc File src/frames.cc (left): https://codereview.chromium.org/1010883002/diff/40001/src/frames.cc#oldcode873 src/frames.cc:873: for (; i >= 0; i--) ...
5 years, 9 months ago (2015-03-17 09:41:26 UTC) #5
Yang
Non-generator non-turbofan parts lgtm. Comments. And can we have test cases with nested try-catch pretty ...
5 years, 9 months ago (2015-03-17 10:21:23 UTC) #6
Michael Starzinger
Thanks for the comments. Left some replies. https://codereview.chromium.org/1010883002/diff/40001/src/objects-inl.h File src/objects-inl.h (right): https://codereview.chromium.org/1010883002/diff/40001/src/objects-inl.h#newcode767 src/objects-inl.h:767: // a ...
5 years, 9 months ago (2015-03-18 10:42:35 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1010883002/180001
5 years, 9 months ago (2015-03-24 09:08:45 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_arm_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel/builds/2696)
5 years, 9 months ago (2015-03-24 10:18:38 UTC) #13
Michael Starzinger
Akos, Paul: Just a quick heads up, I plan to land this tomorrow.
5 years, 9 months ago (2015-03-24 16:10:40 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1010883002/220001
5 years, 9 months ago (2015-03-25 13:11:52 UTC) #17
commit-bot: I haz the power
Committed patchset #11 (id:220001)
5 years, 9 months ago (2015-03-25 13:13:58 UTC) #18
commit-bot: I haz the power
5 years, 9 months ago (2015-03-25 13:14:15 UTC) #19
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/38a719f965d0a83ddac04392d5b9c5abe214281c
Cr-Commit-Position: refs/heads/master@{#27440}

Powered by Google App Engine
This is Rietveld 408576698