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

Issue 1980483003: [es6] Reintroduce the instanceof operator in the backends. (Closed)

Created:
4 years, 7 months ago by Benedikt Meurer
Modified:
4 years, 7 months ago
CC:
v8-reviews_googlegroups.com, v8-x87-ports_googlegroups.com, v8-ppc-ports_googlegroups.com, v8-mips-ports_googlegroups.com, rmcilroy, Michael Hablich, Hannes Payer (out of office), ulan, oth
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[es6] Reintroduce the instanceof operator in the backends. This adds back the instanceof operator support in the backends and introduces a @@hasInstance protector cell on the isolate that guards the fast path for the InstanceOfStub. This way we recover the ~10% regression on Octane EarleyBoyer in Crankshaft and greatly improve TurboFan and Ignition performance of instanceof. R=ishell@chromium.org TBR=hpayer@chromium.org,rossberg@chromium.org BUG=chromium:597249, v8:4447 LOG=n Committed: https://crrev.com/551e0aa11bf4b97f9d38c4ce0c5aac89df0a773a Cr-Commit-Position: refs/heads/master@{#36275}

Patch Set 1 #

Patch Set 2 : Make testsuite happy #

Patch Set 3 : REBASE #

Total comments: 4

Patch Set 4 : Igors comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+508 lines, -1739 lines) Patch
M src/arm/builtins-arm.cc View 1 chunk +0 lines, -22 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 chunk +0 lines, -120 lines 0 comments Download
M src/arm/interface-descriptors-arm.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M src/arm64/builtins-arm64.cc View 1 chunk +0 lines, -24 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 chunk +0 lines, -117 lines 0 comments Download
M src/arm64/interface-descriptors-arm64.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M src/bootstrapper.cc View 1 2 2 chunks +1 line, -4 lines 0 comments Download
M src/builtins.h View 1 2 4 chunks +20 lines, -17 lines 0 comments Download
M src/builtins.cc View 1 2 2 chunks +15 lines, -1 line 0 comments Download
M src/code-stub-assembler.h View 1 chunk +6 lines, -0 lines 0 comments Download
M src/code-stub-assembler.cc View 1 1 chunk +136 lines, -0 lines 0 comments Download
M src/code-stubs.h View 1 2 4 chunks +10 lines, -19 lines 0 comments Download
M src/code-stubs.cc View 1 2 1 chunk +37 lines, -0 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 chunk +0 lines, -1 line 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 1 chunk +0 lines, -1 line 0 comments Download
M src/compiler/code-assembler.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/code-assembler.cc View 2 chunks +11 lines, -7 lines 0 comments Download
M src/compiler/js-intrinsic-lowering.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/compiler/js-intrinsic-lowering.cc View 2 chunks +0 lines, -13 lines 0 comments Download
M src/compiler/js-typed-lowering.cc View 1 2 chunks +12 lines, -9 lines 0 comments Download
M src/contexts.h View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M src/crankshaft/arm/lithium-arm.h View 2 chunks +0 lines, -17 lines 0 comments Download
M src/crankshaft/arm/lithium-arm.cc View 1 chunk +0 lines, -11 lines 0 comments Download
M src/crankshaft/arm/lithium-codegen-arm.cc View 1 1 chunk +0 lines, -10 lines 0 comments Download
M src/crankshaft/arm64/lithium-arm64.h View 2 chunks +0 lines, -17 lines 0 comments Download
M src/crankshaft/arm64/lithium-arm64.cc View 1 chunk +0 lines, -11 lines 0 comments Download
M src/crankshaft/arm64/lithium-codegen-arm64.cc View 1 1 chunk +0 lines, -10 lines 0 comments Download
M src/crankshaft/hydrogen.h View 1 1 chunk +0 lines, -1 line 0 comments Download
M src/crankshaft/hydrogen.cc View 1 2 3 4 chunks +19 lines, -54 lines 0 comments Download
M src/crankshaft/hydrogen-instructions.h View 2 chunks +0 lines, -22 lines 0 comments Download
M src/crankshaft/hydrogen-instructions.cc View 2 chunks +0 lines, -7 lines 0 comments Download
M src/crankshaft/ia32/lithium-codegen-ia32.cc View 1 1 chunk +0 lines, -10 lines 0 comments Download
M src/crankshaft/ia32/lithium-ia32.h View 2 chunks +0 lines, -17 lines 0 comments Download
M src/crankshaft/ia32/lithium-ia32.cc View 1 chunk +0 lines, -11 lines 0 comments Download
M src/crankshaft/mips/lithium-codegen-mips.cc View 1 1 chunk +0 lines, -10 lines 0 comments Download
M src/crankshaft/mips/lithium-mips.h View 2 chunks +0 lines, -17 lines 0 comments Download
M src/crankshaft/mips/lithium-mips.cc View 1 chunk +0 lines, -11 lines 0 comments Download
M src/crankshaft/mips64/lithium-codegen-mips64.cc View 1 1 chunk +0 lines, -12 lines 0 comments Download
M src/crankshaft/mips64/lithium-mips64.h View 2 chunks +0 lines, -17 lines 0 comments Download
M src/crankshaft/mips64/lithium-mips64.cc View 1 1 chunk +0 lines, -11 lines 0 comments Download
M src/crankshaft/x64/lithium-codegen-x64.cc View 1 1 chunk +0 lines, -10 lines 0 comments Download
M src/crankshaft/x64/lithium-x64.h View 2 chunks +0 lines, -17 lines 0 comments Download
M src/crankshaft/x64/lithium-x64.cc View 1 chunk +0 lines, -11 lines 0 comments Download
M src/flag-definitions.h View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M src/full-codegen/full-codegen.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 1 chunk +0 lines, -7 lines 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M src/heap/heap.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/heap/heap.cc View 1 1 chunk +4 lines, -0 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 chunk +0 lines, -23 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 chunk +0 lines, -123 lines 0 comments Download
M src/ia32/interface-descriptors-ia32.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M src/interface-descriptors.h View 2 chunks +0 lines, -11 lines 0 comments Download
M src/interface-descriptors.cc View 1 chunk +0 lines, -7 lines 0 comments Download
M src/interpreter/interpreter.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/isolate.h View 2 chunks +2 lines, -0 lines 0 comments Download
M src/isolate.cc View 1 1 chunk +9 lines, -0 lines 0 comments Download
M src/isolate-inl.h View 1 1 chunk +6 lines, -0 lines 0 comments Download
M src/lookup.h View 1 1 chunk +3 lines, -1 line 0 comments Download
M src/lookup.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
M src/messages.h View 1 2 3 chunks +2 lines, -4 lines 0 comments Download
M src/mips/builtins-mips.cc View 1 chunk +0 lines, -22 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 chunk +0 lines, -122 lines 0 comments Download
M src/mips/interface-descriptors-mips.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M src/mips64/builtins-mips64.cc View 1 chunk +0 lines, -22 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 chunk +0 lines, -122 lines 0 comments Download
M src/mips64/interface-descriptors-mips64.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M src/objects.h View 1 2 1 chunk +8 lines, -0 lines 0 comments Download
M src/objects.cc View 1 2 3 3 chunks +83 lines, -1 line 0 comments Download
M src/parsing/parser.h View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M src/parsing/parser.cc View 1 2 1 chunk +0 lines, -174 lines 0 comments Download
M src/parsing/parser-base.h View 1 2 1 chunk +4 lines, -9 lines 0 comments Download
M src/parsing/preparser.h View 1 2 2 chunks +0 lines, -9 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 chunks +4 lines, -5 lines 0 comments Download
M src/runtime/runtime-internal.cc View 2 chunks +12 lines, -7 lines 0 comments Download
M src/runtime/runtime-object.cc View 1 1 chunk +0 lines, -91 lines 0 comments Download
M src/runtime/runtime-operators.cc View 1 chunk +11 lines, -0 lines 0 comments Download
M src/x64/builtins-x64.cc View 1 chunk +0 lines, -23 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 chunk +0 lines, -119 lines 0 comments Download
M src/x64/interface-descriptors-x64.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/ForOf.golden View 4 chunks +4 lines, -4 lines 0 comments Download
M test/cctest/interpreter/bytecode_expectations/Generators.golden View 1 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/interpreter/bytecode_expectations/IfConditions.golden View 1 chunk +18 lines, -74 lines 0 comments Download
M test/cctest/interpreter/test-interpreter.cc View 1 chunk +0 lines, -5 lines 0 comments Download
M test/cctest/test-asm-validator.cc View 1 chunk +1 line, -5 lines 0 comments Download
A test/mjsunit/compiler/optimized-instanceof-1.js View 1 1 chunk +17 lines, -0 lines 0 comments Download
A test/mjsunit/compiler/optimized-instanceof-2.js View 1 1 chunk +19 lines, -0 lines 0 comments Download
M test/mjsunit/harmony/instanceof-es6.js View 1 2 3 1 chunk +19 lines, -0 lines 0 comments Download
M test/mjsunit/messages.js View 1 chunk +6 lines, -1 line 0 comments Download
M test/unittests/compiler/js-intrinsic-lowering-unittest.cc View 1 chunk +0 lines, -17 lines 0 comments Download

Messages

Total messages: 16 (8 generated)
Benedikt Meurer
4 years, 7 months ago (2016-05-13 13:46:16 UTC) #1
Igor Sheludko
lgtm with nits modulo bytecode_expectations changes. https://codereview.chromium.org/1980483003/diff/40001/src/crankshaft/hydrogen.cc File src/crankshaft/hydrogen.cc (right): https://codereview.chromium.org/1980483003/diff/40001/src/crankshaft/hydrogen.cc#newcode11688 src/crankshaft/hydrogen.cc:11688: if (function->has_initial_map() && ...
4 years, 7 months ago (2016-05-17 08:40:32 UTC) #3
Benedikt Meurer
Addressed comments, thanks. https://codereview.chromium.org/1980483003/diff/40001/src/crankshaft/hydrogen.cc File src/crankshaft/hydrogen.cc (right): https://codereview.chromium.org/1980483003/diff/40001/src/crankshaft/hydrogen.cc#newcode11688 src/crankshaft/hydrogen.cc:11688: if (function->has_initial_map() && On 2016/05/17 08:40:32, ...
4 years, 7 months ago (2016-05-17 10:23:21 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1980483003/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1980483003/60001
4 years, 7 months ago (2016-05-17 10:38:38 UTC) #7
commit-bot: I haz the power
Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/15318)
4 years, 7 months ago (2016-05-17 10:44:49 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1980483003/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1980483003/60001
4 years, 7 months ago (2016-05-17 11:21:49 UTC) #12
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 7 months ago (2016-05-17 11:24:10 UTC) #14
commit-bot: I haz the power
4 years, 7 months ago (2016-05-17 11:26:11 UTC) #16
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/551e0aa11bf4b97f9d38c4ce0c5aac89df0a773a
Cr-Commit-Position: refs/heads/master@{#36275}

Powered by Google App Engine
This is Rietveld 408576698