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

Issue 1683103002: [compiler] Sanitize entry points to LookupSlot access. (Closed)

Created:
4 years, 10 months ago by Benedikt Meurer
Modified:
4 years, 10 months ago
CC:
v8-reviews_googlegroups.com, oth, v8-x87-ports_googlegroups.com, v8-ppc-ports_googlegroups.com, rmcilroy, v8-mips-ports_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[compiler] Sanitize entry points to LookupSlot access. Add dedicated %LoadLookupSlot, %LoadLookupSlotInsideTypeof, %LoadLookupSlotForCall, %StoreLookupSlot_Sloppy and %StoreLookupSlot_Strict runtime entry points and use them appropriately in the various compilers. This way we can finally drop the machine operators from the JS graph level completely in TurboFan. Also drop the funky JSLoadDynamic operator from TurboFan, which was by now just a small wrapper around the runtime call to %LoadLookupSlot. R=mstarzinger@chromium.org Committed: https://crrev.com/4ff159bd28be36a39a1f8416cdf8fccafd3c2f95 Cr-Commit-Position: refs/heads/master@{#33880}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Address Ross comment. #

Total comments: 2

Patch Set 3 : Fixes #

Patch Set 4 : Now for real... #

Patch Set 5 : REBASE. Fix arm64 and mips64. #

Patch Set 6 : Fix REBASE error. #

Total comments: 10

Patch Set 7 : REBASE. Fixes. Comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+293 lines, -442 lines) Patch
M src/compiler/ast-graph-builder.h View 1 2 3 4 5 6 1 chunk +4 lines, -4 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 2 3 4 5 6 9 chunks +30 lines, -33 lines 0 comments Download
M src/compiler/bytecode-graph-builder.h View 1 chunk +0 lines, -6 lines 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 2 3 4 5 6 5 chunks +12 lines, -31 lines 0 comments Download
M src/compiler/js-generic-lowering.cc View 1 chunk +0 lines, -15 lines 0 comments Download
M src/compiler/js-operator.h View 2 chunks +0 lines, -27 lines 0 comments Download
M src/compiler/js-operator.cc View 2 chunks +0 lines, -43 lines 0 comments Download
M src/compiler/opcodes.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/compiler/operator-properties.cc View 1 chunk +0 lines, -1 line 0 comments Download
M src/compiler/typer.cc View 1 chunk +0 lines, -3 lines 0 comments Download
M src/compiler/verifier.cc View 1 chunk +0 lines, -1 line 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 1 2 3 4 5 6 4 chunks +10 lines, -15 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 4 chunks +10 lines, -16 lines 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 4 chunks +11 lines, -14 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 1 2 3 4 5 6 4 chunks +10 lines, -14 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 2 3 4 5 6 4 chunks +10 lines, -18 lines 0 comments Download
M src/full-codegen/ppc/full-codegen-ppc.cc View 1 2 3 4 5 6 4 chunks +10 lines, -15 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 1 2 3 4 5 6 4 chunks +6 lines, -9 lines 0 comments Download
M src/full-codegen/x87/full-codegen-x87.cc View 1 2 3 4 5 6 4 chunks +12 lines, -16 lines 0 comments Download
M src/interpreter/bytecode-generator.cc View 1 2 2 chunks +7 lines, -9 lines 0 comments Download
M src/interpreter/interpreter.cc View 1 2 3 4 5 6 4 chunks +7 lines, -8 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 4 chunks +7 lines, -8 lines 0 comments Download
M src/runtime/runtime-scopes.cc View 1 2 3 4 5 6 3 chunks +122 lines, -104 lines 0 comments Download
M test/cctest/interpreter/test-bytecode-generator.cc View 11 chunks +23 lines, -29 lines 0 comments Download
M test/unittests/interpreter/bytecode-array-builder-unittest.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 23 (8 generated)
Benedikt Meurer
4 years, 10 months ago (2016-02-10 13:25:00 UTC) #1
Benedikt Meurer
Hey Michi, Here's the baby, finally getting rid of the machine operators in the graph ...
4 years, 10 months ago (2016-02-10 13:25:43 UTC) #2
rmcilroy
Drive-by comment on interpreter changes, otherwise LG. https://codereview.chromium.org/1683103002/diff/1/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/1683103002/diff/1/src/interpreter/bytecode-generator.cc#newcode2210 src/interpreter/bytecode-generator.cc:2210: Register name ...
4 years, 10 months ago (2016-02-10 13:39:31 UTC) #4
Benedikt Meurer
https://codereview.chromium.org/1683103002/diff/1/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/1683103002/diff/1/src/interpreter/bytecode-generator.cc#newcode2210 src/interpreter/bytecode-generator.cc:2210: Register name = register_allocator()->NextConsecutiveRegister(); On 2016/02/10 13:39:31, rmcilroy wrote: ...
4 years, 10 months ago (2016-02-10 13:50:06 UTC) #5
rmcilroy
https://codereview.chromium.org/1683103002/diff/20001/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/1683103002/diff/20001/src/interpreter/bytecode-generator.cc#newcode2209 src/interpreter/bytecode-generator.cc:2209: Register name = register_allocator()->NextConsecutiveRegister(); This needs to be NewRegister, ...
4 years, 10 months ago (2016-02-10 13:54:10 UTC) #6
Benedikt Meurer
https://codereview.chromium.org/1683103002/diff/20001/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/1683103002/diff/20001/src/interpreter/bytecode-generator.cc#newcode2209 src/interpreter/bytecode-generator.cc:2209: Register name = register_allocator()->NextConsecutiveRegister(); Thanks.
4 years, 10 months ago (2016-02-10 14:05:37 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1683103002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1683103002/80001
4 years, 10 months ago (2016-02-10 17:48:23 UTC) #9
commit-bot: I haz the power
Dry run: 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/13554)
4 years, 10 months ago (2016-02-10 18:03:28 UTC) #11
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1683103002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1683103002/100001
4 years, 10 months ago (2016-02-10 18:14:00 UTC) #13
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 10 months ago (2016-02-10 18:34:32 UTC) #15
Michael Starzinger
LGTM. Nice. Just some nits to address. https://codereview.chromium.org/1683103002/diff/100001/src/compiler/ast-graph-builder.cc File src/compiler/ast-graph-builder.cc (right): https://codereview.chromium.org/1683103002/diff/100001/src/compiler/ast-graph-builder.cc#newcode3410 src/compiler/ast-graph-builder.cc:3410: Node* value ...
4 years, 10 months ago (2016-02-10 19:48:16 UTC) #16
Benedikt Meurer
Great suggestions thanks. https://codereview.chromium.org/1683103002/diff/100001/src/compiler/ast-graph-builder.cc File src/compiler/ast-graph-builder.cc (right): https://codereview.chromium.org/1683103002/diff/100001/src/compiler/ast-graph-builder.cc#newcode3410 src/compiler/ast-graph-builder.cc:3410: Node* value = NewNode(op, jsgraph()->Constant(name)); On ...
4 years, 10 months ago (2016-02-11 05:25:05 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1683103002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1683103002/120001
4 years, 10 months ago (2016-02-11 05:48:42 UTC) #20
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 10 months ago (2016-02-11 06:24:17 UTC) #21
commit-bot: I haz the power
4 years, 10 months ago (2016-02-11 10:41:04 UTC) #23
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/4ff159bd28be36a39a1f8416cdf8fccafd3c2f95
Cr-Commit-Position: refs/heads/master@{#33880}

Powered by Google App Engine
This is Rietveld 408576698